diff --git a/.changeset/brave-jars-speak.md b/.changeset/brave-jars-speak.md new file mode 100644 index 0000000000..2060239326 --- /dev/null +++ b/.changeset/brave-jars-speak.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-puppetdb': patch +--- + +**BREAKING ALPHA**: The module has been moved from the `/alpha` export to the root of the package. diff --git a/.changeset/busy-chairs-itch.md b/.changeset/busy-chairs-itch.md new file mode 100644 index 0000000000..ef8b0b8df4 --- /dev/null +++ b/.changeset/busy-chairs-itch.md @@ -0,0 +1,5 @@ +--- +'@backstage/ui': patch +--- + +Add missing class for flex: baseline diff --git a/.changeset/cold-donuts-train.md b/.changeset/cold-donuts-train.md new file mode 100644 index 0000000000..fe84653601 --- /dev/null +++ b/.changeset/cold-donuts-train.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Fix a potential race condition in EntityListProvider when selecting filters diff --git a/.changeset/curvy-sites-rhyme.md b/.changeset/curvy-sites-rhyme.md new file mode 100644 index 0000000000..1de9a21e77 --- /dev/null +++ b/.changeset/curvy-sites-rhyme.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +The 'get-catalog-entity' action now throws a ConflictError instead of generic Error if multiple entities are found, so MCP call doesn't fail with 500. diff --git a/.changeset/fix-select-aria-props.md b/.changeset/fix-select-aria-props.md new file mode 100644 index 0000000000..66bb1de3ad --- /dev/null +++ b/.changeset/fix-select-aria-props.md @@ -0,0 +1,5 @@ +--- +'@backstage/ui': patch +--- + +Fix Select component to properly attach aria-label and aria-labelledby props to the rendered element for improved accessibility. diff --git a/.changeset/flat-colts-know.md b/.changeset/flat-colts-know.md new file mode 100644 index 0000000000..e79ba52ae8 --- /dev/null +++ b/.changeset/flat-colts-know.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs-backend': minor +--- + +Techdocs: support HumanDuration for cache TTL and timeout configuration diff --git a/.changeset/gold-words-smoke.md b/.changeset/gold-words-smoke.md new file mode 100644 index 0000000000..85141e402c --- /dev/null +++ b/.changeset/gold-words-smoke.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-app-backend': patch +--- + +Internal update to not expose the old `createRouter`. diff --git a/.changeset/icy-camels-throw.md b/.changeset/icy-camels-throw.md new file mode 100644 index 0000000000..db0521711c --- /dev/null +++ b/.changeset/icy-camels-throw.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-mcp-actions-backend': patch +--- + +The MCP backend will now convert known Backstage errors into textual responses with `isError: true`. +The error message can be useful for an LLM to understand and maybe give back to the user. +Previously all errors where thrown out to `@modelcontextprotocol/sdk` which causes a generic 500. diff --git a/.changeset/legal-lemons-attend.md b/.changeset/legal-lemons-attend.md new file mode 100644 index 0000000000..4b497d8620 --- /dev/null +++ b/.changeset/legal-lemons-attend.md @@ -0,0 +1,5 @@ +--- +'@backstage/integration': minor +--- + +Added support for limiting GithubAppCredentialsMux to specific apps diff --git a/.changeset/olive-moons-burn.md b/.changeset/olive-moons-burn.md new file mode 100644 index 0000000000..625d97c5a7 --- /dev/null +++ b/.changeset/olive-moons-burn.md @@ -0,0 +1,24 @@ +--- +'@backstage/catalog-client': minor +'@backstage/plugin-catalog-react': minor +'@backstage/plugin-catalog-node': minor +--- + +Introduced new `streamEntities` async generator method for the catalog. + +Catalog API and Catalog Service now includes a `streamEntities` method that allows for streaming entities from the catalog. +This method is designed to handle large datasets efficiently by processing entities in a stream rather than loading them +all into memory at once. This is useful when you need to fetch a large number of entities but do not want to use pagination +or fetch all entities at once. + +Example usage: + +```ts +const pageStream = catalogClient.streamEntities({ pageSize: 100 }, { token }); +for await (const page of pageStream) { + // Handle page of entities + for (const entity of page) { + console.log(entity); + } +} +``` diff --git a/.changeset/pre.json b/.changeset/pre.json index 594fda47fc..dcb0a48960 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -205,16 +205,30 @@ }, "changesets": [ "brave-bugs-know", + "cold-donuts-train", "cool-games-rescue", + "curvy-sites-rhyme", "easy-wings-turn", + "fine-hands-think", + "flat-colts-know", "giant-zebras-peel", + "icy-camels-throw", + "legal-lemons-attend", "lemon-terms-cheer", "lucky-glasses-slide", + "mean-sites-cheer", + "puny-books-fetch", "ripe-plants-pump", + "sharp-carrots-spend", "sixty-pans-prove", "sixty-places-push", "slick-lamps-clap", + "slick-worms-drum", + "social-beers-unite", + "sweet-lemons-wonder", "tricky-buses-lead", + "wet-kiwis-strive", + "whole-dingos-lay", "yellow-dragons-float" ] } diff --git a/.changeset/sharp-carrots-spend.md b/.changeset/sharp-carrots-spend.md new file mode 100644 index 0000000000..fc846ce13f --- /dev/null +++ b/.changeset/sharp-carrots-spend.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': minor +--- + +Added support for discovery by app diff --git a/.changeset/social-beers-unite.md b/.changeset/social-beers-unite.md new file mode 100644 index 0000000000..a8942e6452 --- /dev/null +++ b/.changeset/social-beers-unite.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Add missing dependency to `@backstage/cli`, `@backstage/core-plugin-api` and `@backstage/integration-react` diff --git a/.changeset/sweet-lemons-wonder.md b/.changeset/sweet-lemons-wonder.md new file mode 100644 index 0000000000..6e5d4e8ef3 --- /dev/null +++ b/.changeset/sweet-lemons-wonder.md @@ -0,0 +1,5 @@ +--- +'@techdocs/cli': patch +--- + +Fixed an issue where `@techdocs/cli serve` command did not pick up the latest changes to TechDocs. diff --git a/.changeset/whole-dingos-lay.md b/.changeset/whole-dingos-lay.md new file mode 100644 index 0000000000..edefa5c44e --- /dev/null +++ b/.changeset/whole-dingos-lay.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Only run provider orphan cleanup if the engine is started in the first place diff --git a/.changeset/young-doodles-enter.md b/.changeset/young-doodles-enter.md new file mode 100644 index 0000000000..63e1f33eda --- /dev/null +++ b/.changeset/young-doodles-enter.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +update about card links style for pretty display with other language diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e967effb13..53f599e926 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,9 +102,6 @@ jobs: - name: type checking and declarations run: yarn tsc:full - - name: prettier - run: yarn prettier:check - # We need to generate the API references as well, so that we can verify the doc links - name: check api reports and generate API reference run: yarn build:api-reports:only --ci --docs @@ -246,6 +243,9 @@ jobs: restore-keys: | ${{ runner.os }}-v${{ matrix.node-version }}-backstage-cli- + - name: prettier + run: yarn prettier:check --cache --cache-location .cache/backstage-cli/.prettier-cache + - name: lint changed packages run: yarn backstage-cli repo lint --since origin/master --successCache --successCacheDir .cache/backstage-cli diff --git a/.prettierignore b/.prettierignore index 718387ef22..7269620fe6 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,5 @@ +.cache +.lighthouseci .yarn dist microsite @@ -8,6 +10,7 @@ packages/ui/css coverage *.hbs templates +type-docs # old reports api-report.md api-report-*.md diff --git a/ADOPTERS.md b/ADOPTERS.md index d20fd4a8b2..f0f880e89d 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -285,3 +285,4 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [VR](https://www.vr.com.br) | [Felipe Gomes](https://www.linkedin.com/in/felipe-gomes-da-silva), [Tiago Garcia](https://www.linkedin.com/in/tiago-garcia-6301a925) | Internal portal for development squads, service catalog, documentation hub, and application mapping for the entire company ecosystem, simplifying cloud infrastructure construction through templates. | | [Plata](https://platacard.mx/en) | [Shamil Ganiev](https://github.com/ganievs) | Internal Developer Portal for the whole engineering team | | [Syngenta Digital](https://www.syngentadigital.com) | [Bitan Mallick](https://www.linkedin.com/in/bitanmallick) | Internal developer portal, designed to empower developers and streamline workflows. We use software catalog, tech-radar, software templates, tech-docs and various custom plugins to ensure an efficient and collaborative development experience. | +| [Sophotech](https://sopho.tech) | [@archy-rock3t-cloud](https://github.com/archy-rock3t-cloud), [Artem Muterko](mailto:artem@sopho.tech) | Custom Developer Platform based on Backstage, providing a service catalog, infrastructure templates, and integrated tooling to give developers a self-service experience. | diff --git a/docs/backend-system/core-services/actions-registry.md b/docs/backend-system/core-services/actions-registry.md index b1e8fe5f3d..9e493e6bb2 100644 --- a/docs/backend-system/core-services/actions-registry.md +++ b/docs/backend-system/core-services/actions-registry.md @@ -45,7 +45,7 @@ When an action is executed, it receives a context object (`ActionsRegistryAction Here's an example of how to register an action with the Actions Registry Service: ```typescript -import { ActionsRegistryService } from '@backstage/backend-plugin-api'; +import { ActionsRegistryService } from '@backstage/backend-plugin-api/alpha'; export function registerMyActions(actionsRegistry: ActionsRegistryService) { // Register a simple read-only action diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index 776f8cd37f..ac8baadad5 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -239,18 +239,33 @@ Example: `visits-tracking-service`, `CircleciBuildsDumpV2_avro_gcs` ### `namespace` [optional] The ID of a namespace that the entity belongs to. This field is optional, and -currently has no special semantics apart from bounding the name uniqueness -constraint if specified. It is reserved for future use and may get broader -semantic implication later. +has no special semantics apart from bounding the name uniqueness constraint if +specified. -For now, it is recommended to not specify a namespace unless you have specific -need to do so. This means the entity belongs to the `"default"` namespace. +This can be used for ingesting entities (of the same kind) from different +contexts where their names might otherwise end up overlapping. An example of +this is to import users and groups from your HR system into the default +namespace, but also wanting to ingest users from your GitHub enterprise +installation and those potentially having the same names as the HR system users. +Then you could set up your GitHub enterprise ingestion to place those users in a +`"ghe"` namespace to avoid collisions. + +If you do not specify a namespace, it assumes the value `"default"`. Namespaces must be sequences of `[a-zA-Z0-9]`, possibly separated by `-`, at -most 63 characters in total. Namespace names are case insensitive and will be rendered as lower case in most places. +most 63 characters in total. Namespace names are case insensitive and will be +rendered as lower case in most places. Example: `tracking-services`, `payment` +Note that using namespaces typically means that you need to explicitly specify +the namespace when referring to the entity. In some contexts, notably in entity +catalog-info definition YAML files, you often refer to other entities by name. +When they are in a different namespace, you need to use the syntax +`/`, while if they are in the default namespace you can omit +that part as a shorthand. Therefore it's practical to use the default namespace +for simplicity until it's necessary to use supplemental ones. See [the references article](references.md) for more information. + ### `uid` [output] Each entity gets an automatically generated globally unique ID when it first diff --git a/docs/frontend-system/building-apps/08-migrating.md b/docs/frontend-system/building-apps/08-migrating.md index 210d1f824f..a2ef37b5e3 100644 --- a/docs/frontend-system/building-apps/08-migrating.md +++ b/docs/frontend-system/building-apps/08-migrating.md @@ -913,7 +913,7 @@ const app = createApp({ If you are not using the default `` you can install your custom catalog page as an override for now instead, and fully migrate it to the new system later. ```tsx title="in packages/app/src/App.tsx" -/* highlight-remove-start */ +/* highlight-add-start */ const catalogPluginOverride = catalogPlugin.withOverrides({ extensions: [ catalogPlugin.getExtension('page:catalog').override({ @@ -928,13 +928,13 @@ const catalogPluginOverride = catalogPlugin.withOverrides({ }), ], }); -/* highlight-remove-end */ +/* highlight-add-end */ const app = createApp({ - /* highlight-remove-next-line */ - features: [catalogPlugin, convertedOptionsModule, ...convertedRootFeatures], - /* highlight-add-next-line */ features: [ + /* highlight-remove-next-line */ + catalogPlugin, + /* highlight-add-next-line */ catalogPluginOverride, convertedOptionsModule, ...convertedRootFeatures, diff --git a/docs/frontend-system/building-plugins/01-index.md b/docs/frontend-system/building-plugins/01-index.md index 283c162fa7..03da20ea73 100644 --- a/docs/frontend-system/building-plugins/01-index.md +++ b/docs/frontend-system/building-plugins/01-index.md @@ -185,7 +185,7 @@ export const examplePlugin = createFrontendPlugin({ ## Plugin specific extensions -There are many different plugins that you can extend with additional functionality through extensions. One such plugin is [the catalog plugin](../../features/software-catalog/), one of the core features of Backstage. It lets you catalog the software in your organization, where each item in the catalog has its own page that can be populated with tools and information relating to that catalog entity. In this example we will explore how our plugin can provide such a tool to display on an entity page. +There are many different plugins that you can extend with additional functionality through extensions. One such plugin is [the catalog plugin](https://backstage.io/docs/features/software-catalog/), one of the core features of Backstage. It lets you catalog the software in your organization, where each item in the catalog has its own page that can be populated with tools and information relating to that catalog entity. In this example we will explore how our plugin can provide such a tool to display on an entity page. ```tsx title="in src/plugin.ts - An example entity content extension" import { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha'; diff --git a/docs/integrations/github/discovery.md b/docs/integrations/github/discovery.md index c56aed054b..4a40b25361 100644 --- a/docs/integrations/github/discovery.md +++ b/docs/integrations/github/discovery.md @@ -2,7 +2,7 @@ id: discovery title: GitHub Discovery sidebar_label: Discovery -description: Automatically discovering catalog entities from repositories in a GitHub organization +description: Automatically discovering catalog entities from repositories in a GitHub organization or App --- :::info @@ -12,8 +12,8 @@ This documentation is written for [the new backend system](../../backend-system/ ## GitHub Provider The GitHub integration has a discovery provider for discovering catalog -entities within a GitHub organization. The provider will crawl the GitHub -organization and register entities matching the configured path. This can be +entities within a GitHub organization or App. The provider will crawl the GitHub +organization or App and register entities matching the configured path. This can be useful as an alternative to static locations or manually adding things to the catalog. This is the preferred method for ingesting entities into the catalog. @@ -252,7 +252,7 @@ catalog: catalogPath: '/catalog-info.yaml' # string ``` -This provider supports multiple organizations via unique provider IDs. +This provider supports multiple organizations and apps via unique provider IDs. :::note Note @@ -288,9 +288,11 @@ If you do so, `default` will be used as provider ID. Whether to include archived repositories. Defaults to `false`. - **`host`** _(optional)_: The hostname of your GitHub Enterprise instance. It must match a host defined in [integrations.github](locations.md). -- **`organization`**: +- **`organization`** _(required, unless `app` is set)_: Name of your organization account/workspace. - If you want to add multiple organizations, you need to add one provider config each. + If you want to add multiple organizations, you need to add one provider config each or specify `app` instead. +- **`app`** _(required, unless `organization` is set)_: + ID of your GitHub App. - **`validateLocationsExist`** _(optional)_: Whether to validate locations that exist before emitting them. This option avoids generating locations for catalog info files that do not exist in the source repository. diff --git a/docs/releases/v1.43.0-next.1-changelog.md b/docs/releases/v1.43.0-next.1-changelog.md new file mode 100644 index 0000000000..ba58b6e069 --- /dev/null +++ b/docs/releases/v1.43.0-next.1-changelog.md @@ -0,0 +1,1578 @@ +# Release v1.43.0-next.1 + +Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.43.0-next.1](https://backstage.github.io/upgrade-helper/?to=1.43.0-next.1) + +## @backstage/integration@1.18.0-next.0 + +### Minor Changes + +- 03bdc68: Added support for limiting GithubAppCredentialsMux to specific apps + +## @backstage/plugin-catalog-backend-module-github@0.11.0-next.0 + +### Minor Changes + +- 03bdc68: Added support for discovery by app + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-techdocs-backend@2.1.0-next.0 + +### Minor Changes + +- 063cdc5: Techdocs: support HumanDuration for cache TTL and timeout configuration + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-techdocs-node@1.13.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.4.6-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/app-defaults@1.6.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + +## @backstage/backend-app-api@1.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/backend-defaults@0.12.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/backend-app-api@1.2.7-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/backend-dynamic-feature-service@0.7.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-events-backend@0.5.6-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-app-node@0.1.37-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/backend-openapi-utils@0.6.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/backend-plugin-api@1.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + +## @backstage/backend-test-utils@1.9.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/backend-app-api@1.2.7-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/cli@0.34.2-next.1 + +### Patch Changes + +- e1adce4: Updated the backend plugin template to use a new pattern for the `TodoListService` that reduces boilerplate. +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + +## @backstage/core-compat-api@0.5.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + +## @backstage/core-components@0.17.6-next.0 + +### Patch Changes + +- e409bec: Fixes for rendering initials in the avatar component. + +## @backstage/create-app@0.7.4-next.1 + +### Patch Changes + +- 02dbe8e: Add missing dependency to `@backstage/cli`, `@backstage/core-plugin-api` and `@backstage/integration-react` + +## @backstage/dev-utils@1.1.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/app-defaults@1.6.6-next.0 + +## @backstage/frontend-app-api@0.12.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/frontend-defaults@0.3.1-next.0 + +## @backstage/frontend-defaults@0.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/frontend-app-api@0.12.1-next.0 + - @backstage/plugin-app@0.2.1-next.0 + +## @backstage/frontend-dynamic-feature-loader@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + +## @backstage/frontend-plugin-api@0.11.1-next.0 + +### Patch Changes + +- 2fb8b04: Improved the types of `createFrontendPlugin` and `createFrontendModule` so that errors due to incompatible options are indicated more clearly. +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + +## @backstage/frontend-test-utils@0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/frontend-app-api@0.12.1-next.0 + - @backstage/plugin-app@0.2.1-next.0 + +## @backstage/integration-react@1.2.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + +## @backstage/repo-tools@0.15.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @techdocs/cli@1.9.8-next.0 + +### Patch Changes + +- db63208: Fixed an issue where `@techdocs/cli serve` command did not pick up the latest changes to TechDocs. +- Updated dependencies + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-techdocs-node@1.13.7-next.0 + +## @backstage/plugin-api-docs@0.12.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-catalog@1.31.3-next.1 + +## @backstage/plugin-app@0.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/integration-react@1.2.10-next.0 + +## @backstage/plugin-app-backend@0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-app-node@0.1.37-next.0 + +## @backstage/plugin-app-node@0.1.37-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-app-visualizer@0.1.23-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + +## @backstage/plugin-auth-backend@0.25.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-auth-backend-module-atlassian-provider@0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-auth0-provider@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-aws-alb-provider@0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-auth-backend@0.25.4-next.0 + +## @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.2.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-bitbucket-provider@0.3.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-bitbucket-server-provider@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-github-provider@0.3.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-gitlab-provider@0.3.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-google-provider@0.3.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-guest-provider@0.2.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-microsoft-provider@0.3.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-oauth2-provider@0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.2.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-oidc-provider@0.4.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-auth-backend@0.25.4-next.0 + +## @backstage/plugin-auth-backend-module-okta-provider@0.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-onelogin-provider@0.3.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-pinniped-provider@0.3.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-backend-module-vmware-cloud-provider@0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-node@0.6.7-next.0 + +### Patch Changes + +- 3aff9e1: Changes OAuth cookies from domain-scoped to host-only by avoid setting the domain attribute in the default cookie configurer. +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-auth-react@0.1.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + +## @backstage/plugin-bitbucket-cloud-common@0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + +## @backstage/plugin-catalog@1.31.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + +## @backstage/plugin-catalog-backend@3.0.2-next.0 + +### Patch Changes + +- 37b4eaf: The 'get-catalog-entity' action now throws a ConflictError instead of generic Error if multiple entities are found, so MCP call doesn't fail with 500. +- a4c82ad: Only run provider orphan cleanup if the engine is started in the first place +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-catalog-backend-module-aws@0.4.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-azure@0.3.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-backstage-openapi@0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.5.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.3.2-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.5.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-catalog-backend-module-gcp@0.3.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-gerrit@0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-gitea@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-github-org@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend-module-github@0.11.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-catalog-backend-module-gitlab@0.7.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-catalog-backend-module-gitlab-org@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend-module-gitlab@0.7.3-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.7.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-catalog-backend-module-ldap@0.11.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-logs@0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-catalog-backend-module-msgraph@0.8.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-openapi@0.2.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.2.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-catalog-graph@0.4.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + +## @backstage/plugin-catalog-import@0.13.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/integration-react@1.2.10-next.0 + +## @backstage/plugin-catalog-node@1.18.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + +## @backstage/plugin-catalog-react@1.20.2-next.1 + +### Patch Changes + +- 0174799: Fix a potential race condition in EntityListProvider when selecting filters +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/frontend-test-utils@0.3.6-next.0 + - @backstage/integration-react@1.2.10-next.0 + +## @backstage/plugin-catalog-unprocessed-entities@0.2.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + +## @backstage/plugin-config-schema@0.1.72-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + +## @backstage/plugin-devtools@0.1.31-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + +## @backstage/plugin-devtools-backend@0.5.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + +## @backstage/plugin-events-backend@0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-aws-sqs@0.4.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-azure@0.2.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.2.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-bitbucket-server@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-gerrit@0.2.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-github@0.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-gitlab@0.3.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-google-pubsub@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-module-kafka@0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-backend-test-utils@0.1.48-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-events-node@0.4.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-gateway-backend@1.0.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-home@0.8.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-home-react@0.1.30-next.0 + +## @backstage/plugin-home-react@0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + +## @backstage/plugin-kubernetes@0.12.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-kubernetes-react@0.5.11-next.0 + +## @backstage/plugin-kubernetes-backend@0.20.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-kubernetes-node@0.3.4-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-kubernetes-cluster@0.0.29-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/plugin-kubernetes-react@0.5.11-next.0 + +## @backstage/plugin-kubernetes-node@0.3.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-kubernetes-react@0.5.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + +## @backstage/plugin-mcp-actions-backend@0.1.3-next.0 + +### Patch Changes + +- d08b0c9: The MCP backend will now convert known Backstage errors into textual responses with `isError: true`. + The error message can be useful for an LLM to understand and maybe give back to the user. + Previously all errors where thrown out to `@modelcontextprotocol/sdk` which causes a generic 500. +- Updated dependencies + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-notifications@0.5.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + +## @backstage/plugin-notifications-backend@0.5.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-signals-node@0.1.24-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + - @backstage/plugin-notifications-node@0.2.19-next.0 + +## @backstage/plugin-notifications-backend-module-email@0.3.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-notifications-node@0.2.19-next.0 + +## @backstage/plugin-notifications-backend-module-slack@0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-notifications-node@0.2.19-next.0 + +## @backstage/plugin-notifications-node@0.2.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-signals-node@0.1.24-next.0 + +## @backstage/plugin-org@0.6.44-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + +## @backstage/plugin-org-react@0.1.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/core-components@0.17.6-next.0 + +## @backstage/plugin-permission-backend@0.7.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + +## @backstage/plugin-permission-backend-module-allow-all-policy@0.2.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + +## @backstage/plugin-permission-node@0.10.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-proxy-backend@0.6.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-proxy-node@0.1.8-next.0 + +## @backstage/plugin-proxy-node@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder@1.34.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-scaffolder-react@1.19.1-next.1 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + +## @backstage/plugin-scaffolder-backend@2.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.9.5-next.0 + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.3.2-next.0 + - @backstage/plugin-scaffolder-backend-module-azure@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.14-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-gitea@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-github@0.8.3-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.12-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-scaffolder-backend-module-azure@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.13-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.3.2-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.3.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.3.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-gcp@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-gerrit@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-gitea@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-github@0.8.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.9.5-next.0 + +### Patch Changes + +- a84ddea: The log message now indicates that the pipeline trigger token was deleted and not pipeline itself. +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-notifications@0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-notifications-node@0.2.19-next.0 + +## @backstage/plugin-scaffolder-backend-module-rails@0.5.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.4.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-scaffolder-node-test-utils@0.3.3-next.1 + +## @backstage/plugin-scaffolder-common@1.7.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + +## @backstage/plugin-scaffolder-node@0.11.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-scaffolder-node-test-utils@0.3.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/backend-test-utils@1.9.0-next.1 + +## @backstage/plugin-scaffolder-react@1.19.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + +## @backstage/plugin-search@1.4.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + +## @backstage/plugin-search-backend@2.0.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + +## @backstage/plugin-search-backend-module-catalog@0.3.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-search-backend-module-elasticsearch@1.7.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + +## @backstage/plugin-search-backend-module-explore@0.3.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + +## @backstage/plugin-search-backend-module-pg@0.5.48-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + +## @backstage/plugin-search-backend-module-stack-overflow-collator@0.3.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + +## @backstage/plugin-search-backend-module-techdocs@0.4.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-node@1.13.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + +## @backstage/plugin-search-backend-node@1.3.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-search-react@1.9.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + +## @backstage/plugin-signals@0.0.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + +## @backstage/plugin-signals-backend@0.3.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-signals-node@0.1.24-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-signals-node@0.1.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + +## @backstage/plugin-techdocs@1.14.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/plugin-auth-react@0.1.19-next.0 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.53-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/plugin-catalog@1.31.3-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-techdocs@1.14.2-next.1 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + +## @backstage/plugin-techdocs-module-addons-contrib@1.1.28-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + +## @backstage/plugin-techdocs-node@1.13.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + +## @backstage/plugin-techdocs-react@1.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + +## @backstage/plugin-user-settings@0.8.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + +## @backstage/plugin-user-settings-backend@0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-signals-node@0.1.24-next.0 + +## example-app@0.2.113-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/cli@0.34.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/frontend-app-api@0.12.1-next.0 + - @backstage/plugin-api-docs@0.12.11-next.1 + - @backstage/plugin-catalog@1.31.3-next.1 + - @backstage/plugin-catalog-graph@0.4.23-next.1 + - @backstage/plugin-catalog-import@0.13.5-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.2.21-next.1 + - @backstage/plugin-devtools@0.1.31-next.1 + - @backstage/plugin-home@0.8.12-next.1 + - @backstage/plugin-kubernetes@0.12.11-next.1 + - @backstage/plugin-notifications@0.5.9-next.1 + - @backstage/plugin-org@0.6.44-next.1 + - @backstage/plugin-scaffolder@1.34.1-next.1 + - @backstage/plugin-scaffolder-react@1.19.1-next.1 + - @backstage/plugin-search@1.4.30-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-signals@0.0.23-next.1 + - @backstage/plugin-techdocs@1.14.2-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.28-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/plugin-user-settings@0.8.26-next.1 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/app-defaults@1.6.6-next.0 + - @backstage/plugin-auth-react@0.1.19-next.0 + - @backstage/plugin-kubernetes-cluster@0.0.29-next.1 + +## example-app-next@0.0.27-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/cli@0.34.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/frontend-app-api@0.12.1-next.0 + - @backstage/frontend-defaults@0.3.1-next.0 + - @backstage/plugin-api-docs@0.12.11-next.1 + - @backstage/plugin-app@0.2.1-next.0 + - @backstage/plugin-app-visualizer@0.1.23-next.0 + - @backstage/plugin-catalog@1.31.3-next.1 + - @backstage/plugin-catalog-graph@0.4.23-next.1 + - @backstage/plugin-catalog-import@0.13.5-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.2.21-next.1 + - @backstage/plugin-home@0.8.12-next.1 + - @backstage/plugin-kubernetes@0.12.11-next.1 + - @backstage/plugin-notifications@0.5.9-next.1 + - @backstage/plugin-org@0.6.44-next.1 + - @backstage/plugin-scaffolder@1.34.1-next.1 + - @backstage/plugin-scaffolder-react@1.19.1-next.1 + - @backstage/plugin-search@1.4.30-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-signals@0.0.23-next.1 + - @backstage/plugin-techdocs@1.14.2-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.28-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/plugin-user-settings@0.8.26-next.1 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/app-defaults@1.6.6-next.0 + - @backstage/plugin-auth-react@0.1.19-next.0 + - @backstage/plugin-kubernetes-cluster@0.0.29-next.1 + +## app-next-example-plugin@0.0.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + +## example-backend@0.0.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/plugin-techdocs-backend@2.1.0-next.0 + - @backstage/plugin-mcp-actions-backend@0.1.3-next.0 + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-catalog-backend-module-openapi@0.2.14-next.0 + - @backstage/plugin-scaffolder-backend@2.2.1-next.0 + - @backstage/plugin-scaffolder-backend-module-github@0.8.3-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-app-backend@0.5.6-next.0 + - @backstage/plugin-auth-backend@0.25.4-next.0 + - @backstage/plugin-auth-backend-module-github-provider@0.3.7-next.0 + - @backstage/plugin-auth-backend-module-guest-provider@0.2.12-next.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.6.4-next.0 + - @backstage/plugin-kubernetes-backend@0.20.2-next.1 + - @backstage/plugin-notifications-backend@0.5.10-next.0 + - @backstage/plugin-permission-backend@0.7.4-next.0 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.2.12-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-signals-backend@0.3.8-next.0 + - @backstage/plugin-devtools-backend@0.5.9-next.0 + - @backstage/plugin-events-backend@0.5.6-next.0 + - @backstage/plugin-events-backend-module-google-pubsub@0.1.4-next.0 + - @backstage/plugin-proxy-backend@0.6.6-next.0 + - @backstage/plugin-search-backend@2.0.6-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.12-next.0 + - @backstage/plugin-scaffolder-backend-module-notifications@0.1.14-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.4.6-next.0 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.5.6-next.0 + - @backstage/plugin-search-backend-module-catalog@0.3.8-next.0 + - @backstage/plugin-search-backend-module-explore@0.3.7-next.1 + +## @internal/frontend@0.0.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + +## @internal/scaffolder@0.0.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/plugin-scaffolder-react@1.19.1-next.1 + +## techdocs-cli-embedded-app@0.2.112-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.34.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/plugin-catalog@1.31.3-next.1 + - @backstage/plugin-techdocs@1.14.2-next.1 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/app-defaults@1.6.6-next.0 + +## @internal/plugin-todo-list@1.0.43-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + +## @internal/plugin-todo-list-backend@1.0.43-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 diff --git a/microsite/data/plugins/apicurio-registry.yaml b/microsite/data/plugins/apicurio-registry.yaml new file mode 100644 index 0000000000..3750fbaa69 --- /dev/null +++ b/microsite/data/plugins/apicurio-registry.yaml @@ -0,0 +1,10 @@ +--- +title: Apicurio Registry +author: simonnepomuk +authorUrl: https://www.linkedin.com/in/simon-nepomuk-wagner/ +category: API Management +description: View content and metadata of your API schemas stored in your Apicurio Registry. +documentation: https://github.com/simonnepomuk/backstage-plugin-apicurio-registry +iconUrl: https://avatars.githubusercontent.com/u/28107283?s=200&v=4 +npmPackageName: '@simonnepomuk/backstage-plugin-apicurio-registry' +addedDate: '2025-08-31' diff --git a/microsite/data/plugins/datacontract.yaml b/microsite/data/plugins/datacontract.yaml new file mode 100644 index 0000000000..a267730496 --- /dev/null +++ b/microsite/data/plugins/datacontract.yaml @@ -0,0 +1,10 @@ +--- +title: Data Contract +author: Jan Remunda +authorUrl: https://www.remunda.cz/#backstage +category: Discovery +description: Ingest and visualize Data Contracts to your catalog via API Entities. +documentation: https://www.npmjs.com/package/@remunda/backstage-plugin-datacontract +iconUrl: https://www.remunda.cz/logos/datacontract.png +npmPackageName: '@remunda/backstage-plugin-datacontract' +addedDate: '2025-08-19' diff --git a/package.json b/package.json index c2c15a0b50..d4ebc22bc1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "1.43.0-next.0", + "version": "1.43.0-next.1", "backstage": { "cli": { "new": { diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 2e8221b487..f22c96ceca 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/app-defaults +## 1.6.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + ## 1.6.5 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index bc8fe84c84..9f972eccbf 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/app-defaults", - "version": "1.6.5", + "version": "1.6.6-next.0", "description": "Provides the default wiring of a Backstage App", "backstage": { "role": "web-library" diff --git a/packages/app-next-example-plugin/CHANGELOG.md b/packages/app-next-example-plugin/CHANGELOG.md index 44be63dd52..5748f8f75b 100644 --- a/packages/app-next-example-plugin/CHANGELOG.md +++ b/packages/app-next-example-plugin/CHANGELOG.md @@ -1,5 +1,13 @@ # app-next-example-plugin +## 0.0.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + ## 0.0.26 ### Patch Changes diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json index 810a49f676..7878658b5d 100644 --- a/packages/app-next-example-plugin/package.json +++ b/packages/app-next-example-plugin/package.json @@ -1,6 +1,6 @@ { "name": "app-next-example-plugin", - "version": "0.0.26", + "version": "0.0.27-next.0", "description": "Backstage internal example plugin", "backstage": { "role": "frontend-plugin", diff --git a/packages/app-next/CHANGELOG.md b/packages/app-next/CHANGELOG.md index ddae28c01b..5fc353c09d 100644 --- a/packages/app-next/CHANGELOG.md +++ b/packages/app-next/CHANGELOG.md @@ -1,5 +1,42 @@ # example-app-next +## 0.0.27-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/cli@0.34.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/frontend-app-api@0.12.1-next.0 + - @backstage/frontend-defaults@0.3.1-next.0 + - @backstage/plugin-api-docs@0.12.11-next.1 + - @backstage/plugin-app@0.2.1-next.0 + - @backstage/plugin-app-visualizer@0.1.23-next.0 + - @backstage/plugin-catalog@1.31.3-next.1 + - @backstage/plugin-catalog-graph@0.4.23-next.1 + - @backstage/plugin-catalog-import@0.13.5-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.2.21-next.1 + - @backstage/plugin-home@0.8.12-next.1 + - @backstage/plugin-kubernetes@0.12.11-next.1 + - @backstage/plugin-notifications@0.5.9-next.1 + - @backstage/plugin-org@0.6.44-next.1 + - @backstage/plugin-scaffolder@1.34.1-next.1 + - @backstage/plugin-scaffolder-react@1.19.1-next.1 + - @backstage/plugin-search@1.4.30-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-signals@0.0.23-next.1 + - @backstage/plugin-techdocs@1.14.2-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.28-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/plugin-user-settings@0.8.26-next.1 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/app-defaults@1.6.6-next.0 + - @backstage/plugin-auth-react@0.1.19-next.0 + - @backstage/plugin-kubernetes-cluster@0.0.29-next.1 + ## 0.0.27-next.0 ### Patch Changes diff --git a/packages/app-next/package.json b/packages/app-next/package.json index 17160f2a47..44602b2438 100644 --- a/packages/app-next/package.json +++ b/packages/app-next/package.json @@ -1,6 +1,6 @@ { "name": "example-app-next", - "version": "0.0.27-next.0", + "version": "0.0.27-next.1", "backstage": { "role": "frontend" }, diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 8cd4397e87..93dd1db16a 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,38 @@ # example-app +## 0.2.113-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/cli@0.34.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/frontend-app-api@0.12.1-next.0 + - @backstage/plugin-api-docs@0.12.11-next.1 + - @backstage/plugin-catalog@1.31.3-next.1 + - @backstage/plugin-catalog-graph@0.4.23-next.1 + - @backstage/plugin-catalog-import@0.13.5-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.2.21-next.1 + - @backstage/plugin-devtools@0.1.31-next.1 + - @backstage/plugin-home@0.8.12-next.1 + - @backstage/plugin-kubernetes@0.12.11-next.1 + - @backstage/plugin-notifications@0.5.9-next.1 + - @backstage/plugin-org@0.6.44-next.1 + - @backstage/plugin-scaffolder@1.34.1-next.1 + - @backstage/plugin-scaffolder-react@1.19.1-next.1 + - @backstage/plugin-search@1.4.30-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-signals@0.0.23-next.1 + - @backstage/plugin-techdocs@1.14.2-next.1 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.28-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/plugin-user-settings@0.8.26-next.1 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/app-defaults@1.6.6-next.0 + - @backstage/plugin-auth-react@0.1.19-next.0 + - @backstage/plugin-kubernetes-cluster@0.0.29-next.1 + ## 0.2.113-next.0 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 27af7cfce7..580c401a1b 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.113-next.0", + "version": "0.2.113-next.1", "backstage": { "role": "frontend" }, diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 6ea49655cf..a0d274a400 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/backend-app-api +## 1.2.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 1.2.6 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index f489f77d68..f20cd2e901 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-app-api", - "version": "1.2.6", + "version": "1.2.7-next.0", "description": "Core API used by Backstage backend apps", "backstage": { "role": "node-library" diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index f8175409a3..0375e54232 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-defaults +## 0.12.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/backend-app-api@1.2.7-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.12.0 ### Minor Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index bdcd366e85..09bb4dc85d 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-defaults", - "version": "0.12.0", + "version": "0.12.1-next.0", "description": "Backend defaults used by Backstage backend apps", "backstage": { "role": "node-library" diff --git a/packages/backend-dynamic-feature-service/CHANGELOG.md b/packages/backend-dynamic-feature-service/CHANGELOG.md index a51a853ae3..6bd6a7a781 100644 --- a/packages/backend-dynamic-feature-service/CHANGELOG.md +++ b/packages/backend-dynamic-feature-service/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/backend-dynamic-feature-service +## 0.7.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-events-backend@0.5.6-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-app-node@0.1.37-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.7.3 ### Patch Changes diff --git a/packages/backend-dynamic-feature-service/package.json b/packages/backend-dynamic-feature-service/package.json index e7a2e0e211..ff8fc29639 100644 --- a/packages/backend-dynamic-feature-service/package.json +++ b/packages/backend-dynamic-feature-service/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-dynamic-feature-service", - "version": "0.7.3", + "version": "0.7.4-next.0", "description": "Backstage dynamic feature service", "backstage": { "role": "node-library" diff --git a/packages/backend-openapi-utils/CHANGELOG.md b/packages/backend-openapi-utils/CHANGELOG.md index 868a86cdad..b86bc1b616 100644 --- a/packages/backend-openapi-utils/CHANGELOG.md +++ b/packages/backend-openapi-utils/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/backend-openapi-utils +## 0.6.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.6.0 ### Minor Changes diff --git a/packages/backend-openapi-utils/package.json b/packages/backend-openapi-utils/package.json index faccba68e1..02d9dd1407 100644 --- a/packages/backend-openapi-utils/package.json +++ b/packages/backend-openapi-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-openapi-utils", - "version": "0.6.0", + "version": "0.6.1-next.0", "description": "OpenAPI typescript support.", "backstage": { "role": "node-library" diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index 04bbbb8e75..ffc1a6eb6a 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/backend-plugin-api +## 1.4.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + ## 1.4.2 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 8b2ed57a89..46142aceda 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-plugin-api", - "version": "1.4.2", + "version": "1.4.3-next.0", "description": "Core API used by Backstage backend plugins", "backstage": { "role": "node-library" diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index c3de1881ad..ad3915e3fb 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-test-utils +## 1.9.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/backend-app-api@1.2.7-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 1.9.0-next.0 ### Minor Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index cd3f2c7283..6a6d24cf57 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-test-utils", - "version": "1.9.0-next.0", + "version": "1.9.0-next.1", "description": "Test helpers library for Backstage backends", "backstage": { "role": "node-library" diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 72c3d5cf0e..15b61dfb4e 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,43 @@ # example-backend +## 0.0.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/plugin-techdocs-backend@2.1.0-next.0 + - @backstage/plugin-mcp-actions-backend@0.1.3-next.0 + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-catalog-backend-module-openapi@0.2.14-next.0 + - @backstage/plugin-scaffolder-backend@2.2.1-next.0 + - @backstage/plugin-scaffolder-backend-module-github@0.8.3-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-app-backend@0.5.6-next.0 + - @backstage/plugin-auth-backend@0.25.4-next.0 + - @backstage/plugin-auth-backend-module-github-provider@0.3.7-next.0 + - @backstage/plugin-auth-backend-module-guest-provider@0.2.12-next.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.6.4-next.0 + - @backstage/plugin-kubernetes-backend@0.20.2-next.1 + - @backstage/plugin-notifications-backend@0.5.10-next.0 + - @backstage/plugin-permission-backend@0.7.4-next.0 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.2.12-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-signals-backend@0.3.8-next.0 + - @backstage/plugin-devtools-backend@0.5.9-next.0 + - @backstage/plugin-events-backend@0.5.6-next.0 + - @backstage/plugin-events-backend-module-google-pubsub@0.1.4-next.0 + - @backstage/plugin-proxy-backend@0.6.6-next.0 + - @backstage/plugin-search-backend@2.0.6-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.12-next.0 + - @backstage/plugin-scaffolder-backend-module-notifications@0.1.14-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.4.6-next.0 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.5.6-next.0 + - @backstage/plugin-search-backend-module-catalog@0.3.8-next.0 + - @backstage/plugin-search-backend-module-explore@0.3.7-next.1 + ## 0.0.42-next.0 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 48cd018321..a60b6d3940 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.0.42-next.0", + "version": "0.0.42-next.1", "backstage": { "role": "backend" }, diff --git a/packages/catalog-client/report-testUtils.api.md b/packages/catalog-client/report-testUtils.api.md index f5bcf55c53..b96c4f01ca 100644 --- a/packages/catalog-client/report-testUtils.api.md +++ b/packages/catalog-client/report-testUtils.api.md @@ -22,6 +22,7 @@ import { GetLocationsResponse } from '@backstage/catalog-client'; import { Location as Location_2 } from '@backstage/catalog-client'; import { QueryEntitiesRequest } from '@backstage/catalog-client'; import { QueryEntitiesResponse } from '@backstage/catalog-client'; +import { StreamEntitiesRequest } from '@backstage/catalog-client'; import { ValidateEntityResponse } from '@backstage/catalog-client'; // @public @@ -70,6 +71,8 @@ export class InMemoryCatalogClient implements CatalogApi { // (undocumented) removeLocationById(_id: string): Promise; // (undocumented) + streamEntities(request?: StreamEntitiesRequest): AsyncIterable; + // (undocumented) validateEntity( _entity: Entity, _locationRef: string, diff --git a/packages/catalog-client/report.api.md b/packages/catalog-client/report.api.md index ebb0f5ac97..452d788ba9 100644 --- a/packages/catalog-client/report.api.md +++ b/packages/catalog-client/report.api.md @@ -88,6 +88,10 @@ export interface CatalogApi { id: string, options?: CatalogRequestOptions, ): Promise; + streamEntities( + request?: StreamEntitiesRequest, + options?: CatalogRequestOptions, + ): AsyncIterable; validateEntity( entity: Entity, locationRef: string, @@ -170,6 +174,10 @@ export class CatalogClient implements CatalogApi { id: string, options?: CatalogRequestOptions, ): Promise; + streamEntities( + request?: StreamEntitiesRequest, + options?: CatalogRequestOptions, + ): AsyncIterable; validateEntity( entity: Entity, locationRef: string, @@ -317,6 +325,14 @@ export type QueryEntitiesResponse = { }; }; +// @public +export type StreamEntitiesRequest = Omit< + QueryEntitiesInitialRequest, + 'limit' | 'offset' +> & { + pageSize?: number; +}; + // @public export type ValidateEntityResponse = | { diff --git a/packages/catalog-client/src/CatalogClient.test.ts b/packages/catalog-client/src/CatalogClient.test.ts index abafeb18a5..8307f77cdd 100644 --- a/packages/catalog-client/src/CatalogClient.test.ts +++ b/packages/catalog-client/src/CatalogClient.test.ts @@ -540,6 +540,71 @@ describe('CatalogClient', () => { }); }); + describe('streamEntities', () => { + const defaultResponse: QueryEntitiesResponse = { + items: [ + { + apiVersion: '1', + kind: 'Component', + metadata: { + name: 'Test2', + namespace: 'test1', + }, + }, + { + apiVersion: '1', + kind: 'Component', + metadata: { + name: 'Test1', + namespace: 'test1', + }, + }, + ], + pageInfo: { + nextCursor: 'next', + prevCursor: 'prev', + }, + totalItems: 10, + }; + + beforeEach(() => { + server.use( + rest.get(`${mockBaseUrl}/entities/by-query`, (req, res, ctx) => { + const cursor = req.url.searchParams.get('cursor'); + if (cursor === 'next') { + return res(ctx.json({ items: [], pageInfo: {}, totalItems: 0 })); + } + return res(ctx.json(defaultResponse)); + }), + ); + }); + + it('should stream entities', async () => { + const stream = client.streamEntities({}, { token }); + const results: Entity[][] = []; + for await (const entityPage of stream) { + results.push(entityPage); + } + expect(results).toEqual([defaultResponse.items, []]); + }); + + it('should handle errors', async () => { + const mockedEndpoint = jest + .fn() + .mockImplementation((_req, res, ctx) => res(ctx.status(401))); + + server.use(rest.get(`${mockBaseUrl}/entities/by-query`, mockedEndpoint)); + + const stream = client.streamEntities({}, { token }); + await expect(async () => { + const results = []; + for await (const entity of stream) { + results.push(entity); + } + }).rejects.toThrow(/Request failed with 401 Unauthorized/); + }); + }); + describe('getEntityByRef', () => { const existingEntity: Entity = { apiVersion: 'v1', diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts index 7d86eed95d..07e6ad2946 100644 --- a/packages/catalog-client/src/CatalogClient.ts +++ b/packages/catalog-client/src/CatalogClient.ts @@ -40,6 +40,7 @@ import { Location, QueryEntitiesRequest, QueryEntitiesResponse, + StreamEntitiesRequest, ValidateEntityResponse, } from './types/api'; import { isQueryEntitiesInitialRequest, splitRefsIntoChunks } from './utils'; @@ -48,6 +49,7 @@ import type { AnalyzeLocationRequest, AnalyzeLocationResponse, } from '@backstage/plugin-catalog-common'; +import { DEFAULT_STREAM_ENTITIES_LIMIT } from './constants.ts'; /** * A frontend and backend compatible client for communicating with the Backstage @@ -456,6 +458,27 @@ export class CatalogClient implements CatalogApi { return response.json() as Promise; } + /** + * {@inheritdoc CatalogApi.streamEntities} + */ + async *streamEntities( + request?: StreamEntitiesRequest, + options?: CatalogRequestOptions, + ): AsyncIterable { + let cursor: string | undefined = undefined; + const limit = request?.pageSize ?? DEFAULT_STREAM_ENTITIES_LIMIT; + do { + const res = await this.queryEntities( + cursor ? { ...request, cursor, limit } : { ...request, limit }, + options, + ); + + yield res.items; + + cursor = res.pageInfo.nextCursor; + } while (cursor); + } + // // Private methods // diff --git a/plugins/catalog-backend-module-puppetdb/src/alpha.ts b/packages/catalog-client/src/constants.ts similarity index 84% rename from plugins/catalog-backend-module-puppetdb/src/alpha.ts rename to packages/catalog-client/src/constants.ts index 01a9b25f7c..dd8d0530df 100644 --- a/plugins/catalog-backend-module-puppetdb/src/alpha.ts +++ b/packages/catalog-client/src/constants.ts @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Backstage Authors + * Copyright 2025 The Backstage Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,5 +14,4 @@ * limitations under the License. */ -export * from './module'; -export { default } from './module'; +export const DEFAULT_STREAM_ENTITIES_LIMIT = 500; diff --git a/packages/catalog-client/src/testUtils/InMemoryCatalogClient.test.ts b/packages/catalog-client/src/testUtils/InMemoryCatalogClient.test.ts index c5d1f3abc8..dbe3390747 100644 --- a/packages/catalog-client/src/testUtils/InMemoryCatalogClient.test.ts +++ b/packages/catalog-client/src/testUtils/InMemoryCatalogClient.test.ts @@ -123,6 +123,16 @@ describe('InMemoryCatalogClient', () => { }); }); + it('streamEntities', async () => { + const client = new InMemoryCatalogClient({ entities }); + const stream = client.streamEntities(); + const results: Entity[][] = []; + for await (const page of stream) { + results.push(page); + } + expect(results).toEqual([entities]); + }); + it('getEntityAncestors', async () => { const client = new InMemoryCatalogClient({ entities }); await expect( diff --git a/packages/catalog-client/src/testUtils/InMemoryCatalogClient.ts b/packages/catalog-client/src/testUtils/InMemoryCatalogClient.ts index 97663de922..a9db99ab77 100644 --- a/packages/catalog-client/src/testUtils/InMemoryCatalogClient.ts +++ b/packages/catalog-client/src/testUtils/InMemoryCatalogClient.ts @@ -32,6 +32,7 @@ import { Location, QueryEntitiesRequest, QueryEntitiesResponse, + StreamEntitiesRequest, ValidateEntityResponse, } from '@backstage/catalog-client'; import { @@ -48,6 +49,7 @@ import type { AnalyzeLocationRequest, AnalyzeLocationResponse, } from '@backstage/plugin-catalog-common'; +import { DEFAULT_STREAM_ENTITIES_LIMIT } from '../constants.ts'; function buildEntitySearch(entity: Entity) { const rows = traverse(entity); @@ -279,6 +281,22 @@ export class InMemoryCatalogClient implements CatalogApi { throw new NotImplementedError('Method not implemented.'); } + async *streamEntities( + request?: StreamEntitiesRequest, + ): AsyncIterable { + let cursor: string | undefined = undefined; + const limit = request?.pageSize ?? DEFAULT_STREAM_ENTITIES_LIMIT; + do { + const res = await this.queryEntities( + cursor ? { ...request, limit, cursor } : { ...request, limit }, + ); + + yield res.items; + + cursor = res.pageInfo.nextCursor; + } while (cursor); + } + #createEntityRefMap() { return new Map(this.#entities.map(e => [stringifyEntityRef(e), e])); } diff --git a/packages/catalog-client/src/types/api.ts b/packages/catalog-client/src/types/api.ts index 28fe8bf276..014baba613 100644 --- a/packages/catalog-client/src/types/api.ts +++ b/packages/catalog-client/src/types/api.ts @@ -465,6 +465,21 @@ export type QueryEntitiesResponse = { }; }; +/** + * Stream entities request for {@link CatalogClient.streamEntities}. + * + * @public + */ +export type StreamEntitiesRequest = Omit< + QueryEntitiesInitialRequest, + 'limit' | 'offset' +> & { + /** + * The number of entities to fetch in each page. Defaults to 500. + */ + pageSize?: number; +}; + /** * A client for interacting with the Backstage software catalog through its API. * @@ -692,4 +707,18 @@ export interface CatalogApi { location: AnalyzeLocationRequest, options?: CatalogRequestOptions, ): Promise; + + /** + * Asynchronously streams entities from the catalog. Uses `queryEntities` + * to fetch entities in batches, and yields them one page at a time. + * + * @public + * + * @param request - Request parameters + * @param options - Additional options + */ + streamEntities( + request?: StreamEntitiesRequest, + options?: CatalogRequestOptions, + ): AsyncIterable; } diff --git a/packages/catalog-client/src/types/index.ts b/packages/catalog-client/src/types/index.ts index 73b16f4554..5b483d9b29 100644 --- a/packages/catalog-client/src/types/index.ts +++ b/packages/catalog-client/src/types/index.ts @@ -38,5 +38,6 @@ export type { QueryEntitiesInitialRequest, QueryEntitiesRequest, QueryEntitiesResponse, + StreamEntitiesRequest, } from './api'; export { ENTITY_STATUS_CATALOG_PROCESSING_TYPE } from './status'; diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 48af347d9b..87be49efce 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/cli +## 0.34.2-next.1 + +### Patch Changes + +- e1adce4: Updated the backend plugin template to use a new pattern for the `TodoListService` that reduces boilerplate. +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + ## 0.34.1-next.0 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 20f83c1582..51090239d8 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/cli", - "version": "0.34.1-next.0", + "version": "0.34.2-next.1", "description": "CLI for developing Backstage plugins and apps", "backstage": { "role": "cli" diff --git a/packages/core-compat-api/CHANGELOG.md b/packages/core-compat-api/CHANGELOG.md index c09b0b5a34..a966469313 100644 --- a/packages/core-compat-api/CHANGELOG.md +++ b/packages/core-compat-api/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/core-compat-api +## 0.5.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + ## 0.5.2-next.0 ### Patch Changes diff --git a/packages/core-compat-api/package.json b/packages/core-compat-api/package.json index bce9b241a4..1430973106 100644 --- a/packages/core-compat-api/package.json +++ b/packages/core-compat-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/core-compat-api", - "version": "0.5.2-next.0", + "version": "0.5.2-next.1", "backstage": { "role": "web-library" }, diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 78a4212181..515e6eac5b 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/core-components +## 0.17.6-next.0 + +### Patch Changes + +- e409bec: Fixes for rendering initials in the avatar component. + ## 0.17.5 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 509a3bb38f..be91c5dbd5 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/core-components", - "version": "0.17.5", + "version": "0.17.6-next.0", "description": "Core components used by Backstage plugins and apps", "backstage": { "role": "web-library" diff --git a/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.tsx b/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.tsx index 1fcf664bab..0b8fe8cd8c 100644 --- a/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.tsx +++ b/packages/core-components/src/components/HeaderIconLinkRow/HeaderIconLinkRow.tsx @@ -27,6 +27,7 @@ const useStyles = makeStyles( gridAutoFlow: 'column', gridAutoColumns: 'min-content', gridGap: theme.spacing(3), + wordBreak: 'keep-all', }, }), { name: 'BackstageHeaderIconLinkRow' }, diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 035bd16d8d..261e595b30 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/create-app +## 0.7.4-next.1 + +### Patch Changes + +- 02dbe8e: Add missing dependency to `@backstage/cli`, `@backstage/core-plugin-api` and `@backstage/integration-react` + ## 0.7.4-next.0 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 6e0ca99c43..7f2f9e4cd5 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/create-app", - "version": "0.7.4-next.0", + "version": "0.7.4-next.1", "description": "A CLI that helps you create your own Backstage app", "backstage": { "role": "cli" diff --git a/packages/create-app/templates/next-app/packages/app/package.json.hbs b/packages/create-app/templates/next-app/packages/app/package.json.hbs index eb214e4ad1..bc02fdc21a 100644 --- a/packages/create-app/templates/next-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/next-app/packages/app/package.json.hbs @@ -14,10 +14,13 @@ "lint": "backstage-cli package lint" }, "dependencies": { + "@backstage/cli": "^{{ version '@backstage/cli'}}", "@backstage/core-compat-api": "^{{ version '@backstage/core-compat-api'}}", "@backstage/core-components": "^{{ version '@backstage/core-components'}}", + "@backstage/core-plugin-api": "^{{ version '@backstage/core-plugin-api'}}", "@backstage/frontend-defaults": "^{{ version '@backstage/frontend-defaults'}}", "@backstage/frontend-plugin-api": "^{{ version '@backstage/frontend-plugin-api'}}", + "@backstage/integration-react": "^{{ version '@backstage/integration-react'}}", "@backstage/plugin-catalog": "^{{ version '@backstage/plugin-catalog'}}", "@backstage/plugin-notifications": "^{{ version '@backstage/plugin-notifications'}}", "@backstage/plugin-org": "^{{ version '@backstage/plugin-org'}}", diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 6f28b0cfc2..503ae406ae 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/dev-utils +## 1.1.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/app-defaults@1.6.6-next.0 + ## 1.1.14-next.0 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 1a9aa3e665..55b4c3fdfe 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/dev-utils", - "version": "1.1.14-next.0", + "version": "1.1.14-next.1", "description": "Utilities for developing Backstage plugins.", "backstage": { "role": "web-library" diff --git a/packages/frontend-app-api/CHANGELOG.md b/packages/frontend-app-api/CHANGELOG.md index 4696abbf8a..50cd8614a2 100644 --- a/packages/frontend-app-api/CHANGELOG.md +++ b/packages/frontend-app-api/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/frontend-app-api +## 0.12.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/frontend-defaults@0.3.1-next.0 + ## 0.12.0 ### Minor Changes diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index 3f2fdee0c3..ce62403915 100644 --- a/packages/frontend-app-api/package.json +++ b/packages/frontend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-app-api", - "version": "0.12.0", + "version": "0.12.1-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-defaults/CHANGELOG.md b/packages/frontend-defaults/CHANGELOG.md index a03393dead..86eae4efdf 100644 --- a/packages/frontend-defaults/CHANGELOG.md +++ b/packages/frontend-defaults/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/frontend-defaults +## 0.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/frontend-app-api@0.12.1-next.0 + - @backstage/plugin-app@0.2.1-next.0 + ## 0.3.0 ### Minor Changes diff --git a/packages/frontend-defaults/package.json b/packages/frontend-defaults/package.json index 7cf54253fe..880cd618ef 100644 --- a/packages/frontend-defaults/package.json +++ b/packages/frontend-defaults/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-defaults", - "version": "0.3.0", + "version": "0.3.1-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-dynamic-feature-loader/CHANGELOG.md b/packages/frontend-dynamic-feature-loader/CHANGELOG.md index 4cfeccdf71..dda15e8fd1 100644 --- a/packages/frontend-dynamic-feature-loader/CHANGELOG.md +++ b/packages/frontend-dynamic-feature-loader/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/frontend-dynamic-feature-loader +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + ## 0.1.4 ### Patch Changes diff --git a/packages/frontend-dynamic-feature-loader/package.json b/packages/frontend-dynamic-feature-loader/package.json index ef864611ab..b965bdf7a1 100644 --- a/packages/frontend-dynamic-feature-loader/package.json +++ b/packages/frontend-dynamic-feature-loader/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-dynamic-feature-loader", - "version": "0.1.4", + "version": "0.1.5-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-internal/CHANGELOG.md b/packages/frontend-internal/CHANGELOG.md index 4df4404dca..0537c8ffd1 100644 --- a/packages/frontend-internal/CHANGELOG.md +++ b/packages/frontend-internal/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/frontend +## 0.0.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + ## 0.0.12 ### Patch Changes diff --git a/packages/frontend-internal/package.json b/packages/frontend-internal/package.json index d2ef4aa194..ea68ff1405 100644 --- a/packages/frontend-internal/package.json +++ b/packages/frontend-internal/package.json @@ -1,6 +1,6 @@ { "name": "@internal/frontend", - "version": "0.0.12", + "version": "0.0.13-next.0", "backstage": { "role": "web-library", "inline": true diff --git a/packages/frontend-plugin-api/CHANGELOG.md b/packages/frontend-plugin-api/CHANGELOG.md index 4004c4ef30..1b39c5ad44 100644 --- a/packages/frontend-plugin-api/CHANGELOG.md +++ b/packages/frontend-plugin-api/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/frontend-plugin-api +## 0.11.1-next.0 + +### Patch Changes + +- 2fb8b04: Improved the types of `createFrontendPlugin` and `createFrontendModule` so that errors due to incompatible options are indicated more clearly. +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + ## 0.11.0 ### Minor Changes diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index e3702860b8..2eb218e5ab 100644 --- a/packages/frontend-plugin-api/package.json +++ b/packages/frontend-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-plugin-api", - "version": "0.11.0", + "version": "0.11.1-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-test-utils/CHANGELOG.md b/packages/frontend-test-utils/CHANGELOG.md index d54043ee21..585322aa8e 100644 --- a/packages/frontend-test-utils/CHANGELOG.md +++ b/packages/frontend-test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/frontend-test-utils +## 0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/frontend-app-api@0.12.1-next.0 + - @backstage/plugin-app@0.2.1-next.0 + ## 0.3.5 ### Patch Changes diff --git a/packages/frontend-test-utils/package.json b/packages/frontend-test-utils/package.json index 6256492ee0..b45dbb76e2 100644 --- a/packages/frontend-test-utils/package.json +++ b/packages/frontend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-test-utils", - "version": "0.3.5", + "version": "0.3.6-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 86a5720839..543f8796dd 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/integration-react +## 1.2.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + ## 1.2.9 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 0c042da567..1a7d6dc01e 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/integration-react", - "version": "1.2.9", + "version": "1.2.10-next.0", "description": "Frontend package for managing integrations towards external systems", "backstage": { "role": "web-library" diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 74f899dc77..11f87da988 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/integration +## 1.18.0-next.0 + +### Minor Changes + +- 03bdc68: Added support for limiting GithubAppCredentialsMux to specific apps + ## 1.17.1 ### Patch Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index cb78f7b6ad..014bd3564e 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/integration", - "version": "1.17.1", + "version": "1.18.0-next.0", "description": "Helpers for managing integrations towards external systems", "backstage": { "role": "common-library" diff --git a/packages/integration/report.api.md b/packages/integration/report.api.md index f07249bc13..f642058ccd 100644 --- a/packages/integration/report.api.md +++ b/packages/integration/report.api.md @@ -669,7 +669,7 @@ export type GithubAppConfig = { // @public export class GithubAppCredentialsMux { - constructor(config: GithubIntegrationConfig); + constructor(config: GithubIntegrationConfig, appIds?: number[]); // (undocumented) getAllInstallations(): Promise< RestEndpointMethodTypes['apps']['listInstallations']['response']['data'] diff --git a/packages/integration/src/github/SingleInstanceGithubCredentialsProvider.ts b/packages/integration/src/github/SingleInstanceGithubCredentialsProvider.ts index dc3a86b72b..fd3c02486f 100644 --- a/packages/integration/src/github/SingleInstanceGithubCredentialsProvider.ts +++ b/packages/integration/src/github/SingleInstanceGithubCredentialsProvider.ts @@ -201,9 +201,11 @@ class GithubAppManager { export class GithubAppCredentialsMux { private readonly apps: GithubAppManager[]; - constructor(config: GithubIntegrationConfig) { + constructor(config: GithubIntegrationConfig, appIds: number[] = []) { this.apps = - config.apps?.map(ac => new GithubAppManager(ac, config.apiBaseUrl)) ?? []; + config.apps + ?.filter(app => (appIds.length ? appIds.includes(app.appId) : true)) + .map(ac => new GithubAppManager(ac, config.apiBaseUrl)) ?? []; } async getAllInstallations(): Promise< diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 38d2332fe3..569444b4b8 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/repo-tools +## 0.15.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.15.1 ### Patch Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index ffebfd0b0d..9b7c875279 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/repo-tools", - "version": "0.15.1", + "version": "0.15.2-next.0", "description": "CLI for Backstage repo tooling ", "backstage": { "role": "cli" diff --git a/packages/scaffolder-internal/CHANGELOG.md b/packages/scaffolder-internal/CHANGELOG.md index 6c0fc59e5c..dea0dbb318 100644 --- a/packages/scaffolder-internal/CHANGELOG.md +++ b/packages/scaffolder-internal/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/scaffolder +## 0.0.13-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/plugin-scaffolder-react@1.19.1-next.1 + ## 0.0.13-next.0 ### Patch Changes diff --git a/packages/scaffolder-internal/package.json b/packages/scaffolder-internal/package.json index e4d5db5063..6bfae424d7 100644 --- a/packages/scaffolder-internal/package.json +++ b/packages/scaffolder-internal/package.json @@ -1,6 +1,6 @@ { "name": "@internal/scaffolder", - "version": "0.0.13-next.0", + "version": "0.0.13-next.1", "backstage": { "role": "web-library", "inline": true diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 42e2534294..7bc24fb346 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,18 @@ # techdocs-cli-embedded-app +## 0.2.112-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.34.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/plugin-catalog@1.31.3-next.1 + - @backstage/plugin-techdocs@1.14.2-next.1 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/app-defaults@1.6.6-next.0 + ## 0.2.112-next.0 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 633f6b2e6e..132cf5a987 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.112-next.0", + "version": "0.2.112-next.1", "backstage": { "role": "frontend" }, diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index 8cc40d4802..c888ff6b4f 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,14 @@ # @techdocs/cli +## 1.9.8-next.0 + +### Patch Changes + +- db63208: Fixed an issue where `@techdocs/cli serve` command did not pick up the latest changes to TechDocs. +- Updated dependencies + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-techdocs-node@1.13.7-next.0 + ## 1.9.6 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index a40d5ec350..8ae30b9889 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,6 +1,6 @@ { "name": "@techdocs/cli", - "version": "1.9.6", + "version": "1.9.8-next.0", "description": "Utility CLI for managing TechDocs sites in Backstage.", "backstage": { "role": "cli" diff --git a/packages/ui/css/styles.css b/packages/ui/css/styles.css index 26a4fa28b3..88be061ba5 100644 --- a/packages/ui/css/styles.css +++ b/packages/ui/css/styles.css @@ -8797,6 +8797,10 @@ align-items: end; } +.bui-align-baseline { + align-items: baseline; +} + .bui-align-stretch { align-items: stretch; } diff --git a/packages/ui/src/components/Select/Select.stories.tsx b/packages/ui/src/components/Select/Select.stories.tsx index 5ca84d10f6..5c3ed242dc 100644 --- a/packages/ui/src/components/Select/Select.stories.tsx +++ b/packages/ui/src/components/Select/Select.stories.tsx @@ -328,3 +328,34 @@ export const WithLongNamesAndPadding: Story = { ), ], }; + +export const WithAccessibilityProps: Story = { + args: { + ...Default.args, + }, + render: args => ( + +
+

With aria-label

+ +
+
+ ), +}; diff --git a/packages/ui/src/components/Select/Select.tsx b/packages/ui/src/components/Select/Select.tsx index c63e8964ab..f38311b117 100644 --- a/packages/ui/src/components/Select/Select.tsx +++ b/packages/ui/src/components/Select/Select.tsx @@ -70,6 +70,8 @@ export const Select = forwardRef((props, ref) => { className={clsx(classNames.root, className)} {...dataAttributes} ref={ref} + aria-label={ariaLabel} + aria-labelledby={ariaLabelledBy} {...rest} > { return { @@ -673,7 +674,8 @@ describe('GithubEntityProvider', () => { topics: [], html_url: `https://github.com/${organization}/test-repo`, url: `https://github.com/${organization}/test-repo`, - } as Partial; + owner: { login: 'test-org' }, + } as PartialDeep; const catalogCommit = { added: [] as string[], @@ -1003,7 +1005,10 @@ describe('GithubEntityProvider', () => { topics: [], archived: action === 'archived', private: action !== 'publicized', - } as Partial; + owner: { + login: 'test-org', + }, + } as PartialDeep; const event = { action, diff --git a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts index dd8c16ef34..40ccf2aaaa 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts @@ -16,6 +16,7 @@ import { Config } from '@backstage/config'; import { + GithubAppCredentialsMux, GithubCredentialsProvider, GithubIntegration, GithubIntegrationConfig, @@ -82,6 +83,7 @@ type Repository = { defaultBranchRef?: string; isCatalogInfoFilePresent: boolean; visibility: string; + organization: string; }; /** @@ -219,8 +221,25 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { ); } - private async createGraphqlClient() { - const organization = this.config.organization; + private async getOrganizations(): Promise { + if (this.config.organization) return [this.config.organization]; + + const githubAppMux = new GithubAppCredentialsMux(this.integration, [ + this.config.app!, + ]); + const installs = await githubAppMux.getAllInstallations(); + return installs + .map(install => + install.target_type === 'Organization' && + install.account && + 'login' in install.account + ? install.account.login + : undefined, + ) + .filter(Boolean) as string[]; + } + + private async createGraphqlClient(organization: string) { const host = this.integration.host; const orgUrl = `https://${host}/${organization}`; @@ -236,15 +255,21 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { // go to the server and get all repositories private async findCatalogFiles(): Promise { - const organization = this.config.organization; + const organizations = await this.getOrganizations(); const catalogPath = this.config.catalogPath; - const client = await this.createGraphqlClient(); - const { repositories: repositoriesFromGithub } = - await getOrganizationRepositories(client, organization, catalogPath); - const repositories = repositoriesFromGithub.map( - this.createRepoFromGithubResponse, - ); + let repositories: Repository[] = []; + for (const organization of organizations) { + const client = await this.createGraphqlClient(organization); + + const { repositories: repositoriesFromGithub } = + await getOrganizationRepositories(client, organization, catalogPath); + repositories = repositories.concat( + repositoriesFromGithub.map(r => + this.createRepoFromGithubResponse(r, organization), + ), + ); + } if (this.config.validateLocationsExist) { return repositories.filter( @@ -323,12 +348,15 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { } private async onPush(event: PushEvent) { - const configOrganization = this.config.organization; - const eventOrganization = event.organization?.login; + const configOrganizations = (await this.getOrganizations()).map(org => + org.toLocaleLowerCase('en-US'), + ); + const eventOrganization = + event.organization?.login.toLocaleLowerCase('en-US'); if ( - configOrganization.toLocaleLowerCase('en-US') !== - eventOrganization?.toLocaleLowerCase('en-US') + !eventOrganization || + !configOrganizations.includes(eventOrganization) ) { this.logger.debug( `skipping push event from organization ${event.organization?.login}`, @@ -412,12 +440,15 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { } private async onRepoChange(event: RepositoryEvent) { - const configOrganization = this.config.organization; - const eventOrganization = event.organization?.login; + const configOrganizations = (await this.getOrganizations()).map(org => + org.toLocaleLowerCase('en-US'), + ); + const eventOrganization = + event.organization?.login.toLocaleLowerCase('en-US'); if ( - configOrganization.toLocaleLowerCase('en-US') !== - eventOrganization?.toLocaleLowerCase('en-US') + !eventOrganization || + !configOrganizations.includes(eventOrganization) ) { this.logger.debug( `skipping repository event from organization ${event.organization?.login}`, @@ -612,16 +643,18 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { private async addEntitiesForRepo(repository: Repository) { if (this.config.validateLocationsExist) { - const organization = this.config.organization; + const organization = repository.organization; const catalogPath = this.config.catalogPath; - const client = await this.createGraphqlClient(); + const client = await this.createGraphqlClient(organization); const repositoryFromGithub = await getOrganizationRepository( client, organization, repository.name, catalogPath, - ).then(r => (r ? this.createRepoFromGithubResponse(r) : null)); + ).then(r => + r ? this.createRepoFromGithubResponse(r, organization) : null, + ); if (!repositoryFromGithub?.isCatalogInfoFilePresent) { return; @@ -651,11 +684,13 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { // only the catalog file will be recovered from the commits isCatalogInfoFilePresent: true, visibility: event.repository.visibility, + organization: event.repository.owner.login, }; } private createRepoFromGithubResponse( repositoryResponse: RepositoryResponse, + organization: string, ): Repository { return { url: repositoryResponse.url, @@ -670,6 +705,7 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { repositoryResponse.catalogInfoFile?.__typename === 'Blob' && repositoryResponse.catalogInfoFile.text !== '', visibility: repositoryResponse.visibility, + organization, }; } diff --git a/plugins/catalog-backend-module-github/src/providers/GithubEntityProviderConfig.test.ts b/plugins/catalog-backend-module-github/src/providers/GithubEntityProviderConfig.test.ts index 28a3f5e7dd..3b1743e404 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubEntityProviderConfig.test.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubEntityProviderConfig.test.ts @@ -111,13 +111,20 @@ describe('readProviderConfigs', () => { }, }, }, + providerAppOnly: { + app: '1234', + }, + providerAppAndOrganization: { + app: '1234', + organization: 'test-org1', + }, }, }, }, }); const providerConfigs = readProviderConfigs(config); - expect(providerConfigs).toHaveLength(10); + expect(providerConfigs).toHaveLength(12); expect(providerConfigs[0]).toEqual({ id: 'providerOrganizationOnly', organization: 'test-org1', @@ -313,6 +320,45 @@ describe('readProviderConfigs', () => { }, validateLocationsExist: false, }); + expect(providerConfigs[10]).toEqual({ + id: 'providerAppOnly', + app: 1234, + catalogPath: '/catalog-info.yaml', + host: 'github.com', + filters: { + repository: undefined, + branch: undefined, + allowForks: true, + topic: { + include: undefined, + exclude: undefined, + }, + visibility: undefined, + allowArchived: false, + }, + schedule: DEFAULT_GITHUB_ENTITY_PROVIDER_CONFIG_SCHEDULE, + validateLocationsExist: false, + }); + expect(providerConfigs[11]).toEqual({ + id: 'providerAppAndOrganization', + app: 1234, + organization: 'test-org1', + catalogPath: '/catalog-info.yaml', + host: 'github.com', + filters: { + repository: undefined, + branch: undefined, + allowForks: true, + topic: { + include: undefined, + exclude: undefined, + }, + visibility: undefined, + allowArchived: false, + }, + schedule: DEFAULT_GITHUB_ENTITY_PROVIDER_CONFIG_SCHEDULE, + validateLocationsExist: false, + }); }); it('defaults validateLocationsExist to false', () => { @@ -365,4 +411,18 @@ describe('readProviderConfigs', () => { expect(() => readProviderConfigs(config)).toThrow(); }); + + it('throws an error when no organization or app is configured', () => { + const config = new ConfigReader({ + catalog: { + providers: { + github: { + catalogPath: '/*/catalog-info.yaml', + }, + }, + }, + }); + + expect(() => readProviderConfigs(config)).toThrow(); + }); }); diff --git a/plugins/catalog-backend-module-github/src/providers/GithubEntityProviderConfig.ts b/plugins/catalog-backend-module-github/src/providers/GithubEntityProviderConfig.ts index e33e7adfdd..64fac09f6e 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubEntityProviderConfig.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubEntityProviderConfig.ts @@ -35,7 +35,8 @@ export const DEFAULT_GITHUB_ENTITY_PROVIDER_CONFIG_SCHEDULE = { export type GithubEntityProviderConfig = { id: string; catalogPath: string; - organization: string; + organization?: string; + app?: number; host: string; filters: { repository?: RegExp; @@ -62,7 +63,7 @@ export function readProviderConfigs( return []; } - if (providersConfig.has('organization')) { + if (providersConfig.has('organization') || providersConfig.has('app')) { // simple/single config variant return [readProviderConfig(DEFAULT_PROVIDER_ID, providersConfig)]; } @@ -78,7 +79,15 @@ function readProviderConfig( id: string, config: Config, ): GithubEntityProviderConfig { - const organization = config.getString('organization'); + const organization = config.getOptionalString('organization'); + const app = config.getOptionalNumber('app'); + + if (!organization && !app) { + throw new Error( + 'Error while processing GitHub provider config. Either organization or app must be specified.', + ); + } + const catalogPath = config.getOptionalString('catalogPath') ?? DEFAULT_CATALOG_PATH; const host = config.getOptionalString('host') ?? 'github.com'; @@ -123,6 +132,7 @@ function readProviderConfig( id, catalogPath, organization, + app, host, filters: { repository: repositoryPattern diff --git a/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md b/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md index 444af52f5e..afd3317620 100644 --- a/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-gitlab-org +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend-module-gitlab@0.7.3-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab-org/package.json b/plugins/catalog-backend-module-gitlab-org/package.json index 7f057dfcb2..05b9e75a0c 100644 --- a/plugins/catalog-backend-module-gitlab-org/package.json +++ b/plugins/catalog-backend-module-gitlab-org/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab-org", - "version": "0.2.12", + "version": "0.2.13-next.0", "description": "The gitlab-org backend module for the catalog plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index 39006e76ab..958c3b364a 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.7.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.7.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index dd35aa9d31..7d8fe59327 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", - "version": "0.7.2", + "version": "0.7.3-next.0", "description": "A Backstage catalog backend module that helps integrate towards GitLab", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index d52103fb91..9139c3e3f1 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.7.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.7.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index f4d953de8d..5a2acc53fc 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", - "version": "0.7.3", + "version": "0.7.4-next.0", "description": "An entity provider for streaming large asset sources into the catalog", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index fd18695791..83b25b4f4c 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.11.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.11.8 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 363e5bda9e..9e32b21bb3 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", - "version": "0.11.8", + "version": "0.11.9-next.0", "description": "A Backstage catalog backend module that helps integrate towards LDAP", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-logs/CHANGELOG.md b/plugins/catalog-backend-module-logs/CHANGELOG.md index c2afc6aabf..9c42d29587 100644 --- a/plugins/catalog-backend-module-logs/CHANGELOG.md +++ b/plugins/catalog-backend-module-logs/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-logs +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@3.0.2-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.1.13 ### Patch Changes diff --git a/plugins/catalog-backend-module-logs/package.json b/plugins/catalog-backend-module-logs/package.json index 0a98597e8c..be3ce91abd 100644 --- a/plugins/catalog-backend-module-logs/package.json +++ b/plugins/catalog-backend-module-logs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-logs", - "version": "0.1.13", + "version": "0.1.14-next.0", "description": "A module that subscribes to catalog related events and logs them.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index b8093cb586..b48d58fbd2 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.8.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.8.0-next.0 ### Minor Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index fe53bc253f..facfd228a3 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", - "version": "0.8.0-next.0", + "version": "0.8.0-next.1", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index e54053e089..6c82466060 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.2.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.2.13 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index c5981e768d..3902aafcb7 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", - "version": "0.2.13", + "version": "0.2.14-next.0", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md index 4bd2688063..141e2d52ad 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.2.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.2.13 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index d82414a792..91e45a63f7 100644 --- a/plugins/catalog-backend-module-puppetdb/package.json +++ b/plugins/catalog-backend-module-puppetdb/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-puppetdb", - "version": "0.2.13", + "version": "0.2.14-next.0", "description": "A Backstage catalog backend module that helps integrate towards PuppetDB", "backstage": { "role": "backend-plugin-module", @@ -24,16 +24,12 @@ "license": "Apache-2.0", "exports": { ".": "./src/index.ts", - "./alpha": "./src/alpha.ts", "./package.json": "./package.json" }, "main": "src/index.ts", "types": "src/index.ts", "typesVersions": { "*": { - "alpha": [ - "src/alpha.ts" - ], "package.json": [ "package.json" ] diff --git a/plugins/catalog-backend-module-puppetdb/report-alpha.api.md b/plugins/catalog-backend-module-puppetdb/report-alpha.api.md deleted file mode 100644 index 211add3895..0000000000 --- a/plugins/catalog-backend-module-puppetdb/report-alpha.api.md +++ /dev/null @@ -1,13 +0,0 @@ -## API Report File for "@backstage/plugin-catalog-backend-module-puppetdb" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; - -// @alpha -const catalogModulePuppetDbEntityProvider: BackendFeature; -export default catalogModulePuppetDbEntityProvider; - -// (No @packageDocumentation comment for this package) -``` diff --git a/plugins/catalog-backend-module-puppetdb/report.api.md b/plugins/catalog-backend-module-puppetdb/report.api.md index f6fa5bfc83..6b846b29dd 100644 --- a/plugins/catalog-backend-module-puppetdb/report.api.md +++ b/plugins/catalog-backend-module-puppetdb/report.api.md @@ -3,6 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import { EntityProvider } from '@backstage/plugin-catalog-node'; import { EntityProviderConnection } from '@backstage/plugin-catalog-node'; @@ -16,6 +17,10 @@ import { SchedulerServiceTaskScheduleDefinition } from '@backstage/backend-plugi // @public export const ANNOTATION_PUPPET_CERTNAME = 'puppet.com/certname'; +// @public +const catalogModulePuppetDbEntityProvider: BackendFeature; +export default catalogModulePuppetDbEntityProvider; + // @public export const DEFAULT_PROVIDER_ID = 'default'; diff --git a/plugins/catalog-backend-module-puppetdb/src/index.ts b/plugins/catalog-backend-module-puppetdb/src/index.ts index b5c5f9d209..9b10bd630f 100644 --- a/plugins/catalog-backend-module-puppetdb/src/index.ts +++ b/plugins/catalog-backend-module-puppetdb/src/index.ts @@ -22,3 +22,4 @@ export * from './providers'; export * from './puppet'; +export { default } from './module'; diff --git a/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.ts b/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.ts index aa524f2409..1ab95c90d8 100644 --- a/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.ts +++ b/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.ts @@ -24,7 +24,7 @@ import { PuppetDbEntityProvider } from '../providers/PuppetDbEntityProvider'; /** * Registers the `PuppetDbEntityProvider` with the catalog processing extension point. * - * @alpha + * @public */ export const catalogModulePuppetDbEntityProvider = createBackendModule({ pluginId: 'catalog', diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md index e4f517fa5a..4a6c195039 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md +++ b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-scaffolder-entity-model +## 0.2.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.2.11 ### Patch Changes diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/package.json b/plugins/catalog-backend-module-scaffolder-entity-model/package.json index 7e3f4daf37..6e040f8078 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/package.json +++ b/plugins/catalog-backend-module-scaffolder-entity-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-scaffolder-entity-model", - "version": "0.2.11", + "version": "0.2.12-next.0", "description": "Adds support for the scaffolder specific entity model (e.g. the Template kind) to the catalog backend plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md index 4126ef3080..28436537b0 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.6.3 ### Patch Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index 50e0fe93fe..a3de0c75a4 100644 --- a/plugins/catalog-backend-module-unprocessed/package.json +++ b/plugins/catalog-backend-module-unprocessed/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-unprocessed", - "version": "0.6.3", + "version": "0.6.4-next.0", "description": "Backstage Catalog module to view unprocessed entities", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index b08f94ecd1..ad535f16fd 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend +## 3.0.2-next.0 + +### Patch Changes + +- 37b4eaf: The 'get-catalog-entity' action now throws a ConflictError instead of generic Error if multiple entities are found, so MCP call doesn't fail with 500. +- a4c82ad: Only run provider orphan cleanup if the engine is started in the first place +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 3.0.1 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index a3bae47db3..d825f29356 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "3.0.1", + "version": "3.0.2-next.0", "description": "The Backstage backend plugin that provides the Backstage catalog", "backstage": { "role": "backend-plugin", diff --git a/plugins/catalog-backend/src/actions/createGetCatalogEntityAction.ts b/plugins/catalog-backend/src/actions/createGetCatalogEntityAction.ts index da33064c08..a1c7cefe78 100644 --- a/plugins/catalog-backend/src/actions/createGetCatalogEntityAction.ts +++ b/plugins/catalog-backend/src/actions/createGetCatalogEntityAction.ts @@ -15,7 +15,7 @@ */ import { ActionsRegistryService } from '@backstage/backend-plugin-api/alpha'; import { stringifyEntityRef } from '@backstage/catalog-model'; -import { InputError } from '@backstage/errors'; +import { ConflictError, InputError } from '@backstage/errors'; import { CatalogService } from '@backstage/plugin-catalog-node'; export const createGetCatalogEntityAction = ({ @@ -76,7 +76,7 @@ Each entity is identified by a unique entity reference, which is a string of the } if (items.length > 1) { - throw new Error( + throw new ConflictError( `Multiple entities found with name "${ input.name }", please provide more specific filters. Entities found: ${items diff --git a/plugins/catalog-backend/src/service/CatalogBuilder.ts b/plugins/catalog-backend/src/service/CatalogBuilder.ts index 93a6a96eb0..e697c6e77f 100644 --- a/plugins/catalog-backend/src/service/CatalogBuilder.ts +++ b/plugins/catalog-backend/src/service/CatalogBuilder.ts @@ -622,18 +622,21 @@ export class CatalogBuilder { enableRelationsCompatibility, }); - if (config.getOptionalString('catalog.orphanProviderStrategy') !== 'keep') { - await evictEntitiesFromOrphanedProviders({ - db: providerDatabase, - providers: entityProviders, - logger, - }); - } await connectEntityProviders(providerDatabase, entityProviders); return { processingEngine: { async start() { + if ( + config.getOptionalString('catalog.orphanProviderStrategy') !== + 'keep' + ) { + await evictEntitiesFromOrphanedProviders({ + db: providerDatabase, + providers: entityProviders, + logger, + }); + } await processingEngine.start(); await stitcher.start(); }, diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index e91305c066..a756916c38 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-graph +## 0.4.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + ## 0.4.23-next.0 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 058da6f621..dd3271f468 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.4.23-next.0", + "version": "0.4.23-next.1", "backstage": { "role": "frontend-plugin", "pluginId": "catalog-graph", diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index 344ebc82ba..77ad27ced9 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-import +## 0.13.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/integration-react@1.2.10-next.0 + ## 0.13.5-next.0 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 400e9d8a81..050e8be908 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-import", - "version": "0.13.5-next.0", + "version": "0.13.5-next.1", "description": "A Backstage plugin the helps you import entities into your catalog", "backstage": { "role": "frontend-plugin", diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index 4362aa9f69..18f44ba88f 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-node +## 1.18.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + ## 1.18.0 ### Minor Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 40cbc523f1..a61c4b801b 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-node", - "version": "1.18.0", + "version": "1.18.1-next.0", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", "backstage": { "role": "node-library", diff --git a/plugins/catalog-node/report-testUtils.api.md b/plugins/catalog-node/report-testUtils.api.md index 3fa7057a99..d687ff387b 100644 --- a/plugins/catalog-node/report-testUtils.api.md +++ b/plugins/catalog-node/report-testUtils.api.md @@ -27,6 +27,7 @@ import { QueryEntitiesRequest } from '@backstage/catalog-client'; import { QueryEntitiesResponse } from '@backstage/catalog-client'; import { ServiceFactory } from '@backstage/backend-plugin-api'; import { ServiceMock } from '@backstage/backend-test-utils'; +import { StreamEntitiesRequest } from '@backstage/catalog-client'; import { ValidateEntityResponse } from '@backstage/catalog-client'; // @public @@ -107,6 +108,11 @@ export interface CatalogServiceMock extends CatalogService, CatalogApi { options?: CatalogServiceRequestOptions | CatalogRequestOptions, ): Promise; // (undocumented) + streamEntities( + request?: StreamEntitiesRequest, + options?: CatalogServiceRequestOptions | CatalogRequestOptions, + ): AsyncIterable; + // (undocumented) validateEntity( entity: Entity, locationRef: string, diff --git a/plugins/catalog-node/report.api.md b/plugins/catalog-node/report.api.md index debafad5c4..25ab9145ef 100644 --- a/plugins/catalog-node/report.api.md +++ b/plugins/catalog-node/report.api.md @@ -27,6 +27,7 @@ import { LocationSpec as LocationSpec_2 } from '@backstage/plugin-catalog-common import { QueryEntitiesRequest } from '@backstage/catalog-client'; import { QueryEntitiesResponse } from '@backstage/catalog-client'; import { ServiceRef } from '@backstage/backend-plugin-api'; +import { StreamEntitiesRequest } from '@backstage/catalog-client'; import { ValidateEntityResponse } from '@backstage/catalog-client'; // @public (undocumented) @@ -195,6 +196,11 @@ export interface CatalogService { options: CatalogServiceRequestOptions, ): Promise; // (undocumented) + streamEntities( + request: StreamEntitiesRequest | undefined, + options: CatalogServiceRequestOptions, + ): AsyncIterable; + // (undocumented) validateEntity( entity: Entity, locationRef: string, diff --git a/plugins/catalog-node/src/catalogService.ts b/plugins/catalog-node/src/catalogService.ts index 9478c6b48a..a6ecedd5c5 100644 --- a/plugins/catalog-node/src/catalogService.ts +++ b/plugins/catalog-node/src/catalogService.ts @@ -15,11 +15,11 @@ */ import { + AuthService, + BackstageCredentials, + coreServices, createServiceFactory, createServiceRef, - coreServices, - BackstageCredentials, - AuthService, } from '@backstage/backend-plugin-api'; import { AddLocationRequest, @@ -39,6 +39,7 @@ import { Location, QueryEntitiesRequest, QueryEntitiesResponse, + StreamEntitiesRequest, ValidateEntityResponse, } from '@backstage/catalog-client'; import { CompoundEntityRef, Entity } from '@backstage/catalog-model'; @@ -141,6 +142,11 @@ export interface CatalogService { location: AnalyzeLocationRequest, options: CatalogServiceRequestOptions, ): Promise; + + streamEntities( + request: StreamEntitiesRequest | undefined, + options: CatalogServiceRequestOptions, + ): AsyncIterable; } class DefaultCatalogService implements CatalogService { @@ -320,6 +326,16 @@ class DefaultCatalogService implements CatalogService { ); } + async *streamEntities( + request: StreamEntitiesRequest | undefined, + options: CatalogServiceRequestOptions, + ): AsyncIterable { + yield* this.#catalogApi.streamEntities( + request, + await this.#getOptions(options), + ); + } + async #getOptions( options: CatalogServiceRequestOptions, ): Promise { diff --git a/plugins/catalog-node/src/testUtils/catalogServiceMock.ts b/plugins/catalog-node/src/testUtils/catalogServiceMock.ts index 20e04e12b4..59c66c0b88 100644 --- a/plugins/catalog-node/src/testUtils/catalogServiceMock.ts +++ b/plugins/catalog-node/src/testUtils/catalogServiceMock.ts @@ -15,9 +15,9 @@ */ import { + createServiceFactory, ServiceFactory, ServiceRef, - createServiceFactory, } from '@backstage/backend-plugin-api'; import { InMemoryCatalogClient } from '@backstage/catalog-client/testUtils'; import { Entity } from '@backstage/catalog-model'; @@ -103,5 +103,6 @@ export namespace catalogServiceMock { getLocationByEntity: jest.fn(), validateEntity: jest.fn(), analyzeLocation: jest.fn(), + streamEntities: jest.fn(), })); } diff --git a/plugins/catalog-node/src/testUtils/types.ts b/plugins/catalog-node/src/testUtils/types.ts index 96380e9434..a5bf125cfd 100644 --- a/plugins/catalog-node/src/testUtils/types.ts +++ b/plugins/catalog-node/src/testUtils/types.ts @@ -31,6 +31,7 @@ import { Location, QueryEntitiesRequest, QueryEntitiesResponse, + StreamEntitiesRequest, ValidateEntityResponse, } from '@backstage/catalog-client'; import { CompoundEntityRef, Entity } from '@backstage/catalog-model'; @@ -135,4 +136,9 @@ export interface CatalogServiceMock extends CatalogService, CatalogApi { location: AnalyzeLocationRequest, options?: CatalogServiceRequestOptions | CatalogRequestOptions, ): Promise; + + streamEntities( + request?: StreamEntitiesRequest, + options?: CatalogServiceRequestOptions | CatalogRequestOptions, + ): AsyncIterable; } diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index da0091056a..d6eb0dc5fe 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-react +## 1.20.2-next.1 + +### Patch Changes + +- 0174799: Fix a potential race condition in EntityListProvider when selecting filters +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/frontend-test-utils@0.3.6-next.0 + - @backstage/integration-react@1.2.10-next.0 + ## 1.20.2-next.0 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 856d10f104..3912d9ce9d 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-react", - "version": "1.20.2-next.0", + "version": "1.20.2-next.1", "description": "A frontend library that helps other Backstage plugins interact with the catalog", "backstage": { "role": "web-library", diff --git a/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx b/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx index de85fa1042..ef3c83315a 100644 --- a/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx +++ b/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { catalogApiMock } from '@backstage/plugin-catalog-react/testUtils'; +import type { GetEntitiesResponse } from '@backstage/catalog-client'; import { Entity } from '@backstage/catalog-model'; import { alertApiRef, @@ -23,7 +23,10 @@ import { identityApiRef, storageApiRef, } from '@backstage/core-plugin-api'; +import { translationApiRef } from '@backstage/core-plugin-api/alpha'; +import { catalogApiMock } from '@backstage/plugin-catalog-react/testUtils'; import { mockApis, TestApiProvider } from '@backstage/test-utils'; +import { useMountEffect } from '@react-hookz/web'; import { act, renderHook, waitFor } from '@testing-library/react'; import qs from 'qs'; import { PropsWithChildren } from 'react'; @@ -37,10 +40,9 @@ import { EntityTypeFilter, EntityUserFilter, } from '../filters'; -import { EntityListProvider, useEntityList } from './useEntityListProvider'; -import { useMountEffect } from '@react-hookz/web'; -import { translationApiRef } from '@backstage/core-plugin-api/alpha'; +import { createDeferred } from '@backstage/types'; import { EntityListPagination } from '../types'; +import { EntityListProvider, useEntityList } from './useEntityListProvider'; const entities: Entity[] = [ { @@ -341,6 +343,62 @@ describe('', () => { filter: { kind: 'group' }, }); }); + + it('uses the last applied filter even if an earlier request finishes later', async () => { + const { result } = renderHook(() => useEntityList(), { + wrapper: createWrapper({ pagination }), + }); + + const firstResult = createDeferred(); + const secondResult = createDeferred(); + + await waitFor(() => { + expect(result.current.backendEntities.length).toBeGreaterThan(0); + }); + expect(result.current.totalItems).toBe(2); + expect(result.current.backendEntities.length).toBe(2); + expect(mockCatalogApi.getEntities).toHaveBeenCalledTimes(1); + + mockCatalogApi.getEntities!.mockReturnValueOnce(firstResult); + + await act(async () => { + result.current.updateFilters({ + kind: new EntityKindFilter('api', 'API'), + }); + }); + + await waitFor(() => { + expect(mockCatalogApi.getEntities).toHaveBeenNthCalledWith(2, { + filter: { kind: 'api' }, + }); + }); + + mockCatalogApi.getEntities!.mockReturnValueOnce(secondResult); + + await act(async () => { + result.current.updateFilters({ + kind: new EntityKindFilter('system', 'System'), + }); + }); + + await waitFor(() => { + expect(mockCatalogApi.getEntities).toHaveBeenNthCalledWith(3, { + filter: { kind: 'system' }, + }); + }); + + await act(async () => { + secondResult.resolve({ + items: [], + }); + firstResult.resolve({ + items: entities, + }); + }); + + expect(result.current.filters.kind!.value).toBe('system'); + expect(result.current.backendEntities.length).toBe(0); + }); }); describe('', () => { diff --git a/plugins/catalog-react/src/hooks/useEntityListProvider.tsx b/plugins/catalog-react/src/hooks/useEntityListProvider.tsx index 56af7e9a73..f424dafb56 100644 --- a/plugins/catalog-react/src/hooks/useEntityListProvider.tsx +++ b/plugins/catalog-react/src/hooks/useEntityListProvider.tsx @@ -14,7 +14,9 @@ * limitations under the License. */ +import { QueryEntitiesResponse } from '@backstage/catalog-client'; import { Entity } from '@backstage/catalog-model'; +import { useApi } from '@backstage/core-plugin-api'; import { compact, isEqual } from 'lodash'; import qs from 'qs'; import { @@ -22,6 +24,7 @@ import { PropsWithChildren, useCallback, useContext, + useEffect, useMemo, useState, } from 'react'; @@ -50,8 +53,6 @@ import { reduceCatalogFilters, reduceEntityFilters, } from '../utils/filters'; -import { useApi } from '@backstage/core-plugin-api'; -import { QueryEntitiesResponse } from '@backstage/catalog-client'; /** @public */ export type DefaultEntityFilters = { @@ -239,7 +240,7 @@ export const EntityListProvider = ( // The main async filter worker. Note that while it has a lot of dependencies // in terms of its implementation, the triggering only happens (debounced) // based on the requested filters changing. - const [{ loading, error }, refresh] = useAsyncFn( + const [{ value: resolvedValue, loading, error }, refresh] = useAsyncFn( async () => { const kindValue = requestedFilters.kind?.value?.toLocaleLowerCase('en-US'); @@ -249,19 +250,6 @@ export const EntityListProvider = ( : requestedFilters; const compacted = compact(Object.values(adjustedFilters)); - const queryParams = Object.keys(requestedFilters).reduce( - (params, key) => { - const filter = requestedFilters[key as keyof EntityFilters] as - | EntityFilter - | undefined; - if (filter?.toQueryValue) { - params[key] = filter.toQueryValue(); - } - return params; - }, - {} as Record, - ); - if (paginationMode !== 'none') { if (cursor) { if (cursor !== outputState.appliedCursor) { @@ -270,14 +258,14 @@ export const EntityListProvider = ( cursor, limit, }); - setOutputState({ + return { appliedFilters: requestedFilters, appliedCursor: cursor, backendEntities: response.items, entities: response.items.filter(entityFilter), pageInfo: response.pageInfo, totalItems: response.totalItems, - }); + }; } } else { const entityFilter = reduceEntityFilters(compacted); @@ -296,7 +284,7 @@ export const EntityListProvider = ( limit, offset, }); - setOutputState({ + return { appliedFilters: requestedFilters, backendEntities: response.items, entities: response.items.filter(entityFilter), @@ -304,7 +292,7 @@ export const EntityListProvider = ( totalItems: response.totalItems, limit, offset, - }); + }; } } } else { @@ -324,43 +312,22 @@ export const EntityListProvider = ( filter: backendFilter, }); const entities = response.items.filter(entityFilter); - setOutputState({ + return { appliedFilters: requestedFilters, backendEntities: response.items, entities, totalItems: entities.length, - }); - } else { - const entities = outputState.backendEntities.filter(entityFilter); - setOutputState({ - appliedFilters: requestedFilters, - backendEntities: outputState.backendEntities, - entities, - totalItems: entities.length, - }); + }; } + const entities = outputState.backendEntities.filter(entityFilter); + return { + appliedFilters: requestedFilters, + backendEntities: outputState.backendEntities, + entities, + totalItems: entities.length, + }; } - - if (isMounted()) { - const oldParams = qs.parse(location.search, { - ignoreQueryPrefix: true, - }); - const newParams = qs.stringify( - { - ...oldParams, - filters: queryParams, - ...(paginationMode === 'none' ? {} : { cursor, limit, offset }), - }, - { addQueryPrefix: true, arrayFormat: 'repeat' }, - ); - const newUrl = `${window.location.pathname}${newParams}`; - // We use direct history manipulation since useSearchParams and - // useNavigate in react-router-dom cause unnecessary extra rerenders. - // Also make sure to replace the state rather than pushing, since we - // don't want there to be back/forward slots for every single filter - // change. - window.history?.replaceState(null, document.title, newUrl); - } + return undefined; }, [ catalogApi, @@ -379,6 +346,55 @@ export const EntityListProvider = ( // filters will be calling this in rapid succession. useDebounce(refresh, 10, [requestedFilters, cursor, limit, offset]); + useEffect(() => { + if (resolvedValue === undefined) { + return; + } + setOutputState(resolvedValue); + if (isMounted()) { + const queryParams = Object.keys(requestedFilters).reduce( + (params, key) => { + const filter = requestedFilters[key as keyof EntityFilters] as + | EntityFilter + | undefined; + if (filter?.toQueryValue) { + params[key] = filter.toQueryValue(); + } + return params; + }, + {} as Record, + ); + + const oldParams = qs.parse(location.search, { + ignoreQueryPrefix: true, + }); + const newParams = qs.stringify( + { + ...oldParams, + filters: queryParams, + ...(paginationMode === 'none' ? {} : { cursor, limit, offset }), + }, + { addQueryPrefix: true, arrayFormat: 'repeat' }, + ); + const newUrl = `${window.location.pathname}${newParams}`; + // We use direct history manipulation since useSearchParams and + // useNavigate in react-router-dom cause unnecessary extra rerenders. + // Also make sure to replace the state rather than pushing, since we + // don't want there to be back/forward slots for every single filter + // change. + window.history?.replaceState(null, document.title, newUrl); + } + }, [ + cursor, + isMounted, + limit, + location.search, + offset, + requestedFilters, + resolvedValue, + paginationMode, + ]); + const updateFilters = useCallback( ( update: diff --git a/plugins/catalog-react/src/testUtils/catalogApiMock.ts b/plugins/catalog-react/src/testUtils/catalogApiMock.ts index 42c6b1004f..a37d2669ad 100644 --- a/plugins/catalog-react/src/testUtils/catalogApiMock.ts +++ b/plugins/catalog-react/src/testUtils/catalogApiMock.ts @@ -102,5 +102,7 @@ export namespace catalogApiMock { getLocationByEntity: jest.fn(), validateEntity: jest.fn(), analyzeLocation: jest.fn(), + streamEntities: jest.fn(), + streamEntityPages: jest.fn(), })); } diff --git a/plugins/catalog-unprocessed-entities/CHANGELOG.md b/plugins/catalog-unprocessed-entities/CHANGELOG.md index 9cf97c0ee2..1542eafba3 100644 --- a/plugins/catalog-unprocessed-entities/CHANGELOG.md +++ b/plugins/catalog-unprocessed-entities/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-unprocessed-entities +## 0.2.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + ## 0.2.21-next.0 ### Patch Changes diff --git a/plugins/catalog-unprocessed-entities/package.json b/plugins/catalog-unprocessed-entities/package.json index 1239af1b30..004eb96208 100644 --- a/plugins/catalog-unprocessed-entities/package.json +++ b/plugins/catalog-unprocessed-entities/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-unprocessed-entities", - "version": "0.2.21-next.0", + "version": "0.2.21-next.1", "backstage": { "role": "frontend-plugin", "pluginId": "catalog-unprocessed-entities", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index c64623773d..19c35e2137 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog +## 1.31.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + ## 1.31.3-next.0 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 6dbefb06f1..9e1b0fcc05 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog", - "version": "1.31.3-next.0", + "version": "1.31.3-next.1", "description": "The Backstage plugin for browsing the Backstage catalog", "backstage": { "role": "frontend-plugin", diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index 996f7e6061..4ecd8c4953 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-config-schema +## 0.1.72-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + ## 0.1.71 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index d03b388581..a1c61537bb 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-config-schema", - "version": "0.1.71", + "version": "0.1.72-next.0", "description": "A Backstage plugin that lets you browse the configuration schema of your app", "backstage": { "role": "frontend-plugin", diff --git a/plugins/devtools-backend/CHANGELOG.md b/plugins/devtools-backend/CHANGELOG.md index 7949ab6614..4da746e10a 100644 --- a/plugins/devtools-backend/CHANGELOG.md +++ b/plugins/devtools-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-devtools-backend +## 0.5.9-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + ## 0.5.8 ### Patch Changes diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index c12c03308d..038fcbce82 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools-backend", - "version": "0.5.8", + "version": "0.5.9-next.0", "backstage": { "role": "backend-plugin", "pluginId": "devtools", diff --git a/plugins/devtools/CHANGELOG.md b/plugins/devtools/CHANGELOG.md index 055aea20f5..61c2b41fcd 100644 --- a/plugins/devtools/CHANGELOG.md +++ b/plugins/devtools/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-devtools +## 0.1.31-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + ## 0.1.31-next.0 ### Patch Changes diff --git a/plugins/devtools/package.json b/plugins/devtools/package.json index 1d41558f5e..f05ec985d2 100644 --- a/plugins/devtools/package.json +++ b/plugins/devtools/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools", - "version": "0.1.31-next.0", + "version": "0.1.31-next.1", "backstage": { "role": "frontend-plugin", "pluginId": "devtools", diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md index 46bdf1a59b..f390c44909 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.4.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.4.14 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 6e062fb3aa..98fdcec09b 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.4.14", + "version": "0.4.15-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "events", diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md index 4d6d14e9ea..00d075377e 100644 --- a/plugins/events-backend-module-azure/CHANGELOG.md +++ b/plugins/events-backend-module-azure/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-azure +## 0.2.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.2.23 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index c8545ee273..4bc4947de4 100644 --- a/plugins/events-backend-module-azure/package.json +++ b/plugins/events-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-azure", - "version": "0.2.23", + "version": "0.2.24-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "events", diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md index af66f54c05..6b5ea454a3 100644 --- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-bitbucket-cloud +## 0.2.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.2.23 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index 7781c649db..f44a1d5d28 100644 --- a/plugins/events-backend-module-bitbucket-cloud/package.json +++ b/plugins/events-backend-module-bitbucket-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-bitbucket-cloud", - "version": "0.2.23", + "version": "0.2.24-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "events", diff --git a/plugins/events-backend-module-bitbucket-server/CHANGELOG.md b/plugins/events-backend-module-bitbucket-server/CHANGELOG.md index e7b05b6f5e..ce5a289fa0 100644 --- a/plugins/events-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/events-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-bitbucket-server +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-server/package.json b/plugins/events-backend-module-bitbucket-server/package.json index f4e8d75dc7..6deaf2e42d 100644 --- a/plugins/events-backend-module-bitbucket-server/package.json +++ b/plugins/events-backend-module-bitbucket-server/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-bitbucket-server", - "version": "0.1.4", + "version": "0.1.5-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "events", diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md index b0e42cbdc6..d0f71a8b2c 100644 --- a/plugins/events-backend-module-gerrit/CHANGELOG.md +++ b/plugins/events-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gerrit +## 0.2.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.2.23 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index 0eac30ec31..c736069b00 100644 --- a/plugins/events-backend-module-gerrit/package.json +++ b/plugins/events-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-gerrit", - "version": "0.2.23", + "version": "0.2.24-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "events", diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md index 3affa86851..00a0b957fb 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.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.4.3 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index 4b5653757b..2d961b83c3 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.4.3", + "version": "0.4.4-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "events", diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md index 2c34e8dc37..174f91dc87 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.3.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.3.4 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index cc104e0ae6..c86ea6e8b4 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.3.4", + "version": "0.3.5-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "events", diff --git a/plugins/events-backend-module-google-pubsub/CHANGELOG.md b/plugins/events-backend-module-google-pubsub/CHANGELOG.md index 118a163dfd..d789713bd1 100644 --- a/plugins/events-backend-module-google-pubsub/CHANGELOG.md +++ b/plugins/events-backend-module-google-pubsub/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-google-pubsub +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.1.3 ### Patch Changes diff --git a/plugins/events-backend-module-google-pubsub/package.json b/plugins/events-backend-module-google-pubsub/package.json index 8932e81cf5..fda11585ec 100644 --- a/plugins/events-backend-module-google-pubsub/package.json +++ b/plugins/events-backend-module-google-pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-google-pubsub", - "version": "0.1.3", + "version": "0.1.4-next.0", "description": "The google-pubsub backend module for the events plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/events-backend-module-kafka/CHANGELOG.md b/plugins/events-backend-module-kafka/CHANGELOG.md index 5bfac00146..e005093ef8 100644 --- a/plugins/events-backend-module-kafka/CHANGELOG.md +++ b/plugins/events-backend-module-kafka/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-kafka +## 0.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/events-backend-module-kafka/package.json b/plugins/events-backend-module-kafka/package.json index 40f9faf17b..0540029b4e 100644 --- a/plugins/events-backend-module-kafka/package.json +++ b/plugins/events-backend-module-kafka/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-module-kafka", - "version": "0.1.2", + "version": "0.1.3-next.0", "description": "The kafka backend module for the events plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md index 5b68fdecab..849e5308b9 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.48-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.1.47 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index 34dad8d400..db95b057a8 100644 --- a/plugins/events-backend-test-utils/package.json +++ b/plugins/events-backend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend-test-utils", - "version": "0.1.47", + "version": "0.1.48-next.0", "description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node", "backstage": { "role": "node-library", diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md index 16ce5383d5..2220969cd7 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend +## 0.5.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.5.5 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index c5a0b419f4..c16c508989 100644 --- a/plugins/events-backend/package.json +++ b/plugins/events-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-backend", - "version": "0.5.5", + "version": "0.5.6-next.0", "backstage": { "role": "backend-plugin", "pluginId": "events", diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md index a479953438..2ae679aa8b 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-node +## 0.4.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.4.14 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index c717084c97..536cf246b9 100644 --- a/plugins/events-node/package.json +++ b/plugins/events-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-events-node", - "version": "0.4.14", + "version": "0.4.15-next.0", "description": "The plugin-events-node module for @backstage/plugin-events-backend", "backstage": { "role": "node-library", diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index 19ce32baf7..08227bc14a 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/plugin-todo-list-backend +## 1.0.43-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 1.0.42 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index debaecc753..8e31279e2a 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.42", + "version": "1.0.43-next.0", "backstage": { "role": "backend-plugin", "pluginId": "todo-list", diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index 1295f0fa41..205e703446 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/plugin-todo-list +## 1.0.43-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + ## 1.0.42 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 81ce00b279..3104980821 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.42", + "version": "1.0.43-next.0", "backstage": { "role": "frontend-plugin", "pluginId": "todo-list", diff --git a/plugins/gateway-backend/CHANGELOG.md b/plugins/gateway-backend/CHANGELOG.md index 94e9d76f64..7e1fe97014 100644 --- a/plugins/gateway-backend/CHANGELOG.md +++ b/plugins/gateway-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-gateway-backend +## 1.0.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 1.0.4 ### Patch Changes diff --git a/plugins/gateway-backend/package.json b/plugins/gateway-backend/package.json index adefa23103..1413086b5b 100644 --- a/plugins/gateway-backend/package.json +++ b/plugins/gateway-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gateway-backend", - "version": "1.0.4", + "version": "1.0.5-next.0", "backstage": { "role": "backend-plugin", "pluginId": "gateway", diff --git a/plugins/home-react/CHANGELOG.md b/plugins/home-react/CHANGELOG.md index f98f5ce76a..bcd79b94d6 100644 --- a/plugins/home-react/CHANGELOG.md +++ b/plugins/home-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-home-react +## 0.1.30-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + ## 0.1.29 ### Patch Changes diff --git a/plugins/home-react/package.json b/plugins/home-react/package.json index 1130fd324c..f1605514e0 100644 --- a/plugins/home-react/package.json +++ b/plugins/home-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-home-react", - "version": "0.1.29", + "version": "0.1.30-next.0", "description": "A Backstage plugin that contains react components helps you build a home page", "backstage": { "role": "web-library", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index a14b7a0358..ea7326d9b3 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-home +## 0.8.12-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-home-react@0.1.30-next.0 + ## 0.8.12-next.0 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 714e7fd937..21469df7cd 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-home", - "version": "0.8.12-next.0", + "version": "0.8.12-next.1", "description": "A Backstage plugin that helps you build a home page", "backstage": { "role": "frontend-plugin", diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index 7f2849705f..761e87e5e0 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kubernetes-backend +## 0.20.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-kubernetes-node@0.3.4-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.20.2-next.0 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index e577c5cf00..bae94407b5 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-kubernetes-backend", - "version": "0.20.2-next.0", + "version": "0.20.2-next.1", "description": "A Backstage backend plugin that integrates towards Kubernetes", "backstage": { "role": "backend-plugin", diff --git a/plugins/kubernetes-cluster/CHANGELOG.md b/plugins/kubernetes-cluster/CHANGELOG.md index 9107ce1551..63ee864a46 100644 --- a/plugins/kubernetes-cluster/CHANGELOG.md +++ b/plugins/kubernetes-cluster/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-kubernetes-cluster +## 0.0.29-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/core-components@0.17.6-next.0 + - @backstage/plugin-kubernetes-react@0.5.11-next.0 + ## 0.0.29-next.0 ### Patch Changes diff --git a/plugins/kubernetes-cluster/package.json b/plugins/kubernetes-cluster/package.json index a04d09ee93..6488b959f6 100644 --- a/plugins/kubernetes-cluster/package.json +++ b/plugins/kubernetes-cluster/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-kubernetes-cluster", - "version": "0.0.29-next.0", + "version": "0.0.29-next.1", "description": "A Backstage plugin that shows details of Kubernetes clusters", "backstage": { "role": "frontend-plugin", diff --git a/plugins/kubernetes-node/CHANGELOG.md b/plugins/kubernetes-node/CHANGELOG.md index c4533d71a1..b0eac9c476 100644 --- a/plugins/kubernetes-node/CHANGELOG.md +++ b/plugins/kubernetes-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes-node +## 0.3.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.3.3 ### Patch Changes diff --git a/plugins/kubernetes-node/package.json b/plugins/kubernetes-node/package.json index 36b754ec4d..23aae77049 100644 --- a/plugins/kubernetes-node/package.json +++ b/plugins/kubernetes-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-kubernetes-node", - "version": "0.3.3", + "version": "0.3.4-next.0", "description": "Node.js library for the kubernetes plugin", "backstage": { "role": "node-library", diff --git a/plugins/kubernetes-react/CHANGELOG.md b/plugins/kubernetes-react/CHANGELOG.md index 1e0c11f9cb..973509d5f2 100644 --- a/plugins/kubernetes-react/CHANGELOG.md +++ b/plugins/kubernetes-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes-react +## 0.5.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.17.6-next.0 + ## 0.5.10 ### Patch Changes diff --git a/plugins/kubernetes-react/package.json b/plugins/kubernetes-react/package.json index 61697f217f..baa541cc87 100644 --- a/plugins/kubernetes-react/package.json +++ b/plugins/kubernetes-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-kubernetes-react", - "version": "0.5.10", + "version": "0.5.11-next.0", "description": "Web library for the kubernetes-react plugin", "backstage": { "role": "web-library", diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 6191f63fa1..6f76f6bc2a 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kubernetes +## 0.12.11-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-kubernetes-react@0.5.11-next.0 + ## 0.12.11-next.0 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 3ceed6e94c..3fd141319c 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-kubernetes", - "version": "0.12.11-next.0", + "version": "0.12.11-next.1", "description": "A Backstage plugin that integrates towards Kubernetes", "backstage": { "role": "frontend-plugin", diff --git a/plugins/mcp-actions-backend/CHANGELOG.md b/plugins/mcp-actions-backend/CHANGELOG.md index 20b22c5222..0ca964fbd1 100644 --- a/plugins/mcp-actions-backend/CHANGELOG.md +++ b/plugins/mcp-actions-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-mcp-actions-backend +## 0.1.3-next.0 + +### Patch Changes + +- d08b0c9: The MCP backend will now convert known Backstage errors into textual responses with `isError: true`. + The error message can be useful for an LLM to understand and maybe give back to the user. + Previously all errors where thrown out to `@modelcontextprotocol/sdk` which causes a generic 500. +- Updated dependencies + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.1.2 ### Patch Changes diff --git a/plugins/mcp-actions-backend/package.json b/plugins/mcp-actions-backend/package.json index 506a8fb827..2a7fbdf8a3 100644 --- a/plugins/mcp-actions-backend/package.json +++ b/plugins/mcp-actions-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-mcp-actions-backend", - "version": "0.1.2", + "version": "0.1.3-next.0", "backstage": { "role": "backend-plugin", "pluginId": "mcp-actions", diff --git a/plugins/mcp-actions-backend/src/services/McpService.test.ts b/plugins/mcp-actions-backend/src/services/McpService.test.ts index e3339be1d5..cd1c98f5b1 100644 --- a/plugins/mcp-actions-backend/src/services/McpService.test.ts +++ b/plugins/mcp-actions-backend/src/services/McpService.test.ts @@ -178,14 +178,21 @@ describe('McpService', () => { server.connect(serverTransport), ]); - await expect( - client.request( + const result = await client.request( + { + method: 'tools/call', + params: { name: 'mock-action', arguments: { input: 'test' } }, + }, + CallToolResultSchema, + ); + await expect(result).toEqual({ + content: [ { - method: 'tools/call', - params: { name: 'mock-action', arguments: { input: 'test' } }, + text: expect.stringMatching('Action "mock-action" not found'), + type: 'text', }, - CallToolResultSchema, - ), - ).rejects.toThrow('Action "mock-action" not found'); + ], + isError: true, + }); }); }); diff --git a/plugins/mcp-actions-backend/src/services/McpService.ts b/plugins/mcp-actions-backend/src/services/McpService.ts index 9c44e6d4c1..f308395aac 100644 --- a/plugins/mcp-actions-backend/src/services/McpService.ts +++ b/plugins/mcp-actions-backend/src/services/McpService.ts @@ -24,6 +24,8 @@ import { ActionsService } from '@backstage/backend-plugin-api/alpha'; import { version } from '@backstage/plugin-mcp-actions-backend/package.json'; import { NotFoundError } from '@backstage/errors'; +import { handleErrors } from './handleErrors'; + export class McpService { constructor(private readonly actions: ActionsService) {} @@ -65,32 +67,34 @@ export class McpService { }); server.setRequestHandler(CallToolRequestSchema, async ({ params }) => { - const { actions } = await this.actions.list({ credentials }); - const action = actions.find(a => a.name === params.name); + return handleErrors(async () => { + const { actions } = await this.actions.list({ credentials }); + const action = actions.find(a => a.name === params.name); - if (!action) { - throw new NotFoundError(`Action "${params.name}" not found`); - } + if (!action) { + throw new NotFoundError(`Action "${params.name}" not found`); + } - const { output } = await this.actions.invoke({ - id: action.id, - input: params.arguments as JsonObject, - credentials, + const { output } = await this.actions.invoke({ + id: action.id, + input: params.arguments as JsonObject, + credentials, + }); + + return { + // todo(blam): unfortunately structuredContent is not supported by most clients yet. + // so the validation for the output happens in the default actions registry + // and we return it as json text instead for now. + content: [ + { + type: 'text', + text: ['```json', JSON.stringify(output, null, 2), '```'].join( + '\n', + ), + }, + ], + }; }); - - return { - // todo(blam): unfortunately structuredContent is not supported by most clients yet. - // so the validation for the output happens in the default actions registry - // and we return it as json text instead for now. - content: [ - { - type: 'text', - text: ['```json', JSON.stringify(output, null, 2), '```'].join( - '\n', - ), - }, - ], - }; }); return server; diff --git a/plugins/mcp-actions-backend/src/services/handleErrors.ts b/plugins/mcp-actions-backend/src/services/handleErrors.ts new file mode 100644 index 0000000000..67d92664eb --- /dev/null +++ b/plugins/mcp-actions-backend/src/services/handleErrors.ts @@ -0,0 +1,90 @@ +/* + * Copyright 2025 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 { + ErrorLike, + ForwardedError, + isError, + serializeError, +} from '@backstage/errors'; + +import { Server as McpServer } from '@modelcontextprotocol/sdk/server/index.js'; + +const knownErrors = new Set([ + 'InputError', + 'AuthenticationError', + 'NotAllowedError', + 'NotFoundError', + 'ConflictError', + 'NotModifiedError', + 'NotImplementedError', + 'ResponseError', +]); + +// Extracts the cause error, if the provided error is `ResponseError` or +// `ForwardedError` with a cause. +function extractCause(err: ErrorLike): ErrorLike { + if ( + (err.name === 'ResponseError' || err instanceof ForwardedError) && + isError(err.cause) + ) { + return err.cause; + } + return err; +} + +/** + * Takes a value expected to be an object, and returns a description of the + * error to return to the MCP client, if the error is a known Backstage error. + * + * Re-throws the original error otherwise + */ +function describeError(err: unknown): string { + if (err instanceof Error) { + const serialized = serializeError(err); + + const { name, message } = extractCause(serialized); + + if (knownErrors.has(name)) { + return `${name}: ${message}`; + } + } + + throw err; +} + +type RequestResultType = ReturnType< + Parameters[1] +>; +/** + * Wraps a request function with an error handler that turns known Backstage + * errors into user-friendly messages, instead of failing the request + * generically with a 500. + */ +export async function handleErrors( + fn: () => RequestResultType | Promise, +): Promise { + try { + return await fn(); + } catch (err) { + // This will rethrow if the error is not a known Backstage error + const description = describeError(err); + return { + content: [{ type: 'text', text: description }], + isError: true, + }; + } +} diff --git a/plugins/notifications-backend-module-email/CHANGELOG.md b/plugins/notifications-backend-module-email/CHANGELOG.md index 6f8e4e08af..9a46dad0bc 100644 --- a/plugins/notifications-backend-module-email/CHANGELOG.md +++ b/plugins/notifications-backend-module-email/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-notifications-backend-module-email +## 0.3.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-notifications-node@0.2.19-next.0 + ## 0.3.12 ### Patch Changes diff --git a/plugins/notifications-backend-module-email/package.json b/plugins/notifications-backend-module-email/package.json index 474bb82feb..602edf0e66 100644 --- a/plugins/notifications-backend-module-email/package.json +++ b/plugins/notifications-backend-module-email/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications-backend-module-email", - "version": "0.3.12", + "version": "0.3.13-next.0", "description": "The email backend module for the notifications plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/notifications-backend-module-slack/CHANGELOG.md b/plugins/notifications-backend-module-slack/CHANGELOG.md index 9041ba7e3b..e38e8f9d07 100644 --- a/plugins/notifications-backend-module-slack/CHANGELOG.md +++ b/plugins/notifications-backend-module-slack/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-notifications-backend-module-slack +## 0.1.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-notifications-node@0.2.19-next.0 + ## 0.1.4 ### Patch Changes diff --git a/plugins/notifications-backend-module-slack/package.json b/plugins/notifications-backend-module-slack/package.json index 3bb9c872fb..227201984b 100644 --- a/plugins/notifications-backend-module-slack/package.json +++ b/plugins/notifications-backend-module-slack/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications-backend-module-slack", - "version": "0.1.4", + "version": "0.1.5-next.0", "description": "The slack backend module for the notifications plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/notifications-backend/CHANGELOG.md b/plugins/notifications-backend/CHANGELOG.md index 67f6e29957..41905ec918 100644 --- a/plugins/notifications-backend/CHANGELOG.md +++ b/plugins/notifications-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-notifications-backend +## 0.5.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-signals-node@0.1.24-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + - @backstage/plugin-notifications-node@0.2.19-next.0 + ## 0.5.9 ### Patch Changes diff --git a/plugins/notifications-backend/package.json b/plugins/notifications-backend/package.json index f0e1abc10c..94c42005c0 100644 --- a/plugins/notifications-backend/package.json +++ b/plugins/notifications-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications-backend", - "version": "0.5.9", + "version": "0.5.10-next.0", "backstage": { "role": "backend-plugin", "pluginId": "notifications", diff --git a/plugins/notifications-node/CHANGELOG.md b/plugins/notifications-node/CHANGELOG.md index f1f92102a3..af3c020fd3 100644 --- a/plugins/notifications-node/CHANGELOG.md +++ b/plugins/notifications-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-notifications-node +## 0.2.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-signals-node@0.1.24-next.0 + ## 0.2.18 ### Patch Changes diff --git a/plugins/notifications-node/package.json b/plugins/notifications-node/package.json index 82a57bc881..c20cf4c820 100644 --- a/plugins/notifications-node/package.json +++ b/plugins/notifications-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications-node", - "version": "0.2.18", + "version": "0.2.19-next.0", "description": "Node.js library for the notifications plugin", "backstage": { "role": "node-library", diff --git a/plugins/notifications/CHANGELOG.md b/plugins/notifications/CHANGELOG.md index e000194e3c..97b280ed47 100644 --- a/plugins/notifications/CHANGELOG.md +++ b/plugins/notifications/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-notifications +## 0.5.9-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + ## 0.5.9-next.0 ### Patch Changes diff --git a/plugins/notifications/package.json b/plugins/notifications/package.json index 557e0f4498..0aa3cde29b 100644 --- a/plugins/notifications/package.json +++ b/plugins/notifications/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-notifications", - "version": "0.5.9-next.0", + "version": "0.5.9-next.1", "backstage": { "role": "frontend-plugin", "pluginId": "notifications", diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md index 3f982fb8ac..410b9da982 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-org-react +## 0.1.42-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/core-components@0.17.6-next.0 + ## 0.1.42-next.0 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 9b234c520b..f8410a3f77 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.42-next.0", + "version": "0.1.42-next.1", "backstage": { "role": "web-library", "pluginId": "org", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 6c7616e555..ee5def4fcf 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-org +## 0.6.44-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + ## 0.6.44-next.0 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index 34a12c7156..df5b58446c 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-org", - "version": "0.6.44-next.0", + "version": "0.6.44-next.1", "description": "A Backstage plugin that helps you create entity pages for your organization", "backstage": { "role": "frontend-plugin", diff --git a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md index e2c37bb15e..210db3363a 100644 --- a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md +++ b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-backend-module-allow-all-policy +## 0.2.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + ## 0.2.11 ### Patch Changes diff --git a/plugins/permission-backend-module-policy-allow-all/package.json b/plugins/permission-backend-module-policy-allow-all/package.json index e195ea8991..e741d11560 100644 --- a/plugins/permission-backend-module-policy-allow-all/package.json +++ b/plugins/permission-backend-module-policy-allow-all/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend-module-allow-all-policy", - "version": "0.2.11", + "version": "0.2.12-next.0", "description": "Allow all policy backend module for the permission plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index 6105baf1c1..cc20d3020e 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-backend +## 0.7.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + ## 0.7.3 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index aad1bd5292..702ed29bd6 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-backend", - "version": "0.7.3", + "version": "0.7.4-next.0", "backstage": { "role": "backend-plugin", "pluginId": "permission", diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index 44958437e1..e0e7e6a026 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-permission-node +## 0.10.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.10.3 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index 1c098a3703..2b325f9cf4 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-permission-node", - "version": "0.10.3", + "version": "0.10.4-next.0", "description": "Common permission and authorization utilities for backend plugins", "backstage": { "role": "node-library", diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index 602301cbde..15f5f02520 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-proxy-backend +## 0.6.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-proxy-node@0.1.8-next.0 + ## 0.6.5 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 89754abad5..5413888fca 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-proxy-backend", - "version": "0.6.5", + "version": "0.6.6-next.0", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", "backstage": { "role": "backend-plugin", diff --git a/plugins/proxy-node/CHANGELOG.md b/plugins/proxy-node/CHANGELOG.md index 78b949bf29..b9d5e5987b 100644 --- a/plugins/proxy-node/CHANGELOG.md +++ b/plugins/proxy-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-proxy-node +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.1.7 ### Patch Changes diff --git a/plugins/proxy-node/package.json b/plugins/proxy-node/package.json index c975696fc0..4ad0c63bff 100644 --- a/plugins/proxy-node/package.json +++ b/plugins/proxy-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-proxy-node", - "version": "0.1.7", + "version": "0.1.8-next.0", "description": "The plugin-proxy-node module for @backstage/plugin-proxy-backend", "backstage": { "role": "node-library", diff --git a/plugins/scaffolder-backend-module-azure/CHANGELOG.md b/plugins/scaffolder-backend-module-azure/CHANGELOG.md index 14a6d69674..5f00e22a34 100644 --- a/plugins/scaffolder-backend-module-azure/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-azure/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-azure +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-azure/package.json b/plugins/scaffolder-backend-module-azure/package.json index 452ad16e79..8dff9c680e 100644 --- a/plugins/scaffolder-backend-module-azure/package.json +++ b/plugins/scaffolder-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-azure", - "version": "0.2.12", + "version": "0.2.13-next.0", "description": "The azure module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md index 656502b274..10a2cde00b 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket-cloud +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.3.2-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/package.json b/plugins/scaffolder-backend-module-bitbucket-cloud/package.json index e541ab777b..ae94ed0caa 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/package.json +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud", - "version": "0.2.12", + "version": "0.2.13-next.0", "description": "The Bitbucket Cloud module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md index 8b0073a7e8..1fe58506b1 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket-server +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket-server/package.json b/plugins/scaffolder-backend-module-bitbucket-server/package.json index 69b0e839a3..818033a8fd 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/package.json +++ b/plugins/scaffolder-backend-module-bitbucket-server/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket-server", - "version": "0.2.12", + "version": "0.2.13-next.0", "description": "The Bitbucket Server module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md index 2aa7ba3337..b9d50d9591 100644 --- a/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket +## 0.3.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.13-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.3.13 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket/package.json b/plugins/scaffolder-backend-module-bitbucket/package.json index 5037fde9ca..4b54d49087 100644 --- a/plugins/scaffolder-backend-module-bitbucket/package.json +++ b/plugins/scaffolder-backend-module-bitbucket/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket", - "version": "0.3.13", + "version": "0.3.14-next.0", "description": "The bitbucket module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md index 0f11671bb8..09560b5526 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.3.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.3.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json index 7876e20da8..06a9627649 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown", - "version": "0.3.12", + "version": "0.3.13-next.0", "description": "The confluence-to-markdown module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 0526929a65..8766a54513 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.3.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.3.14 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 31ae98fb67..32d3ec7be7 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", - "version": "0.3.14", + "version": "0.3.15-next.0", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-gcp/CHANGELOG.md b/plugins/scaffolder-backend-module-gcp/CHANGELOG.md index 64db674a09..0da8a53d22 100644 --- a/plugins/scaffolder-backend-module-gcp/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gcp/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-gcp +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gcp/package.json b/plugins/scaffolder-backend-module-gcp/package.json index 976bf0d862..20ba1f6148 100644 --- a/plugins/scaffolder-backend-module-gcp/package.json +++ b/plugins/scaffolder-backend-module-gcp/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gcp", - "version": "0.2.12", + "version": "0.2.13-next.0", "description": "The GCP Bucket module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md b/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md index fc37f01320..462bdce34f 100644 --- a/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-gerrit +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gerrit/package.json b/plugins/scaffolder-backend-module-gerrit/package.json index d595497459..6939ff2cc0 100644 --- a/plugins/scaffolder-backend-module-gerrit/package.json +++ b/plugins/scaffolder-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gerrit", - "version": "0.2.12", + "version": "0.2.13-next.0", "description": "The gerrit module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-gitea/CHANGELOG.md b/plugins/scaffolder-backend-module-gitea/CHANGELOG.md index f310b0c7d8..3a166448f7 100644 --- a/plugins/scaffolder-backend-module-gitea/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitea/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-gitea +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitea/package.json b/plugins/scaffolder-backend-module-gitea/package.json index cf29328d63..5ee0625450 100644 --- a/plugins/scaffolder-backend-module-gitea/package.json +++ b/plugins/scaffolder-backend-module-gitea/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitea", - "version": "0.2.12", + "version": "0.2.13-next.0", "description": "The gitea module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-github/CHANGELOG.md b/plugins/scaffolder-backend-module-github/CHANGELOG.md index 904d2ae64e..9e99278912 100644 --- a/plugins/scaffolder-backend-module-github/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-github/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-github +## 0.8.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.8.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-github/package.json b/plugins/scaffolder-backend-module-github/package.json index 4c8d2c04ce..15dedf5ac8 100644 --- a/plugins/scaffolder-backend-module-github/package.json +++ b/plugins/scaffolder-backend-module-github/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-github", - "version": "0.8.2", + "version": "0.8.3-next.0", "description": "The github module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md index ad4f53f095..c6a42b8e6a 100644 --- a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-gitlab +## 0.9.5-next.0 + +### Patch Changes + +- a84ddea: The log message now indicates that the pipeline trigger token was deleted and not pipeline itself. +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.9.4 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 056c58936c..495563a7c1 100644 --- a/plugins/scaffolder-backend-module-gitlab/package.json +++ b/plugins/scaffolder-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitlab", - "version": "0.9.4", + "version": "0.9.5-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "scaffolder", diff --git a/plugins/scaffolder-backend-module-notifications/CHANGELOG.md b/plugins/scaffolder-backend-module-notifications/CHANGELOG.md index e815f6def9..29fe4c33d4 100644 --- a/plugins/scaffolder-backend-module-notifications/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-notifications/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-notifications +## 0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-notifications-node@0.2.19-next.0 + ## 0.1.13 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-notifications/package.json b/plugins/scaffolder-backend-module-notifications/package.json index 6422458a07..d3f0b19e7e 100644 --- a/plugins/scaffolder-backend-module-notifications/package.json +++ b/plugins/scaffolder-backend-module-notifications/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-notifications", - "version": "0.1.13", + "version": "0.1.14-next.0", "description": "The notifications backend module for the scaffolder plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index cc34c264aa..afd81c17cd 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.5.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.5.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index daa8aa61ac..fb74e346bd 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", - "version": "0.5.12", + "version": "0.5.13-next.0", "description": "A module for the scaffolder backend that lets you template projects using Rails", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md index d3b96cf030..ecc41bb537 100644 --- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-sentry +## 0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.2.12 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index e19ae92513..492e4cc9e2 100644 --- a/plugins/scaffolder-backend-module-sentry/package.json +++ b/plugins/scaffolder-backend-module-sentry/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend-module-sentry", - "version": "0.2.12", + "version": "0.2.13-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "scaffolder", diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index 4cf83e748a..06e1e82c98 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.4.14-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-scaffolder-node-test-utils@0.3.3-next.1 + ## 0.4.14-next.0 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index ea1a720239..0af061c967 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.4.14-next.0", + "version": "0.4.14-next.1", "backstage": { "role": "backend-plugin-module", "pluginId": "scaffolder", diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index fda781ad76..5fbb8edcc2 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-scaffolder-backend +## 2.2.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.9.5-next.0 + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-bitbucket-cloud-common@0.3.2-next.0 + - @backstage/plugin-scaffolder-backend-module-azure@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.3.14-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-gitea@0.2.13-next.0 + - @backstage/plugin-scaffolder-backend-module-github@0.8.3-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.12-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 2.2.0 ### Minor Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 1ec02df8e3..6b2f9ef0cb 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "2.2.0", + "version": "2.2.1-next.0", "description": "The Backstage backend plugin that helps you create new things", "backstage": { "role": "backend-plugin", diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index 6165f118a0..bb407c70b8 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-common +## 1.7.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + ## 1.7.0 ### Minor Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index 9e690c0ef0..0f4af8faf9 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-common", - "version": "1.7.0", + "version": "1.7.1-next.0", "description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin", "backstage": { "role": "common-library", diff --git a/plugins/scaffolder-node-test-utils/CHANGELOG.md b/plugins/scaffolder-node-test-utils/CHANGELOG.md index 6024bc2cb5..6497a73281 100644 --- a/plugins/scaffolder-node-test-utils/CHANGELOG.md +++ b/plugins/scaffolder-node-test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-node-test-utils +## 0.3.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.11.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/backend-test-utils@1.9.0-next.1 + ## 0.3.3-next.0 ### Patch Changes diff --git a/plugins/scaffolder-node-test-utils/package.json b/plugins/scaffolder-node-test-utils/package.json index f5cc1ff588..eb223f4580 100644 --- a/plugins/scaffolder-node-test-utils/package.json +++ b/plugins/scaffolder-node-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-node-test-utils", - "version": "0.3.3-next.0", + "version": "0.3.3-next.1", "backstage": { "role": "node-library", "pluginId": "scaffolder", diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md index aa1370b4a7..6af39da4a2 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-node +## 0.11.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 0.11.0 ### Minor Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index 12c38df726..a8a3016e28 100644 --- a/plugins/scaffolder-node/package.json +++ b/plugins/scaffolder-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-node", - "version": "0.11.0", + "version": "0.11.1-next.0", "description": "The plugin-scaffolder-node module for @backstage/plugin-scaffolder-backend", "backstage": { "role": "node-library", diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md index 2270e4d8cd..78d40108f4 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-react +## 1.19.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + ## 1.19.1-next.0 ### Patch Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index ce4c217f83..1d8737db72 100644 --- a/plugins/scaffolder-react/package.json +++ b/plugins/scaffolder-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder-react", - "version": "1.19.1-next.0", + "version": "1.19.1-next.1", "description": "A frontend library that helps other Backstage plugins interact with the Scaffolder", "backstage": { "role": "web-library", diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index c62d40e672..bbb826965c 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder +## 1.34.1-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-scaffolder-react@1.19.1-next.1 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/plugin-scaffolder-common@1.7.1-next.0 + ## 1.34.1-next.0 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 4f59e69267..bad13ef8d2 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-scaffolder", - "version": "1.34.1-next.0", + "version": "1.34.1-next.1", "description": "The Backstage plugin that helps you create new things", "backstage": { "role": "frontend-plugin", diff --git a/plugins/search-backend-module-catalog/CHANGELOG.md b/plugins/search-backend-module-catalog/CHANGELOG.md index 868143bd0a..e9a56fa5f9 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-backend-module-catalog +## 0.3.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.3.7 ### Patch Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index b754a9b4eb..9bcc2287ff 100644 --- a/plugins/search-backend-module-catalog/package.json +++ b/plugins/search-backend-module-catalog/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-catalog", - "version": "0.3.7", + "version": "0.3.8-next.0", "description": "A module for the search backend that exports catalog modules", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 95dd55eea1..69735daa2b 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.7.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + ## 1.7.5 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 904f037294..7e56865e3c 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", - "version": "1.7.5", + "version": "1.7.6-next.0", "description": "A module for the search backend that implements search using ElasticSearch", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/search-backend-module-explore/CHANGELOG.md b/plugins/search-backend-module-explore/CHANGELOG.md index d91b709203..f8fcf763a5 100644 --- a/plugins/search-backend-module-explore/CHANGELOG.md +++ b/plugins/search-backend-module-explore/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-backend-module-explore +## 0.3.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + ## 0.3.6-next.0 ### Patch Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index 59a463fc29..925b489f41 100644 --- a/plugins/search-backend-module-explore/package.json +++ b/plugins/search-backend-module-explore/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-explore", - "version": "0.3.6-next.0", + "version": "0.3.7-next.1", "description": "A module for the search backend that exports explore modules", "backstage": { "moved": "@backstage-community/plugin-search-backend-module-explore", diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index eca98b76db..48a7c12180 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.48-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + ## 0.5.47 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 2ab60dde56..40a56baab1 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-pg", - "version": "0.5.47", + "version": "0.5.48-next.0", "description": "A module for the search backend that implements search using PostgreSQL", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md index 1480725e03..68c7683dda 100644 --- a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md +++ b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-backend-module-stack-overflow-collator +## 0.3.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + ## 0.3.12 ### Patch Changes diff --git a/plugins/search-backend-module-stack-overflow-collator/package.json b/plugins/search-backend-module-stack-overflow-collator/package.json index a8beeddffe..6cf96d8c18 100644 --- a/plugins/search-backend-module-stack-overflow-collator/package.json +++ b/plugins/search-backend-module-stack-overflow-collator/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-stack-overflow-collator", - "version": "0.3.12", + "version": "0.3.13-next.0", "description": "A module for the search backend that exports stack overflow modules", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/search-backend-module-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md index 9d75ca9659..1938883b9e 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.4.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-node@1.13.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 0.4.5 ### Patch Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index 04372c67b7..1faffa2b90 100644 --- a/plugins/search-backend-module-techdocs/package.json +++ b/plugins/search-backend-module-techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-module-techdocs", - "version": "0.4.5", + "version": "0.4.6-next.0", "description": "A module for the search backend that exports techdocs modules", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index 2cce263335..39b21dd29c 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-search-backend-node +## 1.3.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 1.3.14 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 9b631210ba..bf8375ffe1 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend-node", - "version": "1.3.14", + "version": "1.3.15-next.0", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", "backstage": { "role": "node-library", diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index e930b93603..93b283cc4a 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search-backend +## 2.0.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-permission-node@0.10.4-next.0 + - @backstage/plugin-search-backend-node@1.3.15-next.0 + - @backstage/backend-openapi-utils@0.6.1-next.0 + ## 2.0.5 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 95de87d78d..d353a2c079 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-backend", - "version": "2.0.5", + "version": "2.0.6-next.0", "description": "The Backstage backend plugin that provides your backstage app with search", "backstage": { "role": "backend-plugin", diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index 385c35cf44..1f68efe604 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-search-react +## 1.9.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + ## 1.9.3 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index de0def4e77..9345d508c1 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search-react", - "version": "1.9.3", + "version": "1.9.4-next.0", "backstage": { "role": "web-library", "pluginId": "search", diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index 07df6e67ae..8449247680 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search +## 1.4.30-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + ## 1.4.30-next.0 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index fdb72f75d1..7600d61b86 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-search", - "version": "1.4.30-next.0", + "version": "1.4.30-next.1", "description": "The Backstage plugin that provides your backstage app with search", "backstage": { "role": "frontend-plugin", diff --git a/plugins/signals-backend/CHANGELOG.md b/plugins/signals-backend/CHANGELOG.md index 31380c3b0f..ba744b3f13 100644 --- a/plugins/signals-backend/CHANGELOG.md +++ b/plugins/signals-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-signals-backend +## 0.3.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-signals-node@0.1.24-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.3.7 ### Patch Changes diff --git a/plugins/signals-backend/package.json b/plugins/signals-backend/package.json index edf8bb0429..2055b9f2d6 100644 --- a/plugins/signals-backend/package.json +++ b/plugins/signals-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-signals-backend", - "version": "0.3.7", + "version": "0.3.8-next.0", "backstage": { "role": "backend-plugin", "pluginId": "signals", diff --git a/plugins/signals-node/CHANGELOG.md b/plugins/signals-node/CHANGELOG.md index 332ce0bacf..898182f99c 100644 --- a/plugins/signals-node/CHANGELOG.md +++ b/plugins/signals-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-signals-node +## 0.1.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-events-node@0.4.15-next.0 + ## 0.1.23 ### Patch Changes diff --git a/plugins/signals-node/package.json b/plugins/signals-node/package.json index dd6204d288..6aabea9423 100644 --- a/plugins/signals-node/package.json +++ b/plugins/signals-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-signals-node", - "version": "0.1.23", + "version": "0.1.24-next.0", "description": "Node.js library for the signals plugin", "backstage": { "role": "node-library", diff --git a/plugins/signals/CHANGELOG.md b/plugins/signals/CHANGELOG.md index f45cdf89bb..9eccc1148f 100644 --- a/plugins/signals/CHANGELOG.md +++ b/plugins/signals/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-signals +## 0.0.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + ## 0.0.23-next.0 ### Patch Changes diff --git a/plugins/signals/package.json b/plugins/signals/package.json index 8ca22d0fff..23b512c133 100644 --- a/plugins/signals/package.json +++ b/plugins/signals/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-signals", - "version": "0.0.23-next.0", + "version": "0.0.23-next.1", "backstage": { "role": "frontend-plugin", "pluginId": "signals", diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 8b32e9b654..a6b33f9837 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.53-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/plugin-catalog@1.31.3-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-techdocs@1.14.2-next.1 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + ## 1.0.53-next.0 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 67408e47cb..eebe45a88a 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.53-next.0", + "version": "1.0.53-next.1", "backstage": { "role": "web-library", "pluginId": "techdocs-addons", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index 07339e39e4..036ba4387c 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-techdocs-backend +## 2.1.0-next.0 + +### Minor Changes + +- 063cdc5: Techdocs: support HumanDuration for cache TTL and timeout configuration + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/plugin-techdocs-node@1.13.7-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.4.6-next.0 + - @backstage/plugin-catalog-node@1.18.1-next.0 + ## 2.0.5 ### Patch Changes diff --git a/plugins/techdocs-backend/config.d.ts b/plugins/techdocs-backend/config.d.ts index c220717ddb..4954392828 100644 --- a/plugins/techdocs-backend/config.d.ts +++ b/plugins/techdocs-backend/config.d.ts @@ -14,6 +14,8 @@ * limitations under the License. */ +import { HumanDuration } from '@backstage/types'; + export interface Config { /** * Configuration options for the techdocs-backend plugin @@ -277,7 +279,7 @@ export interface Config { */ cache?: { /** - * The cache time-to-live for TechDocs sites (in milliseconds). Set this + * The cache time-to-live for TechDocs sites, in milliseconds for a number or a human duration. Set this * to a non-zero value to cache TechDocs sites and assets as they are * read from storage. * @@ -285,16 +287,16 @@ export interface Config { * and to pass a PluginCacheManager instance to TechDocs Backend's * createRouter method in your backend. */ - ttl: number; + ttl: number | HumanDuration | string; /** - * The time (in milliseconds) that the TechDocs backend will wait for + * The time (in milliseconds for a number or a human duration) that the TechDocs backend will wait for * a cache service to respond before continuing on as though the cached * object was not found (e.g. when the cache sercice is unavailable). * * Defaults to 1000 milliseconds. */ - readTimeout?: number; + readTimeout?: number | HumanDuration | string; }; /** diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index f776bc0f42..bc6bfd6175 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-backend", - "version": "2.0.5", + "version": "2.1.0-next.0", "description": "The Backstage backend plugin that renders technical documentation for your components", "backstage": { "role": "backend-plugin", @@ -71,6 +71,7 @@ "@backstage/plugin-search-backend-module-techdocs": "workspace:^", "@backstage/plugin-techdocs-common": "workspace:^", "@backstage/plugin-techdocs-node": "workspace:^", + "@backstage/types": "workspace:^", "express": "^4.17.1", "express-promise-router": "^4.1.0", "fs-extra": "^11.2.0", diff --git a/plugins/techdocs-backend/src/cache/TechDocsCache.ts b/plugins/techdocs-backend/src/cache/TechDocsCache.ts index a5eb4d37be..d5cbdaae36 100644 --- a/plugins/techdocs-backend/src/cache/TechDocsCache.ts +++ b/plugins/techdocs-backend/src/cache/TechDocsCache.ts @@ -14,8 +14,9 @@ * limitations under the License. */ import { assertError, CustomErrorBase } from '@backstage/errors'; -import { Config } from '@backstage/config'; +import { Config, readDurationFromConfig } from '@backstage/config'; import { CacheService, LoggerService } from '@backstage/backend-plugin-api'; +import { durationToMilliseconds } from '@backstage/types'; export class CacheInvalidationError extends CustomErrorBase {} @@ -42,8 +43,20 @@ export class TechDocsCache { config: Config, { cache, logger }: { cache: CacheService; logger: LoggerService }, ) { - const timeout = config.getOptionalNumber('techdocs.cache.readTimeout'); - const readTimeout = timeout === undefined ? 1000 : timeout; + let readTimeout: number; + if (config.has('techdocs.cache.readTimeout')) { + if (typeof config.get('techdocs.cache.readTimeout') === 'number') { + readTimeout = config.getNumber('techdocs.cache.readTimeout'); + } else { + readTimeout = durationToMilliseconds( + readDurationFromConfig(config, { + key: 'techdocs.cache.readTimeout', + }), + ); + } + } else { + readTimeout = 1000; + } return new TechDocsCache({ cache, logger, readTimeout }); } diff --git a/plugins/techdocs-backend/src/service/router.test.ts b/plugins/techdocs-backend/src/service/router.test.ts index 233f679fac..89c1009c3f 100644 --- a/plugins/techdocs-backend/src/service/router.test.ts +++ b/plugins/techdocs-backend/src/service/router.test.ts @@ -30,14 +30,10 @@ import { TechDocsCache } from '../cache'; import { mockErrorHandler, mockServices } from '@backstage/backend-test-utils'; jest.mock('@backstage/catalog-client'); -jest.mock('@backstage/config'); jest.mock('./CachedEntityLoader'); jest.mock('./DocsSynchronizer'); jest.mock('../cache/TechDocsCache'); -const MockedConfigReader = ConfigReader as jest.MockedClass< - typeof ConfigReader ->; const MockDocsSynchronizer = DocsSynchronizer as jest.MockedClass< typeof DocsSynchronizer >; @@ -115,7 +111,13 @@ describe('createRouter', () => { preparers, generators, publisher, - config: new ConfigReader({}), + config: new ConfigReader({ + techdocs: { + cache: { + ttl: 1, + }, + }, + }), logger: mockServices.logger.mock(), discovery, cache: mockServices.cache.mock(), @@ -143,9 +145,6 @@ describe('createRouter', () => { discovery.getBaseUrl.mockImplementation(async type => { return `http://backstage.local/api/${type}`; }); - MockedConfigReader.prototype.getOptionalNumber.mockImplementation(key => - key === 'techdocs.cache.ttl' ? 1 : undefined, - ); MockTechDocsCache.get.mockResolvedValue(undefined); MockTechDocsCache.set.mockResolvedValue(); }); @@ -326,13 +325,17 @@ data: {"updated":true} }); it('should check entity access when permissions are enabled', async () => { - MockedConfigReader.prototype.getOptionalBoolean.mockImplementation(key => - key === 'permission.enabled' ? true : undefined, - ); const docsRouter = jest.fn((_req, res) => res.sendStatus(200)); publisher.docsRouter.mockReturnValue(docsRouter); - const app = await createApp(outOfTheBoxOptions); + const app = await createApp({ + ...outOfTheBoxOptions, + config: new ConfigReader({ + permission: { + enabled: true, + }, + }), + }); MockCachedEntityLoader.prototype.load.mockResolvedValue(entity); @@ -345,11 +348,14 @@ data: {"updated":true} }); it('should not return assets without corresponding entity access', async () => { - MockedConfigReader.prototype.getOptionalBoolean.mockImplementation(key => - key === 'permission.enabled' ? true : undefined, - ); - - const app = await createApp(outOfTheBoxOptions); + const app = await createApp({ + ...outOfTheBoxOptions, + config: new ConfigReader({ + permission: { + enabled: true, + }, + }), + }); MockCachedEntityLoader.prototype.load.mockResolvedValue(undefined); diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index 7ce26232e1..4312e1a5af 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -16,7 +16,7 @@ import { CatalogApi, CatalogClient } from '@backstage/catalog-client'; import { stringifyEntityRef } from '@backstage/catalog-model'; -import { Config } from '@backstage/config'; +import { Config, readDurationFromConfig } from '@backstage/config'; import { NotFoundError } from '@backstage/errors'; import { DocsBuildStrategy, @@ -41,6 +41,7 @@ import { HttpAuthService, LoggerService, } from '@backstage/backend-plugin-api'; +import { durationToMilliseconds } from '@backstage/types'; /** * Required dependencies for running TechDocs in the "out-of-the-box" @@ -131,9 +132,18 @@ export async function createRouter( // Set up a cache client if configured. let cache: TechDocsCache | undefined; - const defaultTtl = config.getOptionalNumber('techdocs.cache.ttl'); - if (defaultTtl) { - const cacheClient = options.cache.withOptions({ defaultTtl }); + if (config.has('techdocs.cache.ttl')) { + let ttlMs: number; + if (typeof config.get('techdocs.cache.ttl') === 'number') { + ttlMs = config.getNumber('techdocs.cache.ttl'); + } else { + ttlMs = durationToMilliseconds( + readDurationFromConfig(config, { + key: 'techdocs.cache.ttl', + }), + ); + } + const cacheClient = options.cache.withOptions({ defaultTtl: ttlMs }); cache = TechDocsCache.fromConfig(config, { cache: cacheClient, logger }); } diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index d5fb572b43..91ae7badb3 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.1.28-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + ## 1.1.27 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index c50d0fbe42..308625938f 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", - "version": "1.1.27", + "version": "1.1.28-next.0", "description": "Plugin module for contributed TechDocs Addons", "backstage": { "role": "frontend-plugin-module", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index d6e843777b..efcbc4e394 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-techdocs-node +## 1.13.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.18.0-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + ## 1.13.6 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 9a0513cce0..c3081d2426 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-node", - "version": "1.13.6", + "version": "1.13.7-next.0", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", "backstage": { "role": "node-library", diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index dac39cf3be..f594c37f87 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-techdocs-react +## 1.3.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + ## 1.3.2 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 64c534bec3..0d9082b4d1 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs-react", - "version": "1.3.2", + "version": "1.3.3-next.0", "description": "Shared frontend utilities for TechDocs and Addons", "backstage": { "role": "web-library", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index f9adf94679..c4f6ed3cef 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-techdocs +## 1.14.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/integration@1.18.0-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + - @backstage/plugin-search-react@1.9.4-next.0 + - @backstage/plugin-techdocs-react@1.3.3-next.0 + - @backstage/integration-react@1.2.10-next.0 + - @backstage/plugin-auth-react@0.1.19-next.0 + ## 1.14.2-next.0 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index d4a3ffe6b8..7ecec3cd0a 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-techdocs", - "version": "1.14.2-next.0", + "version": "1.14.2-next.1", "description": "The Backstage plugin that renders technical documentation for your components", "backstage": { "role": "frontend-plugin", diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md index f2a7ac6aac..6b69021f4c 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-user-settings-backend +## 0.3.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.6.7-next.0 + - @backstage/backend-defaults@0.12.1-next.0 + - @backstage/backend-plugin-api@1.4.3-next.0 + - @backstage/plugin-signals-node@0.1.24-next.0 + ## 0.3.5 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index 46766460f0..16ccb92984 100644 --- a/plugins/user-settings-backend/package.json +++ b/plugins/user-settings-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-user-settings-backend", - "version": "0.3.5", + "version": "0.3.6-next.0", "description": "The Backstage backend plugin to manage user settings", "backstage": { "role": "backend-plugin", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index ae8426e265..5d4f80079f 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-user-settings +## 0.8.26-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.20.2-next.1 + - @backstage/frontend-plugin-api@0.11.1-next.0 + - @backstage/core-components@0.17.6-next.0 + - @backstage/core-compat-api@0.5.2-next.1 + ## 0.8.26-next.0 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 42c31d19d4..d5224ac8b6 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-user-settings", - "version": "0.8.26-next.0", + "version": "0.8.26-next.1", "description": "A Backstage plugin that provides a settings page", "backstage": { "role": "frontend-plugin", diff --git a/yarn.lock b/yarn.lock index 5487f23662..853749b99e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4485,6 +4485,7 @@ __metadata: luxon: "npm:^3.0.0" minimatch: "npm:^9.0.0" msw: "npm:^2.0.0" + type-fest: "npm:^4.41.0" uuid: "npm:^11.0.0" languageName: unknown linkType: soft @@ -7047,6 +7048,7 @@ __metadata: "@backstage/plugin-search-backend-module-techdocs": "workspace:^" "@backstage/plugin-techdocs-common": "workspace:^" "@backstage/plugin-techdocs-node": "workspace:^" + "@backstage/types": "workspace:^" "@types/express": "npm:^4.17.6" express: "npm:^4.17.1" express-promise-router: "npm:^4.1.0" @@ -26887,7 +26889,7 @@ __metadata: languageName: node linkType: hard -"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": +"create-hash@npm:^1.1.0, create-hash@npm:^1.2.0": version: 1.2.0 resolution: "create-hash@npm:1.2.0" dependencies: @@ -26900,7 +26902,19 @@ __metadata: languageName: node linkType: hard -"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": +"create-hash@npm:~1.1.3": + version: 1.1.3 + resolution: "create-hash@npm:1.1.3" + dependencies: + cipher-base: "npm:^1.0.1" + inherits: "npm:^2.0.1" + ripemd160: "npm:^2.0.0" + sha.js: "npm:^2.4.0" + checksum: 10/b9f675719321dd3a3c3540bb46afcbdaf7182366ce93da9265318290e928be881e5edeff8c48a5ee9263c342e5e3f705fad5eb48f2e2cddc5fed1eb54077e076 + languageName: node + linkType: hard + +"create-hmac@npm:^1.1.7": version: 1.1.7 resolution: "create-hmac@npm:1.1.7" dependencies: @@ -32355,6 +32369,15 @@ __metadata: languageName: node linkType: hard +"hash-base@npm:^2.0.0": + version: 2.0.2 + resolution: "hash-base@npm:2.0.2" + dependencies: + inherits: "npm:^2.0.1" + checksum: 10/e39f3f2bb91679ed350bd2eb81035acb1e1e6e9bb86d9f1197fcfdc3cf39a2c56bf82a1870f000fae651477883b4c107fd6ac0c640a18ab06298b87c39939396 + languageName: node + linkType: hard + "hash-base@npm:^3.0.0, hash-base@npm:~3.0, hash-base@npm:~3.0.4": version: 3.0.5 resolution: "hash-base@npm:3.0.5" @@ -40804,15 +40827,16 @@ __metadata: linkType: hard "pbkdf2@npm:^3.1.2": - version: 3.1.2 - resolution: "pbkdf2@npm:3.1.2" + version: 3.1.3 + resolution: "pbkdf2@npm:3.1.3" dependencies: - create-hash: "npm:^1.1.2" - create-hmac: "npm:^1.1.4" - ripemd160: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - sha.js: "npm:^2.4.8" - checksum: 10/40bdf30df1c9bb1ae41ec50c11e480cf0d36484b7c7933bf55e4451d1d0e3f09589df70935c56e7fccc5702779a0d7b842d012be8c08a187b44eb24d55bb9460 + create-hash: "npm:~1.1.3" + create-hmac: "npm:^1.1.7" + ripemd160: "npm:=2.0.1" + safe-buffer: "npm:^5.2.1" + sha.js: "npm:^2.4.11" + to-buffer: "npm:^1.2.0" + checksum: 10/980cf2977aa84ec3166fde195a28464ab494131c0a5778fc8f20b8894410747e502159c19ef2b41842c728bc52ba49ffee6847e3ee61ac0d482689f85d8a1b30 languageName: node linkType: hard @@ -44173,6 +44197,16 @@ __metadata: languageName: node linkType: hard +"ripemd160@npm:=2.0.1": + version: 2.0.1 + resolution: "ripemd160@npm:2.0.1" + dependencies: + hash-base: "npm:^2.0.0" + inherits: "npm:^2.0.1" + checksum: 10/f1a20b72b3ef897a981544c72a1fe15c2bd580f6f40e3062f7839af8e81232f746aa860964686e4b81e90929ad086f14823a9864e4e4bed3367e597fe14a0968 + languageName: node + linkType: hard + "ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": version: 2.0.2 resolution: "ripemd160@npm:2.0.2" @@ -47725,7 +47759,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^4.26.1, type-fest@npm:^4.3.1": +"type-fest@npm:^4.26.1, type-fest@npm:^4.3.1, type-fest@npm:^4.41.0": version: 4.41.0 resolution: "type-fest@npm:4.41.0" checksum: 10/617ace794ac0893c2986912d28b3065ad1afb484cad59297835a0807dc63286c39e8675d65f7de08fafa339afcb8fe06a36e9a188b9857756ae1e92ee8bda212