diff --git a/.changeset/beige-rats-cheer.md b/.changeset/beige-rats-cheer.md new file mode 100644 index 0000000000..c523ffa104 --- /dev/null +++ b/.changeset/beige-rats-cheer.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +Added `RootLifecycleService` and `rootLifecycleServiceRef`, as well as added a `labels` option to the existing `LifecycleServiceShutdownHook`. diff --git a/.changeset/blue-carrots-cross.md b/.changeset/blue-carrots-cross.md new file mode 100644 index 0000000000..fdf91e673c --- /dev/null +++ b/.changeset/blue-carrots-cross.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Removed unnecessary usage of `ThemeProvider` from the `ExampleComponent` test in the plugin template. diff --git a/.changeset/clever-starfishes-destroy.md b/.changeset/clever-starfishes-destroy.md new file mode 100644 index 0000000000..3d520410d8 --- /dev/null +++ b/.changeset/clever-starfishes-destroy.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-bazaar': patch +--- + +Created soft cut on `ProjectCard` to indicate more content. diff --git a/.changeset/clever-years-hang.md b/.changeset/clever-years-hang.md new file mode 100644 index 0000000000..31db564c52 --- /dev/null +++ b/.changeset/clever-years-hang.md @@ -0,0 +1,6 @@ +--- +'@backstage/backend-test-utils': patch +'@backstage/backend-defaults': patch +--- + +Include implementations for the new `rootLifecycleServiceRef`. diff --git a/.changeset/cool-islands-laugh.md b/.changeset/cool-islands-laugh.md new file mode 100644 index 0000000000..5ea89043af --- /dev/null +++ b/.changeset/cool-islands-laugh.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Allow custom repository roles to be configured on github repos diff --git a/.changeset/cool-kings-raise.md b/.changeset/cool-kings-raise.md new file mode 100644 index 0000000000..18344b128c --- /dev/null +++ b/.changeset/cool-kings-raise.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-bazaar': patch +--- + +Added `isBazaarAvailable` helper to be used with the `EntitySwitch`. diff --git a/.changeset/create-app-1672154523.md b/.changeset/create-app-1672154523.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1672154523.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/curvy-ducks-explode.md b/.changeset/curvy-ducks-explode.md new file mode 100644 index 0000000000..1d631e60a8 --- /dev/null +++ b/.changeset/curvy-ducks-explode.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Use the project tsconfig in case of selection all packages diff --git a/.changeset/eleven-trains-double.md b/.changeset/eleven-trains-double.md new file mode 100644 index 0000000000..ec07372678 --- /dev/null +++ b/.changeset/eleven-trains-double.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-graph': patch +--- + +The link from the `CatalogGraphCard` to the `CatalogGraphPage` no longer includes an explicit `maxDepth` parameter, letting the `CatalogGraphPage` choose the initial `maxDepth` instead. diff --git a/.changeset/famous-experts-sneeze.md b/.changeset/famous-experts-sneeze.md new file mode 100644 index 0000000000..a6f2762dba --- /dev/null +++ b/.changeset/famous-experts-sneeze.md @@ -0,0 +1,7 @@ +--- +'@backstage/backend-common': minor +--- + +**BREAKING**: Removed deprecated `read` method from the `UrlReader` interface. All implementations should use the `readUrl` method instead. + +Migrated `UrlReader` and related types to `backend/backend-plugin-api`, types remain re-exported from `backend-common` for now. diff --git a/.changeset/fluffy-fans-sing.md b/.changeset/fluffy-fans-sing.md new file mode 100644 index 0000000000..fd875ee00d --- /dev/null +++ b/.changeset/fluffy-fans-sing.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Add experimental environment variable to enable caching for production builds. diff --git a/.changeset/good-foxes-fail.md b/.changeset/good-foxes-fail.md new file mode 100644 index 0000000000..5d31161e64 --- /dev/null +++ b/.changeset/good-foxes-fail.md @@ -0,0 +1,10 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +Added support for event based updates in the `GithubOrgEntityProvider`! +Based on webhook events from GitHub the affected `User` or `Group` entity will be refreshed. +This includes adding new entities, refreshing existing ones, and removing obsolete ones. + +Please find more information at +https://backstage.io/docs/integrations/github/org#installation-with-events-support diff --git a/.changeset/khaki-baboons-impress.md b/.changeset/khaki-baboons-impress.md new file mode 100644 index 0000000000..4fbcb17a3a --- /dev/null +++ b/.changeset/khaki-baboons-impress.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +Migrate `UrlReader` into this package to gradually remove the dependency on backend-common. diff --git a/.changeset/late-forks-rescue.md b/.changeset/late-forks-rescue.md new file mode 100644 index 0000000000..294412a711 --- /dev/null +++ b/.changeset/late-forks-rescue.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-explore-backend': patch +'@backstage/plugin-explore': patch +--- + +Updated `README.md` examples diff --git a/.changeset/light-rice-end.md b/.changeset/light-rice-end.md new file mode 100644 index 0000000000..d403b10ed6 --- /dev/null +++ b/.changeset/light-rice-end.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +fix glob on windows os diff --git a/.changeset/lucky-apricots-dress.md b/.changeset/lucky-apricots-dress.md new file mode 100644 index 0000000000..777bddfc53 --- /dev/null +++ b/.changeset/lucky-apricots-dress.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Fix sizing of build log component to render all lines diff --git a/.changeset/nasty-planets-end.md b/.changeset/nasty-planets-end.md new file mode 100644 index 0000000000..b361b28199 --- /dev/null +++ b/.changeset/nasty-planets-end.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-events-backend': patch +--- + +The default event broker will now catch and log errors thrown by the `onEvent` method of subscribers. The returned promise from `publish` method will also not resolve until all subscribers have handled the event. diff --git a/.changeset/nervous-ravens-cough.md b/.changeset/nervous-ravens-cough.md new file mode 100644 index 0000000000..8b371a2413 --- /dev/null +++ b/.changeset/nervous-ravens-cough.md @@ -0,0 +1,6 @@ +--- +'@backstage/backend-plugin-api': patch +'@backstage/backend-common': patch +--- + +Moved `PluginEndpointDiscovery` type from backend-common to backend-plugin-api. diff --git a/.changeset/ninety-phones-tell.md b/.changeset/ninety-phones-tell.md new file mode 100644 index 0000000000..692ed27c23 --- /dev/null +++ b/.changeset/ninety-phones-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-app-backend': patch +--- + +The warning for missing app contents is now logged as an error instead, but only in production. diff --git a/.changeset/odd-kings-tell.md b/.changeset/odd-kings-tell.md new file mode 100644 index 0000000000..f3643040be --- /dev/null +++ b/.changeset/odd-kings-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-cost-insights': patch +--- + +Removed @backstage/test-utils dependency, since it was already in the devDependencies where it belongs. The main benefit is that this will exclude better-sqlite3 from the production build. diff --git a/.changeset/olive-eyes-sing.md b/.changeset/olive-eyes-sing.md index d0ae1dc08f..42fa4a1a7c 100644 --- a/.changeset/olive-eyes-sing.md +++ b/.changeset/olive-eyes-sing.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-stack-overflow-backend': minor +'@backstage/plugin-stack-overflow-backend': patch --- Enable configuration override for StackOverflow backend plugin when instantiating the search indexer. This makes it possible to set different configuration for frontend and backend of the plugin. diff --git a/.changeset/pre.json b/.changeset/pre.json index 30f0c873c4..b84bcafcc7 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -194,5 +194,58 @@ "@backstage/plugin-vault-backend": "0.2.5", "@backstage/plugin-xcmetrics": "0.2.32" }, - "changesets": [] + "changesets": [ + "beige-rats-cheer", + "blue-carrots-cross", + "bright-pants-cry", + "clever-starfishes-destroy", + "clever-years-hang", + "cool-islands-laugh", + "cool-kings-raise", + "create-app-1672154523", + "curvy-ducks-explode", + "eight-dragons-accept", + "eleven-trains-double", + "famous-experts-sneeze", + "fifty-paws-attack", + "fifty-zoos-nail", + "fluffy-fans-sing", + "fluffy-forks-happen", + "forty-years-retire", + "funny-pianos-grow", + "good-foxes-fail", + "good-geckos-reflect", + "hungry-falcons-cross", + "khaki-baboons-impress", + "late-forks-rescue", + "light-rice-end", + "lucky-apricots-dress", + "metal-hotels-deliver", + "nasty-planets-end", + "nervous-ravens-cough", + "ninety-phones-tell", + "odd-kings-tell", + "old-planets-care", + "olive-eyes-sing", + "proud-birds-worry", + "renovate-3493165", + "renovate-968149a", + "rude-chicken-itch", + "search-break-loop", + "search-mele-kalikimaka", + "search-pressure-back", + "selfish-phones-smoke", + "silver-chicken-travel", + "spicy-lions-dream", + "strong-eyes-march", + "sweet-tomatoes-cheer", + "tasty-impalas-cross", + "tasty-impalas-mix", + "thick-stingrays-smile", + "tidy-flies-cheer", + "tricky-toys-teach", + "twenty-nails-camp", + "two-buckets-do", + "witty-eels-itch" + ] } diff --git a/.changeset/proud-birds-worry.md b/.changeset/proud-birds-worry.md new file mode 100644 index 0000000000..cef7120fe1 --- /dev/null +++ b/.changeset/proud-birds-worry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-tech-insights-backend': patch +--- + +Complete check results run when a single check errors so that we don't block other checks from working due to an error in a single check diff --git a/.changeset/renovate-3493165.md b/.changeset/renovate-3493165.md new file mode 100644 index 0000000000..aa5146931e --- /dev/null +++ b/.changeset/renovate-3493165.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-techdocs-react': patch +'@backstage/plugin-techdocs': patch +--- + +Updated dependency `jss` to `~10.9.0`. diff --git a/.changeset/rich-clouds-smile.md b/.changeset/rich-clouds-smile.md new file mode 100644 index 0000000000..ee7b70644d --- /dev/null +++ b/.changeset/rich-clouds-smile.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +Documented `coreServices` an all of its members. diff --git a/.changeset/rude-chicken-itch.md b/.changeset/rude-chicken-itch.md new file mode 100644 index 0000000000..bf22d63921 --- /dev/null +++ b/.changeset/rude-chicken-itch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-openapi': patch +--- + +Updated internal usage of UrlReader interface. diff --git a/.changeset/spicy-lions-dream.md b/.changeset/spicy-lions-dream.md new file mode 100644 index 0000000000..939d12dd30 --- /dev/null +++ b/.changeset/spicy-lions-dream.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Add Github repository support for squash merge commit title and message options diff --git a/.changeset/sweet-tomatoes-cheer.md b/.changeset/sweet-tomatoes-cheer.md new file mode 100644 index 0000000000..d03a4b12c0 --- /dev/null +++ b/.changeset/sweet-tomatoes-cheer.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Avoid potential temporary directory conflict. diff --git a/.changeset/tidy-flies-cheer.md b/.changeset/tidy-flies-cheer.md new file mode 100644 index 0000000000..78de902e63 --- /dev/null +++ b/.changeset/tidy-flies-cheer.md @@ -0,0 +1,7 @@ +--- +'@backstage/config': patch +--- + +Adds the ability to coerce values to their boolean representatives. +Values such as `"true"` `1` `on` and `y` will become `true` when using `getBoolean` and the opposites `false`. +This happens particularly when such parameters are used with environmental substitution as environment variables are always strings. diff --git a/.changeset/tricky-toys-teach.md b/.changeset/tricky-toys-teach.md new file mode 100644 index 0000000000..f19b907682 --- /dev/null +++ b/.changeset/tricky-toys-teach.md @@ -0,0 +1,7 @@ +--- +'@backstage/create-app': patch +--- + +Remove deprecated `create-plugin` script from the `default-app` template's `package.json.hbs`. +Also, update the documentation to not mention the `create-plugin` script and instead mention +the `new` script. diff --git a/.changeset/twenty-nails-camp.md b/.changeset/twenty-nails-camp.md new file mode 100644 index 0000000000..3a8e2e4c3f --- /dev/null +++ b/.changeset/twenty-nails-camp.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Updated implementations for the new `RootLifecycleService`. diff --git a/.changeset/two-buckets-do.md b/.changeset/two-buckets-do.md new file mode 100644 index 0000000000..0f7652dcfa --- /dev/null +++ b/.changeset/two-buckets-do.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend': patch +--- + +Allow max page limit for search results to be configurable diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 20e1c867a7..98160a496d 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -82,6 +82,7 @@ dependabot deps destructured destructuring +Deutsche dev devops devs diff --git a/.github/workflows/verify_e2e-tugboat.yml b/.github/workflows/verify_e2e-tugboat.yml deleted file mode 100644 index cb3a463a0d..0000000000 --- a/.github/workflows/verify_e2e-tugboat.yml +++ /dev/null @@ -1,131 +0,0 @@ -name: E2E Test Tugboat -on: deployment_status - -jobs: - set-pending: - if: github.event.deployment_status.state != 'success' && github.event.deployment_status.state != 'failed' - name: Set pending waiting for Tugboat - runs-on: ubuntu-latest - steps: - # Set an initial commit status message to indicate that the tests are - # running. - - name: set pending status - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - debug: true - script: | - return github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: 'pending', - context: 'Backstage Tugboat E2E Tests', - description: 'Waiting for Tugboat to complete deployment', - target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - }); - - run-tests: - # Only run after a successful Tugboat deployment. - if: github.event.deployment_status.state == 'success' - name: Run tests against Tugboat deployment - runs-on: ubuntu-latest - steps: - # Set an initial commit status message to indicate that the tests are - # running. - - name: set pending status - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - debug: true - script: | - return github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: 'pending', - context: 'Backstage Tugboat E2E Tests', - description: 'Running against tugboat preview', - target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - }); - - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: '16.x' - - - name: yarn install - run: yarn --cwd cypress install - - # This is required because the environment_url param that Tugboat uses - # to tell us where the preview is located isn't supported unless you - # specify the custom Accept header when getting the deployment_status, - # and GitHub actions doesn't do that by default. So instead we have to - # load the status object manually and get the data we need. - # https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements/ - - name: get deployment status - id: get-status-env - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - result-encoding: string - script: | - const result = await github.rest.repos.getDeploymentStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - deployment_id: context.payload.deployment.id, - status_id: context.payload.deployment_status.id, - headers: { - 'Accept': 'application/vnd.github.ant-man-preview+json' - }, - }); - console.log(result); - return result.data.environment_url; - - - name: cypress run - uses: cypress-io/github-action@v2 - env: - CYPRESS_baseUrl: ${{steps.get-status-env.outputs.result}} - with: - config-file: ./cypress.json - working-directory: ./cypress - browser: chrome - install: false - headless: true - - - name: update artifact - if: ${{ always() }} - uses: actions/upload-artifact@v3 - with: - name: cypress-videos - path: ./cypress/cypress/videos - - - name: set status - if: ${{ failure() }} - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - script: | - return github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: "error", - context: 'Backstage Tugboat E2E Tests', - target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - }); - - - name: set status - if: ${{ success() }} - uses: actions/github-script@v6 - with: - github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}} - script: | - return github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: "success", - context: 'Backstage Tugboat E2E Tests', - target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - }); diff --git a/.tugboat/config.yml b/.tugboat/config.yml deleted file mode 100644 index 1d06e39152..0000000000 --- a/.tugboat/config.yml +++ /dev/null @@ -1,17 +0,0 @@ -services: - backstage: - image: tugboatqa/node:lts - expose: 7007 - default: true - commands: - init: - - mkdir -p /etc/service/node - - echo "#!/bin/sh" > /etc/service/node/run - - echo "yarn --cwd ${TUGBOAT_ROOT} start-backend --config ${TUGBOAT_ROOT}/app-config.yaml --config ${TUGBOAT_ROOT}/.tugboat/tugboat.app-config.production.yaml" >> /etc/service/node/run - - chmod +x /etc/service/node/run - build: - - yarn install --immutable - - yarn workspace example-app build - start: - # wget the endpoint. Will retry every 2 seconds. 30 retries = 1m for service to come up. Plenty. - - wget -O /dev/null -o /dev/null --tries=30 --timeout=5 --retry-connrefused http://localhost:7007 diff --git a/.tugboat/tugboat.app-config.production.yaml b/.tugboat/tugboat.app-config.production.yaml deleted file mode 100644 index b264d53f3f..0000000000 --- a/.tugboat/tugboat.app-config.production.yaml +++ /dev/null @@ -1,10 +0,0 @@ -app: - title: Backstage Tugboat Preview - baseUrl: ${TUGBOAT_DEFAULT_SERVICE_URL} - -backend: - baseUrl: ${TUGBOAT_DEFAULT_SERVICE_URL} - cors: - origin: ${TUGBOAT_DEFAULT_SERVICE_URL} - methods: [GET, POST, PUT, DELETE] - credentials: true diff --git a/ADOPTERS.md b/ADOPTERS.md index 781610e3fb..efa0003f2d 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -224,3 +224,4 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [FanDuel](https://fanduel.com) | [Diego Herrera](https://github.com/diegoh), [Christy Campbell](https://github.com/FD-ChristopherCampbell) | We use backstage as our developer portal to provide visibility of our software, ownership, strategy, and the state of maturity across disciplines. | | [Operate First](https://www.operate-first.cloud/) | [Tom Coufal](https://github.com/tumido), [Sam Kopecky](https://github.com/samokopecky) | Backstage provides us with a public service catalog and serves as a gateway to our community cloud. Our instance is publicly available to everyone [here](https://service-catalog.operate-first.cloud/) ([source](https://github.com/operate-first/service-catalog)) | | [Tractable AI](https://tractable.ai/) | [Stephan Schielke](https://github.com/stephanschielke) | We are hitting a critical point in our scale (100+ engineers) and need to get a handle on discoverability and ownership. The Service Catalog, TechDocs and Search are essential to us to achieve that. | +| [Garanti BBVA Teknoloji](https://www.linkedin.com/company/garanti-teknoloji/) | [Caglar Cataloglu](https://github.com/crozwise) | We are using Backstage focusing on improving experience of developers, minimizing friction from idea to production. We call our portal as "Hyperspace" and very excited for our community (2000+ engineers) that finally we have a platform to boost our productivity! diff --git a/cypress/README.md b/cypress/README.md index 4212af398c..be2960e63c 100644 --- a/cypress/README.md +++ b/cypress/README.md @@ -2,10 +2,6 @@ Hey 👋 Welcome to the Cypress tests for Backstage. They're designed to be run against the `packages/app` folder in the main repo, and be some form of smoke tests to make sure that we don't break any core functionality. -They run part of the PR build, and are triggered from the `.github/workflows/tugboat.yml` file. - -The main app gets built up part of a [Tugboat Build](https://tugboat.qa), which when complete, sends a `deployment event` to the PR triggering the aforementioned workflow. - ### Running Locally In order to make typescript happy, this `cypress` package is separate from all the Jest dependencies in the monorepo workspaces setup. diff --git a/docs/assets/getting-started/create-plugin_output.png b/docs/assets/getting-started/create-plugin_output.png index 47231c2079..78389fa02f 100644 Binary files a/docs/assets/getting-started/create-plugin_output.png and b/docs/assets/getting-started/create-plugin_output.png differ diff --git a/docs/deployment/scaling.md b/docs/deployment/scaling.md index f3aa744cf7..f41708f32f 100644 --- a/docs/deployment/scaling.md +++ b/docs/deployment/scaling.md @@ -17,7 +17,7 @@ into multiple different services, each running a different set of plugins. This is a more advanced approach and requires you to be able to route requests to the appropriate backends based on the plugin ID. Both for ingress, but also internal traffic between Backstage backends, which is done by creating a custom -implementation of the [PluginEndpointDiscover](../reference/backend-common.pluginendpointdiscovery.md) interface. +implementation of the [DiscoveryService](../reference/backend-plugin-api.discoveryservice.md) interface. Lastly, you can also replicate the Backstage deployments across multiple regions. This is not a pattern that there is built-in support for and typically only makes diff --git a/docs/features/software-catalog/external-integrations.md b/docs/features/software-catalog/external-integrations.md index 66813cc4d2..da4eb3d229 100644 --- a/docs/features/software-catalog/external-integrations.md +++ b/docs/features/software-catalog/external-integrations.md @@ -111,10 +111,10 @@ export class FrobsProvider implements EntityProvider { throw new Error('Not initialized'); } - const raw = await this.reader.read( + const response = await this.reader.readUrl( `https://frobs-${this.env}.example.com/data`, ); - const data = JSON.parse(raw.toString()); + const data = JSON.parse(await response.buffer()).toString(); /** [5] **/ const entities: Entity[] = frobsToEntities(data); @@ -525,8 +525,8 @@ export class SystemXReaderProcessor implements CatalogProcessor { // API. If you prefer, you can just use plain fetch here // (from the node-fetch package), or any other method of // your choosing. - const data = await this.reader.read(location.target); - const json = JSON.parse(data.toString()); + const response = await this.reader.readUrl(location.target); + const json = JSON.parse((await response.buffer()).toString()); // Repeatedly call emit(processingResult.entity(location, )) } catch (error) { const message = `Unable to read ${location.type}, ${error}`; @@ -627,7 +627,7 @@ export class SystemXReaderProcessor implements CatalogProcessor { // We send the ETag from the previous run if it exists. // The previous ETag will be set in the headers for the outgoing request and system-x // is going to throw NOT_MODIFIED (HTTP 304) if the ETag matches. - const response = await this.reader.readUrl?.(location.target, { + const response = await this.reader.readUrl(location.target, { etag: cacheItem?.etag, }); if (!response) { diff --git a/docs/getting-started/contributors.md b/docs/getting-started/contributors.md index cda53f8a54..b6a12be013 100644 --- a/docs/getting-started/contributors.md +++ b/docs/getting-started/contributors.md @@ -116,7 +116,7 @@ yarn clean # Remove all output folders and @backstage/cli cache yarn diff # Make sure all plugins are up to date with the latest plugin template -yarn create-plugin # Create a new plugin +yarn new # Create a new module ``` > See diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 16e361a19f..962919015b 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -49,7 +49,7 @@ installation. Running the command below will install Backstage. The wizard will create a subdirectory inside your current working directory. ```bash -npx @backstage/create-app +npx @backstage/create-app@latest ``` The wizard will ask you for the name of the app, which will also be the name of the directory diff --git a/docs/getting-started/project-structure.md b/docs/getting-started/project-structure.md index 858f0d8370..7873613a7b 100644 --- a/docs/getting-started/project-structure.md +++ b/docs/getting-started/project-structure.md @@ -101,7 +101,7 @@ are separated out into their own folder, see further down. - [`cli/`](https://github.com/backstage/backstage/tree/master/packages/cli) - One of the biggest packages in our project, the `cli` is used to build, serve, - diff, create-plugins and more. In the early days of this project, we started + diff, create plugins and more. In the early days of this project, we started out with calling tools directly - such as `eslint` - through `package.json`. But as it was tricky to have a good development experience around that when we change named tooling, we opted for wrapping those in our own CLI. That way diff --git a/docs/integrations/github/org.md b/docs/integrations/github/org.md index 9e3c450adc..0aa9997bae 100644 --- a/docs/integrations/github/org.md +++ b/docs/integrations/github/org.md @@ -17,7 +17,7 @@ entities that mirror your org setup. > provide authentication. See the > [GitHub auth provider](../../auth/github/provider.md) for that. -## Installation +## Installation without Events Support This guide will use the Entity Provider method. If you for some reason prefer the Processor method (not recommended), it is described separately below. @@ -60,6 +60,52 @@ schedule it: + ); ``` +## Installation with Events Support + +Please follow the installation instructions at + +- https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md +- https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-github/README.md + +Additionally, you need to decide how you want to receive events from external sources like + +- [via HTTP endpoint](https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md) +- [via an AWS SQS queue](https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-aws-sqs/README.md) + +Set up your provider + +```diff +// packages/backend/src/plugins/catalogEventBasedProviders.ts ++import { GithubOrgEntityProvider } from '@backstage/plugin-catalog-backend-module-github'; + import { EntityProvider } from '@backstage/plugin-catalog-node'; + import { EventSubscriber } from '@backstage/plugin-events-node'; + import { PluginEnvironment } from '../types'; + export default async function createCatalogEventBasedProviders( +- _: PluginEnvironment, ++ env: PluginEnvironment, + ): Promise> { + const providers: Array< + (EntityProvider & EventSubscriber) | Array + > = []; +- // add your event-based entity providers here ++ providers.push( ++ GithubOrgEntityProvider.fromConfig(env.config, { ++ id: 'production', ++ orgUrl: 'https://github.com/backstage', ++ logger: env.logger, ++ schedule: env.scheduler.createScheduledTaskRunner({ ++ frequency: { minutes: 60 }, ++ timeout: { minutes: 15 }, ++ }), ++ }), ++ ); + return providers.flat(); + } +``` + +You can check the official docs to [configure your webhook](https://docs.github.com/en/developers/webhooks-and-events/webhooks/creating-webhooks) and to [secure your request](https://docs.github.com/en/developers/webhooks-and-events/webhooks/securing-your-webhooks). +The webhook will need to be configured to forward `organization`,`team` and `membership` events. + ## Configuration As mentioned above, you also must have some configuration in your app-config diff --git a/docs/local-dev/cli-commands.md b/docs/local-dev/cli-commands.md index 715d586545..b43825d733 100644 --- a/docs/local-dev/cli-commands.md +++ b/docs/local-dev/cli-commands.md @@ -201,15 +201,15 @@ Usage: backstage-cli package postpack [options] Restores the changes made by the prepack command ``` -## create +## new -The `create` command opens up an interactive guide for you to create new things +The `new` command opens up an interactive guide for you to create new things in your app. If you do not pass in any options it is completely interactive, but it is possible to pre-select what you want to create using the `--select` flag, -and provide options using `--options`, for example: +and provide options using `--option`, for example: ```bash -backstage-cli create --select plugin --option id=foo +backstage-cli new --select plugin --option id=foo ``` This command is typically added as script in the root `package.json` to be diff --git a/docs/overview/versioning-policy.md b/docs/overview/versioning-policy.md index ad5421585e..fdb3a974b1 100644 --- a/docs/overview/versioning-policy.md +++ b/docs/overview/versioning-policy.md @@ -116,9 +116,8 @@ For packages at version `1.0.0` or above, the following policy also applies: before it can be removed. - The release of breaking changes document a clear upgrade path in the changelog, both when deprecations are introduced and when they are removed. -- Exports that have been marked as `@alpha` or `@beta` may receive breaking - changes without a deprecation period, but the changes must still adhere to - semver. +- Breaking changes to `@alpha` or `@beta` exports must result in at least a minor + version bump, and may be done without a deprecation period. ### Changes that are Not Considered Breaking diff --git a/docs/plugins/backend-plugin.md b/docs/plugins/backend-plugin.md index 65a668d391..517779d161 100644 --- a/docs/plugins/backend-plugin.md +++ b/docs/plugins/backend-plugin.md @@ -28,7 +28,7 @@ lowercase characters separated by dashes, for example `carmen`, if it's a package that adds an integration with a system named Carmen, for example. The full NPM package name would then be something like `@internal/plugin-carmen-backend`, depending on the other flags passed to the -`create-plugin` command, and your settings for the `create-plugin` command in +`new` command, and your settings for the `new` command in your root `package.json`. Creating the plugin will take a little while, so be patient. It will helpfully diff --git a/docs/plugins/create-a-plugin.md b/docs/plugins/create-a-plugin.md index 29607af140..da7cf0051a 100644 --- a/docs/plugins/create-a-plugin.md +++ b/docs/plugins/create-a-plugin.md @@ -11,7 +11,7 @@ A Backstage Plugin adds functionality to Backstage. To create a new plugin, make sure you've run `yarn install` and installed dependencies, then run the following on your command line (a shortcut to invoking the -[`backstage-cli create-plugin`](../local-dev/cli-commands.md#create-plugin)) +[`backstage-cli new --select plugin`](../local-dev/cli-commands.md#new)) from the root of your project. ```bash diff --git a/docs/plugins/integrating-plugin-into-software-catalog.md b/docs/plugins/integrating-plugin-into-software-catalog.md index 97efa56ac3..a44e6d01c0 100644 --- a/docs/plugins/integrating-plugin-into-software-catalog.md +++ b/docs/plugins/integrating-plugin-into-software-catalog.md @@ -21,7 +21,7 @@ should have a separate package in a folder, which represents your plugin. Example: ``` -$ yarn create-plugin +$ yarn new --select plugin > ? Enter an ID for the plugin [required] my-plugin > ? Enter the owner(s) of the plugin. If specified, this will be added to CODEOWNERS for the plugin path. [optional] diff --git a/docs/plugins/url-reader.md b/docs/plugins/url-reader.md index 815674091b..595c87ab94 100644 --- a/docs/plugins/url-reader.md +++ b/docs/plugins/url-reader.md @@ -60,15 +60,7 @@ The generic interface of a URL Reader instance looks like this. ```ts export type UrlReader = { /* Used to read a single file and return its content. */ - read(url: string): Promise; - /** - * A replacement for the read method that supports options and complex responses. - * - * Use this whenever it is available, as the read method will be deprecated and - * eventually removed in the future. - */ - readUrl?(url: string, options?: ReadUrlOptions): Promise; - + readUrl(url: string, options?: ReadUrlOptions): Promise; /* Used to read a file tree and download as a directory. */ readTree(url: string, options?: ReadTreeOptions): Promise; /* Used to search a file in a tree. */ @@ -102,8 +94,8 @@ backend plugins. Once the reader instance is available inside the plugin, one of its methods can directly be used with a URL. Some example usages - -- [`read`](https://github.com/backstage/backstage/blob/d5c83bb889b8142e343ebc4e4c0b90a02d1c1a3d/plugins/catalog-backend/src/ingestion/processors/codeowners/read.ts#L24-L33) - - Catalog using the `read` method to read the CODEOWNERS file in a repository. +- [`readUrl`](https://github.com/backstage/backstage/blob/a7607b5/plugins/catalog-backend/src/modules/codeowners/lib/read.ts#L24-L33) - + Catalog using the `readUrl` method to read the CODEOWNERS file in a repository. - [`readTree`](https://github.com/backstage/backstage/blob/84a8788/plugins/techdocs-node/src/helpers.ts#L146-L167) - TechDocs using the `readTree` method to download markdown files in order to generate the documentation site. @@ -155,11 +147,9 @@ all the methods of the `UrlReader` interface should be implemented. However it is okay to start by implementing just one of them and create issues for the remaining. -#### read +#### `readUrl` -NOTE: Use `readUrl` instead of `read`. - -`read` method expects a user-friendly URL, something which can be copied from +`readUrl` method expects a user-friendly URL, something which can be copied from the browser naturally when a person is browsing the provider in their browser. - ✅ Valid URL : @@ -168,18 +158,10 @@ the browser naturally when a person is browsing the provider in their browser. `https://raw.githubusercontent.com/backstage/backstage/master/ADOPTERS.md` - ❌ Not a valid URL : `https://github.com/backstage/backstage/ADOPTERS.md` -Upon receiving the URL, `read` converts the user-friendly URL into an API URL +Upon receiving the URL, `readUrl` converts the user-friendly URL into an API URL which can be used to request the provider's API. -`read` then makes an authenticated request to the provider API and returns the -file's content. - -#### `readUrl` - -`readUrl` is a new interface that allows complex response objects and is -intended to replace the `read` method. This new method is currently optional to -implement which allows for a soft migration to `readUrl` instead of `read` in -the future. +`readUrl` then makes an authenticated request to the provider API and returns the response containing the file's contents and ETag(if the provider supports it). #### `readTree` diff --git a/docs/releases/v1.10.0-next.0-changelog.md b/docs/releases/v1.10.0-next.0-changelog.md new file mode 100644 index 0000000000..71bd712dbc --- /dev/null +++ b/docs/releases/v1.10.0-next.0-changelog.md @@ -0,0 +1,1916 @@ +# Release v1.10.0-next.0 + +## @backstage/catalog-client@1.3.0-next.0 + +### Minor Changes + +- f75bf76330: Implemented support for the `order` directive on `getEntities` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/errors@1.1.4 + +## @backstage/plugin-catalog-backend@1.7.0-next.0 + +### Minor Changes + +- f75bf76330: Implemented server side ordering in the entities endpoint + +### Patch Changes + +- d136793ff0: Fixed an issue where internal references in the catalog would stick around for longer than expected, causing entities to not be deleted or orphaned as expected. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-scaffolder@1.10.0-next.0 + +### Minor Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +### Patch Changes + +- 3c112f6967: rollback `@rjsf/validator-ajv8` to `@rjsf/validator-v6` +- 223e2c5f03: add `onChange` handler to`Stepper` component +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-react@0.4.8 + +## @backstage/app-defaults@1.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-permission-react@0.4.8 + +## @backstage/backend-test-utils@0.1.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/backend-app-api@0.2.4 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config@1.0.5 + +## @backstage/catalog-model@1.1.5-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/cli@0.22.1-next.0 + +### Patch Changes + +- 47c10706df: Fixed an issue where the CLI would fail to function when there was a mix of workspace and non-workspace versions of the same package in `yarn.lock` when using Yarn 3. +- a62a1f9dca: The frontend serve task now filters out allowed package duplicates during its package check, just like `versions:bump` and `versions:check`. +- 7c8a974515: The `repo test`, `repo lint`, and `repo build` commands will now analyze `yarn.lock` for dependency changes when searching for changed packages. This allows you to use the `--since ` flag even if you have `yarn.lock` changes. +- e1b71e142e: Workspace ranges are no longer considered invalid by version commands. +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/config@1.0.5 + - @backstage/config-loader@1.1.7 + - @backstage/errors@1.1.4 + - @backstage/release-manifests@0.0.8 + - @backstage/types@1.0.2 + +## @backstage/core-components@0.12.3-next.0 + +### Patch Changes + +- f2ea446de0: Applied fix from v1.9.1 +- Updated dependencies + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/version-bridge@1.0.3 + +## @backstage/create-app@0.4.36-next.0 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.11 + +## @backstage/dev-utils@1.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + +## @backstage/integration-react@1.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/repo-tools@0.1.1-next.0 + +### Patch Changes + +- c447a5221b: Use the project tsconfig in case of selection all packages +- 93cff3053e: Move some dependencies as `peerDependencies` because we need to always use same version as in `api-extractor` +- 75275b0b0b: Updated dependency `@microsoft/tsdoc-config` to `0.16.2`. +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/errors@1.1.4 + +## @techdocs/cli@1.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/cli-common@0.1.11 + - @backstage/config@1.0.5 + - @backstage/plugin-techdocs-node@1.4.4-next.0 + +## @backstage/plugin-adr@0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-adr-common@0.2.5-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-adr-backend@0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-adr-common@0.2.5-next.0 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-adr-common@0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/integration@1.4.1 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-airbrake@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/dev-utils@1.0.11-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + +## @backstage/plugin-allure@0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-analytics-module-ga@0.1.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-apache-airflow@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + +## @backstage/plugin-api-docs@0.8.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + +## @backstage/plugin-apollo-explorer@0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-auth-backend@0.17.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + +## @backstage/plugin-azure-devops@0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-devops-common@0.3.0 + +## @backstage/plugin-azure-sites@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-sites-common@0.1.0 + +## @backstage/plugin-badges@0.2.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-badges-backend@0.1.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + +## @backstage/plugin-bazaar@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog@1.7.2-next.0 + +## @backstage/plugin-bazaar-backend@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + +## @backstage/plugin-bitrise@0.1.41-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-catalog@1.7.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-catalog-backend-module-aws@0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-azure@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-node@0.2.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-github@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-node@0.2.0 + +## @backstage/plugin-catalog-backend-module-gitlab@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-permission-common@0.7.2 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-backend-module-msgraph@0.4.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-catalog-common@1.0.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-catalog-graph@0.2.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-catalog-graphql@0.3.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/config@1.0.5 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-import@0.9.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.0 + +## @backstage/plugin-catalog-node@1.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + +## @backstage/plugin-catalog-react@1.2.4-next.0 + +### Patch Changes + +- 37426f6f5e: Fixed bug in `EntityTagPicker` that filtered on unavailable tags for the selected kind. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + +## @backstage/plugin-cicd-statistics@0.1.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-plugin-api@1.2.0 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-cicd-statistics@0.1.16-next.0 + +## @backstage/plugin-circleci@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-cloudbuild@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-code-climate@0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-code-coverage@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-code-coverage-backend@0.2.6-next.0 + +### Patch Changes + +- dcfdaeccd3: `RouterOptions` now accepts an optional `catalogApi` argument, allowing custom catalog clients to be used. This is leveraged in the local standalone development runner to pass in a catalog client that returns fake data. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + +## @backstage/plugin-codescene@0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-config-schema@0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-cost-insights@0.12.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-cost-insights-common@0.1.1 + +## @backstage/plugin-dynatrace@1.0.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-explore@0.3.45-next.0 + +### Patch Changes + +- d318d4f659: Makes the `GroupsDiagram` not grown on screen on its own. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.24 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-explore-backend@0.0.2-next.0 + +### Patch Changes + +- 358554ff3c: Bump `msw` to `^0.49.0` +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-firehydrant@0.1.31-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-fossa@0.2.46-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gcalendar@0.3.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gcp-projects@0.3.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-git-release-manager@0.3.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-actions@0.5.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-deployments@0.1.45-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-issues@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-pull-requests-board@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gitops-profiles@0.3.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gocd@0.1.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-graphiql@0.2.46-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-graphql-backend@0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-graphql@0.3.17-next.0 + +## @backstage/plugin-home@0.4.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-stack-overflow@0.1.10-next.0 + +## @backstage/plugin-ilert@0.2.3-next.0 + +### Patch Changes + +- b1279d396d: fixed error on service page not showing if historical uptime was disabled on a service +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-jenkins@0.7.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-jenkins-common@0.1.12-next.0 + +## @backstage/plugin-jenkins-backend@0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-jenkins-common@0.1.12-next.0 + - @backstage/plugin-permission-common@0.7.2 + +## @backstage/plugin-jenkins-common@0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + +## @backstage/plugin-kafka@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-kafka-backend@0.2.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + +## @backstage/plugin-kubernetes@0.7.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-kubernetes-common@0.5.1-next.0 + +## @backstage/plugin-kubernetes-backend@0.9.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-kubernetes-common@0.5.1-next.0 + +## @backstage/plugin-kubernetes-common@0.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + +## @backstage/plugin-lighthouse@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-newrelic@0.3.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-newrelic-dashboard@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + +## @backstage/plugin-org@0.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-org-react@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-pagerduty@0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-periskop@0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-playlist@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/plugin-playlist-common@0.1.3 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-playlist-backend@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-playlist-common@0.1.3 + +## @backstage/plugin-rollbar@0.4.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-scaffolder-backend@1.9.1-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-catalog-node@1.3.1-next.0 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.15-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.13-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/config@1.0.5 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-common@1.2.4-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-search@1.0.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-search-backend@1.2.1-next.0 + +### Patch Changes + +- bfd66b0478: Allow max page limit for search results to be configurable +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- 1e1a9fe979: Fixed a bug that could cause an indexing process to silently fail, timeout, and accumulate stale indices. +- 56633804dd: Fixed a bug that could cause the backstage backend to unexpectedly terminate when client errors were encountered during the indexing process. +- aa33a06894: Improved index throughput by optimizing when and how many documents were made available to the bulk client. +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-search-backend-module-pg@0.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-search-backend-node@1.1.1-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-search-react@1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-sentry@0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-shortcuts@0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-sonarqube@0.6.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-sonarqube-react@0.1.1-next.0 + +## @backstage/plugin-sonarqube-react@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-plugin-api@1.2.0 + +## @backstage/plugin-splunk-on-call@0.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-stack-overflow@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-home@0.4.30-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-stack-overflow-backend@0.1.9-next.0 + +### Patch Changes + +- 06f6a4f0f1: Enable configuration override for StackOverflow backend plugin when instantiating the search indexer. This makes it possible to set different configuration for frontend and backend of the plugin. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-tech-insights@0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + +## @backstage/plugin-tech-insights-backend@0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + - @backstage/plugin-tech-insights-node@0.3.7 + +## @backstage/plugin-tech-radar@0.5.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-techdocs@1.4.3-next.0 + +### Patch Changes + +- 7115c7389b: Updated dependency `jss` to `~10.9.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + - @backstage/plugin-search-react@1.3.2-next.0 + +## @backstage/plugin-techdocs-backend@1.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-techdocs-node@1.4.4-next.0 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-techdocs-node@1.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-aws-node@0.1.0 + - @backstage/plugin-search-common@1.2.0 + +## @backstage/plugin-techdocs-react@1.1.2-next.0 + +### Patch Changes + +- 7115c7389b: Updated dependency `jss` to `~10.9.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/version-bridge@1.0.3 + +## @backstage/plugin-todo@0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-todo-backend@0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + +## @backstage/plugin-user-settings@0.6.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-user-settings-backend@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + +## @backstage/plugin-vault@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-vault-backend@0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + +## @backstage/plugin-xcmetrics@0.2.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## example-app@0.2.79-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/plugin-scaffolder@1.10.0-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/plugin-explore@0.3.45-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/config@1.0.5 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-airbrake@0.3.14-next.0 + - @backstage/plugin-apache-airflow@0.2.7-next.0 + - @backstage/plugin-api-docs@0.8.14-next.0 + - @backstage/plugin-azure-devops@0.2.5-next.0 + - @backstage/plugin-azure-sites@0.1.3-next.0 + - @backstage/plugin-badges@0.2.38-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-graph@0.2.26-next.0 + - @backstage/plugin-catalog-import@0.9.4-next.0 + - @backstage/plugin-circleci@0.3.14-next.0 + - @backstage/plugin-cloudbuild@0.3.14-next.0 + - @backstage/plugin-code-coverage@0.2.7-next.0 + - @backstage/plugin-cost-insights@0.12.3-next.0 + - @backstage/plugin-dynatrace@1.0.4-next.0 + - @backstage/plugin-gcalendar@0.3.10-next.0 + - @backstage/plugin-gcp-projects@0.3.33-next.0 + - @backstage/plugin-github-actions@0.5.14-next.0 + - @backstage/plugin-gocd@0.1.20-next.0 + - @backstage/plugin-graphiql@0.2.46-next.0 + - @backstage/plugin-home@0.4.30-next.0 + - @backstage/plugin-jenkins@0.7.13-next.0 + - @backstage/plugin-kafka@0.3.14-next.0 + - @backstage/plugin-kubernetes@0.7.7-next.0 + - @backstage/plugin-lighthouse@0.3.14-next.0 + - @backstage/plugin-newrelic@0.3.32-next.0 + - @backstage/plugin-newrelic-dashboard@0.2.7-next.0 + - @backstage/plugin-org@0.6.4-next.0 + - @backstage/plugin-pagerduty@0.5.7-next.0 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/plugin-playlist@0.1.5-next.0 + - @backstage/plugin-rollbar@0.4.14-next.0 + - @backstage/plugin-search@1.0.7-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + - @backstage/plugin-sentry@0.4.7-next.0 + - @backstage/plugin-shortcuts@0.3.6-next.0 + - @backstage/plugin-stack-overflow@0.1.10-next.0 + - @backstage/plugin-tech-insights@0.3.6-next.0 + - @backstage/plugin-tech-radar@0.5.21-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.0 + - @backstage/plugin-todo@0.2.16-next.0 + - @backstage/plugin-user-settings@0.6.2-next.0 + - @internal/plugin-catalog-customized@0.0.6-next.0 + +## example-backend@0.2.79-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-explore-backend@0.0.2-next.0 + - @backstage/plugin-code-coverage-backend@0.2.6-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.0 + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/plugin-search-backend@1.2.1-next.0 + - example-app@0.2.79-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/plugin-app-backend@0.3.39 + - @backstage/plugin-auth-backend@0.17.3-next.0 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-azure-devops-backend@0.3.18 + - @backstage/plugin-azure-sites-backend@0.1.1 + - @backstage/plugin-badges-backend@0.1.34-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-backend@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/plugin-graphql-backend@0.1.30-next.0 + - @backstage/plugin-jenkins-backend@0.1.30-next.0 + - @backstage/plugin-kafka-backend@0.2.33-next.0 + - @backstage/plugin-kubernetes-backend@0.9.1-next.0 + - @backstage/plugin-permission-backend@0.5.14 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-playlist-backend@0.2.3-next.0 + - @backstage/plugin-proxy-backend@0.2.33 + - @backstage/plugin-rollbar-backend@0.1.36 + - @backstage/plugin-search-backend-module-pg@0.5.1-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-tech-insights-backend@0.5.6-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.23 + - @backstage/plugin-tech-insights-node@0.3.7 + - @backstage/plugin-techdocs-backend@1.5.1-next.0 + - @backstage/plugin-todo-backend@0.1.37-next.0 + +## example-backend-next@0.0.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-defaults@0.1.4 + - @backstage/plugin-app-backend@0.3.39 + +## techdocs-cli-embedded-app@0.2.78-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/config@1.0.5 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + +## @internal/plugin-catalog-customized@0.0.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/plugin-catalog@1.7.2-next.0 + +## @internal/plugin-todo-list@1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 diff --git a/docs/releases/v1.10.0-next.1-changelog.md b/docs/releases/v1.10.0-next.1-changelog.md new file mode 100644 index 0000000000..8f8b9ed764 --- /dev/null +++ b/docs/releases/v1.10.0-next.1-changelog.md @@ -0,0 +1,2157 @@ +# Release v1.10.0-next.1 + +## @backstage/backend-common@0.18.0-next.0 + +### Minor Changes + +- 5e2cebe9a3: **BREAKING**: Removed deprecated `read` method from the `UrlReader` interface. All implementations should use the `readUrl` method instead. + + Migrated `UrlReader` and related types to `backend/backend-plugin-api`, types remain re-exported from `backend-common` for now. + +### Patch Changes + +- 6f02d23b01: Moved `PluginEndpointDiscovery` type from backend-common to backend-plugin-api. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/cli-common@0.1.11 + - @backstage/config-loader@1.1.8-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend@1.10.0-next.1 + +### Minor Changes + +- 04a2048fb8: Allow custom repository roles to be configured on github repos +- a69664faee: Add Github repository support for squash merge commit title and message options + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.1 + +## @backstage/app-defaults@1.0.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-permission-react@0.4.9-next.0 + +## @backstage/backend-app-api@0.2.5-next.0 + +### Patch Changes + +- 6cfd4d7073: Updated implementations for the new `RootLifecycleService`. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-node@0.7.3-next.0 + +## @backstage/backend-defaults@0.1.5-next.0 + +### Patch Changes + +- 6cfd4d7073: Include implementations for the new `rootLifecycleServiceRef`. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-app-api@0.2.5-next.0 + +## @backstage/backend-plugin-api@0.2.1-next.0 + +### Patch Changes + +- 6cfd4d7073: Added `RootLifecycleService` and `rootLifecycleServiceRef`, as well as added a `labels` option to the existing `LifecycleServiceShutdownHook`. +- 5e2cebe9a3: Migrate `UrlReader` into this package to gradually remove the dependency on backend-common. +- 6f02d23b01: Moved `PluginEndpointDiscovery` type from backend-common to backend-plugin-api. +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## @backstage/backend-tasks@0.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/backend-test-utils@0.1.32-next.1 + +### Patch Changes + +- 6cfd4d7073: Include implementations for the new `rootLifecycleServiceRef`. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/cli@0.22.1-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-app-api@0.2.5-next.0 + +## @backstage/catalog-client@1.3.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + +## @backstage/catalog-model@1.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/cli@0.22.1-next.1 + +### Patch Changes + +- db2e137744: Removed unnecessary usage of `ThemeProvider` from the `ExampleComponent` test in the plugin template. +- 4b572126f1: Add experimental environment variable to enable caching for production builds. +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/cli-common@0.1.11 + - @backstage/config-loader@1.1.8-next.0 + - @backstage/errors@1.1.4 + - @backstage/release-manifests@0.0.8 + - @backstage/types@1.0.2 + +## @backstage/config@1.0.6-next.0 + +### Patch Changes + +- ba2d69ee17: Adds the ability to coerce values to their boolean representatives. + Values such as `"true"` `1` `on` and `y` will become `true` when using `getBoolean` and the opposites `false`. + This happens particularly when such parameters are used with environmental substitution as environment variables are always strings. +- Updated dependencies + - @backstage/types@1.0.2 + +## @backstage/config-loader@1.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/cli-common@0.1.11 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/core-app-api@1.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + +## @backstage/core-components@0.12.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/version-bridge@1.0.3 + +## @backstage/core-plugin-api@1.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + +## @backstage/create-app@0.4.36-next.1 + +### Patch Changes + +- 724b55689b: Avoid potential temporary directory conflict. +- a2a70504e3: Remove deprecated `create-plugin` script from the `default-app` template's `package.json.hbs`. + Also, update the documentation to not mention the `create-plugin` script and instead mention + the `new` script. +- Updated dependencies + - @backstage/cli-common@0.1.11 + +## @backstage/dev-utils@1.0.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/app-defaults@1.0.11-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/test-utils@1.2.4-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/integration@1.4.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + +## @backstage/integration-aws-node@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + +## @backstage/integration-react@1.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + +## @backstage/repo-tools@0.1.1-next.1 + +### Patch Changes + +- d48cf39f2a: fix glob on windows os +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/errors@1.1.4 + +## @techdocs/cli@1.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/cli-common@0.1.11 + - @backstage/plugin-techdocs-node@1.4.4-next.1 + +## @backstage/test-utils@1.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-react@0.4.9-next.0 + +## @backstage/plugin-adr@0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-adr-common@0.2.5-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## @backstage/plugin-adr-backend@0.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-adr-common@0.2.5-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-adr-common@0.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-airbrake@0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/dev-utils@1.0.11-next.1 + - @backstage/test-utils@1.2.4-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-airbrake-backend@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + +## @backstage/plugin-allure@0.1.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-analytics-module-ga@0.1.25-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-apache-airflow@0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + +## @backstage/plugin-api-docs@0.8.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-apollo-explorer@0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-app-backend@0.3.40-next.0 + +### Patch Changes + +- b4ffa3bd91: The warning for missing app contents is now logged as an error instead, but only in production. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/config-loader@1.1.8-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-auth-backend@0.17.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.9-next.0 + +## @backstage/plugin-auth-node@0.2.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + +## @backstage/plugin-azure-devops@0.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-devops-common@0.3.0 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-azure-devops-backend@0.3.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-azure-devops-common@0.3.0 + +## @backstage/plugin-azure-sites@0.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-sites-common@0.1.0 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-azure-sites-backend@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-azure-sites-common@0.1.0 + +## @backstage/plugin-badges@0.2.38-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-badges-backend@0.1.34-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + +## @backstage/plugin-bazaar@0.2.3-next.1 + +### Patch Changes + +- 0bf734dbac: Created soft cut on `ProjectCard` to indicate more content. +- 41d0b0a24a: Added `isBazaarAvailable` helper to be used with the `EntitySwitch`. +- Updated dependencies + - @backstage/cli@0.22.1-next.1 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-bazaar-backend@0.2.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + +## @backstage/plugin-bitbucket-cloud-common@0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.4.2-next.0 + +## @backstage/plugin-bitrise@0.1.41-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-catalog@1.7.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## @backstage/plugin-catalog-backend@1.7.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-catalog-backend-module-aws@0.1.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-backend-module-azure@0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.3-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/plugin-events-node@0.2.1-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.3-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.1 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + +## @backstage/plugin-catalog-backend-module-github@0.2.3-next.1 + +### Patch Changes + +- 427d8f4411: Added support for event based updates in the `GithubOrgEntityProvider`! + Based on webhook events from GitHub the affected `User` or `Group` entity will be refreshed. + This includes adding new entities, refreshing existing ones, and removing obsolete ones. + + Please find more information at + + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/plugin-events-node@0.2.1-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + +## @backstage/plugin-catalog-backend-module-gitlab@0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-backend-module-msgraph@0.4.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.6-next.1 + +### Patch Changes + +- f9abdb64fc: Updated internal usage of UrlReader interface. +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-common@1.0.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-catalog-graph@0.2.26-next.1 + +### Patch Changes + +- 99f05cbc70: The link from the `CatalogGraphCard` to the `CatalogGraphPage` no longer includes an explicit `maxDepth` parameter, letting the `CatalogGraphPage` choose the initial `maxDepth` instead. +- Updated dependencies + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-catalog-graphql@0.3.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/types@1.0.2 + +## @backstage/plugin-catalog-import@0.9.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-catalog-node@1.3.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + +## @backstage/plugin-catalog-react@1.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-react@0.4.9-next.0 + +## @backstage/plugin-cicd-statistics@0.1.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/plugin-cicd-statistics@0.1.16-next.1 + +## @backstage/plugin-circleci@0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-cloudbuild@0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-code-climate@0.1.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-code-coverage@0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-code-coverage-backend@0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + +## @backstage/plugin-codescene@0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-config-schema@0.1.37-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-cost-insights@0.12.3-next.1 + +### Patch Changes + +- 6a41175d70: Removed @backstage/test-utils dependency, since it was already in the devDependencies where it belongs. The main benefit is that this will exclude better-sqlite3 from the production build. +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-cost-insights-common@0.1.1 + +## @backstage/plugin-dynatrace@1.0.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-events-backend@0.2.1-next.0 + +### Patch Changes + +- 217149ae98: The default event broker will now catch and log errors thrown by the `onEvent` method of subscribers. The returned promise from `publish` method will also not resolve until all subscribers have handled the event. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + +## @backstage/plugin-events-backend-module-aws-sqs@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-events-backend-module-azure@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + +## @backstage/plugin-events-backend-module-gerrit@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + +## @backstage/plugin-events-backend-module-github@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + +## @backstage/plugin-events-backend-module-gitlab@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + +## @backstage/plugin-events-backend-test-utils@0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.1-next.0 + +## @backstage/plugin-events-node@0.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + +## @backstage/plugin-explore@0.3.45-next.1 + +### Patch Changes + +- 9f9d279bd1: Updated `README.md` examples +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.25-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## @backstage/plugin-explore-backend@0.0.2-next.1 + +### Patch Changes + +- 9f9d279bd1: Updated `README.md` examples +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-explore-react@0.0.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/plugin-explore-common@0.0.1 + +## @backstage/plugin-firehydrant@0.1.31-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-fossa@0.2.46-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-gcalendar@0.3.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gcp-projects@0.3.33-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-git-release-manager@0.3.27-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-github-actions@0.5.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-github-deployments@0.1.45-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-github-issues@0.2.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-github-pull-requests-board@0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-gitops-profiles@0.3.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-gocd@0.1.20-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-graphiql@0.2.46-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-graphql-backend@0.1.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-graphql@0.3.17-next.1 + +## @backstage/plugin-home@0.4.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-stack-overflow@0.1.10-next.1 + +## @backstage/plugin-ilert@0.2.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-jenkins@0.7.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-jenkins-common@0.1.12-next.1 + +## @backstage/plugin-jenkins-backend@0.1.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-jenkins-common@0.1.12-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## @backstage/plugin-jenkins-common@0.1.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## @backstage/plugin-kafka@0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-kafka-backend@0.2.33-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + +## @backstage/plugin-kubernetes@0.7.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-kubernetes-common@0.5.1-next.1 + +## @backstage/plugin-kubernetes-backend@0.9.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-kubernetes-common@0.5.1-next.1 + +## @backstage/plugin-kubernetes-common@0.5.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + +## @backstage/plugin-lighthouse@0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-newrelic@0.3.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-newrelic-dashboard@0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-org@0.6.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-org-react@0.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-pagerduty@0.5.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-periskop@0.1.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-periskop-backend@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + +## @backstage/plugin-permission-backend@0.5.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + +## @backstage/plugin-permission-common@0.7.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## @backstage/plugin-permission-node@0.7.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## @backstage/plugin-permission-react@0.4.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## @backstage/plugin-playlist@0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-react@0.4.9-next.0 + - @backstage/plugin-playlist-common@0.1.4-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## @backstage/plugin-playlist-backend@0.2.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + - @backstage/plugin-playlist-common@0.1.4-next.0 + +## @backstage/plugin-playlist-common@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.3-next.0 + +## @backstage/plugin-proxy-backend@0.2.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + +## @backstage/plugin-rollbar@0.4.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-rollbar-backend@0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + +## @backstage/plugin-scaffolder@1.10.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-permission-react@0.4.9-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.1 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/config@1.0.6-next.0 + - @backstage/types@1.0.2 + +## @backstage/plugin-scaffolder-common@1.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/types@1.0.2 + +## @backstage/plugin-search@1.0.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## @backstage/plugin-search-backend@1.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-search-backend-module-pg@0.5.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-search-backend-node@1.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-search-common@1.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/types@1.0.2 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## @backstage/plugin-search-react@1.3.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-sentry@0.4.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-shortcuts@0.3.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-sonarqube@0.6.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-sonarqube-react@0.1.1-next.1 + +## @backstage/plugin-sonarqube-backend@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + +## @backstage/plugin-sonarqube-react@0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + +## @backstage/plugin-splunk-on-call@0.4.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-stack-overflow@0.1.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-home@0.4.30-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## @backstage/plugin-stack-overflow-backend@0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-tech-insights@0.3.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-tech-insights-common@0.2.9 + +## @backstage/plugin-tech-insights-backend@0.5.6-next.1 + +### Patch Changes + +- 7a38a31699: Complete check results run when a single check errors so that we don't block other checks from working due to an error in a single check +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + - @backstage/plugin-tech-insights-node@0.3.8-next.0 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-tech-insights-common@0.2.9 + - @backstage/plugin-tech-insights-node@0.3.8-next.0 + +## @backstage/plugin-tech-insights-node@0.3.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + +## @backstage/plugin-tech-radar@0.5.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## @backstage/plugin-techdocs@1.4.3-next.1 + +### Patch Changes + +- a74dd61534: Fix sizing of build log component to render all lines +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs@1.4.3-next.1 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/test-utils@1.2.4-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-search-react@1.3.2-next.1 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + +## @backstage/plugin-techdocs-backend@1.5.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-techdocs-node@1.4.4-next.1 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + +## @backstage/plugin-techdocs-node@1.4.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-aws-node@0.1.1-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## @backstage/plugin-techdocs-react@1.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/version-bridge@1.0.3 + +## @backstage/plugin-todo@0.2.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-todo-backend@0.1.37-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + +## @backstage/plugin-user-settings@0.6.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## @backstage/plugin-user-settings-backend@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.9-next.0 + +## @backstage/plugin-vault@0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @backstage/plugin-vault-backend@0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/errors@1.1.4 + +## @backstage/plugin-xcmetrics@0.2.34-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## example-app@0.2.79-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.1 + - @backstage/plugin-catalog-graph@0.2.26-next.1 + - @backstage/plugin-explore@0.3.45-next.1 + - @backstage/plugin-techdocs@1.4.3-next.1 + - @backstage/plugin-cost-insights@0.12.3-next.1 + - @backstage/config@1.0.6-next.0 + - @backstage/app-defaults@1.0.11-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-airbrake@0.3.14-next.1 + - @backstage/plugin-apache-airflow@0.2.7-next.1 + - @backstage/plugin-api-docs@0.8.14-next.1 + - @backstage/plugin-azure-devops@0.2.5-next.1 + - @backstage/plugin-azure-sites@0.1.3-next.1 + - @backstage/plugin-badges@0.2.38-next.1 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-import@0.9.4-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-circleci@0.3.14-next.1 + - @backstage/plugin-cloudbuild@0.3.14-next.1 + - @backstage/plugin-code-coverage@0.2.7-next.1 + - @backstage/plugin-dynatrace@1.0.4-next.1 + - @backstage/plugin-gcalendar@0.3.10-next.1 + - @backstage/plugin-gcp-projects@0.3.33-next.1 + - @backstage/plugin-github-actions@0.5.14-next.1 + - @backstage/plugin-gocd@0.1.20-next.1 + - @backstage/plugin-graphiql@0.2.46-next.1 + - @backstage/plugin-home@0.4.30-next.1 + - @backstage/plugin-jenkins@0.7.13-next.1 + - @backstage/plugin-kafka@0.3.14-next.1 + - @backstage/plugin-kubernetes@0.7.7-next.1 + - @backstage/plugin-lighthouse@0.3.14-next.1 + - @backstage/plugin-newrelic@0.3.32-next.1 + - @backstage/plugin-newrelic-dashboard@0.2.7-next.1 + - @backstage/plugin-org@0.6.4-next.1 + - @backstage/plugin-pagerduty@0.5.7-next.1 + - @backstage/plugin-permission-react@0.4.9-next.0 + - @backstage/plugin-playlist@0.1.5-next.1 + - @backstage/plugin-rollbar@0.4.14-next.1 + - @backstage/plugin-scaffolder@1.10.0-next.1 + - @backstage/plugin-search@1.0.7-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + - @backstage/plugin-sentry@0.4.7-next.1 + - @backstage/plugin-shortcuts@0.3.6-next.1 + - @backstage/plugin-stack-overflow@0.1.10-next.1 + - @backstage/plugin-tech-insights@0.3.6-next.1 + - @backstage/plugin-tech-radar@0.5.21-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.1 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + - @backstage/plugin-todo@0.2.16-next.1 + - @backstage/plugin-user-settings@0.6.2-next.1 + - @internal/plugin-catalog-customized@0.0.6-next.1 + +## example-backend@0.2.79-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/plugin-explore-backend@0.0.2-next.1 + - @backstage/plugin-events-backend@0.2.1-next.0 + - @backstage/plugin-app-backend@0.3.40-next.0 + - @backstage/plugin-tech-insights-backend@0.5.6-next.1 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/plugin-events-node@0.2.1-next.0 + - example-app@0.2.79-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-auth-backend@0.17.3-next.1 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-azure-devops-backend@0.3.19-next.0 + - @backstage/plugin-azure-sites-backend@0.1.2-next.0 + - @backstage/plugin-badges-backend@0.1.34-next.1 + - @backstage/plugin-code-coverage-backend@0.2.6-next.1 + - @backstage/plugin-graphql-backend@0.1.30-next.1 + - @backstage/plugin-jenkins-backend@0.1.30-next.1 + - @backstage/plugin-kafka-backend@0.2.33-next.1 + - @backstage/plugin-kubernetes-backend@0.9.1-next.1 + - @backstage/plugin-permission-backend@0.5.15-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + - @backstage/plugin-playlist-backend@0.2.3-next.1 + - @backstage/plugin-proxy-backend@0.2.34-next.0 + - @backstage/plugin-rollbar-backend@0.1.37-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.1 + - @backstage/plugin-search-backend@1.2.1-next.1 + - @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.1 + - @backstage/plugin-search-backend-module-pg@0.5.1-next.1 + - @backstage/plugin-search-backend-node@1.1.1-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.24-next.0 + - @backstage/plugin-tech-insights-node@0.3.8-next.0 + - @backstage/plugin-techdocs-backend@1.5.1-next.1 + - @backstage/plugin-todo-backend@0.1.37-next.1 + +## example-backend-next@0.0.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-defaults@0.1.5-next.0 + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/plugin-app-backend@0.3.40-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + +## techdocs-cli-embedded-app@0.2.78-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.1 + - @backstage/plugin-techdocs@1.4.3-next.1 + - @backstage/config@1.0.6-next.0 + - @backstage/app-defaults@1.0.11-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/test-utils@1.2.4-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + +## @internal/plugin-catalog-customized@0.0.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## @internal/plugin-todo-list@1.0.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## @internal/plugin-todo-list-backend@1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + +## @internal/plugin-todo-list-common@1.0.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.3-next.0 diff --git a/docs/tutorials/journey.md b/docs/tutorials/journey.md index 126bb5ae0d..af78cbe597 100644 --- a/docs/tutorials/journey.md +++ b/docs/tutorials/journey.md @@ -28,7 +28,7 @@ organization to easily install and add to their Backstage installation. # 1. A New Plugin Sam chooses to develop this plugin in a standalone project and creates a new -plugin using `npx @backstage/cli create-plugin`, which detects that it's not +plugin using `npx @backstage/cli new --select plugin`, which detects that it's not being run in an existing project and therefore creates a separate plugin repo. Spinning up the frontend with `yarn start`, Sam goes to work with getting the diff --git a/docs/tutorials/quickstart-app-plugin.md b/docs/tutorials/quickstart-app-plugin.md index ea0a511c93..a1b30829b3 100644 --- a/docs/tutorials/quickstart-app-plugin.md +++ b/docs/tutorials/quickstart-app-plugin.md @@ -29,8 +29,8 @@ title: Adding Custom Plugin to Existing Monorepo App # The Skeleton Plugin -1. Start by using the built in creator. From the terminal and root of your - project run: `yarn create-plugin` +1. Start by using the built-in creator. From the terminal and root of your + project run: `yarn new --select plugin` 1. Enter a plugin ID. I used `github-playground` 1. When the process finishes, let's start the backend: `yarn --cwd packages/backend start` diff --git a/microsite-next/yarn.lock b/microsite-next/yarn.lock index c7dcd41c28..3a632b3079 100644 --- a/microsite-next/yarn.lock +++ b/microsite-next/yarn.lock @@ -6749,11 +6749,11 @@ __metadata: linkType: hard "json5@npm:^2.1.2, json5@npm:^2.2.1": - version: 2.2.1 - resolution: "json5@npm:2.2.1" + version: 2.2.3 + resolution: "json5@npm:2.2.3" bin: json5: lib/cli.js - checksum: 74b8a23b102a6f2bf2d224797ae553a75488b5adbaee9c9b6e5ab8b510a2fc6e38f876d4c77dea672d4014a44b2399e15f2051ac2b37b87f74c0c7602003543b + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 languageName: node linkType: hard diff --git a/microsite/blog/2022-12-19-backstage-wrapped-2022.md b/microsite/blog/2022-12-19-backstage-wrapped-2022.md new file mode 100644 index 0000000000..967bc14433 --- /dev/null +++ b/microsite/blog/2022-12-19-backstage-wrapped-2022.md @@ -0,0 +1,79 @@ +--- +title: Backstage Wrapped 2022 +author: Francesco Corti & Suzanne Daniels +authorURL: https://github.com/fcorti +--- + +![wrapped header image](assets/2022-12-19/wrapped.png) + +If 2021 was the year of growth for the Backstage project and community, 2022 can be easily defined as the year of maturity. Both the project and the community continued to grow at an incredible pace and the platform is now more stable, more secure, and more powerful than ever. + +Our community is full of people from across the globe who bring incredible engagement and positive vibes to the project. And we finally got to experience this for the first time in real life during [BackstageCon](https://www.youtube.com/playlist?list=PLj6h78yzYM2OKySsTuiip3BqmdYZQRnSf), the very first in-person conference fully dedicated to Backstage, where hundreds of enthusiasts, the maintainers, adopters, and partners joined the event confirming the great momentum and the traction in the market. + +But before anticipating too much, let’s share some stats of this amazing 2022. + + + +## We grew … a lot! + +Last year we celebrated 75 [public adopters](https://github.com/backstage/backstage/blob/master/ADOPTERS.md) and today we have over 600 adopters, confirming the interest around Backstage across all the industries, sectors, and dimensions. Companies like [Toyota North America](https://aws.amazon.com/solutions/case-studies/toyota-ecs-case-study/), Deutsche Bank, Mercedes-Benz, Procter & Gamble, Siemens, LinkedIn, and many more joined the community this year and are actively contributing in growing the product and its maturity. + +![Accelerated growth of Public Backstage Adopters, from January 2021–December 2022.](assets/2022-12-19/public-backstage-adopters-2022.png) + +Not only are our adopters growing at an exponential rate, but so too are our contributors. Our [Discord server](https://discord.gg/backstage-687207715902193673) is a perfect example of the worlds of our adopters and contributors melding. On average, at any given hour of the day or night, there are more than 500 people online available to talk and provide support on any Backstage topic. Discord discussions run a full gamut of topics – from technical support questions to best practices for onboarding engineers to Backstage – basically, anything and everything an adopter may be interested to know and learn. At the very beginning of 2022, we “only” had 4k Discord members. Today, we have a growing membership of 8.2k. + +Isn’t it what we can call a great and vibrant community of enthusiasts? + +The growth of the ecosystem is not limited to the adopters and contributors. The ecosystem also includes big tech companies interested in growing Backstage by including it as part of their offering and integrations. Our [collaboration with VMWare](https://youtube.com/watch?v=GAzKCQO8Vt0&si=EnSIkaIECMiOmarE) is a great example of this, and [RedHat](https://developers.redhat.com/articles/2022/10/24/red-hat-joins-backstageio-community) joined the party this year – promising even faster growth in contributions and integrations for the Backstage project. + +Before we go any further, let’s take a quick look at some more numbers, mainly coming from the [Official Github repository](https://github.com/backstage/backstage). This year… + +- Our contributors grew from a group of 500 to 900+ +- Contributions to the project increased from 9k to 15k+ +- The number of forks shot up from 2k to 3k+ +- Backstage stars increased from 14k to almost 20k +- And lastly, we welcomed over 550 adopters into our community. + +All of these people driving the enormous growth and maturity of the project are represented in the chart below, which shows cumulative activities per month for Backstage: + +![Main Github metrics for Backstage.io.](assets/2022-12-19/github-metrics-for-backstage-io.png) + +Wow… that’s a lot of activity. We’ve generated this animation showing all of your contributions to the Backstage repository in 2022, look at this project grow: + + + +## But wait… there’s more + +The growth of the community is so exciting to see. And with all this community growth, comes growth and maturity of the product, making Backstage better able to support adopters in their developer experience challenges. The Backstage open source project has almost [100 plugins](https://backstage.io/plugins), each one amending Backstage with a tool or service to improve not only adopters’ Backstage apps, but their unique developer experiences. And almost every week we learn of a new one being contributed, which is amazing. + +The Backstage platform itself is leaving 2022 more mature than ever, thanks to milestones such as these: + +- [Backstage is now beyond version 1](https://backstage.io/blog/2022/03/17/backstage-1.0). +- [Backstage had its first Security Audit ever and now can rely on a Threat Model](https://backstage.io/blog/2022/08/23/backstage-security-audit). +- [Backstage Learn helps adopters get started more easily](https://backstage.spotify.com/learn/). +- [Backstage reached incubating status as part of the CNCF ecosystem](https://www.cncf.io/blog/2022/03/15/backstage-project-joins-the-cncf-incubator/). + +And like every mature project, now Backstage has also a mascot: Bowie the Beaver! + +![Bowie the Beaver.](assets/2022-12-19/bowie-the-beaver.png) + +Additionally, we launched a new [Special Interest Groups (SIGs)](https://github.com/backstage/community/tree/main/sigs) initiative this year, following the lead of Kubernetes. We believe Backstage SIGs will better coordinate contributions, grow the platform cohesively with the open source community, and allow contributors to dig even deeper as a community member. At this moment in time there two SIGs in place: + +- The [Catalog SIG](https://github.com/backstage/community/blob/main/sigs/sig-catalog/README.md), covering all aspects of the systems and components related to the Software Catalog. +- The [Adoption SIG](https://github.com/backstage/community/blob/main/sigs/sig-adoption/README.md), covering all aspects of the adoption journey of Backstage. + +Our plan is to open more SIGs in 2023 to engage more with the community and to keep driving towards cohesive growth for the community and project. + +Last but not least, we mustn't overlook the first ever conference fully dedicated to Backstage: BackstageCon. What was special there? SO much. But in particular two things: seeing everyone in real life and the incredible mood and conversations between maintainers, adopters, partners and enthusiasts. It’s hard to express just how positive and amazing the vibes were in a blog, but you can read our recap [here](https://backstage.io/blog/2022/10/28/backstagecon-kubecon-2022) or watch the sessions [here](https://www.youtube.com/playlist?list=PLj6h78yzYM2OKySsTuiip3BqmdYZQRnSf). And in the meantime, here are some great numbers from the event: + +- 250 attendees or a 100% full venue and packed room. +- 14 sessions +- 17 speakers + +## Goodbye, 2022. Hello, 2023! + +After this incredible year, thanks to everyone in the global Backstage community who contributed to the open source project in 2022. We are already working on the goals for 2023 – and as a roadmap teaser: we are very much committed to making the journey of adoption easier, faster, more valuable, and overall better. We would not be here today without our amazing community, so thank you for everything! + +Looking forward to continuing collaborating together for an exciting 2023. + +See you then! Happy holidays from everyone on the Backstage team at Spotify! diff --git a/microsite/blog/assets/2022-12-19/bowie-the-beaver.png b/microsite/blog/assets/2022-12-19/bowie-the-beaver.png new file mode 100644 index 0000000000..f01db5e002 Binary files /dev/null and b/microsite/blog/assets/2022-12-19/bowie-the-beaver.png differ diff --git a/microsite/blog/assets/2022-12-19/github-metrics-for-backstage-io.png b/microsite/blog/assets/2022-12-19/github-metrics-for-backstage-io.png new file mode 100644 index 0000000000..a6e64b3eb0 Binary files /dev/null and b/microsite/blog/assets/2022-12-19/github-metrics-for-backstage-io.png differ diff --git a/microsite/blog/assets/2022-12-19/public-backstage-adopters-2022.png b/microsite/blog/assets/2022-12-19/public-backstage-adopters-2022.png new file mode 100644 index 0000000000..ea14a32a42 Binary files /dev/null and b/microsite/blog/assets/2022-12-19/public-backstage-adopters-2022.png differ diff --git a/microsite/blog/assets/2022-12-19/wrapped.png b/microsite/blog/assets/2022-12-19/wrapped.png new file mode 100644 index 0000000000..e73fd860e7 Binary files /dev/null and b/microsite/blog/assets/2022-12-19/wrapped.png differ diff --git a/package.json b/package.json index f276d42416..f87d4ae1f4 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.9.0", + "version": "1.10.0-next.1", "dependencies": { "@backstage/errors": "workspace:^", "@manypkg/get-packages": "^1.1.3" diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 27f441671b..7022eb65d3 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/app-defaults +## 1.0.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-permission-react@0.4.9-next.0 + +## 1.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-permission-react@0.4.8 + ## 1.0.10 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index 4614379fd9..79a9ad7fe0 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/app-defaults", "description": "Provides the default wiring of a Backstage App", - "version": "1.0.9", + "version": "1.0.11-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index f9a6433d6f..1444c07d53 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,131 @@ # example-app +## 0.2.79-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.1 + - @backstage/plugin-catalog-graph@0.2.26-next.1 + - @backstage/plugin-explore@0.3.45-next.1 + - @backstage/plugin-techdocs@1.4.3-next.1 + - @backstage/plugin-cost-insights@0.12.3-next.1 + - @backstage/config@1.0.6-next.0 + - @backstage/app-defaults@1.0.11-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-airbrake@0.3.14-next.1 + - @backstage/plugin-apache-airflow@0.2.7-next.1 + - @backstage/plugin-api-docs@0.8.14-next.1 + - @backstage/plugin-azure-devops@0.2.5-next.1 + - @backstage/plugin-azure-sites@0.1.3-next.1 + - @backstage/plugin-badges@0.2.38-next.1 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-import@0.9.4-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-circleci@0.3.14-next.1 + - @backstage/plugin-cloudbuild@0.3.14-next.1 + - @backstage/plugin-code-coverage@0.2.7-next.1 + - @backstage/plugin-dynatrace@1.0.4-next.1 + - @backstage/plugin-gcalendar@0.3.10-next.1 + - @backstage/plugin-gcp-projects@0.3.33-next.1 + - @backstage/plugin-github-actions@0.5.14-next.1 + - @backstage/plugin-gocd@0.1.20-next.1 + - @backstage/plugin-graphiql@0.2.46-next.1 + - @backstage/plugin-home@0.4.30-next.1 + - @backstage/plugin-jenkins@0.7.13-next.1 + - @backstage/plugin-kafka@0.3.14-next.1 + - @backstage/plugin-kubernetes@0.7.7-next.1 + - @backstage/plugin-lighthouse@0.3.14-next.1 + - @backstage/plugin-newrelic@0.3.32-next.1 + - @backstage/plugin-newrelic-dashboard@0.2.7-next.1 + - @backstage/plugin-org@0.6.4-next.1 + - @backstage/plugin-pagerduty@0.5.7-next.1 + - @backstage/plugin-permission-react@0.4.9-next.0 + - @backstage/plugin-playlist@0.1.5-next.1 + - @backstage/plugin-rollbar@0.4.14-next.1 + - @backstage/plugin-scaffolder@1.10.0-next.1 + - @backstage/plugin-search@1.0.7-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + - @backstage/plugin-sentry@0.4.7-next.1 + - @backstage/plugin-shortcuts@0.3.6-next.1 + - @backstage/plugin-stack-overflow@0.1.10-next.1 + - @backstage/plugin-tech-insights@0.3.6-next.1 + - @backstage/plugin-tech-radar@0.5.21-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.1 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + - @backstage/plugin-todo@0.2.16-next.1 + - @backstage/plugin-user-settings@0.6.2-next.1 + - @internal/plugin-catalog-customized@0.0.6-next.1 + +## 0.2.79-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/plugin-scaffolder@1.10.0-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/plugin-explore@0.3.45-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/config@1.0.5 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-airbrake@0.3.14-next.0 + - @backstage/plugin-apache-airflow@0.2.7-next.0 + - @backstage/plugin-api-docs@0.8.14-next.0 + - @backstage/plugin-azure-devops@0.2.5-next.0 + - @backstage/plugin-azure-sites@0.1.3-next.0 + - @backstage/plugin-badges@0.2.38-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-graph@0.2.26-next.0 + - @backstage/plugin-catalog-import@0.9.4-next.0 + - @backstage/plugin-circleci@0.3.14-next.0 + - @backstage/plugin-cloudbuild@0.3.14-next.0 + - @backstage/plugin-code-coverage@0.2.7-next.0 + - @backstage/plugin-cost-insights@0.12.3-next.0 + - @backstage/plugin-dynatrace@1.0.4-next.0 + - @backstage/plugin-gcalendar@0.3.10-next.0 + - @backstage/plugin-gcp-projects@0.3.33-next.0 + - @backstage/plugin-github-actions@0.5.14-next.0 + - @backstage/plugin-gocd@0.1.20-next.0 + - @backstage/plugin-graphiql@0.2.46-next.0 + - @backstage/plugin-home@0.4.30-next.0 + - @backstage/plugin-jenkins@0.7.13-next.0 + - @backstage/plugin-kafka@0.3.14-next.0 + - @backstage/plugin-kubernetes@0.7.7-next.0 + - @backstage/plugin-lighthouse@0.3.14-next.0 + - @backstage/plugin-newrelic@0.3.32-next.0 + - @backstage/plugin-newrelic-dashboard@0.2.7-next.0 + - @backstage/plugin-org@0.6.4-next.0 + - @backstage/plugin-pagerduty@0.5.7-next.0 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/plugin-playlist@0.1.5-next.0 + - @backstage/plugin-rollbar@0.4.14-next.0 + - @backstage/plugin-search@1.0.7-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + - @backstage/plugin-sentry@0.4.7-next.0 + - @backstage/plugin-shortcuts@0.3.6-next.0 + - @backstage/plugin-stack-overflow@0.1.10-next.0 + - @backstage/plugin-tech-insights@0.3.6-next.0 + - @backstage/plugin-tech-radar@0.5.21-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.9-next.0 + - @backstage/plugin-todo@0.2.16-next.0 + - @backstage/plugin-user-settings@0.6.2-next.0 + - @internal/plugin-catalog-customized@0.0.6-next.0 + ## 0.2.79 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 575afe2c77..553754a15d 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.78", + "version": "0.2.79-next.1", "private": true, "backstage": { "role": "frontend" diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 5083b1897d..632ae21614 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-app-api +## 0.2.5-next.0 + +### Patch Changes + +- 6cfd4d7073: Updated implementations for the new `RootLifecycleService`. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-node@0.7.3-next.0 + ## 0.2.4 ### Patch Changes diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 33e732cf05..fa3f3bec2e 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -4,19 +4,21 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; -import { Config } from '@backstage/config'; +import { CacheService } from '@backstage/backend-plugin-api'; +import { ConfigService } from '@backstage/backend-plugin-api'; +import { DatabaseService } from '@backstage/backend-plugin-api'; import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { HttpRouterService } from '@backstage/backend-plugin-api'; import { LifecycleService } from '@backstage/backend-plugin-api'; import { LoggerService } from '@backstage/backend-plugin-api'; import { PermissionsService } from '@backstage/backend-plugin-api'; -import { PluginCacheManager } from '@backstage/backend-common'; -import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; -import { PluginTaskScheduler } from '@backstage/backend-tasks'; +import { RootLifecycleService } from '@backstage/backend-plugin-api'; +import { RootLoggerService } from '@backstage/backend-plugin-api'; +import { SchedulerService } from '@backstage/backend-plugin-api'; import { ServiceFactory } from '@backstage/backend-plugin-api'; import { ServiceRef } from '@backstage/backend-plugin-api'; -import { TokenManager } from '@backstage/backend-common'; +import { TokenManagerService } from '@backstage/backend-plugin-api'; import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) @@ -32,10 +34,12 @@ export interface Backend { // @public (undocumented) export const cacheFactory: ( options?: undefined, -) => ServiceFactory; +) => ServiceFactory; // @public (undocumented) -export const configFactory: (options?: undefined) => ServiceFactory; +export const configFactory: ( + options?: undefined, +) => ServiceFactory; // @public (undocumented) export function createSpecializedBackend( @@ -51,7 +55,7 @@ export interface CreateSpecializedBackendOptions { // @public (undocumented) export const databaseFactory: ( options?: undefined, -) => ServiceFactory; +) => ServiceFactory; // @public (undocumented) export const discoveryFactory: ( @@ -83,15 +87,20 @@ export const permissionsFactory: ( options?: undefined, ) => ServiceFactory; +// @public +export const rootLifecycleFactory: ( + options?: undefined, +) => ServiceFactory; + // @public (undocumented) export const rootLoggerFactory: ( options?: undefined, -) => ServiceFactory; +) => ServiceFactory; // @public (undocumented) export const schedulerFactory: ( options?: undefined, -) => ServiceFactory; +) => ServiceFactory; // @public (undocumented) export type ServiceOrExtensionPoint = @@ -101,7 +110,7 @@ export type ServiceOrExtensionPoint = // @public (undocumented) export const tokenManagerFactory: ( options?: undefined, -) => ServiceFactory; +) => ServiceFactory; // @public (undocumented) export const urlReaderFactory: ( diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 27b84b46fc..93230341df 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-app-api", "description": "Core API used by Backstage backend apps", - "version": "0.2.4", + "version": "0.2.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-app-api/src/services/implementations/index.ts b/packages/backend-app-api/src/services/implementations/index.ts index 2c26097f48..c87011d570 100644 --- a/packages/backend-app-api/src/services/implementations/index.ts +++ b/packages/backend-app-api/src/services/implementations/index.ts @@ -26,4 +26,5 @@ export { tokenManagerFactory } from './tokenManagerService'; export { urlReaderFactory } from './urlReaderService'; export { httpRouterFactory } from './httpRouterService'; export { lifecycleFactory } from './lifecycleService'; +export { rootLifecycleFactory } from './rootLifecycleService'; export type { HttpRouterFactoryOptions } from './httpRouterService'; diff --git a/packages/backend-app-api/src/services/implementations/lifecycleService.ts b/packages/backend-app-api/src/services/implementations/lifecycleService.ts index 317a2e45b8..bb864679b8 100644 --- a/packages/backend-app-api/src/services/implementations/lifecycleService.ts +++ b/packages/backend-app-api/src/services/implementations/lifecycleService.ts @@ -14,65 +14,10 @@ * limitations under the License. */ import { - LifecycleService, createServiceFactory, coreServices, - loggerToWinstonLogger, LifecycleServiceShutdownHook, } from '@backstage/backend-plugin-api'; -import { Logger } from 'winston'; - -const CALLBACKS = ['SIGTERM', 'SIGINT', 'beforeExit']; -export class BackendLifecycleImpl { - constructor(private readonly logger: Logger) { - CALLBACKS.map(signal => process.on(signal, () => this.shutdown())); - } - - #isCalled = false; - #shutdownTasks: Array = - []; - - addShutdownHook( - options: LifecycleServiceShutdownHook & { pluginId: string }, - ): void { - this.#shutdownTasks.push(options); - } - - async shutdown(): Promise { - if (this.#isCalled) { - return; - } - this.#isCalled = true; - - this.logger.info(`Running ${this.#shutdownTasks.length} shutdown tasks...`); - await Promise.all( - this.#shutdownTasks.map(hook => - Promise.resolve() - .then(() => hook.fn()) - .catch(e => { - this.logger.error( - `Shutdown hook registered by plugin '${hook.pluginId}' failed with: ${e}`, - ); - }) - .then(() => - this.logger.info( - `Successfully ran shutdown hook registered by plugin ${hook.pluginId}`, - ), - ), - ), - ); - } -} - -class PluginScopedLifecycleImpl implements LifecycleService { - constructor( - private readonly lifecycle: BackendLifecycleImpl, - private readonly pluginId: string, - ) {} - addShutdownHook(options: LifecycleServiceShutdownHook): void { - this.lifecycle.addShutdownHook({ ...options, pluginId: this.pluginId }); - } -} /** * Allows plugins to register shutdown hooks that are run when the process is about to exit. @@ -80,15 +25,20 @@ class PluginScopedLifecycleImpl implements LifecycleService { export const lifecycleFactory = createServiceFactory({ service: coreServices.lifecycle, deps: { - logger: coreServices.rootLogger, - plugin: coreServices.pluginMetadata, + rootLifecycle: coreServices.rootLifecycle, + pluginMetadata: coreServices.pluginMetadata, }, - async factory({ logger }) { - const rootLifecycle = new BackendLifecycleImpl( - loggerToWinstonLogger(logger), - ); - return async ({ plugin }) => { - return new PluginScopedLifecycleImpl(rootLifecycle, plugin.getId()); + async factory({ rootLifecycle }) { + return async ({ pluginMetadata }) => { + const plugin = pluginMetadata.getId(); + return { + addShutdownHook(options: LifecycleServiceShutdownHook): void { + rootLifecycle.addShutdownHook({ + ...options, + labels: { ...options?.labels, plugin }, + }); + }, + }; }; }, }); diff --git a/packages/backend-app-api/src/services/implementations/lifecycleService.test.ts b/packages/backend-app-api/src/services/implementations/rootLifecycleService.test.ts similarity index 91% rename from packages/backend-app-api/src/services/implementations/lifecycleService.test.ts rename to packages/backend-app-api/src/services/implementations/rootLifecycleService.test.ts index c0b69a3bef..686827fecd 100644 --- a/packages/backend-app-api/src/services/implementations/lifecycleService.test.ts +++ b/packages/backend-app-api/src/services/implementations/rootLifecycleService.test.ts @@ -15,14 +15,14 @@ */ import { getVoidLogger } from '@backstage/backend-common'; -import { BackendLifecycleImpl } from './lifecycleService'; +import { BackendLifecycleImpl } from './rootLifecycleService'; describe('lifecycleService', () => { it('should execute registered shutdown hook', async () => { const service = new BackendLifecycleImpl(getVoidLogger()); const hook = jest.fn(); service.addShutdownHook({ - pluginId: 'test', + labels: { plugin: 'test' }, fn: async () => { hook(); }, @@ -37,7 +37,7 @@ describe('lifecycleService', () => { it('should not throw errors', async () => { const service = new BackendLifecycleImpl(getVoidLogger()); service.addShutdownHook({ - pluginId: 'test', + labels: { plugin: 'test' }, fn: async () => { throw new Error('oh no'); }, diff --git a/packages/backend-app-api/src/services/implementations/rootLifecycleService.ts b/packages/backend-app-api/src/services/implementations/rootLifecycleService.ts new file mode 100644 index 0000000000..c4ad4678ba --- /dev/null +++ b/packages/backend-app-api/src/services/implementations/rootLifecycleService.ts @@ -0,0 +1,69 @@ +/* + * 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 { + createServiceFactory, + coreServices, + loggerToWinstonLogger, + LifecycleServiceShutdownHook, + RootLifecycleService, +} from '@backstage/backend-plugin-api'; +import { Logger } from 'winston'; + +const CALLBACKS = ['SIGTERM', 'SIGINT', 'beforeExit']; +export class BackendLifecycleImpl implements RootLifecycleService { + constructor(private readonly logger: Logger) { + CALLBACKS.map(signal => process.on(signal, () => this.shutdown())); + } + + #isCalled = false; + #shutdownTasks: Array = []; + + addShutdownHook(options: LifecycleServiceShutdownHook): void { + this.#shutdownTasks.push(options); + } + + async shutdown(): Promise { + if (this.#isCalled) { + return; + } + this.#isCalled = true; + + this.logger.info(`Running ${this.#shutdownTasks.length} shutdown tasks...`); + await Promise.all( + this.#shutdownTasks.map(async hook => { + try { + await hook.fn(); + this.logger.info(`Shutdown hook succeeded`, hook.labels); + } catch (error) { + this.logger.error(`Shutdown hook failed, ${error}`, hook.labels); + } + }), + ); + } +} + +/** + * Allows plugins to register shutdown hooks that are run when the process is about to exit. + * @public */ +export const rootLifecycleFactory = createServiceFactory({ + service: coreServices.rootLifecycle, + deps: { + logger: coreServices.rootLogger, + }, + async factory({ logger }) { + return new BackendLifecycleImpl(loggerToWinstonLogger(logger)); + }, +}); diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 478cb30ff8..69512ba4c2 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -20,7 +20,7 @@ import { coreServices, ServiceRef, } from '@backstage/backend-plugin-api'; -import { BackendLifecycleImpl } from '../services/implementations/lifecycleService'; +import { BackendLifecycleImpl } from '../services/implementations/rootLifecycleService'; import { BackendRegisterInit, EnumerableServiceHolder, @@ -182,14 +182,13 @@ export class BackendInitializer { } const lifecycleService = await this.#serviceHolder.get( - coreServices.lifecycle, + coreServices.rootLifecycle, 'root', ); // TODO(Rugvip): Find a better way to do this - const lifecycle = (lifecycleService as any)?.lifecycle; - if (lifecycle instanceof BackendLifecycleImpl) { - await lifecycle.shutdown(); + if (lifecycleService instanceof BackendLifecycleImpl) { + await lifecycleService.shutdown(); } else { throw new Error('Unexpected lifecycle service implementation'); } diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index 84169045e5..f287ff190a 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/backend-common +## 0.18.0-next.0 + +### Minor Changes + +- 5e2cebe9a3: **BREAKING**: Removed deprecated `read` method from the `UrlReader` interface. All implementations should use the `readUrl` method instead. + + Migrated `UrlReader` and related types to `backend/backend-plugin-api`, types remain re-exported from `backend-common` for now. + +### Patch Changes + +- 6f02d23b01: Moved `PluginEndpointDiscovery` type from backend-common to backend-plugin-api. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/cli-common@0.1.11 + - @backstage/config-loader@1.1.8-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + ## 0.17.0 ### Minor Changes diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 784f3295c6..e8b41e21bb 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -30,12 +30,23 @@ import { KubeConfig } from '@kubernetes/client-node'; import { LoadConfigOptionsRemote } from '@backstage/config-loader'; import { Logger } from 'winston'; import { MergeResult } from 'isomorphic-git'; +import { DiscoveryService as PluginEndpointDiscovery } from '@backstage/backend-plugin-api'; import { PushResult } from 'isomorphic-git'; import { Readable } from 'stream'; import { ReadCommitResult } from 'isomorphic-git'; +import { ReadTreeOptions } from '@backstage/backend-plugin-api'; +import { ReadTreeResponse } from '@backstage/backend-plugin-api'; +import { ReadTreeResponseDirOptions } from '@backstage/backend-plugin-api'; +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 { Router } from 'express'; +import { SearchOptions } from '@backstage/backend-plugin-api'; +import { SearchResponse } from '@backstage/backend-plugin-api'; +import { SearchResponseFile } from '@backstage/backend-plugin-api'; import { Server } from 'http'; +import { UrlReaderService as UrlReader } from '@backstage/backend-plugin-api'; import { V1PodTemplateSpec } from '@kubernetes/client-node'; import * as winston from 'winston'; import { Writable } from 'stream'; @@ -520,11 +531,7 @@ export interface PluginDatabaseManager { }; } -// @public -export type PluginEndpointDiscovery = { - getBaseUrl(pluginId: string): Promise; - getExternalBaseUrl(pluginId: string): Promise; -}; +export { PluginEndpointDiscovery }; // @public export type ReaderFactory = (options: { @@ -533,30 +540,11 @@ export type ReaderFactory = (options: { treeResponseFactory: ReadTreeResponseFactory; }) => UrlReaderPredicateTuple[]; -// @public -export type ReadTreeOptions = { - filter?( - path: string, - info?: { - size: number; - }, - ): boolean; - etag?: string; - signal?: AbortSignal; -}; +export { ReadTreeOptions }; -// @public -export type ReadTreeResponse = { - files(): Promise; - archive(): Promise; - dir(options?: ReadTreeResponseDirOptions): Promise; - etag: string; -}; +export { ReadTreeResponse }; -// @public -export type ReadTreeResponseDirOptions = { - targetDir?: string; -}; +export { ReadTreeResponseDirOptions }; // @public export interface ReadTreeResponseFactory { @@ -587,24 +575,11 @@ export type ReadTreeResponseFactoryOptions = { ) => boolean; }; -// @public -export type ReadTreeResponseFile = { - path: string; - content(): Promise; -}; +export { ReadTreeResponseFile }; -// @public -export type ReadUrlOptions = { - etag?: string; - signal?: AbortSignal; -}; +export { ReadUrlOptions }; -// @public -export type ReadUrlResponse = { - buffer(): Promise; - stream?(): Readable; - etag?: string; -}; +export { ReadUrlResponse }; // @public export class ReadUrlResponseFactory { @@ -652,23 +627,11 @@ export type RunContainerOptions = { pullImage?: boolean; }; -// @public -export type SearchOptions = { - etag?: string; - signal?: AbortSignal; -}; +export { SearchOptions }; -// @public -export type SearchResponse = { - files: SearchResponseFile[]; - etag: string; -}; +export { SearchResponse }; -// @public -export type SearchResponseFile = { - url: string; - content(): Promise; -}; +export { SearchResponseFile }; // @public export class ServerTokenManager implements TokenManager { @@ -755,13 +718,7 @@ export interface TokenManager { }>; } -// @public -export type UrlReader = { - read(url: string): Promise; - readUrl(url: string, options?: ReadUrlOptions): Promise; - readTree(url: string, options?: ReadTreeOptions): Promise; - search(url: string, options?: SearchOptions): Promise; -}; +export { UrlReader }; // @public export type UrlReaderPredicateTuple = { diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 0af96cc41e..fc131723a7 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-common", "description": "Common functionality library for Backstage backends", - "version": "0.17.0", + "version": "0.18.0-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { @@ -34,6 +34,7 @@ "test:kubernetes": "backstage-cli package test -t KubernetesContainerRunner --no-watch" }, "dependencies": { + "@backstage/backend-plugin-api": "workspace:^", "@backstage/cli-common": "workspace:^", "@backstage/config": "workspace:^", "@backstage/config-loader": "workspace:^", diff --git a/packages/backend-common/src/discovery/types.ts b/packages/backend-common/src/discovery/types.ts index 0b502bf88c..3ecdb7aa39 100644 --- a/packages/backend-common/src/discovery/types.ts +++ b/packages/backend-common/src/discovery/types.ts @@ -14,50 +14,4 @@ * limitations under the License. */ -/** - * The PluginEndpointDiscovery is used to provide a mechanism for backend - * plugins to discover the endpoints for itself or other backend plugins. - * - * The purpose of the discovery API is to allow for many different deployment - * setups and routing methods through a central configuration, instead - * of letting each individual plugin manage that configuration. - * - * Implementations of the discovery API can be as simple as a URL pattern - * using the pluginId, but could also have overrides for individual plugins, - * or query a separate discovery service. - * - * @public - */ -export type PluginEndpointDiscovery = { - /** - * Returns the internal HTTP base URL for a given plugin, without a trailing slash. - * - * The returned URL should point to an internal endpoint for the plugin, with - * the shortest route possible. The URL should be used for service-to-service - * communication within a Backstage backend deployment. - * - * This method must always be called just before making a request, as opposed to - * fetching the URL when constructing an API client. That is to ensure that more - * flexible routing patterns can be supported. - * - * For example, asking for the URL for `catalog` may return something - * like `http://10.1.2.3/api/catalog` - */ - getBaseUrl(pluginId: string): Promise; - - /** - * Returns the external HTTP base backend URL for a given plugin, without a trailing slash. - * - * The returned URL should point to an external endpoint for the plugin, such that - * it is reachable from the Backstage frontend and other external services. The returned - * URL should be usable for example as a callback / webhook URL. - * - * The returned URL should be stable and in general not change unless other static - * or external configuration is changed. Changes should not come as a surprise - * to an operator of the Backstage backend. - * - * For example, asking for the URL for `catalog` may return something - * like `https://backstage.example.com/api/catalog` - */ - getExternalBaseUrl(pluginId: string): Promise; -}; +export type { DiscoveryService as PluginEndpointDiscovery } from '@backstage/backend-plugin-api'; diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.ts b/packages/backend-common/src/reading/AwsS3UrlReader.ts index b9fc58ef5c..dd7a3da3d4 100644 --- a/packages/backend-common/src/reading/AwsS3UrlReader.ts +++ b/packages/backend-common/src/reading/AwsS3UrlReader.ts @@ -117,7 +117,7 @@ export function parseUrl( } /** - * Implements a {@link UrlReader} for AWS S3 buckets. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for AWS S3 buckets. * * @public */ diff --git a/packages/backend-common/src/reading/AzureUrlReader.ts b/packages/backend-common/src/reading/AzureUrlReader.ts index 140496c181..08e3917b38 100644 --- a/packages/backend-common/src/reading/AzureUrlReader.ts +++ b/packages/backend-common/src/reading/AzureUrlReader.ts @@ -40,7 +40,7 @@ import { import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; /** - * Implements a {@link UrlReader} for Azure repos. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for Azure repos. * * @public */ diff --git a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts b/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts index 7bc4cd9c11..b83e012423 100644 --- a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts +++ b/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts @@ -42,7 +42,7 @@ import { import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; /** - * Implements a {@link UrlReader} for files from Bitbucket Cloud. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket Cloud. * * @public */ diff --git a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts index bcab226b0f..a97c3b39bb 100644 --- a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts +++ b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts @@ -41,7 +41,7 @@ import { import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; /** - * Implements a {@link UrlReader} for files from Bitbucket Server APIs. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket Server APIs. * * @public */ diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.ts b/packages/backend-common/src/reading/BitbucketUrlReader.ts index 805697bf27..2b0325d644 100644 --- a/packages/backend-common/src/reading/BitbucketUrlReader.ts +++ b/packages/backend-common/src/reading/BitbucketUrlReader.ts @@ -43,7 +43,7 @@ import { import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; /** - * Implements a {@link UrlReader} for files from Bitbucket v1 and v2 APIs, such + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket v1 and v2 APIs, such * as the one exposed by Bitbucket Cloud itself. * * @public diff --git a/packages/backend-common/src/reading/FetchUrlReader.ts b/packages/backend-common/src/reading/FetchUrlReader.ts index d38cc510b1..20b78d63c3 100644 --- a/packages/backend-common/src/reading/FetchUrlReader.ts +++ b/packages/backend-common/src/reading/FetchUrlReader.ts @@ -63,7 +63,7 @@ const parsePortPredicate = (port: string | undefined) => { }; /** - * A {@link UrlReader} that does a plain fetch of the URL. + * A {@link @backstage/backend-plugin-api#UrlReaderService} that does a plain fetch of the URL. * * @public */ diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts index 59b33bb2cb..5d86e5d9ac 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -52,7 +52,7 @@ const createTemporaryDirectory = async (workDir: string): Promise => await fs.mkdtemp(joinPath(workDir, '/gerrit-clone-')); /** - * Implements a {@link UrlReader} for files in Gerrit. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files in Gerrit. * * @remarks * To be able to link to Git contents for Gerrit providers in a user friendly diff --git a/packages/backend-common/src/reading/GiteaUrlReader.ts b/packages/backend-common/src/reading/GiteaUrlReader.ts index da6b791949..1471bab608 100644 --- a/packages/backend-common/src/reading/GiteaUrlReader.ts +++ b/packages/backend-common/src/reading/GiteaUrlReader.ts @@ -36,7 +36,7 @@ import { import { Readable } from 'stream'; /** - * Implements a {@link UrlReader} for the Gitea v1 api. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for the Gitea v1 api. * * @public */ diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-common/src/reading/GithubUrlReader.ts index 7abf1b2518..d91c35621d 100644 --- a/packages/backend-common/src/reading/GithubUrlReader.ts +++ b/packages/backend-common/src/reading/GithubUrlReader.ts @@ -51,7 +51,7 @@ export type GhBlobResponse = RestEndpointMethodTypes['git']['getBlob']['response']['data']; /** - * Implements a {@link UrlReader} for files through the GitHub v3 APIs, such as + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files through the GitHub v3 APIs, such as * the one exposed by GitHub itself. * * @public diff --git a/packages/backend-common/src/reading/GitlabUrlReader.ts b/packages/backend-common/src/reading/GitlabUrlReader.ts index c80f1b566c..bebc7453d0 100644 --- a/packages/backend-common/src/reading/GitlabUrlReader.ts +++ b/packages/backend-common/src/reading/GitlabUrlReader.ts @@ -42,7 +42,7 @@ import { trimEnd, trimStart } from 'lodash'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; /** - * Implements a {@link UrlReader} for files on GitLab. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files on GitLab. * * @public */ diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts b/packages/backend-common/src/reading/GoogleGcsUrlReader.ts index 56b15a60e7..c9f5a58895 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts +++ b/packages/backend-common/src/reading/GoogleGcsUrlReader.ts @@ -51,7 +51,7 @@ const parseURL = ( }; /** - * Implements a {@link UrlReader} for files on Google GCS. + * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files on Google GCS. * * @public */ diff --git a/packages/backend-common/src/reading/UrlReaderPredicateMux.test.ts b/packages/backend-common/src/reading/UrlReaderPredicateMux.test.ts index 38473557e0..89dac93fff 100644 --- a/packages/backend-common/src/reading/UrlReaderPredicateMux.test.ts +++ b/packages/backend-common/src/reading/UrlReaderPredicateMux.test.ts @@ -70,7 +70,6 @@ describe('UrlReaderPredicateMux', () => { mux.register({ predicate: url => url.hostname === 'foo', reader: { - read: jest.fn(), readUrl: jest.fn(), readTree: jest.fn(), search: jest.fn(), diff --git a/packages/backend-common/src/reading/UrlReaderPredicateMux.ts b/packages/backend-common/src/reading/UrlReaderPredicateMux.ts index d5d30605b2..a7c2e5f983 100644 --- a/packages/backend-common/src/reading/UrlReaderPredicateMux.ts +++ b/packages/backend-common/src/reading/UrlReaderPredicateMux.ts @@ -45,18 +45,6 @@ export class UrlReaderPredicateMux implements UrlReader { this.readers.push(tuple); } - async read(url: string): Promise { - const parsed = new URL(url); - - for (const { predicate, reader } of this.readers) { - if (predicate(parsed)) { - return reader.read(url); - } - } - - throw new NotAllowedError(notAllowedMessage(url)); - } - async readUrl( url: string, options?: ReadUrlOptions, diff --git a/packages/backend-common/src/reading/UrlReaders.ts b/packages/backend-common/src/reading/UrlReaders.ts index 9fb403e7e9..a567eef412 100644 --- a/packages/backend-common/src/reading/UrlReaders.ts +++ b/packages/backend-common/src/reading/UrlReaders.ts @@ -32,7 +32,7 @@ import { AwsS3UrlReader } from './AwsS3UrlReader'; import { GiteaUrlReader } from './GiteaUrlReader'; /** - * Creation options for {@link UrlReaders}. + * Creation options for {@link @backstage/backend-plugin-api#UrlReaderService}. * * @public */ @@ -46,13 +46,13 @@ export type UrlReadersOptions = { }; /** - * Helps construct {@link UrlReader}s. + * Helps construct {@link @backstage/backend-plugin-api#UrlReaderService}s. * * @public */ export class UrlReaders { /** - * Creates a custom {@link UrlReader} wrapper for your own set of factories. + * Creates a custom {@link @backstage/backend-plugin-api#UrlReaderService} wrapper for your own set of factories. */ static create(options: UrlReadersOptions): UrlReader { const { logger, config, factories } = options; @@ -73,7 +73,7 @@ export class UrlReaders { } /** - * Creates a {@link UrlReader} wrapper that includes all the default factories + * Creates a {@link @backstage/backend-plugin-api#UrlReaderService} wrapper that includes all the default factories * from this package. * * Any additional factories passed will be loaded before the default ones. diff --git a/packages/backend-common/src/reading/types.ts b/packages/backend-common/src/reading/types.ts index bce737f3c7..640b549532 100644 --- a/packages/backend-common/src/reading/types.ts +++ b/packages/backend-common/src/reading/types.ts @@ -17,56 +17,38 @@ import { Readable } from 'stream'; import { Logger } from 'winston'; import { Config } from '@backstage/config'; +import { + UrlReaderService, + ReadTreeResponse, +} from '@backstage/backend-plugin-api'; + +export type { + UrlReaderService as UrlReader, + ReadTreeOptions, + ReadTreeResponse, + ReadTreeResponseDirOptions, + ReadTreeResponseFile, + ReadUrlResponse, + ReadUrlOptions, + SearchOptions, + SearchResponse, + SearchResponseFile, +} from '@backstage/backend-plugin-api'; /** - * A generic interface for fetching plain data from URLs. - * - * @public - */ -export type UrlReader = { - /** - * Reads a single file and return its content. - * @deprecated use readUrl instead. - */ - read(url: string): Promise; - - /** - * Reads a single file and return its content. - * - * @remarks - * - * This is a replacement for the read method that supports options and - * complex responses. - * - * Use this as the read method will be removed in a future release. - */ - readUrl(url: string, options?: ReadUrlOptions): Promise; - - /** - * Reads a full or partial file tree. - */ - readTree(url: string, options?: ReadTreeOptions): Promise; - - /** - * Searches for a file in a tree using a glob pattern. - */ - search(url: string, options?: SearchOptions): Promise; -}; - -/** - * A predicate that decides whether a specific {@link UrlReader} can handle a + * A predicate that decides whether a specific {@link @backstage/backend-plugin-api#UrlReaderService} can handle a * given URL. * * @public */ export type UrlReaderPredicateTuple = { predicate: (url: URL) => boolean; - reader: UrlReader; + reader: UrlReaderService; }; /** * A factory function that can read config to construct zero or more - * {@link UrlReader}s along with a predicate for when it should be used. + * {@link @backstage/backend-plugin-api#UrlReaderService}s along with a predicate for when it should be used. * * @public */ @@ -76,72 +58,6 @@ export type ReaderFactory = (options: { treeResponseFactory: ReadTreeResponseFactory; }) => UrlReaderPredicateTuple[]; -/** - * An options object for readUrl operations. - * - * @public - */ -export type ReadUrlOptions = { - /** - * An ETag which can be provided to check whether a - * {@link UrlReader.readUrl} response has changed from a previous execution. - * - * @remarks - * - * In the {@link UrlReader.readUrl} response, an ETag is returned along with - * the data. The ETag is a unique identifier of the data, usually the commit - * SHA or ETag from the target. - * - * When an ETag is given in ReadUrlOptions, {@link UrlReader.readUrl} will - * first compare the ETag against the ETag of the target. If they match, - * {@link UrlReader.readUrl} will throw a - * {@link @backstage/errors#NotModifiedError} indicating that the response - * will not differ from the previous response which included this particular - * ETag. If they do not match, {@link UrlReader.readUrl} will return the rest - * of the response along with a new ETag. - */ - etag?: string; - - /** - * An abort signal to pass down to the underlying request. - * - * @remarks - * - * Not all reader implementations may take this field into account. - */ - signal?: AbortSignal; -}; - -/** - * A response object for {@link UrlReader.readUrl} operations. - * - * @public - */ -export type ReadUrlResponse = { - /** - * Returns the data that was read from the remote URL. - */ - buffer(): Promise; - - /** - * Returns the data that was read from the remote URL as a Readable stream. - * - * @remarks - * - * This method will be required in a future release. - */ - stream?(): Readable; - - /** - * Etag returned by content provider. - * - * @remarks - * - * Can be used to compare and cache responses when doing subsequent calls. - */ - etag?: string; -}; - /** * An options object for {@link ReadUrlResponseFactory} factory methods. * @@ -151,119 +67,6 @@ export type ReadUrlResponseFactoryFromStreamOptions = { etag?: string; }; -/** - * An options object for {@link UrlReader.readTree} operations. - * - * @public - */ -export type ReadTreeOptions = { - /** - * A filter that can be used to select which files should be included. - * - * @remarks - * - * The path passed to the filter function is the relative path from the URL - * that the file tree is fetched from, without any leading '/'. - * - * For example, given the URL https://github.com/my/repo/tree/master/my-dir, a file - * at https://github.com/my/repo/blob/master/my-dir/my-subdir/my-file.txt will - * be represented as my-subdir/my-file.txt - * - * If no filter is provided, all files are extracted. - */ - filter?(path: string, info?: { size: number }): boolean; - - /** - * An ETag which can be provided to check whether a - * {@link UrlReader.readTree} response has changed from a previous execution. - * - * @remarks - * - * In the {@link UrlReader.readTree} response, an ETag is returned along with - * the tree blob. The ETag is a unique identifier of the tree blob, usually - * the commit SHA or ETag from the target. - * - * When an ETag is given as a request option, {@link UrlReader.readTree} will - * first compare the ETag against the ETag on the target branch. If they - * match, {@link UrlReader.readTree} will throw a - * {@link @backstage/errors#NotModifiedError} indicating that the response - * will not differ from the previous response which included this particular - * ETag. If they do not match, {@link UrlReader.readTree} will return the - * rest of the response along with a new ETag. - */ - etag?: string; - - /** - * An abort signal to pass down to the underlying request. - * - * @remarks - * - * Not all reader implementations may take this field into account. - */ - signal?: AbortSignal; -}; - -/** - * Options that control {@link ReadTreeResponse.dir} execution. - * - * @public - */ -export type ReadTreeResponseDirOptions = { - /** - * The directory to write files to. - * - * @remarks - * - * Defaults to the OS tmpdir, or `backend.workingDirectory` if set in config. - */ - targetDir?: string; -}; - -/** - * A response object for {@link UrlReader.readTree} operations. - * - * @public - */ -export type ReadTreeResponse = { - /** - * Returns an array of all the files inside the tree, and corresponding - * functions to read their content. - */ - files(): Promise; - - /** - * Returns the tree contents as a binary archive, using a stream. - */ - archive(): Promise; - - /** - * Extracts the tree response into a directory and returns the path of the - * directory. - * - * **NOTE**: It is the responsibility of the caller to remove the directory after use. - */ - dir(options?: ReadTreeResponseDirOptions): Promise; - - /** - * Etag returned by content provider. - * - * @remarks - * - * Can be used to compare and cache responses when doing subsequent calls. - */ - etag: string; -}; - -/** - * Represents a single file in a {@link UrlReader.readTree} response. - * - * @public - */ -export type ReadTreeResponseFile = { - path: string; - content(): Promise; -}; - /** * Options that control execution of {@link ReadTreeResponseFactory} methods. * @@ -315,66 +118,3 @@ export interface ReadTreeResponseFactory { options: FromReadableArrayOptions, ): Promise; } - -/** - * An options object for search operations. - * - * @public - */ -export type SearchOptions = { - /** - * An etag can be provided to check whether the search response has changed from a previous execution. - * - * In the search() response, an etag is returned along with the files. The etag is a unique identifier - * of the current tree, usually the commit SHA or etag from the target. - * - * When an etag is given in SearchOptions, search will first compare the etag against the etag - * on the target branch. If they match, search will throw a NotModifiedError indicating that the search - * response will not differ from the previous response which included this particular etag. If they mismatch, - * search will return the rest of SearchResponse along with a new etag. - */ - etag?: string; - - /** - * An abort signal to pass down to the underlying request. - * - * @remarks - * - * Not all reader implementations may take this field into account. - */ - signal?: AbortSignal; -}; - -/** - * The output of a search operation. - * - * @public - */ -export type SearchResponse = { - /** - * The files that matched the search query. - */ - files: SearchResponseFile[]; - - /** - * A unique identifier of the current remote tree, usually the commit SHA or etag from the target. - */ - etag: string; -}; - -/** - * Represents a single file in a search response. - * - * @public - */ -export type SearchResponseFile = { - /** - * The full URL to the file. - */ - url: string; - - /** - * The binary contents of the file. - */ - content(): Promise; -}; diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index b06197f7f2..223c7134aa 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-defaults +## 0.1.5-next.0 + +### Patch Changes + +- 6cfd4d7073: Include implementations for the new `rootLifecycleServiceRef`. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-app-api@0.2.5-next.0 + ## 0.1.4 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 6185886dbf..77304dd31b 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-defaults", "description": "Backend defaults used by Backstage backend apps", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 9fde31e3bd..a37a8c32b2 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -23,6 +23,7 @@ import { discoveryFactory, httpRouterFactory, lifecycleFactory, + rootLifecycleFactory, loggerFactory, permissionsFactory, rootLoggerFactory, @@ -45,6 +46,7 @@ export const defaultServiceFactories = [ urlReaderFactory, httpRouterFactory, lifecycleFactory, + rootLifecycleFactory, ]; /** diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index 380fb4e056..d0fa05ebd0 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,25 @@ # example-backend-next +## 0.0.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-defaults@0.1.5-next.0 + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/plugin-app-backend@0.3.40-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + +## 0.0.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-defaults@0.1.4 + - @backstage/plugin-app-backend@0.3.39 + ## 0.0.6 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index c83c32a851..c276473125 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.6", + "version": "0.0.7-next.1", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index 8038e48e01..e6944f1ab2 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/backend-plugin-api +## 0.2.1-next.0 + +### Patch Changes + +- 6cfd4d7073: Added `RootLifecycleService` and `rootLifecycleServiceRef`, as well as added a `labels` option to the existing `LifecycleServiceShutdownHook`. +- 5e2cebe9a3: Migrate `UrlReader` into this package to gradually remove the dependency on backend-common. +- 6f02d23b01: Moved `PluginEndpointDiscovery` type from backend-common to backend-plugin-api. +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + ## 0.2.0 ### Minor Changes diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index 545728b386..9c6ffe6dd5 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -3,18 +3,18 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +/// + import { Config } from '@backstage/config'; import { Handler } from 'express'; import { Logger } from 'winston'; -import { PermissionAuthorizer } from '@backstage/plugin-permission-common'; import { PermissionEvaluator } from '@backstage/plugin-permission-common'; import { PluginCacheManager } from '@backstage/backend-common'; import { PluginDatabaseManager } from '@backstage/backend-common'; -import { PluginEndpointDiscovery } from '@backstage/backend-common'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; +import { Readable } from 'stream'; import { TokenManager } from '@backstage/backend-common'; import { TransportStreamOptions } from 'winston-transport'; -import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) export interface BackendFeature { @@ -66,35 +66,28 @@ export interface BackendRegistrationPoints { } // @public (undocumented) -export type CacheService = PluginCacheManager; +export interface CacheService extends PluginCacheManager {} // @public (undocumented) -const cacheServiceRef: ServiceRef; +export interface ConfigService extends Config {} -// @public (undocumented) -export type ConfigService = Config; - -// @public (undocumented) -const configServiceRef: ServiceRef; - -declare namespace coreServices { - export { - configServiceRef as config, - httpRouterServiceRef as httpRouter, - loggerServiceRef as logger, - urlReaderServiceRef as urlReader, - cacheServiceRef as cache, - databaseServiceRef as database, - discoveryServiceRef as discovery, - tokenManagerServiceRef as tokenManager, - permissionsServiceRef as permissions, - schedulerServiceRef as scheduler, - rootLoggerServiceRef as rootLogger, - pluginMetadataServiceRef as pluginMetadata, - lifecycleServiceRef as lifecycle, - }; +// @public +export namespace coreServices { + const cache: ServiceRef; + const config: ServiceRef; + const database: ServiceRef; + const discovery: ServiceRef; + const httpRouter: ServiceRef; + const lifecycle: ServiceRef; + const logger: ServiceRef; + const permissions: ServiceRef; + const pluginMetadata: ServiceRef; + const rootLifecycle: ServiceRef; + const rootLogger: ServiceRef; + const scheduler: ServiceRef; + const tokenManager: ServiceRef; + const urlReader: ServiceRef; } -export { coreServices }; // @public export function createBackendModule< @@ -161,16 +154,13 @@ export function createServiceRef(options: { }): ServiceRef; // @public (undocumented) -export type DatabaseService = PluginDatabaseManager; +export interface DatabaseService extends PluginDatabaseManager {} -// @public (undocumented) -const databaseServiceRef: ServiceRef; - -// @public (undocumented) -export type DiscoveryService = PluginEndpointDiscovery; - -// @public (undocumented) -const discoveryServiceRef: ServiceRef; +// @public +export interface DiscoveryService { + getBaseUrl(pluginId: string): Promise; + getExternalBaseUrl(pluginId: string): Promise; +} // @public export type ExtensionPoint = { @@ -186,23 +176,18 @@ export interface HttpRouterService { use(handler: Handler): void; } -// @public (undocumented) -const httpRouterServiceRef: ServiceRef; - // @public (undocumented) export interface LifecycleService { addShutdownHook(options: LifecycleServiceShutdownHook): void; } -// @public (undocumented) -const lifecycleServiceRef: ServiceRef; - // @public (undocumented) export type LifecycleServiceShutdownHook = { fn: () => void | Promise; + labels?: Record; }; -// @public (undocumented) +// @public export interface LoggerService { // (undocumented) child(meta: LogMeta): LoggerService; @@ -216,9 +201,6 @@ export interface LoggerService { warn(message: string, meta?: Error | LogMeta): void; } -// @public (undocumented) -const loggerServiceRef: ServiceRef; - // @public (undocumented) export function loggerToWinstonLogger( logger: LoggerService, @@ -231,10 +213,7 @@ export type LogMeta = { }; // @public (undocumented) -export type PermissionsService = PermissionEvaluator | PermissionAuthorizer; - -// @public (undocumented) -const permissionsServiceRef: ServiceRef; +export interface PermissionsService extends PermissionEvaluator {} // @public (undocumented) export interface PluginMetadataService { @@ -242,20 +221,76 @@ export interface PluginMetadataService { getId(): string; } -// @public (undocumented) -const pluginMetadataServiceRef: ServiceRef; +// @public +export type ReadTreeOptions = { + filter?( + path: string, + info?: { + size: number; + }, + ): boolean; + etag?: string; + signal?: AbortSignal; +}; + +// @public +export type ReadTreeResponse = { + files(): Promise; + archive(): Promise; + dir(options?: ReadTreeResponseDirOptions): Promise; + etag: string; +}; + +// @public +export type ReadTreeResponseDirOptions = { + targetDir?: string; +}; + +// @public +export type ReadTreeResponseFile = { + path: string; + content(): Promise; +}; + +// @public +export type ReadUrlOptions = { + etag?: string; + signal?: AbortSignal; +}; + +// @public +export type ReadUrlResponse = { + buffer(): Promise; + stream?(): Readable; + etag?: string; +}; // @public (undocumented) -export type RootLoggerService = LoggerService; +export interface RootLifecycleService extends LifecycleService {} // @public (undocumented) -const rootLoggerServiceRef: ServiceRef; +export interface RootLoggerService extends LoggerService {} // @public (undocumented) -export type SchedulerService = PluginTaskScheduler; +export interface SchedulerService extends PluginTaskScheduler {} -// @public (undocumented) -const schedulerServiceRef: ServiceRef; +// @public +export type SearchOptions = { + etag?: string; + signal?: AbortSignal; +}; + +// @public +export type SearchResponse = { + files: SearchResponseFile[]; + etag: string; +}; + +// @public +export type SearchResponseFile = { + url: string; + content(): Promise; +}; // @public (undocumented) export type ServiceFactory = @@ -297,19 +332,17 @@ export type ServiceRef< }; // @public (undocumented) -export type TokenManagerService = TokenManager; - -// @public (undocumented) -const tokenManagerServiceRef: ServiceRef; +export interface TokenManagerService extends TokenManager {} // @public (undocumented) export type TypesToServiceRef = { [key in keyof T]: ServiceRef; }; -// @public (undocumented) -export type UrlReaderService = UrlReader; - -// @public (undocumented) -const urlReaderServiceRef: ServiceRef; +// @public +export interface UrlReaderService { + readTree(url: string, options?: ReadTreeOptions): Promise; + readUrl(url: string, options?: ReadUrlOptions): Promise; + search(url: string, options?: SearchOptions): Promise; +} ``` diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 0dce068aa6..732cfa3858 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-plugin-api", "description": "Core API used by Backstage backend plugins", - "version": "0.2.0", + "version": "0.2.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-plugin-api/src/services/definitions/cacheServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/CacheService.ts similarity index 76% rename from packages/backend-plugin-api/src/services/definitions/cacheServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/CacheService.ts index aff913b06a..79c930f435 100644 --- a/packages/backend-plugin-api/src/services/definitions/cacheServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/CacheService.ts @@ -14,15 +14,7 @@ * limitations under the License. */ -import { createServiceRef } from '../system/types'; import { PluginCacheManager } from '@backstage/backend-common'; /** @public */ -export type CacheService = PluginCacheManager; - -/** - * @public - */ -export const cacheServiceRef = createServiceRef({ - id: 'core.cache', -}); +export interface CacheService extends PluginCacheManager {} diff --git a/packages/backend-plugin-api/src/services/definitions/configServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/ConfigService.ts similarity index 75% rename from packages/backend-plugin-api/src/services/definitions/configServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/ConfigService.ts index 15e9cb9aa6..db9aa88dda 100644 --- a/packages/backend-plugin-api/src/services/definitions/configServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/ConfigService.ts @@ -15,17 +15,8 @@ */ import { Config } from '@backstage/config'; -import { createServiceRef } from '../system/types'; /** * @public */ -export type ConfigService = Config; - -/** - * @public - */ -export const configServiceRef = createServiceRef({ - id: 'core.root.config', - scope: 'root', -}); +export interface ConfigService extends Config {} diff --git a/packages/backend-plugin-api/src/services/definitions/databaseServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/DatabaseService.ts similarity index 75% rename from packages/backend-plugin-api/src/services/definitions/databaseServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/DatabaseService.ts index aaea5d304f..30f1f574f2 100644 --- a/packages/backend-plugin-api/src/services/definitions/databaseServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/DatabaseService.ts @@ -15,14 +15,6 @@ */ import { PluginDatabaseManager } from '@backstage/backend-common'; -import { createServiceRef } from '../system/types'; /** @public */ -export type DatabaseService = PluginDatabaseManager; - -/** - * @public - */ -export const databaseServiceRef = createServiceRef({ - id: 'core.database', -}); +export interface DatabaseService extends PluginDatabaseManager {} diff --git a/packages/backend-plugin-api/src/services/definitions/DiscoveryService.ts b/packages/backend-plugin-api/src/services/definitions/DiscoveryService.ts new file mode 100644 index 0000000000..c3f0820c28 --- /dev/null +++ b/packages/backend-plugin-api/src/services/definitions/DiscoveryService.ts @@ -0,0 +1,63 @@ +/* + * 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. + */ + +/** + * The DiscoveryService is used to provide a mechanism for backend + * plugins to discover the endpoints for itself or other backend plugins. + * + * The purpose of the discovery API is to allow for many different deployment + * setups and routing methods through a central configuration, instead + * of letting each individual plugin manage that configuration. + * + * Implementations of the discovery API can be as simple as a URL pattern + * using the pluginId, but could also have overrides for individual plugins, + * or query a separate discovery service. + * + * @public + */ +export interface DiscoveryService { + /** + * Returns the internal HTTP base URL for a given plugin, without a trailing slash. + * + * The returned URL should point to an internal endpoint for the plugin, with + * the shortest route possible. The URL should be used for service-to-service + * communication within a Backstage backend deployment. + * + * This method must always be called just before making a request, as opposed to + * fetching the URL when constructing an API client. That is to ensure that more + * flexible routing patterns can be supported. + * + * For example, asking for the URL for `catalog` may return something + * like `http://10.1.2.3/api/catalog` + */ + getBaseUrl(pluginId: string): Promise; + + /** + * Returns the external HTTP base backend URL for a given plugin, without a trailing slash. + * + * The returned URL should point to an external endpoint for the plugin, such that + * it is reachable from the Backstage frontend and other external services. The returned + * URL should be usable for example as a callback / webhook URL. + * + * The returned URL should be stable and in general not change unless other static + * or external configuration is changed. Changes should not come as a surprise + * to an operator of the Backstage backend. + * + * For example, asking for the URL for `catalog` may return something + * like `https://backstage.example.com/api/catalog` + */ + getExternalBaseUrl(pluginId: string): Promise; +} diff --git a/packages/backend-plugin-api/src/services/definitions/httpRouterServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/HttpRouterService.ts similarity index 80% rename from packages/backend-plugin-api/src/services/definitions/httpRouterServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/HttpRouterService.ts index fbc5a27e87..3c45ef1da1 100644 --- a/packages/backend-plugin-api/src/services/definitions/httpRouterServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/HttpRouterService.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { createServiceRef } from '../system/types'; import { Handler } from 'express'; /** @@ -23,10 +22,3 @@ import { Handler } from 'express'; export interface HttpRouterService { use(handler: Handler): void; } - -/** - * @public - */ -export const httpRouterServiceRef = createServiceRef({ - id: 'core.httpRouter', -}); diff --git a/packages/backend-plugin-api/src/services/definitions/lifecycleServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/LifecycleService.ts similarity index 82% rename from packages/backend-plugin-api/src/services/definitions/lifecycleServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/LifecycleService.ts index 4061cc1da2..b6f2b69e1c 100644 --- a/packages/backend-plugin-api/src/services/definitions/lifecycleServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/LifecycleService.ts @@ -14,13 +14,14 @@ * limitations under the License. */ -import { createServiceRef } from '../system/types'; - /** * @public **/ export type LifecycleServiceShutdownHook = { fn: () => void | Promise; + + /** Labels to help identify the shutdown hook */ + labels?: Record; }; /** @@ -32,11 +33,3 @@ export interface LifecycleService { */ addShutdownHook(options: LifecycleServiceShutdownHook): void; } - -/** - * @public - */ -export const lifecycleServiceRef = createServiceRef({ - id: 'core.lifecycle', - scope: 'plugin', -}); diff --git a/packages/backend-plugin-api/src/services/definitions/loggerServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/LoggerService.ts similarity index 85% rename from packages/backend-plugin-api/src/services/definitions/loggerServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/LoggerService.ts index 1c094549c1..269dfa0166 100644 --- a/packages/backend-plugin-api/src/services/definitions/loggerServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/LoggerService.ts @@ -14,14 +14,14 @@ * limitations under the License. */ -import { createServiceRef } from '../system/types'; - /** * @public */ export type LogMeta = { [name: string]: unknown }; /** + * A service that provides a logging facility. + * * @public */ export interface LoggerService { @@ -32,10 +32,3 @@ export interface LoggerService { child(meta: LogMeta): LoggerService; } - -/** - * @public - */ -export const loggerServiceRef = createServiceRef({ - id: 'core.logger', -}); diff --git a/packages/backend-plugin-api/src/services/definitions/urlReaderServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/PermissionsService.ts similarity index 69% rename from packages/backend-plugin-api/src/services/definitions/urlReaderServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/PermissionsService.ts index 4fc3680763..5847f55ee6 100644 --- a/packages/backend-plugin-api/src/services/definitions/urlReaderServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/PermissionsService.ts @@ -14,15 +14,7 @@ * limitations under the License. */ -import { createServiceRef } from '../system/types'; -import { UrlReader } from '@backstage/backend-common'; +import { PermissionEvaluator } from '@backstage/plugin-permission-common'; /** @public */ -export type UrlReaderService = UrlReader; - -/** - * @public - */ -export const urlReaderServiceRef = createServiceRef({ - id: 'core.urlReader', -}); +export interface PermissionsService extends PermissionEvaluator {} diff --git a/packages/backend-plugin-api/src/services/definitions/pluginMetadataServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/PluginMetadataService.ts similarity index 77% rename from packages/backend-plugin-api/src/services/definitions/pluginMetadataServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/PluginMetadataService.ts index 4c1ecb130e..48328e4db9 100644 --- a/packages/backend-plugin-api/src/services/definitions/pluginMetadataServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/PluginMetadataService.ts @@ -14,20 +14,9 @@ * limitations under the License. */ -import { createServiceRef } from '../system/types'; - /** * @public */ export interface PluginMetadataService { getId(): string; } - -/** - * @public - */ -export const pluginMetadataServiceRef = createServiceRef( - { - id: 'core.plugin-metadata', - }, -); diff --git a/packages/backend-plugin-api/src/services/definitions/RootLifecycleService.ts b/packages/backend-plugin-api/src/services/definitions/RootLifecycleService.ts new file mode 100644 index 0000000000..e0e09cb859 --- /dev/null +++ b/packages/backend-plugin-api/src/services/definitions/RootLifecycleService.ts @@ -0,0 +1,20 @@ +/* + * 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 { LifecycleService } from './LifecycleService'; + +/** @public */ +export interface RootLifecycleService extends LifecycleService {} diff --git a/packages/backend-plugin-api/src/services/definitions/RootLoggerService.ts b/packages/backend-plugin-api/src/services/definitions/RootLoggerService.ts new file mode 100644 index 0000000000..ad318ef53f --- /dev/null +++ b/packages/backend-plugin-api/src/services/definitions/RootLoggerService.ts @@ -0,0 +1,20 @@ +/* + * 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 { LoggerService } from './LoggerService'; + +/** @public */ +export interface RootLoggerService extends LoggerService {} diff --git a/packages/backend-plugin-api/src/services/definitions/schedulerServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/SchedulerService.ts similarity index 75% rename from packages/backend-plugin-api/src/services/definitions/schedulerServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/SchedulerService.ts index 160f2fbb93..07c436bd6b 100644 --- a/packages/backend-plugin-api/src/services/definitions/schedulerServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/SchedulerService.ts @@ -14,15 +14,7 @@ * limitations under the License. */ -import { createServiceRef } from '../system/types'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; /** @public */ -export type SchedulerService = PluginTaskScheduler; - -/** - * @public - */ -export const schedulerServiceRef = createServiceRef({ - id: 'core.scheduler', -}); +export interface SchedulerService extends PluginTaskScheduler {} diff --git a/packages/backend-plugin-api/src/services/definitions/tokenManagerServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/TokenManagerService.ts similarity index 74% rename from packages/backend-plugin-api/src/services/definitions/tokenManagerServiceRef.ts rename to packages/backend-plugin-api/src/services/definitions/TokenManagerService.ts index 4b12acdc58..7fccb60c7a 100644 --- a/packages/backend-plugin-api/src/services/definitions/tokenManagerServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/TokenManagerService.ts @@ -14,15 +14,7 @@ * limitations under the License. */ -import { createServiceRef } from '../system/types'; import { TokenManager } from '@backstage/backend-common'; /** @public */ -export type TokenManagerService = TokenManager; - -/** - * @public - */ -export const tokenManagerServiceRef = createServiceRef({ - id: 'core.tokenManager', -}); +export interface TokenManagerService extends TokenManager {} diff --git a/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts b/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts new file mode 100644 index 0000000000..ef825a7fcd --- /dev/null +++ b/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts @@ -0,0 +1,281 @@ +/* + * 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 { Readable } from 'stream'; + +/** + * A generic interface for fetching plain data from URLs. + * + * @public + */ +export interface UrlReaderService { + /** + * Reads a single file and return its content. + */ + readUrl(url: string, options?: ReadUrlOptions): Promise; + + /** + * Reads a full or partial file tree. + */ + readTree(url: string, options?: ReadTreeOptions): Promise; + + /** + * Searches for a file in a tree using a glob pattern. + */ + search(url: string, options?: SearchOptions): Promise; +} + +/** + * An options object for readUrl operations. + * + * @public + */ +export type ReadUrlOptions = { + /** + * An ETag which can be provided to check whether a + * {@link UrlReaderService.readUrl} response has changed from a previous execution. + * + * @remarks + * + * In the {@link UrlReaderService.readUrl} response, an ETag is returned along with + * the data. The ETag is a unique identifier of the data, usually the commit + * SHA or ETag from the target. + * + * When an ETag is given in ReadUrlOptions, {@link UrlReaderService.readUrl} will + * first compare the ETag against the ETag of the target. If they match, + * {@link UrlReaderService.readUrl} will throw a + * {@link @backstage/errors#NotModifiedError} indicating that the response + * will not differ from the previous response which included this particular + * ETag. If they do not match, {@link UrlReaderService.readUrl} will return the rest + * of the response along with a new ETag. + */ + etag?: string; + + /** + * An abort signal to pass down to the underlying request. + * + * @remarks + * + * Not all reader implementations may take this field into account. + */ + signal?: AbortSignal; +}; + +/** + * A response object for {@link UrlReaderService.readUrl} operations. + * + * @public + */ +export type ReadUrlResponse = { + /** + * Returns the data that was read from the remote URL. + */ + buffer(): Promise; + + /** + * Returns the data that was read from the remote URL as a Readable stream. + * + * @remarks + * + * This method will be required in a future release. + */ + stream?(): Readable; + + /** + * Etag returned by content provider. + * + * @remarks + * + * Can be used to compare and cache responses when doing subsequent calls. + */ + etag?: string; +}; + +/** + * An options object for {@link UrlReaderService.readTree} operations. + * + * @public + */ +export type ReadTreeOptions = { + /** + * A filter that can be used to select which files should be included. + * + * @remarks + * + * The path passed to the filter function is the relative path from the URL + * that the file tree is fetched from, without any leading '/'. + * + * For example, given the URL https://github.com/my/repo/tree/master/my-dir, a file + * at https://github.com/my/repo/blob/master/my-dir/my-subdir/my-file.txt will + * be represented as my-subdir/my-file.txt + * + * If no filter is provided, all files are extracted. + */ + filter?(path: string, info?: { size: number }): boolean; + + /** + * An ETag which can be provided to check whether a + * {@link UrlReaderService.readTree} response has changed from a previous execution. + * + * @remarks + * + * In the {@link UrlReaderService.readTree} response, an ETag is returned along with + * the tree blob. The ETag is a unique identifier of the tree blob, usually + * the commit SHA or ETag from the target. + * + * When an ETag is given as a request option, {@link UrlReaderService.readTree} will + * first compare the ETag against the ETag on the target branch. If they + * match, {@link UrlReaderService.readTree} will throw a + * {@link @backstage/errors#NotModifiedError} indicating that the response + * will not differ from the previous response which included this particular + * ETag. If they do not match, {@link UrlReaderService.readTree} will return the + * rest of the response along with a new ETag. + */ + etag?: string; + + /** + * An abort signal to pass down to the underlying request. + * + * @remarks + * + * Not all reader implementations may take this field into account. + */ + signal?: AbortSignal; +}; + +/** + * Options that control {@link ReadTreeResponse.dir} execution. + * + * @public + */ +export type ReadTreeResponseDirOptions = { + /** + * The directory to write files to. + * + * @remarks + * + * Defaults to the OS tmpdir, or `backend.workingDirectory` if set in config. + */ + targetDir?: string; +}; + +/** + * A response object for {@link UrlReaderService.readTree} operations. + * + * @public + */ +export type ReadTreeResponse = { + /** + * Returns an array of all the files inside the tree, and corresponding + * functions to read their content. + */ + files(): Promise; + + /** + * Returns the tree contents as a binary archive, using a stream. + */ + archive(): Promise; + + /** + * Extracts the tree response into a directory and returns the path of the + * directory. + * + * **NOTE**: It is the responsibility of the caller to remove the directory after use. + */ + dir(options?: ReadTreeResponseDirOptions): Promise; + + /** + * Etag returned by content provider. + * + * @remarks + * + * Can be used to compare and cache responses when doing subsequent calls. + */ + etag: string; +}; + +/** + * Represents a single file in a {@link UrlReaderService.readTree} response. + * + * @public + */ +export type ReadTreeResponseFile = { + path: string; + content(): Promise; +}; + +/** + * An options object for search operations. + * + * @public + */ +export type SearchOptions = { + /** + * An etag can be provided to check whether the search response has changed from a previous execution. + * + * In the search() response, an etag is returned along with the files. The etag is a unique identifier + * of the current tree, usually the commit SHA or etag from the target. + * + * When an etag is given in SearchOptions, search will first compare the etag against the etag + * on the target branch. If they match, search will throw a NotModifiedError indicating that the search + * response will not differ from the previous response which included this particular etag. If they mismatch, + * search will return the rest of SearchResponse along with a new etag. + */ + etag?: string; + + /** + * An abort signal to pass down to the underlying request. + * + * @remarks + * + * Not all reader implementations may take this field into account. + */ + signal?: AbortSignal; +}; + +/** + * The output of a search operation. + * + * @public + */ +export type SearchResponse = { + /** + * The files that matched the search query. + */ + files: SearchResponseFile[]; + + /** + * A unique identifier of the current remote tree, usually the commit SHA or etag from the target. + */ + etag: string; +}; + +/** + * Represents a single file in a search response. + * + * @public + */ +export type SearchResponseFile = { + /** + * The full URL to the file. + */ + url: string; + + /** + * The binary contents of the file. + */ + content(): Promise; +}; diff --git a/packages/backend-plugin-api/src/services/definitions/coreServices.ts b/packages/backend-plugin-api/src/services/definitions/coreServices.ts index d5a5953806..fc96ec8be9 100644 --- a/packages/backend-plugin-api/src/services/definitions/coreServices.ts +++ b/packages/backend-plugin-api/src/services/definitions/coreServices.ts @@ -14,16 +14,137 @@ * limitations under the License. */ -export { configServiceRef as config } from './configServiceRef'; -export { httpRouterServiceRef as httpRouter } from './httpRouterServiceRef'; -export { loggerServiceRef as logger } from './loggerServiceRef'; -export { urlReaderServiceRef as urlReader } from './urlReaderServiceRef'; -export { cacheServiceRef as cache } from './cacheServiceRef'; -export { databaseServiceRef as database } from './databaseServiceRef'; -export { discoveryServiceRef as discovery } from './discoveryServiceRef'; -export { tokenManagerServiceRef as tokenManager } from './tokenManagerServiceRef'; -export { permissionsServiceRef as permissions } from './permissionsServiceRef'; -export { schedulerServiceRef as scheduler } from './schedulerServiceRef'; -export { rootLoggerServiceRef as rootLogger } from './rootLoggerServiceRef'; -export { pluginMetadataServiceRef as pluginMetadata } from './pluginMetadataServiceRef'; -export { lifecycleServiceRef as lifecycle } from './lifecycleServiceRef'; +import { createServiceRef } from '../system'; + +/** + * All core services references + * + * @public + */ +export namespace coreServices { + /** + * The service reference for the plugin scoped {@link CacheService}. + * + * @public + */ + export const cache = createServiceRef({ + id: 'core.cache', + }); + + /** + * The service reference for the root scoped {@link ConfigService}. + * + * @public + */ + export const config = createServiceRef< + import('./ConfigService').ConfigService + >({ id: 'core.config', scope: 'root' }); + + /** + * The service reference for the plugin scoped {@link DatabaseService}. + * + * @public + */ + export const database = createServiceRef< + import('./DatabaseService').DatabaseService + >({ id: 'core.database' }); + + /** + * The service reference for the plugin scoped {@link DiscoveryService}. + * + * @public + */ + export const discovery = createServiceRef< + import('./DiscoveryService').DiscoveryService + >({ id: 'core.discovery' }); + + /** + * The service reference for the plugin scoped {@link HttpRouterService}. + * + * @public + */ + export const httpRouter = createServiceRef< + import('./HttpRouterService').HttpRouterService + >({ id: 'core.httpRouter' }); + + /** + * The service reference for the plugin scoped {@link LifecycleService}. + * + * @public + */ + export const lifecycle = createServiceRef< + import('./LifecycleService').LifecycleService + >({ id: 'core.lifecycle' }); + + /** + * The service reference for the plugin scoped {@link LoggerService}. + * + * @public + */ + export const logger = createServiceRef< + import('./LoggerService').LoggerService + >({ id: 'core.logger' }); + + /** + * The service reference for the plugin scoped {@link PermissionsService}. + * + * @public + */ + export const permissions = createServiceRef< + import('./PermissionsService').PermissionsService + >({ id: 'core.permissions' }); + + /** + * The service reference for the plugin scoped {@link PluginMetadataService}. + * + * @public + */ + export const pluginMetadata = createServiceRef< + import('./PluginMetadataService').PluginMetadataService + >({ id: 'core.pluginMetadata' }); + + /** + * The service reference for the root scoped {@link RootLifecycleService}. + * + * @public + */ + export const rootLifecycle = createServiceRef< + import('./RootLifecycleService').RootLifecycleService + >({ id: 'core.rootLifecycle', scope: 'root' }); + + /** + * The service reference for the root scoped {@link RootLoggerService}. + * + * @public + */ + export const rootLogger = createServiceRef< + import('./RootLoggerService').RootLoggerService + >({ id: 'core.rootLogger', scope: 'root' }); + + /** + * The service reference for the plugin scoped {@link SchedulerService}. + * + * @public + */ + export const scheduler = createServiceRef< + import('./SchedulerService').SchedulerService + >({ id: 'core.scheduler' }); + + /** + * The service reference for the plugin scoped {@link TokenManagerService}. + * + * @public + */ + export const tokenManager = createServiceRef< + import('./TokenManagerService').TokenManagerService + >({ id: 'core.tokenManager' }); + + /** + * The service reference for the plugin scoped {@link UrlReaderService}. + * + * @public + */ + export const urlReader = createServiceRef< + import('./UrlReaderService').UrlReaderService + >({ id: 'core.urlReader' }); +} diff --git a/packages/backend-plugin-api/src/services/definitions/discoveryServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/discoveryServiceRef.ts deleted file mode 100644 index 41505e7756..0000000000 --- a/packages/backend-plugin-api/src/services/definitions/discoveryServiceRef.ts +++ /dev/null @@ -1,28 +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 { createServiceRef } from '../system/types'; -import { PluginEndpointDiscovery } from '@backstage/backend-common'; - -/** @public */ -export type DiscoveryService = PluginEndpointDiscovery; - -/** - * @public - */ -export const discoveryServiceRef = createServiceRef({ - id: 'core.discovery', -}); diff --git a/packages/backend-plugin-api/src/services/definitions/index.ts b/packages/backend-plugin-api/src/services/definitions/index.ts index 3cf2ab4c77..dedfd6223e 100644 --- a/packages/backend-plugin-api/src/services/definitions/index.ts +++ b/packages/backend-plugin-api/src/services/definitions/index.ts @@ -14,22 +14,32 @@ * limitations under the License. */ -import * as coreServices from './coreServices'; - -export { coreServices }; -export type { CacheService } from './cacheServiceRef'; -export type { ConfigService } from './configServiceRef'; -export type { DatabaseService } from './databaseServiceRef'; -export type { DiscoveryService } from './discoveryServiceRef'; -export type { HttpRouterService } from './httpRouterServiceRef'; +export { coreServices } from './coreServices'; +export type { CacheService } from './CacheService'; +export type { ConfigService } from './ConfigService'; +export type { DatabaseService } from './DatabaseService'; +export type { DiscoveryService } from './DiscoveryService'; +export type { HttpRouterService } from './HttpRouterService'; export type { LifecycleService, LifecycleServiceShutdownHook, -} from './lifecycleServiceRef'; -export type { LoggerService, LogMeta } from './loggerServiceRef'; -export type { PermissionsService } from './permissionsServiceRef'; -export type { PluginMetadataService } from './pluginMetadataServiceRef'; -export type { RootLoggerService } from './rootLoggerServiceRef'; -export type { SchedulerService } from './schedulerServiceRef'; -export type { TokenManagerService } from './tokenManagerServiceRef'; -export type { UrlReaderService } from './urlReaderServiceRef'; +} from './LifecycleService'; +export type { LoggerService, LogMeta } from './LoggerService'; +export type { PermissionsService } from './PermissionsService'; +export type { PluginMetadataService } from './PluginMetadataService'; +export type { RootLifecycleService } from './RootLifecycleService'; +export type { RootLoggerService } from './RootLoggerService'; +export type { SchedulerService } from './SchedulerService'; +export type { TokenManagerService } from './TokenManagerService'; +export type { + ReadTreeOptions, + ReadTreeResponse, + ReadTreeResponseDirOptions, + ReadTreeResponseFile, + ReadUrlResponse, + ReadUrlOptions, + SearchOptions, + SearchResponse, + SearchResponseFile, + UrlReaderService, +} from './UrlReaderService'; diff --git a/packages/backend-plugin-api/src/services/definitions/permissionsServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/permissionsServiceRef.ts deleted file mode 100644 index b24b2f5f46..0000000000 --- a/packages/backend-plugin-api/src/services/definitions/permissionsServiceRef.ts +++ /dev/null @@ -1,31 +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 { createServiceRef } from '../system/types'; -import { - PermissionAuthorizer, - PermissionEvaluator, -} from '@backstage/plugin-permission-common'; - -/** @public */ -export type PermissionsService = PermissionEvaluator | PermissionAuthorizer; - -/** - * @public - */ -export const permissionsServiceRef = createServiceRef({ - id: 'core.permissions', -}); diff --git a/packages/backend-plugin-api/src/services/definitions/rootLoggerServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/rootLoggerServiceRef.ts deleted file mode 100644 index af26ce8899..0000000000 --- a/packages/backend-plugin-api/src/services/definitions/rootLoggerServiceRef.ts +++ /dev/null @@ -1,29 +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 { createServiceRef } from '../system/types'; -import { LoggerService } from './loggerServiceRef'; - -/** @public */ -export type RootLoggerService = LoggerService; - -/** - * @public - */ -export const rootLoggerServiceRef = createServiceRef({ - id: 'core.root.logger', - scope: 'root', -}); diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index 7a8b189581..71509b823f 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-tasks +## 0.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + ## 0.4.0 ### Minor Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index df46f22bfb..d07468567e 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.4.0", + "version": "0.4.1-next.0", "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 e18d60ab81..daa8e2f560 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/backend-test-utils +## 0.1.32-next.1 + +### Patch Changes + +- 6cfd4d7073: Include implementations for the new `rootLifecycleServiceRef`. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/cli@0.22.1-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-app-api@0.2.5-next.0 + +## 0.1.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/backend-app-api@0.2.4 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config@1.0.5 + ## 0.1.31 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index f1f598c9a5..337c8e1adf 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-test-utils", "description": "Test helpers library for Backstage backends", - "version": "0.1.31", + "version": "0.1.32-next.1", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 1d401bbf6f..647ebc9dda 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -18,6 +18,7 @@ import { Backend, createSpecializedBackend, lifecycleFactory, + rootLifecycleFactory, loggerFactory, rootLoggerFactory, } from '@backstage/backend-app-api'; @@ -57,6 +58,7 @@ const defaultServiceFactories = [ rootLoggerFactory(), loggerFactory(), lifecycleFactory(), + rootLifecycleFactory(), ]; const backendInstancesToCleanUp = new Array(); diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index d23a91a4a9..8131b4a15a 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,99 @@ # example-backend +## 0.2.79-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/plugin-explore-backend@0.0.2-next.1 + - @backstage/plugin-events-backend@0.2.1-next.0 + - @backstage/plugin-app-backend@0.3.40-next.0 + - @backstage/plugin-tech-insights-backend@0.5.6-next.1 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/plugin-events-node@0.2.1-next.0 + - example-app@0.2.79-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-auth-backend@0.17.3-next.1 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-azure-devops-backend@0.3.19-next.0 + - @backstage/plugin-azure-sites-backend@0.1.2-next.0 + - @backstage/plugin-badges-backend@0.1.34-next.1 + - @backstage/plugin-code-coverage-backend@0.2.6-next.1 + - @backstage/plugin-graphql-backend@0.1.30-next.1 + - @backstage/plugin-jenkins-backend@0.1.30-next.1 + - @backstage/plugin-kafka-backend@0.2.33-next.1 + - @backstage/plugin-kubernetes-backend@0.9.1-next.1 + - @backstage/plugin-permission-backend@0.5.15-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + - @backstage/plugin-playlist-backend@0.2.3-next.1 + - @backstage/plugin-proxy-backend@0.2.34-next.0 + - @backstage/plugin-rollbar-backend@0.1.37-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.1 + - @backstage/plugin-search-backend@1.2.1-next.1 + - @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.1 + - @backstage/plugin-search-backend-module-pg@0.5.1-next.1 + - @backstage/plugin-search-backend-node@1.1.1-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.24-next.0 + - @backstage/plugin-tech-insights-node@0.3.8-next.0 + - @backstage/plugin-techdocs-backend@1.5.1-next.1 + - @backstage/plugin-todo-backend@0.1.37-next.1 + +## 0.2.79-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-search-backend-module-elasticsearch@1.1.1-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-explore-backend@0.0.2-next.0 + - @backstage/plugin-code-coverage-backend@0.2.6-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.8-next.0 + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/plugin-search-backend@1.2.1-next.0 + - example-app@0.2.79-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/plugin-app-backend@0.3.39 + - @backstage/plugin-auth-backend@0.17.3-next.0 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-azure-devops-backend@0.3.18 + - @backstage/plugin-azure-sites-backend@0.1.1 + - @backstage/plugin-badges-backend@0.1.34-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-backend@0.2.0 + - @backstage/plugin-events-node@0.2.0 + - @backstage/plugin-graphql-backend@0.1.30-next.0 + - @backstage/plugin-jenkins-backend@0.1.30-next.0 + - @backstage/plugin-kafka-backend@0.2.33-next.0 + - @backstage/plugin-kubernetes-backend@0.9.1-next.0 + - @backstage/plugin-permission-backend@0.5.14 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-playlist-backend@0.2.3-next.0 + - @backstage/plugin-proxy-backend@0.2.33 + - @backstage/plugin-rollbar-backend@0.1.36 + - @backstage/plugin-search-backend-module-pg@0.5.1-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-tech-insights-backend@0.5.6-next.0 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.23 + - @backstage/plugin-tech-insights-node@0.3.7 + - @backstage/plugin-techdocs-backend@1.5.1-next.0 + - @backstage/plugin-todo-backend@0.1.37-next.0 + ## 0.2.78 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 0757cfbdfc..b38fafa8f2 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.78", + "version": "0.2.79-next.1", "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 5cc20dc2bb..919279b0a8 100644 --- a/packages/catalog-client/CHANGELOG.md +++ b/packages/catalog-client/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/catalog-client +## 1.3.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + +## 1.3.0-next.0 + +### Minor Changes + +- f75bf76330: Implemented support for the `order` directive on `getEntities` + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/errors@1.1.4 + ## 1.2.0 ### Minor Changes diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 23e913bf87..3a413d3268 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-client", "description": "An isomorphic client for the catalog backend", - "version": "1.2.0", + "version": "1.3.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/catalog-model/CHANGELOG.md b/packages/catalog-model/CHANGELOG.md index fd400f1257..6dee022873 100644 --- a/packages/catalog-model/CHANGELOG.md +++ b/packages/catalog-model/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/catalog-model +## 1.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## 1.1.5-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + ## 1.1.4 ### Patch Changes diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 40d8152700..af9b22ed29 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/catalog-model", "description": "Types and validators that help describe the model of a Backstage Catalog", - "version": "1.1.4", + "version": "1.1.5-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 99339fe759..633038ebaf 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,35 @@ # @backstage/cli +## 0.22.1-next.1 + +### Patch Changes + +- db2e137744: Removed unnecessary usage of `ThemeProvider` from the `ExampleComponent` test in the plugin template. +- 4b572126f1: Add experimental environment variable to enable caching for production builds. +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/cli-common@0.1.11 + - @backstage/config-loader@1.1.8-next.0 + - @backstage/errors@1.1.4 + - @backstage/release-manifests@0.0.8 + - @backstage/types@1.0.2 + +## 0.22.1-next.0 + +### Patch Changes + +- 47c10706df: Fixed an issue where the CLI would fail to function when there was a mix of workspace and non-workspace versions of the same package in `yarn.lock` when using Yarn 3. +- a62a1f9dca: The frontend serve task now filters out allowed package duplicates during its package check, just like `versions:bump` and `versions:check`. +- 7c8a974515: The `repo test`, `repo lint`, and `repo build` commands will now analyze `yarn.lock` for dependency changes when searching for changed packages. This allows you to use the `--since ` flag even if you have `yarn.lock` changes. +- e1b71e142e: Workspace ranges are no longer considered invalid by version commands. +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/config@1.0.5 + - @backstage/config-loader@1.1.7 + - @backstage/errors@1.1.4 + - @backstage/release-manifests@0.0.8 + - @backstage/types@1.0.2 + ## 0.22.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 43f3c9a44e..76d9717759 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/cli", "description": "CLI for developing Backstage plugins and apps", - "version": "0.22.0", + "version": "0.22.1-next.1", "publishConfig": { "access": "public" }, diff --git a/packages/cli/src/lib/bundler/bundle.ts b/packages/cli/src/lib/bundler/bundle.ts index 2f23d5cae6..a8967bb250 100644 --- a/packages/cli/src/lib/bundler/bundle.ts +++ b/packages/cli/src/lib/bundler/bundle.ts @@ -42,7 +42,6 @@ export async function buildBundle(options: BuildOptions) { isDev: false, baseUrl: resolveBaseUrl(options.frontendConfig), }); - const compiler = webpack(config); const isCi = yn(process.env.CI, { default: false }); @@ -64,7 +63,7 @@ export async function buildBundle(options: BuildOptions) { ); } - const { stats } = await build(compiler, isCi).catch(error => { + const { stats } = await build(config, isCi).catch(error => { console.log(chalk.red('Failed to compile.\n')); throw new Error(`Failed to compile.\n${error.message || error}`); }); @@ -90,10 +89,10 @@ export async function buildBundle(options: BuildOptions) { ); } -async function build(compiler: webpack.Compiler, isCi: boolean) { +async function build(config: webpack.Configuration, isCi: boolean) { const stats = await new Promise( (resolve, reject) => { - compiler.run((err, buildStats) => { + webpack(config, (err, buildStats) => { if (err) { if (err.message) { const { errors } = formatWebpackMessages({ diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 1974153f02..ce216f5c59 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -35,6 +35,9 @@ import { paths as cliPaths } from '../../lib/paths'; import { runPlain } from '../run'; import ESLintPlugin from 'eslint-webpack-plugin'; import pickBy from 'lodash/pickBy'; +import yn from 'yn'; + +const BUILD_CACHE_ENV_VAR = 'BACKSTAGE_CLI_EXPERIMENTAL_BUILD_CACHE'; export function resolveBaseUrl(config: Config): URL { const baseUrl = config.getString('app.baseUrl'); @@ -146,6 +149,8 @@ export async function createConfig( require.resolve('react-refresh'), ]; + const withCache = yn(process.env[BUILD_CACHE_ENV_VAR], { default: false }); + return { mode: isDev ? 'development' : 'production', profile: false, @@ -206,6 +211,16 @@ export async function createConfig( : {}), }, plugins, + ...(withCache + ? { + cache: { + type: 'filesystem', + buildDependencies: { + config: [__filename], + }, + }, + } + : {}), }; } diff --git a/packages/cli/templates/default-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs b/packages/cli/templates/default-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs index ae626c0d57..b04e8a2f48 100644 --- a/packages/cli/templates/default-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +++ b/packages/cli/templates/default-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs @@ -1,7 +1,5 @@ import React from 'react'; import { ExampleComponent } from './ExampleComponent'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { screen } from '@testing-library/react'; @@ -23,11 +21,7 @@ describe('ExampleComponent', () => { }); it('should render', async () => { - await renderInTestApp( - - - , - ); + await renderInTestApp(); expect(screen.getByText('Welcome to {{ id }}!')).toBeInTheDocument(); }); }); diff --git a/packages/config-loader/CHANGELOG.md b/packages/config-loader/CHANGELOG.md index e937829dde..b739ec6f53 100644 --- a/packages/config-loader/CHANGELOG.md +++ b/packages/config-loader/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/config-loader +## 1.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/cli-common@0.1.11 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + ## 1.1.7 ### Patch Changes diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 9da952414c..dbbf8a7e6c 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config-loader", "description": "Config loading functionality used by Backstage backend, and CLI", - "version": "1.1.7", + "version": "1.1.8-next.0", "publishConfig": { "access": "public", "main": "dist/index.cjs.js", diff --git a/packages/config/CHANGELOG.md b/packages/config/CHANGELOG.md index af6f2b07be..71e759c40a 100644 --- a/packages/config/CHANGELOG.md +++ b/packages/config/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/config +## 1.0.6-next.0 + +### Patch Changes + +- ba2d69ee17: Adds the ability to coerce values to their boolean representatives. + Values such as `"true"` `1` `on` and `y` will become `true` when using `getBoolean` and the opposites `false`. + This happens particularly when such parameters are used with environmental substitution as environment variables are always strings. +- Updated dependencies + - @backstage/types@1.0.2 + ## 1.0.5 ### Patch Changes diff --git a/packages/config/package.json b/packages/config/package.json index 48c8e56640..4795437467 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/config", "description": "Config API used by Backstage core, backend, and CLI", - "version": "1.0.5", + "version": "1.0.6-next.0", "publishConfig": { "access": "public", "main": "dist/index.cjs.js", diff --git a/packages/config/src/reader.test.ts b/packages/config/src/reader.test.ts index c0627a200b..c4c2a4ecbf 100644 --- a/packages/config/src/reader.test.ts +++ b/packages/config/src/reader.test.ts @@ -22,6 +22,15 @@ const DATA = { one: 1, true: true, false: false, + yes: 'yes', + no: 'no', + y: 'y', + n: 'n', + on: 'on', + off: 'off', + zeroString: '0', + oneString: '1', + stringFalse: 'false', null: null, string: 'string', emptyString: '', @@ -53,6 +62,17 @@ function expectValidValues(config: ConfigReader) { expect(config.getOptional('true')).toBe(true); expect(config.getBoolean('true')).toBe(true); expect(config.getBoolean('false')).toBe(false); + expect(config.getBoolean('stringFalse')).toBe(false); + expect(config.getBoolean('zero')).toBe(false); + expect(config.getBoolean('one')).toBe(true); + expect(config.getBoolean('zeroString')).toBe(false); + expect(config.getBoolean('oneString')).toBe(true); + expect(config.getBoolean('yes')).toBe(true); + expect(config.getBoolean('no')).toBe(false); + expect(config.getBoolean('y')).toBe(true); + expect(config.getBoolean('n')).toBe(false); + expect(config.getBoolean('on')).toBe(true); + expect(config.getBoolean('off')).toBe(false); expect(config.getString('string')).toBe('string'); expect(config.get('strings')).toEqual(['string1', 'string2']); expect(config.getStringArray('strings')).toEqual(['string1', 'string2']); @@ -86,7 +106,7 @@ function expectValidValues(config: ConfigReader) { function expectInvalidValues(config: ConfigReader) { expect(() => config.getBoolean('string')).toThrow( - "Invalid type in config for key 'string' in 'ctx', got string, wanted boolean", + "Unable to convert config value for key 'string' in 'ctx' to a boolean", ); expect(() => config.getNumber('string')).toThrow( "Unable to convert config value for key 'string' in 'ctx' to a number", diff --git a/packages/config/src/reader.ts b/packages/config/src/reader.ts index 1ce54590b5..4a570b6977 100644 --- a/packages/config/src/reader.ts +++ b/packages/config/src/reader.ts @@ -280,10 +280,25 @@ export class ConfigReader implements Config { /** {@inheritdoc Config.getOptionalBoolean} */ getOptionalBoolean(key: string): boolean | undefined { - return this.readConfigValue( + const value = this.readConfigValue( key, - value => typeof value === 'boolean' || { expected: 'boolean' }, + val => + typeof val === 'boolean' || + typeof val === 'number' || + typeof val === 'string' || { expected: 'boolean' }, ); + if (typeof value === 'boolean' || value === undefined) { + return value; + } + const valueString = String(value).trim(); + + if (/^(?:y|yes|true|1|on)$/i.test(valueString)) { + return true; + } + if (/^(?:n|no|false|0|off)$/i.test(valueString)) { + return false; + } + throw new Error(errors.convert(this.fullKey(key), this.context, 'boolean')); } /** {@inheritdoc Config.getString} */ diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md index 52d6779acf..6b8abd5bbe 100644 --- a/packages/core-app-api/CHANGELOG.md +++ b/packages/core-app-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/core-app-api +## 1.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + ## 1.3.0 ### Minor Changes diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index a5d0756f5f..3160bb1d01 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.3.0", + "version": "1.3.1-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index c8dad2ef8b..b6554cf75f 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/core-components +## 0.12.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/version-bridge@1.0.3 + +## 0.12.3-next.0 + +### Patch Changes + +- f2ea446de0: Applied fix from v1.9.1 +- Updated dependencies + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/version-bridge@1.0.3 + ## 0.12.2 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 3e81aed792..47b140a954 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.12.1", + "version": "0.12.3-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/core-plugin-api/CHANGELOG.md b/packages/core-plugin-api/CHANGELOG.md index 4f8ff07e31..8460163e60 100644 --- a/packages/core-plugin-api/CHANGELOG.md +++ b/packages/core-plugin-api/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/core-plugin-api +## 1.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + ## 1.2.0 ### Minor Changes diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index f33d194214..80217fb79e 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-plugin-api", "description": "Core API used by Backstage plugins", - "version": "1.2.0", + "version": "1.2.1-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index f9a5ff6219..23bb54d657 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/create-app +## 0.4.36-next.1 + +### Patch Changes + +- 724b55689b: Avoid potential temporary directory conflict. +- a2a70504e3: Remove deprecated `create-plugin` script from the `default-app` template's `package.json.hbs`. + Also, update the documentation to not mention the `create-plugin` script and instead mention + the `new` script. +- Updated dependencies + - @backstage/cli-common@0.1.11 + +## 0.4.36-next.0 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.11 + ## 0.4.35 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 83a4ef9fff..6b3f3d4de3 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.4.35", + "version": "0.4.36-next.1", "publishConfig": { "access": "public" }, diff --git a/packages/create-app/src/lib/tasks.test.ts b/packages/create-app/src/lib/tasks.test.ts index 8dc351ac97..2894f1ffe9 100644 --- a/packages/create-app/src/lib/tasks.test.ts +++ b/packages/create-app/src/lib/tasks.test.ts @@ -284,7 +284,7 @@ describe('tasks', () => { }); describe('readGitConfig', () => { - const tmpDir = resolvePath(os.tmpdir(), 'git-temp-dir'); + const tmpDirPrefix = resolvePath(os.tmpdir(), 'git-temp-dir-'); it('should return git config if git package is installed and git credentials are set', async () => { mockExec.mockImplementation((_command, _options, callback) => { @@ -299,17 +299,17 @@ describe('tasks', () => { expect(mockExec).toHaveBeenCalledTimes(3); expect(mockExec).toHaveBeenCalledWith( 'git init', - { cwd: tmpDir }, + { cwd: expect.stringContaining(tmpDirPrefix) }, expect.any(Function), ); expect(mockExec).toHaveBeenCalledWith( 'git commit --allow-empty -m "Initial commit"', - { cwd: tmpDir }, + { cwd: expect.stringContaining(tmpDirPrefix) }, expect.any(Function), ); expect(mockExec).toHaveBeenCalledWith( 'git branch --format="%(refname:short)"', - { cwd: tmpDir }, + { cwd: expect.stringContaining(tmpDirPrefix) }, expect.any(Function), ); }); diff --git a/packages/create-app/src/lib/tasks.ts b/packages/create-app/src/lib/tasks.ts index ff519912a8..23017c8ec7 100644 --- a/packages/create-app/src/lib/tasks.ts +++ b/packages/create-app/src/lib/tasks.ts @@ -248,11 +248,9 @@ export async function moveAppTask( * @throws if `exec` fails */ export async function readGitConfig(): Promise { - const tempDir = resolvePath(os.tmpdir(), 'git-temp-dir'); + const tempDir = await fs.mkdtemp(resolvePath(os.tmpdir(), 'git-temp-dir-')); try { - await fs.mkdir(tempDir); - await exec('git init', { cwd: tempDir }); await exec('git commit --allow-empty -m "Initial commit"', { cwd: tempDir, diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 05c2436933..734de5c6e4 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -20,7 +20,6 @@ "lint": "backstage-cli repo lint --since origin/{{defaultBranch}}", "lint:all": "backstage-cli repo lint", "prettier:check": "prettier --check .", - "create-plugin": "backstage-cli create-plugin --scope internal", "new": "backstage-cli new --scope internal" }, "workspaces": { diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index f75de52dcf..f732287da2 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,35 @@ # @backstage/dev-utils +## 1.0.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/app-defaults@1.0.11-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/test-utils@1.2.4-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 1.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + ## 1.0.10 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 74414da5c3..9b3605e57d 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/dev-utils", "description": "Utilities for developing Backstage plugins.", - "version": "1.0.9", + "version": "1.0.11-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/integration-aws-node/CHANGELOG.md b/packages/integration-aws-node/CHANGELOG.md index d07b6ab8aa..d2f2f63ea2 100644 --- a/packages/integration-aws-node/CHANGELOG.md +++ b/packages/integration-aws-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/integration-aws-node +## 0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + ## 0.1.0 ### Minor Changes diff --git a/packages/integration-aws-node/package.json b/packages/integration-aws-node/package.json index a5b0ed08bb..17606e2ec7 100644 --- a/packages/integration-aws-node/package.json +++ b/packages/integration-aws-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-aws-node", "description": "Helpers for fetching AWS account credentials", - "version": "0.1.0", + "version": "0.1.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index f359f4ea87..c2eac9ec98 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/integration-react +## 1.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + +## 1.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 1.1.8 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 594c0defc4..4bc121de79 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration-react", "description": "Frontend package for managing integrations towards external systems", - "version": "1.1.7", + "version": "1.1.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index a077352af9..4ebff92fb4 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/integration +## 1.4.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + ## 1.4.1 ### Patch Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index b030611b68..674a9f5f84 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/integration", "description": "Helpers for managing integrations towards external systems", - "version": "1.4.1", + "version": "1.4.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 4777225550..e078960e9f 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/repo-tools +## 0.1.1-next.1 + +### Patch Changes + +- d48cf39f2a: fix glob on windows os +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/errors@1.1.4 + +## 0.1.1-next.0 + +### Patch Changes + +- c447a5221b: Use the project tsconfig in case of selection all packages +- 93cff3053e: Move some dependencies as `peerDependencies` because we need to always use same version as in `api-extractor` +- 75275b0b0b: Updated dependency `@microsoft/tsdoc-config` to `0.16.2`. +- Updated dependencies + - @backstage/cli-common@0.1.11 + - @backstage/errors@1.1.4 + ## 0.1.0 ### Minor Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 2d0c1d240b..cb0378363a 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.1.0", + "version": "0.1.1-next.1", "publishConfig": { "access": "public" }, diff --git a/packages/repo-tools/src/commands/api-reports/api-reports.test.ts b/packages/repo-tools/src/commands/api-reports/api-reports.test.ts index 6139b5b782..a5a8635b7f 100644 --- a/packages/repo-tools/src/commands/api-reports/api-reports.test.ts +++ b/packages/repo-tools/src/commands/api-reports/api-reports.test.ts @@ -15,7 +15,7 @@ */ import mockFs from 'mock-fs'; -import { resolve as resolvePath } from 'path'; +import { normalize, resolve as resolvePath } from 'path'; import * as pathsLib from '../../lib/paths'; import { @@ -46,9 +46,11 @@ jest.mock('./api-extractor', () => ({ const projectPaths = pathsLib.paths; -jest.spyOn(projectPaths, 'targetRoot', 'get').mockReturnValue('/root'); +jest + .spyOn(projectPaths, 'targetRoot', 'get') + .mockReturnValue(normalize('/root')); jest.spyOn(projectPaths, 'resolveTargetRoot').mockImplementation((...path) => { - return resolvePath('/root', ...path); + return resolvePath(normalize('/root'), ...path); }); describe('buildApiReports', () => { @@ -95,36 +97,35 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ]); expect(generateTypeDeclarations).not.toHaveBeenCalled(); expect(runApiExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ], - tsconfigFilePath: '/root/tsconfig.json', + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', - 'plugins/plugin-b', - - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ], isLocalBuild: true, }); @@ -140,19 +141,19 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', + normalize('packages/package-a'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [normalize('packages/package-a')], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a'], + packageDirs: [normalize('packages/package-a')], isLocalBuild: true, }); @@ -165,20 +166,26 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'packages/package-b', + normalize('packages/package-a'), + normalize('packages/package-b'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], isLocalBuild: true, }); @@ -191,20 +198,26 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'packages/package-b', + normalize('packages/package-a'), + normalize('packages/package-b'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], isLocalBuild: true, }); @@ -218,28 +231,28 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), ], - tsconfigFilePath: '/root/tsconfig.json', + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'packages/package-b', - 'plugins/plugin-a', + normalize('packages/package-a'), + normalize('packages/package-b'), + normalize('plugins/plugin-a'), ], isLocalBuild: true, }); @@ -254,31 +267,31 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(categorizePackageDirs).toHaveBeenCalledWith([ - 'packages/package-a', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ]); expect(runApiExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ], - tsconfigFilePath: '/root/tsconfig.json', + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ packageDirs: [ - 'packages/package-a', - 'plugins/plugin-a', - 'plugins/plugin-b', - 'plugins/plugin-c', + normalize('packages/package-a'), + normalize('plugins/plugin-a'), + normalize('plugins/plugin-b'), + normalize('plugins/plugin-c'), ], isLocalBuild: true, }); @@ -296,12 +309,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: ['packages/package-a'], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); @@ -314,12 +330,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: ['packages/package-a', 'packages/package-b'], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); @@ -332,12 +351,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: ['packages/package-a', 'packages/package-b'], omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); }); @@ -351,12 +373,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: true, omitMessages: [], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); }); @@ -370,12 +395,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: ['ae-missing-release-tag'], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); @@ -388,12 +416,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: ['ae-missing-release-tag', 'ae-missing-annotations'], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); @@ -406,12 +437,15 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: ['ae-missing-release-tag', 'ae-missing-annotations'], isLocalBuild: true, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); }); }); @@ -425,15 +459,21 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(runApiExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], - tsconfigFilePath: '/root/tsconfig.json', + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], + tsconfigFilePath: resolvePath('/root/tsconfig.json'), allowWarnings: [], omitMessages: [], isLocalBuild: false, - outputDir: '/root/node_modules/.cache/api-extractor', + outputDir: resolvePath('/root/node_modules/.cache/api-extractor'), }); expect(runCliExtraction).toHaveBeenCalledWith({ - packageDirs: ['packages/package-a', 'packages/package-b'], + packageDirs: [ + normalize('packages/package-a'), + normalize('packages/package-b'), + ], isLocalBuild: false, }); }); @@ -448,8 +488,8 @@ describe('buildApiReports', () => { await buildApiReports(paths, opts); expect(buildDocs).toHaveBeenCalledWith({ - inputDir: '/root/node_modules/.cache/api-extractor', - outputDir: '/root/docs/reference', + inputDir: resolvePath('/root/node_modules/.cache/api-extractor'), + outputDir: resolvePath('/root/docs/reference'), }); }); }); diff --git a/packages/repo-tools/src/commands/api-reports/api-reports.ts b/packages/repo-tools/src/commands/api-reports/api-reports.ts index 6270072912..66436644d2 100644 --- a/packages/repo-tools/src/commands/api-reports/api-reports.ts +++ b/packages/repo-tools/src/commands/api-reports/api-reports.ts @@ -66,7 +66,7 @@ export const buildApiReports = async (paths: string[] = [], opts: Options) => { } let temporaryTsConfigPath: string | undefined; - if (selectedPackageDirs) { + if (!isAllPackages) { temporaryTsConfigPath = await createTemporaryTsConfig(selectedPackageDirs); } const tsconfigFilePath = diff --git a/packages/repo-tools/src/lib/paths.test.ts b/packages/repo-tools/src/lib/paths.test.ts index 5d8dc6ce18..601ba636c3 100644 --- a/packages/repo-tools/src/lib/paths.test.ts +++ b/packages/repo-tools/src/lib/paths.test.ts @@ -15,13 +15,13 @@ */ import mockFs from 'mock-fs'; -import { resolve as resolvePath, join as joinPath } from 'path'; +import { resolve as resolvePath, join as joinPath, normalize } from 'path'; import { resolvePackagePath, paths, findPackageDirs } from './paths'; describe('paths', () => { - jest.spyOn(paths, 'targetRoot', 'get').mockReturnValue('/root'); + jest.spyOn(paths, 'targetRoot', 'get').mockReturnValue(normalize('/root')); jest.spyOn(paths, 'resolveTargetRoot').mockImplementation((...path) => { - return resolvePath('/root', ...path); + return resolvePath(normalize('/root'), ...path); }); beforeEach(() => { diff --git a/packages/repo-tools/src/lib/paths.ts b/packages/repo-tools/src/lib/paths.ts index 874bb48ea1..01a5d92db1 100644 --- a/packages/repo-tools/src/lib/paths.ts +++ b/packages/repo-tools/src/lib/paths.ts @@ -52,10 +52,10 @@ export async function resolvePackagePath( export async function findPackageDirs(selectedPaths: string[] = []) { const packageDirs = new Array(); for (const packageRoot of selectedPaths) { - const fullPath = paths.resolveTargetRoot(packageRoot); - // if the path contain any glob notation we resolve all the paths to process one by one - const dirs = isGlob(fullPath) ? await glob(fullPath) : [fullPath]; + const dirs = isGlob(packageRoot) + ? await glob(packageRoot, { cwd: paths.targetRoot }) + : [packageRoot]; for (const dir of dirs) { const packageDir = await resolvePackagePath(dir); if (!packageDir) { diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index f79140a2a6..7a02e10ace 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,43 @@ # techdocs-cli-embedded-app +## 0.2.78-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.1 + - @backstage/plugin-techdocs@1.4.3-next.1 + - @backstage/config@1.0.6-next.0 + - @backstage/app-defaults@1.0.11-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/test-utils@1.2.4-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + +## 0.2.78-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/app-defaults@1.0.11-next.0 + - @backstage/config@1.0.5 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + ## 0.2.78 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 3c085d0204..43d74bf32a 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.77", + "version": "0.2.78-next.1", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index d9252e8b31..6b57583779 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,27 @@ # @techdocs/cli +## 1.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/cli-common@0.1.11 + - @backstage/plugin-techdocs-node@1.4.4-next.1 + +## 1.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/cli-common@0.1.11 + - @backstage/config@1.0.5 + - @backstage/plugin-techdocs-node@1.4.4-next.0 + ## 1.2.4 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 7e5b9f18ac..9feecdaf9e 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.2.4", + "version": "1.2.5-next.1", "publishConfig": { "access": "public" }, diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index 50d9f2fda6..fbc1914350 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/test-utils +## 1.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-react@0.4.9-next.0 + ## 1.2.3 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 971b7f969d..fe5d5387e4 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/test-utils", "description": "Utilities to test Backstage plugins and apps.", - "version": "1.2.3", + "version": "1.2.4-next.0", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index b6a64d6aed..a99184e13c 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-adr-backend +## 0.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-adr-common@0.2.5-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-adr-common@0.2.5-next.0 + - @backstage/plugin-search-common@1.2.0 + ## 0.2.4 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 45fb52474b..73f9309972 100644 --- a/plugins/adr-backend/package.json +++ b/plugins/adr-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr-backend", - "version": "0.2.4", + "version": "0.2.5-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md index 9c69ab12f8..348b1526d5 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-adr-common +## 0.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/integration@1.4.1 + - @backstage/plugin-search-common@1.2.0 + ## 0.2.4 ### Patch Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index 8ff7496493..9168f1989f 100644 --- a/plugins/adr-common/package.json +++ b/plugins/adr-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-adr-common", "description": "Common functionalities for the adr plugin", - "version": "0.2.4", + "version": "0.2.5-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md index a4100b72e8..7e9cde8e65 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,35 @@ # @backstage/plugin-adr +## 0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-adr-common@0.2.5-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## 0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-adr-common@0.2.5-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 0.2.5 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index fc66e1bc82..00cf052365 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.2.4", + "version": "0.2.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md index 9a96a7cce2..42ab64ec5f 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-airbrake-backend +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index 9ff15f2b38..eab9d8cd69 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake-backend", - "version": "0.2.12", + "version": "0.2.13-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md index f70f9de6cc..d5e709070c 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-airbrake +## 0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/dev-utils@1.0.11-next.1 + - @backstage/test-utils@1.2.4-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/dev-utils@1.0.11-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/airbrake/dev/components/ApiBar/ApiBar.tsx b/plugins/airbrake/dev/components/ApiBar/ApiBar.tsx index 7a4ee42f14..da3bbb1e46 100644 --- a/plugins/airbrake/dev/components/ApiBar/ApiBar.tsx +++ b/plugins/airbrake/dev/components/ApiBar/ApiBar.tsx @@ -14,12 +14,7 @@ * limitations under the License. */ import React from 'react'; -import { - createTheme, - makeStyles, - MuiThemeProvider, - TextField, -} from '@material-ui/core'; +import { makeStyles, TextField } from '@material-ui/core'; import { Context } from '../ContextProvider'; const useStyles = makeStyles({ @@ -28,30 +23,12 @@ const useStyles = makeStyles({ gap: '1em', flexWrap: 'wrap', }, -}); - -const textFieldTheme = createTheme({ - palette: { - type: 'dark', - primary: { - light: '#fff', - main: '#fff', - dark: '#fff', - contrastText: '#fff', - }, - secondary: { - light: '#fff', - main: '#fff', - dark: '#fff', - contrastText: '#fff', - }, - action: { - disabled: '#fff', - }, - text: { - primary: '#fff', - secondary: '#fff', - }, + label: { + color: '#fff !important', + }, + outline: { + color: '#fff !important', + borderColor: '#fff !important', }, }); @@ -62,16 +39,16 @@ export const ApiBar = () => { {value => (
- - - value.setProjectId?.(parseInt(e.target.value, 10) || undefined) - } - /> - + + value.setProjectId?.(parseInt(e.target.value, 10) || undefined) + } + />
)}
diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index cf5140bec6..16a321ac87 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.12", + "version": "0.3.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md index 3ceb702535..ca6e63664b 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-allure +## 0.1.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.29 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 0e89a3c64b..838d0e7be9 100644 --- a/plugins/allure/package.json +++ b/plugins/allure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-allure", "description": "A Backstage plugin that integrates with Allure", - "version": "0.1.28", + "version": "0.1.30-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.test.tsx b/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.test.tsx index e6355d861f..a21ecbe10e 100644 --- a/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.test.tsx +++ b/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.test.tsx @@ -15,8 +15,6 @@ */ import React from 'react'; import { AllureReportComponent } from './AllureReportComponent'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { @@ -39,17 +37,15 @@ describe('ExampleComponent', () => { it('should render', async () => { const rendered = await renderInTestApp( - - - - - , + + + , ); expect(rendered.getByText('Missing Annotation')).toBeInTheDocument(); }); diff --git a/plugins/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md index d58dcfc9af..26fbd55c7d 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-analytics-module-ga +## 0.1.25-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## 0.1.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.24 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index 72535e062e..c6c727c077 100644 --- a/plugins/analytics-module-ga/package.json +++ b/plugins/analytics-module-ga/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-ga", - "version": "0.1.23", + "version": "0.1.25-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md index 3e8b0fe432..37f45d2719 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-apache-airflow +## 0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + +## 0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + ## 0.2.6 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index 296b215768..5f07e8b5c1 100644 --- a/plugins/apache-airflow/package.json +++ b/plugins/apache-airflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apache-airflow", - "version": "0.2.5", + "version": "0.2.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index 54c79c55a7..a2fb3378df 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-api-docs +## 0.8.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.8.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + ## 0.8.13 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index da8989ddae..2db5a7496c 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-api-docs", "description": "A Backstage plugin that helps represent API entities in the frontend", - "version": "0.8.12", + "version": "0.8.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/apollo-explorer/CHANGELOG.md b/plugins/apollo-explorer/CHANGELOG.md index 428bc261dd..df0b3107b2 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-apollo-explorer +## 0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.6 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index 9595996971..5837c956ec 100644 --- a/plugins/apollo-explorer/package.json +++ b/plugins/apollo-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-apollo-explorer", - "version": "0.1.5", + "version": "0.1.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index 19504256df..db914c8be0 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-app-backend +## 0.3.40-next.0 + +### Patch Changes + +- b4ffa3bd91: The warning for missing app contents is now logged as an error instead, but only in production. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/config-loader@1.1.8-next.0 + - @backstage/types@1.0.2 + ## 0.3.39 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 70213c6513..00294920d0 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.39", + "version": "0.3.40-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-backend/src/service/router.ts b/plugins/app-backend/src/service/router.ts index de299fd895..4e94138439 100644 --- a/plugins/app-backend/src/service/router.ts +++ b/plugins/app-backend/src/service/router.ts @@ -96,9 +96,11 @@ export async function createRouter( const staticDir = resolvePath(appDistDir, 'static'); if (!(await fs.pathExists(staticDir))) { - logger.warn( - `Can't serve static app content from ${staticDir}, directory doesn't exist`, - ); + if (process.env.NODE_ENV === 'production') { + logger.error( + `Can't serve static app content from ${staticDir}, directory doesn't exist`, + ); + } return Router(); } diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index 09fb03ce94..9fe1779ceb 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-auth-backend +## 0.17.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.9-next.0 + +## 0.17.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + ## 0.17.2 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 0811b909be..b6a7223bd6 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-auth-backend", "description": "A Backstage backend plugin that handles authentication", - "version": "0.17.2", + "version": "0.17.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md index 7e09ed80e1..273ba0afe7 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-auth-node +## 0.2.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + ## 0.2.8 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 304028a8a8..533b64f2c5 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-node", - "version": "0.2.8", + "version": "0.2.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md index 4c7cb205de..640a7bf246 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-azure-devops-backend +## 0.3.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.3.18 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 637f7e0e28..bab1b2febb 100644 --- a/plugins/azure-devops-backend/package.json +++ b/plugins/azure-devops-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops-backend", - "version": "0.3.18", + "version": "0.3.19-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-devops-backend/src/utils/azure-devops-utils.test.ts b/plugins/azure-devops-backend/src/utils/azure-devops-utils.test.ts index 74932c9653..4b912a8340 100644 --- a/plugins/azure-devops-backend/src/utils/azure-devops-utils.test.ts +++ b/plugins/azure-devops-backend/src/utils/azure-devops-utils.test.ts @@ -255,7 +255,6 @@ describe('replaceReadme', () => { }), readTree: jest.fn(), search: jest.fn(), - read: jest.fn(), }; const result = await replaceReadme( diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md index 287ea2fe25..e84ed94cb9 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-azure-devops +## 0.2.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-devops-common@0.3.0 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.2.4 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index ac530f638b..733a053d1b 100644 --- a/plugins/azure-devops/package.json +++ b/plugins/azure-devops/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-devops", - "version": "0.2.3", + "version": "0.2.5-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites-backend/CHANGELOG.md b/plugins/azure-sites-backend/CHANGELOG.md index 82c4bbcc48..dabfbfd625 100644 --- a/plugins/azure-sites-backend/CHANGELOG.md +++ b/plugins/azure-sites-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-azure-sites-backend +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json index a63fe892ba..b1d200d547 100644 --- a/plugins/azure-sites-backend/package.json +++ b/plugins/azure-sites-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-sites-backend", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/azure-sites/CHANGELOG.md b/plugins/azure-sites/CHANGELOG.md index 38d21df511..27379511f4 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-azure-sites +## 0.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-sites-common@0.1.0 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index 6772d177bf..92090f1092 100644 --- a/plugins/azure-sites/package.json +++ b/plugins/azure-sites/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-azure-sites", - "version": "0.1.1", + "version": "0.1.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md index 196cc33613..a4521b7dec 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-badges-backend +## 0.1.34-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + +## 0.1.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + ## 0.1.33 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index 479fba351b..962409f7f3 100644 --- a/plugins/badges-backend/package.json +++ b/plugins/badges-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges-backend", "description": "A Backstage backend plugin that generates README badges for your entities", - "version": "0.1.33", + "version": "0.1.34-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md index a1e0773ffb..b67d8dd6c1 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-badges +## 0.2.38-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.37 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index c8e1b23f88..c1bc841176 100644 --- a/plugins/badges/package.json +++ b/plugins/badges/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-badges", "description": "A Backstage plugin that generates README badges for your entities", - "version": "0.2.36", + "version": "0.2.38-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md index 900bacf0f1..b030ce174f 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-bazaar-backend +## 0.2.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + ## 0.2.2 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index c5b89f9ddf..1a9d5ebea6 100644 --- a/plugins/bazaar-backend/package.json +++ b/plugins/bazaar-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar-backend", - "version": "0.2.2", + "version": "0.2.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md index e2b039c4b2..c425d1a580 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,36 @@ # @backstage/plugin-bazaar +## 0.2.3-next.1 + +### Patch Changes + +- 0bf734dbac: Created soft cut on `ProjectCard` to indicate more content. +- 41d0b0a24a: Added `isBazaarAvailable` helper to be used with the `EntitySwitch`. +- Updated dependencies + - @backstage/cli@0.22.1-next.1 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.22.1-next.0 + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog@1.7.2-next.0 + ## 0.2.2 ### Patch Changes diff --git a/plugins/bazaar/README.md b/plugins/bazaar/README.md index 2ad141935e..218a5a886c 100644 --- a/plugins/bazaar/README.md +++ b/plugins/bazaar/README.md @@ -49,17 +49,20 @@ Add a **Bazaar icon** to the Sidebar to easily access the Bazaar. In `packages/a Add a **Bazaar card** to the overview tab on the `packages/app/src/components/catalog/EntityPage.tsx` add: ```diff -+ import { EntityBazaarInfoCard } from '@backstage/plugin-bazaar'; ++ import { EntityBazaarInfoCard, isBazaarAvailable } from '@backstage/plugin-bazaar'; const overviewContent = ( - -+ -+ -+ ++ ++ ++ ++ ++ ++ ++ {/* ...other entity-cards */} ``` diff --git a/plugins/bazaar/api-report.md b/plugins/bazaar/api-report.md index d7c463888a..afbb7b5504 100644 --- a/plugins/bazaar/api-report.md +++ b/plugins/bazaar/api-report.md @@ -5,7 +5,9 @@ ```ts /// +import { ApiHolder } from '@backstage/core-plugin-api'; import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { Entity } from '@backstage/catalog-model'; import { RouteRef } from '@backstage/core-plugin-api'; // @public (undocumented) @@ -36,6 +38,14 @@ export const bazaarPlugin: BackstagePlugin< // @public (undocumented) export const EntityBazaarInfoCard: () => JSX.Element | null; +// @public (undocumented) +export const isBazaarAvailable: ( + entity: Entity, + context: { + apis: ApiHolder; + }, +) => Promise; + // @public (undocumented) export const SortView: () => JSX.Element; diff --git a/plugins/bazaar/media/overviewCard.png b/plugins/bazaar/media/overviewCard.png index ef41ca48e5..a2c2756d9b 100644 Binary files a/plugins/bazaar/media/overviewCard.png and b/plugins/bazaar/media/overviewCard.png differ diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 94a48473e5..54a09812eb 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.2.1", + "version": "0.2.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -30,6 +30,7 @@ "@backstage/errors": "workspace:^", "@backstage/plugin-catalog": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", + "@backstage/theme": "workspace:^", "@date-io/luxon": "1.x", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/bazaar/src/api.ts b/plugins/bazaar/src/api.ts index 33455e69fc..a2e32e274a 100644 --- a/plugins/bazaar/src/api.ts +++ b/plugins/bazaar/src/api.ts @@ -14,7 +14,9 @@ * limitations under the License. */ +import { Entity, stringifyEntityRef } from '@backstage/catalog-model'; import { + ApiHolder, createApiRef, DiscoveryApi, FetchApi, @@ -46,6 +48,25 @@ export interface BazaarApi { deleteProject(id: number): Promise; } +/** @public */ +export const isBazaarAvailable = async ( + entity: Entity, + context: { apis: ApiHolder }, +): Promise => { + const bazaarClient = context.apis.get(bazaarApiRef); + if (bazaarClient === undefined) { + return false; + } + const entityRef = stringifyEntityRef({ + kind: entity.kind, + name: entity.metadata.name, + namespace: entity.metadata.namespace, + }); + const response = await bazaarClient.getProjectByRef(entityRef); + const project = await response.json(); + return project.data.length > 0; +}; + export class BazaarClient implements BazaarApi { private readonly identityApi: IdentityApi; private readonly discoveryApi: DiscoveryApi; diff --git a/plugins/bazaar/src/components/BazaarOverviewCard/BazaarOverviewCard.tsx b/plugins/bazaar/src/components/BazaarOverviewCard/BazaarOverviewCard.tsx index c58ee3db1c..da43d4a206 100644 --- a/plugins/bazaar/src/components/BazaarOverviewCard/BazaarOverviewCard.tsx +++ b/plugins/bazaar/src/components/BazaarOverviewCard/BazaarOverviewCard.tsx @@ -146,7 +146,7 @@ export const BazaarOverviewCard = (props: BazaarOverviewCardProps) => { catalogEntities={unlinkedCatalogEntities || []} useTablePagination={false} gridSize={fullWidth ? 2 : 4} - height={fullHeight ? '13rem' : '7rem'} + height={fullHeight ? 'large' : 'small'} /> ); diff --git a/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx b/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx index 9193215804..97b247e289 100644 --- a/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx +++ b/plugins/bazaar/src/components/ProjectCard/ProjectCard.tsx @@ -29,39 +29,41 @@ import { BazaarProject } from '../../types'; import { DateTime } from 'luxon'; import { HomePageBazaarInfoCard } from '../HomePageBazaarInfoCard'; import { Entity } from '@backstage/catalog-model'; +import { BackstageTheme } from '@backstage/theme'; type Props = { project: BazaarProject; fetchBazaarProjects: () => Promise; catalogEntities: Entity[]; - height?: string; + height: 'large' | 'small'; }; -const useStyles = makeStyles({ +type StyleProps = { + height: 'large' | 'small'; +}; + +const useStyles = makeStyles((theme: BackstageTheme) => ({ + description: (props: StyleProps) => ({ + height: props.height === 'large' ? '10rem' : '4rem', + WebkitBackgroundClip: 'text', + backgroundImage: `linear-gradient(180deg, ${theme.palette.textContrast} 0%, ${theme.palette.textContrast} 60%, transparent 100%)`, + color: 'transparent', + }), statusTag: { display: 'inline-block', whiteSpace: 'nowrap', marginBottom: '0.8rem', }, - description: { - display: '-webkit-box', - WebkitLineClamp: 7, - WebkitBoxOrient: 'vertical', - overflow: 'hidden', - }, memberCount: { float: 'right', }, - content: { - height: '13rem', - }, header: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', height: '5rem', }, -}); +})); export const ProjectCard = ({ project, @@ -69,7 +71,7 @@ export const ProjectCard = ({ catalogEntities, height, }: Props) => { - const classes = useStyles(); + const classes = useStyles({ height }); const [openCard, setOpenCard] = useState(false); const { id, title, status, updatedAt, description, membersCount } = project; @@ -103,7 +105,7 @@ export const ProjectCard = ({ base: DateTime.now(), })}`} /> - + {Number(membersCount) === Number(1) diff --git a/plugins/bazaar/src/components/ProjectPreview/ProjectPreview.tsx b/plugins/bazaar/src/components/ProjectPreview/ProjectPreview.tsx index 216cf50c2f..8f7160600a 100644 --- a/plugins/bazaar/src/components/ProjectPreview/ProjectPreview.tsx +++ b/plugins/bazaar/src/components/ProjectPreview/ProjectPreview.tsx @@ -27,7 +27,7 @@ type Props = { catalogEntities: Entity[]; useTablePagination?: boolean; gridSize?: GridSize; - height: string; + height: 'large' | 'small'; }; const useStyles = makeStyles({ @@ -56,7 +56,7 @@ export const ProjectPreview = ({ catalogEntities, useTablePagination = true, gridSize = 2, - height, + height = 'large', }: Props) => { const classes = useStyles(); const [page, setPage] = useState(1); diff --git a/plugins/bazaar/src/components/SortView/SortView.tsx b/plugins/bazaar/src/components/SortView/SortView.tsx index 68b63a6885..b3e592fc6f 100644 --- a/plugins/bazaar/src/components/SortView/SortView.tsx +++ b/plugins/bazaar/src/components/SortView/SortView.tsx @@ -199,7 +199,7 @@ export const SortView = () => { bazaarProjects={getSearchResults() || []} fetchBazaarProjects={fetchBazaarProjects} catalogEntities={unlinkedCatalogEntities || []} - height="13rem" + height="large" /> diff --git a/plugins/bazaar/src/index.ts b/plugins/bazaar/src/index.ts index 0014c66b6d..c0378e60bf 100644 --- a/plugins/bazaar/src/index.ts +++ b/plugins/bazaar/src/index.ts @@ -15,6 +15,7 @@ */ export { bazaarPlugin, BazaarPage } from './plugin'; +export { isBazaarAvailable } from './api'; export { BazaarOverviewCard } from './components/BazaarOverviewCard'; export type { BazaarOverviewCardProps } from './components/BazaarOverviewCard'; export { EntityBazaarInfoCard } from './components/EntityBazaarInfoCard'; diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md index abe41846a9..985bc4768d 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.4.2-next.0 + ## 0.2.2 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 9d9c62b4d3..1ea48b000e 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitbucket-cloud-common", "description": "Common functionalities for bitbucket-cloud plugins", - "version": "0.2.2", + "version": "0.2.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md index b274d25bfe..e52bff0cbb 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-bitrise +## 0.1.41-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.41-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.40 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index edc6cbbfe4..0cd3e0dec0 100644 --- a/plugins/bitrise/package.json +++ b/plugins/bitrise/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-bitrise", "description": "A Backstage plugin that integrates towards Bitrise", - "version": "0.1.39", + "version": "0.1.41-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index d88bba552e..4b715fa611 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.1.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## 0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.12 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 2ed36817ca..7780c1112b 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", "description": "A Backstage catalog backend module that helps integrate towards AWS", - "version": "0.1.12", + "version": "0.1.13-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index 4dc3624a85..d55dfb92e2 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## 0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 0af593dee2..cc96ff1035 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", "description": "A Backstage catalog backend module that helps integrate towards Azure", - "version": "0.1.10", + "version": "0.1.11-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index a240521910..6d657a3121 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,41 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/plugin-events-node@0.2.1-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.3-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.1 + +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-node@0.2.0 + ## 0.1.6 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index affc83b05b..b424cfc9a8 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud", - "version": "0.1.6", + "version": "0.1.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index de9972965d..c310fb3245 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,35 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 50f44815fd..1d9921a0c1 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.4", + "version": "0.1.5-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md index c4938eb94b..e246bf1599 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.3-next.0 + +## 0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.2 + ## 0.2.6 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 032aed5ee8..76d669bfda 100644 --- a/plugins/catalog-backend-module-bitbucket/package.json +++ b/plugins/catalog-backend-module-bitbucket/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket", - "version": "0.2.6", + "version": "0.2.7-next.1", "deprecated": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 1779022c20..7f67186188 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,35 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.7 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 3e54000888..8a68f6a85d 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.7", + "version": "0.1.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index 8877483f7b..64c7bc8711 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,50 @@ # @backstage/plugin-catalog-backend-module-github +## 0.2.3-next.1 + +### Patch Changes + +- 427d8f4411: Added support for event based updates in the `GithubOrgEntityProvider`! + Based on webhook events from GitHub the affected `User` or `Group` entity will be refreshed. + This includes adding new entities, refreshing existing ones, and removing obsolete ones. + + Please find more information at + https://backstage.io/docs/integrations/github/org#installation-with-events-support + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/plugin-events-node@0.2.1-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-events-node@0.2.0 + ## 0.2.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/api-report.md b/plugins/catalog-backend-module-github/api-report.md index 8ccfdb09ee..78ffd5b018 100644 --- a/plugins/catalog-backend-module-github/api-report.md +++ b/plugins/catalog-backend-module-github/api-report.md @@ -178,7 +178,9 @@ export class GitHubOrgEntityProvider extends GithubOrgEntityProvider { } // @public -export class GithubOrgEntityProvider implements EntityProvider { +export class GithubOrgEntityProvider + implements EntityProvider, EventSubscriber +{ constructor(options: { id: string; orgUrl: string; @@ -197,7 +199,11 @@ export class GithubOrgEntityProvider implements EntityProvider { ): GithubOrgEntityProvider; // (undocumented) getProviderName(): string; + // (undocumented) + onEvent(params: EventParams): Promise; read(options?: { logger?: Logger }): Promise; + // (undocumented) + supportsEventTopics(): string[]; } // @public @deprecated (undocumented) diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 743fd144e8..7d51bcdd20 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-github", "description": "A Backstage catalog backend module that helps integrate towards GitHub", - "version": "0.2.2", + "version": "0.2.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-github/src/lib/github.test.ts b/plugins/catalog-backend-module-github/src/lib/github.test.ts index d07d2f6af8..387dc8a2ee 100644 --- a/plugins/catalog-backend-module-github/src/lib/github.test.ts +++ b/plugins/catalog-backend-module-github/src/lib/github.test.ts @@ -29,6 +29,9 @@ import { QueryResponse, GithubUser, GithubTeam, + createAddEntitiesOperation, + createRemoveEntitiesOperation, + createReplaceEntitiesOperation, } from './github'; import fetch from 'node-fetch'; @@ -557,4 +560,107 @@ describe('github', () => { ).resolves.toEqual(output); }); }); + + describe('createAddEntitiesOperation', () => { + it('create a function to add deferred entities to a delta operation', () => { + const operation = createAddEntitiesOperation('my-id', 'host'); + + const userEntity: UserEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + name: 'githubuser', + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + }, + spec: { + memberOf: ['new-team'], + }, + }; + expect(operation('org', [userEntity])).toEqual({ + added: [ + { + locationKey: 'github-org-provider:my-id', + entity: userEntity, + }, + ], + removed: [], + }); + }); + }); + + describe('createRemoveEntitiesOperation', () => { + it('create a function to remove deferred entities to a delta operation', () => { + const operation = createRemoveEntitiesOperation('my-id', 'host'); + + const userEntity: UserEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + name: 'githubuser', + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + }, + spec: { + memberOf: ['new-team'], + }, + }; + expect(operation('org', [userEntity])).toEqual({ + removed: [ + { + locationKey: 'github-org-provider:my-id', + entity: userEntity, + }, + ], + added: [], + }); + }); + }); + describe('createReplaceEntitiesOperation', () => { + it('create a function to replace deferred entities to a delta operation', () => { + const operation = createReplaceEntitiesOperation('my-id', 'host'); + + const userEntity: UserEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + name: 'githubuser', + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + }, + spec: { + memberOf: ['new-team'], + }, + }; + expect(operation('org', [userEntity])).toEqual({ + removed: [ + { + locationKey: 'github-org-provider:my-id', + entity: userEntity, + }, + ], + added: [ + { + locationKey: 'github-org-provider:my-id', + entity: userEntity, + }, + ], + }); + }); + }); }); diff --git a/plugins/catalog-backend-module-github/src/lib/github.ts b/plugins/catalog-backend-module-github/src/lib/github.ts index 4d583d0730..f719e3d506 100644 --- a/plugins/catalog-backend-module-github/src/lib/github.ts +++ b/plugins/catalog-backend-module-github/src/lib/github.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { GroupEntity, UserEntity } from '@backstage/catalog-model'; +import { Entity, GroupEntity, UserEntity } from '@backstage/catalog-model'; import { GithubCredentialType } from '@backstage/integration'; import { graphql } from '@octokit/graphql'; import { @@ -24,6 +24,9 @@ import { TransformerContext, UserTransformer, } from './defaultTransformers'; +import { withLocations } from '../providers/GithubOrgEntityProvider'; + +import { DeferredEntity } from '@backstage/plugin-catalog-backend'; // Graphql types @@ -191,7 +194,14 @@ export async function getOrganizationTeams( parentTeam { slug } members(first: 100, membership: IMMEDIATE) { pageInfo { hasNextPage } - nodes { login } + nodes { + avatarUrl, + bio, + email, + login, + name, + organizationVerifiedDomainEmails(login: $org) + } } } } @@ -238,6 +248,164 @@ export async function getOrganizationTeams( return { groups }; } +export async function getOrganizationTeamsFromUsers( + client: typeof graphql, + org: string, + userLogins: string[], + teamTransformer: TeamTransformer = defaultOrganizationTeamTransformer, +): Promise<{ + groups: GroupEntity[]; +}> { + const query = ` + query teams($org: String!, $cursor: String, $userLogins: [String!] = "") { + organization(login: $org) { + teams(first: 100, after: $cursor, userLogins: $userLogins) { + pageInfo { + hasNextPage + endCursor + } + nodes { + slug + combinedSlug + name + description + avatarUrl + editTeamUrl + parentTeam { + slug + } + members(first: 100, membership: IMMEDIATE) { + pageInfo { + hasNextPage + } + nodes { + avatarUrl, + bio, + email, + login, + name, + organizationVerifiedDomainEmails(login: $org) + } + } + } + } + } +}`; + + const materialisedTeams = async ( + item: GithubTeamResponse, + ctx: TransformerContext, + ): Promise => { + const memberNames: GithubUser[] = []; + + if (!item.members.pageInfo.hasNextPage) { + // We got all the members in one go, run the fast path + for (const user of item.members.nodes) { + memberNames.push(user); + } + } else { + // There were more than a hundred immediate members - run the slow + // path of fetching them explicitly + const { members } = await getTeamMembers(ctx.client, ctx.org, item.slug); + for (const userLogin of members) { + memberNames.push(userLogin); + } + } + + const team: GithubTeam = { + ...item, + members: memberNames, + }; + + return await teamTransformer(team, ctx); + }; + + const groups = await queryWithPaging( + client, + query, + org, + r => r.organization?.teams, + materialisedTeams, + { org, userLogins }, + ); + + return { groups }; +} + +export async function getOrganizationTeam( + client: typeof graphql, + org: string, + teamSlug: string, + teamTransformer: TeamTransformer = defaultOrganizationTeamTransformer, +): Promise<{ + group: GroupEntity; +}> { + const query = ` + query teams($org: String!, $teamSlug: String!) { + organization(login: $org) { + team(slug:$teamSlug) { + slug + combinedSlug + name + description + avatarUrl + editTeamUrl + parentTeam { slug } + members(first: 100, membership: IMMEDIATE) { + pageInfo { hasNextPage } + nodes { login } + } + } + } + }`; + + const materialisedTeam = async ( + item: GithubTeamResponse, + ctx: TransformerContext, + ): Promise => { + const memberNames: GithubUser[] = []; + + if (!item.members.pageInfo.hasNextPage) { + // We got all the members in one go, run the fast path + for (const user of item.members.nodes) { + memberNames.push(user); + } + } else { + // There were more than a hundred immediate members - run the slow + // path of fetching them explicitly + const { members } = await getTeamMembers(ctx.client, ctx.org, item.slug); + for (const userLogin of members) { + memberNames.push(userLogin); + } + } + + const team: GithubTeam = { + ...item, + members: memberNames, + }; + + return await teamTransformer(team, ctx); + }; + + const response: QueryResponse = await client(query, { + org, + teamSlug, + }); + + if (!response.organization?.team) + throw new Error(`Found no match for group ${teamSlug}`); + + const group = await materialisedTeam(response.organization?.team, { + query, + client, + org, + }); + + if (!group) throw new Error(`Can't transform for group ${teamSlug}`); + + return { group }; +} + export async function getOrganizationRepositories( client: typeof graphql, org: string, @@ -349,6 +517,7 @@ export async function getTeamMembers( * * @param client - The octokit client * @param query - The query to execute + * @param org - The slug of the org to read * @param connection - A function that, given the response, picks out the actual * Connection object that's being iterated * @param transformer - A function that, given one of the nodes in the Connection, @@ -406,3 +575,39 @@ export async function queryWithPaging< return result; } + +export type DeferredEntitiesBuilder = ( + org: string, + entities: Entity[], +) => { added: DeferredEntity[]; removed: DeferredEntity[] }; + +export const createAddEntitiesOperation = + (id: string, host: string) => (org: string, entities: Entity[]) => ({ + removed: [], + added: entities.map(entity => ({ + locationKey: `github-org-provider:${id}`, + entity: withLocations(`https://${host}`, org, entity), + })), + }); + +export const createRemoveEntitiesOperation = + (id: string, host: string) => (org: string, entities: Entity[]) => ({ + added: [], + removed: entities.map(entity => ({ + locationKey: `github-org-provider:${id}`, + entity: withLocations(`https://${host}`, org, entity), + })), + }); + +export const createReplaceEntitiesOperation = + (id: string, host: string) => (org: string, entities: Entity[]) => { + const entitiesToReplace = entities.map(entity => ({ + locationKey: `github-org-provider:${id}`, + entity: withLocations(`https://${host}`, org, entity), + })); + + return { + removed: entitiesToReplace, + added: entitiesToReplace, + }; + }; diff --git a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts index 0b8765b93e..c24cd573e0 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.test.ts @@ -22,6 +22,7 @@ import { } from '@backstage/integration'; import { EntityProviderConnection } from '@backstage/plugin-catalog-backend'; import { graphql } from '@octokit/graphql'; +import { EventParams } from '@backstage/plugin-events-node'; import { GithubOrgEntityProvider, withLocations, @@ -237,4 +238,1079 @@ describe('GithubOrgEntityProvider', () => { }); }); }); + + describe('receiving events from github', () => { + afterEach(() => jest.resetAllMocks()); + + it('should apply delta added on receive a new member in the organization', async () => { + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + refresh: jest.fn(), + }; + + const logger = getVoidLogger(); + const gitHubConfig: GithubIntegrationConfig = { + host: 'github.com', + }; + + const mockGetCredentials = jest.fn().mockReturnValue({ + headers: { token: 'blah' }, + type: 'app', + }); + + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: mockGetCredentials, + }; + + const entityProvider = new GithubOrgEntityProvider({ + id: 'my-id', + githubCredentialsProvider, + orgUrl: 'https://github.com/backstage', + gitHubConfig, + logger, + }); + + entityProvider.connect(entityProviderConnection); + + const expectedEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + name: 'githubuser', + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + }, + spec: { + memberOf: [], + profile: { + displayName: 'githubuser', + email: 'user1@test.com', + picture: 'https://avatars.githubusercontent.com/u/83820368', + }, + }, + }; + + const event: EventParams = { + topic: 'github.organization', + eventPayload: { + action: 'member_added', + membership: { + user: { + name: 'githubuser', + login: 'githubuser', + avatar_url: 'https://avatars.githubusercontent.com/u/83820368', + email: 'user1@test.com', + }, + }, + organization: { + login: 'test-org', + }, + }, + }; + + await entityProvider.onEvent(event); + + expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(1); + expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({ + type: 'delta', + added: [ + { + locationKey: 'github-org-provider:my-id', + entity: expectedEntity, + }, + ], + removed: [], + }); + }); + + it('should apply delta removed on receive a removed member in the organization', async () => { + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + refresh: jest.fn(), + }; + + const logger = getVoidLogger(); + const gitHubConfig: GithubIntegrationConfig = { + host: 'github.com', + }; + + const mockGetCredentials = jest.fn().mockReturnValue({ + headers: { token: 'blah' }, + type: 'app', + }); + + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: mockGetCredentials, + }; + + const entityProvider = new GithubOrgEntityProvider({ + id: 'my-id', + githubCredentialsProvider, + orgUrl: 'https://github.com/backstage', + gitHubConfig, + logger, + }); + + entityProvider.connect(entityProviderConnection); + + const expectedEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + name: 'githubuser', + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + }, + spec: { + memberOf: [], + profile: { + displayName: 'githubuser', + email: 'user1@test.com', + picture: 'https://avatars.githubusercontent.com/u/83820368', + }, + }, + }; + + const event: EventParams = { + topic: 'github.organization', + eventPayload: { + action: 'member_removed', + membership: { + user: { + name: 'githubuser', + login: 'githubuser', + avatar_url: 'https://avatars.githubusercontent.com/u/83820368', + email: 'user1@test.com', + }, + }, + organization: { + login: 'test-org', + }, + }, + }; + + await entityProvider.onEvent(event); + + expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(1); + expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({ + type: 'delta', + removed: [ + { + locationKey: 'github-org-provider:my-id', + entity: expectedEntity, + }, + ], + added: [], + }); + }); + + it('should apply delta added on receive a created team', async () => { + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + refresh: jest.fn(), + }; + + const logger = getVoidLogger(); + const gitHubConfig: GithubIntegrationConfig = { + host: 'github.com', + }; + + const mockGetCredentials = jest.fn().mockReturnValue({ + headers: { token: 'blah' }, + type: 'app', + }); + + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: mockGetCredentials, + }; + + const entityProvider = new GithubOrgEntityProvider({ + id: 'my-id', + githubCredentialsProvider, + orgUrl: 'https://github.com/backstage', + gitHubConfig, + logger, + }); + + entityProvider.connect(entityProviderConnection); + + const expectedEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + metadata: { + name: 'new-team', + description: 'description from the new team', + annotations: { + 'backstage.io/edit-url': + 'https://github.com/orgs/test-org/teams/new-team/edit', + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/test-org/teams/new-team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/test-org/teams/new-team', + 'github.com/team-slug': 'test-org/new-team', + }, + }, + spec: { + type: 'team', + children: [], + members: [], + parent: 'father-team', + profile: { + displayName: 'New Team', + }, + }, + }; + + const event: EventParams = { + topic: 'github.team', + eventPayload: { + action: 'created', + team: { + name: 'New Team', + slug: 'new-team', + description: 'description from the new team', + html_url: 'https://github.com/orgs/test-org/teams/new-team', + parent: { + slug: 'father-team', + }, + }, + organization: { + login: 'test-org', + }, + }, + }; + + await entityProvider.onEvent(event); + + expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(1); + expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({ + type: 'delta', + added: [ + { + locationKey: 'github-org-provider:my-id', + entity: expectedEntity, + }, + ], + removed: [], + }); + }); + + it('should apply delta removed on receive a deleted team', async () => { + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + refresh: jest.fn(), + }; + + const logger = getVoidLogger(); + const gitHubConfig: GithubIntegrationConfig = { + host: 'github.com', + }; + + const mockGetCredentials = jest.fn().mockReturnValue({ + headers: { token: 'blah' }, + type: 'app', + }); + + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: mockGetCredentials, + }; + + const entityProvider = new GithubOrgEntityProvider({ + id: 'my-id', + githubCredentialsProvider, + orgUrl: 'https://github.com/backstage', + gitHubConfig, + logger, + }); + + entityProvider.connect(entityProviderConnection); + + const expectedEntity = { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + metadata: { + name: 'new-team', + description: 'description from the new team', + annotations: { + 'backstage.io/edit-url': + 'https://github.com/orgs/test-org/teams/new-team/edit', + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/test-org/teams/new-team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/test-org/teams/new-team', + 'github.com/team-slug': 'test-org/new-team', + }, + }, + spec: { + type: 'team', + children: [], + members: [], + parent: 'father-team', + profile: { + displayName: 'New Team', + }, + }, + }; + + const event: EventParams = { + topic: 'github.team', + eventPayload: { + action: 'deleted', + team: { + databaseId: 1, + name: 'New Team', + slug: 'new-team', + description: 'description from the new team', + html_url: 'https://github.com/orgs/test-org/teams/new-team', + parent: { + slug: 'father-team', + }, + }, + organization: { + login: 'test-org', + }, + }, + }; + + await entityProvider.onEvent(event); + + expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(1); + expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({ + type: 'delta', + removed: [ + { + locationKey: 'github-org-provider:my-id', + entity: expectedEntity, + }, + ], + added: [], + }); + }); + + it('should apply delta on receive a edited team', async () => { + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + refresh: jest.fn(), + }; + + const logger = getVoidLogger(); + const gitHubConfig: GithubIntegrationConfig = { + host: 'github.com', + }; + + const mockGetCredentials = jest.fn().mockReturnValue({ + headers: { token: 'blah' }, + type: 'app', + }); + + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: mockGetCredentials, + }; + + const entityProvider = new GithubOrgEntityProvider({ + id: 'my-id', + githubCredentialsProvider, + orgUrl: 'https://github.com/backstage', + gitHubConfig, + logger, + }); + + const mockClient = jest.fn(); + + mockClient + .mockResolvedValueOnce({ + organization: { + team: { + slug: 'team', + combinedSlug: 'blah/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: 'githubuser' }], + }, + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + membersWithRole: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + login: 'a', + name: 'b', + bio: 'c', + email: 'd', + avatarUrl: 'e', + }, + { + login: 'githubuser', + name: 'githubuser', + bio: 'githubuser', + email: 'd', + avatarUrl: 'e', + }, + ], + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + teams: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + slug: 'team', + combinedSlug: 'blah/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: 'githubuser' }], + }, + }, + ], + }, + }, + }); + + (graphql.defaults as jest.Mock).mockReturnValue(mockClient); + + entityProvider.connect(entityProviderConnection); + + const event: EventParams = { + topic: 'github.team', + eventPayload: { + action: 'edited', + changes: { + name: { + from: 'mygroup with spaces', + }, + }, + team: { + node_id: 'xpto', + name: 'New Team', + slug: 'new-team', + description: 'description from the new team', + html_url: 'https://github.com/orgs/test-org/teams/new-team', + parent: { + slug: 'father-team', + }, + }, + organization: { + login: 'test-org', + }, + }, + }; + + await entityProvider.onEvent(event); + await new Promise(process.nextTick); + + expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(1); + expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({ + added: [ + { + locationKey: 'github-org-provider:my-id', + entity: { + 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', + }, + name: 'a', + description: 'c', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + spec: { + profile: { + displayName: 'b', + email: 'd', + picture: 'e', + }, + memberOf: ['team'], + }, + }, + }, + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + name: 'githubuser', + description: 'githubuser', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + spec: { + profile: { + displayName: 'githubuser', + email: 'd', + picture: 'e', + }, + memberOf: ['team'], + }, + }, + }, + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'github.com/team-slug': 'blah/team', + }, + name: 'team', + description: 'The one and only team', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + spec: { + type: 'team', + profile: { + displayName: 'Team', + picture: 'http://example.com/team.jpeg', + }, + children: [], + parent: 'parent', + members: ['a', 'githubuser'], + }, + }, + }, + ], + removed: [ + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/backstage/teams/mygroup-with-spaces', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/backstage/teams/mygroup-with-spaces', + }, + name: 'mygroup-with-spaces', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + spec: { + type: 'team', + profile: { + displayName: 'Team', + picture: 'http://example.com/team.jpeg', + }, + children: [], + parent: 'parent', + members: ['a', 'githubuser'], + }, + }, + }, + ], + type: 'delta', + }); + }); + + it('should apply delta on receive a membership added', async () => { + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + refresh: jest.fn(), + }; + + const logger = getVoidLogger(); + const gitHubConfig: GithubIntegrationConfig = { + host: 'github.com', + }; + + const mockGetCredentials = jest.fn().mockReturnValue({ + headers: { token: 'blah' }, + type: 'app', + }); + + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: mockGetCredentials, + }; + + const entityProvider = new GithubOrgEntityProvider({ + id: 'my-id', + githubCredentialsProvider, + orgUrl: 'https://github.com/backstage', + gitHubConfig, + logger, + }); + + const mockClient = jest.fn(); + + mockClient + .mockResolvedValueOnce({ + organization: { + team: { + slug: 'team', + combinedSlug: 'blah/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: 'githubuser' }], + }, + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + membersWithRole: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + login: 'a', + name: 'b', + bio: 'c', + email: 'd', + avatarUrl: 'e', + }, + { + login: 'githubuser', + name: 'githubuser', + bio: 'githubuser', + email: 'd', + avatarUrl: 'e', + }, + ], + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + teams: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + slug: 'team', + combinedSlug: 'blah/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: 'githubuser' }], + }, + }, + ], + }, + }, + }); + + (graphql.defaults as jest.Mock).mockReturnValue(mockClient); + entityProvider.connect(entityProviderConnection); + + const event: EventParams = { + topic: 'github.membership', + eventPayload: { + action: 'added', + team: { + name: 'New Team', + slug: 'new-team', + description: 'description from the new team', + html_url: 'https://github.com/orgs/test-org/teams/new-team', + parent: { + slug: 'father-team', + }, + }, + member: { + login: 'githubuser', + }, + organization: { + login: 'test-org', + }, + }, + }; + + await entityProvider.onEvent(event); + await new Promise(process.nextTick); + + expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(1); + expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({ + added: [ + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + name: 'githubuser', + description: 'githubuser', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + spec: { + profile: { + displayName: 'githubuser', + email: 'd', + picture: 'e', + }, + memberOf: ['team'], + }, + }, + }, + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'github.com/team-slug': 'blah/team', + }, + name: 'team', + description: 'The one and only team', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + spec: { + type: 'team', + profile: { + displayName: 'Team', + picture: 'http://example.com/team.jpeg', + }, + children: [], + parent: 'parent', + members: ['a', 'githubuser'], + }, + }, + }, + ], + removed: [ + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + name: 'githubuser', + description: 'githubuser', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + spec: { + profile: { + displayName: 'githubuser', + email: 'd', + picture: 'e', + }, + memberOf: ['team'], + }, + }, + }, + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'github.com/team-slug': 'blah/team', + }, + name: 'team', + description: 'The one and only team', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + spec: { + type: 'team', + profile: { + displayName: 'Team', + picture: 'http://example.com/team.jpeg', + }, + children: [], + parent: 'parent', + members: ['a', 'githubuser'], + }, + }, + }, + ], + type: 'delta', + }); + }); + + it('should apply delta on receive a membership removed', async () => { + const entityProviderConnection: EntityProviderConnection = { + applyMutation: jest.fn(), + refresh: jest.fn(), + }; + + const logger = getVoidLogger(); + const gitHubConfig: GithubIntegrationConfig = { + host: 'github.com', + }; + + const mockGetCredentials = jest.fn().mockReturnValue({ + headers: { token: 'blah' }, + type: 'app', + }); + + const githubCredentialsProvider: GithubCredentialsProvider = { + getCredentials: mockGetCredentials, + }; + + const entityProvider = new GithubOrgEntityProvider({ + id: 'my-id', + githubCredentialsProvider, + orgUrl: 'https://github.com/backstage', + gitHubConfig, + logger, + }); + + const mockClient = jest.fn(); + + mockClient + .mockResolvedValueOnce({ + organization: { + team: { + slug: 'team', + combinedSlug: 'blah/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' }], + }, + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + membersWithRole: { + pageInfo: { hasNextPage: false }, + nodes: [ + { + login: 'githubuser', + name: 'githubuser', + bio: 'githubuser', + email: 'd', + avatarUrl: 'e', + }, + ], + }, + }, + }) + .mockResolvedValueOnce({ + organization: { + teams: { + pageInfo: { hasNextPage: false }, + nodes: [], + }, + }, + }); + + (graphql.defaults as jest.Mock).mockReturnValue(mockClient); + entityProvider.connect(entityProviderConnection); + + const event: EventParams = { + topic: 'github.membership', + eventPayload: { + action: 'removed', + team: { + name: 'New Team', + slug: 'new-team', + description: 'description from the new team', + html_url: 'https://github.com/orgs/test-org/teams/new-team', + parent: { + slug: 'father-team', + }, + }, + member: { + login: 'githubuser', + }, + organization: { + login: 'test-org', + }, + }, + }; + + await entityProvider.onEvent(event); + await new Promise(process.nextTick); + + expect(entityProviderConnection.applyMutation).toHaveBeenCalledTimes(1); + expect(entityProviderConnection.applyMutation).toHaveBeenCalledWith({ + added: [ + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + name: 'githubuser', + description: 'githubuser', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + spec: { + profile: { + displayName: 'githubuser', + email: 'd', + picture: 'e', + }, + memberOf: [], + }, + }, + }, + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'github.com/team-slug': 'blah/team', + }, + name: 'team', + description: 'The one and only team', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + spec: { + type: 'team', + profile: { + displayName: 'Team', + picture: 'http://example.com/team.jpeg', + }, + children: [], + parent: 'parent', + members: ['a'], + }, + }, + }, + ], + removed: [ + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/githubuser', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/githubuser', + 'github.com/user-login': 'githubuser', + }, + name: 'githubuser', + description: 'githubuser', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + spec: { + profile: { + displayName: 'githubuser', + email: 'd', + picture: 'e', + }, + memberOf: [], + }, + }, + }, + { + locationKey: 'github-org-provider:my-id', + entity: { + metadata: { + annotations: { + 'backstage.io/managed-by-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'backstage.io/managed-by-origin-location': + 'url:https://github.com/orgs/backstage/teams/team', + 'github.com/team-slug': 'blah/team', + }, + name: 'team', + description: 'The one and only team', + }, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Group', + spec: { + type: 'team', + profile: { + displayName: 'Team', + picture: 'http://example.com/team.jpeg', + }, + children: [], + parent: 'parent', + members: ['a'], + }, + }, + }, + ], + type: 'delta', + }); + }); + }); }); diff --git a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts index 210df46363..46ad089625 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubOrgEntityProvider.ts @@ -28,22 +28,43 @@ import { ScmIntegrations, SingleInstanceGithubCredentialsProvider, } from '@backstage/integration'; +import { EventParams } from '@backstage/plugin-events-node'; +import { EventSubscriber } from '@backstage/plugin-events-node'; import { EntityProvider, EntityProviderConnection, } from '@backstage/plugin-catalog-backend'; import { graphql } from '@octokit/graphql'; +import { + OrganizationEvent, + OrganizationMemberAddedEvent, + OrganizationMemberRemovedEvent, + TeamEvent, + TeamEditedEvent, + MembershipEvent, +} from '@octokit/webhooks-types'; import { merge } from 'lodash'; import * as uuid from 'uuid'; import { Logger } from 'winston'; import { assignGroupsToUsers, buildOrgHierarchy, + defaultOrganizationTeamTransformer, + defaultUserTransformer, getOrganizationTeams, getOrganizationUsers, + GithubTeam, parseGithubOrgUrl, } from '../lib'; -import { TeamTransformer, UserTransformer } from '../lib/defaultTransformers'; +import { TeamTransformer, UserTransformer } from '../lib'; +import { + createAddEntitiesOperation, + createRemoveEntitiesOperation, + createReplaceEntitiesOperation, + DeferredEntitiesBuilder, + getOrganizationTeam, + getOrganizationTeamsFromUsers, +} from '../lib/github'; /** * Options for {@link GithubOrgEntityProvider}. @@ -101,13 +122,14 @@ export interface GithubOrgEntityProviderOptions { teamTransformer?: TeamTransformer; } -// TODO: Consider supporting an (optional) webhook that reacts on org changes /** * Ingests org data (users and groups) from GitHub. * * @public */ -export class GithubOrgEntityProvider implements EntityProvider { +export class GithubOrgEntityProvider + implements EntityProvider, EventSubscriber +{ private readonly credentialsProvider: GithubCredentialsProvider; private connection?: EntityProviderConnection; private scheduleFn?: () => Promise; @@ -224,6 +246,306 @@ export class GithubOrgEntityProvider implements EntityProvider { markCommitComplete(); } + /** {@inheritdoc @backstage/plugin-events-node#EventSubscriber.onEvent} */ + async onEvent(params: EventParams): Promise { + const { logger } = this.options; + logger.debug(`Received event from ${params.topic}`); + + const addEntitiesOperation = createAddEntitiesOperation( + this.options.id, + this.options.gitHubConfig.host, + ); + const removeEntitiesOperation = createRemoveEntitiesOperation( + this.options.id, + this.options.gitHubConfig.host, + ); + + const replaceEntitiesOperation = createReplaceEntitiesOperation( + this.options.id, + this.options.gitHubConfig.host, + ); + + // handle change users in the org + // https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#organization + if (params.topic.includes('organization')) { + const orgEvent = params.eventPayload as OrganizationEvent; + + if ( + orgEvent.action === 'member_added' || + orgEvent.action === 'member_removed' + ) { + const createDeltaOperation = + orgEvent.action === 'member_added' + ? addEntitiesOperation + : removeEntitiesOperation; + await this.onMemberChangeInOrganization(orgEvent, createDeltaOperation); + } + } + + // handle change teams in the org + // https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#team + if (params.topic.includes('team')) { + const teamEvent = params.eventPayload as TeamEvent; + if (teamEvent.action === 'created' || teamEvent.action === 'deleted') { + const createDeltaOperation = + teamEvent.action === 'created' + ? addEntitiesOperation + : removeEntitiesOperation; + await this.onTeamChangeInOrganization(teamEvent, createDeltaOperation); + } else if (teamEvent.action === 'edited') { + await this.onTeamEditedInOrganization( + teamEvent, + replaceEntitiesOperation, + ); + } + } + + // handle change membership in the org + // https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#membership + if (params.topic.includes('membership')) { + const membershipEvent = params.eventPayload as MembershipEvent; + this.onMembershipChangedInOrganization( + membershipEvent, + replaceEntitiesOperation, + ); + } + + return; + } + + /** {@inheritdoc @backstage/plugin-events-node#EventSubscriber.supportsEventTopics} */ + supportsEventTopics(): string[] { + return ['github.organization', 'github.team', 'github.membership']; + } + + private async onTeamEditedInOrganization( + event: TeamEditedEvent, + createDeltaOperation: DeferredEntitiesBuilder, + ) { + if (!this.connection) { + throw new Error('Not initialized'); + } + + const teamSlug = event.team.slug; + const { headers, type: tokenType } = + await this.credentialsProvider.getCredentials({ + url: this.options.orgUrl, + }); + const client = graphql.defaults({ + baseUrl: this.options.gitHubConfig.apiBaseUrl, + headers, + }); + + const { org } = parseGithubOrgUrl(this.options.orgUrl); + const { group } = await getOrganizationTeam( + client, + org, + teamSlug, + this.options.teamTransformer, + ); + + const { users } = await getOrganizationUsers( + client, + org, + tokenType, + this.options.userTransformer, + ); + + const usersFromChangedGroup = group.spec.members || []; + const usersToRebuild = users.filter(u => + usersFromChangedGroup.includes(u.metadata.name), + ); + + const { groups } = await getOrganizationTeamsFromUsers( + client, + org, + usersToRebuild.map(u => u.metadata.name), + this.options.teamTransformer, + ); + + assignGroupsToUsers(usersToRebuild, groups); + buildOrgHierarchy(groups); + + const oldName = event.changes.name?.from || ''; + const oldSlug = oldName.toLowerCase().replaceAll(/\s/gi, '-'); + + const { removed } = createDeltaOperation(org, [ + { + ...group, + metadata: { + name: oldSlug, + }, + }, + ]); + const { added } = createDeltaOperation(org, [...usersToRebuild, ...groups]); + await this.connection.applyMutation({ + type: 'delta', + removed, + added, + }); + } + + private async onMembershipChangedInOrganization( + event: MembershipEvent, + createDeltaOperation: DeferredEntitiesBuilder, + ) { + if (!this.connection) { + throw new Error('Not initialized'); + } + + // The docs are saying I will receive the slug for the removed event, + // but the types don't reflect that, + // so I will just check to be sure the slug is there + // https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#membership + if (!('slug' in event.team)) { + return; + } + + const teamSlug = event.team.slug; + const userLogin = event.member.login; + const { headers, type: tokenType } = + await this.credentialsProvider.getCredentials({ + url: this.options.orgUrl, + }); + const client = graphql.defaults({ + baseUrl: this.options.gitHubConfig.apiBaseUrl, + headers, + }); + + const { org } = parseGithubOrgUrl(this.options.orgUrl); + const { group } = await getOrganizationTeam( + client, + org, + teamSlug, + this.options.teamTransformer, + ); + + const { users } = await getOrganizationUsers( + client, + org, + tokenType, + this.options.userTransformer, + ); + + const usersToRebuild = users.filter(u => u.metadata.name === userLogin); + + const { groups } = await getOrganizationTeamsFromUsers( + client, + org, + [userLogin], + this.options.teamTransformer, + ); + + // we include group because the removed event need to update the old group too + if (!groups.some(g => g.metadata.name === group.metadata.name)) { + groups.push(group); + } + + assignGroupsToUsers(usersToRebuild, groups); + buildOrgHierarchy(groups); + + const { added, removed } = createDeltaOperation(org, [ + ...usersToRebuild, + ...groups, + ]); + await this.connection.applyMutation({ + type: 'delta', + removed, + added, + }); + } + + private async onTeamChangeInOrganization( + event: TeamEvent, + createDeltaOperation: DeferredEntitiesBuilder, + ) { + if (!this.connection) { + throw new Error('Not initialized'); + } + + const organizationTeamTransformer = + this.options.teamTransformer || defaultOrganizationTeamTransformer; + const { name, html_url: url, description, slug } = event.team; + const org = event.organization.login; + const { headers } = await this.credentialsProvider.getCredentials({ + url: this.options.orgUrl, + }); + const client = graphql.defaults({ + baseUrl: this.options.gitHubConfig.apiBaseUrl, + headers, + }); + + const group = (await organizationTeamTransformer( + { + name, + slug, + editTeamUrl: `${url}/edit`, + combinedSlug: `${org}/${slug}`, + description: description || undefined, + parentTeam: { slug: event.team?.parent?.slug || '' } as GithubTeam, + // entity will be removed + members: [], + }, + { + org, + client, + query: '', + }, + )) as Entity; + + const { added, removed } = createDeltaOperation(org, [group]); + + await this.connection.applyMutation({ + type: 'delta', + removed, + added, + }); + } + + private async onMemberChangeInOrganization( + event: OrganizationMemberAddedEvent | OrganizationMemberRemovedEvent, + createDeltaOperation: DeferredEntitiesBuilder, + ) { + if (!this.connection) { + throw new Error('Not initialized'); + } + + const userTransformer = + this.options.userTransformer || defaultUserTransformer; + const { name, avatar_url: avatarUrl, email, login } = event.membership.user; + const org = event.organization.login; + const { headers } = await this.credentialsProvider.getCredentials({ + url: this.options.orgUrl, + }); + const client = graphql.defaults({ + baseUrl: this.options.gitHubConfig.apiBaseUrl, + headers, + }); + + const user = (await userTransformer( + { + name, + avatarUrl, + login, + email: email || undefined, + // we don't have this information in the event, so the refresh will handle that for us + organizationVerifiedDomainEmails: [], + }, + { + org, + client, + query: '', + }, + )) as Entity; + + const { added, removed } = createDeltaOperation(org, [user]); + await this.connection.applyMutation({ + type: 'delta', + removed, + added, + }); + } + private schedule(schedule: GithubOrgEntityProviderOptions['schedule']) { if (!schedule || schedule === 'manual') { return; diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index dcd18fbf80..2ca56e0489 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.1.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## 0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index eaebc9f80a..6092e673fa 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", "description": "A Backstage catalog backend module that helps integrate towards GitLab", - "version": "0.1.10", + "version": "0.1.11-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index 8e9208a52c..f011876409 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## 0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-permission-common@0.7.2 + ## 0.1.0 ### Minor Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index 26f1f89ece..e6569a6c2d 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", "description": "An entity provider for streaming large asset sources into the catalog", - "version": "0.1.0", + "version": "0.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 79a54cc97b..9e15a3e04e 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.5.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + +## 0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + ## 0.5.6 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index e36e63c7ee..08a6cf54f8 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", "description": "A Backstage catalog backend module that helps integrate towards LDAP", - "version": "0.5.6", + "version": "0.5.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index 3fa0d7b2e0..d3d4906837 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.4.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-model@1.1.5-next.1 + +## 0.4.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.4.5 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 00b1802fcf..5bfe4e35ea 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", - "version": "0.4.5", + "version": "0.4.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index cf90405cc1..41f87f9f20 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.6-next.1 + +### Patch Changes + +- f9abdb64fc: Updated internal usage of UrlReader interface. +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## 0.1.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 0.1.5 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 6504fd7a61..72a3b3aaa3 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", - "version": "0.1.5", + "version": "0.1.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts index 6298aea77d..9dcadad61d 100644 --- a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts +++ b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts @@ -84,10 +84,14 @@ export class OpenApiRefProcessor implements CatalogProcessor { this.logger.debug(`Bundling OpenAPI specification from ${location.target}`); try { + const read = async (url: string) => { + const { buffer } = await this.reader.readUrl(url); + return await buffer(); + }; const bundledSpec = await bundleFileWithRefs( definition.toString(), location.target, - this.reader.read, + read, resolveUrl, ); diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 4fdf3aaf4e..c0c8a2b311 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,50 @@ # @backstage/plugin-catalog-backend +## 1.7.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 1.7.0-next.0 + +### Minor Changes + +- f75bf76330: Implemented server side ordering in the entities endpoint + +### Patch Changes + +- d136793ff0: Fixed an issue where internal references in the catalog would stick around for longer than expected, causing entities to not be deleted or orphaned as expected. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-catalog-node@1.3.1-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-search-common@1.2.0 + ## 1.6.0 ### Minor Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 17f8c790aa..b45918dc43 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend", "description": "The Backstage backend plugin that provides the Backstage catalog", - "version": "1.6.0", + "version": "1.7.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts index 903ac1ac6a..352ebf5df9 100644 --- a/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts +++ b/plugins/catalog-backend/src/modules/core/PlaceholderProcessor.test.ts @@ -32,7 +32,6 @@ const integrations = ScmIntegrations.fromConfig(new ConfigReader({})); describe('PlaceholderProcessor', () => { const reader: jest.Mocked = { - read: jest.fn(), readTree: jest.fn(), search: jest.fn(), readUrl: jest.fn(), diff --git a/plugins/catalog-backend/src/modules/core/UrlReaderProcessor.test.ts b/plugins/catalog-backend/src/modules/core/UrlReaderProcessor.test.ts index 14c5710afc..c9575ce5cd 100644 --- a/plugins/catalog-backend/src/modules/core/UrlReaderProcessor.test.ts +++ b/plugins/catalog-backend/src/modules/core/UrlReaderProcessor.test.ts @@ -194,7 +194,6 @@ describe('UrlReaderProcessor', () => { const logger = getVoidLogger(); const reader: jest.Mocked = { - read: jest.fn(), readUrl: jest.fn(), readTree: jest.fn(), search: jest.fn().mockImplementation(async () => []), diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index b5026487e6..60afac5754 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-common +## 1.0.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 1.0.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + ## 1.0.9 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index b9bee625c9..5fc769510d 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-common", "description": "Common functionalities for the catalog plugin", - "version": "1.0.9", + "version": "1.0.10-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-customized/CHANGELOG.md b/plugins/catalog-customized/CHANGELOG.md index f56901d2f4..256a70c573 100644 --- a/plugins/catalog-customized/CHANGELOG.md +++ b/plugins/catalog-customized/CHANGELOG.md @@ -1,5 +1,21 @@ # @internal/plugin-catalog-customized +## 0.0.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.0.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/plugin-catalog@1.7.2-next.0 + ## 0.0.6 ### Patch Changes diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index dcf16e7969..faf1859cd6 100644 --- a/plugins/catalog-customized/package.json +++ b/plugins/catalog-customized/package.json @@ -1,7 +1,7 @@ { "name": "@internal/plugin-catalog-customized", "description": "The internal Backstage Customizable plugin for browsing the Backstage catalog", - "version": "0.0.5", + "version": "0.0.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 0d941652c7..9e39f15b6c 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-catalog-graph +## 0.2.26-next.1 + +### Patch Changes + +- 99f05cbc70: The link from the `CatalogGraphCard` to the `CatalogGraphPage` no longer includes an explicit `maxDepth` parameter, letting the `CatalogGraphPage` choose the initial `maxDepth` instead. +- Updated dependencies + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.2.25 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 7df0346279..950a4668da 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.2.24", + "version": "0.2.26-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-graph/src/components/CatalogGraphCard/CatalogGraphCard.test.tsx b/plugins/catalog-graph/src/components/CatalogGraphCard/CatalogGraphCard.test.tsx index 27b67102e4..adee03e298 100644 --- a/plugins/catalog-graph/src/components/CatalogGraphCard/CatalogGraphCard.test.tsx +++ b/plugins/catalog-graph/src/components/CatalogGraphCard/CatalogGraphCard.test.tsx @@ -133,7 +133,7 @@ describe('', () => { expect(button).toBeInTheDocument(); expect(button.closest('a')).toHaveAttribute( 'href', - '/catalog-graph?rootEntityRefs%5B%5D=b%3Ad%2Fc&maxDepth=2&unidirectional=true&mergeRelations=true&direction=LR', + '/catalog-graph?rootEntityRefs%5B%5D=b%3Ad%2Fc&unidirectional=true&mergeRelations=true&direction=LR', ); }); @@ -157,7 +157,7 @@ describe('', () => { expect(button).toBeInTheDocument(); expect(button.closest('a')).toHaveAttribute( 'href', - '/catalog-graph?rootEntityRefs%5B%5D=b%3Ad%2Fc&maxDepth=3&unidirectional=true&mergeRelations=false&direction=LR', + '/catalog-graph?rootEntityRefs%5B%5D=b%3Ad%2Fc&unidirectional=true&mergeRelations=false&direction=LR', ); }); diff --git a/plugins/catalog-graph/src/components/CatalogGraphCard/CatalogGraphCard.tsx b/plugins/catalog-graph/src/components/CatalogGraphCard/CatalogGraphCard.tsx index 34d3174cb3..b9a15eb569 100644 --- a/plugins/catalog-graph/src/components/CatalogGraphCard/CatalogGraphCard.tsx +++ b/plugins/catalog-graph/src/components/CatalogGraphCard/CatalogGraphCard.tsx @@ -111,7 +111,6 @@ export const CatalogGraphCard = (props: { const catalogGraphParams = qs.stringify( { rootEntityRefs: [stringifyEntityRef(entity)], - maxDepth: maxDepth + 1, unidirectional, mergeRelations, kinds, diff --git a/plugins/catalog-graphql/CHANGELOG.md b/plugins/catalog-graphql/CHANGELOG.md index 385be702f3..64d0f7f04a 100644 --- a/plugins/catalog-graphql/CHANGELOG.md +++ b/plugins/catalog-graphql/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-graphql +## 0.3.17-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/types@1.0.2 + +## 0.3.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/config@1.0.5 + - @backstage/types@1.0.2 + ## 0.3.16 ### Patch Changes diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json index fc7cf5308f..edfc59a764 100644 --- a/plugins/catalog-graphql/package.json +++ b/plugins/catalog-graphql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-graphql", "description": "An experimental Backstage catalog GraphQL module", - "version": "0.3.16", + "version": "0.3.17-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 2327f692e8..8919c57aff 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-catalog-import +## 0.9.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.9.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.0 + ## 0.9.3 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index f56b096b01..d7cef710a5 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-import", "description": "A Backstage plugin the helps you import entities into your catalog", - "version": "0.9.2", + "version": "0.9.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index e50643a9ae..89db4b363e 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-catalog-node +## 1.3.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + +## 1.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + ## 1.3.0 ### Minor Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 83f2fa5913..8793754dd7 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-node", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", - "version": "1.3.0", + "version": "1.3.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index b194c11671..ba0f8d5e82 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,42 @@ # @backstage/plugin-catalog-react +## 1.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-react@0.4.9-next.0 + +## 1.2.4-next.0 + +### Patch Changes + +- 37426f6f5e: Fixed bug in `EntityTagPicker` that filtered on unavailable tags for the selected kind. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + ## 1.2.3 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index ce7acd08df..9c9757f161 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.2.2", + "version": "1.2.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index f154f5d260..5e57ad5a45 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,41 @@ # @backstage/plugin-catalog +## 1.7.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## 1.7.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 1.7.1 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index d1d1570ee5..fcd33a9f4a 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog", "description": "The Backstage plugin for browsing the Backstage catalog", - "version": "1.7.0", + "version": "1.7.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog/src/components/EntityLinksCard/IconLink.test.tsx b/plugins/catalog/src/components/EntityLinksCard/IconLink.test.tsx index be784ae3e8..509a3f3741 100644 --- a/plugins/catalog/src/components/EntityLinksCard/IconLink.test.tsx +++ b/plugins/catalog/src/components/EntityLinksCard/IconLink.test.tsx @@ -14,23 +14,16 @@ * limitations under the License. */ -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; +import { renderInTestApp } from '@backstage/test-utils'; import CloudIcon from '@material-ui/icons/Cloud'; -import { render, screen } from '@testing-library/react'; +import { screen } from '@testing-library/react'; import React from 'react'; import { IconLink } from './IconLink'; describe('IconLink', () => { - it('should render an icon link', () => { - render( - - - , + it('should render an icon link', async () => { + await renderInTestApp( + , ); expect(screen.getByText('I am Link')).toBeInTheDocument(); diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md index dca85d1c00..92fbe6e734 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/plugin-cicd-statistics@0.1.16-next.1 + +## 0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/plugin-cicd-statistics@0.1.16-next.0 + ## 0.1.9 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index d5805aa03a..0afd660e1f 100644 --- a/plugins/cicd-statistics-module-gitlab/package.json +++ b/plugins/cicd-statistics-module-gitlab/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics-module-gitlab", "description": "CI/CD Statistics plugin module; Gitlab CICD", - "version": "0.1.8", + "version": "0.1.10-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md index ff0877c7a5..252408a32a 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-cicd-statistics +## 0.1.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-plugin-api@1.2.0 + ## 0.1.15 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 390eaec6bf..7d675bd67c 100644 --- a/plugins/cicd-statistics/package.json +++ b/plugins/cicd-statistics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cicd-statistics", "description": "A frontend plugin visualizing CI/CD pipeline statistics (build time)", - "version": "0.1.14", + "version": "0.1.16-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md index f6a7c15545..04b504b4be 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-circleci +## 0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 4c03a25116..2a2a2f152e 100644 --- a/plugins/circleci/package.json +++ b/plugins/circleci/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-circleci", "description": "A Backstage plugin that integrates towards Circle CI", - "version": "0.3.12", + "version": "0.3.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md index a4338da90f..4e6a34bec3 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-cloudbuild +## 0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index b2fc5badaf..44d1fd4d4b 100644 --- a/plugins/cloudbuild/package.json +++ b/plugins/cloudbuild/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cloudbuild", "description": "A Backstage plugin that integrates towards Google Cloud Build", - "version": "0.3.12", + "version": "0.3.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md index 09626076d0..1af0cbbeb3 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-code-climate +## 0.1.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.13 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 1a541ff220..f3d08feec2 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-code-climate", - "version": "0.1.12", + "version": "0.1.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-climate/src/components/CodeClimateTable/CodeClimateTable.test.tsx b/plugins/code-climate/src/components/CodeClimateTable/CodeClimateTable.test.tsx index 70d34d0298..e5703a993e 100644 --- a/plugins/code-climate/src/components/CodeClimateTable/CodeClimateTable.test.tsx +++ b/plugins/code-climate/src/components/CodeClimateTable/CodeClimateTable.test.tsx @@ -15,18 +15,14 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; +import { renderInTestApp } from '@backstage/test-utils'; import { CodeClimateTable } from './CodeClimateTable'; import { mockData } from '../../api/mock/mock-api'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; describe('CodeClimateTable', () => { it('should render values in a table', async () => { - const table = await render( - - - , + const table = await renderInTestApp( + , ); expect(await table.findByText('3 months')).toBeInTheDocument(); expect(await table.findByText('88%')).toBeInTheDocument(); diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md index 5bab00763e..5b96660cfb 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-code-coverage-backend +## 0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + +## 0.2.6-next.0 + +### Patch Changes + +- dcfdaeccd3: `RouterOptions` now accepts an optional `catalogApi` argument, allowing custom catalog clients to be used. This is leveraged in the local standalone development runner to pass in a catalog client that returns fake data. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + ## 0.2.5 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 3cf997f2c9..9b3e756e8c 100644 --- a/plugins/code-coverage-backend/package.json +++ b/plugins/code-coverage-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage-backend", "description": "A Backstage backend plugin that helps you keep track of your code coverage", - "version": "0.2.5", + "version": "0.2.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md index a3dab7b6aa..efee893dab 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-code-coverage +## 0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.6 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 40e81db84a..795deb2939 100644 --- a/plugins/code-coverage/package.json +++ b/plugins/code-coverage/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-code-coverage", "description": "A Backstage plugin that helps you keep track of your code coverage", - "version": "0.2.5", + "version": "0.2.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md index eef5987551..f487a22492 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-codescene +## 0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## 0.1.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.8 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 44d1614b3d..970d7efab3 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.7", + "version": "0.1.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/codescene/src/components/CodeScenePageComponent/CodeScenePageComponent.test.tsx b/plugins/codescene/src/components/CodeScenePageComponent/CodeScenePageComponent.test.tsx index d8ffca841d..a1d7690ca8 100644 --- a/plugins/codescene/src/components/CodeScenePageComponent/CodeScenePageComponent.test.tsx +++ b/plugins/codescene/src/components/CodeScenePageComponent/CodeScenePageComponent.test.tsx @@ -15,8 +15,6 @@ */ import React from 'react'; import { CodeScenePageComponent } from './CodeScenePageComponent'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { rootRouteRef } from '../../routes'; @@ -54,9 +52,7 @@ describe('CodeScenePageComponent', () => { it('should render', async () => { const rendered = await renderInTestApp( - - - + , { mountedRoutes: { diff --git a/plugins/codescene/src/components/CodeSceneProjectDetailsPage/CodeSceneProjectDetailsPage.test.tsx b/plugins/codescene/src/components/CodeSceneProjectDetailsPage/CodeSceneProjectDetailsPage.test.tsx index 9ace0f1224..8ea1a0235f 100644 --- a/plugins/codescene/src/components/CodeSceneProjectDetailsPage/CodeSceneProjectDetailsPage.test.tsx +++ b/plugins/codescene/src/components/CodeSceneProjectDetailsPage/CodeSceneProjectDetailsPage.test.tsx @@ -15,8 +15,6 @@ */ import React from 'react'; import { CodeSceneProjectDetailsPage } from './CodeSceneProjectDetailsPage'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { @@ -90,9 +88,7 @@ describe('CodeSceneProjectDetailsPage', () => { it('should render', async () => { const rendered = await renderInTestApp( - - - + , ); expect(rendered.getByText('CodeScene: test-project')).toBeInTheDocument(); diff --git a/plugins/codescene/src/components/ProjectsComponent/ProjectsComponent.test.tsx b/plugins/codescene/src/components/ProjectsComponent/ProjectsComponent.test.tsx index 4c9ee9ed42..40aee57312 100644 --- a/plugins/codescene/src/components/ProjectsComponent/ProjectsComponent.test.tsx +++ b/plugins/codescene/src/components/ProjectsComponent/ProjectsComponent.test.tsx @@ -15,8 +15,6 @@ */ import React from 'react'; import { ProjectsComponent } from './ProjectsComponent'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { rootRouteRef } from '../../routes'; @@ -90,9 +88,7 @@ describe('ProjectsComponent', () => { it('should render', async () => { const rendered = await renderInTestApp( - - - + , { mountedRoutes: { diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 7fe68a41fd..488fe3a2dd 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-config-schema +## 0.1.37-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## 0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + ## 0.1.36 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index f8e337f873..12a3fa8625 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-config-schema", "description": "A Backstage plugin that lets you browse the configuration schema of your app", - "version": "0.1.35", + "version": "0.1.37-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md index 187b8416cb..dadeae64cc 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-cost-insights +## 0.12.3-next.1 + +### Patch Changes + +- 6a41175d70: Removed @backstage/test-utils dependency, since it was already in the devDependencies where it belongs. The main benefit is that this will exclude better-sqlite3 from the production build. +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-cost-insights-common@0.1.1 + +## 0.12.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-cost-insights-common@0.1.1 + ## 0.12.2 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index defc54f904..7979e9d89f 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-cost-insights", "description": "A Backstage plugin that helps you keep track of your cloud spend", - "version": "0.12.1", + "version": "0.12.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -38,7 +38,6 @@ "@backstage/core-plugin-api": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", "@backstage/plugin-cost-insights-common": "workspace:^", - "@backstage/test-utils": "workspace:^", "@backstage/theme": "workspace:^", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md index e477ee1c1b..4933ec93ab 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-dynatrace +## 1.0.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 1.0.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 1.0.3 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index d359156787..cb87c209b1 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "1.0.2", + "version": "1.0.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md index 991f845cdc..71c7ad3e12 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/types@1.0.2 + ## 0.1.1 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 15c859a8bc..62e897a42e 100644 --- a/plugins/events-backend-module-aws-sqs/package.json +++ b/plugins/events-backend-module-aws-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-aws-sqs", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md index 77498eeb99..5ce99a448d 100644 --- a/plugins/events-backend-module-azure/CHANGELOG.md +++ b/plugins/events-backend-module-azure/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-azure +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index 3b6302200f..9a3ca21b49 100644 --- a/plugins/events-backend-module-azure/package.json +++ b/plugins/events-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-azure", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md index f4a6fa5ae0..5f985b9ed1 100644 --- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-bitbucket-cloud +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index c44c1ef1cc..bad8d805ed 100644 --- a/plugins/events-backend-module-bitbucket-cloud/package.json +++ b/plugins/events-backend-module-bitbucket-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-bitbucket-cloud", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md index bf3bdf34b4..782b4dd5e4 100644 --- a/plugins/events-backend-module-gerrit/CHANGELOG.md +++ b/plugins/events-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gerrit +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index 497756bc93..044f0b328b 100644 --- a/plugins/events-backend-module-gerrit/package.json +++ b/plugins/events-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gerrit", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md index b3e4d2821b..40ffd876e0 100644 --- a/plugins/events-backend-module-github/CHANGELOG.md +++ b/plugins/events-backend-module-github/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-github +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index 8be3fd4c7b..dc2dbfdeb2 100644 --- a/plugins/events-backend-module-github/package.json +++ b/plugins/events-backend-module-github/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-github", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md index a3d25cefac..d57435bc0c 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index 019052ba11..1d0d7debc2 100644 --- a/plugins/events-backend-module-gitlab/package.json +++ b/plugins/events-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gitlab", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md index f5ce89f47d..5ef6957dde 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.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.1-next.0 + ## 0.1.1 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index 2cd90d985b..305f995a6e 100644 --- a/plugins/events-backend-test-utils/package.json +++ b/plugins/events-backend-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-events-backend-test-utils", "description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node", - "version": "0.1.1", + "version": "0.1.2-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md index 50074a6f07..c92296e05d 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-events-backend +## 0.2.1-next.0 + +### Patch Changes + +- 217149ae98: The default event broker will now catch and log errors thrown by the `onEvent` method of subscribers. The returned promise from `publish` method will also not resolve until all subscribers have handled the event. +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-events-node@0.2.1-next.0 + ## 0.2.0 ### Minor Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index 6aee64754c..6eb32a5d3e 100644 --- a/plugins/events-backend/package.json +++ b/plugins/events-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend", - "version": "0.2.0", + "version": "0.2.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/events-backend/src/service/InMemoryEventBroker.test.ts b/plugins/events-backend/src/service/InMemoryEventBroker.test.ts index 68a6f63a72..861cdda940 100644 --- a/plugins/events-backend/src/service/InMemoryEventBroker.test.ts +++ b/plugins/events-backend/src/service/InMemoryEventBroker.test.ts @@ -16,6 +16,7 @@ import { getVoidLogger } from '@backstage/backend-common'; import { TestEventSubscriber } from '@backstage/plugin-events-backend-test-utils'; +import { EventParams, EventSubscriber } from '@backstage/plugin-events-node'; import { InMemoryEventBroker } from './InMemoryEventBroker'; const logger = getVoidLogger(); @@ -63,4 +64,51 @@ describe('InMemoryEventBroker', () => { eventPayload: { test: 'topicC' }, }); }); + + it('logs errors from subscribers', async () => { + const topic = 'testTopic'; + + const subscriber1 = new (class Subscriber1 implements EventSubscriber { + supportsEventTopics() { + return [topic]; + } + async onEvent(event: EventParams) { + throw new Error(`NOPE ${event.eventPayload}`); + } + })(); + const subscriber2 = new (class Subscriber2 implements EventSubscriber { + supportsEventTopics() { + return [topic]; + } + async onEvent(event: EventParams) { + throw new Error(`NOPE ${event.eventPayload}`); + } + })(); + + const errorSpy = jest.spyOn(logger, 'error'); + const eventBroker = new InMemoryEventBroker(logger); + + eventBroker.subscribe(subscriber1); + await eventBroker.publish({ topic, eventPayload: '1' }); + + expect(errorSpy).toHaveBeenCalledTimes(1); + expect(errorSpy).toHaveBeenCalledWith( + 'Subscriber "Subscriber1" failed to process event', + new Error('NOPE 1'), + ); + + eventBroker.subscribe(subscriber2); + await eventBroker.publish({ topic, eventPayload: '2' }); + + // With two subscribers we should not halt on the first error but call all subscribers + expect(errorSpy).toHaveBeenCalledTimes(3); + expect(errorSpy).toHaveBeenCalledWith( + 'Subscriber "Subscriber1" failed to process event', + new Error('NOPE 2'), + ); + expect(errorSpy).toHaveBeenCalledWith( + 'Subscriber "Subscriber2" failed to process event', + new Error('NOPE 2'), + ); + }); }); diff --git a/plugins/events-backend/src/service/InMemoryEventBroker.ts b/plugins/events-backend/src/service/InMemoryEventBroker.ts index 90c7d912fe..04be01f658 100644 --- a/plugins/events-backend/src/service/InMemoryEventBroker.ts +++ b/plugins/events-backend/src/service/InMemoryEventBroker.ts @@ -42,7 +42,18 @@ export class InMemoryEventBroker implements EventBroker { ); const subscribed = this.subscribers[params.topic] ?? []; - subscribed.forEach(subscriber => subscriber.onEvent(params)); + await Promise.all( + subscribed.map(async subscriber => { + try { + await subscriber.onEvent(params); + } catch (error) { + this.logger.error( + `Subscriber "${subscriber.constructor.name}" failed to process event`, + error, + ); + } + }), + ); } subscribe( diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md index b91a966342..fbd12ea007 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-node +## 0.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + ## 0.2.0 ### Minor Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index 59123e0e27..d90177119d 100644 --- a/plugins/events-node/package.json +++ b/plugins/events-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-events-node", "description": "The plugin-events-node module for @backstage/plugin-events-backend", - "version": "0.2.0", + "version": "0.2.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index f853f231e1..e99f5669a9 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @internal/plugin-todo-list-backend +## 1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + ## 1.0.8 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index 14b6a81c70..418a3473f6 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.8", + "version": "1.0.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list-common/CHANGELOG.md b/plugins/example-todo-list-common/CHANGELOG.md index 2cf4c41b4f..12fc8c5341 100644 --- a/plugins/example-todo-list-common/CHANGELOG.md +++ b/plugins/example-todo-list-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/plugin-todo-list-common +## 1.0.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.3-next.0 + ## 1.0.7 ### Patch Changes diff --git a/plugins/example-todo-list-common/package.json b/plugins/example-todo-list-common/package.json index 1392e063ff..7c7bcd063f 100644 --- a/plugins/example-todo-list-common/package.json +++ b/plugins/example-todo-list-common/package.json @@ -1,6 +1,6 @@ { "name": "@internal/plugin-todo-list-common", - "version": "1.0.7", + "version": "1.0.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index bc012467a4..250cde311f 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,23 @@ # @internal/plugin-todo-list +## 1.0.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## 1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 1.0.9 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index ee34b6541f..082d968459 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.8", + "version": "1.0.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore-backend/CHANGELOG.md b/plugins/explore-backend/CHANGELOG.md index 55e62824f2..c41b56fb9a 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-explore-backend +## 0.0.2-next.1 + +### Patch Changes + +- 9f9d279bd1: Updated `README.md` examples +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 0.0.2-next.0 + +### Patch Changes + +- 358554ff3c: Bump `msw` to `^0.49.0` +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.0 + ## 0.0.1 ### Patch Changes diff --git a/plugins/explore-backend/README.md b/plugins/explore-backend/README.md index d1714806f4..3edf48249a 100644 --- a/plugins/explore-backend/README.md +++ b/plugins/explore-backend/README.md @@ -11,32 +11,32 @@ for these tools. ```bash # From your Backstage root directory -yarn add --cwd packages/backend @backstage/plugin-explore-backend +yarn add --cwd packages/backend @backstage/plugin-explore-backend @backstage/plugin-explore-common ``` ### Adding the plugin to your `packages/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/explore.ts` +do this by creating a file called `packages/backend/src/plugins/explore.ts` with the following content: ```ts import { createRouter, StaticExploreToolProvider, } from '@backstage/plugin-explore-backend'; +import { ExploreTool } from '@backstage/plugin-explore-common'; import { Router } from 'express'; import { PluginEnvironment } from '../types'; // List of tools you want to surface in the Explore plugin "Tools" page. -const tools: ExploreTool[] = [ +const exploreTools: ExploreTool[] = [ { title: 'New Relic', - description:'new relic plugin', + description: 'new relic plugin', url: '/newrelic', image: 'https://i.imgur.com/L37ikrX.jpg', tags: ['newrelic', 'proxy', 'nerdGraph'], }, - ... ]; export default async function createPlugin( diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index 748a4e0a09..7ad12b3fe1 100644 --- a/plugins/explore-backend/package.json +++ b/plugins/explore-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-explore-backend", - "version": "0.0.1", + "version": "0.0.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore-react/CHANGELOG.md b/plugins/explore-react/CHANGELOG.md index 358a51dd10..10a32306da 100644 --- a/plugins/explore-react/CHANGELOG.md +++ b/plugins/explore-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-explore-react +## 0.0.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/plugin-explore-common@0.0.1 + ## 0.0.24 ### Patch Changes diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json index ec96a184f4..a08ff20f40 100644 --- a/plugins/explore-react/package.json +++ b/plugins/explore-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore-react", "description": "A frontend library for Backstage plugins that want to interact with the explore plugin", - "version": "0.0.24", + "version": "0.0.25-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md index 50fd45e426..5fa02d6d39 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,39 @@ # @backstage/plugin-explore +## 0.3.45-next.1 + +### Patch Changes + +- 9f9d279bd1: Updated `README.md` examples +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.25-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## 0.3.45-next.0 + +### Patch Changes + +- d318d4f659: Makes the `GroupsDiagram` not grown on screen on its own. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-explore-react@0.0.24 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 0.3.44 ### Patch Changes diff --git a/plugins/explore/README.md b/plugins/explore/README.md index 0204f34714..2388d97ac1 100644 --- a/plugins/explore/README.md +++ b/plugins/explore/README.md @@ -68,6 +68,7 @@ ready to make modifications, add the following code snippet to add the ```diff +import { ToolSearchResultListItem } from '@backstage/plugin-explore'; ++import BuildIcon from '@material-ui/icons/Build'; const SearchPage = () => { ... diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 9f6f700950..0145df913b 100644 --- a/plugins/explore/package.json +++ b/plugins/explore/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-explore", "description": "A Backstage plugin for building an exploration page of your software ecosystem", - "version": "0.3.43", + "version": "0.3.45-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/explore/src/components/ToolExplorerContent/ToolExplorerContent.test.tsx b/plugins/explore/src/components/ToolExplorerContent/ToolExplorerContent.test.tsx index f3cca5642f..7c5259d96b 100644 --- a/plugins/explore/src/components/ToolExplorerContent/ToolExplorerContent.test.tsx +++ b/plugins/explore/src/components/ToolExplorerContent/ToolExplorerContent.test.tsx @@ -16,8 +16,6 @@ import { ExploreTool } from '@backstage/plugin-explore-common'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; import { waitFor } from '@testing-library/react'; import React from 'react'; import { exploreApiRef } from '../../api'; @@ -29,11 +27,9 @@ describe('', () => { }; const Wrapper = ({ children }: { children?: React.ReactNode }) => ( - - - {children} - - + + {children} + ); beforeEach(() => { diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md index 513c3cb6ec..70e8a688d9 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-firehydrant +## 0.1.31-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.31-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.30 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 81a329ec5f..c4be538767 100644 --- a/plugins/firehydrant/package.json +++ b/plugins/firehydrant/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-firehydrant", "description": "A Backstage plugin that integrates towards FireHydrant", - "version": "0.1.29", + "version": "0.1.31-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md index 4513e8b733..09a0eff0e4 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-fossa +## 0.2.46-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.46-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.45 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index c0ece5f0f0..2c43d4e7e6 100644 --- a/plugins/fossa/package.json +++ b/plugins/fossa/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-fossa", "description": "A Backstage plugin that integrates towards FOSSA", - "version": "0.2.44", + "version": "0.2.46-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md index ac13f9ab37..925320769e 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-gcalendar +## 0.3.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## 0.3.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.3.9 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 71cd4b999c..5d2aa10343 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.8", + "version": "0.3.10-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md index 43bb34a972..71323ac1f0 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-gcp-projects +## 0.3.33-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## 0.3.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.32 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index dc0653d122..724d77e9fd 100644 --- a/plugins/gcp-projects/package.json +++ b/plugins/gcp-projects/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gcp-projects", "description": "A Backstage plugin that helps you manage projects in GCP", - "version": "0.3.31", + "version": "0.3.33-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md index 6f5750b4fe..6287227325 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-git-release-manager +## 0.3.27-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + +## 0.3.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.3.26 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index fe65ff159b..b13566bb62 100644 --- a/plugins/git-release-manager/package.json +++ b/plugins/git-release-manager/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-git-release-manager", "description": "A Backstage plugin that helps you manage releases in git", - "version": "0.3.25", + "version": "0.3.27-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md index 7fa266e31f..73ef632521 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-github-actions +## 0.5.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.5.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.5.13 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index aecce63b3f..ce3583e417 100644 --- a/plugins/github-actions/package.json +++ b/plugins/github-actions/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-actions", "description": "A Backstage plugin that integrates towards GitHub Actions", - "version": "0.5.12", + "version": "0.5.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md index 5d7609cb7a..64d40fa045 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-github-deployments +## 0.1.45-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.45-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + ## 0.1.44 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 70c6d53f10..771d54beaa 100644 --- a/plugins/github-deployments/package.json +++ b/plugins/github-deployments/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-deployments", "description": "A Backstage plugin that integrates towards GitHub Deployments", - "version": "0.1.43", + "version": "0.1.45-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md index 7152069b86..8824feafc2 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-github-issues +## 0.2.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.2.2 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index c10d0283e0..84900b7d71 100644 --- a/plugins/github-issues/package.json +++ b/plugins/github-issues/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-github-issues", - "version": "0.2.1", + "version": "0.2.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md index 4593291133..c2727c5ed7 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/theme@0.2.16 + ## 0.1.7 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index ce059d64cf..10c2f8ae00 100644 --- a/plugins/github-pull-requests-board/package.json +++ b/plugins/github-pull-requests-board/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-github-pull-requests-board", "description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team", - "version": "0.1.6", + "version": "0.1.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md index d5d07b87f0..fe5c50e204 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-gitops-profiles +## 0.3.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## 0.3.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.31 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index e3025031bf..0a01282ab2 100644 --- a/plugins/gitops-profiles/package.json +++ b/plugins/gitops-profiles/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gitops-profiles", "description": "A Backstage plugin that helps you manage GitOps profiles", - "version": "0.3.30", + "version": "0.3.32-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx b/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx index e158bcf6ad..5aa59a1cae 100644 --- a/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx +++ b/plugins/gitops-profiles/src/components/ProfileCatalog/ProfileCatalog.test.tsx @@ -15,8 +15,6 @@ */ import { renderInTestApp, TestApiRegistry } from '@backstage/test-utils'; -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; import React from 'react'; import { gitOpsApiRef, GitOpsRestApi } from '../../api'; import ProfileCatalog from './ProfileCatalog'; @@ -47,11 +45,9 @@ describe('ProfileCatalog', () => { ); const { getByText } = await renderInTestApp( - - - - - , + + + , ); expect(getByText('Create GitOps-managed Cluster')).toBeInTheDocument(); diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md index 1b257486ac..da8c591822 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-gocd +## 0.1.20-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.20-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.19 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 3b25b36669..e93ec9981a 100644 --- a/plugins/gocd/package.json +++ b/plugins/gocd/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-gocd", "description": "A Backstage plugin that integrates towards GoCD", - "version": "0.1.18", + "version": "0.1.20-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md index a499bb2f7e..afed878ae7 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-graphiql +## 0.2.46-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## 0.2.46-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.2.45 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index 5752000ec5..774b8de884 100644 --- a/plugins/graphiql/package.json +++ b/plugins/graphiql/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphiql", "description": "Backstage plugin for browsing GraphQL APIs", - "version": "0.2.44", + "version": "0.2.46-next.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.test.tsx b/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.test.tsx index 7724a2ae23..3156662bf3 100644 --- a/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.test.tsx +++ b/plugins/graphiql/src/components/GraphiQLBrowser/GraphiQLBrowser.test.tsx @@ -15,41 +15,33 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; +import { renderInTestApp } from '@backstage/test-utils'; import { GraphiQLBrowser } from './GraphiQLBrowser'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; -jest.mock('graphiql', () => () => ''); +jest.mock('graphiql', () => ({ GraphiQL: () => '' })); describe('GraphiQLBrowser', () => { - it('should render error text if there are no endpoints', () => { - const rendered = render( - - - , - ); + it('should render error text if there are no endpoints', async () => { + const rendered = await renderInTestApp(); rendered.getByText('No endpoints available'); }); - it('should render endpoint tabs', () => { - const rendered = render( - - - , + it('should render endpoint tabs', async () => { + const rendered = await renderInTestApp( + , ); rendered.getByText('Endpoint A'); rendered.getByText('Endpoint B'); diff --git a/plugins/graphiql/src/components/GraphiQLPage/GraphiQLPage.test.tsx b/plugins/graphiql/src/components/GraphiQLPage/GraphiQLPage.test.tsx index 90f8edd4ad..9923facc7b 100644 --- a/plugins/graphiql/src/components/GraphiQLPage/GraphiQLPage.test.tsx +++ b/plugins/graphiql/src/components/GraphiQLPage/GraphiQLPage.test.tsx @@ -16,13 +16,9 @@ import React from 'react'; import { GraphiQLPage } from './GraphiQLPage'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; import { act } from '@testing-library/react'; -import { renderWithEffects, TestApiProvider } from '@backstage/test-utils'; +import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; import { GraphQLBrowseApi, graphQlBrowseApiRef } from '../../lib/api'; -import { configApiRef } from '@backstage/core-plugin-api'; -import { ConfigReader } from '@backstage/core-app-api'; jest.mock('../GraphiQLBrowser', () => ({ GraphiQLBrowser: () => '', @@ -38,17 +34,9 @@ describe('GraphiQLPage', () => { }, }; - const rendered = await renderWithEffects( - - - - - , + const rendered = await renderInTestApp( + + , , ); act(() => { @@ -66,16 +54,9 @@ describe('GraphiQLPage', () => { }, }; - const rendered = await renderWithEffects( - - - - + const rendered = await renderInTestApp( + + , ); @@ -90,16 +71,9 @@ describe('GraphiQLPage', () => { }, }; - const rendered = await renderWithEffects( - - - - + const rendered = await renderInTestApp( + + , ); diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index da362fb71d..1904c8a62b 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-graphql-backend +## 0.1.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-graphql@0.3.17-next.1 + +## 0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-catalog-graphql@0.3.17-next.0 + ## 0.1.29 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 10d5426cc8..28e52f6556 100644 --- a/plugins/graphql-backend/package.json +++ b/plugins/graphql-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-graphql-backend", "description": "An experimental Backstage backend plugin for GraphQL", - "version": "0.1.29", + "version": "0.1.30-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index 0fd26937a8..fe38e17eb6 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-home +## 0.4.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-stack-overflow@0.1.10-next.1 + +## 0.4.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-stack-overflow@0.1.10-next.0 + ## 0.4.29 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 1196950333..6ca3ee7425 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-home", "description": "A Backstage plugin that helps you build a home page", - "version": "0.4.28", + "version": "0.4.30-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/home/src/homePageComponents/HeaderWorldClock/HeaderWorldClock.test.tsx b/plugins/home/src/homePageComponents/HeaderWorldClock/HeaderWorldClock.test.tsx index db92fbb89f..03f19fb046 100644 --- a/plugins/home/src/homePageComponents/HeaderWorldClock/HeaderWorldClock.test.tsx +++ b/plugins/home/src/homePageComponents/HeaderWorldClock/HeaderWorldClock.test.tsx @@ -17,8 +17,6 @@ import { renderInTestApp } from '@backstage/test-utils'; import { HeaderWorldClock, ClockConfig } from './HeaderWorldClock'; import React from 'react'; -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; describe('HeaderWorldClock with valid Time Zones', () => { it('displays Time Zones as expected', async () => { @@ -42,9 +40,7 @@ describe('HeaderWorldClock with valid Time Zones', () => { ]; const rendered = await renderInTestApp( - - - , + , ); expect(rendered.getByText('NYC')).toBeInTheDocument(); @@ -59,9 +55,7 @@ describe('HeaderWorldClock with no Time Zones provided', () => { const clockConfigs: ClockConfig[] = []; const rendered = await renderInTestApp( - - - , + , ); expect(rendered.container).toBeEmptyDOMElement(); @@ -78,9 +72,7 @@ describe('HeaderWorldClock with invalid Time Zone', () => { ]; const rendered = await renderInTestApp( - - - , + , ); expect(rendered.getByText('GMT')).toBeInTheDocument(); @@ -105,12 +97,10 @@ describe('HeaderWorldClock with custom Time Format', () => { }; const rendered = await renderInTestApp( - - - , + , ); expect(rendered.getByText('09:10')).toBeInTheDocument(); diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md index 79a87148b4..9516195d04 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-ilert +## 0.2.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.3-next.0 + +### Patch Changes + +- b1279d396d: fixed error on service page not showing if historical uptime was disabled on a service +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.2 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 605e1f367e..f85f689742 100644 --- a/plugins/ilert/package.json +++ b/plugins/ilert/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-ilert", "description": "A Backstage plugin that integrates towards iLert", - "version": "0.2.1", + "version": "0.2.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md index 685579d3d6..95c3ac46a6 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-jenkins-backend +## 0.1.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-jenkins-common@0.1.12-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## 0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-jenkins-common@0.1.12-next.0 + - @backstage/plugin-permission-common@0.7.2 + ## 0.1.29 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 4b83b449cf..9e3cd4cb48 100644 --- a/plugins/jenkins-backend/package.json +++ b/plugins/jenkins-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins-backend", "description": "A Backstage backend plugin that integrates towards Jenkins", - "version": "0.1.29", + "version": "0.1.30-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins-common/CHANGELOG.md b/plugins/jenkins-common/CHANGELOG.md index 13568fe8f3..03eae84d21 100644 --- a/plugins/jenkins-common/CHANGELOG.md +++ b/plugins/jenkins-common/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-jenkins-common +## 0.1.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + +## 0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + ## 0.1.11 ### Patch Changes diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index ce639d5d9c..de02b93ddc 100644 --- a/plugins/jenkins-common/package.json +++ b/plugins/jenkins-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-jenkins-common", - "version": "0.1.11", + "version": "0.1.12-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md index 8b5c2d4c88..73ae44bd1d 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-jenkins +## 0.7.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-jenkins-common@0.1.12-next.1 + +## 0.7.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-jenkins-common@0.1.12-next.0 + ## 0.7.12 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index d15e5b580d..ed674d6927 100644 --- a/plugins/jenkins/package.json +++ b/plugins/jenkins/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-jenkins", "description": "A Backstage plugin that integrates towards Jenkins", - "version": "0.7.11", + "version": "0.7.13-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md index b573ae4eb3..a26f6e84cb 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-kafka-backend +## 0.2.33-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + +## 0.2.33-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + ## 0.2.32 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 66c4ffce0a..eb65e1d3f4 100644 --- a/plugins/kafka-backend/package.json +++ b/plugins/kafka-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka-backend", "description": "A Backstage backend plugin that integrates towards Kafka", - "version": "0.2.32", + "version": "0.2.33-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md index bde6951455..541c7b13a0 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-kafka +## 0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index a56c915946..f36e5ccac8 100644 --- a/plugins/kafka/package.json +++ b/plugins/kafka/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kafka", "description": "A Backstage plugin that integrates towards Kafka", - "version": "0.3.12", + "version": "0.3.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index fd60b462bb..6c3bcdcc09 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-kubernetes-backend +## 0.9.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-kubernetes-common@0.5.1-next.1 + +## 0.9.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-kubernetes-common@0.5.1-next.0 + ## 0.9.0 ### Minor Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 9b163361f3..35f81d09ed 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-backend", "description": "A Backstage backend plugin that integrates towards Kubernetes", - "version": "0.9.0", + "version": "0.9.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md index 51f7f1fcd8..a8c295934b 100644 --- a/plugins/kubernetes-common/CHANGELOG.md +++ b/plugins/kubernetes-common/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-kubernetes-common +## 0.5.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + +## 0.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + ## 0.5.0 ### Minor Changes diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index b06ddb3783..bc683dbaa7 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes-common", "description": "Common functionalities for kubernetes, to be shared between kubernetes and kubernetes-backend plugin", - "version": "0.5.0", + "version": "0.5.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 4295426b6f..5aa5decbed 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-kubernetes +## 0.7.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-kubernetes-common@0.5.1-next.1 + +## 0.7.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-kubernetes-common@0.5.1-next.0 + ## 0.7.6 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index a922adff16..4d9c39fb66 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-kubernetes", "description": "A Backstage plugin that integrates towards Kubernetes", - "version": "0.7.5", + "version": "0.7.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md index 73efb99869..24c797e970 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-lighthouse +## 0.3.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.13 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 3cb414f4bc..f01cb6f771 100644 --- a/plugins/lighthouse/package.json +++ b/plugins/lighthouse/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-lighthouse", "description": "A Backstage plugin that integrates towards Lighthouse", - "version": "0.3.12", + "version": "0.3.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/lighthouse/src/components/AuditList/AuditListForEntity.test.tsx b/plugins/lighthouse/src/components/AuditList/AuditListForEntity.test.tsx index 3e34eed6e3..59892e1475 100644 --- a/plugins/lighthouse/src/components/AuditList/AuditListForEntity.test.tsx +++ b/plugins/lighthouse/src/components/AuditList/AuditListForEntity.test.tsx @@ -16,11 +16,8 @@ import { Entity } from '@backstage/catalog-model'; import { EntityProvider } from '@backstage/plugin-catalog-react'; -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; -import { render } from '@testing-library/react'; +import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; import React from 'react'; -import { MemoryRouter } from 'react-router-dom'; import { lighthouseApiRef, LighthouseRestApi, @@ -30,36 +27,18 @@ import { useWebsiteForEntity } from '../../hooks/useWebsiteForEntity'; import * as data from '../../__fixtures__/website-list-response.json'; import { AuditListForEntity } from './AuditListForEntity'; -import { ApiProvider } from '@backstage/core-app-api'; -import { errorApiRef } from '@backstage/core-plugin-api'; -import { TestApiRegistry } from '@backstage/test-utils'; - jest.mock('../../hooks/useWebsiteForEntity', () => ({ useWebsiteForEntity: jest.fn(), })); +const useWebsiteForEntityMock = useWebsiteForEntity as jest.Mock; + const websiteListResponse = data as WebsiteListResponse; const entityWebsite = websiteListResponse.items[0]; describe('', () => { - let apis: TestApiRegistry; - - const mockErrorApi: jest.Mocked = { - post: jest.fn(), - error$: jest.fn(), - }; - - beforeEach(() => { - apis = TestApiRegistry.from( - [lighthouseApiRef, new LighthouseRestApi('http://lighthouse')], - [errorApiRef, mockErrorApi], - ); - - (useWebsiteForEntity as jest.Mock).mockReturnValue({ - value: entityWebsite, - loading: false, - error: null, - }); + afterEach(() => { + jest.resetAllMocks(); }); const entity: Entity = { @@ -78,66 +57,55 @@ describe('', () => { }, }; - const subject = () => - render( - - - - - - - - - , - ); + const subject = () => ( + + + + + + ); it('renders the audit list for the entity', async () => { - const { findByText } = subject(); + useWebsiteForEntityMock.mockReturnValue({ + value: entityWebsite, + loading: false, + error: null, + }); + const { findByText } = await renderInTestApp(subject()); expect(await findByText(entityWebsite.url)).toBeInTheDocument(); }); - describe('where the data is loading', () => { - beforeEach(() => { - (useWebsiteForEntity as jest.Mock).mockReturnValue({ - value: null, - loading: true, - error: null, - }); + it('renders a Progress element where the data is loading', async () => { + useWebsiteForEntityMock.mockReturnValue({ + value: null, + loading: true, + error: null, }); - it('renders a Progress element', async () => { - const { findByTestId } = subject(); - expect(await findByTestId('progress')).toBeInTheDocument(); - }); + const { findByTestId } = await renderInTestApp(subject()); + expect(await findByTestId('progress')).toBeInTheDocument(); }); - describe('where there is an error loading data', () => { - beforeEach(() => { - (useWebsiteForEntity as jest.Mock).mockReturnValue({ - value: null, - loading: false, - error: 'error', - }); - }); - - it('renders nothing', async () => { - const { queryByTestId } = subject(); - expect(queryByTestId('AuditListTable')).toBeNull(); + it('renders nothing where there is an error loading data', async () => { + useWebsiteForEntityMock.mockReturnValue({ + value: null, + loading: false, + error: 'error', }); + const { queryByTestId } = await renderInTestApp(subject()); + expect(queryByTestId('AuditListTable')).toBeNull(); }); - describe('where there is not data', () => { - beforeEach(() => { - (useWebsiteForEntity as jest.Mock).mockReturnValue({ - value: null, - loading: false, - error: null, - }); + it('renders nothing where there is not data', async () => { + useWebsiteForEntityMock.mockReturnValue({ + value: null, + loading: false, + error: null, }); - it('renders nothing', async () => { - const { queryByTestId } = subject(); - expect(queryByTestId('AuditListTable')).toBeNull(); - }); + const { queryByTestId } = await renderInTestApp(subject()); + expect(queryByTestId('AuditListTable')).toBeNull(); }); }); diff --git a/plugins/lighthouse/src/components/Cards/LastLighthouseAuditCard.test.tsx b/plugins/lighthouse/src/components/Cards/LastLighthouseAuditCard.test.tsx index ab1e2683b6..c59458f3f3 100644 --- a/plugins/lighthouse/src/components/Cards/LastLighthouseAuditCard.test.tsx +++ b/plugins/lighthouse/src/components/Cards/LastLighthouseAuditCard.test.tsx @@ -16,11 +16,8 @@ import { Entity } from '@backstage/catalog-model'; import { EntityProvider } from '@backstage/plugin-catalog-react'; -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; -import { render } from '@testing-library/react'; +import { renderInTestApp } from '@backstage/test-utils'; import React from 'react'; -import { MemoryRouter } from 'react-router-dom'; import { AuditCompleted, LighthouseCategoryId, @@ -64,22 +61,15 @@ describe('', () => { }, }; - const subject = () => - render( - - - - - - - , - ); - describe('where the last audit completed successfully', () => { const audit = entityWebsite.lastAudit as AuditCompleted; it('renders the performance data for the audit', async () => { - const { findByText } = subject(); + const { findByText } = await renderInTestApp( + + + , + ); expect(await findByText(audit.url)).toBeInTheDocument(); expect(await findByText(audit.status)).toBeInTheDocument(); for (const category of Object.keys(audit.categories)) { @@ -101,7 +91,11 @@ describe('', () => { }); it('renders the performance data for the audit', async () => { - const { findByText } = subject(); + const { findByText } = await renderInTestApp( + + + , + ); expect(await findByText('N/A')).toBeInTheDocument(); }); }); @@ -119,7 +113,11 @@ describe('', () => { }); it('renders the url and status of the audit', async () => { - const { findByText } = subject(); + const { findByText } = await renderInTestApp( + + + , + ); expect(await findByText(audit.url)).toBeInTheDocument(); expect(await findByText(audit.status)).toBeInTheDocument(); }); @@ -135,7 +133,11 @@ describe('', () => { }); it('renders a Progress element', async () => { - const { findByTestId } = subject(); + const { findByTestId } = await renderInTestApp( + + + , + ); expect(await findByTestId('progress')).toBeInTheDocument(); }); }); @@ -150,7 +152,11 @@ describe('', () => { }); it('renders nothing', async () => { - const { queryByTestId } = subject(); + const { queryByTestId } = await renderInTestApp( + + + , + ); expect(queryByTestId('AuditListTable')).toBeNull(); }); }); @@ -165,7 +171,11 @@ describe('', () => { }); it('renders nothing', async () => { - const { queryByTestId } = subject(); + const { queryByTestId } = await renderInTestApp( + + + , + ); expect(queryByTestId('AuditListTable')).toBeNull(); }); }); diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md index e16250ccef..2f473cbc12 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + ## 0.2.6 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index d68150c6ba..8e1b0f56b0 100644 --- a/plugins/newrelic-dashboard/package.json +++ b/plugins/newrelic-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-newrelic-dashboard", - "version": "0.2.5", + "version": "0.2.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md index aa636a1e99..e09f1a3a78 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-newrelic +## 0.3.32-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## 0.3.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.3.31 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index b42a25db95..6d24472392 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-newrelic", "description": "A Backstage plugin that integrates towards New Relic", - "version": "0.3.30", + "version": "0.3.32-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md index 9b53209201..5d9a8fa490 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-org-react +## 0.1.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.1.2 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 61a5e8dc58..07ff5503dc 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.1", + "version": "0.1.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index a3bff0d6ec..608731b39a 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-org +## 0.6.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.6.3 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index a22f17a6b4..cbf8815024 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-org", "description": "A Backstage plugin that helps you create entity pages for your organization", - "version": "0.6.2", + "version": "0.6.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md index 38b5e0c5bc..9e33037698 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-pagerduty +## 0.5.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.5.6 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 902df09231..fec2f11689 100644 --- a/plugins/pagerduty/package.json +++ b/plugins/pagerduty/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-pagerduty", "description": "A Backstage plugin that integrates towards PagerDuty", - "version": "0.5.5", + "version": "0.5.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md index bd58a06593..9a37dc456d 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-periskop-backend +## 0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + ## 0.1.10 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index 102569ad79..daf15bdf9c 100644 --- a/plugins/periskop-backend/package.json +++ b/plugins/periskop-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop-backend", - "version": "0.1.10", + "version": "0.1.11-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md index eee49c545d..ea43e75525 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-periskop +## 0.1.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.11 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 10daf69de6..9b431a4909 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.10", + "version": "0.1.12-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index f33b09f657..f2431c274a 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-permission-backend +## 0.5.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + ## 0.5.14 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index f9ed36a35d..c6cddcebdb 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.14", + "version": "0.5.15-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-common/CHANGELOG.md b/plugins/permission-common/CHANGELOG.md index 5c11ef95af..d042353cdc 100644 --- a/plugins/permission-common/CHANGELOG.md +++ b/plugins/permission-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-common +## 0.7.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + ## 0.7.2 ### Patch Changes diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index 5b5ca74560..518aa5353d 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-permission-common", "description": "Isomorphic types and client for Backstage permissions and authorization", - "version": "0.7.2", + "version": "0.7.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index 4c38e7a895..e4da7a95b8 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-permission-node +## 0.7.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + ## 0.7.2 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index b23670017e..71d7f37688 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.2", + "version": "0.7.3-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-react/CHANGELOG.md b/plugins/permission-react/CHANGELOG.md index 708b30abdc..750cfd2ff5 100644 --- a/plugins/permission-react/CHANGELOG.md +++ b/plugins/permission-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-react +## 0.4.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + ## 0.4.8 ### Patch Changes diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index c69d2899ee..7801bcbbba 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-react", - "version": "0.4.8", + "version": "0.4.9-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist-backend/CHANGELOG.md b/plugins/playlist-backend/CHANGELOG.md index 26dc5378d3..f32de4464a 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-playlist-backend +## 0.2.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + - @backstage/plugin-playlist-common@0.1.4-next.0 + +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-playlist-common@0.1.3 + ## 0.2.2 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 19785706ed..eefcb9d031 100644 --- a/plugins/playlist-backend/package.json +++ b/plugins/playlist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist-backend", - "version": "0.2.2", + "version": "0.2.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist-common/CHANGELOG.md b/plugins/playlist-common/CHANGELOG.md index 3db070e10d..0427b0f4b8 100644 --- a/plugins/playlist-common/CHANGELOG.md +++ b/plugins/playlist-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-playlist-common +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.3-next.0 + ## 0.1.3 ### Patch Changes diff --git a/plugins/playlist-common/package.json b/plugins/playlist-common/package.json index 9a3820e306..ea94e2f5bb 100644 --- a/plugins/playlist-common/package.json +++ b/plugins/playlist-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-playlist-common", "description": "Common functionalities for the playlist plugin", - "version": "0.1.3", + "version": "0.1.4-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md index 0434a916f2..376f49d2d1 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,39 @@ # @backstage/plugin-playlist +## 0.1.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-react@0.4.9-next.0 + - @backstage/plugin-playlist-common@0.1.4-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-react@0.4.8 + - @backstage/plugin-playlist-common@0.1.3 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index db5b1d822b..359883a05e 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.3", + "version": "0.1.5-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/playlist/src/components/PlaylistCard/PlaylistCard.test.tsx b/plugins/playlist/src/components/PlaylistCard/PlaylistCard.test.tsx index 177cc23b81..5a34aa93e2 100644 --- a/plugins/playlist/src/components/PlaylistCard/PlaylistCard.test.tsx +++ b/plugins/playlist/src/components/PlaylistCard/PlaylistCard.test.tsx @@ -16,8 +16,6 @@ import { entityRouteRef } from '@backstage/plugin-catalog-react'; import { renderInTestApp } from '@backstage/test-utils'; -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; import React from 'react'; import { rootRouteRef } from '../../routes'; @@ -26,20 +24,18 @@ import { PlaylistCard } from './PlaylistCard'; describe('', () => { it('renders playlist info', async () => { const rendered = await renderInTestApp( - - - , + , { mountedRoutes: { '/playlists': rootRouteRef, diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index 4a7a1c3554..7f9accc524 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-proxy-backend +## 0.2.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + ## 0.2.33 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index b4342ad43c..4b5001d75a 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-proxy-backend", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", - "version": "0.2.33", + "version": "0.2.34-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md index 06c6af4fe4..e3a655da9a 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-rollbar-backend +## 0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + ## 0.1.36 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 552a534058..99de5511c7 100644 --- a/plugins/rollbar-backend/package.json +++ b/plugins/rollbar-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar-backend", "description": "A Backstage backend plugin that integrates towards Rollbar", - "version": "0.1.36", + "version": "0.1.37-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md index 5c41131e97..4ebf128e64 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-rollbar +## 0.4.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.4.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.4.13 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 6ad58bcff4..e5554ca875 100644 --- a/plugins/rollbar/package.json +++ b/plugins/rollbar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-rollbar", "description": "A Backstage plugin that integrates towards Rollbar", - "version": "0.4.12", + "version": "0.4.14-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 2c5e107f06..9ec8a5d761 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,59 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## 0.2.15-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + ## 0.2.14 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index a1aa35dfb7..d6dce3611d 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", - "version": "0.2.14", + "version": "0.2.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts index bfa4aa0507..15e5d25183 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts +++ b/plugins/scaffolder-backend-module-cookiecutter/src/actions/fetch/cookiecutter.test.ts @@ -75,7 +75,6 @@ describe('fetch:cookiecutter', () => { const mockReader: UrlReader = { readUrl: jest.fn(), - read: jest.fn(), readTree: jest.fn(), search: jest.fn(), }; diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index b856284bfd..ec9b9e991a 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,59 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + +## 0.4.8-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + ## 0.4.7 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 967d1d94ec..2ba25a3884 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", "description": "A module for the scaffolder backend that lets you template projects using Rails", - "version": "0.4.7", + "version": "0.4.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts index 98ac3a403f..56f85d002e 100644 --- a/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts +++ b/plugins/scaffolder-backend-module-rails/src/actions/fetch/rails/index.test.ts @@ -74,7 +74,6 @@ describe('fetch:rails', () => { }; const mockReader: UrlReader = { - read: jest.fn(), readUrl: jest.fn(), readTree: jest.fn(), search: jest.fn(), diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index b5837e89b0..0a2e1122c2 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,53 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.10.0-next.1 + - @backstage/config@1.0.6-next.0 + - @backstage/types@1.0.2 + +## 0.2.13-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/plugin-scaffolder-backend@1.9.1-next.0 + - @backstage/config@1.0.5 + - @backstage/types@1.0.2 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 2de3d42a31..04ffee580b 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-yeoman", - "version": "0.2.12", + "version": "0.2.13-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index 174a8e7570..64b41e4863 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,78 @@ # @backstage/plugin-scaffolder-backend +## 1.10.0-next.1 + +### Minor Changes + +- 04a2048fb8: Allow custom repository roles to be configured on github repos +- a69664faee: Add Github repository support for squash merge commit title and message options + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.2.1-next.0 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.1 + - @backstage/plugin-catalog-node@1.3.1-next.1 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.1 + +## 1.9.1-next.0 + +### Patch Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-backend@1.7.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-plugin-api@0.2.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-catalog-node@1.3.1-next.0 + ## 1.9.0 ### Minor Changes diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 73b6177c6a..c89ead6d2b 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -195,6 +195,12 @@ export function createGithubRepoCreateAction(options: { gitAuthorEmail?: string | undefined; allowRebaseMerge?: boolean | undefined; allowSquashMerge?: boolean | undefined; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined; + squashMergeCommitMessage?: + | 'PR_BODY' + | 'COMMIT_MESSAGES' + | 'BLANK' + | undefined; allowMergeCommit?: boolean | undefined; allowAutoMerge?: boolean | undefined; requireCodeOwnerReviews?: boolean | undefined; @@ -213,11 +219,11 @@ export function createGithubRepoCreateAction(options: { | ( | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { username: string; @@ -383,6 +389,12 @@ export function createPublishGithubAction(options: { gitAuthorEmail?: string | undefined; allowRebaseMerge?: boolean | undefined; allowSquashMerge?: boolean | undefined; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined; + squashMergeCommitMessage?: + | 'PR_BODY' + | 'COMMIT_MESSAGES' + | 'BLANK' + | undefined; allowMergeCommit?: boolean | undefined; allowAutoMerge?: boolean | undefined; sourcePath?: string | undefined; @@ -403,11 +415,11 @@ export function createPublishGithubAction(options: { | ( | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { username: string; diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index ef77b8c0f3..16b82015d0 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-backend", "description": "The Backstage backend plugin that helps you create new things", - "version": "1.9.0", + "version": "1.10.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.test.ts index 50ec94e099..86d5f17803 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/helpers.test.ts @@ -39,7 +39,6 @@ describe('fetchContent helper', () => { const readTree = jest.fn(); const reader: UrlReader = { - read: jest.fn(), readUrl: jest.fn(), readTree, search: jest.fn(), diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.test.ts index 1595578666..0469ffec06 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/fetch/plain.test.ts @@ -34,7 +34,6 @@ describe('fetch:plain', () => { ); const reader: UrlReader = { readUrl: jest.fn(), - read: jest.fn(), readTree: jest.fn(), search: jest.fn(), }; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts index 3c37f28ccd..824db27e84 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.test.ts @@ -106,6 +106,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -126,6 +128,8 @@ describe('github:repo:create', () => { private: false, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -147,6 +151,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -169,6 +175,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -194,6 +202,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -222,6 +232,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -242,6 +254,8 @@ describe('github:repo:create', () => { private: false, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -263,6 +277,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -285,6 +301,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -310,6 +328,8 @@ describe('github:repo:create', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts index 598e3314fb..f41150b504 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts @@ -49,6 +49,8 @@ export function createGithubRepoCreateAction(options: { gitAuthorEmail?: string; allowRebaseMerge?: boolean; allowSquashMerge?: boolean; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE'; + squashMergeCommitMessage?: 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK'; allowMergeCommit?: boolean; allowAutoMerge?: boolean; requireCodeOwnerReviews?: boolean; @@ -64,11 +66,11 @@ export function createGithubRepoCreateAction(options: { collaborators?: Array< | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { /** @deprecated This field is deprecated in favor of team */ @@ -103,6 +105,8 @@ export function createGithubRepoCreateAction(options: { deleteBranchOnMerge: inputProps.deleteBranchOnMerge, allowMergeCommit: inputProps.allowMergeCommit, allowSquashMerge: inputProps.allowSquashMerge, + squashMergeCommitTitle: inputProps.squashMergeCommitTitle, + squashMergeCommitMessage: inputProps.squashMergeCommitMessage, allowRebaseMerge: inputProps.allowRebaseMerge, allowAutoMerge: inputProps.allowAutoMerge, collaborators: inputProps.collaborators, @@ -131,6 +135,8 @@ export function createGithubRepoCreateAction(options: { deleteBranchOnMerge = false, allowMergeCommit = true, allowSquashMerge = true, + squashMergeCommitTitle = 'COMMIT_OR_PR_TITLE', + squashMergeCommitMessage = 'COMMIT_MESSAGES', allowRebaseMerge = true, allowAutoMerge = false, collaborators, @@ -165,6 +171,8 @@ export function createGithubRepoCreateAction(options: { deleteBranchOnMerge, allowMergeCommit, allowSquashMerge, + squashMergeCommitTitle, + squashMergeCommitMessage, allowRebaseMerge, allowAutoMerge, access, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts index 499826ee6b..9caee49f98 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/helpers.ts @@ -102,6 +102,8 @@ export async function createGithubRepoWithCollaboratorsAndTopics( deleteBranchOnMerge: boolean, allowMergeCommit: boolean, allowSquashMerge: boolean, + squashMergeCommitTitle: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined, + squashMergeCommitMessage: 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK' | undefined, allowRebaseMerge: boolean, allowAutoMerge: boolean, access: string | undefined, @@ -109,11 +111,11 @@ export async function createGithubRepoWithCollaboratorsAndTopics( | ( | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { /** @deprecated This field is deprecated in favor of team */ @@ -144,6 +146,8 @@ export async function createGithubRepoWithCollaboratorsAndTopics( delete_branch_on_merge: deleteBranchOnMerge, allow_merge_commit: allowMergeCommit, allow_squash_merge: allowSquashMerge, + squash_merge_commit_title: squashMergeCommitTitle, + squash_merge_commit_message: squashMergeCommitMessage, allow_rebase_merge: allowRebaseMerge, allow_auto_merge: allowAutoMerge, homepage: homepage, @@ -158,6 +162,8 @@ export async function createGithubRepoWithCollaboratorsAndTopics( delete_branch_on_merge: deleteBranchOnMerge, allow_merge_commit: allowMergeCommit, allow_squash_merge: allowSquashMerge, + squash_merge_commit_title: squashMergeCommitTitle, + squash_merge_commit_message: squashMergeCommitMessage, allow_rebase_merge: allowRebaseMerge, allow_auto_merge: allowAutoMerge, homepage: homepage, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts index 07dd0f8163..3fc7126754 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/inputProperties.ts @@ -94,6 +94,17 @@ const allowSquashMerge = { type: 'boolean', description: `Allow squash merges. The default value is 'true'`, }; +const squashMergeCommitTitle = { + title: 'Default squash merge commit title', + enum: ['PR_TITLE', 'COMMIT_OR_PR_TITLE'], + description: `Sets the default value for a squash merge commit title. The default value is 'COMMIT_OR_PR_TITLE'`, +}; +const squashMergeCommitMessage = { + title: 'Default squash merge commit message', + enum: ['PR_BODY', 'COMMIT_MESSAGES', 'BLANK'], + description: `Sets the default value for a squash merge commit message. The default value is 'COMMIT_MESSAGES'`, +}; + const allowRebaseMerge = { title: 'Allow Rebase Merges', type: 'boolean', @@ -116,7 +127,6 @@ const collaborators = { access: { type: 'string', description: 'The type of access for the user', - enum: ['push', 'pull', 'admin', 'maintain', 'triage'], }, user: { type: 'string', @@ -219,6 +229,8 @@ export { access }; export { allowMergeCommit }; export { allowRebaseMerge }; export { allowSquashMerge }; +export { squashMergeCommitTitle }; +export { squashMergeCommitMessage }; export { allowAutoMerge }; export { collaborators }; export { defaultBranch }; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts index 68e6521187..e4c92c624e 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.test.ts @@ -111,6 +111,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -131,6 +133,8 @@ describe('publish:github', () => { private: false, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -152,6 +156,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -174,6 +180,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -199,6 +207,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -227,6 +237,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -247,6 +259,8 @@ describe('publish:github', () => { private: false, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -268,6 +282,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -290,6 +306,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, @@ -315,6 +333,8 @@ describe('publish:github', () => { private: true, delete_branch_on_merge: false, allow_squash_merge: true, + squash_merge_commit_message: 'COMMIT_MESSAGES', + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts index edb1c699d7..5430f30657 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts @@ -57,6 +57,8 @@ export function createPublishGithubAction(options: { gitAuthorEmail?: string; allowRebaseMerge?: boolean; allowSquashMerge?: boolean; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE'; + squashMergeCommitMessage?: 'PR_BODY' | 'COMMIT_MESSAGES' | 'BLANK'; allowMergeCommit?: boolean; allowAutoMerge?: boolean; sourcePath?: string; @@ -76,11 +78,11 @@ export function createPublishGithubAction(options: { collaborators?: Array< | { user: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { team: string; - access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage'; + access: string; } | { /** @deprecated This field is deprecated in favor of team */ @@ -123,6 +125,8 @@ export function createPublishGithubAction(options: { gitAuthorEmail: inputProps.gitAuthorEmail, allowMergeCommit: inputProps.allowMergeCommit, allowSquashMerge: inputProps.allowSquashMerge, + squashMergeCommitTitle: inputProps.squashMergeCommitTitle, + squashMergeCommitMessage: inputProps.squashMergeCommitMessage, allowRebaseMerge: inputProps.allowRebaseMerge, allowAutoMerge: inputProps.allowAutoMerge, sourcePath: inputProps.sourcePath, @@ -164,6 +168,8 @@ export function createPublishGithubAction(options: { gitAuthorEmail, allowMergeCommit = true, allowSquashMerge = true, + squashMergeCommitTitle = 'COMMIT_OR_PR_TITLE', + squashMergeCommitMessage = 'COMMIT_MESSAGES', allowRebaseMerge = true, allowAutoMerge = false, collaborators, @@ -198,6 +204,8 @@ export function createPublishGithubAction(options: { deleteBranchOnMerge, allowMergeCommit, allowSquashMerge, + squashMergeCommitTitle, + squashMergeCommitMessage, allowRebaseMerge, allowAutoMerge, access, diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index 355f125b9b..991f844915 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-scaffolder-common +## 1.2.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/types@1.0.2 + +## 1.2.4-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/types@1.0.2 + ## 1.2.3 ### Patch Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index a2f4ae5bcf..58ef9db5a0 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder-common", "description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin", - "version": "1.2.3", + "version": "1.2.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index 6126798c2c..5dc9e1c9f8 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,79 @@ # @backstage/plugin-scaffolder +## 1.10.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-permission-react@0.4.9-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.1 + +## 1.10.0-next.0 + +### Minor Changes + +- e4c0240445: Added `catalogFilter` field to OwnerPicker and EntityPicker components to support filtering options by any field(s) of an entity. + + The `allowedKinds` field has been deprecated. Use `catalogFilter` instead. This field allows users to specify a filter on the shape of [EntityFilterQuery](https://github.com/backstage/backstage/blob/774c42003782121d3d6b2aa5f2865d53370c160e/packages/catalog-client/src/types/api.ts#L74), which can be passed into the CatalogClient. See examples below: + + - Get all entities of kind `Group` + + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + ``` + + - Get entities of kind `Group` and spec.type `team` + ```yaml + owner: + title: Owner + type: string + description: Owner of the component + ui:field: OwnerPicker + ui:options: + catalogFilter: + - kind: Group + spec.type: team + ``` + +### Patch Changes + +- 3c112f6967: rollback `@rjsf/validator-ajv8` to `@rjsf/validator-v6` +- 223e2c5f03: add `onChange` handler to`Stepper` component +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-scaffolder-common@1.2.4-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-react@0.4.8 + ## 1.9.1 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index ebc2e91511..f9666f4218 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-scaffolder", "description": "The Backstage plugin that helps you create new things", - "version": "1.9.0", + "version": "1.10.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/scaffolder/src/components/TaskPage/IconLink.test.tsx b/plugins/scaffolder/src/components/TaskPage/IconLink.test.tsx index f7ce850cd8..0b6092c37d 100644 --- a/plugins/scaffolder/src/components/TaskPage/IconLink.test.tsx +++ b/plugins/scaffolder/src/components/TaskPage/IconLink.test.tsx @@ -14,23 +14,15 @@ * limitations under the License. */ -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; +import { renderInTestApp } from '@backstage/test-utils'; import CloudIcon from '@material-ui/icons/Cloud'; -import { render } from '@testing-library/react'; import React from 'react'; import { IconLink } from './IconLink'; describe('IconLink', () => { - it('should render an icon link', () => { - const rendered = render( - - - , + it('should render an icon link', async () => { + const rendered = await renderInTestApp( + , ); expect(rendered.getByText('I am Link')).toBeInTheDocument(); diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 75060fe96f..a076c24c92 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 1.1.1-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- 1e1a9fe979: Fixed a bug that could cause an indexing process to silently fail, timeout, and accumulate stale indices. +- 56633804dd: Fixed a bug that could cause the backstage backend to unexpectedly terminate when client errors were encountered during the indexing process. +- aa33a06894: Improved index throughput by optimizing when and how many documents were made available to the bulk client. +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + ## 1.1.0 ### Minor Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index fa1868879e..7a50784069 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", "description": "A module for the search backend that implements search using ElasticSearch", - "version": "1.1.0", + "version": "1.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index bcede8121b..cabd313d2f 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 0.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + ## 0.5.0 ### Minor Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index fae43de36a..9c2e925ea4 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-module-pg", "description": "A module for the search backend that implements search using PostgreSQL", - "version": "0.5.0", + "version": "0.5.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index f119c80353..6d4057416d 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-search-backend-node +## 1.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 1.1.1-next.0 + +### Patch Changes + +- 011bd518b7: Fixed spelling mistakes in documentation. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + ## 1.1.0 ### Minor Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 08f0b45cb6..c3262fa3d7 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend-node", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", - "version": "1.1.0", + "version": "1.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-backend-node/src/collators/NewlineDelimitedJsonCollatorFactory.test.ts b/plugins/search-backend-node/src/collators/NewlineDelimitedJsonCollatorFactory.test.ts index c08db8f28e..addcb87497 100644 --- a/plugins/search-backend-node/src/collators/NewlineDelimitedJsonCollatorFactory.test.ts +++ b/plugins/search-backend-node/src/collators/NewlineDelimitedJsonCollatorFactory.test.ts @@ -53,7 +53,6 @@ describe('DefaultCatalogCollatorFactory', () => { readable._read = () => {}; reader = { search: jest.fn(), - read: jest.fn(), readTree: jest.fn(), readUrl: jest.fn(), }; diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index b296c171c9..5af6409792 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,36 @@ # @backstage/plugin-search-backend +## 1.2.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.9-next.0 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-permission-node@0.7.3-next.0 + - @backstage/plugin-search-backend-node@1.1.1-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 1.2.1-next.0 + +### Patch Changes + +- bfd66b0478: Allow max page limit for search results to be configurable +- Updated dependencies + - @backstage/plugin-search-backend-node@1.1.1-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-permission-node@0.7.2 + - @backstage/plugin-search-common@1.2.0 + ## 1.2.0 ### Minor Changes diff --git a/plugins/search-backend/config.d.ts b/plugins/search-backend/config.d.ts index 99f4d0ab2f..3dbdf78dfe 100644 --- a/plugins/search-backend/config.d.ts +++ b/plugins/search-backend/config.d.ts @@ -17,6 +17,11 @@ export interface Config { /** Configuration options for the search plugin */ search?: { + /** + * Sets the maximum max page limit size. Defaults to 100. + */ + maxPageLimit?: number; + /** * Options related to the search integration with the Backstage permissions system */ diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 6032f1af79..7a67e3bc20 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-backend", "description": "The Backstage backend plugin that provides your backstage app with search", - "version": "1.2.0", + "version": "1.2.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -48,6 +48,7 @@ "supertest": "^6.1.3" }, "files": [ - "dist" + "dist", + "config.d.ts" ] } diff --git a/plugins/search-backend/src/service/router.test.ts b/plugins/search-backend/src/service/router.test.ts index c3eb6ea00f..1dbd145bce 100644 --- a/plugins/search-backend/src/service/router.test.ts +++ b/plugins/search-backend/src/service/router.test.ts @@ -59,7 +59,10 @@ describe('createRouter', () => { 'first-type': {}, 'second-type': {}, }, - config: new ConfigReader({ permissions: { enabled: false } }), + config: new ConfigReader({ + permissions: { enabled: false }, + search: { maxPageLimit: 200 }, + }), permissions: mockPermissionEvaluator, logger, }); @@ -112,8 +115,8 @@ describe('createRouter', () => { }); }); - it('should accept per page value under or equal to 100', async () => { - const response = await request(app).get(`/query?pageLimit=30`); + it('should accept per page value under or equal to configured max', async () => { + const response = await request(app).get(`/query?pageLimit=200`); expect(response.status).toEqual(200); expect(response.body).toMatchObject({ @@ -121,13 +124,13 @@ describe('createRouter', () => { }); }); - it('should reject per page value over 100', async () => { - const response = await request(app).get(`/query?pageLimit=200`); + it('should reject per page value over configured max', async () => { + const response = await request(app).get(`/query?pageLimit=300`); expect(response.status).toEqual(400); expect(response.body).toMatchObject({ error: { - message: /The page limit "200" is greater than "100"/i, + message: /The page limit "300" is greater than "200"/i, }, }); }); diff --git a/plugins/search-backend/src/service/router.ts b/plugins/search-backend/src/service/router.ts index 0100c35e1d..b51dcead14 100644 --- a/plugins/search-backend/src/service/router.ts +++ b/plugins/search-backend/src/service/router.ts @@ -62,7 +62,7 @@ export type RouterOptions = { logger: Logger; }; -const maxPageLimit = 100; +const defaultMaxPageLimit = 100; const allowedLocationProtocols = ['http:', 'https:']; /** @@ -73,6 +73,9 @@ export async function createRouter( ): Promise { const { engine: inputEngine, types, permissions, config, logger } = options; + const maxPageLimit = + config.getOptionalNumber('search.maxPageLimit') ?? defaultMaxPageLimit; + const requestSchema = z.object({ term: z.string().default(''), filters: jsonObjectSchema.optional(), diff --git a/plugins/search-common/CHANGELOG.md b/plugins/search-common/CHANGELOG.md index 6a56375f0a..202d083a9e 100644 --- a/plugins/search-common/CHANGELOG.md +++ b/plugins/search-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-common +## 1.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/types@1.0.2 + - @backstage/plugin-permission-common@0.7.3-next.0 + ## 1.2.0 ### Minor Changes diff --git a/plugins/search-common/package.json b/plugins/search-common/package.json index 807f16a32b..962f05a4fc 100644 --- a/plugins/search-common/package.json +++ b/plugins/search-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search-common", "description": "Common functionalities for Search, to be shared between various search-enabled plugins", - "version": "1.2.0", + "version": "1.2.1-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index a08a1f43dd..3c7ac58037 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-search-react +## 1.3.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 1.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.0 + ## 1.3.1 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 9f4bd5a4f2..c22d3ea41c 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "1.3.0", + "version": "1.3.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index 46f8fde85e..6ef9c8e0b5 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,39 @@ # @backstage/plugin-search +## 1.0.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## 1.0.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/version-bridge@1.0.3 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 1.0.6 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 301bcb1fc6..d445ca522e 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-search", "description": "The Backstage plugin that provides your backstage app with search", - "version": "1.0.5", + "version": "1.0.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sentry/CHANGELOG.md b/plugins/sentry/CHANGELOG.md index c34eab0bb6..53a2c501e6 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-sentry +## 0.4.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.4.6 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 88c9697b19..4dd93d1837 100644 --- a/plugins/sentry/package.json +++ b/plugins/sentry/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sentry", "description": "A Backstage plugin that integrates towards Sentry", - "version": "0.4.5", + "version": "0.4.7-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sentry/src/components/ErrorCell/ErrorCell.test.tsx b/plugins/sentry/src/components/ErrorCell/ErrorCell.test.tsx index ff1960aa4f..22cb5cf0a0 100644 --- a/plugins/sentry/src/components/ErrorCell/ErrorCell.test.tsx +++ b/plugins/sentry/src/components/ErrorCell/ErrorCell.test.tsx @@ -16,10 +16,8 @@ import { ErrorCell } from './ErrorCell'; import React from 'react'; -import { render } from '@testing-library/react'; import mockIssue from '../../api/mock/sentry-issue-mock.json'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; +import { renderInTestApp } from '@backstage/test-utils'; describe('Sentry error cell component', () => { it('should render a link that lead to Sentry', async () => { @@ -33,11 +31,7 @@ describe('Sentry error cell component', () => { userCount: 2, permalink: 'http://example.com', }; - const cell = render( - - - , - ); + const cell = await renderInTestApp(); const errorType = await cell.findByText('Exception'); expect(errorType.closest('a')).toHaveAttribute( 'href', @@ -53,11 +47,7 @@ describe('Sentry error cell component', () => { userCount: 2, permalink: 'http://example.com', }; - const cell = render( - - - , - ); + const cell = await renderInTestApp(); const errorType = await cell.findByText('Exception: Could not load cr...'); expect(errorType.closest('a')).toHaveAttribute( 'href', diff --git a/plugins/sentry/src/components/SentryIssuesTable/SentryIssuesTable.test.tsx b/plugins/sentry/src/components/SentryIssuesTable/SentryIssuesTable.test.tsx index 2516d37788..647208f141 100644 --- a/plugins/sentry/src/components/SentryIssuesTable/SentryIssuesTable.test.tsx +++ b/plugins/sentry/src/components/SentryIssuesTable/SentryIssuesTable.test.tsx @@ -15,12 +15,10 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; import SentryIssuesTable from './SentryIssuesTable'; import { SentryIssue } from '../../api'; import mockIssue from '../../api/mock/sentry-issue-mock.json'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; +import { renderInTestApp } from '@backstage/test-utils'; describe('SentryIssuesTable', () => { it('should render headers in a table', async () => { @@ -35,19 +33,17 @@ describe('SentryIssuesTable', () => { userCount: 2, }, ]; - const table = await render( - - - , + const table = await renderInTestApp( + , ); expect(await table.findByText('Error')).toBeInTheDocument(); expect(await table.findByText('Graph')).toBeInTheDocument(); @@ -68,19 +64,17 @@ describe('SentryIssuesTable', () => { userCount: 202, }, ]; - const table = await render( - - - , + const table = await renderInTestApp( + , ); expect(await table.findByText('Exception')).toBeInTheDocument(); expect(await table.findByText('exception was thrown')).toBeInTheDocument(); @@ -99,19 +93,17 @@ describe('SentryIssuesTable', () => { userCount: 202, }, ]; - const table = await render( - - - , + const table = await renderInTestApp( + , ); expect(await table.findByText('Last 24h')).toBeInTheDocument(); }); diff --git a/plugins/shortcuts/CHANGELOG.md b/plugins/shortcuts/CHANGELOG.md index 22698bf7f2..5e95712f5d 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-shortcuts +## 0.3.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## 0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + ## 0.3.5 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index 39d272279d..b618aa22f3 100644 --- a/plugins/shortcuts/package.json +++ b/plugins/shortcuts/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-shortcuts", "description": "A Backstage plugin that provides a shortcuts feature to the sidebar", - "version": "0.3.4", + "version": "0.3.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube-backend/CHANGELOG.md b/plugins/sonarqube-backend/CHANGELOG.md index e814df1577..dea94ff5f3 100644 --- a/plugins/sonarqube-backend/CHANGELOG.md +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-sonarqube-backend +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + ## 0.1.4 ### Patch Changes diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 2ac659768a..2804839e26 100644 --- a/plugins/sonarqube-backend/package.json +++ b/plugins/sonarqube-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-backend", - "version": "0.1.4", + "version": "0.1.5-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube-react/CHANGELOG.md b/plugins/sonarqube-react/CHANGELOG.md index feec05cbab..193ab0177f 100644 --- a/plugins/sonarqube-react/CHANGELOG.md +++ b/plugins/sonarqube-react/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-sonarqube-react +## 0.1.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + +## 0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-plugin-api@1.2.0 + ## 0.1.0 ### Minor Changes diff --git a/plugins/sonarqube-react/package.json b/plugins/sonarqube-react/package.json index ad66e526e5..371808c2f5 100644 --- a/plugins/sonarqube-react/package.json +++ b/plugins/sonarqube-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-sonarqube-react", - "version": "0.1.0", + "version": "0.1.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md index 28c4acc72f..87a1d93b32 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-sonarqube +## 0.6.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-sonarqube-react@0.1.1-next.1 + +## 0.6.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-sonarqube-react@0.1.1-next.0 + ## 0.6.1 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index 39cc45201b..a8e2267213 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.6.0", + "version": "0.6.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/sonarqube/src/components/SonarQubeContentPage/SonarQubeContentPage.test.tsx b/plugins/sonarqube/src/components/SonarQubeContentPage/SonarQubeContentPage.test.tsx index 22175d14bc..59258e5312 100644 --- a/plugins/sonarqube/src/components/SonarQubeContentPage/SonarQubeContentPage.test.tsx +++ b/plugins/sonarqube/src/components/SonarQubeContentPage/SonarQubeContentPage.test.tsx @@ -16,8 +16,6 @@ import { EntityProvider } from '@backstage/plugin-catalog-react'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; import React from 'react'; import { isSonarQubeAvailable, @@ -44,7 +42,7 @@ const Providers = ({ kind: 'Component', }} > - {children} + {children}
); diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md index 31d9bd58e1..7523b44fbe 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-splunk-on-call +## 0.4.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.4.2 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 60ab22ff15..1fd2cafe20 100644 --- a/plugins/splunk-on-call/package.json +++ b/plugins/splunk-on-call/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-splunk-on-call", "description": "A Backstage plugin that integrates towards Splunk On-Call", - "version": "0.4.1", + "version": "0.4.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md index 5a77d47a98..21c045a96d 100644 --- a/plugins/stack-overflow-backend/CHANGELOG.md +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-stack-overflow-backend +## 0.1.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 0.1.9-next.0 + +### Patch Changes + +- 06f6a4f0f1: Enable configuration override for StackOverflow backend plugin when instantiating the search indexer. This makes it possible to set different configuration for frontend and backend of the plugin. +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/plugin-search-common@1.2.0 + ## 0.1.8 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index c9111f3a7e..b9c29f8f3a 100644 --- a/plugins/stack-overflow-backend/package.json +++ b/plugins/stack-overflow-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow-backend", - "version": "0.1.8", + "version": "0.1.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md index 713bb6c330..0aef09bc36 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-stack-overflow +## 0.1.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-home@0.4.30-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + +## 0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-home@0.4.30-next.0 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 0.1.9 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index b0d6c87b8b..e152b61333 100644 --- a/plugins/stack-overflow/package.json +++ b/plugins/stack-overflow/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-stack-overflow", - "version": "0.1.8", + "version": "0.1.10-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md index 186770f29e..72937c4112 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/errors@1.1.4 + - @backstage/plugin-tech-insights-common@0.2.9 + - @backstage/plugin-tech-insights-node@0.3.8-next.0 + ## 0.1.23 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index 3e29e32dc6..eab67e2eee 100644 --- a/plugins/tech-insights-backend-module-jsonfc/package.json +++ b/plugins/tech-insights-backend-module-jsonfc/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend-module-jsonfc", - "version": "0.1.23", + "version": "0.1.24-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md index c3c2d4b2e8..4efa88a6a3 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,36 @@ # @backstage/plugin-tech-insights-backend +## 0.5.6-next.1 + +### Patch Changes + +- 7a38a31699: Complete check results run when a single check errors so that we don't block other checks from working due to an error in a single check +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + - @backstage/plugin-tech-insights-node@0.3.8-next.0 + +## 0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + - @backstage/plugin-tech-insights-node@0.3.7 + ## 0.5.5 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index 74bdb33647..2f62739098 100644 --- a/plugins/tech-insights-backend/package.json +++ b/plugins/tech-insights-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-backend", - "version": "0.5.5", + "version": "0.5.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights-backend/src/service/router.ts b/plugins/tech-insights-backend/src/service/router.ts index 6dba290422..5e58df1b20 100644 --- a/plugins/tech-insights-backend/src/service/router.ts +++ b/plugins/tech-insights-backend/src/service/router.ts @@ -32,6 +32,7 @@ import { stringifyEntityRef, } from '@backstage/catalog-model'; import { errorHandler } from '@backstage/backend-common'; +import { serializeError } from '@backstage/errors'; /** * @public @@ -106,11 +107,21 @@ export async function createRouter< const tasks = entities.map(async entity => { const entityTriplet = typeof entity === 'string' ? entity : stringifyEntityRef(entity); - const results = await factChecker.runChecks(entityTriplet, checks); - return { - entity: entityTriplet, - results, - }; + try { + const results = await factChecker.runChecks(entityTriplet, checks); + return { + entity: entityTriplet, + results, + }; + } catch (e: any) { + const error = serializeError(e); + logger.error(`${error.name}: ${error.message}`); + return { + entity: entityTriplet, + error: error, + results: [], + }; + } }); const results = await Promise.all(tasks); return res.json(results); diff --git a/plugins/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md index e4be99534f..e1dd9fb819 100644 --- a/plugins/tech-insights-node/CHANGELOG.md +++ b/plugins/tech-insights-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-tech-insights-node +## 0.3.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + ## 0.3.7 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index 519e1e6388..19efdd0445 100644 --- a/plugins/tech-insights-node/package.json +++ b/plugins/tech-insights-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights-node", - "version": "0.3.7", + "version": "0.3.8-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md index 57e36f5924..badb2b7ce7 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-tech-insights +## 0.3.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-tech-insights-common@0.2.9 + +## 0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + - @backstage/plugin-tech-insights-common@0.2.9 + ## 0.3.5 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 7d596c136e..d95c741089 100644 --- a/plugins/tech-insights/package.json +++ b/plugins/tech-insights/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-tech-insights", - "version": "0.3.4", + "version": "0.3.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md index e5fe9f2b64..07beea20ee 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-tech-radar +## 0.5.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/theme@0.2.16 + +## 0.5.21-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/theme@0.2.16 + ## 0.5.20 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index 916396c78c..ad4d2390e1 100644 --- a/plugins/tech-radar/package.json +++ b/plugins/tech-radar/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-tech-radar", "description": "A Backstage plugin that lets you display a Tech Radar for your organization", - "version": "0.5.19", + "version": "0.5.21-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/tech-radar/src/components/Radar/Radar.test.tsx b/plugins/tech-radar/src/components/Radar/Radar.test.tsx index 1b9e10ae5b..b76eb20a16 100644 --- a/plugins/tech-radar/src/components/Radar/Radar.test.tsx +++ b/plugins/tech-radar/src/components/Radar/Radar.test.tsx @@ -15,9 +15,7 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; +import { renderInTestApp } from '@backstage/test-utils'; import GetBBoxPolyfill from '../../utils/polyfills/getBBox'; import Radar, { Props } from './Radar'; @@ -48,12 +46,8 @@ describe('Radar', () => { GetBBoxPolyfill.remove(); }); - it('should render', () => { - const rendered = render( - - - , - ); + it('should render', async () => { + const rendered = await renderInTestApp(); const svg = rendered.container.querySelector('svg'); expect(svg).not.toBeNull(); diff --git a/plugins/tech-radar/src/components/RadarBubble/RadarBubble.test.tsx b/plugins/tech-radar/src/components/RadarBubble/RadarBubble.test.tsx index 9af1f5caff..ab8070c146 100644 --- a/plugins/tech-radar/src/components/RadarBubble/RadarBubble.test.tsx +++ b/plugins/tech-radar/src/components/RadarBubble/RadarBubble.test.tsx @@ -15,9 +15,7 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; +import { renderInTestApp } from '@backstage/test-utils'; import GetBBoxPolyfill from '../../utils/polyfills/getBBox'; import RadarBubble, { Props } from './RadarBubble'; @@ -38,13 +36,11 @@ describe('RadarBubble', () => { GetBBoxPolyfill.remove(); }); - it('should render', () => { - const rendered = render( - - - - - , + it('should render', async () => { + const rendered = await renderInTestApp( + + + , ); expect(rendered.getByText(minProps.text)).toBeInTheDocument(); diff --git a/plugins/tech-radar/src/components/RadarComponent.test.tsx b/plugins/tech-radar/src/components/RadarComponent.test.tsx index 3d3b1bfd17..4bb207a1de 100644 --- a/plugins/tech-radar/src/components/RadarComponent.test.tsx +++ b/plugins/tech-radar/src/components/RadarComponent.test.tsx @@ -15,10 +15,7 @@ */ import React from 'react'; -import { act, render, waitFor } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; -import { TestApiProvider, withLogCollector } from '@backstage/test-utils'; +import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; import GetBBoxPolyfill from '../utils/polyfills/getBBox'; import { RadarComponent } from './RadarComponent'; @@ -36,7 +33,9 @@ describe('RadarComponent', () => { }); class MockClient implements TechRadarApi { + constructor(private delay = 0) {} async load(): Promise { + await new Promise(resolve => setTimeout(resolve, this.delay)); return { entries: [], quadrants: [], @@ -45,87 +44,52 @@ describe('RadarComponent', () => { } } - const mockClient = new MockClient(); - it('should render a progress bar', async () => { jest.useFakeTimers(); - const errorApi = { post: () => {} }; - const { getByTestId, findByTestId } = render( - - - - - , + const { findByTestId } = await renderInTestApp( + + + , ); - act(() => { - jest.advanceTimersByTime(250); - }); - expect(getByTestId('progress')).toBeInTheDocument(); + jest.advanceTimersByTime(250); + await expect(findByTestId('progress')).resolves.toBeInTheDocument(); + + jest.advanceTimersByTime(250); + await expect(findByTestId('tech-radar-svg')).resolves.toBeInTheDocument(); - await findByTestId('tech-radar-svg'); jest.useRealTimers(); }); it('should call the errorApi if load fails', async () => { const errorApi = { post: jest.fn() }; + const mockClient = new MockClient(); jest .spyOn(mockClient, 'load') .mockRejectedValue(new Error('404 Page Not Found')); - const { queryByTestId } = render( - - - - - , + const { queryByTestId } = await renderInTestApp( + + + , ); - await waitFor(() => !queryByTestId('progress')); - expect(errorApi.post).toHaveBeenCalledTimes(1); expect(errorApi.post).toHaveBeenCalledWith(new Error('404 Page Not Found')); expect(queryByTestId('tech-radar-svg')).not.toBeInTheDocument(); }); - - it('should not render without errorApiRef', () => { - expect( - withLogCollector(['error'], () => { - expect(() => { - render( - - - - - , - ); - }).toThrow(); - }).error[0], - ).toMatchObject({ - detail: new Error('No implementation available for apiRef{core.error}'), - }); - }); }); diff --git a/plugins/tech-radar/src/components/RadarDescription/RadarDescription.test.tsx b/plugins/tech-radar/src/components/RadarDescription/RadarDescription.test.tsx index 7249b9f194..7f2dcbe6ac 100644 --- a/plugins/tech-radar/src/components/RadarDescription/RadarDescription.test.tsx +++ b/plugins/tech-radar/src/components/RadarDescription/RadarDescription.test.tsx @@ -15,11 +15,10 @@ */ import React from 'react'; -import { render, screen } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; +import { screen } from '@testing-library/react'; import { Props, RadarDescription } from './RadarDescription'; +import { renderInTestApp } from '@backstage/test-utils'; const minProps: Props = { open: true, @@ -29,12 +28,8 @@ const minProps: Props = { }; describe('RadarDescription', () => { - it('should render', () => { - render( - - - , - ); + it('should render', async () => { + await renderInTestApp(); const radarDescription = screen.getByTestId('radar-description'); expect(radarDescription).toBeInTheDocument(); diff --git a/plugins/tech-radar/src/components/RadarEntry/RadarEntry.test.tsx b/plugins/tech-radar/src/components/RadarEntry/RadarEntry.test.tsx index b1e468899d..36f304330d 100644 --- a/plugins/tech-radar/src/components/RadarEntry/RadarEntry.test.tsx +++ b/plugins/tech-radar/src/components/RadarEntry/RadarEntry.test.tsx @@ -15,10 +15,9 @@ */ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { screen } from '@testing-library/react'; +import { renderInTestApp } from '@backstage/test-utils'; import userEvent from '@testing-library/user-event'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; import GetBBoxPolyfill from '../../utils/polyfills/getBBox'; import RadarEntry, { Props } from './RadarEntry'; @@ -45,13 +44,11 @@ describe('RadarEntry', () => { GetBBoxPolyfill.remove(); }); - it('should render link only', () => { - render( - - - - - , + it('should render link only', async () => { + await renderInTestApp( + + + , ); const radarEntry = screen.getByTestId('radar-entry'); @@ -62,12 +59,10 @@ describe('RadarEntry', () => { }); it('should render with description', async () => { - render( - - - - - , + await renderInTestApp( + + + , ); await userEvent.click(screen.getByRole('button')); @@ -80,17 +75,15 @@ describe('RadarEntry', () => { expect(screen.getByText(String(minProps.value))).toBeInTheDocument(); }); - it('should render blip with url equal to # if description present', () => { + it('should render blip with url equal to # if description present', async () => { const withUrl = { ...optionalProps, url: 'http://backstage.io', }; - render( - - - - - , + await renderInTestApp( + + + , ); expect(screen.getByRole('button')).toHaveAttribute('href', '#'); diff --git a/plugins/tech-radar/src/components/RadarFooter/RadarFooter.test.tsx b/plugins/tech-radar/src/components/RadarFooter/RadarFooter.test.tsx index b76405f2bf..df56e2ad2c 100644 --- a/plugins/tech-radar/src/components/RadarFooter/RadarFooter.test.tsx +++ b/plugins/tech-radar/src/components/RadarFooter/RadarFooter.test.tsx @@ -15,9 +15,7 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; +import { renderInTestApp } from '@backstage/test-utils'; import GetBBoxPolyfill from '../../utils/polyfills/getBBox'; import RadarFooter, { Props } from './RadarFooter'; @@ -36,13 +34,11 @@ describe('RadarFooter', () => { GetBBoxPolyfill.remove(); }); - it('should render', () => { - const rendered = render( - - - - - , + it('should render', async () => { + const rendered = await renderInTestApp( + + + , ); const radarFooter = rendered.getByTestId('radar-footer'); const { x, y } = minProps; diff --git a/plugins/tech-radar/src/components/RadarGrid/RadarGrid.test.tsx b/plugins/tech-radar/src/components/RadarGrid/RadarGrid.test.tsx index d5636d74b8..2e0a5a225c 100644 --- a/plugins/tech-radar/src/components/RadarGrid/RadarGrid.test.tsx +++ b/plugins/tech-radar/src/components/RadarGrid/RadarGrid.test.tsx @@ -15,9 +15,7 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; +import { renderInTestApp } from '@backstage/test-utils'; import GetBBoxPolyfill from '../../utils/polyfills/getBBox'; import RadarGrid, { Props } from './RadarGrid'; @@ -36,13 +34,11 @@ describe('RadarGrid', () => { GetBBoxPolyfill.remove(); }); - it('should render', () => { - const rendered = render( - - - - - , + it('should render', async () => { + const rendered = await renderInTestApp( + + + , ); expect(rendered.getByTestId('radar-grid-x-line')).toBeInTheDocument(); diff --git a/plugins/tech-radar/src/components/RadarLegend/RadarLegend.test.tsx b/plugins/tech-radar/src/components/RadarLegend/RadarLegend.test.tsx index e0b5f09a63..de8bfd15d7 100644 --- a/plugins/tech-radar/src/components/RadarLegend/RadarLegend.test.tsx +++ b/plugins/tech-radar/src/components/RadarLegend/RadarLegend.test.tsx @@ -14,9 +14,7 @@ * limitations under the License. */ -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; -import { render } from '@testing-library/react'; +import { renderInTestApp } from '@backstage/test-utils'; import React from 'react'; import GetBBoxPolyfill from '../../utils/polyfills/getBBox'; @@ -47,13 +45,11 @@ describe('RadarLegend', () => { GetBBoxPolyfill.remove(); }); - it('should render', () => { - const rendered = render( - - - - - , + it('should render', async () => { + const rendered = await renderInTestApp( + + + , ); expect(rendered.getByTestId('radar-legend')).toBeInTheDocument(); diff --git a/plugins/tech-radar/src/components/RadarPage.test.tsx b/plugins/tech-radar/src/components/RadarPage.test.tsx index f0c2a04590..b65d9b31b2 100644 --- a/plugins/tech-radar/src/components/RadarPage.test.tsx +++ b/plugins/tech-radar/src/components/RadarPage.test.tsx @@ -20,8 +20,6 @@ import { TestApiProvider, wrapInTestApp, } from '@backstage/test-utils'; -import { lightTheme } from '@backstage/theme'; -import { ThemeProvider } from '@material-ui/core'; import { act, render, waitFor } from '@testing-library/react'; import React from 'react'; import GetBBoxPolyfill from '../utils/polyfills/getBBox'; @@ -61,11 +59,9 @@ describe('RadarPage', () => { const { getByTestId, findByTestId } = render( wrapInTestApp( - - - - - , + + + , ), ); @@ -87,11 +83,9 @@ describe('RadarPage', () => { jest.spyOn(mockClient, 'load'); const { getByText, findByTestId } = await renderInTestApp( - - - - - , + + + , ); await expect(findByTestId('tech-radar-svg')).resolves.toBeInTheDocument(); @@ -111,11 +105,9 @@ describe('RadarPage', () => { jest.spyOn(mockClient, 'load'); const { findByTestId } = await renderInTestApp( - - - - - , + + + , ); await expect(findByTestId('tech-radar-svg')).resolves.toBeInTheDocument(); @@ -136,16 +128,14 @@ describe('RadarPage', () => { }; const { queryByTestId } = await renderInTestApp( - - - - - , + + + , ); await waitFor(() => !queryByTestId('progress')); diff --git a/plugins/tech-radar/src/components/RadarPlot/RadarPlot.test.tsx b/plugins/tech-radar/src/components/RadarPlot/RadarPlot.test.tsx index fd03111b49..7557755ed2 100644 --- a/plugins/tech-radar/src/components/RadarPlot/RadarPlot.test.tsx +++ b/plugins/tech-radar/src/components/RadarPlot/RadarPlot.test.tsx @@ -15,9 +15,7 @@ */ import React from 'react'; -import { render } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; -import { lightTheme } from '@backstage/theme'; +import { renderInTestApp } from '@backstage/test-utils'; import GetBBoxPolyfill from '../../utils/polyfills/getBBox'; import RadarPlot, { Props } from './RadarPlot'; @@ -49,13 +47,11 @@ describe('RadarPlot', () => { GetBBoxPolyfill.remove(); }); - it('should render', () => { - const rendered = render( - - - - - , + it('should render', async () => { + const rendered = await renderInTestApp( + + + , ); expect(rendered.getByTestId('radar-plot')).toBeInTheDocument(); diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 4739e91191..073f99f0f7 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs@1.4.3-next.1 + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/test-utils@1.2.4-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.1 + - @backstage/plugin-search-react@1.3.2-next.1 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + +## 1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/plugin-techdocs@1.4.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/test-utils@1.2.3 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog@1.7.2-next.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 1.0.8 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 2edebb6c22..51f26acf0f 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.7", + "version": "1.0.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 2dc59b2968..c91c02c2a5 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-techdocs-backend +## 1.5.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/plugin-catalog-common@1.0.10-next.1 + - @backstage/plugin-permission-common@0.7.3-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-techdocs-node@1.4.4-next.1 + +## 1.5.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/plugin-catalog-common@1.0.10-next.0 + - @backstage/plugin-permission-common@0.7.2 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-techdocs-node@1.4.4-next.0 + ## 1.5.0 ### Minor Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 35679ed84d..09895802bc 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-backend", "description": "The Backstage backend plugin that renders technical documentation for your components", - "version": "1.5.0", + "version": "1.5.1-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-backend/src/service/standaloneServer.ts b/plugins/techdocs-backend/src/service/standaloneServer.ts index 5751a460bf..7e7e8b24f8 100644 --- a/plugins/techdocs-backend/src/service/standaloneServer.ts +++ b/plugins/techdocs-backend/src/service/standaloneServer.ts @@ -53,7 +53,6 @@ export async function startStandaloneServer( }); const discovery = SingleHostDiscovery.fromConfig(config); const mockUrlReader: jest.Mocked = { - read: jest.fn(), readUrl: jest.fn(), readTree: jest.fn(), search: jest.fn(), diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index 6b87304dae..1495631875 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.0.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + +## 1.0.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + ## 1.0.8 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 080f45d942..8ee95429d0 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", "description": "Plugin module for contributed TechDocs Addons", - "version": "1.0.7", + "version": "1.0.9-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index 16a4cc9ffb..65f515c174 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-techdocs-node +## 1.4.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-aws-node@0.1.1-next.0 + - @backstage/plugin-search-common@1.2.1-next.0 + +## 1.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-aws-node@0.1.0 + - @backstage/plugin-search-common@1.2.0 + ## 1.4.3 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 62a35c960c..b051884d31 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-node", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", - "version": "1.4.3", + "version": "1.4.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/techdocs-node/src/stages/prepare/dir.test.ts b/plugins/techdocs-node/src/stages/prepare/dir.test.ts index ddefb40f03..164cfde687 100644 --- a/plugins/techdocs-node/src/stages/prepare/dir.test.ts +++ b/plugins/techdocs-node/src/stages/prepare/dir.test.ts @@ -45,7 +45,6 @@ const createMockEntity = (annotations: {}) => { const mockConfig = new ConfigReader({}); const mockUrlReader: jest.Mocked = { - read: jest.fn(), readUrl: jest.fn(), readTree: jest.fn(), search: jest.fn(), diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 19e8527f9a..bd27504b4e 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-techdocs-react +## 1.1.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/version-bridge@1.0.3 + +## 1.1.2-next.0 + +### Patch Changes + +- 7115c7389b: Updated dependency `jss` to `~10.9.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/version-bridge@1.0.3 + ## 1.1.1 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 2f91a4af60..d3286cecab 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs-react", "description": "Shared frontend utilities for TechDocs and Addons", - "version": "1.1.0", + "version": "1.1.2-next.1", "publishConfig": { "access": "public", "alphaTypes": "dist/index.alpha.d.ts", @@ -42,7 +42,7 @@ "@material-ui/core": "^4.12.2", "@material-ui/lab": "4.0.0-alpha.57", "@material-ui/styles": "^4.11.0", - "jss": "~10.8.2", + "jss": "~10.9.0", "lodash": "^4.17.21", "react-helmet": "6.1.0", "react-use": "^17.2.4" diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index d83d5bd075..b106abd2a1 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,43 @@ # @backstage/plugin-techdocs +## 1.4.3-next.1 + +### Patch Changes + +- a74dd61534: Fix sizing of build log component to render all lines +- Updated dependencies + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + - @backstage/integration-react@1.1.9-next.1 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + - @backstage/plugin-search-common@1.2.1-next.0 + - @backstage/plugin-search-react@1.3.2-next.1 + - @backstage/plugin-techdocs-react@1.1.2-next.1 + +## 1.4.3-next.0 + +### Patch Changes + +- 7115c7389b: Updated dependency `jss` to `~10.9.0`. +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/plugin-techdocs-react@1.1.2-next.0 + - @backstage/config@1.0.5 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + - @backstage/integration-react@1.1.9-next.0 + - @backstage/theme@0.2.16 + - @backstage/plugin-search-common@1.2.0 + - @backstage/plugin-search-react@1.3.2-next.0 + ## 1.4.2 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 4da8b45b12..0d35685af9 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-techdocs", "description": "The Backstage plugin that renders technical documentation for your components", - "version": "1.4.1", + "version": "1.4.3-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -52,7 +52,7 @@ "dompurify": "^2.2.9", "event-source-polyfill": "1.0.25", "git-url-parse": "^13.0.0", - "jss": "~10.8.2", + "jss": "~10.9.0", "lodash": "^4.17.21", "react-helmet": "6.1.0", "react-use": "^17.2.4" diff --git a/plugins/techdocs/src/reader/components/TechDocsBuildLogs.tsx b/plugins/techdocs/src/reader/components/TechDocsBuildLogs.tsx index dc446a55d8..01e638e59c 100644 --- a/plugins/techdocs/src/reader/components/TechDocsBuildLogs.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsBuildLogs.tsx @@ -86,7 +86,9 @@ export const TechDocsBuildLogsDrawerContent = ({ - + + + ); }; diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPage/TechDocsReaderPage.test.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPage/TechDocsReaderPage.test.tsx index 808cb84ccf..4e8f331c7f 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPage/TechDocsReaderPage.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPage/TechDocsReaderPage.test.tsx @@ -15,10 +15,8 @@ */ import React from 'react'; import { act } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; import { scmIntegrationsApiRef } from '@backstage/integration-react'; -import { lightTheme } from '@backstage/theme'; import { entityRouteRef } from '@backstage/plugin-catalog-react'; import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; @@ -84,17 +82,15 @@ jest.mock('@backstage/core-components', () => ({ const Wrapper = ({ children }: { children: React.ReactNode }) => { return ( - - - {children} - - + + {children} + ); }; diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.test.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.test.tsx index 7db00f6590..3e5a4c73c3 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.test.tsx @@ -16,9 +16,6 @@ import React from 'react'; import { act, waitFor } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; - -import { lightTheme } from '@backstage/theme'; import { CompoundEntityRef } from '@backstage/catalog-model'; import { techdocsApiRef, @@ -79,13 +76,11 @@ const Wrapper = ({ entityRef?: CompoundEntityRef; children: React.ReactNode; }) => ( - - - - {children} - - - + + + {children} + + ); describe('', () => { diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.test.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.test.tsx index da193430d5..a3e03b7cf0 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.test.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.test.tsx @@ -16,9 +16,6 @@ import React from 'react'; import { act, waitFor } from '@testing-library/react'; -import { ThemeProvider } from '@material-ui/core'; - -import { lightTheme } from '@backstage/theme'; import { CompoundEntityRef } from '@backstage/catalog-model'; import { entityRouteRef } from '@backstage/plugin-catalog-react'; import { @@ -71,13 +68,11 @@ const Wrapper = ({ entityRef?: CompoundEntityRef; children: React.ReactNode; }) => ( - - - - {children} - - - + + + {children} + + ); describe('', () => { diff --git a/plugins/todo-backend/CHANGELOG.md b/plugins/todo-backend/CHANGELOG.md index b7851f68a3..49cd7b1980 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-todo-backend +## 0.1.37-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/catalog-client@1.3.0-next.1 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.2-next.0 + +## 0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/catalog-client@1.3.0-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + - @backstage/integration@1.4.1 + ## 0.1.36 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index d2b5f91db0..63119cd0ce 100644 --- a/plugins/todo-backend/package.json +++ b/plugins/todo-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo-backend", "description": "A Backstage backend plugin that lets you browse TODO comments in your source code", - "version": "0.1.36", + "version": "0.1.37-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/todo/CHANGELOG.md b/plugins/todo/CHANGELOG.md index 4cd17a216c..4b07ab925f 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-todo +## 0.2.16-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.15 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index 975907945f..2f5c0b6037 100644 --- a/plugins/todo/package.json +++ b/plugins/todo/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-todo", "description": "A Backstage plugin that lets you browse TODO comments in your source code", - "version": "0.2.14", + "version": "0.2.16-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md index 9ea1450606..b5eb7b42f7 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-user-settings-backend +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.18.0-next.0 + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.9-next.0 + +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/backend-common@0.17.0 + - @backstage/errors@1.1.4 + - @backstage/types@1.0.2 + - @backstage/plugin-auth-node@0.2.8 + ## 0.1.3 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index d3ff237132..de5afc1e46 100644 --- a/plugins/user-settings-backend/package.json +++ b/plugins/user-settings-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings-backend", "description": "The Backstage backend plugin to manage user settings", - "version": "0.1.3", + "version": "0.1.4-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index 4987fe8b13..663302d279 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-user-settings +## 0.6.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.3.1-next.0 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + +## 0.6.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-app-api@1.3.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/types@1.0.2 + ## 0.6.1 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index ecaef90fb6..fdfc6424d2 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-user-settings", "description": "A Backstage plugin that provides a settings page", - "version": "0.6.0", + "version": "0.6.2-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault-backend/CHANGELOG.md b/plugins/vault-backend/CHANGELOG.md index cee1579921..a664d321ab 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-vault-backend +## 0.2.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-test-utils@0.1.32-next.1 + - @backstage/backend-common@0.18.0-next.0 + - @backstage/config@1.0.6-next.0 + - @backstage/backend-tasks@0.4.1-next.0 + - @backstage/errors@1.1.4 + +## 0.2.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.17.0 + - @backstage/backend-tasks@0.4.0 + - @backstage/backend-test-utils@0.1.32-next.0 + - @backstage/config@1.0.5 + - @backstage/errors@1.1.4 + ## 0.2.5 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 0dfba1efcd..d64c8931d4 100644 --- a/plugins/vault-backend/package.json +++ b/plugins/vault-backend/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault-backend", "description": "A Backstage backend plugin that integrates towards Vault", - "version": "0.2.5", + "version": "0.2.6-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md index baab6ca848..c493be28fc 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-vault +## 0.1.8-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.1 + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + - @backstage/plugin-catalog-react@1.2.4-next.1 + +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.1.5-next.0 + - @backstage/plugin-catalog-react@1.2.4-next.0 + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.1.7 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index f08cc0701f..6169ebd768 100644 --- a/plugins/vault/package.json +++ b/plugins/vault/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-vault", "description": "A Backstage plugin that integrates towards Vault", - "version": "0.1.6", + "version": "0.1.8-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md index 48c727f1da..7d68b5344e 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-xcmetrics +## 0.2.34-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.1 + - @backstage/core-plugin-api@1.2.1-next.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + +## 0.2.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.12.3-next.0 + - @backstage/core-plugin-api@1.2.0 + - @backstage/errors@1.1.4 + - @backstage/theme@0.2.16 + ## 0.2.33 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 58ca732ec4..f16415e562 100644 --- a/plugins/xcmetrics/package.json +++ b/plugins/xcmetrics/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-xcmetrics", "description": "A Backstage plugin that shows XCode build metrics for your components", - "version": "0.2.32", + "version": "0.2.34-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/storybook/yarn.lock b/storybook/yarn.lock index 9c2eb64ca9..2d785e97be 100644 --- a/storybook/yarn.lock +++ b/storybook/yarn.lock @@ -2966,90 +2966,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-darwin-arm64@npm:1.3.23" +"@swc/core-darwin-arm64@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-darwin-arm64@npm:1.3.24" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-darwin-x64@npm:1.3.23" +"@swc/core-darwin-x64@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-darwin-x64@npm:1.3.24" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.23" +"@swc/core-linux-arm-gnueabihf@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.24" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.23" +"@swc/core-linux-arm64-gnu@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.24" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.23" +"@swc/core-linux-arm64-musl@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.24" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.23" +"@swc/core-linux-x64-gnu@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.24" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-x64-musl@npm:1.3.23" +"@swc/core-linux-x64-musl@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-x64-musl@npm:1.3.24" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.23" +"@swc/core-win32-arm64-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.24" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.23" +"@swc/core-win32-ia32-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.24" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.23" +"@swc/core-win32-x64-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.24" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.9": - version: 1.3.23 - resolution: "@swc/core@npm:1.3.23" + version: 1.3.24 + resolution: "@swc/core@npm:1.3.24" dependencies: - "@swc/core-darwin-arm64": 1.3.23 - "@swc/core-darwin-x64": 1.3.23 - "@swc/core-linux-arm-gnueabihf": 1.3.23 - "@swc/core-linux-arm64-gnu": 1.3.23 - "@swc/core-linux-arm64-musl": 1.3.23 - "@swc/core-linux-x64-gnu": 1.3.23 - "@swc/core-linux-x64-musl": 1.3.23 - "@swc/core-win32-arm64-msvc": 1.3.23 - "@swc/core-win32-ia32-msvc": 1.3.23 - "@swc/core-win32-x64-msvc": 1.3.23 + "@swc/core-darwin-arm64": 1.3.24 + "@swc/core-darwin-x64": 1.3.24 + "@swc/core-linux-arm-gnueabihf": 1.3.24 + "@swc/core-linux-arm64-gnu": 1.3.24 + "@swc/core-linux-arm64-musl": 1.3.24 + "@swc/core-linux-x64-gnu": 1.3.24 + "@swc/core-linux-x64-musl": 1.3.24 + "@swc/core-win32-arm64-msvc": 1.3.24 + "@swc/core-win32-ia32-msvc": 1.3.24 + "@swc/core-win32-x64-msvc": 1.3.24 dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -3073,7 +3073,7 @@ __metadata: optional: true bin: swcx: run_swcx.js - checksum: 2a92949c33f292a369f4a750a8a9759f88f6f399bc0beef54768fce3d1af5cf0c33a4c8f3c2478020ae95e99d99b7c17f301b79163cdbcdf533b91675f1d2e8d + checksum: a27b842be129b83c116f804e63deaa51dbd5d9b77d6260888d549f6408df1dd05aeef20046ceacc9fd7458e6afda6723545249bd77f77086b98bd9bf84738c19 languageName: node linkType: hard diff --git a/yarn.lock b/yarn.lock index b7e826b276..5dc2e699bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3392,6 +3392,7 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/backend-common@workspace:packages/backend-common" dependencies: + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/cli-common": "workspace:^" @@ -3543,6 +3544,17 @@ __metadata: languageName: unknown linkType: soft +"@backstage/catalog-client@npm:^1.2.0": + version: 1.2.0 + resolution: "@backstage/catalog-client@npm:1.2.0" + dependencies: + "@backstage/catalog-model": ^1.1.4 + "@backstage/errors": ^1.1.4 + cross-fetch: ^3.1.5 + checksum: 29c782f663d3dea622d92ac0e0051ff25dbe9160edadcc027ff1f08514412e2cd2332e3cd476d2c4c112e1bc82f89879182ad2230f8626d463fa2e9b9c33caa3 + 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" @@ -3555,7 +3567,22 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-model@^1.1.2, @backstage/catalog-model@^1.1.3, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": +"@backstage/catalog-model@npm:^1.1.2, @backstage/catalog-model@npm:^1.1.3, @backstage/catalog-model@npm:^1.1.4": + version: 1.1.4 + resolution: "@backstage/catalog-model@npm:1.1.4" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/errors": ^1.1.4 + "@backstage/types": ^1.0.2 + ajv: ^8.10.0 + json-schema: ^0.4.0 + lodash: ^4.17.21 + uuid: ^8.0.0 + checksum: 0676a837ec0899d97c7741e8d21c2938626364cbe237364bd701d47878881f0eb37fd886616e408c78f65008fe4dbd0423af0aa599d218a42f62ebf7cdacfe7a + languageName: node + linkType: hard + +"@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: @@ -3768,7 +3795,17 @@ __metadata: languageName: unknown linkType: soft -"@backstage/config@^1.0.3, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": +"@backstage/config@npm:^1.0.3, @backstage/config@npm:^1.0.5": + version: 1.0.5 + resolution: "@backstage/config@npm:1.0.5" + dependencies: + "@backstage/types": ^1.0.2 + lodash: ^4.17.21 + checksum: 87cef5d3de2c211d57b12d575c6fc81af98e64d3763be0b6d954e979ee9ec19a2f6fd963578b2152154b799622d3e7f45a132c928451008576d75aaaa63eb69c + languageName: node + linkType: hard + +"@backstage/config@workspace:^, @backstage/config@workspace:packages/config": version: 0.0.0-use.local resolution: "@backstage/config@workspace:packages/config" dependencies: @@ -3814,7 +3851,108 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@^0.12.0, @backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": +"@backstage/core-components@npm:^0.11.2": + version: 0.11.2 + resolution: "@backstage/core-components@npm:0.11.2" + dependencies: + "@backstage/config": ^1.0.3 + "@backstage/core-plugin-api": ^1.0.7 + "@backstage/errors": ^1.1.2 + "@backstage/theme": ^0.2.16 + "@backstage/version-bridge": ^1.0.1 + "@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.57 + "@react-hookz/web": ^15.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 + history: ^5.0.0 + immer: ^9.0.1 + lodash: ^4.17.21 + pluralize: ^8.0.0 + prop-types: ^15.7.2 + qs: ^6.9.4 + rc-progress: 3.4.0 + react-helmet: 6.1.0 + react-hook-form: ^7.12.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.6 + react-window: ^1.8.6 + remark-gfm: ^3.0.1 + zen-observable: ^0.8.15 + zod: ^3.11.6 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router: 6.0.0-beta.0 || ^6.3.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 510a0c2594a9aa820293d79fbaeee72bef9ac5e6161645d05e2c64b7176050386984befa07921391f9758bfbf07f96170662f7881e894fb0b0f2787378b19182 + languageName: node + linkType: hard + +"@backstage/core-components@npm:^0.12.0, @backstage/core-components@npm:^0.12.2": + version: 0.12.2 + resolution: "@backstage/core-components@npm:0.12.2" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/errors": ^1.1.4 + "@backstage/theme": ^0.2.16 + "@backstage/version-bridge": ^1.0.3 + "@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.57 + "@react-hookz/web": ^20.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 + history: ^5.0.0 + immer: ^9.0.1 + lodash: ^4.17.21 + pluralize: ^8.0.0 + prop-types: ^15.7.2 + qs: ^6.9.4 + rc-progress: 3.4.1 + react-helmet: 6.1.0 + react-hook-form: ^7.12.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.6 + react-window: ^1.8.6 + remark-gfm: ^3.0.1 + zen-observable: ^0.10.0 + zod: ~3.18.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-dom: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: fe8d6cf3350597653b1578f1bbbb3d9be70000e17a9c7ea9384f5f1b833794de580052dd7e589cc5b2d3bb80cfabe3dfd3b507f61c37f714822a16b3f8e968e4 + languageName: node + linkType: hard + +"@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: @@ -3885,58 +4023,25 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-components@npm:^0.11.2": - version: 0.11.2 - resolution: "@backstage/core-components@npm:0.11.2" +"@backstage/core-plugin-api@npm:^1.0.7, @backstage/core-plugin-api@npm:^1.1.0, @backstage/core-plugin-api@npm:^1.2.0": + version: 1.2.0 + resolution: "@backstage/core-plugin-api@npm:1.2.0" dependencies: - "@backstage/config": ^1.0.3 - "@backstage/core-plugin-api": ^1.0.7 - "@backstage/errors": ^1.1.2 - "@backstage/theme": ^0.2.16 - "@backstage/version-bridge": ^1.0.1 - "@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.57 - "@react-hookz/web": ^15.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 + "@backstage/config": ^1.0.5 + "@backstage/types": ^1.0.2 + "@backstage/version-bridge": ^1.0.3 history: ^5.0.0 - immer: ^9.0.1 - lodash: ^4.17.21 - pluralize: ^8.0.0 prop-types: ^15.7.2 - qs: ^6.9.4 - rc-progress: 3.4.0 - react-helmet: 6.1.0 - react-hook-form: ^7.12.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.6 - react-window: ^1.8.6 - remark-gfm: ^3.0.1 - zen-observable: ^0.8.15 - zod: ^3.11.6 + zen-observable: ^0.10.0 peerDependencies: "@types/react": ^16.13.1 || ^17.0.0 react: ^16.13.1 || ^17.0.0 - react-dom: ^16.13.1 || ^17.0.0 - react-router: 6.0.0-beta.0 || ^6.3.0 react-router-dom: 6.0.0-beta.0 || ^6.3.0 - checksum: 510a0c2594a9aa820293d79fbaeee72bef9ac5e6161645d05e2c64b7176050386984befa07921391f9758bfbf07f96170662f7881e894fb0b0f2787378b19182 + checksum: 6d768e4e7df34a3e993a504207c2b5ffd5d1edd0f4243d66b267e1d2a66d86e2640d93b5efed3571e0430e0d6c01d14d7e055521193a9d190df320cd9b731047 languageName: node linkType: hard -"@backstage/core-plugin-api@^1.0.7, @backstage/core-plugin-api@^1.1.0, @backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api": +"@backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api": version: 0.0.0-use.local resolution: "@backstage/core-plugin-api@workspace:packages/core-plugin-api" dependencies: @@ -4021,7 +4126,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/errors@^1.1.2, @backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": +"@backstage/errors@^1.1.2, @backstage/errors@^1.1.4, @backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": version: 0.0.0-use.local resolution: "@backstage/errors@workspace:packages/errors" dependencies: @@ -4051,7 +4156,26 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration-react@^1.1.6, @backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react": +"@backstage/integration-react@npm:^1.1.6": + version: 1.1.8 + resolution: "@backstage/integration-react@npm:1.1.8" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/integration": ^1.4.1 + "@backstage/theme": ^0.2.16 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.57 + react-use: ^17.2.4 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + checksum: b11f248b071efb28ccb88a40ab2acc2014ea88b1102f7947683c5d6a28a65d2f6c5daacf33e52fea17873a56c45e5a4f64dfd590d6fae2e17374470a4affd4cb + 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" dependencies: @@ -4078,6 +4202,22 @@ __metadata: languageName: unknown linkType: soft +"@backstage/integration@npm:^1.4.1": + version: 1.4.1 + resolution: "@backstage/integration@npm:1.4.1" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/errors": ^1.1.4 + "@octokit/auth-app": ^4.0.0 + "@octokit/rest": ^19.0.3 + cross-fetch: ^3.1.5 + git-url-parse: ^13.0.0 + lodash: ^4.17.21 + luxon: ^3.0.0 + checksum: 2ff495e4b933e33be40c147b3279d868a7a45f0000c8a608f38261f683a7d0c45a54528f1f84ce0d8f2a28bb79d176e88aba71f4335f274e4d5faf36d93b71b4 + languageName: node + linkType: hard + "@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": version: 0.0.0-use.local resolution: "@backstage/integration@workspace:packages/integration" @@ -4706,6 +4846,7 @@ __metadata: "@backstage/errors": "workspace:^" "@backstage/plugin-catalog": "workspace:^" "@backstage/plugin-catalog-react": "workspace:^" + "@backstage/theme": "workspace:^" "@date-io/luxon": 1.x "@material-ui/core": ^4.12.2 "@material-ui/icons": ^4.9.1 @@ -5129,7 +5270,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-common@^1.0.7, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": +"@backstage/plugin-catalog-common@npm:^1.0.7, @backstage/plugin-catalog-common@npm:^1.0.9": + version: 1.0.9 + resolution: "@backstage/plugin-catalog-common@npm:1.0.9" + dependencies: + "@backstage/catalog-model": ^1.1.4 + "@backstage/plugin-permission-common": ^0.7.2 + "@backstage/plugin-search-common": ^1.2.0 + checksum: 4697e105834ff4079172788925738ff915c3908a6a6609409bb4fb1f5652dd9dc609ad98ef66f889683d6da6c7e32b2349e20f917174fa9ee7a70b7741fbc1e7 + languageName: node + linkType: hard + +"@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: @@ -5257,7 +5409,41 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-react@^1.2.0, @backstage/plugin-catalog-react@^1.2.1, @backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": +"@backstage/plugin-catalog-react@npm:^1.2.0, @backstage/plugin-catalog-react@npm:^1.2.1, @backstage/plugin-catalog-react@npm:^1.2.3": + version: 1.2.3 + resolution: "@backstage/plugin-catalog-react@npm:1.2.3" + dependencies: + "@backstage/catalog-client": ^1.2.0 + "@backstage/catalog-model": ^1.1.4 + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/errors": ^1.1.4 + "@backstage/integration": ^1.4.1 + "@backstage/plugin-catalog-common": ^1.0.9 + "@backstage/plugin-permission-common": ^0.7.2 + "@backstage/plugin-permission-react": ^0.4.8 + "@backstage/theme": ^0.2.16 + "@backstage/types": ^1.0.2 + "@backstage/version-bridge": ^1.0.3 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.57 + classnames: ^2.2.6 + jwt-decode: ^3.1.0 + lodash: ^4.17.21 + qs: ^6.9.4 + react-use: ^17.2.4 + yaml: ^2.0.0 + zen-observable: ^0.10.0 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: c80084f6c96e7e1279294ec2e4544b14bd6ae4be53fc00d9bf52a6faeb3d766d593a44b88b8dd0544b08aae742655a08dfeae5f7a704ef7abf815b1b204ac83f + languageName: node + linkType: hard + +"@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: @@ -6311,7 +6497,31 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home@^0.4.27, @backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": +"@backstage/plugin-home@npm:^0.4.27, @backstage/plugin-home@npm:^0.4.29": + version: 0.4.29 + resolution: "@backstage/plugin-home@npm:0.4.29" + dependencies: + "@backstage/catalog-model": ^1.1.4 + "@backstage/config": ^1.0.5 + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/plugin-catalog-react": ^1.2.3 + "@backstage/plugin-stack-overflow": ^0.1.9 + "@backstage/theme": ^0.2.16 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.57 + lodash: ^4.17.21 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: e3b287455524df9c8c00fca397b0f2e7374285dc53539296de32086118c260e5ce04583f94c619b0d8f7a98d401f1c249e8ec40455b03de0a047d57aff14d637 + languageName: node + linkType: hard + +"@backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": version: 0.0.0-use.local resolution: "@backstage/plugin-home@workspace:plugins/home" dependencies: @@ -6846,6 +7056,20 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-permission-common@npm:^0.7.2": + version: 0.7.2 + resolution: "@backstage/plugin-permission-common@npm:0.7.2" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/errors": ^1.1.4 + "@backstage/types": ^1.0.2 + cross-fetch: ^3.1.5 + uuid: ^8.0.0 + zod: ~3.18.0 + checksum: a9247d57004fe5f811c60446a1db366cd7c7b7776bd8b9ee2e7da819e09fd1e24dd0c12f141cc2db2069c127096b2b85e8f406f6300354beca123a5816fa36e7 + languageName: node + linkType: hard + "@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" @@ -6883,6 +7107,24 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-permission-react@npm:^0.4.8": + version: 0.4.8 + resolution: "@backstage/plugin-permission-react@npm:0.4.8" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/plugin-permission-common": ^0.7.2 + cross-fetch: ^3.1.5 + react-use: ^17.2.4 + swr: ^1.1.2 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: f1ce98174e309327ff4e9de8f9a6f9aada3ab50edcb1774cfe03332f245f6fff4fc1c685fb0c0bb86baa38964e92a6332f705a6650c767a6f3951a034f036dfe + languageName: node + linkType: hard + "@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" @@ -7361,6 +7603,16 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-search-common@npm:^1.2.0": + version: 1.2.0 + resolution: "@backstage/plugin-search-common@npm:1.2.0" + dependencies: + "@backstage/plugin-permission-common": ^0.7.2 + "@backstage/types": ^1.0.2 + checksum: 8b8a4ecc3aad703049c1acf15ed132e609e9d09752eec42353568c446905db48ff18c885d8b2aaa5a505d41e070222d475239451b3b7c07c5146c567a57fe198 + languageName: node + linkType: hard + "@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" @@ -7371,6 +7623,30 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-search-react@npm:^1.3.1": + version: 1.3.1 + resolution: "@backstage/plugin-search-react@npm:1.3.1" + dependencies: + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/plugin-search-common": ^1.2.0 + "@backstage/theme": ^0.2.16 + "@backstage/types": ^1.0.2 + "@backstage/version-bridge": ^1.0.3 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": 4.0.0-alpha.57 + lodash: ^4.17.21 + qs: ^6.9.4 + react-use: ^17.3.2 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 41b27c0c8530903d45978950f5b6f81b72f9ffb94f6152f06892b12e9a158cb0a091addfcba81e2fcec5b8034017c3c414d920ef940d506ffc337be5d0fb3065 + languageName: node + linkType: hard + "@backstage/plugin-search-react@workspace:^, @backstage/plugin-search-react@workspace:plugins/search-react": version: 0.0.0-use.local resolution: "@backstage/plugin-search-react@workspace:plugins/search-react" @@ -7618,6 +7894,31 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-stack-overflow@npm:^0.1.9": + version: 0.1.9 + resolution: "@backstage/plugin-stack-overflow@npm:0.1.9" + dependencies: + "@backstage/config": ^1.0.5 + "@backstage/core-components": ^0.12.2 + "@backstage/core-plugin-api": ^1.2.0 + "@backstage/plugin-home": ^0.4.29 + "@backstage/plugin-search-common": ^1.2.0 + "@backstage/plugin-search-react": ^1.3.1 + "@backstage/theme": ^0.2.16 + "@material-ui/core": ^4.12.2 + "@material-ui/icons": ^4.9.1 + "@testing-library/jest-dom": ^5.10.1 + cross-fetch: ^3.1.5 + lodash: ^4.17.21 + qs: ^6.9.4 + react-use: ^17.2.4 + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 + react: ^16.13.1 || ^17.0.0 + checksum: a4de011cd288ad138bc077b0c99980b40700dea16a08f789a5baf43b8cb5ee21c4209c89a7ebfba8df0051036b0a0b79507c10a19060bd12e8e3b53c1cff4366 + languageName: node + linkType: hard + "@backstage/plugin-stack-overflow@workspace:^, @backstage/plugin-stack-overflow@workspace:plugins/stack-overflow": version: 0.0.0-use.local resolution: "@backstage/plugin-stack-overflow@workspace:plugins/stack-overflow" @@ -7955,7 +8256,7 @@ __metadata: "@testing-library/jest-dom": ^5.10.1 "@testing-library/react": ^12.1.3 "@testing-library/react-hooks": ^8.0.0 - jss: ~10.8.2 + jss: ~10.9.0 lodash: ^4.17.21 react-helmet: 6.1.0 react-use: ^17.2.4 @@ -8003,7 +8304,7 @@ __metadata: dompurify: ^2.2.9 event-source-polyfill: 1.0.25 git-url-parse: ^13.0.0 - jss: ~10.8.2 + jss: ~10.9.0 lodash: ^4.17.21 msw: ^0.49.0 react-helmet: 6.1.0 @@ -8294,7 +8595,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/types@^1.0.0, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": +"@backstage/types@^1.0.0, @backstage/types@^1.0.2, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@backstage/types@workspace:packages/types" dependencies: @@ -8305,7 +8606,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/version-bridge@^1.0.1, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": +"@backstage/version-bridge@^1.0.1, @backstage/version-bridge@^1.0.3, @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: @@ -8851,9 +9152,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/android-arm64@npm:0.16.10" +"@esbuild/android-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/android-arm64@npm:0.16.12" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -8865,65 +9166,65 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/android-arm@npm:0.16.10" +"@esbuild/android-arm@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/android-arm@npm:0.16.12" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/android-x64@npm:0.16.10" +"@esbuild/android-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/android-x64@npm:0.16.12" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/darwin-arm64@npm:0.16.10" +"@esbuild/darwin-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/darwin-arm64@npm:0.16.12" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/darwin-x64@npm:0.16.10" +"@esbuild/darwin-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/darwin-x64@npm:0.16.12" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/freebsd-arm64@npm:0.16.10" +"@esbuild/freebsd-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/freebsd-arm64@npm:0.16.12" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/freebsd-x64@npm:0.16.10" +"@esbuild/freebsd-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/freebsd-x64@npm:0.16.12" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-arm64@npm:0.16.10" +"@esbuild/linux-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-arm64@npm:0.16.12" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-arm@npm:0.16.10" +"@esbuild/linux-arm@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-arm@npm:0.16.12" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-ia32@npm:0.16.10" +"@esbuild/linux-ia32@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-ia32@npm:0.16.12" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -8935,93 +9236,93 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-loong64@npm:0.16.10" +"@esbuild/linux-loong64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-loong64@npm:0.16.12" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-mips64el@npm:0.16.10" +"@esbuild/linux-mips64el@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-mips64el@npm:0.16.12" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-ppc64@npm:0.16.10" +"@esbuild/linux-ppc64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-ppc64@npm:0.16.12" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-riscv64@npm:0.16.10" +"@esbuild/linux-riscv64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-riscv64@npm:0.16.12" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-s390x@npm:0.16.10" +"@esbuild/linux-s390x@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-s390x@npm:0.16.12" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/linux-x64@npm:0.16.10" +"@esbuild/linux-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/linux-x64@npm:0.16.12" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/netbsd-x64@npm:0.16.10" +"@esbuild/netbsd-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/netbsd-x64@npm:0.16.12" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/openbsd-x64@npm:0.16.10" +"@esbuild/openbsd-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/openbsd-x64@npm:0.16.12" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/sunos-x64@npm:0.16.10" +"@esbuild/sunos-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/sunos-x64@npm:0.16.12" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/win32-arm64@npm:0.16.10" +"@esbuild/win32-arm64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/win32-arm64@npm:0.16.12" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/win32-ia32@npm:0.16.10" +"@esbuild/win32-ia32@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/win32-ia32@npm:0.16.12" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.10": - version: 0.16.10 - resolution: "@esbuild/win32-x64@npm:0.16.10" +"@esbuild/win32-x64@npm:0.16.12": + version: 0.16.12 + resolution: "@esbuild/win32-x64@npm:0.16.12" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@eslint/eslintrc@npm:^1.4.0": - version: 1.4.0 - resolution: "@eslint/eslintrc@npm:1.4.0" +"@eslint/eslintrc@npm:^1.4.1": + version: 1.4.1 + resolution: "@eslint/eslintrc@npm:1.4.1" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -9032,7 +9333,7 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: 73e39c833deafde8d8706e6fa9b52b6d99927c094ead8e405ea4174e8197ec24aac9ba88ae38cc8ad32eaccf07b9c7fc5dc70761d1fba6da41a928691447305f + checksum: cd3e5a8683db604739938b1c1c8b77927dc04fce3e28e0c88e7f2cd4900b89466baf83dfbad76b2b9e4d2746abdd00dd3f9da544d3e311633d8693f327d04cd7 languageName: node linkType: hard @@ -9206,14 +9507,14 @@ __metadata: linkType: hard "@graphql-codegen/cli@npm:^2.3.1": - version: 2.16.1 - resolution: "@graphql-codegen/cli@npm:2.16.1" + version: 2.16.2 + resolution: "@graphql-codegen/cli@npm:2.16.2" dependencies: "@babel/generator": ^7.18.13 "@babel/template": ^7.18.10 "@babel/types": ^7.18.13 "@graphql-codegen/core": 2.6.8 - "@graphql-codegen/plugin-helpers": ^3.1.1 + "@graphql-codegen/plugin-helpers": ^3.1.2 "@graphql-tools/apollo-engine-loader": ^7.3.6 "@graphql-tools/code-file-loader": ^7.3.13 "@graphql-tools/git-loader": ^7.2.13 @@ -9221,14 +9522,14 @@ __metadata: "@graphql-tools/graphql-file-loader": ^7.5.0 "@graphql-tools/json-file-loader": ^7.4.1 "@graphql-tools/load": 7.8.0 - "@graphql-tools/prisma-loader": ^7.2.7 + "@graphql-tools/prisma-loader": ^7.2.49 "@graphql-tools/url-loader": ^7.13.2 - "@graphql-tools/utils": ^8.9.0 + "@graphql-tools/utils": ^9.0.0 "@whatwg-node/fetch": ^0.5.0 chalk: ^4.1.0 chokidar: ^3.5.2 cosmiconfig: ^7.0.0 - cosmiconfig-typescript-loader: 4.1.1 + cosmiconfig-typescript-loader: 4.3.0 debounce: ^1.2.0 detect-indent: ^6.0.0 graphql-config: 4.3.6 @@ -9250,7 +9551,7 @@ __metadata: graphql-code-generator: cjs/bin.js graphql-codegen: cjs/bin.js graphql-codegen-esm: esm/bin.js - checksum: 5b8adecc90af4594b6819d97173acbcb0edbd2dd3b35981dd0ef79bda722c91e4e3c581fffa68396640a9f09097f3e826fd2cf16dc1718a95ef180f934376df8 + checksum: b44a89ba8c536adccc4fe23446df593b3e5a33d7cefb1602c61a714288e0a8d69cd69fcf8543a59edd6023d8cb0e9ab87fe64e418c2ffb5c45d0e57e17ded06a languageName: node linkType: hard @@ -9269,26 +9570,26 @@ __metadata: linkType: hard "@graphql-codegen/graphql-modules-preset@npm:^2.3.2": - version: 2.5.9 - resolution: "@graphql-codegen/graphql-modules-preset@npm:2.5.9" + version: 2.5.10 + resolution: "@graphql-codegen/graphql-modules-preset@npm:2.5.10" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 - "@graphql-codegen/visitor-plugin-common": 2.13.5 - "@graphql-tools/utils": ^8.8.0 + "@graphql-codegen/plugin-helpers": ^3.1.2 + "@graphql-codegen/visitor-plugin-common": 2.13.6 + "@graphql-tools/utils": ^9.0.0 change-case-all: 1.0.15 parse-filepath: ^1.0.2 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 8b192ac413b2a182a3a008c69af69ea63e548e4ba0015f193880a70f6eec8eff6f8a263a56cefe13e140e6b19238e8e2f9fbf6420adceece8c5320ce9240fd8d + checksum: 559b8cc0c837394d0c972d72656e8ea48c04c542885d55fc66471f6fa968cc314f6f6f57576685c0ea0d8072f3f5752ab98ef758b3406bee1915c06e74093c4b languageName: node linkType: hard -"@graphql-codegen/plugin-helpers@npm:^3.1.1": - version: 3.1.1 - resolution: "@graphql-codegen/plugin-helpers@npm:3.1.1" +"@graphql-codegen/plugin-helpers@npm:^3.1.1, @graphql-codegen/plugin-helpers@npm:^3.1.2": + version: 3.1.2 + resolution: "@graphql-codegen/plugin-helpers@npm:3.1.2" dependencies: - "@graphql-tools/utils": ^8.8.0 + "@graphql-tools/utils": ^9.0.0 change-case-all: 1.0.15 common-tags: 1.8.2 import-from: 4.0.0 @@ -9296,62 +9597,62 @@ __metadata: tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 22a15d4638ad449f654dab7a1e4968a82a50e3ab38f3b0974ae767a0a80e251fece436933f575f158da67564331d6046223b83eb10e0f1b93e78a15d7d0f684e + checksum: 4d0c615738570681b5ffd3c07305a35d6aa3e5fd87c9199c0a670b95529ab865b1df978ce584d5b415107a567ac484e56a48db129a6d1d2eb8a254fbd3260e39 languageName: node linkType: hard -"@graphql-codegen/schema-ast@npm:^2.6.0": - version: 2.6.0 - resolution: "@graphql-codegen/schema-ast@npm:2.6.0" +"@graphql-codegen/schema-ast@npm:^2.6.1": + version: 2.6.1 + resolution: "@graphql-codegen/schema-ast@npm:2.6.1" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 - "@graphql-tools/utils": ^8.8.0 + "@graphql-codegen/plugin-helpers": ^3.1.2 + "@graphql-tools/utils": ^9.0.0 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: a32e22fdd5cdab743ed7920249de6b00cbca0742633cfdbfed330c04c397bf1e0179ab141303a70cf733b6db27e537a67c6b6b50e70fb1d0767fc8d8de7a129f + checksum: f44338ac66e6a1f6238c33cdf65778bb467fe5a93767988135cb4e112d3be4d3c7e8aeeffe323754e8d6b0cbc5a52cb71452bfc42a15bc7031ebaa9b3d5da676 languageName: node linkType: hard "@graphql-codegen/typescript-resolvers@npm:^2.4.3": - version: 2.7.10 - resolution: "@graphql-codegen/typescript-resolvers@npm:2.7.10" + version: 2.7.11 + resolution: "@graphql-codegen/typescript-resolvers@npm:2.7.11" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 - "@graphql-codegen/typescript": ^2.8.5 - "@graphql-codegen/visitor-plugin-common": 2.13.5 - "@graphql-tools/utils": ^8.8.0 + "@graphql-codegen/plugin-helpers": ^3.1.2 + "@graphql-codegen/typescript": ^2.8.6 + "@graphql-codegen/visitor-plugin-common": 2.13.6 + "@graphql-tools/utils": ^9.0.0 auto-bind: ~4.0.0 tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 42ade297e6bd75056d2576d8d59b59725a35a4c929613d1764887466dea8c3669c0e5a334b14727b66b49bc605ba340910ca07d6d95bab9a8359b2e475209894 + checksum: 0954d98f88814dd545cb50cf93d6a6d8616ff6bb999570bd965c177e665a4ff4ed33cf68576c932fd8d630ee0bbcd6888e41801f751f5386286046608167d8ce languageName: node linkType: hard -"@graphql-codegen/typescript@npm:^2.4.2, @graphql-codegen/typescript@npm:^2.8.5": - version: 2.8.5 - resolution: "@graphql-codegen/typescript@npm:2.8.5" +"@graphql-codegen/typescript@npm:^2.4.2, @graphql-codegen/typescript@npm:^2.8.6": + version: 2.8.6 + resolution: "@graphql-codegen/typescript@npm:2.8.6" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 - "@graphql-codegen/schema-ast": ^2.6.0 - "@graphql-codegen/visitor-plugin-common": 2.13.5 + "@graphql-codegen/plugin-helpers": ^3.1.2 + "@graphql-codegen/schema-ast": ^2.6.1 + "@graphql-codegen/visitor-plugin-common": 2.13.6 auto-bind: ~4.0.0 tslib: ~2.4.0 peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: dd13cd82f202e82591262fd515b4cfd6a9d270b1d9447240ed75f0b374565e0c4a13297724bc94df5a7ad1a400cf63f83c439af9155fd95386d813481845bd01 + checksum: 15f75f1cfea8d632d05a0836cfe657f580d7a49bfafe9b8a143b32f71985b09773dbc45e1e09010654789ea4dba15952767bc3dc412bda16b90eb57a3657f328 languageName: node linkType: hard -"@graphql-codegen/visitor-plugin-common@npm:2.13.5": - version: 2.13.5 - resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.5" +"@graphql-codegen/visitor-plugin-common@npm:2.13.6": + version: 2.13.6 + resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.6" dependencies: - "@graphql-codegen/plugin-helpers": ^3.1.1 + "@graphql-codegen/plugin-helpers": ^3.1.2 "@graphql-tools/optimize": ^1.3.0 "@graphql-tools/relay-operation-optimizer": ^6.5.0 - "@graphql-tools/utils": ^8.8.0 + "@graphql-tools/utils": ^9.0.0 auto-bind: ~4.0.0 change-case-all: 1.0.15 dependency-graph: ^0.11.0 @@ -9360,7 +9661,7 @@ __metadata: tslib: ~2.4.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 130c82c63d647b5af55ce9e463765228e7aebc9c50a3670590c7bb409c997e8fabd10987d63f175a51ad3e3847d18c59ac3af6dc620d529b7e974dd80f15118e + checksum: 3e3bcbe6c7f3fa665b53f35016bce4385fd045ef54b1a986add0b86a14abec6c5b30201496b210ab493afe6bb89bed80f81d164efd643155621fd7bf7fbafec7 languageName: node linkType: hard @@ -9392,6 +9693,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/batch-execute@npm:8.5.14": + version: 8.5.14 + resolution: "@graphql-tools/batch-execute@npm:8.5.14" + dependencies: + "@graphql-tools/utils": 9.1.3 + dataloader: 2.1.0 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: a48a11f471fe804852abb60f361eb8e398e5fd9d3b8bc61e3734983a5c8c284f3087b903b5277a2c7e365434947af534a881e67c147b0a3d47849617e124ac33 + languageName: node + linkType: hard + "@graphql-tools/code-file-loader@npm:^7.3.13": version: 7.3.13 resolution: "@graphql-tools/code-file-loader@npm:7.3.13" @@ -9423,6 +9738,88 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/delegate@npm:9.0.21": + version: 9.0.21 + resolution: "@graphql-tools/delegate@npm:9.0.21" + dependencies: + "@graphql-tools/batch-execute": 8.5.14 + "@graphql-tools/executor": 0.0.11 + "@graphql-tools/schema": 9.0.12 + "@graphql-tools/utils": 9.1.3 + dataloader: 2.1.0 + tslib: ~2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fab07abfb06325d82382e6de45bbf2bc6501f18ebabbe50661772b58f512d6e713565be16bd7f99f71fcb00ffeed25bba871d4d459a705880803878e20c2a183 + languageName: node + linkType: hard + +"@graphql-tools/executor-graphql-ws@npm:0.0.5": + version: 0.0.5 + resolution: "@graphql-tools/executor-graphql-ws@npm:0.0.5" + dependencies: + "@graphql-tools/utils": 9.1.3 + "@repeaterjs/repeater": 3.0.4 + "@types/ws": ^8.0.0 + graphql-ws: 5.11.2 + isomorphic-ws: 5.0.0 + tslib: ^2.4.0 + ws: 8.11.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 79ced279e56b7508282859f805ca8fe1286eec3b53592893e35517f93e5204eca2db327258599749b0d832918d9d709962059087b4e6a894eacc16ceb0142273 + languageName: node + linkType: hard + +"@graphql-tools/executor-http@npm:0.0.7": + version: 0.0.7 + resolution: "@graphql-tools/executor-http@npm:0.0.7" + dependencies: + "@graphql-tools/utils": 9.1.3 + "@repeaterjs/repeater": 3.0.4 + "@whatwg-node/fetch": 0.5.3 + dset: 3.1.2 + extract-files: ^11.0.0 + meros: 1.2.1 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 05918ee65cb7d3e927e707acddb184ba2efbccf03656454ff8b172654aa41c4ad35bed487c0399ca085ba39ca434421cdaadb78dec4d7ebabbd25fe3c5cbb81c + languageName: node + linkType: hard + +"@graphql-tools/executor-legacy-ws@npm:0.0.5": + version: 0.0.5 + resolution: "@graphql-tools/executor-legacy-ws@npm:0.0.5" + dependencies: + "@graphql-tools/utils": 9.1.3 + "@types/ws": ^8.0.0 + isomorphic-ws: 5.0.0 + tslib: ^2.4.0 + ws: 8.11.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 2705e57ae81fbe3117d14900d50ab2459618d93192f795db97e2b98e9a772ebfe2308c17e72d92735123ec32fbedad014158d20fd1cc569fa287d47c90037a71 + languageName: node + linkType: hard + +"@graphql-tools/executor@npm:0.0.11": + version: 0.0.11 + resolution: "@graphql-tools/executor@npm:0.0.11" + dependencies: + "@graphql-tools/utils": 9.1.3 + "@graphql-typed-document-node/core": 3.1.1 + "@repeaterjs/repeater": 3.0.4 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 9f4c5d50eb574ab788a70684150502d4ad25b2681a3933a9415a0bbd78bfdf5ee203dca8bccc4cef93727157254216f0c22c5359bef1c1738f652b3122048b17 + languageName: node + linkType: hard + "@graphql-tools/git-loader@npm:^7.2.13": version: 7.2.13 resolution: "@graphql-tools/git-loader@npm:7.2.13" @@ -9599,32 +9996,32 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/prisma-loader@npm:^7.2.7": - version: 7.2.7 - resolution: "@graphql-tools/prisma-loader@npm:7.2.7" +"@graphql-tools/prisma-loader@npm:^7.2.49": + version: 7.2.49 + resolution: "@graphql-tools/prisma-loader@npm:7.2.49" dependencies: - "@graphql-tools/url-loader": 7.13.2 - "@graphql-tools/utils": 8.9.0 + "@graphql-tools/url-loader": 7.16.28 + "@graphql-tools/utils": 9.1.3 "@types/js-yaml": ^4.0.0 "@types/json-stable-stringify": ^1.0.32 "@types/jsonwebtoken": ^8.5.0 chalk: ^4.1.0 debug: ^4.3.1 dotenv: ^16.0.0 - graphql-request: ^4.0.0 + graphql-request: ^5.0.0 http-proxy-agent: ^5.0.0 https-proxy-agent: ^5.0.0 isomorphic-fetch: ^3.0.0 js-yaml: ^4.0.0 json-stable-stringify: ^1.0.1 - jsonwebtoken: ^8.5.1 + jsonwebtoken: ^9.0.0 lodash: ^4.17.20 scuid: ^1.1.0 tslib: ^2.4.0 yaml-ast-parser: ^0.0.43 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 986e33b1ec4044a26b31f8363ca0531d742e4ea67f9601ba150ec7ff6cc6fd1fb0d949057837ecf9fec6c3174a83689eb1fca6134462f368bc9d37546d4cde28 + checksum: 9a392346107ec5e468a8725c1d931b638e1899c25a80e34e9c888c050abf85dfde85faea9fdb19a8bfd9425bdb97949e14e759157d083aa91812fcff516ad82d languageName: node linkType: hard @@ -9669,6 +10066,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/schema@npm:9.0.12, @graphql-tools/schema@npm:^9.0.0": + version: 9.0.12 + resolution: "@graphql-tools/schema@npm:9.0.12" + dependencies: + "@graphql-tools/merge": 8.3.14 + "@graphql-tools/utils": 9.1.3 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: c5ea750466181b425dd77822b1dc774227bcdb3a01631f114734d450cfc2dabeac60b3fac40e047090d6035b6a559b614716f1b61068889cf5aae0785650c31b + languageName: node + linkType: hard + "@graphql-tools/schema@npm:9.0.4": version: 9.0.4 resolution: "@graphql-tools/schema@npm:9.0.4" @@ -9683,46 +10094,30 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/schema@npm:^9.0.0": - version: 9.0.12 - resolution: "@graphql-tools/schema@npm:9.0.12" - dependencies: - "@graphql-tools/merge": 8.3.14 - "@graphql-tools/utils": 9.1.3 - tslib: ^2.4.0 - value-or-promise: 1.0.11 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: c5ea750466181b425dd77822b1dc774227bcdb3a01631f114734d450cfc2dabeac60b3fac40e047090d6035b6a559b614716f1b61068889cf5aae0785650c31b - languageName: node - linkType: hard - -"@graphql-tools/url-loader@npm:7.13.2, @graphql-tools/url-loader@npm:^7.13.2, @graphql-tools/url-loader@npm:^7.9.7": - version: 7.13.2 - resolution: "@graphql-tools/url-loader@npm:7.13.2" +"@graphql-tools/url-loader@npm:7.16.28, @graphql-tools/url-loader@npm:^7.13.2, @graphql-tools/url-loader@npm:^7.9.7": + version: 7.16.28 + resolution: "@graphql-tools/url-loader@npm:7.16.28" dependencies: "@ardatan/sync-fetch": 0.0.1 - "@graphql-tools/delegate": 8.8.1 - "@graphql-tools/utils": 8.9.0 - "@graphql-tools/wrap": 8.5.1 - "@n1ru4l/graphql-live-query": ^0.9.0 + "@graphql-tools/delegate": 9.0.21 + "@graphql-tools/executor-graphql-ws": 0.0.5 + "@graphql-tools/executor-http": 0.0.7 + "@graphql-tools/executor-legacy-ws": 0.0.5 + "@graphql-tools/utils": 9.1.3 + "@graphql-tools/wrap": 9.2.23 "@types/ws": ^8.0.0 - "@whatwg-node/fetch": ^0.2.4 - dset: ^3.1.2 - extract-files: ^11.0.0 - graphql-ws: ^5.4.1 - isomorphic-ws: ^5.0.0 - meros: ^1.1.4 + "@whatwg-node/fetch": ^0.5.0 + isomorphic-ws: 5.0.0 tslib: ^2.4.0 value-or-promise: ^1.0.11 - ws: ^8.3.0 + ws: 8.11.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 21928a4a12ad07bed0c0729ec183277a1462da6b4a4fa8f083bf2fc7acb80137feb17f7fca283a58f2a8544f024bd5bcefc44c442f9cd58104656bb3f164c089 + checksum: fca2dada0d80c051358f928a321eda0cfa96bb71704b4feb7e61dfd7226f78fb1dd2e8268f4e81080a2984cf57ee92ef6c8608c89c6f931860a0cbdd63bcb031 languageName: node linkType: hard -"@graphql-tools/utils@npm:8.12.0, @graphql-tools/utils@npm:^8.6.5, @graphql-tools/utils@npm:^8.8.0, @graphql-tools/utils@npm:^8.9.0": +"@graphql-tools/utils@npm:8.12.0, @graphql-tools/utils@npm:^8.6.5": version: 8.12.0 resolution: "@graphql-tools/utils@npm:8.12.0" dependencies: @@ -9777,7 +10172,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/utils@npm:9.1.3, @graphql-tools/utils@npm:^9.1.1": +"@graphql-tools/utils@npm:9.1.3, @graphql-tools/utils@npm:^9.0.0, @graphql-tools/utils@npm:^9.1.1": version: 9.1.3 resolution: "@graphql-tools/utils@npm:9.1.3" dependencies: @@ -9788,7 +10183,22 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/wrap@npm:8.5.1, @graphql-tools/wrap@npm:^8.3.1": +"@graphql-tools/wrap@npm:9.2.23": + version: 9.2.23 + resolution: "@graphql-tools/wrap@npm:9.2.23" + dependencies: + "@graphql-tools/delegate": 9.0.21 + "@graphql-tools/schema": 9.0.12 + "@graphql-tools/utils": 9.1.3 + tslib: ^2.4.0 + value-or-promise: 1.0.11 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 8f4f289d51adb92a7099940892c52b710e61f76d02580a3223e80aaed790d32f769cae33a4afeff398357f33a55267427d9703de6f0bd30ec9ba57ee3bd5ef5c + languageName: node + linkType: hard + +"@graphql-tools/wrap@npm:^8.3.1": version: 8.5.1 resolution: "@graphql-tools/wrap@npm:8.5.1" dependencies: @@ -9803,7 +10213,7 @@ __metadata: languageName: node linkType: hard -"@graphql-typed-document-node/core@npm:^3.1.0": +"@graphql-typed-document-node/core@npm:3.1.1, @graphql-typed-document-node/core@npm:^3.1.0, @graphql-typed-document-node/core@npm:^3.1.1": version: 3.1.1 resolution: "@graphql-typed-document-node/core@npm:3.1.1" peerDependencies: @@ -11341,15 +11751,6 @@ __metadata: languageName: node linkType: hard -"@n1ru4l/graphql-live-query@npm:^0.9.0": - version: 0.9.0 - resolution: "@n1ru4l/graphql-live-query@npm:0.9.0" - peerDependencies: - graphql: ^15.4.0 || ^16.0.0 - checksum: 746c7a2b23440a2daee5737aece454c756bf9f3e77decd53feed921f88907743301b569209d124afde63271b3f9db59a1fb997c0c280205662a7622992057e4a - languageName: node - linkType: hard - "@n1ru4l/push-pull-async-iterable-iterator@npm:^3.1.0": version: 3.1.0 resolution: "@n1ru4l/push-pull-async-iterable-iterator@npm:3.1.0" @@ -12410,6 +12811,13 @@ __metadata: languageName: node linkType: hard +"@repeaterjs/repeater@npm:3.0.4": + version: 3.0.4 + resolution: "@repeaterjs/repeater@npm:3.0.4" + checksum: cca0db3e802bc26fcce0b4a574074d9956da53bf43094de03c0e4732d05e13441279a92f0b96e2a7a39da50933684947a138c1213406eaafe39cfd4683d6c0df + languageName: node + linkType: hard + "@rjsf/core-v5@npm:@rjsf/core@^5.0.0-beta.14": version: 5.0.0-beta.14 resolution: "@rjsf/core@npm:5.0.0-beta.14" @@ -12522,8 +12930,8 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-insights@npm:^2.0.5": - version: 2.2.2 - resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.2.2" + version: 2.3.0 + resolution: "@roadiehq/backstage-plugin-github-insights@npm:2.3.0" dependencies: "@backstage/catalog-model": ^1.1.3 "@backstage/core-components": ^0.12.0 @@ -12545,7 +12953,7 @@ __metadata: react: ^16.13.1 || ^17.0.0 react-dom: ^16.13.1 || ^17.0.0 react-router: 6.0.0-beta.0 || ^6.3.0 - checksum: 866d0ec0cb169855c6206e075bea16122450c9be533f4937e3c7f9869d9dc32cf9a770b42b1468078c37484cc3745dc785dcf39431c5a66d6f54573994f20a34 + checksum: 874fc76baf02ac6568f150aaf14ef4a35ddbffca410a44350c2cd4f47c900e28aa6d7d82ddfc0dd3065fc6764abd16af2a802d303f9af47ff296006cd14afe2a languageName: node linkType: hard @@ -13101,90 +13509,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-darwin-arm64@npm:1.3.23" +"@swc/core-darwin-arm64@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-darwin-arm64@npm:1.3.24" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-darwin-x64@npm:1.3.23" +"@swc/core-darwin-x64@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-darwin-x64@npm:1.3.24" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.23" +"@swc/core-linux-arm-gnueabihf@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.24" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.23" +"@swc/core-linux-arm64-gnu@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.24" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.23" +"@swc/core-linux-arm64-musl@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.24" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.23" +"@swc/core-linux-x64-gnu@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.24" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-linux-x64-musl@npm:1.3.23" +"@swc/core-linux-x64-musl@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-linux-x64-musl@npm:1.3.24" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.23" +"@swc/core-win32-arm64-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.24" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.23" +"@swc/core-win32-ia32-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.24" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.23": - version: 1.3.23 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.23" +"@swc/core-win32-x64-msvc@npm:1.3.24": + version: 1.3.24 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.24" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.9": - version: 1.3.23 - resolution: "@swc/core@npm:1.3.23" + version: 1.3.24 + resolution: "@swc/core@npm:1.3.24" dependencies: - "@swc/core-darwin-arm64": 1.3.23 - "@swc/core-darwin-x64": 1.3.23 - "@swc/core-linux-arm-gnueabihf": 1.3.23 - "@swc/core-linux-arm64-gnu": 1.3.23 - "@swc/core-linux-arm64-musl": 1.3.23 - "@swc/core-linux-x64-gnu": 1.3.23 - "@swc/core-linux-x64-musl": 1.3.23 - "@swc/core-win32-arm64-msvc": 1.3.23 - "@swc/core-win32-ia32-msvc": 1.3.23 - "@swc/core-win32-x64-msvc": 1.3.23 + "@swc/core-darwin-arm64": 1.3.24 + "@swc/core-darwin-x64": 1.3.24 + "@swc/core-linux-arm-gnueabihf": 1.3.24 + "@swc/core-linux-arm64-gnu": 1.3.24 + "@swc/core-linux-arm64-musl": 1.3.24 + "@swc/core-linux-x64-gnu": 1.3.24 + "@swc/core-linux-x64-musl": 1.3.24 + "@swc/core-win32-arm64-msvc": 1.3.24 + "@swc/core-win32-ia32-msvc": 1.3.24 + "@swc/core-win32-x64-msvc": 1.3.24 dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -13208,7 +13616,7 @@ __metadata: optional: true bin: swcx: run_swcx.js - checksum: 2a92949c33f292a369f4a750a8a9759f88f6f399bc0beef54768fce3d1af5cf0c33a4c8f3c2478020ae95e99d99b7c17f301b79163cdbcdf533b91675f1d2e8d + checksum: a27b842be129b83c116f804e63deaa51dbd5d9b77d6260888d549f6408df1dd05aeef20046ceacc9fd7458e6afda6723545249bd77f77086b98bd9bf84738c19 languageName: node linkType: hard @@ -13635,11 +14043,11 @@ __metadata: linkType: hard "@types/codemirror@npm:^5.0.0": - version: 5.60.5 - resolution: "@types/codemirror@npm:5.60.5" + version: 5.60.6 + resolution: "@types/codemirror@npm:5.60.6" dependencies: "@types/tern": "*" - checksum: 423b6378b6415b626d9f54d37d69477f96940b30a695d4ec36402feb59a96f7ab42d1c17b8472fbb222a0966f6061deee234e37bcd3e34c75836e989dc95929d + checksum: 10b8c2a689f9ed610b0048d9d5ded1a7eb90c45014156b84b41c4f52f4720172414f7172d56f13c8a0b35d429704fb9d240414cf205776c807caa39105b33481 languageName: node linkType: hard @@ -13792,9 +14200,9 @@ __metadata: linkType: hard "@types/d3-force@npm:^3.0.0": - version: 3.0.3 - resolution: "@types/d3-force@npm:3.0.3" - checksum: 1082a07c028b454fccbb250381e1388818606faff0a7b81d80bc4ab53c5f86f2618fcbb12226402880476d96be9bb24c6c38f175c5e697e94ea4cf8af389be6c + version: 3.0.4 + resolution: "@types/d3-force@npm:3.0.4" + checksum: 779fb597fb41e7bc6a5e1b8969d500deb95c4a73428c7c268bf0ca6f3ed668dd2ed6aa652de7af14d2f9c192dad4f6e7badf2c5bc330624bd8405ac88440b278 languageName: node linkType: hard @@ -13847,9 +14255,9 @@ __metadata: linkType: hard "@types/d3-selection@npm:*, @types/d3-selection@npm:^3.0.1": - version: 3.0.3 - resolution: "@types/d3-selection@npm:3.0.3" - checksum: 24d4ac0b8f76bfdf5d3d90e6724ff7703057375ba482d2924f8d959e5481eaab55e0e39b5ca68a6d4e99bce100561333dee4146f497c9fc3605f1a308a7e713c + version: 3.0.4 + resolution: "@types/d3-selection@npm:3.0.4" + checksum: b1e486db7f020610c854996a96b2f59a43b89d48bc7ac2ef9479f6f6e6324d3b21d7dfc8031a0b6d049a84b769b14eca65d73fc42613ab0044ef67973a9fe6ca languageName: node linkType: hard @@ -13872,11 +14280,11 @@ __metadata: linkType: hard "@types/d3-shape@npm:^3.0.1": - version: 3.1.0 - resolution: "@types/d3-shape@npm:3.1.0" + version: 3.1.1 + resolution: "@types/d3-shape@npm:3.1.1" dependencies: "@types/d3-path": "*" - checksum: 19d43b9762cbff503806d014be1b8a5d22dd12c71635f1f0b30696d3b3b31528b978175afe2ba183542fd16e4fc740f56e7a84100ead00f7d95eaeb890ac8b78 + checksum: 8f1762ecdeb4833a3802be1c65363cbc7cca753d0b836a3855fde4ba12f8e6fc142dba3c5f6d669a9e89374cc6dc414464e4f2d04e72fafd4bc64819ce30bb63 languageName: node linkType: hard @@ -13888,12 +14296,12 @@ __metadata: linkType: hard "@types/d3-zoom@npm:^3.0.1": - version: 3.0.1 - resolution: "@types/d3-zoom@npm:3.0.1" + version: 3.0.2 + resolution: "@types/d3-zoom@npm:3.0.2" dependencies: "@types/d3-interpolate": "*" "@types/d3-selection": "*" - checksum: f813b3e6f27efc8508d6a2d575c21d0b1ba338160e498b901bc103d813c47ce609f691912a4ef73e9678cdbbdebbee81fecaf7432f777e9a8a54bf4087c21eba + checksum: c55b18ec5d5108c265d3e19299f51469e48d215f179a665f5797ac18bf8458dcbefd0c682154f8d8eb9d297a7486a5853115f72444af9cd02b3b4b5d1e4f9b22 languageName: node linkType: hard @@ -14004,7 +14412,18 @@ __metadata: languageName: node linkType: hard -"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:4.17.31, @types/express-serve-static-core@npm:^4.17.18, @types/express-serve-static-core@npm:^4.17.5": +"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.18, @types/express-serve-static-core@npm:^4.17.5": + version: 4.17.32 + resolution: "@types/express-serve-static-core@npm:4.17.32" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + checksum: 70ec1b8f386628850b315a7b9fd4240a5a70297b41ef1c39af65c8b9661d2c775cfff4686b491fd90e5b6eef43088af203700c5541aec0d063db0c6cbeff254c + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:4.17.31": version: 4.17.31 resolution: "@types/express-serve-static-core@npm:4.17.31" dependencies: @@ -14240,12 +14659,12 @@ __metadata: linkType: hard "@types/jest@npm:*, @types/jest@npm:^29.0.0": - version: 29.2.4 - resolution: "@types/jest@npm:29.2.4" + version: 29.2.5 + resolution: "@types/jest@npm:29.2.5" dependencies: expect: ^29.0.0 pretty-format: ^29.0.0 - checksum: 9deb4756fe1b438d41ff1aae7d6c216c9e49e5fe60f539f8edb6698ffeb530ff7b25d37e223439b03602ca3a7397c9c2e53e1a39c7bd616353472fce0cc04107 + checksum: d668470f00ec4cb8b8457f1fd90f7358fad8f22d74b85006dad6be522d6b9bf10f49f597e88d1d1a518d211c1b65be32a1f27f0e49ce0658d110a9206b8ea310 languageName: node linkType: hard @@ -14260,11 +14679,11 @@ __metadata: linkType: hard "@types/jquery@npm:^3.3.34": - version: 3.5.14 - resolution: "@types/jquery@npm:3.5.14" + version: 3.5.16 + resolution: "@types/jquery@npm:3.5.16" dependencies: "@types/sizzle": "*" - checksum: 159d6f804ed1a204b3f79f2d591a271d82e866bd45bd49fb6ef40561a25dbe0f47ec7815681b44cc2db5598425f72811e7e80ab0e983d980470998ac56feb375 + checksum: 13c995f15d1c2f1d322103dc1cb0a22b95eecc3e7546f00279b8731aea21d7ec04550af40e609ee48e755d4e11bf61c25b4aa9f53df3bcbec4b8fe8e81471732 languageName: node linkType: hard @@ -14412,9 +14831,9 @@ __metadata: linkType: hard "@types/luxon@npm:*, @types/luxon@npm:^3.0.0": - version: 3.1.0 - resolution: "@types/luxon@npm:3.1.0" - checksum: 04768029342ad76fc2a9339436c143ea64797b35cf9b03ddded787c13eae30f0ca1246e51c2c5365ed912f98068e13a967a3931b137eb4585248a0ad7ec3fa86 + version: 3.2.0 + resolution: "@types/luxon@npm:3.2.0" + checksum: 051bfbf841c6ce98728df6538342ce4aaddfcf0ec6e8b473e0195dcfc3ba6b1fe4b3ce17f2ba6d25344f41cb70032c1debe96da9e384e5f6e639665c1e6d368c languageName: node linkType: hard @@ -14496,11 +14915,11 @@ __metadata: linkType: hard "@types/morgan@npm:^1.9.0": - version: 1.9.3 - resolution: "@types/morgan@npm:1.9.3" + version: 1.9.4 + resolution: "@types/morgan@npm:1.9.4" dependencies: "@types/node": "*" - checksum: 0b9bc8641ce03f7176f617523b8da300e5d47225b1667396749950ac7fdfa1f990447d490648fbaff050c2b0ef5fa60c3f2f00c6b76efec06fe5148de5020813 + checksum: d1e99c66a43501dcdf6e94e013dfff4e6c152cbb5f782d954bb722d230a9c1c0fe06fab6df3f3dfa3547735a7598f9471633cc6813d794e9562fd022e217c6ae languageName: node linkType: hard @@ -14541,9 +14960,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 18.11.9 - resolution: "@types/node@npm:18.11.9" - checksum: cc0aae109e9b7adefc32eecb838d6fad931663bb06484b5e9cbbbf74865c721b03d16fd8d74ad90e31dbe093d956a7c2c306ba5429ba0c00f3f7505103d7a496 + version: 18.11.18 + resolution: "@types/node@npm:18.11.18" + checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d languageName: node linkType: hard @@ -14583,9 +15002,9 @@ __metadata: linkType: hard "@types/node@npm:^16.0.0, @types/node@npm:^16.11.26, @types/node@npm:^16.9.2": - version: 16.18.3 - resolution: "@types/node@npm:16.18.3" - checksum: 6b8ba2ea5d842f7986e366cb9184c54d273d492784dc62e08fd5afeae938d9b61aec6e4222d2541cd18f9b1412ba361bbcb3f4204fb003608af80a2a6af959f9 + version: 16.18.11 + resolution: "@types/node@npm:16.18.11" + checksum: 2a3b1da13063debe6e26f732defb5f03ef4ef732c3e08daba838d8850433bd00e537ce1a97ce9bcfc4b15db5218d701d1265fae94e0d6926906bec157e6b46e0 languageName: node linkType: hard @@ -15323,12 +15742,12 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^5.9.0": - version: 5.45.1 - resolution: "@typescript-eslint/eslint-plugin@npm:5.45.1" + version: 5.48.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.48.0" dependencies: - "@typescript-eslint/scope-manager": 5.45.1 - "@typescript-eslint/type-utils": 5.45.1 - "@typescript-eslint/utils": 5.45.1 + "@typescript-eslint/scope-manager": 5.48.0 + "@typescript-eslint/type-utils": 5.48.0 + "@typescript-eslint/utils": 5.48.0 debug: ^4.3.4 ignore: ^5.2.0 natural-compare-lite: ^1.4.0 @@ -15341,7 +15760,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 9fc7cc17ebd1d6f9b1321afa3dcedb936ba538f95a026035a436c4b75eb976ac61140be44be304634c8f87612e30690ce12bf3498ac59826134387d91d75d888 + checksum: cb9cd62fd56670414795e30d30c9fa11ec7ad3a8b0abda48dd17625053a1c26ba1767184b096149bdd0ccb457bec6392306f22211b75f802f4b27366398d16eb languageName: node linkType: hard @@ -15362,29 +15781,29 @@ __metadata: linkType: hard "@typescript-eslint/parser@npm:^5.9.0": - version: 5.45.1 - resolution: "@typescript-eslint/parser@npm:5.45.1" + version: 5.48.0 + resolution: "@typescript-eslint/parser@npm:5.48.0" dependencies: - "@typescript-eslint/scope-manager": 5.45.1 - "@typescript-eslint/types": 5.45.1 - "@typescript-eslint/typescript-estree": 5.45.1 + "@typescript-eslint/scope-manager": 5.48.0 + "@typescript-eslint/types": 5.48.0 + "@typescript-eslint/typescript-estree": 5.48.0 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 48704224972e67d7ecf928118d47a1eda6732afd585bb4aab6716b7d363e5d4a2e0b0f1bbb92cbef80c7dd75ede10b610e858eb0cb86a67d1866fd17d0722895 + checksum: 41d5ce5c8742d286fb083523295a4f186e57bbe4e3da63b6b2de1edbafbcbf6d5225ed3405da2c56e2b0fe1d52bb72babc37508d2ee9b86f6fadad3c4a7950d0 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/scope-manager@npm:5.45.1" +"@typescript-eslint/scope-manager@npm:5.48.0": + version: 5.48.0 + resolution: "@typescript-eslint/scope-manager@npm:5.48.0" dependencies: - "@typescript-eslint/types": 5.45.1 - "@typescript-eslint/visitor-keys": 5.45.1 - checksum: ee0f47ad85e6d8649a5c25cc923933e439542079929e02a7eb20332e18291674af36b25ab579f7d067745ca27c2b37e5d9be605902269968e274d26c1d2b684e + "@typescript-eslint/types": 5.48.0 + "@typescript-eslint/visitor-keys": 5.48.0 + checksum: 96c0ce33d613490690ae6f34e4152f05dbddf3196a6dec89afba4a63cd2d828ae23a98262920b521fe461e7655d38f3a01e9e43588c12392a27bf8cb4f8ae201 languageName: node linkType: hard @@ -15398,12 +15817,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/type-utils@npm:5.45.1" +"@typescript-eslint/type-utils@npm:5.48.0": + version: 5.48.0 + resolution: "@typescript-eslint/type-utils@npm:5.48.0" dependencies: - "@typescript-eslint/typescript-estree": 5.45.1 - "@typescript-eslint/utils": 5.45.1 + "@typescript-eslint/typescript-estree": 5.48.0 + "@typescript-eslint/utils": 5.48.0 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -15411,14 +15830,14 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: dcb9f425803b399c340ab3d72c3f7e61f2a136d4281bd710853e954c1c101064ac0bb4b768c84c1ad310ec493cd8dc6b754054d9a81cb56be37ef1f4130c2c3a + checksum: 0d57e3bbcaa46e29b588b86b2271341b264f063e71ff5b6d4d35f50f2fe11bd6cdc3c4c95d78493fd17673ecdbd712992b84da1600947ed3bf6ae09de7b99464 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/types@npm:5.45.1" - checksum: 7f809d2951812ae5752c9d1617b7e6dfd662370390b0ddba72005ebc62bd5f04745567bb62cf00a9e43db9dfd222d18ea22945f5457f76ea86386ef7b98c8424 +"@typescript-eslint/types@npm:5.48.0": + version: 5.48.0 + resolution: "@typescript-eslint/types@npm:5.48.0" + checksum: fa27bd9ec7ec5f256b79a371bb05cfbc26902b6a395f38b0cff0e281633ebd76775ad18e41be1bb156868859287295f6833a2a671da57c6347ac7c6bc08a553b languageName: node linkType: hard @@ -15429,12 +15848,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/typescript-estree@npm:5.45.1" +"@typescript-eslint/typescript-estree@npm:5.48.0": + version: 5.48.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.48.0" dependencies: - "@typescript-eslint/types": 5.45.1 - "@typescript-eslint/visitor-keys": 5.45.1 + "@typescript-eslint/types": 5.48.0 + "@typescript-eslint/visitor-keys": 5.48.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -15443,7 +15862,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 867b19ba050af7410c75e4e42b511d4299c8043d238959e9794bb65d7a9db1a875880e5dd50f112896218f3a3d163cd8ce61db94034ca628eca4f7ddccb1d348 + checksum: 2444632243111e51bc83b56140514cb5978bef4d7151fede0dfcff8808afc1ad335b0c60ca86c2811bcc82273b87e59e2e0360bf1b8c014825ff818a1731d127 languageName: node linkType: hard @@ -15465,31 +15884,31 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.45.1, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.13.0": - version: 5.45.1 - resolution: "@typescript-eslint/utils@npm:5.45.1" +"@typescript-eslint/utils@npm:5.48.0, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.13.0": + version: 5.48.0 + resolution: "@typescript-eslint/utils@npm:5.48.0" dependencies: "@types/json-schema": ^7.0.9 "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.45.1 - "@typescript-eslint/types": 5.45.1 - "@typescript-eslint/typescript-estree": 5.45.1 + "@typescript-eslint/scope-manager": 5.48.0 + "@typescript-eslint/types": 5.48.0 + "@typescript-eslint/typescript-estree": 5.48.0 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 semver: ^7.3.7 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 7e673b07e207a0b596b23f60e6c2d4b04fd534bd15dc326ce67d7f61637ed2c211fe5a5ffdcf6b3fa3f39000fe61de0bf7d0c7feb03dcd3d72c382ae35287ad9 + checksum: 53f512ae61f72c2b29f2daf8adbc1f37c400cc71156557f69f0745b62c1265d99917a168245e2ee3d88ae458144818d1bf41ced4a764d7d9534b466b29d362fd languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.45.1": - version: 5.45.1 - resolution: "@typescript-eslint/visitor-keys@npm:5.45.1" +"@typescript-eslint/visitor-keys@npm:5.48.0": + version: 5.48.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.48.0" dependencies: - "@typescript-eslint/types": 5.45.1 + "@typescript-eslint/types": 5.48.0 eslint-visitor-keys: ^3.3.0 - checksum: 725a434fb05010b6ead7e880fa1fcdb4dbc7421b80667e96ad27fcfb3c2b2b0edde64be488740577dd147547fc4a9eac52e2602eb6a8a261ee14a917d4a50c4f + checksum: 8d41fb7c93b79df415b43c31da7c9007074d78ab6f16c2d318c23e7974b578ce510f466a9584bd67c526367666974091cb5cfbf6670d29e36fb4ab2e57137515 languageName: node linkType: hard @@ -15503,9 +15922,9 @@ __metadata: languageName: node linkType: hard -"@uiw/codemirror-extensions-basic-setup@npm:4.19.4": - version: 4.19.4 - resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.19.4" +"@uiw/codemirror-extensions-basic-setup@npm:4.19.5": + version: 4.19.5 + resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.19.5" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/commands": ^6.0.0 @@ -15522,19 +15941,19 @@ __metadata: "@codemirror/search": ">=6.0.0" "@codemirror/state": ">=6.0.0" "@codemirror/view": ">=6.0.0" - checksum: 041f6c67ad43a1991b2b5dea49bc907937b47de26f44d75de81c9937c9ac61193ed08e114b8dfacfa3de45fd05799d76cab0f529577671e61c04d52536287bb1 + checksum: adc49a56f592d34744c67eabdd878512a92387c8d10c6b4fa1cf947a8af1e5075308149d3bcc69778fa78a78f58a40e1b604615167b1374c917408cb50cfcccc languageName: node linkType: hard "@uiw/react-codemirror@npm:^4.9.3": - version: 4.19.4 - resolution: "@uiw/react-codemirror@npm:4.19.4" + version: 4.19.5 + resolution: "@uiw/react-codemirror@npm:4.19.5" dependencies: "@babel/runtime": ^7.18.6 "@codemirror/commands": ^6.1.0 "@codemirror/state": ^6.1.1 "@codemirror/theme-one-dark": ^6.0.0 - "@uiw/codemirror-extensions-basic-setup": 4.19.4 + "@uiw/codemirror-extensions-basic-setup": 4.19.5 codemirror: ^6.0.0 peerDependencies: "@babel/runtime": ">=7.11.0" @@ -15544,7 +15963,7 @@ __metadata: codemirror: ">=6.0.0" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 88f931ae71f42609db4ca81453d9d68774a57938c06827423588c7e8dabc0c5e0dfce18ca790d5ca078b69b68372ab5a929344333ca7915b27f6a6f66470c5d8 + checksum: 5fb99c3599dabf9b52331016e6b42f790afc3858b3c8f034044f8fca9d52a1b6230a0df2ef21df4f2fae86856a4c1a3134d09a40ae3cd81084288dfab958f4d4 languageName: node linkType: hard @@ -15699,6 +16118,22 @@ __metadata: languageName: node linkType: hard +"@whatwg-node/fetch@npm:0.5.3, @whatwg-node/fetch@npm:^0.5.0": + version: 0.5.3 + resolution: "@whatwg-node/fetch@npm:0.5.3" + dependencies: + "@peculiar/webcrypto": ^1.4.0 + abort-controller: ^3.0.0 + busboy: ^1.6.0 + form-data-encoder: ^1.7.1 + formdata-node: ^4.3.1 + node-fetch: ^2.6.7 + undici: ^5.12.0 + web-streams-polyfill: ^3.2.0 + checksum: 73087779b3b0e70d0abf8b2a5d82919c29c26f8062e16db0cad413fe45c7b58c3c12cc2bcd5942aebdfdc4feee97b01cf1ff6c5d92d9507a140afdcafa410b12 + languageName: node + linkType: hard + "@whatwg-node/fetch@npm:^0.2.4": version: 0.2.6 resolution: "@whatwg-node/fetch@npm:0.2.6" @@ -15716,22 +16151,6 @@ __metadata: languageName: node linkType: hard -"@whatwg-node/fetch@npm:^0.5.0": - version: 0.5.3 - resolution: "@whatwg-node/fetch@npm:0.5.3" - dependencies: - "@peculiar/webcrypto": ^1.4.0 - abort-controller: ^3.0.0 - busboy: ^1.6.0 - form-data-encoder: ^1.7.1 - formdata-node: ^4.3.1 - node-fetch: ^2.6.7 - undici: ^5.12.0 - web-streams-polyfill: ^3.2.0 - checksum: 73087779b3b0e70d0abf8b2a5d82919c29c26f8062e16db0cad413fe45c7b58c3c12cc2bcd5942aebdfdc4feee97b01cf1ff6c5d92d9507a140afdcafa410b12 - languageName: node - linkType: hard - "@xmldom/xmldom@npm:^0.7.0, @xmldom/xmldom@npm:^0.7.5, @xmldom/xmldom@npm:^0.7.6": version: 0.7.9 resolution: "@xmldom/xmldom@npm:0.7.9" @@ -19015,9 +19434,9 @@ __metadata: linkType: hard "core-js@npm:^3.4.1, core-js@npm:^3.6.5": - version: 3.26.1 - resolution: "core-js@npm:3.26.1" - checksum: 0a01149f51ff1e9f41d1ea49cc4c9222047949ea597189ede7c4cf8cde3b097766b9c7615acc77c86fe65b4002f20b638a133dfba7b41dba830d707aeeed45ad + version: 3.27.1 + resolution: "core-js@npm:3.27.1" + checksum: d50b5f88aea4302512ad9446c18e90f4d35dea1e6d8d3f87337690677061565ff11a670f1e0c87de57aa6074375fbb25ed5784076c040d3c4de8b4bce7d2ebeb languageName: node linkType: hard @@ -19047,15 +19466,15 @@ __metadata: languageName: node linkType: hard -"cosmiconfig-typescript-loader@npm:4.1.1, cosmiconfig-typescript-loader@npm:^4.0.0": - version: 4.1.1 - resolution: "cosmiconfig-typescript-loader@npm:4.1.1" +"cosmiconfig-typescript-loader@npm:4.3.0, cosmiconfig-typescript-loader@npm:^4.0.0": + version: 4.3.0 + resolution: "cosmiconfig-typescript-loader@npm:4.3.0" peerDependencies: "@types/node": "*" cosmiconfig: ">=7" ts-node: ">=10" typescript: ">=3" - checksum: a774961868f0406d0fd75e448c2e1a0ddb95de27d477fa325a37369a2cbd892cf4d639a109082cd886840dea7707ea9bed5c38a468b52de18400c4f1d495d35a + checksum: ea61dfd8e112cf2bb18df0ef89280bd3ae3dd5b997b4a9fc22bbabdc02513aadfbc6d4e15e922b6a9a5d987e9dad42286fa38caf77a9b8dcdbe7d4ce1c9db4fb languageName: node linkType: hard @@ -20594,7 +21013,7 @@ __metadata: languageName: node linkType: hard -"dset@npm:^3.1.2": +"dset@npm:3.1.2": version: 3.1.2 resolution: "dset@npm:3.1.2" checksum: 4f8066f517aa0a70af688c66e9a0a5590f0aada76f6edc7ba9ddb309e27d3a6d65c0a2e31ab2a84005d4c791e5327773cdde59b8ab169050330a0dc283663e87 @@ -21247,31 +21666,31 @@ __metadata: linkType: hard "esbuild@npm:^0.16.0": - version: 0.16.10 - resolution: "esbuild@npm:0.16.10" + version: 0.16.12 + resolution: "esbuild@npm:0.16.12" dependencies: - "@esbuild/android-arm": 0.16.10 - "@esbuild/android-arm64": 0.16.10 - "@esbuild/android-x64": 0.16.10 - "@esbuild/darwin-arm64": 0.16.10 - "@esbuild/darwin-x64": 0.16.10 - "@esbuild/freebsd-arm64": 0.16.10 - "@esbuild/freebsd-x64": 0.16.10 - "@esbuild/linux-arm": 0.16.10 - "@esbuild/linux-arm64": 0.16.10 - "@esbuild/linux-ia32": 0.16.10 - "@esbuild/linux-loong64": 0.16.10 - "@esbuild/linux-mips64el": 0.16.10 - "@esbuild/linux-ppc64": 0.16.10 - "@esbuild/linux-riscv64": 0.16.10 - "@esbuild/linux-s390x": 0.16.10 - "@esbuild/linux-x64": 0.16.10 - "@esbuild/netbsd-x64": 0.16.10 - "@esbuild/openbsd-x64": 0.16.10 - "@esbuild/sunos-x64": 0.16.10 - "@esbuild/win32-arm64": 0.16.10 - "@esbuild/win32-ia32": 0.16.10 - "@esbuild/win32-x64": 0.16.10 + "@esbuild/android-arm": 0.16.12 + "@esbuild/android-arm64": 0.16.12 + "@esbuild/android-x64": 0.16.12 + "@esbuild/darwin-arm64": 0.16.12 + "@esbuild/darwin-x64": 0.16.12 + "@esbuild/freebsd-arm64": 0.16.12 + "@esbuild/freebsd-x64": 0.16.12 + "@esbuild/linux-arm": 0.16.12 + "@esbuild/linux-arm64": 0.16.12 + "@esbuild/linux-ia32": 0.16.12 + "@esbuild/linux-loong64": 0.16.12 + "@esbuild/linux-mips64el": 0.16.12 + "@esbuild/linux-ppc64": 0.16.12 + "@esbuild/linux-riscv64": 0.16.12 + "@esbuild/linux-s390x": 0.16.12 + "@esbuild/linux-x64": 0.16.12 + "@esbuild/netbsd-x64": 0.16.12 + "@esbuild/openbsd-x64": 0.16.12 + "@esbuild/sunos-x64": 0.16.12 + "@esbuild/win32-arm64": 0.16.12 + "@esbuild/win32-ia32": 0.16.12 + "@esbuild/win32-x64": 0.16.12 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -21319,7 +21738,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 0c5671fa4611fe70f3daa3e80e92804ca5908d1fcb0ed7a418d69db72504c4f457ceebeaa2668d55f79aaa63334a9ffd3f30e8f9dee821f6ad1f367f08ff157b + checksum: 608faf85bcc6d970e4a3261c2a15dfe7e72b850a9115e90b22f2ab89b4adb2a9e281ef3dec8450ae4c4a5c4fab192b0e6cda468f08390e59bc230b7a5e5f5b5c languageName: node linkType: hard @@ -21404,13 +21823,13 @@ __metadata: linkType: hard "eslint-config-prettier@npm:^8.3.0": - version: 8.5.0 - resolution: "eslint-config-prettier@npm:8.5.0" + version: 8.6.0 + resolution: "eslint-config-prettier@npm:8.6.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 0d0f5c32e7a0ad91249467ce71ca92394ccd343178277d318baf32063b79ea90216f4c81d1065d60f96366fdc60f151d4d68ae7811a58bd37228b84c2083f893 + checksum: ff0d0dfc839a556355422293428637e8d35693de58dabf8638bf0b6529131a109d0b2ade77521aa6e54573bb842d7d9d322e465dd73dd61c7590fa3834c3fa81 languageName: node linkType: hard @@ -21496,8 +21915,8 @@ __metadata: linkType: hard "eslint-plugin-jest@npm:^27.0.0": - version: 27.1.7 - resolution: "eslint-plugin-jest@npm:27.1.7" + version: 27.2.0 + resolution: "eslint-plugin-jest@npm:27.2.0" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: @@ -21508,7 +21927,7 @@ __metadata: optional: true jest: optional: true - checksum: 1173e60450d8fa7a913d654e80e26176cc64c35f287d680d6fe4187a53974fd8c6883749924c8ea2a9328e295cba4d1be0b3047492653270e9341da1a3fec580 + checksum: 83554bb8eed289f903e2e03871a42a9b7b37b5e443d4a1501a42e004db49cddad894592ccec9840221b412ea3d2388428a1b11938031e5628d21c5a3210f1240 languageName: node linkType: hard @@ -21670,10 +22089,10 @@ __metadata: linkType: hard "eslint@npm:^8.6.0": - version: 8.30.0 - resolution: "eslint@npm:8.30.0" + version: 8.31.0 + resolution: "eslint@npm:8.31.0" dependencies: - "@eslint/eslintrc": ^1.4.0 + "@eslint/eslintrc": ^1.4.1 "@humanwhocodes/config-array": ^0.11.8 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -21714,7 +22133,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: b7525bb465b342665c3b8bab7e114d514ef1bc4e79f211c919863f9c71767e7412ec82383a22614a92d159783f91101018817000f7c61ce69a5e7015280cafaf + checksum: 5e5688bb864edc6b12d165849994812eefa67fb3fc44bb26f53659b63edcd8bcc68389d27cc6cc9e5b79ee22f24b6f311fa3ed047bddcafdec7d84c1b5561e4f languageName: node linkType: hard @@ -22409,9 +22828,9 @@ __metadata: linkType: hard "fast-json-patch@npm:^3.0.0-1": - version: 3.0.0-1 - resolution: "fast-json-patch@npm:3.0.0-1" - checksum: d4a8dff174357a90f3e2b79812df4bcc179143524e7eb1ab84a3bd5a80bd283f6be53996abe5c38527aeb28e994f0d03084c9ce5fcd8eb3e2881986e991105aa + version: 3.1.1 + resolution: "fast-json-patch@npm:3.1.1" + checksum: c4525b61b2471df60d4b025b4118b036d99778a93431aa44d1084218182841d82ce93056f0f3bbd731a24e6a8e69820128adf1873eb2199a26c62ef58d137833 languageName: node linkType: hard @@ -23732,16 +24151,17 @@ __metadata: languageName: node linkType: hard -"graphql-request@npm:^4.0.0": - version: 4.2.0 - resolution: "graphql-request@npm:4.2.0" +"graphql-request@npm:^5.0.0": + version: 5.1.0 + resolution: "graphql-request@npm:5.1.0" dependencies: + "@graphql-typed-document-node/core": ^3.1.1 cross-fetch: ^3.1.5 extract-files: ^9.0.0 form-data: ^3.0.0 peerDependencies: graphql: 14 - 16 - checksum: c508705ebdbb94ce4599c9236c06993dd19481d1765b8f316c8ad6eee81c18afaaf9362fa4f6f00227f26e793b4ec38a6aea44708da0ca4a1b4324f41691bbdc + checksum: 8b65d5c1b0cad8996a843b52305b2712ffbf842c700487d4cee1ed719f22baacaacfddafb65572bcddd67d57fd1d2d389dee2430ffba4b34c3ab542d079446c7 languageName: node linkType: hard @@ -23765,7 +24185,7 @@ __metadata: languageName: node linkType: hard -"graphql-ws@npm:^5.4.1, graphql-ws@npm:^5.9.0": +"graphql-ws@npm:5.11.2, graphql-ws@npm:^5.4.1, graphql-ws@npm:^5.9.0": version: 5.11.2 resolution: "graphql-ws@npm:5.11.2" peerDependencies: @@ -25594,6 +26014,15 @@ __metadata: languageName: node linkType: hard +"isomorphic-ws@npm:5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 + languageName: node + linkType: hard + "isomorphic-ws@npm:^4.0.1": version: 4.0.1 resolution: "isomorphic-ws@npm:4.0.1" @@ -25603,15 +26032,6 @@ __metadata: languageName: node linkType: hard -"isomorphic-ws@npm:^5.0.0": - version: 5.0.0 - resolution: "isomorphic-ws@npm:5.0.0" - peerDependencies: - ws: "*" - checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 - languageName: node - linkType: hard - "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -26322,9 +26742,9 @@ __metadata: linkType: hard "jose@npm:^4.10.0, jose@npm:^4.6.0": - version: 4.11.1 - resolution: "jose@npm:4.11.1" - checksum: cd15cba258d0fd20f6168631ce2e94fda8442df80e43c1033c523915cecdf390a1cc8efe0eab0c2d65935ca973d791c668aea80724d2aa9c2879d4e70f3081d7 + version: 4.11.2 + resolution: "jose@npm:4.11.2" + checksum: bc9b2271c31683603857b2fd2903afa29f826fffd4bcefc0845355ed86995def87eaadf502033207996109d76698c912e5a986e279326d9629321a50504fe466 languageName: node linkType: hard @@ -26803,11 +27223,11 @@ __metadata: linkType: hard "json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.0, json5@npm:^2.2.1": - version: 2.2.2 - resolution: "json5@npm:2.2.2" + version: 2.2.3 + resolution: "json5@npm:2.2.3" bin: json5: lib/cli.js - checksum: 9a878d66b72157b073cf0017f3e5d93ec209fa5943abcb38d37a54b208917c166bd473c26a24695e67a016ce65759aeb89946592991f8f9174fb96c8e2492683 + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 languageName: node linkType: hard @@ -26903,6 +27323,18 @@ __metadata: languageName: node linkType: hard +"jsonwebtoken@npm:^9.0.0": + version: 9.0.0 + resolution: "jsonwebtoken@npm:9.0.0" + dependencies: + jws: ^3.2.2 + lodash: ^4.17.21 + ms: ^2.1.1 + semver: ^7.3.8 + checksum: b9181cecf9df99f1dc0253f91ba000a1aa4d91f5816d1608c0dba61a5623726a0bfe200b51df25de18c1a6000825d231ad7ce2788aa54fd48dcb760ad9eb9514 + languageName: node + linkType: hard + "jsprim@npm:^1.2.2": version: 1.4.2 resolution: "jsprim@npm:1.4.2" @@ -27014,15 +27446,15 @@ __metadata: languageName: node linkType: hard -"jss@npm:^10.5.1, jss@npm:~10.8.2": - version: 10.8.2 - resolution: "jss@npm:10.8.2" +"jss@npm:^10.5.1, jss@npm:~10.9.0": + version: 10.9.2 + resolution: "jss@npm:10.9.2" dependencies: "@babel/runtime": ^7.3.1 csstype: ^3.0.2 is-in-browser: ^1.1.3 tiny-warning: ^1.0.2 - checksum: b2647e44435e665c53eda80af2305addfea7e49c3b0c0271dc183abd8b1bb7c88bc5d77baf7bb8b2460640190eed900358fda514742d0bf4ebbc203984c879ba + checksum: 7ae5cd2f8602bf197ec90251d774b9f10d55eb2db0854ac78dc7fb6983828c202e8eb0d5c8c59c73b2f64718ebd33d6063afa799d625a995986a22dc1cc27230 languageName: node linkType: hard @@ -27976,9 +28408,9 @@ __metadata: linkType: hard "luxon@npm:^3.0.0": - version: 3.1.1 - resolution: "luxon@npm:3.1.1" - checksum: 388fb35d3c51a19d8b305a3338e7e74634b08562e7d2f9ed5c05a7f4bc9ee1c1ab6a2546b6d9c4c104516b24043757d65f5f3fe3d78b206fbf55a9586ab62230 + version: 3.2.0 + resolution: "luxon@npm:3.2.0" + checksum: 9a54fc68f1735259095299616c7d01967fb52a9c3500c6b31f97c477574122c62dc0f119d13abc04daaf545e1b8f37a63642b45cd04a240ff59987ceb6ec02c0 languageName: node linkType: hard @@ -28162,11 +28594,11 @@ __metadata: linkType: hard "marked@npm:^4.0.10, marked@npm:^4.0.14": - version: 4.2.4 - resolution: "marked@npm:4.2.4" + version: 4.2.5 + resolution: "marked@npm:4.2.5" bin: marked: bin/marked.js - checksum: 5eb5bfa6ee4cf85712a3ccbe2a549c397e8886f5d18312a02696c7e3817625a6b91a8ad27a6ed43b06ddbdfb812f471b1270517c4b8fb068a6a9e5b4d555a5aa + checksum: dd7da20a3983c66b516463fad5dc8d15dc70e137d20b6dc491e134f671e84bd2ed5f859e2c35f21e56830a122e4356b9e574bcde49b72b7ad6bc121a215a1a98 languageName: node linkType: hard @@ -28493,15 +28925,15 @@ __metadata: languageName: node linkType: hard -"meros@npm:^1.1.4": - version: 1.1.4 - resolution: "meros@npm:1.1.4" +"meros@npm:1.2.1, meros@npm:^1.1.4": + version: 1.2.1 + resolution: "meros@npm:1.2.1" peerDependencies: - "@types/node": ">=12" + "@types/node": ">=13" peerDependenciesMeta: "@types/node": optional: true - checksum: f85f33ea05a0e20598f034696b477924254b742b6d81f77c8bbd7dee1f875656a3d98a1a2a988c481fef7de5c313715ee409b3cb3058ae6c4fe16a7f2fc598a3 + checksum: 2201c3f7c58ad2a5b5f7d6b1c644d79bde513e25cb64b51a8c41381ec74bc02cd3423425e34f60c96bf3991f1ec51d65dc8b8e3354cbb060cc9f8226b4666a5a languageName: node linkType: hard @@ -32063,11 +32495,11 @@ __metadata: linkType: hard "prom-client@npm:^14.0.1": - version: 14.1.0 - resolution: "prom-client@npm:14.1.0" + version: 14.1.1 + resolution: "prom-client@npm:14.1.1" dependencies: tdigest: ^0.1.1 - checksum: 88f8e67020c0af07d09ab8f15caaa2a3d0810b01d903d0977d82947d3b0100a539db77bcccfde0bf2449a85060475f7fb05b64e7c34951c8a54b84240ae7ae81 + checksum: 7ff3e85636b1f0ca590b38ad7c7c5f9998b985c06a1c572ffffc69f052d5b4baf84c9124923e3824c63f78b5e8400081c6472173d04382ca296ebdf36d774a88 languageName: node linkType: hard @@ -38349,7 +38781,22 @@ __metadata: languageName: node linkType: hard -"ws@npm:8.8.1, ws@npm:^8.3.0, ws@npm:^8.4.2, ws@npm:^8.8.0": +"ws@npm:8.11.0, ws@npm:^8.4.2, ws@npm:^8.8.0": + version: 8.11.0 + resolution: "ws@npm:8.11.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 316b33aba32f317cd217df66dbfc5b281a2f09ff36815de222bc859e3424d83766d9eb2bd4d667de658b6ab7be151f258318fb1da812416b30be13103e5b5c67 + languageName: node + linkType: hard + +"ws@npm:8.8.1": version: 8.8.1 resolution: "ws@npm:8.8.1" peerDependencies: