diff --git a/.changeset/blue-hairs-marry.md b/.changeset/blue-hairs-marry.md new file mode 100644 index 0000000000..2ca1a3d47e --- /dev/null +++ b/.changeset/blue-hairs-marry.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli-node': patch +--- + +Added new plugin metadata fields to `BackstagePackageJson` type. diff --git a/.changeset/calm-files-sort.md b/.changeset/calm-files-sort.md new file mode 100644 index 0000000000..a487c00eb4 --- /dev/null +++ b/.changeset/calm-files-sort.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +In tests, return `null` rather than throwing an error when trying to get the `ExtensionPoint.T` property, so that tests asserting the property are not easily broken. diff --git a/.changeset/clever-kids-return.md b/.changeset/clever-kids-return.md new file mode 100644 index 0000000000..a6cab79f2b --- /dev/null +++ b/.changeset/clever-kids-return.md @@ -0,0 +1,13 @@ +--- +'@backstage/plugin-auth-node': patch +--- + +Updated scope management for OAuth providers, where the `createOAuthAuthenticator` now accepts a new collection of `scopes` options: + +- `scopes.persist` - Whether scopes should be persisted, replaces the `shouldPersistScopes` option. +- `scopes.required` - A list of required scopes that will always be requested. +- `scopes.transform` - A function that can be used to transform the scopes before they are requested. + +The `createOAuthProviderFactory` has also received a new `additionalScopes` option, and will also read `additionalScopes` from the auth provider configuration. Both of these can be used to add additional scopes that should always be requested. + +A significant change under the hood that this new scope management brings is that providers that persist scopes will now always merge the already granted scopes with the requested ones. The previous behavior was that the full authorization flow would not include existing scopes, while the refresh flow would only include the existing scopes. diff --git a/.changeset/honest-badgers-ring.md b/.changeset/honest-badgers-ring.md new file mode 100644 index 0000000000..c1e763e6cb --- /dev/null +++ b/.changeset/honest-badgers-ring.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-test-utils': patch +--- + +The type `MockDirectoryOptions` was renamed to `CreateMockDirectoryOptions` so that it's clear these options are exclusive to the mock directory factory. diff --git a/.changeset/long-llamas-push-atlassian.md b/.changeset/long-llamas-push-atlassian.md new file mode 100644 index 0000000000..3e0ae5ad14 --- /dev/null +++ b/.changeset/long-llamas-push-atlassian.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-atlassian-provider': minor +--- + +**BREAKING**: The `scope` and `scopes` config options have been removed and replaced by the standard `additionalScopes` config. In addition, the `offline_access`, `read:jira-work`, and `read:jira-user` scopes have been set to required and will always be present. diff --git a/.changeset/long-llamas-push-bitbucket.md b/.changeset/long-llamas-push-bitbucket.md new file mode 100644 index 0000000000..36a68219eb --- /dev/null +++ b/.changeset/long-llamas-push-bitbucket.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-bitbucket-provider': patch +--- + +Added support for the new shared `additionalScopes` configuration. In addition, the `account` scope has been set to required and will always be present. diff --git a/.changeset/long-llamas-push-github.md b/.changeset/long-llamas-push-github.md new file mode 100644 index 0000000000..c68fb8e925 --- /dev/null +++ b/.changeset/long-llamas-push-github.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-github-provider': patch +--- + +Added support for the new shared `additionalScopes` configuration. In addition, the `read:user` scope has been set to required and will always be present. diff --git a/.changeset/long-llamas-push-gitlab.md b/.changeset/long-llamas-push-gitlab.md new file mode 100644 index 0000000000..fe5d293723 --- /dev/null +++ b/.changeset/long-llamas-push-gitlab.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-gitlab-provider': patch +--- + +Added support for the new shared `additionalScopes` configuration. In addition, the `read_user` scope has been set to required and will always be present. diff --git a/.changeset/long-llamas-push-google.md b/.changeset/long-llamas-push-google.md new file mode 100644 index 0000000000..c9de73eb36 --- /dev/null +++ b/.changeset/long-llamas-push-google.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-google-provider': patch +--- + +Added support for the new shared `additionalScopes` configuration. In addition, the `openid`, `userinfo.email`, and `userinfo.profile` scopes have been set to required and will always be present. diff --git a/.changeset/long-llamas-push-microsoft.md b/.changeset/long-llamas-push-microsoft.md new file mode 100644 index 0000000000..f6509db0f7 --- /dev/null +++ b/.changeset/long-llamas-push-microsoft.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-microsoft-provider': patch +--- + +Added support for the new shared `additionalScopes` configuration. diff --git a/.changeset/long-llamas-push-oauth2.md b/.changeset/long-llamas-push-oauth2.md new file mode 100644 index 0000000000..2a233dbb42 --- /dev/null +++ b/.changeset/long-llamas-push-oauth2.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-oauth2-provider': minor +--- + +**BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. diff --git a/.changeset/long-llamas-push-oidc.md b/.changeset/long-llamas-push-oidc.md new file mode 100644 index 0000000000..248d762864 --- /dev/null +++ b/.changeset/long-llamas-push-oidc.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-oidc-provider': minor +--- + +**BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, `openid`, `profile`, and `email` scopes have been set to required and will always be present. diff --git a/.changeset/long-llamas-push-okta.md b/.changeset/long-llamas-push-okta.md new file mode 100644 index 0000000000..d330746d2e --- /dev/null +++ b/.changeset/long-llamas-push-okta.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-okta-provider': patch +--- + +Added support for the new shared `additionalScopes` configuration, which means it can now also be specified as an array. In addition, the `openid`, `email`, `profile`, and `offline_access` scopes have been set to required and will always be present. diff --git a/.changeset/long-llamas-push-pinniped.md b/.changeset/long-llamas-push-pinniped.md new file mode 100644 index 0000000000..a9c6a54cee --- /dev/null +++ b/.changeset/long-llamas-push-pinniped.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-pinniped-provider': patch +--- + +**BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, the `openid`, `pinniped:request-audience`, `username`, and `offline_access` scopes have been set to required and will always be present. diff --git a/.changeset/long-llamas-push-vmware-cloud.md b/.changeset/long-llamas-push-vmware-cloud.md new file mode 100644 index 0000000000..9edfb01f68 --- /dev/null +++ b/.changeset/long-llamas-push-vmware-cloud.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-vmware-cloud-provider': minor +--- + +**BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, `openid`, and `offline_access` scopes have been set to required and will always be present. diff --git a/.changeset/nasty-roses-flash.md b/.changeset/nasty-roses-flash.md new file mode 100644 index 0000000000..4c09a7e47f --- /dev/null +++ b/.changeset/nasty-roses-flash.md @@ -0,0 +1,12 @@ +--- +'@backstage/integration': minor +--- + +**BREAKING** Removed deprecated code from when casing was changed from `GitHub` to `Github` nearly two years ago. The following items have been removed: + +- `getGitHubFileFetchUrl` (use `getGithubFileFetchUrl` instead) +- `GitHubIntegrationConfig` (use `GithubIntegrationConfig` instead) +- `GitHubIntegration` (use `GithubIntegration` instead) +- `readGitHubIntegrationConfig` (use `readGithubIntegrationConfig` instead) +- `readGitHubIntegrationConfigs` (use `readGithubIntegrationConfigs` instead) +- `replaceGitHubUrlType` (use `replaceGithubUrlType` instead) diff --git a/.changeset/neat-chairs-complain.md b/.changeset/neat-chairs-complain.md new file mode 100644 index 0000000000..96c0271d81 --- /dev/null +++ b/.changeset/neat-chairs-complain.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Fixing issues with log redaction in the scaffolder logs diff --git a/.changeset/nervous-kings-change.md b/.changeset/nervous-kings-change.md new file mode 100644 index 0000000000..99a3547574 --- /dev/null +++ b/.changeset/nervous-kings-change.md @@ -0,0 +1,15 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +Deprecated all of the `UrlReader` related type names and replaced them with prefixed versions. Please update your imports. + +- `ReadTreeOptions` was renamed to `UrlReaderReadTreeOptions` +- `ReadTreeResponse` was renamed to `UrlReaderReadTreeResponse` +- `ReadTreeResponseDirOptions` was renamed to `UrlReaderReadTreeResponseDirOptions` +- `ReadTreeResponseFile` was renamed to `UrlReaderReadTreeResponseFile` +- `ReadUrlResponse` was renamed to `UrlReaderReadUrlResponse` +- `ReadUrlOptions` was renamed to `UrlReaderReadUrlOptions` +- `SearchOptions` was renamed to `UrlReaderSearchOptions` +- `SearchResponse` was renamed to `UrlReaderSearchResponse` +- `SearchResponseFile` was renamed to `UrlReaderSearchResponseFile` diff --git a/.changeset/new-masks-occur.md b/.changeset/new-masks-occur.md new file mode 100644 index 0000000000..b5777b7abe --- /dev/null +++ b/.changeset/new-masks-occur.md @@ -0,0 +1,136 @@ +--- +'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch +'@backstage/plugin-auth-backend-module-cloudflare-access-provider': patch +'@backstage/plugin-catalog-backend-module-scaffolder-entity-model': patch +'@backstage/plugin-search-backend-module-stack-overflow-collator': patch +'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch +'@backstage/plugin-auth-backend-module-azure-easyauth-provider': patch +'@backstage/plugin-permission-backend-module-allow-all-policy': patch +'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch +'@backstage/plugin-auth-backend-module-oauth2-proxy-provider': patch +'@backstage/plugin-auth-backend-module-vmware-cloud-provider': patch +'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch +'@backstage/plugin-catalog-backend-module-backstage-openapi': patch +'@backstage/plugin-catalog-backend-module-bitbucket-server': patch +'@backstage/plugin-scaffolder-backend-module-notifications': patch +'@backstage/plugin-auth-backend-module-atlassian-provider': patch +'@backstage/plugin-auth-backend-module-bitbucket-provider': patch +'@backstage/plugin-auth-backend-module-microsoft-provider': patch +'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch +'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch +'@backstage/plugin-auth-backend-module-onelogin-provider': patch +'@backstage/plugin-auth-backend-module-pinniped-provider': patch +'@backstage/plugin-events-backend-module-bitbucket-cloud': patch +'@backstage/plugin-auth-backend-module-aws-alb-provider': patch +'@backstage/plugin-auth-backend-module-gcp-iap-provider': patch +'@backstage/plugin-auth-backend-module-github-provider': patch +'@backstage/plugin-auth-backend-module-gitlab-provider': patch +'@backstage/plugin-auth-backend-module-google-provider': patch +'@backstage/plugin-auth-backend-module-oauth2-provider': patch +'@backstage/plugin-catalog-unprocessed-entities-common': patch +'@backstage/plugin-scaffolder-backend-module-bitbucket': patch +'@backstage/plugin-search-backend-module-elasticsearch': patch +'@backstage/plugin-auth-backend-module-guest-provider': patch +'@backstage/plugin-catalog-backend-module-unprocessed': patch +'@backstage/plugin-notifications-backend-module-email': patch +'@backstage/plugin-auth-backend-module-oidc-provider': patch +'@backstage/plugin-auth-backend-module-okta-provider': patch +'@backstage/plugin-catalog-backend-module-github-org': patch +'@backstage/plugin-catalog-backend-module-gitlab-org': patch +'@backstage/plugin-scaffolder-backend-module-gerrit': patch +'@backstage/plugin-scaffolder-backend-module-github': patch +'@backstage/plugin-scaffolder-backend-module-gitlab': patch +'@backstage/plugin-scaffolder-backend-module-sentry': patch +'@backstage/plugin-scaffolder-backend-module-yeoman': patch +'@backstage/plugin-catalog-backend-module-puppetdb': patch +'@backstage/plugin-scaffolder-backend-module-azure': patch +'@backstage/plugin-scaffolder-backend-module-gitea': patch +'@backstage/plugin-scaffolder-backend-module-rails': patch +'@backstage/plugin-api-docs-module-protoc-gen-doc': patch +'@backstage/plugin-catalog-backend-module-msgraph': patch +'@backstage/plugin-catalog-backend-module-openapi': patch +'@backstage/plugin-search-backend-module-techdocs': patch +'@backstage/plugin-techdocs-module-addons-contrib': patch +'@backstage/plugin-catalog-backend-module-gerrit': patch +'@backstage/plugin-catalog-backend-module-github': patch +'@backstage/plugin-catalog-backend-module-gitlab': patch +'@backstage/plugin-events-backend-module-aws-sqs': patch +'@backstage/plugin-search-backend-module-catalog': patch +'@backstage/plugin-search-backend-module-explore': patch +'@backstage/plugin-catalog-backend-module-azure': patch +'@backstage/plugin-catalog-unprocessed-entities': patch +'@backstage/plugin-events-backend-module-gerrit': patch +'@backstage/plugin-events-backend-module-github': patch +'@backstage/plugin-events-backend-module-gitlab': patch +'@backstage/plugin-catalog-backend-module-ldap': patch +'@backstage/plugin-events-backend-module-azure': patch +'@backstage/plugin-catalog-backend-module-aws': patch +'@backstage/plugin-catalog-backend-module-gcp': patch +'@backstage/plugin-scaffolder-node-test-utils': patch +'@backstage/plugin-techdocs-addons-test-utils': patch +'@backstage/plugin-events-backend-test-utils': patch +'@backstage/plugin-search-backend-module-pg': patch +'@backstage/plugin-bitbucket-cloud-common': patch +'@backstage/plugin-notifications-backend': patch +'@backstage/plugin-user-settings-backend': patch +'@backstage/plugin-notifications-common': patch +'@backstage/plugin-user-settings-common': patch +'@backstage/plugin-search-backend-node': patch +'@backstage/plugin-kubernetes-backend': patch +'@backstage/plugin-kubernetes-cluster': patch +'@backstage/plugin-notifications-node': patch +'@backstage/plugin-permission-backend': patch +'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-kubernetes-common': patch +'@backstage/plugin-permission-common': patch +'@backstage/plugin-scaffolder-common': patch +'@backstage/plugin-devtools-backend': patch +'@backstage/plugin-kubernetes-react': patch +'@backstage/plugin-permission-react': patch +'@backstage/plugin-scaffolder-react': patch +'@backstage/plugin-techdocs-backend': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-devtools-common': patch +'@backstage/plugin-kubernetes-node': patch +'@backstage/plugin-permission-node': patch +'@backstage/plugin-scaffolder-node': patch +'@backstage/plugin-signals-backend': patch +'@backstage/plugin-app-visualizer': patch +'@backstage/plugin-catalog-common': patch +'@backstage/plugin-catalog-import': patch +'@backstage/plugin-events-backend': patch +'@backstage/plugin-search-backend': patch +'@backstage/plugin-techdocs-react': patch +'@backstage/plugin-catalog-graph': patch +'@backstage/plugin-catalog-react': patch +'@backstage/plugin-config-schema': patch +'@backstage/plugin-notifications': patch +'@backstage/plugin-proxy-backend': patch +'@backstage/plugin-search-common': patch +'@backstage/plugin-signals-react': patch +'@backstage/plugin-techdocs-node': patch +'@backstage/plugin-user-settings': patch +'@backstage/plugin-auth-backend': patch +'@backstage/plugin-catalog-node': patch +'@backstage/plugin-search-react': patch +'@backstage/plugin-signals-node': patch +'@backstage/plugin-app-backend': patch +'@backstage/plugin-events-node': patch +'@backstage/plugin-auth-react': patch +'@backstage/plugin-home-react': patch +'@backstage/plugin-kubernetes': patch +'@backstage/plugin-scaffolder': patch +'@backstage/plugin-auth-node': patch +'@backstage/plugin-org-react': patch +'@backstage/plugin-api-docs': patch +'@backstage/plugin-app-node': patch +'@backstage/plugin-devtools': patch +'@backstage/plugin-techdocs': patch +'@backstage/plugin-catalog': patch +'@backstage/plugin-signals': patch +'@backstage/plugin-search': patch +'@backstage/plugin-home': patch +'@backstage/plugin-org': patch +--- + +Added additional plugin metadata to `package.json`. diff --git a/.changeset/plenty-mirrors-laugh.md b/.changeset/plenty-mirrors-laugh.md new file mode 100644 index 0000000000..f46e3b5937 --- /dev/null +++ b/.changeset/plenty-mirrors-laugh.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-microsoft-provider': patch +--- + +Minor internal type updates diff --git a/.changeset/polite-emus-invent.md b/.changeset/polite-emus-invent.md new file mode 100644 index 0000000000..a31c04e021 --- /dev/null +++ b/.changeset/polite-emus-invent.md @@ -0,0 +1,8 @@ +--- +'@backstage/backend-defaults': minor +--- + +**BREAKING**: The `workdir` argument have been removed from The `GerritUrlReader` constructor. + +**BREAKING**: The Gerrit `readTree` implementation will now only use the Gitiles api. Support +for using git to clone the repo has been removed. diff --git a/.changeset/pre.json b/.changeset/pre.json index ce72063500..a3a00cf717 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -181,16 +181,23 @@ "@backstage/plugin-techdocs-node": "1.12.4", "@backstage/plugin-techdocs-react": "1.2.4", "@backstage/plugin-user-settings": "0.8.6", - "@backstage/plugin-user-settings-backend": "0.2.17" + "@backstage/plugin-user-settings-backend": "0.2.17", + "yarn-plugin-backstage": "0.0.0", + "@backstage/plugin-auth-backend-module-onelogin-provider": "0.0.0", + "@backstage/plugin-user-settings-common": "0.0.0" }, "changesets": [ "beige-eagles-cheat", + "blue-hairs-marry", "brave-apples-move", "breezy-badgers-train", + "breezy-planets-sparkle", "brown-bananas-talk", "calm-cars-serve", + "calm-files-sort", "calm-plums-wink", "chilled-planes-sniff", + "clever-kids-return", "clever-radios-yawn", "cold-seas-end", "create-app-1716302437", @@ -207,12 +214,16 @@ "empty-tables-ring", "famous-monkeys-count", "forty-adults-roll", + "forty-experts-live", "four-adults-mix", "friendly-keys-fold", "gentle-baboons-peel", + "gentle-llamas-cross", "gold-teachers-wink", + "great-clouds-hang", "great-cougars-guess", "green-apricots-invite", + "honest-badgers-ring", "honest-pandas-chew", "itchy-spoons-cry", "large-months-decide", @@ -220,6 +231,17 @@ "late-students-live", "light-rice-argue", "little-cooks-approve", + "long-llamas-push-atlassian", + "long-llamas-push-bitbucket", + "long-llamas-push-github", + "long-llamas-push-gitlab", + "long-llamas-push-google", + "long-llamas-push-microsoft", + "long-llamas-push-oauth2", + "long-llamas-push-oidc", + "long-llamas-push-okta", + "long-llamas-push-pinniped", + "long-llamas-push-vmware-cloud", "loud-pumpkins-bow", "lovely-hats-pay", "lucky-taxis-rule", @@ -227,9 +249,13 @@ "many-windows-attack", "mean-laws-lay", "moody-buttons-hope", + "nasty-roses-flash", "neat-rivers-share", + "nervous-kings-change", "nervous-queens-fly", + "new-masks-occur", "new-numbers-hug", + "nice-kangaroos-occur", "nice-pants-shave", "nine-hairs-kick", "nine-ties-type", @@ -239,37 +265,51 @@ "orange-pianos-eat", "perfect-bikes-invite", "polite-otters-talk", + "popular-boxes-press", "popular-carrots-love", "pretty-berries-live", + "pretty-spoons-knock", "proud-readers-move", + "purple-mugs-beg", + "rare-frogs-beam", "real-ghosts-return", "rich-teachers-agree", "rude-kings-press", + "rude-snakes-clap", "selfish-pugs-lick", "serious-yaks-sit", "seven-geese-raise", "shaggy-jokes-promise", + "shaggy-mugs-kiss", + "shaggy-zebras-mate", "six-llamas-give", "slimy-fans-raise", + "slow-dolls-type", "smooth-gifts-nail", "soft-flies-live", "sour-colts-juggle", "spicy-brooms-hang", "spicy-camels-happen", + "spicy-ears-raise", "spotty-plants-switch", + "spotty-ravens-perform", "strong-moose-work", "stupid-tigers-bake", "swift-islands-leave", + "tall-bananas-reflect", "tall-lies-fetch", "tall-pumas-teach", + "tasty-horses-breathe", "tender-seas-listen", "thirty-plums-shout", "tiny-pandas-return", + "twelve-pumpkins-fold", "twenty-masks-dance", "warm-bees-hope", "warm-mayflies-yell", "weak-gifts-occur", "wet-crabs-guess", + "wild-coats-doubt", "wild-doors-cheat", "wild-ears-walk", "wise-beers-doubt", diff --git a/.changeset/rare-frogs-beam.md b/.changeset/rare-frogs-beam.md new file mode 100644 index 0000000000..981c0c00ce --- /dev/null +++ b/.changeset/rare-frogs-beam.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Fixed a broken link to the node-postgres documentation diff --git a/.changeset/shaggy-zebras-mate.md b/.changeset/shaggy-zebras-mate.md new file mode 100644 index 0000000000..c66a92d1e9 --- /dev/null +++ b/.changeset/shaggy-zebras-mate.md @@ -0,0 +1,6 @@ +--- +'@backstage/backend-defaults': patch +'@backstage/backend-common': patch +--- + +Moved over all URL reader functionality from `@backstage/backend-common` to `@backstage/backend-defaults/urlReader`. Please update your imports. diff --git a/.changeset/spicy-ears-raise.md b/.changeset/spicy-ears-raise.md new file mode 100644 index 0000000000..a53ed9c721 --- /dev/null +++ b/.changeset/spicy-ears-raise.md @@ -0,0 +1,7 @@ +--- +'@backstage/integration-react': patch +'@backstage/backend-common': patch +'@backstage/integration': patch +--- + +Fix AWS CodeCommit integration by allowing to change the host diff --git a/.changeset/tasty-horses-breathe.md b/.changeset/tasty-horses-breathe.md new file mode 100644 index 0000000000..afd20e6c4a --- /dev/null +++ b/.changeset/tasty-horses-breathe.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Added a new `--publish` flag to the `repo fix` command. This command will validate and if possible generate the metadata required for publishing packages with the Backstage CLI. In addition, a check has been added that the `backstage.pluginId` and `backstage.pluginPackage(s)` fields are present when packing a package for publishing. diff --git a/.changeset/wicked-dingos-heal.md b/.changeset/wicked-dingos-heal.md new file mode 100644 index 0000000000..367c65e95e --- /dev/null +++ b/.changeset/wicked-dingos-heal.md @@ -0,0 +1,7 @@ +--- +'@backstage/integration': minor +--- + +**BREAKING**: `gitilesBaseUrl` is now mandatory for the Gerrit integration. The +ability to override this requirement using the `DISABLE_GERRIT_GITILES_REQUIREMENT` +environment variable has been removed. diff --git a/.github/workflows/api-breaking-changes-comment.yml b/.github/workflows/api-breaking-changes-comment.yml index 9ae32e1d4a..317690f875 100644 --- a/.github/workflows/api-breaking-changes-comment.yml +++ b/.github/workflows/api-breaking-changes-comment.yml @@ -90,7 +90,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 # Identify comment to be updated - name: Find comment for API Changes diff --git a/.github/workflows/api-breaking-changes.yml b/.github/workflows/api-breaking-changes.yml index d44e524ccb..d62e606c0e 100644 --- a/.github/workflows/api-breaking-changes.yml +++ b/.github/workflows/api-breaking-changes.yml @@ -33,7 +33,7 @@ jobs: registry-url: https://registry.npmjs.org/ - name: yarn install - uses: backstage/actions/yarn-install@a674369920067381b450d398b27df7039b7ef635 # v0.6.5 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: linux-v18 diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index 95b0a808a1..08898e5bb5 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -34,7 +34,7 @@ jobs: ref: 'refs/pull/${{ github.event.pull_request.number }}/merge' - name: fetch base run: git fetch --depth 1 origin ${{ github.base_ref }} - - uses: backstage/actions/changeset-feedback@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + - uses: backstage/actions/changeset-feedback@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 name: Generate feedback with: diff-ref: 'origin/master' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00181adb5e..a5bc6c2894 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,7 +41,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -77,7 +77,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -222,7 +222,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index 7dcb4a9c0f..ede29d2730 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -13,7 +13,7 @@ jobs: with: egress-policy: audit - - uses: backstage/actions/cron@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + - uses: backstage/actions/cron@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }} diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml index ddf01fa49c..48e74fdf47 100644 --- a/.github/workflows/deploy_docker-image.yml +++ b/.github/workflows/deploy_docker-image.yml @@ -37,7 +37,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml index 02a1c65681..4014da8360 100644 --- a/.github/workflows/deploy_nightly.yml +++ b/.github/workflows/deploy_nightly.yml @@ -27,7 +27,7 @@ jobs: node-version: 18.x registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v18.x diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 04badd65b0..76184fcb39 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -82,7 +82,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -166,7 +166,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/pr-review-comment.yaml b/.github/workflows/pr-review-comment.yaml index 232089e2f3..d722894df7 100644 --- a/.github/workflows/pr-review-comment.yaml +++ b/.github/workflows/pr-review-comment.yaml @@ -40,7 +40,7 @@ jobs: const prNumber = artifact.name.slice('pr_number-'.length) core.setOutput('pr-number', prNumber); - - uses: backstage/actions/re-review@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + - uses: backstage/actions/re-review@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 779137b52a..8193bfaf79 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -23,7 +23,7 @@ jobs: egress-policy: audit - name: PR sync - uses: backstage/actions/pr-sync@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/pr-sync@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 8d5b2522af..253219d2fc 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: 'Upload to code-scanning' - uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: sarif_file: results.sarif diff --git a/.github/workflows/sync_code-formatting.yml b/.github/workflows/sync_code-formatting.yml index bb2e00ffa6..a854323207 100644 --- a/.github/workflows/sync_code-formatting.yml +++ b/.github/workflows/sync_code-formatting.yml @@ -25,7 +25,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/sync_snyk-github-issues.yml b/.github/workflows/sync_snyk-github-issues.yml index 079c473e23..e00ddf5459 100644 --- a/.github/workflows/sync_snyk-github-issues.yml +++ b/.github/workflows/sync_snyk-github-issues.yml @@ -24,7 +24,7 @@ jobs: node-version: 18.x registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v18.x diff --git a/.github/workflows/sync_snyk-monitor.yml b/.github/workflows/sync_snyk-monitor.yml index 60cb633e17..bc7fb6f932 100644 --- a/.github/workflows/sync_snyk-monitor.yml +++ b/.github/workflows/sync_snyk-monitor.yml @@ -58,6 +58,6 @@ jobs: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} NODE_OPTIONS: --max-old-space-size=7168 - name: Upload Snyk report - uses: github/codeql-action/upload-sarif@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: sarif_file: snyk.sarif diff --git a/.github/workflows/verify_accessibility.yml b/.github/workflows/verify_accessibility.yml index 996153f8d3..8a4ca15ed8 100644 --- a/.github/workflows/verify_accessibility.yml +++ b/.github/workflows/verify_accessibility.yml @@ -30,7 +30,7 @@ jobs: with: node-version: 18.x - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v18.x - name: run Lighthouse CI diff --git a/.github/workflows/verify_codeql.yml b/.github/workflows/verify_codeql.yml index bcac7e947c..23dbac3130 100644 --- a/.github/workflows/verify_codeql.yml +++ b/.github/workflows/verify_codeql.yml @@ -55,7 +55,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/init@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -66,7 +66,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/autobuild@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -80,4 +80,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@d39d31e687223d841ef683f52467bd88e9b21c14 # v3.25.3 + uses: github/codeql-action/analyze@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml index 77d2c3bdc1..46eef15534 100644 --- a/.github/workflows/verify_e2e-kubernetes.yml +++ b/.github/workflows/verify_e2e-kubernetes.yml @@ -35,7 +35,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml index f8583ac178..1c6bb1b7b6 100644 --- a/.github/workflows/verify_e2e-linux.yml +++ b/.github/workflows/verify_e2e-linux.yml @@ -58,7 +58,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index e2a789d666..08d9fc70cb 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -78,7 +78,7 @@ jobs: uses: browser-actions/setup-chrome@803ef6dfb4fdf22089c9563225d95e4a515820a0 # latest - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml index 1859c0b8bc..9d68e73d89 100644 --- a/.github/workflows/verify_storybook.yml +++ b/.github/workflows/verify_storybook.yml @@ -42,7 +42,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 + uses: backstage/actions/yarn-install@772cef06641090d0095188e15c85647acdf0c250 # v0.6.11 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} - name: storybook yarn install @@ -51,7 +51,7 @@ jobs: - run: yarn build-storybook - - uses: chromaui/action@3dcb6636a4f8eed347ef6214f5d74d2b5fee45e4 # v11 + - uses: chromaui/action@fa68b990eaee8aa67857557651a1953a8eb6d70b # v11 with: token: ${{ secrets.GITHUB_TOKEN }} # projectToken intentionally shared to allow collaborators to run Chromatic on forks diff --git a/OWNERS.md b/OWNERS.md index bf97c91685..1437629881 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -114,10 +114,9 @@ Scope: Tooling and Community Repo Maintainers for the Backstage [Community Plugi | Name | Organization | GitHub | Discord | | -------------------- | ------------ | ------------------------------------------- | ------------ | -| Bethany Griggs | Red Hat | [BethGriggs](https://github.com/BethGriggs) | `bethgriggs` | -| Tomas Kral | Red Hat | [kadel](https://github.com/kadel) | `tomkral` | | André Wanlin | Spotify | [awanlin](https://github.com/awanlin) | `ahhhndre` | -| Philipp Hugenroth | Spotify | [tudi2d](https://github.com/tudi2d) | `tudi2d` | +| Bethany Griggs | Red Hat | [BethGriggs](https://github.com/BethGriggs) | `bethgriggs` | +| Nick Boldt | Red Hat | [nickboldt](https://github.com/nickboldt) | `nboldt` | | Vincenzo Scamporlino | Spotify | [vinzscam](https://github.com/vinzscam) | `vinzscam` | ### Events diff --git a/beps/0009-plugin-metadata/README.md b/beps/0009-plugin-metadata/README.md index c019211123..79d7dc2172 100644 --- a/beps/0009-plugin-metadata/README.md +++ b/beps/0009-plugin-metadata/README.md @@ -1,6 +1,6 @@ --- title: Plugin Metadata -status: provisional +status: implementable authors: - '@Rugvip' owners: @@ -155,6 +155,8 @@ The following resources have been used to inform this proposal: The new metadata fields and any generation and validation of fields will initially be rolled out as part of the `repo fix` command in the Backstage CLI. In addition we will also add validation to the `yarn prepack` command in such a way that it does not interfere with backend package bundling, but does apply when packing packages for publishing. These changes will all be rolled out in a single release of the Backstage CLI, meaning that anyone publishing Backstage packages using the Backstage CLI will be required to provide the new metadata. +We will roll out these changes early on but be prepared to change the metadata structure if needed. Initially there will be very few consumers of this information, and it will be up to these consumers to handle the potentially varying versions of this metadata. We will aim to reach a stable state for the metadata as soon as possible, but we believe we need real world usage and feedback to get there. + ## Dependencies None diff --git a/docs/deployment/flightcontrol.md b/docs/deployment/flightcontrol.md index 6078d931fb..5d59371b47 100644 --- a/docs/deployment/flightcontrol.md +++ b/docs/deployment/flightcontrol.md @@ -123,7 +123,7 @@ backend: # all interfaces, the most permissive setting. The right value depends on your specific deployment. listen: ':7007' - # config options: https://node-postgres.com/api/client + # config options: https://node-postgres.com/apis/client database: client: pg pluginDivisionMode: 'schema' diff --git a/docs/integrations/aws-codecommit/locations.md b/docs/integrations/aws-codecommit/locations.md index 05a13e5b21..35187b1b89 100644 --- a/docs/integrations/aws-codecommit/locations.md +++ b/docs/integrations/aws-codecommit/locations.md @@ -20,7 +20,34 @@ To use this integration, add configuration to your `app-config.yaml`: ```yaml integrations: awsCodeCommit: - - accessKeyId: ${AWS_ACCESS_KEY_ID} + - region: eu-west-1 +``` + +This most basic example can only be used if you are running Backstage on an instance that has an IAM identity with the following policies: + +``` +{ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "codecommit:GetFile", + "codecommit:GetFolder" + ], + "Resource": "*", + "Effect": "Allow" + } + ] +} +``` + +If you are running Backstage outside AWS and want to use Access key authentication, you can use the following configuration: + +```yaml +integrations: + awsCodeCommit: + - region: eu-west-1 + accessKeyId: ${AWS_ACCESS_KEY_ID} secretAccessKey: ${AWS_SECRET_ACCESS_KEY} ``` @@ -34,10 +61,27 @@ instruct the AWS CodeCommit reader to assume a role before accessing CodeCommit: ```yaml integrations: awsCodeCommit: - - accessKeyId: ${AWS_ACCESS_KEY_ID} - secretAccessKey: ${AWS_SECRET_ACCESS_KEY} + - region: eu-west-1 roleArn: 'arn:aws:iam::xxxxxxxxxxxx:role/example-role' externalId: 'some-id' # optional ``` -When no entries are added, the AWS CodeCommit reader will add a default entry that uses the [standard credentials provider chain](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html). +Each entry is a structure with the following **required** elements: + +- `region`: The AWS region to connect to, to communicate with the CodeCommit services + +The configuration can also provide a `host` property like the other integrations. If it is not provided, it will be determined from the provided region. +i.e. When you provide `eu-west-1` as the region, Backstage will use the host `eu-west-1.console.aws.amazon.com` to check whether a provided url matches the integration. + +## Register an entity on AWS CodeCommit + +To register an entity that is stored in an AWS CodeCommit repository, you need to fetch the URL from the AWS Console: + +- Navigate to the Code Commit service in the AWS Console ([https://console.aws.amazon.com/codecommit/home](https://console.aws.amazon.com/codecommit/home)) +- _Optional: Make sure you select the correct region if you don't use the default one (us-east-1)_ +- Select the repository where the entity file is stored +- Inside the repository navigate to the backstage entity file (`catalog-info.yaml`) and open the file +- Now you can copy-paste the URL from your browser inside Backstage + +The format would be something like: +`https://{region}.console.aws.amazon.com/codesuite/codecommit/repositories/{reponame}/browse/refs/heads/{branch}/--/catalog-info.yaml` diff --git a/docs/integrations/gerrit/locations.md b/docs/integrations/gerrit/locations.md index 08dad94ecf..3f237fc9ba 100644 --- a/docs/integrations/gerrit/locations.md +++ b/docs/integrations/gerrit/locations.md @@ -19,9 +19,9 @@ To use this integration, add at least one Gerrit configuration to your root `app integrations: gerrit: - host: gerrit.company.com + gitilesBaseUrl: https://gerrit.company.com/gitiles baseUrl: https://gerrit.company.com/gerrit cloneUrl: https://gerrit.company.com/clone - gitilesBaseUrl: https://gerrit.company.com/gitiles username: ${GERRIT_USERNAME} password: ${GERRIT_PASSWORD} ``` @@ -31,16 +31,12 @@ you can list the Gerrit instances you want to fetch data from. Each entry is a structure with up to six elements: - `host`: The host of the Gerrit instance, e.g. `gerrit.company.com`. +- `gitilesBaseUrl`: The base url of the Gitiles instance. - `baseUrl` (optional): Needed if the Gerrit instance is not reachable at the base of the `host` option (e.g. `https://gerrit.company.com`) set the address here. This is the address that you would open in a browser. - `cloneUrl` (optional): The base URL for HTTP clones. Will default to `baseUrl` if not set. The address used to clone a repo is the `cloneUrl` plus the repo name. -- `gitilesBaseUrl` (optional): This is needed for creating a valid user-friendly URL - that can be used for browsing the content of the provider. If not set a default - value will be created in the same way as the `baseUrl` option. There is no - requirement to have Gitiles for the Backstage Gerrit integration but without it - some links in the Backstage UI will be broken. - `username` (optional): The Gerrit username to use in API requests. If neither a username nor password are supplied, anonymous access will be used. - `password` (optional): The password or http token for the Gerrit user. diff --git a/docs/plugins/url-reader.md b/docs/plugins/url-reader.md index c8ff18952c..9fab0482bb 100644 --- a/docs/plugins/url-reader.md +++ b/docs/plugins/url-reader.md @@ -19,7 +19,7 @@ files before generating a documentation site. Since, the requirement for reading files is so essential for Backstage plugins, the -[`@backstage/backend-common`](https://github.com/backstage/backstage/tree/master/packages/backend-common) +[`coreServices.urlReader`](../reference/backend-plugin-api.coreservices.urlreader.md) package provides a dedicated API for reading from such URL based remote locations like GitHub, GitLab, Bitbucket, Google Cloud Storage, etc. This is commonly referred to as "URL Reader". It takes care of making authenticated @@ -49,9 +49,8 @@ function makeCreateEnv(config: Config) { } ``` -This instance contains all -[the default URL Reader providers](https://github.com/backstage/backstage/blob/master/packages/backend-common/src/reading/UrlReaders.ts) -in the backend-common package including GitHub, GitLab, Bitbucket, Azure, Google +This instance contains all the default URL Reader providers +in the backend-defaults package including GitHub, GitLab, Bitbucket, Azure, Google GCS. As the need arises, more URL Readers are being written to support different providers. diff --git a/docs/releases/v1.28.0-next.3-changelog.md b/docs/releases/v1.28.0-next.3-changelog.md new file mode 100644 index 0000000000..ead042fc6c --- /dev/null +++ b/docs/releases/v1.28.0-next.3-changelog.md @@ -0,0 +1,2379 @@ +# Release v1.28.0-next.3 + +Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.28.0-next.3](https://backstage.github.io/upgrade-helper/?to=1.28.0-next.3) + +## @backstage/integration@1.12.0-next.1 + +### Minor Changes + +- be1014d: **BREAKING** Removed deprecated code from when casing was changed from `GitHub` to `Github` nearly two years ago. The following items have been removed: + + - `getGitHubFileFetchUrl` (use `getGithubFileFetchUrl` instead) + - `GitHubIntegrationConfig` (use `GithubIntegrationConfig` instead) + - `GitHubIntegration` (use `GithubIntegration` instead) + - `readGitHubIntegrationConfig` (use `readGithubIntegrationConfig` instead) + - `readGitHubIntegrationConfigs` (use `readGithubIntegrationConfigs` instead) + - `replaceGitHubUrlType` (use `replaceGithubUrlType` instead) + +### Patch Changes + +- 23ee9ab: Fix AWS CodeCommit integration by allowing to change the host +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-atlassian-provider@0.2.0-next.2 + +### Minor Changes + +- 8efc6cf: **BREAKING**: The `scope` and `scopes` config options have been removed and replaced by the standard `additionalScopes` config. In addition, the `offline_access`, `read:jira-work`, and `read:jira-user` scopes have been set to required and will always be present. + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-oauth2-provider@0.2.0-next.2 + +### Minor Changes + +- 8efc6cf: **BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-oidc-provider@0.2.0-next.3 + +### Minor Changes + +- 8efc6cf: **BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, `openid`, `profile`, and `email` scopes have been set to required and will always be present. + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-auth-backend@0.22.6-next.3 + - @backstage/backend-common@0.23.0-next.3 + +## @backstage/plugin-auth-backend-module-onelogin-provider@0.1.0-next.0 + +### Minor Changes + +- 566d7cb: Separate out the OneLogin provider into its own module + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-vmware-cloud-provider@0.2.0-next.2 + +### Minor Changes + +- 8efc6cf: **BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, `openid`, and `offline_access` scopes have been set to required and will always be present. + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-scaffolder@1.21.0-next.3 + +### Minor Changes + +- d57ebbc: Changed the way to display entities in EntityPicker to use entityPresentationApi instead of humanizeEntityRef + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-scaffolder-react@1.8.7-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/app-defaults@1.5.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + +## @backstage/backend-app-api@0.7.6-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-node@0.2.6-next.2 + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/backend-common@0.23.0-next.3 + +### Patch Changes + +- b2ee7f3: Moved over all URL reader functionality from `@backstage/backend-common` to `@backstage/backend-defaults/urlReader`. Please update your imports. +- 23ee9ab: Fix AWS CodeCommit integration by allowing to change the host +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/backend-dev-utils@0.1.4 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + +## @backstage/backend-defaults@0.3.0-next.3 + +### Patch Changes + +- 1897169: Exposed `DefaultSchedulerService` +- 8aab451: Internal minor refactors of the database connectors +- b2ee7f3: Moved over all URL reader functionality from `@backstage/backend-common` to `@backstage/backend-defaults/urlReader`. Please update your imports. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/backend-dev-utils@0.1.4 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + +## @backstage/backend-dynamic-feature-service@0.2.11-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-node@0.2.6-next.2 + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/plugin-events-backend@0.3.6-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/plugin-app-node@0.1.19-next.2 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/backend-openapi-utils@0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/errors@1.2.4 + +## @backstage/backend-plugin-api@0.6.19-next.3 + +### Patch Changes + +- 9bdc3e8: In tests, return `null` rather than throwing an error when trying to get the `ExtensionPoint.T` property, so that tests asserting the property are not easily broken. + +- b2ee7f3: Deprecated all of the `UrlReader` related type names and replaced them with prefixed versions. Please update your imports. + + - `ReadTreeOptions` was renamed to `UrlReaderReadTreeOptions` + - `ReadTreeResponse` was renamed to `UrlReaderReadTreeResponse` + - `ReadTreeResponseDirOptions` was renamed to `UrlReaderReadTreeResponseDirOptions` + - `ReadTreeResponseFile` was renamed to `UrlReaderReadTreeResponseFile` + - `ReadUrlResponse` was renamed to `UrlReaderReadUrlResponse` + - `ReadUrlOptions` was renamed to `UrlReaderReadUrlOptions` + - `SearchOptions` was renamed to `UrlReaderSearchOptions` + - `SearchResponse` was renamed to `UrlReaderSearchResponse` + - `SearchResponseFile` was renamed to `UrlReaderSearchResponseFile` + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/backend-tasks@0.5.24-next.3 + +### Patch Changes + +- 1897169: More detailed deprecation messages +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/backend-test-utils@0.4.0-next.3 + +### Patch Changes + +- 006b3e8: The type `MockDirectoryOptions` was renamed to `CreateMockDirectoryOptions` so that it's clear these options are exclusive to the mock directory factory. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/cli@0.26.7-next.3 + +### Patch Changes + +- c328131: Added a new `--publish` flag to the `repo fix` command. This command will validate and if possible generate the metadata required for publishing packages with the Backstage CLI. In addition, a check has been added that the `backstage.pluginId` and `backstage.pluginPackage(s)` fields are present when packing a package for publishing. +- Updated dependencies + - @backstage/cli-node@0.2.6-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/eslint-plugin@0.1.8 + - @backstage/release-manifests@0.0.11 + - @backstage/types@1.1.1 + +## @backstage/cli-common@0.1.14-next.0 + +### Patch Changes + +- 142abb0: The monorepo root check in `findPaths` will now accept a shorthand `workspaces` config in `package.json`, no longer requiring `workspaces.packages`. + +## @backstage/cli-node@0.2.6-next.2 + +### Patch Changes + +- c328131: Added new plugin metadata fields to `BackstagePackageJson` type. +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/codemods@0.1.49-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + +## @backstage/config-loader@1.8.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/core-compat-api@0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/version-bridge@1.0.8 + +## @backstage/core-components@0.14.8-next.2 + +### Patch Changes + +- 59cee81: Use `inherit` variant on OverflowTooltip underlying Typography component. +- 83c4251: Adds icons to status component +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + - @backstage/version-bridge@1.0.8 + +## @backstage/create-app@0.5.16-next.3 + +### Patch Changes + +- 34daaea: Fixed a broken link to the node-postgres documentation +- 1a212f9: Remove Tech Radar menu item from sidebar of scaffolded app to align with removal of tech-radar plugin from backend +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + +## @backstage/dev-utils@1.0.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/app-defaults@1.5.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + +## @backstage/frontend-app-api@0.7.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/frontend-plugin-api@0.6.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/frontend-test-utils@0.1.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-app-api@0.7.1-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/test-utils@1.5.6-next.2 + - @backstage/types@1.1.1 + +## @backstage/integration-react@1.1.28-next.1 + +### Patch Changes + +- 23ee9ab: Fix AWS CodeCommit integration by allowing to change the host +- Updated dependencies + - @backstage/integration@1.12.0-next.1 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/repo-tools@0.9.1-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-node@0.2.6-next.2 + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + +## @techdocs/cli@1.8.12-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-node@1.12.5-next.3 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + +## @backstage/test-utils@1.5.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-api-docs@0.11.6-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-api-docs-module-protoc-gen-doc@0.1.7-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. + +## @backstage/plugin-app-backend@0.3.68-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-app-node@0.1.19-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-app-node@0.1.19-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/config-loader@1.8.1-next.0 + +## @backstage/plugin-app-visualizer@0.1.7-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-auth-backend@0.22.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- 3e1bb15: Updated to use the new `@backstage/plugin-auth-backend-module-onelogin-provider` implementation +- Updated dependencies + - @backstage/plugin-auth-backend-module-onelogin-provider@0.1.0-next.0 + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.2.0-next.2 + - @backstage/plugin-auth-backend-module-bitbucket-provider@0.1.2-next.2 + - @backstage/plugin-auth-backend-module-github-provider@0.1.16-next.2 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.16-next.2 + - @backstage/plugin-auth-backend-module-google-provider@0.1.16-next.2 + - @backstage/plugin-auth-backend-module-microsoft-provider@0.1.14-next.2 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.2.0-next.2 + - @backstage/plugin-auth-backend-module-oidc-provider@0.2.0-next.3 + - @backstage/plugin-auth-backend-module-okta-provider@0.0.12-next.2 + - @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.2-next.3 + - @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.1.2-next.2 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.12-next.2 + - @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.11-next.3 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.14-next.2 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.11-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-auth-backend@0.22.6-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.1.2-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-bitbucket-provider@0.1.2-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. In addition, the `account` scope has been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.14-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-auth-backend-module-github-provider@0.1.16-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. In addition, the `read:user` scope has been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-gitlab-provider@0.1.16-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. In addition, the `read_user` scope has been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-google-provider@0.1.16-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. In addition, the `openid`, `userinfo.email`, and `userinfo.profile` scopes have been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-guest-provider@0.1.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-microsoft-provider@0.1.14-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.12-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-okta-provider@0.0.12-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration, which means it can now also be specified as an array. In addition, the `openid`, `email`, `profile`, and `offline_access` scopes have been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + +## @backstage/plugin-auth-backend-module-pinniped-provider@0.1.13-next.2 + +### Patch Changes + +- 8efc6cf: **BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, the `openid`, `pinniped:request-audience`, `username`, and `offline_access` scopes have been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/config@1.2.0 + +## @backstage/plugin-auth-node@0.4.14-next.3 + +### Patch Changes + +- 798ec37: Updated scope management for OAuth providers, where the `createOAuthAuthenticator` now accepts a new collection of `scopes` options: + + - `scopes.persist` - Whether scopes should be persisted, replaces the `shouldPersistScopes` option. + - `scopes.required` - A list of required scopes that will always be requested. + - `scopes.transform` - A function that can be used to transform the scopes before they are requested. + + The `createOAuthProviderFactory` has also received a new `additionalScopes` option, and will also read `additionalScopes` from the auth provider configuration. Both of these can be used to add additional scopes that should always be requested. + + A significant change under the hood that this new scope management brings is that providers that persist scopes will now always merge the already granted scopes with the requested ones. The previous behavior was that the full authorization flow would not include existing scopes, while the refresh flow would only include the existing scopes. + +- d44a20a: Added additional plugin metadata to `package.json`. + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-auth-react@0.1.3-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-bitbucket-cloud-common@0.2.20-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/integration@1.12.0-next.1 + +## @backstage/plugin-catalog@1.21.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- e04e57d: Fix bug with missing Actions column after adding "pagination" prop to catalog table +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend@1.23.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-search-backend-module-catalog@0.1.25-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-openapi-utils@0.1.12-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-aws@0.3.14-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + +## @backstage/plugin-catalog-backend-module-azure@0.1.39-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.2-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-openapi-utils@0.1.12-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.2.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.20-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.33-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog-backend-module-gcp@0.1.20-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.36-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog-backend-module-github@0.6.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-github-org@0.1.14-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-backend-module-github@0.6.2-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-gitlab@0.3.18-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-gitlab-org@0.0.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-backend-module-gitlab@0.3.18-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.24-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog-backend-module-ldap@0.6.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.27-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.37-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.25-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.17-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.4.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-catalog-unprocessed-entities-common@0.0.2-next.0 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog-common@1.0.24-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-catalog-graph@0.4.6-next.2 + +### Patch Changes + +- 8d474d3: Add function to `EntityRelationsGraph` filter that excludes entities from graph +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-import@0.12.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog-node@1.12.1-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-react@1.12.1-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- fa8560e: Prevents Autocomplete dropdown from overlapping sidebar on hovering it +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/plugin-catalog-unprocessed-entities@0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog-unprocessed-entities-common@0.0.2-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + +## @backstage/plugin-config-schema@0.1.56-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-devtools@0.1.15-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-devtools-common@0.1.10-next.0 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-devtools-backend@0.3.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-devtools-common@0.1.10-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-devtools-common@0.1.10-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-events-backend@0.3.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + +## @backstage/plugin-events-backend-module-aws-sqs@0.3.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-events-backend-module-azure@0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + +## @backstage/plugin-events-backend-module-gerrit@0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + +## @backstage/plugin-events-backend-module-github@0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/config@1.2.0 + +## @backstage/plugin-events-backend-module-gitlab@0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/config@1.2.0 + +## @backstage/plugin-events-backend-test-utils@0.1.29-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-events-node@0.3.5-next.2 + +## @backstage/plugin-events-node@0.3.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + +## @backstage/plugin-home@0.7.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-home-react@0.1.14-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + +## @backstage/plugin-home-react@0.1.14-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-kubernetes@0.11.11-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-kubernetes-react@0.4.0-next.3 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-kubernetes-backend@0.18.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-kubernetes-node@0.1.13-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + +## @backstage/plugin-kubernetes-cluster@0.0.12-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-kubernetes-react@0.4.0-next.3 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-kubernetes-common@0.8.0-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/catalog-model@1.5.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-kubernetes-node@0.1.13-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/catalog-model@1.5.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-kubernetes-react@0.4.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-notifications@0.2.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-signals-react@0.0.4-next.1 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-notifications-backend@0.3.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-notifications-node@0.2.0-next.3 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-notifications-backend-module-email@0.1.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-notifications-node@0.2.0-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + +## @backstage/plugin-notifications-common@0.0.4-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. + +## @backstage/plugin-notifications-node@0.2.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + +## @backstage/plugin-org@0.6.26-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-org-react@0.1.25-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-permission-backend@0.5.43-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-permission-backend-module-allow-all-policy@0.1.16-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + +## @backstage/plugin-permission-common@0.7.14-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-permission-node@0.7.30-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-permission-react@0.4.23-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-proxy-backend@0.5.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend@1.22.8-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- f4c8486: Increase max wait time in debug:wait action to 10 minutes +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.17-next.3 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.9-next.2 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.9-next.2 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.9-next.2 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.11-next.2 + - @backstage/plugin-scaffolder-backend-module-github@0.3.0-next.3 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.4.1-next.3 + - @backstage/plugin-scaffolder-backend-module-azure@0.1.11-next.2 + - @backstage/plugin-scaffolder-backend-module-gitea@0.1.9-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend-module-azure@0.1.11-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.9-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.9-next.2 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.9-next.2 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.9-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.9-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.20-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.43-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend-module-gerrit@0.1.11-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-gitea@0.1.9-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-github@0.3.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.4.1-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-notifications@0.0.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-notifications-node@0.2.0-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.36-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.27-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.3.2-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-scaffolder-node-test-utils@0.1.5-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-common@1.5.3-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/catalog-model@1.5.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-node@0.4.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-node-test-utils@0.1.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-test-utils@0.4.0-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-react@1.8.7-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- fa8560e: Prevents Autocomplete dropdown from overlapping sidebar on hovering it +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/plugin-search@1.4.12-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/plugin-search-backend@1.5.10-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/backend-defaults@0.3.0-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-openapi-utils@0.1.12-next.2 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-search-backend-module-catalog@0.1.25-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-search-backend-module-elasticsearch@1.4.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/integration-aws-node@0.1.12 + +## @backstage/plugin-search-backend-module-explore@0.1.25-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + +## @backstage/plugin-search-backend-module-pg@0.5.28-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config@1.2.0 + +## @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.12-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + +## @backstage/plugin-search-backend-module-techdocs@0.1.24-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-techdocs-node@1.12.5-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-search-backend-node@1.2.24-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-search-common@1.2.12-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-search-react@1.7.12-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/plugin-signals@0.0.7-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-signals-react@0.0.4-next.1 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-signals-backend@0.1.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-signals-node@0.1.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-signals-react@0.0.4-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-techdocs@1.10.6-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/plugin-auth-react@0.1.3-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.33-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/plugin-techdocs@1.10.6-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/test-utils@1.5.6-next.2 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-techdocs-backend@1.10.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-search-backend-module-techdocs@0.1.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-techdocs-node@1.12.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-techdocs-module-addons-contrib@1.1.11-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @backstage/plugin-techdocs-node@1.12.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + +## @backstage/plugin-techdocs-react@1.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/version-bridge@1.0.8 + +## @backstage/plugin-user-settings@0.8.7-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- e6ec179: Use signals to update user settings across sessions +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-user-settings-common@0.0.1-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-signals-react@0.0.4-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-user-settings-backend@0.2.18-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- e6ec179: Use signals to update user settings across sessions +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-user-settings-common@0.0.1-next.0 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-user-settings-common@0.0.1-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- e6ec179: Use signals to update user settings across sessions + +## example-app@0.2.98-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-graph@0.4.6-next.2 + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.11-next.2 + - @backstage/plugin-catalog-unprocessed-entities@0.2.5-next.2 + - @backstage/plugin-kubernetes-cluster@0.0.12-next.3 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-scaffolder-react@1.8.7-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-import@0.12.0-next.3 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-notifications@0.2.2-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-user-settings@0.8.7-next.2 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/plugin-auth-react@0.1.3-next.2 + - @backstage/plugin-kubernetes@0.11.11-next.3 + - @backstage/plugin-scaffolder@1.21.0-next.3 + - @backstage/plugin-api-docs@0.11.6-next.2 + - @backstage/plugin-devtools@0.1.15-next.2 + - @backstage/plugin-techdocs@1.10.6-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/plugin-signals@0.0.7-next.2 + - @backstage/plugin-search@1.4.12-next.3 + - @backstage/plugin-home@0.7.5-next.2 + - @backstage/plugin-org@0.6.26-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/cli@0.26.7-next.3 + - @backstage/app-defaults@1.5.6-next.2 + - @backstage/frontend-app-api@0.7.1-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + +## example-app-next@0.0.12-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-graph@0.4.6-next.2 + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.11-next.2 + - @backstage/plugin-catalog-unprocessed-entities@0.2.5-next.2 + - @backstage/plugin-kubernetes-cluster@0.0.12-next.3 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-scaffolder-react@1.8.7-next.3 + - @backstage/plugin-app-visualizer@0.1.7-next.2 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-import@0.12.0-next.3 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-notifications@0.2.2-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-user-settings@0.8.7-next.2 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/plugin-auth-react@0.1.3-next.2 + - @backstage/plugin-kubernetes@0.11.11-next.3 + - @backstage/plugin-scaffolder@1.21.0-next.3 + - @backstage/plugin-api-docs@0.11.6-next.2 + - @backstage/plugin-techdocs@1.10.6-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/plugin-signals@0.0.7-next.2 + - @backstage/plugin-search@1.4.12-next.3 + - @backstage/plugin-home@0.7.5-next.2 + - @backstage/plugin-org@0.6.26-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/cli@0.26.7-next.3 + - @backstage/app-defaults@1.5.6-next.2 + - @backstage/frontend-app-api@0.7.1-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + +## app-next-example-plugin@0.0.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + +## example-backend@0.0.27-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/backend-defaults@0.3.0-next.3 + - @backstage/plugin-auth-backend-module-github-provider@0.1.16-next.2 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.17-next.3 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.16-next.2 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.2-next.2 + - @backstage/plugin-auth-backend-module-guest-provider@0.1.5-next.3 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.6-next.3 + - @backstage/plugin-scaffolder-backend-module-github@0.3.0-next.3 + - @backstage/plugin-catalog-backend-module-openapi@0.1.37-next.3 + - @backstage/plugin-search-backend-module-techdocs@0.1.24-next.3 + - @backstage/plugin-search-backend-module-catalog@0.1.25-next.3 + - @backstage/plugin-search-backend-module-explore@0.1.25-next.3 + - @backstage/plugin-notifications-backend@0.3.0-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-kubernetes-backend@0.18.0-next.3 + - @backstage/plugin-permission-backend@0.5.43-next.3 + - @backstage/plugin-scaffolder-backend@1.22.8-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-devtools-backend@0.3.5-next.3 + - @backstage/plugin-techdocs-backend@1.10.6-next.3 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-signals-backend@0.1.5-next.3 + - @backstage/plugin-search-backend@1.5.10-next.3 + - @backstage/plugin-proxy-backend@0.5.0-next.3 + - @backstage/plugin-auth-backend@0.22.6-next.3 + - @backstage/plugin-app-backend@0.3.68-next.3 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/catalog-model@1.5.0 + +## example-backend-legacy@0.2.99-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.20-next.3 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.17-next.3 + - @backstage/plugin-search-backend-module-elasticsearch@1.4.2-next.3 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.6-next.3 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.4.1-next.3 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.36-next.3 + - @backstage/plugin-search-backend-module-techdocs@0.1.24-next.3 + - @backstage/plugin-search-backend-module-catalog@0.1.25-next.3 + - @backstage/plugin-search-backend-module-explore@0.1.25-next.3 + - @backstage/plugin-search-backend-module-pg@0.5.28-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-kubernetes-backend@0.18.0-next.3 + - @backstage/plugin-permission-backend@0.5.43-next.3 + - @backstage/plugin-scaffolder-backend@1.22.8-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-devtools-backend@0.3.5-next.3 + - @backstage/plugin-techdocs-backend@1.10.6-next.3 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-signals-backend@0.1.5-next.3 + - @backstage/plugin-events-backend@0.3.6-next.3 + - @backstage/plugin-search-backend@1.5.10-next.3 + - @backstage/plugin-proxy-backend@0.5.0-next.3 + - @backstage/plugin-auth-backend@0.22.6-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/plugin-app-backend@0.3.68-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - example-app@0.2.98-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + +## e2e-test@0.2.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + - @backstage/create-app@0.5.16-next.3 + - @backstage/errors@1.2.4 + +## techdocs-cli-embedded-app@0.2.97-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-techdocs@1.10.6-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/cli@0.26.7-next.3 + - @backstage/app-defaults@1.5.6-next.2 + - @backstage/test-utils@1.5.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + +## yarn-plugin-backstage@0.0.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + - @backstage/release-manifests@0.0.11 + +## @internal/plugin-todo-list@1.0.28-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + +## @internal/plugin-todo-list-backend@1.0.28-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/errors@1.2.4 + +## @internal/plugin-todo-list-common@1.0.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 diff --git a/microsite/yarn.lock b/microsite/yarn.lock index ebaeb33c2f..da65f34220 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -3996,11 +3996,11 @@ __metadata: linkType: hard "braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" + version: 3.0.3 + resolution: "braces@npm:3.0.3" dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + fill-range: ^7.1.1 + checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 languageName: node linkType: hard @@ -5111,11 +5111,11 @@ __metadata: linkType: hard "docusaurus-pushfeedback@npm:^1.0.0": - version: 1.0.0 - resolution: "docusaurus-pushfeedback@npm:1.0.0" + version: 1.0.1 + resolution: "docusaurus-pushfeedback@npm:1.0.1" peerDependencies: "@docusaurus/core": 3.x - checksum: 5f119fac4b18198ecab7ca3892b8d19ea21c1f4147b7500de0f2a341651630ff090e38ac4984e33d87729f1b00d621ae8945efe2a2ea37b9a74b76c7f468f21e + checksum: 45319080911438f828d9b550481511065de225b03511347324f9ecba133ce2693fa19fd394cd0a0e43b1723e15c2c988a11838a5cab1e3702295123be4b875a8 languageName: node linkType: hard @@ -5710,12 +5710,12 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" dependencies: to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 languageName: node linkType: hard diff --git a/package.json b/package.json index 2951eb8540..03b152d1e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "1.28.0-next.2", + "version": "1.28.0-next.3", "private": true, "repository": { "type": "git", @@ -17,7 +17,7 @@ "build:all": "backstage-cli repo build --all", "build:api-docs": "LANG=en_EN yarn build:api-reports --docs --exclude 'plugins/@(adr|adr-backend|adr-common|airbrake|airbrake-backend|allure|analytics-module-ga|analytics-module-ga4|analytics-module-newrelic-browser|apache-airflow|api-docs|api-docs-module-protoc-gen-doc|apollo-explorer|app-visualizer|azure-devops|azure-devops-backend|azure-devops-common|azure-sites|azure-sites-backend|azure-sites-common|badges|badges-backend|bazaar|bazaar-backend|bitbucket-cloud-common|bitrise|catalog-graph|catalog-graphql|catalog-import|catalog-unprocessed-entities|cicd-statistics|cicd-statistics-module-gitlab|circleci|cloudbuild|code-climate|code-coverage|code-coverage-backend|codescene|config-schema|cost-insights|cost-insights-common|dynatrace|entity-feedback|entity-feedback-backend|entity-feedback-common|entity-validation|example-todo-list|example-todo-list-backend|example-todo-list-common|firehydrant|fossa|gcalendar|gcp-projects|git-release-manager|github-actions|github-deployments|github-issues|github-pull-requests-board|gitops-profiles|gocd|graphiql|graphql-backend|graphql-voyager|ilert|jenkins|jenkins-backend|jenkins-common|kafka|kafka-backend|lighthouse|lighthouse-backend|lighthouse-common|linguist|linguist-backend|linguist-common|microsoft-calendar|newrelic|newrelic-dashboard|nomad|nomad-backend|octopus-deploy|opencost|pagerduty|periskop|periskop-backend|playlist|playlist-backend|playlist-common|proxy-backend|puppetdb|rollbar|rollbar-backend|sentry|shortcuts|splunk-on-call|stack-overflow|stack-overflow-backend|stackstorm|tech-radar|tech-radar-2|todo|todo-backend|xcmetrics)'", "build:api-reports": "yarn build:api-reports:only --tsc", - "build:api-reports:only": "NODE_OPTIONS=--max-old-space-size=8192 backstage-repo-tools api-reports --allow-warnings 'packages/core-components,plugins/+(catalog|catalog-import|git-release-manager|jenkins|kubernetes)' -o ae-wrong-input-file-type --validate-release-tags", + "build:api-reports:only": "NODE_OPTIONS=--max-old-space-size=8192 backstage-repo-tools api-reports --allow-warnings 'packages/backend-common,packages/core-components,plugins/+(catalog|catalog-import|git-release-manager|jenkins|kubernetes)' -o ae-wrong-input-file-type --validate-release-tags", "build:backend": "yarn workspace example-backend build", "build:knip-reports": "backstage-repo-tools knip-reports", "build:plugins-report": "node ./scripts/build-plugins-report", @@ -26,7 +26,7 @@ "dev": "yarn workspaces foreach -A --include example-backend --include example-app --parallel -v -i run start", "dev:next": "yarn workspaces foreach -A --include example-backend --include example-app-next --parallel -v -i run start", "docker-build": "yarn tsc && yarn workspace example-backend build && yarn workspace example-backend build-image", - "fix": "backstage-cli repo fix", + "fix": "backstage-cli repo fix --publish", "postinstall": "husky || true", "lint": "backstage-cli repo lint --since origin/master", "lint:all": "backstage-cli repo lint", diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 74ed9e5945..dc03f00faf 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/app-defaults +## 1.5.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + ## 1.5.6-next.1 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index de173ffecc..df20b60bf9 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/app-defaults", - "version": "1.5.6-next.1", + "version": "1.5.6-next.2", "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 70b5b29965..c915ed8ff9 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.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + ## 0.0.12-next.1 ### Patch Changes diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json index bca9420d69..c17e398482 100644 --- a/packages/app-next-example-plugin/package.json +++ b/packages/app-next-example-plugin/package.json @@ -1,9 +1,13 @@ { "name": "app-next-example-plugin", - "version": "0.0.12-next.1", + "version": "0.0.12-next.2", "description": "Backstage internal example plugin", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "example", + "pluginPackages": [ + "app-next-example-plugin" + ] }, "publishConfig": { "access": "public", diff --git a/packages/app-next/CHANGELOG.md b/packages/app-next/CHANGELOG.md index 35842adb21..1f0ae7b5e4 100644 --- a/packages/app-next/CHANGELOG.md +++ b/packages/app-next/CHANGELOG.md @@ -1,5 +1,48 @@ # example-app-next +## 0.0.12-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-graph@0.4.6-next.2 + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.11-next.2 + - @backstage/plugin-catalog-unprocessed-entities@0.2.5-next.2 + - @backstage/plugin-kubernetes-cluster@0.0.12-next.3 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-scaffolder-react@1.8.7-next.3 + - @backstage/plugin-app-visualizer@0.1.7-next.2 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-import@0.12.0-next.3 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-notifications@0.2.2-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-user-settings@0.8.7-next.2 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/plugin-auth-react@0.1.3-next.2 + - @backstage/plugin-kubernetes@0.11.11-next.3 + - @backstage/plugin-scaffolder@1.21.0-next.3 + - @backstage/plugin-api-docs@0.11.6-next.2 + - @backstage/plugin-techdocs@1.10.6-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/plugin-signals@0.0.7-next.2 + - @backstage/plugin-search@1.4.12-next.3 + - @backstage/plugin-home@0.7.5-next.2 + - @backstage/plugin-org@0.6.26-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/cli@0.26.7-next.3 + - @backstage/app-defaults@1.5.6-next.2 + - @backstage/frontend-app-api@0.7.1-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + ## 0.0.12-next.2 ### Patch Changes diff --git a/packages/app-next/package.json b/packages/app-next/package.json index c3496f5d3b..9277888dc9 100644 --- a/packages/app-next/package.json +++ b/packages/app-next/package.json @@ -1,6 +1,6 @@ { "name": "example-app-next", - "version": "0.0.12-next.2", + "version": "0.0.12-next.3", "private": true, "repository": { "type": "git", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index fc9f12b26f..50e0487a21 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,46 @@ # example-app +## 0.2.98-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-graph@0.4.6-next.2 + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.11-next.2 + - @backstage/plugin-catalog-unprocessed-entities@0.2.5-next.2 + - @backstage/plugin-kubernetes-cluster@0.0.12-next.3 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-scaffolder-react@1.8.7-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-import@0.12.0-next.3 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-notifications@0.2.2-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-user-settings@0.8.7-next.2 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/plugin-auth-react@0.1.3-next.2 + - @backstage/plugin-kubernetes@0.11.11-next.3 + - @backstage/plugin-scaffolder@1.21.0-next.3 + - @backstage/plugin-api-docs@0.11.6-next.2 + - @backstage/plugin-devtools@0.1.15-next.2 + - @backstage/plugin-techdocs@1.10.6-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/plugin-signals@0.0.7-next.2 + - @backstage/plugin-search@1.4.12-next.3 + - @backstage/plugin-home@0.7.5-next.2 + - @backstage/plugin-org@0.6.26-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/cli@0.26.7-next.3 + - @backstage/app-defaults@1.5.6-next.2 + - @backstage/frontend-app-api@0.7.1-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + ## 0.2.98-next.2 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index b08b838f7b..70512e9362 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.98-next.2", + "version": "0.2.98-next.3", "backstage": { "role": "frontend" }, diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 7d3bb8dabf..1d23c727bc 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/backend-app-api +## 0.7.6-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-node@0.2.6-next.2 + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.7.6-next.2 ### Patch Changes diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 11d9dd90d4..3d7357cb87 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -42,7 +42,7 @@ import { ServiceFactory } from '@backstage/backend-plugin-api'; import { ServiceFactoryOrFunction } from '@backstage/backend-plugin-api'; import { TokenManagerService } from '@backstage/backend-plugin-api'; import { transport } from 'winston'; -import { UrlReader } from '@backstage/backend-common'; +import { UrlReaderService } from '@backstage/backend-plugin-api'; import { UserInfoService } from '@backstage/backend-plugin-api'; // @public (undocumented) @@ -339,7 +339,10 @@ export const tokenManagerServiceFactory: () => ServiceFactory< >; // @public @deprecated (undocumented) -export const urlReaderServiceFactory: () => ServiceFactory; +export const urlReaderServiceFactory: () => ServiceFactory< + UrlReaderService, + 'plugin' +>; // @public (undocumented) export const userInfoServiceFactory: () => ServiceFactory< diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index efeff8a96d..020cdea841 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-app-api", - "version": "0.7.6-next.2", + "version": "0.7.6-next.3", "description": "Core API used by Backstage backend apps", "backstage": { "role": "node-library" diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index ecf56c5f28..35cfab0d74 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/backend-common +## 0.23.0-next.3 + +### Patch Changes + +- b2ee7f3: Moved over all URL reader functionality from `@backstage/backend-common` to `@backstage/backend-defaults/urlReader`. Please update your imports. +- 23ee9ab: Fix AWS CodeCommit integration by allowing to change the host +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/backend-dev-utils@0.1.4 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + ## 0.23.0-next.2 ### Minor Changes diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 2947741fe3..977809071b 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -49,26 +49,32 @@ import { PluginMetadataService } from '@backstage/backend-plugin-api'; import { PushResult } from 'isomorphic-git'; import { Readable } from 'stream'; import { ReadCommitResult } from 'isomorphic-git'; -import { ReadTreeOptions } from '@backstage/backend-plugin-api'; -import { ReadTreeResponse } from '@backstage/backend-plugin-api'; -import { ReadTreeResponseDirOptions } from '@backstage/backend-plugin-api'; -import { ReadTreeResponseFile } from '@backstage/backend-plugin-api'; -import { ReadUrlOptions } from '@backstage/backend-plugin-api'; -import { ReadUrlResponse } from '@backstage/backend-plugin-api'; +import type { ReadTreeOptions as ReadTreeOptions_2 } from '@backstage/backend-plugin-api'; +import type { ReadTreeResponse as ReadTreeResponse_2 } from '@backstage/backend-plugin-api'; +import type { ReadTreeResponseDirOptions as ReadTreeResponseDirOptions_2 } from '@backstage/backend-plugin-api'; +import type { ReadTreeResponseFile as ReadTreeResponseFile_2 } from '@backstage/backend-plugin-api'; +import type { ReadUrlOptions as ReadUrlOptions_2 } from '@backstage/backend-plugin-api'; +import type { ReadUrlResponse as ReadUrlResponse_2 } from '@backstage/backend-plugin-api'; import { RequestHandler } from 'express'; import { resolvePackagePath as resolvePackagePath_2 } from '@backstage/backend-plugin-api'; import { resolveSafeChildPath as resolveSafeChildPath_2 } from '@backstage/backend-plugin-api'; import { RootConfigService } from '@backstage/backend-plugin-api'; import { Router } from 'express'; import { SchedulerService } from '@backstage/backend-plugin-api'; -import { SearchOptions } from '@backstage/backend-plugin-api'; -import { SearchResponse } from '@backstage/backend-plugin-api'; -import { SearchResponseFile } from '@backstage/backend-plugin-api'; +import type { SearchOptions as SearchOptions_2 } from '@backstage/backend-plugin-api'; +import type { SearchResponse as SearchResponse_2 } from '@backstage/backend-plugin-api'; +import type { SearchResponseFile as SearchResponseFile_2 } from '@backstage/backend-plugin-api'; import { Server } from 'http'; import { ServiceRef } from '@backstage/backend-plugin-api'; import { TokenManagerService as TokenManager } from '@backstage/backend-plugin-api'; import { TransportStreamOptions } from 'winston-transport'; -import { UrlReaderService as UrlReader } from '@backstage/backend-plugin-api'; +import { UrlReaderReadTreeOptions } from '@backstage/backend-plugin-api'; +import { UrlReaderReadTreeResponse } from '@backstage/backend-plugin-api'; +import { UrlReaderReadUrlOptions } from '@backstage/backend-plugin-api'; +import { UrlReaderReadUrlResponse } from '@backstage/backend-plugin-api'; +import { UrlReaderSearchOptions } from '@backstage/backend-plugin-api'; +import { UrlReaderSearchResponse } from '@backstage/backend-plugin-api'; +import { UrlReaderService } from '@backstage/backend-plugin-api'; import { UserInfoService } from '@backstage/backend-plugin-api'; import { V1PodTemplateSpec } from '@kubernetes/client-node'; import * as winston from 'winston'; @@ -80,118 +86,30 @@ export type AuthCallbackOptions = { logger?: LoggerService; }; -// @public -export class AwsS3UrlReader implements UrlReader { - constructor( - credsManager: AwsCredentialsManager, - integration: AwsS3Integration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "AwsS3UrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const AwsS3UrlReader: typeof AwsS3UrlReader_2; -// @public -export class AzureUrlReader implements UrlReader { - constructor( - integration: AzureIntegration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - credentialsProvider: AzureDevOpsCredentialsProvider; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(url: string, options?: SearchOptions): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "AzureUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const AzureUrlReader: typeof AzureUrlReader_2; -// @public -export class BitbucketCloudUrlReader implements UrlReader { - constructor( - integration: BitbucketCloudIntegration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(url: string, options?: SearchOptions): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "BitbucketCloudUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const BitbucketCloudUrlReader: typeof BitbucketCloudUrlReader_2; -// @public -export class BitbucketServerUrlReader implements UrlReader { - constructor( - integration: BitbucketServerIntegration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(url: string, options?: SearchOptions): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "BitbucketServerUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const BitbucketServerUrlReader: typeof BitbucketServerUrlReader_2; -// @public @deprecated -export class BitbucketUrlReader implements UrlReader { - constructor( - integration: BitbucketIntegration, - logger: LoggerService, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(url: string, options?: SearchOptions): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "BitbucketUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const BitbucketUrlReader: typeof BitbucketUrlReader_2; // @public @deprecated (undocumented) export type CacheClient = CacheService; @@ -330,50 +248,20 @@ export type ErrorHandlerOptions = { logClientErrors?: boolean; }; -// @public -export class FetchUrlReader implements UrlReader { - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "FetchUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const FetchUrlReader: typeof FetchUrlReader_2; -// @public -export type FromReadableArrayOptions = Array<{ - data: Readable; - path: string; - lastModifiedAt?: Date; -}>; +// Warning: (ae-forgotten-export) The symbol "FromReadableArrayOptions_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export type FromReadableArrayOptions = FromReadableArrayOptions_2; -// @public -export class GerritUrlReader implements UrlReader { - constructor( - integration: GerritIntegration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - }, - workDir: string, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "GerritUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const GerritUrlReader: typeof GerritUrlReader_2; // @public @deprecated export function getRootLogger(): winston.Logger; @@ -457,94 +345,25 @@ export class Git { resolveRef(options: { dir: string; ref: string }): Promise; } -// @public -export class GiteaUrlReader implements UrlReader { - constructor( - integration: GiteaIntegration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "GiteaUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const GiteaUrlReader: typeof GiteaUrlReader_2; -// @public -export class GithubUrlReader implements UrlReader { - constructor( - integration: GithubIntegration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - credentialsProvider: GithubCredentialsProvider; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(url: string, options?: SearchOptions): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "GithubUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const GithubUrlReader: typeof GithubUrlReader_2; -// @public -export class GitlabUrlReader implements UrlReader { - constructor( - integration: GitLabIntegration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(url: string, options?: SearchOptions): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "GitlabUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const GitlabUrlReader: typeof GitlabUrlReader_2; -// @public -export class HarnessUrlReader implements UrlReader { - constructor( - integration: HarnessIntegration, - deps: { - treeResponseFactory: ReadTreeResponseFactory; - }, - ); - // (undocumented) - static factory: ReaderFactory; - // (undocumented) - read(url: string): Promise; - // (undocumented) - readTree(url: string, options?: ReadTreeOptions): Promise; - // (undocumented) - readUrl(url: string, options?: ReadUrlOptions): Promise; - // (undocumented) - search(): Promise; - // (undocumented) - toString(): string; -} +// Warning: (ae-forgotten-export) The symbol "HarnessUrlReader_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const HarnessUrlReader: typeof HarnessUrlReader_2; // @public @deprecated export const HostDiscovery: typeof HostDiscovery_2; @@ -596,7 +415,7 @@ export const legacyPlugin: ( permissions: PermissionsService; scheduler: SchedulerService; tokenManager: TokenManager; - reader: UrlReader; + reader: UrlReaderService; identity: IdentityService; }, { @@ -677,73 +496,49 @@ export interface PullOptions { }; } -// @public -export type ReaderFactory = (options: { - config: Config; - logger: LoggerService; - treeResponseFactory: ReadTreeResponseFactory; -}) => UrlReaderPredicateTuple[]; +// Warning: (ae-forgotten-export) The symbol "ReaderFactory_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export type ReaderFactory = ReaderFactory_2; -export { ReadTreeOptions }; +// @public @deprecated (undocumented) +export type ReadTreeOptions = ReadTreeOptions_2; -export { ReadTreeResponse }; +// @public @deprecated (undocumented) +export type ReadTreeResponse = ReadTreeResponse_2; -export { ReadTreeResponseDirOptions }; +// @public @deprecated (undocumented) +export type ReadTreeResponseDirOptions = ReadTreeResponseDirOptions_2; -// @public -export interface ReadTreeResponseFactory { - // (undocumented) - fromReadableArray( - options: FromReadableArrayOptions, - ): Promise; - // (undocumented) - fromTarArchive( - options: ReadTreeResponseFactoryOptions & { - stripFirstDirectory?: boolean; - }, - ): Promise; - // (undocumented) - fromZipArchive( - options: ReadTreeResponseFactoryOptions, - ): Promise; -} +// Warning: (ae-forgotten-export) The symbol "ReadTreeResponseFactory_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export type ReadTreeResponseFactory = ReadTreeResponseFactory_2; -// @public -export type ReadTreeResponseFactoryOptions = { - stream: Readable; - subpath?: string; - etag: string; - filter?: ( - path: string, - info?: { - size: number; - }, - ) => boolean; -}; +// Warning: (ae-forgotten-export) The symbol "ReadTreeResponseFactoryOptions_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export type ReadTreeResponseFactoryOptions = ReadTreeResponseFactoryOptions_2; -export { ReadTreeResponseFile }; +// @public @deprecated (undocumented) +export type ReadTreeResponseFile = ReadTreeResponseFile_2; -export { ReadUrlOptions }; +// @public @deprecated (undocumented) +export type ReadUrlOptions = ReadUrlOptions_2; -export { ReadUrlResponse }; +// @public @deprecated (undocumented) +export type ReadUrlResponse = ReadUrlResponse_2; -// @public -export class ReadUrlResponseFactory { - static fromNodeJSReadable( - oldStyleStream: NodeJS.ReadableStream, - options?: ReadUrlResponseFactoryFromStreamOptions, - ): Promise; - static fromReadable( - stream: Readable, - options?: ReadUrlResponseFactoryFromStreamOptions, - ): Promise; -} +// Warning: (ae-forgotten-export) The symbol "ReadUrlResponseFactory_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const ReadUrlResponseFactory: typeof ReadUrlResponseFactory_2; -// @public -export type ReadUrlResponseFactoryFromStreamOptions = { - etag?: string; - lastModifiedAt?: Date; -}; +// Warning: (ae-forgotten-export) The symbol "ReadUrlResponseFactoryFromStreamOptions_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export type ReadUrlResponseFactoryFromStreamOptions = + ReadUrlResponseFactoryFromStreamOptions_2; // @public export function redactWinstonLogLine( @@ -778,11 +573,14 @@ export type RunContainerOptions = { pullOptions?: PullOptions; }; -export { SearchOptions }; +// @public @deprecated (undocumented) +export type SearchOptions = SearchOptions_2; -export { SearchResponse }; +// @public @deprecated (undocumented) +export type SearchResponse = SearchResponse_2; -export { SearchResponseFile }; +// @public @deprecated (undocumented) +export type SearchResponseFile = SearchResponseFile_2; // @public export class ServerTokenManager implements TokenManager { @@ -861,26 +659,23 @@ export interface StatusCheckHandlerOptions { export { TokenManager }; -export { UrlReader }; +// @public @deprecated (undocumented) +export type UrlReader = UrlReaderService; -// @public -export type UrlReaderPredicateTuple = { - predicate: (url: URL) => boolean; - reader: UrlReader; -}; +// Warning: (ae-forgotten-export) The symbol "UrlReaderPredicateTuple_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export type UrlReaderPredicateTuple = UrlReaderPredicateTuple_2; -// @public -export class UrlReaders { - static create(options: UrlReadersOptions): UrlReader; - static default(options: UrlReadersOptions): UrlReader; -} +// Warning: (ae-forgotten-export) The symbol "UrlReaders_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export const UrlReaders: typeof UrlReaders_2; -// @public -export type UrlReadersOptions = { - config: Config; - logger: LoggerService; - factories?: ReaderFactory[]; -}; +// Warning: (ae-forgotten-export) The symbol "UrlReadersOptions_2" needs to be exported by the entry point index.d.ts +// +// @public @deprecated (undocumented) +export type UrlReadersOptions = UrlReadersOptions_2; // @public @deprecated export function useHotCleanup( diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index e5b5806ddf..0cc440e56d 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-common", - "version": "0.23.0-next.2", + "version": "0.23.0-next.3", "description": "Common functionality library for Backstage backends", "backstage": { "role": "node-library" diff --git a/packages/backend-common/src/reading/index.ts b/packages/backend-common/src/reading/index.ts index a99bb6dda1..0b037ed6c2 100644 --- a/packages/backend-common/src/reading/index.ts +++ b/packages/backend-common/src/reading/index.ts @@ -14,35 +14,207 @@ * limitations under the License. */ -export { AzureUrlReader } from './AzureUrlReader'; -export { BitbucketCloudUrlReader } from './BitbucketCloudUrlReader'; -export { BitbucketUrlReader } from './BitbucketUrlReader'; -export { BitbucketServerUrlReader } from './BitbucketServerUrlReader'; -export { GerritUrlReader } from './GerritUrlReader'; -export { GithubUrlReader } from './GithubUrlReader'; -export { GitlabUrlReader } from './GitlabUrlReader'; -export { GiteaUrlReader } from './GiteaUrlReader'; -export { HarnessUrlReader } from './HarnessUrlReader'; -export { AwsS3UrlReader } from './AwsS3UrlReader'; -export { FetchUrlReader } from './FetchUrlReader'; -export { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; -export type { - FromReadableArrayOptions, - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseFactory, - ReadTreeResponseFile, - ReadTreeResponseDirOptions, - ReadTreeResponseFactoryOptions, - ReadUrlOptions, - ReadUrlResponse, - ReadUrlResponseFactoryFromStreamOptions, - SearchOptions, - SearchResponse, - SearchResponseFile, - UrlReader, - UrlReaderPredicateTuple, -} from './types'; -export { UrlReaders } from './UrlReaders'; -export type { UrlReadersOptions } from './UrlReaders'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { AzureUrlReader as _AzureUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/AzureUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { BitbucketCloudUrlReader as _BitbucketCloudUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/BitbucketCloudUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { BitbucketUrlReader as _BitbucketUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/BitbucketUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { BitbucketServerUrlReader as _BitbucketServerUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/BitbucketServerUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { GerritUrlReader as _GerritUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/GerritUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { GithubUrlReader as _GithubUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/GithubUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { GitlabUrlReader as _GitlabUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/GitlabUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { GiteaUrlReader as _GiteaUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/GiteaUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { HarnessUrlReader as _HarnessUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/HarnessUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { AwsS3UrlReader as _AwsS3UrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/AwsS3UrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { FetchUrlReader as _FetchUrlReader } from '../../../backend-defaults/src/entrypoints/urlReader/lib/FetchUrlReader'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { UrlReaders as _UrlReaders } from '../../../backend-defaults/src/entrypoints/urlReader/lib/UrlReaders'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import { ReadUrlResponseFactory as _ReadUrlResponseFactory } from '../../../backend-defaults/src/entrypoints/urlReader/lib/ReadUrlResponseFactory'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import type { UrlReadersOptions as _UrlReadersOptions } from '../../../backend-defaults/src/entrypoints/urlReader/lib/UrlReaders'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import type { FromReadableArrayOptions as _FromReadableArrayOptions } from '../../../backend-defaults/src/entrypoints/urlReader/lib/types'; +// eslint-disable-next-line @backstage/no-relative-monorepo-imports +import type { + ReaderFactory as _ReaderFactory, + ReadTreeResponseFactory as _ReadTreeResponseFactory, + ReadTreeResponseFactoryOptions as _ReadTreeResponseFactoryOptions, + ReadUrlResponseFactoryFromStreamOptions as _ReadUrlResponseFactoryFromStreamOptions, + UrlReaderPredicateTuple as _UrlReaderPredicateTuple, +} from '../../../backend-defaults/src/entrypoints/urlReader/lib/types'; + +import type { + ReadTreeOptions as _ReadTreeOptions, + ReadTreeResponse as _ReadTreeResponse, + ReadTreeResponseFile as _ReadTreeResponseFile, + ReadTreeResponseDirOptions as _ReadTreeResponseDirOptions, + ReadUrlOptions as _ReadUrlOptions, + ReadUrlResponse as _ReadUrlResponse, + SearchOptions as _SearchOptions, + SearchResponse as _SearchResponse, + SearchResponseFile as _SearchResponseFile, + UrlReaderService as _UrlReaderService, +} from '@backstage/backend-plugin-api'; + +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const AzureUrlReader = _AzureUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const BitbucketCloudUrlReader = _BitbucketCloudUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const BitbucketUrlReader = _BitbucketUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const BitbucketServerUrlReader = _BitbucketServerUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const GerritUrlReader = _GerritUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const GithubUrlReader = _GithubUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const GitlabUrlReader = _GitlabUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const GiteaUrlReader = _GiteaUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const HarnessUrlReader = _HarnessUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const AwsS3UrlReader = _AwsS3UrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const FetchUrlReader = _FetchUrlReader; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const UrlReaders = _UrlReaders; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export const ReadUrlResponseFactory = _ReadUrlResponseFactory; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export type UrlReadersOptions = _UrlReadersOptions; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export type FromReadableArrayOptions = _FromReadableArrayOptions; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export type ReaderFactory = _ReaderFactory; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export type ReadTreeResponseFactory = _ReadTreeResponseFactory; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export type ReadTreeResponseFactoryOptions = _ReadTreeResponseFactoryOptions; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export type ReadUrlResponseFactoryFromStreamOptions = + _ReadUrlResponseFactoryFromStreamOptions; +/** + * @public + * @deprecated Import from `@backstage/backend-defaults/urlReader` instead + */ +export type UrlReaderPredicateTuple = _UrlReaderPredicateTuple; + +/** + * @public + * @deprecated Use `ÙrlReaderReadTreeOptions` from `@backstage/backend-plugin-api` instead + */ +export type ReadTreeOptions = _ReadTreeOptions; +/** + * @public + * @deprecated Use `ÙrlReaderReadTreeResponse` from `@backstage/backend-plugin-api` instead + */ +export type ReadTreeResponse = _ReadTreeResponse; +/** + * @public + * @deprecated Use `ÙrlReaderReadTreeResponseFile` from `@backstage/backend-plugin-api` instead + */ +export type ReadTreeResponseFile = _ReadTreeResponseFile; +/** + * @public + * @deprecated Use `ÙrlReaderReadTreeResponseDirOptions` from `@backstage/backend-plugin-api` instead + */ +export type ReadTreeResponseDirOptions = _ReadTreeResponseDirOptions; +/** + * @public + * @deprecated Use `ÙrlReaderReadUrlOptions` from `@backstage/backend-plugin-api` instead + */ +export type ReadUrlOptions = _ReadUrlOptions; +/** + * @public + * @deprecated Use `ÙrlReaderReadUrlResponse` from `@backstage/backend-plugin-api` instead + */ +export type ReadUrlResponse = _ReadUrlResponse; +/** + * @public + * @deprecated Use `ÙrlReaderSearchOptions` from `@backstage/backend-plugin-api` instead + */ +export type SearchOptions = _SearchOptions; +/** + * @public + * @deprecated Use `ÙrlReaderSearchResponse` from `@backstage/backend-plugin-api` instead + */ +export type SearchResponse = _SearchResponse; +/** + * @public + * @deprecated Use `ÙrlReaderSearchResponseFile` from `@backstage/backend-plugin-api` instead + */ +export type SearchResponseFile = _SearchResponseFile; +/** + * @public + * @deprecated Use `ÙrlReaderService` from `@backstage/backend-plugin-api` instead + */ +export type UrlReader = _UrlReaderService; diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index 7556cbbab8..c88dc8f587 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/backend-defaults +## 0.3.0-next.3 + +### Patch Changes + +- 1897169: Exposed `DefaultSchedulerService` +- 8aab451: Internal minor refactors of the database connectors +- b2ee7f3: Moved over all URL reader functionality from `@backstage/backend-common` to `@backstage/backend-defaults/urlReader`. Please update your imports. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/backend-dev-utils@0.1.4 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + ## 0.3.0-next.2 ### Patch Changes diff --git a/packages/backend-defaults/api-report-urlReader.md b/packages/backend-defaults/api-report-urlReader.md index 8c7147bd7c..b2ea2c6d20 100644 --- a/packages/backend-defaults/api-report-urlReader.md +++ b/packages/backend-defaults/api-report-urlReader.md @@ -3,11 +3,440 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +/// + +import { AwsCredentialsManager } from '@backstage/integration-aws-node'; +import { AwsS3Integration } from '@backstage/integration'; +import { AzureDevOpsCredentialsProvider } from '@backstage/integration'; +import { AzureIntegration } from '@backstage/integration'; +import { BitbucketCloudIntegration } from '@backstage/integration'; +import { BitbucketIntegration } from '@backstage/integration'; +import { BitbucketServerIntegration } from '@backstage/integration'; +import { Config } from '@backstage/config'; +import { GerritIntegration } from '@backstage/integration'; +import { GiteaIntegration } from '@backstage/integration'; +import { GithubCredentialsProvider } from '@backstage/integration'; +import { GithubIntegration } from '@backstage/integration'; +import { GitLabIntegration } from '@backstage/integration'; +import { HarnessIntegration } from '@backstage/integration'; +import { LoggerService } from '@backstage/backend-plugin-api'; +import { Readable } from 'stream'; import { ServiceFactory } from '@backstage/backend-plugin-api'; -import { UrlReader } from '@backstage/backend-common'; +import { UrlReaderReadTreeOptions } from '@backstage/backend-plugin-api'; +import { UrlReaderReadTreeResponse } from '@backstage/backend-plugin-api'; +import { UrlReaderReadUrlOptions } from '@backstage/backend-plugin-api'; +import { UrlReaderReadUrlResponse } from '@backstage/backend-plugin-api'; +import { UrlReaderSearchOptions } from '@backstage/backend-plugin-api'; +import { UrlReaderSearchResponse } from '@backstage/backend-plugin-api'; +import { UrlReaderService } from '@backstage/backend-plugin-api'; + +// @public +export class AwsS3UrlReader implements UrlReaderService { + constructor( + credsManager: AwsCredentialsManager, + integration: AwsS3Integration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search(): Promise; + // (undocumented) + toString(): string; +} + +// @public +export class AzureUrlReader implements UrlReaderService { + constructor( + integration: AzureIntegration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + credentialsProvider: AzureDevOpsCredentialsProvider; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise; + // (undocumented) + toString(): string; +} + +// @public +export class BitbucketCloudUrlReader implements UrlReaderService { + constructor( + integration: BitbucketCloudIntegration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise; + // (undocumented) + toString(): string; +} + +// @public +export class BitbucketServerUrlReader implements UrlReaderService { + constructor( + integration: BitbucketServerIntegration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise; + // (undocumented) + toString(): string; +} + +// @public @deprecated +export class BitbucketUrlReader implements UrlReaderService { + constructor( + integration: BitbucketIntegration, + logger: LoggerService, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise; + // (undocumented) + toString(): string; +} + +// @public +export class FetchUrlReader implements UrlReaderService { + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree(): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search(): Promise; + // (undocumented) + toString(): string; +} + +// @public +export type FromReadableArrayOptions = Array<{ + data: Readable; + path: string; + lastModifiedAt?: Date; +}>; + +// @public +export class GerritUrlReader implements UrlReaderService { + constructor( + integration: GerritIntegration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search(): Promise; + // (undocumented) + toString(): string; +} + +// @public +export class GiteaUrlReader implements UrlReaderService { + constructor( + integration: GiteaIntegration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search(): Promise; + // (undocumented) + toString(): string; +} + +// @public +export class GithubUrlReader implements UrlReaderService { + constructor( + integration: GithubIntegration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + credentialsProvider: GithubCredentialsProvider; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise; + // (undocumented) + toString(): string; +} + +// @public +export class GitlabUrlReader implements UrlReaderService { + constructor( + integration: GitLabIntegration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise; + // (undocumented) + toString(): string; +} + +// @public +export class HarnessUrlReader implements UrlReaderService { + constructor( + integration: HarnessIntegration, + deps: { + treeResponseFactory: ReadTreeResponseFactory; + }, + ); + // (undocumented) + static factory: ReaderFactory; + // (undocumented) + read(url: string): Promise; + // (undocumented) + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + // (undocumented) + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + // (undocumented) + search(): Promise; + // (undocumented) + toString(): string; +} + +// @public +export type ReaderFactory = (options: { + config: Config; + logger: LoggerService; + treeResponseFactory: ReadTreeResponseFactory; +}) => UrlReaderPredicateTuple[]; + +// @public +export interface ReadTreeResponseFactory { + // (undocumented) + fromReadableArray( + options: FromReadableArrayOptions, + ): Promise; + // (undocumented) + fromTarArchive( + options: ReadTreeResponseFactoryOptions & { + stripFirstDirectory?: boolean; + }, + ): Promise; + // (undocumented) + fromZipArchive( + options: ReadTreeResponseFactoryOptions, + ): Promise; +} + +// @public +export type ReadTreeResponseFactoryOptions = { + stream: Readable; + subpath?: string; + etag: string; + filter?: ( + path: string, + info?: { + size: number; + }, + ) => boolean; +}; + +// @public +export class ReadUrlResponseFactory { + static fromNodeJSReadable( + oldStyleStream: NodeJS.ReadableStream, + options?: ReadUrlResponseFactoryFromStreamOptions, + ): Promise; + static fromReadable( + stream: Readable, + options?: ReadUrlResponseFactoryFromStreamOptions, + ): Promise; +} + +// @public +export type ReadUrlResponseFactoryFromStreamOptions = { + etag?: string; + lastModifiedAt?: Date; +}; + +// @public +export type UrlReaderPredicateTuple = { + predicate: (url: URL) => boolean; + reader: UrlReaderService; +}; + +// @public +export class UrlReaders { + static create(options: UrlReadersOptions): UrlReaderService; + static default(options: UrlReadersOptions): UrlReaderService; +} // @public (undocumented) -export const urlReaderServiceFactory: () => ServiceFactory; +export const urlReaderServiceFactory: () => ServiceFactory< + UrlReaderService, + 'plugin' +>; + +// @public +export type UrlReadersOptions = { + config: Config; + logger: LoggerService; + factories?: ReaderFactory[]; +}; // (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 505c8924ba..23c68625ca 100644 --- a/packages/backend-defaults/package.json +++ b/packages/backend-defaults/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-defaults", - "version": "0.3.0-next.2", + "version": "0.3.0-next.3", "description": "Backend defaults used by Backstage backend apps", "backstage": { "role": "node-library" @@ -82,6 +82,11 @@ "test": "backstage-cli package test" }, "dependencies": { + "@aws-sdk/abort-controller": "^3.347.0", + "@aws-sdk/client-codecommit": "^3.350.0", + "@aws-sdk/client-s3": "^3.350.0", + "@aws-sdk/credential-providers": "^3.350.0", + "@aws-sdk/types": "^3.347.0", "@backstage/backend-app-api": "workspace:^", "@backstage/backend-common": "workspace:^", "@backstage/backend-dev-utils": "workspace:^", @@ -89,31 +94,48 @@ "@backstage/config": "workspace:^", "@backstage/config-loader": "workspace:^", "@backstage/errors": "workspace:^", + "@backstage/integration": "workspace:^", + "@backstage/integration-aws-node": "workspace:^", "@backstage/plugin-events-node": "workspace:^", "@backstage/plugin-permission-node": "workspace:^", "@backstage/types": "workspace:^", + "@google-cloud/storage": "^7.0.0", "@keyv/memcache": "^1.3.5", "@keyv/redis": "^2.5.3", + "@octokit/rest": "^19.0.3", "@opentelemetry/api": "^1.3.0", + "archiver": "^6.0.0", + "base64-stream": "^1.0.0", "better-sqlite3": "^9.0.0", + "concat-stream": "^2.0.0", "cron": "^3.0.0", "fs-extra": "^11.2.0", + "git-url-parse": "^14.0.0", + "isomorphic-git": "^1.23.0", "keyv": "^4.5.2", "knex": "^3.0.0", "lodash": "^4.17.21", "luxon": "^3.0.0", + "minimatch": "^9.0.0", "mysql2": "^3.0.0", + "node-fetch": "^2.6.7", "p-limit": "^3.1.0", "pg": "^8.11.3", "pg-connection-string": "^2.3.0", + "raw-body": "^2.4.1", + "tar": "^6.1.12", "uuid": "^9.0.0", + "yauzl": "^3.0.0", "yn": "^4.0.0", "zod": "^3.22.4" }, "devDependencies": { + "@aws-sdk/util-stream-node": "^3.350.0", "@backstage/backend-plugin-api": "workspace:^", "@backstage/backend-test-utils": "workspace:^", "@backstage/cli": "workspace:^", + "aws-sdk-client-mock": "^4.0.0", + "msw": "^1.0.0", "wait-for-expect": "^3.0.2" }, "configSchema": "config.d.ts" diff --git a/packages/backend-defaults/src/entrypoints/database/connectors/sqlite3.ts b/packages/backend-defaults/src/entrypoints/database/connectors/sqlite3.ts index f7d55b34da..97ba6d46fd 100644 --- a/packages/backend-defaults/src/entrypoints/database/connectors/sqlite3.ts +++ b/packages/backend-defaults/src/entrypoints/database/connectors/sqlite3.ts @@ -192,7 +192,7 @@ export class Sqlite3Connector implements Connector { const pluginDivisionMode = this.getPluginDivisionModeConfig(); if (pluginDivisionMode !== 'database') { throw new Error( - `The SQLite driver does not suppoert plugin division mode '${pluginDivisionMode}'`, + `The SQLite driver does not support plugin division mode '${pluginDivisionMode}'`, ); } diff --git a/packages/backend-defaults/src/entrypoints/urlReader/index.ts b/packages/backend-defaults/src/entrypoints/urlReader/index.ts index 6a4b9f65be..cf927ea031 100644 --- a/packages/backend-defaults/src/entrypoints/urlReader/index.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/index.ts @@ -14,4 +14,5 @@ * limitations under the License. */ +export * from './lib'; export { urlReaderServiceFactory } from './urlReaderServiceFactory'; diff --git a/packages/backend-common/src/reading/AwsCodeCommitUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/AwsCodeCommitUrlReader.test.ts similarity index 87% rename from packages/backend-common/src/reading/AwsCodeCommitUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/AwsCodeCommitUrlReader.test.ts index 6263d073fc..a17f0c6c61 100644 --- a/packages/backend-common/src/reading/AwsCodeCommitUrlReader.test.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/AwsCodeCommitUrlReader.test.ts @@ -212,7 +212,7 @@ describe('AwsCodeCommitUrlReader', () => { integrations: {}, }); - expect(entries).toHaveLength(1); + expect(entries).toHaveLength(0); }); it('creates a reader with credentials correctly configured', () => { @@ -221,6 +221,7 @@ describe('AwsCodeCommitUrlReader', () => { host: AMAZON_AWS_CODECOMMIT_HOST, accessKeyId: 'fakekey', secretAccessKey: 'fakekey', + region: 'fakeregion', }); const entries = createReader({ @@ -236,6 +237,7 @@ describe('AwsCodeCommitUrlReader', () => { const awsCodeCommitIntegrations = []; awsCodeCommitIntegrations.push({ host: AMAZON_AWS_CODECOMMIT_HOST, + region: 'fakeregion', }); const entries = createReader({ @@ -247,10 +249,32 @@ describe('AwsCodeCommitUrlReader', () => { expect(entries).toHaveLength(1); }); + it('creates a reader without a region', () => { + const awsCodeCommitIntegrations: any[] = []; + awsCodeCommitIntegrations.push({ + accessKeyId: 'fakekey', + secretAccessKey: 'fakekey', + }); + + expect(() => { + createReader({ + integrations: { + awsCodeCommit: awsCodeCommitIntegrations, + }, + }); + }).toThrow( + "Missing required config value at 'integrations.awsCodeCommit[0].region' in 'mock-config'", + ); + }); + describe('predicates', () => { const readers = createReader({ integrations: { - awsCodeCommit: [{}], + awsCodeCommit: [ + { + region: 'fakeregion', + }, + ], }, }); const predicate = readers[0].predicate; @@ -259,7 +283,7 @@ describe('AwsCodeCommitUrlReader', () => { expect( predicate( new URL( - 'https://eu-west-1.console.aws.amazon.com/codesuite/codecommit/repositories/my-repo', + 'https://fakeregion.console.aws.amazon.com/codesuite/codecommit/repositories/my-repo', ), ), ).toBe(true); @@ -269,12 +293,54 @@ describe('AwsCodeCommitUrlReader', () => { expect( predicate( new URL( - 'https://eu-west-1.console.aws.amazon.com/codesuite/codecommit/repositories/my-repo/browse/--/catalog-info.yaml?region=eu-west-1', + 'https://fakeregion.console.aws.amazon.com/codesuite/codecommit/repositories/my-repo/browse/--/catalog-info.yaml?region=eu-west-1', ), ), ).toBe(true); }); + it('returns true for a url with the full path and the correct host when the host overrules the region', () => { + const predicateWithHost = createReader({ + integrations: { + awsCodeCommit: [ + { + host: 'fakehost', + region: 'fakeregion', + }, + ], + }, + })[0].predicate; + + expect( + predicateWithHost( + new URL( + 'https://fakehost/codesuite/codecommit/repositories/my-repo/browse/--/catalog-info.yaml?region=eu-west-1', + ), + ), + ).toBe(true); + }); + + it('returns false for a url with the full path and the wrong host when the host overrules the region', () => { + const predicateWithHost = createReader({ + integrations: { + awsCodeCommit: [ + { + host: 'fakehost', + region: 'fakeregion', + }, + ], + }, + })[0].predicate; + + expect( + predicateWithHost( + new URL( + 'https://fakeregion.console.aws.amazon.com/codesuite/codecommit/repositories/my-repo/browse/--/catalog-info.yaml?region=eu-west-1', + ), + ), + ).toBe(false); + }); + it('returns false for an incorrect host', () => { expect(predicate(new URL('https://amazon.com'))).toBe(false); }); @@ -304,6 +370,7 @@ describe('AwsCodeCommitUrlReader', () => { host: 'amazonaws.com', accessKeyId: 'fake-access-key', secretAccessKey: 'fake-secret-key', + region: 'fakeregion', }, ], }, @@ -348,6 +415,7 @@ describe('AwsCodeCommitUrlReader', () => { host: AMAZON_AWS_CODECOMMIT_HOST, accessKeyId: 'fake-access-key', secretAccessKey: 'fake-secret-key', + region: 'fakeregion', }, ], }, @@ -403,6 +471,7 @@ describe('AwsCodeCommitUrlReader', () => { host: AMAZON_AWS_CODECOMMIT_HOST, accessKeyId: 'fake-access-key', secretAccessKey: 'fake-secret-key', + region: 'fakeregion', }, ], }, @@ -509,9 +578,9 @@ describe('AwsCodeCommitUrlReader', () => { }); const config = new ConfigReader({ - host: AMAZON_AWS_CODECOMMIT_HOST, accessKeyId: 'fake-access-key', secretAccessKey: 'fake-secret-key', + region: 'fakeregion', }); const credsManager = DefaultAwsCredentialsManager.fromConfig(config); @@ -527,7 +596,7 @@ describe('AwsCodeCommitUrlReader', () => { it('returns contents of a file in a repository', async () => { const response = await awsCodeCommitUrlReader.readTree( - 'https://eu-west-1.console.aws.amazon.com/codesuite/codecommit/repositories/my-test-techdocs', + 'https://fakeregion.console.aws.amazon.com/codesuite/codecommit/repositories/my-test-techdocs', ); const files = await response.files(); diff --git a/packages/backend-common/src/reading/AwsCodeCommitUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/AwsCodeCommitUrlReader.ts similarity index 95% rename from packages/backend-common/src/reading/AwsCodeCommitUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/AwsCodeCommitUrlReader.ts index fda8e4c3a0..f204d1390d 100644 --- a/packages/backend-common/src/reading/AwsCodeCommitUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/AwsCodeCommitUrlReader.ts @@ -14,16 +14,15 @@ * limitations under the License. */ +import { ReaderFactory, ReadTreeResponseFactory } from './types'; import { - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseFactory, - ReadUrlOptions, - ReadUrlResponse, - SearchResponse, - UrlReader, -} from './types'; + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { AwsCredentialsManager, DefaultAwsCredentialsManager, @@ -118,7 +117,7 @@ export function parseUrl( * * @public */ -export class AwsCodeCommitUrlReader implements UrlReader { +export class AwsCodeCommitUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); const credsManager = DefaultAwsCredentialsManager.fromConfig(config); @@ -222,8 +221,8 @@ export class AwsCodeCommitUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { // etag and lastModifiedAfter are not supported by the CodeCommit API try { const { path, repositoryName, region, commitSpecifier } = parseUrl( @@ -326,8 +325,8 @@ export class AwsCodeCommitUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { // url: https://eu-west-1.console.aws.amazon.com/codesuite/codecommit/repositories/test-stijn-delete-techdocs/browse?region=eu-west-1 try { const { path, repositoryName, region, commitSpecifier } = parseUrl(url); @@ -380,7 +379,7 @@ export class AwsCodeCommitUrlReader implements UrlReader { } } - async search(): Promise { + async search(): Promise { throw new Error('AwsCodeCommitReader does not implement search'); } diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/AwsS3UrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/AwsS3UrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/AwsS3UrlReader.test.ts diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/AwsS3UrlReader.ts similarity index 95% rename from packages/backend-common/src/reading/AwsS3UrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/AwsS3UrlReader.ts index 3ba4eebb48..b98b285f99 100644 --- a/packages/backend-common/src/reading/AwsS3UrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/AwsS3UrlReader.ts @@ -15,15 +15,14 @@ */ import { - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseFactory, - ReadUrlOptions, - ReadUrlResponse, - SearchResponse, - UrlReader, -} from './types'; + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; +import { ReaderFactory, ReadTreeResponseFactory } from './types'; import { AwsCredentialsManager, DefaultAwsCredentialsManager, @@ -132,7 +131,7 @@ export function parseUrl( * * @public */ -export class AwsS3UrlReader implements UrlReader { +export class AwsS3UrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); const credsManager = DefaultAwsCredentialsManager.fromConfig(config); @@ -253,8 +252,8 @@ export class AwsS3UrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { const { etag, lastModifiedAfter } = options ?? {}; try { @@ -300,8 +299,8 @@ export class AwsS3UrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { try { const { path, bucket, region } = parseUrl(url, this.integration.config); const s3Client = await this.buildS3Client( @@ -357,7 +356,7 @@ export class AwsS3UrlReader implements UrlReader { } } - async search(): Promise { + async search(): Promise { throw new Error('AwsS3Reader does not implement search'); } diff --git a/packages/backend-common/src/reading/AzureUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/AzureUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/AzureUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/AzureUrlReader.test.ts diff --git a/packages/backend-common/src/reading/AzureUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/AzureUrlReader.ts similarity index 91% rename from packages/backend-common/src/reading/AzureUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/AzureUrlReader.ts index 783736b639..b6945f11ea 100644 --- a/packages/backend-common/src/reading/AzureUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/AzureUrlReader.ts @@ -14,6 +14,15 @@ * limitations under the License. */ +import { + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchOptions, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { getAzureCommitsUrl, getAzureDownloadUrl, @@ -27,17 +36,7 @@ import fetch, { Response } from 'node-fetch'; import { Minimatch } from 'minimatch'; import { Readable } from 'stream'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; -import { - ReadTreeResponseFactory, - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - SearchOptions, - SearchResponse, - UrlReader, - ReadUrlOptions, - ReadUrlResponse, -} from './types'; +import { ReadTreeResponseFactory, ReaderFactory } from './types'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; /** @@ -45,7 +44,7 @@ import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; * * @public */ -export class AzureUrlReader implements UrlReader { +export class AzureUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); const credentialProvider = @@ -75,8 +74,8 @@ export class AzureUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { // TODO: etag is not implemented yet. const { signal } = options ?? {}; @@ -114,8 +113,8 @@ export class AzureUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const { etag, filter, signal } = options ?? {}; // TODO: Support filepath based reading tree feature like other providers @@ -180,7 +179,10 @@ export class AzureUrlReader implements UrlReader { }); } - async search(url: string, options?: SearchOptions): Promise { + async search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise { const treeUrl = new URL(url); const path = treeUrl.searchParams.get('path'); diff --git a/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketCloudUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketCloudUrlReader.test.ts diff --git a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketCloudUrlReader.ts similarity index 92% rename from packages/backend-common/src/reading/BitbucketCloudUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketCloudUrlReader.ts index 93587cd6ae..5235215758 100644 --- a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketCloudUrlReader.ts @@ -14,6 +14,15 @@ * limitations under the License. */ +import { + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchOptions, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; import { BitbucketCloudIntegration, @@ -28,17 +37,7 @@ import parseGitUrl from 'git-url-parse'; import { trimEnd } from 'lodash'; import { Minimatch } from 'minimatch'; import { Readable } from 'stream'; -import { - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseFactory, - ReadUrlOptions, - ReadUrlResponse, - SearchOptions, - SearchResponse, - UrlReader, -} from './types'; +import { ReaderFactory, ReadTreeResponseFactory } from './types'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { parseLastModified } from './util'; @@ -47,7 +46,7 @@ import { parseLastModified } from './util'; * * @public */ -export class BitbucketCloudUrlReader implements UrlReader { +export class BitbucketCloudUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); return integrations.bitbucketCloud.list().map(integration => { @@ -79,8 +78,8 @@ export class BitbucketCloudUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { const { etag, lastModifiedAfter, signal } = options ?? {}; const bitbucketUrl = getBitbucketCloudFileFetchUrl( url, @@ -134,8 +133,8 @@ export class BitbucketCloudUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const { filepath } = parseGitUrl(url); const lastCommitShortHash = await this.getLastCommitShortHash(url); @@ -167,7 +166,10 @@ export class BitbucketCloudUrlReader implements UrlReader { }); } - async search(url: string, options?: SearchOptions): Promise { + async search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise { const { filepath } = parseGitUrl(url); const matcher = new Minimatch(filepath); diff --git a/packages/backend-common/src/reading/BitbucketServerUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketServerUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/BitbucketServerUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketServerUrlReader.test.ts diff --git a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketServerUrlReader.ts similarity index 92% rename from packages/backend-common/src/reading/BitbucketServerUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketServerUrlReader.ts index 8e2f1708c4..d539b006ed 100644 --- a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketServerUrlReader.ts @@ -14,6 +14,15 @@ * limitations under the License. */ +import { + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchOptions, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; import { BitbucketServerIntegration, @@ -27,17 +36,7 @@ import parseGitUrl from 'git-url-parse'; import { trimEnd } from 'lodash'; import { Minimatch } from 'minimatch'; import { Readable } from 'stream'; -import { - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseFactory, - ReadUrlOptions, - ReadUrlResponse, - SearchOptions, - SearchResponse, - UrlReader, -} from './types'; +import { ReaderFactory, ReadTreeResponseFactory } from './types'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { parseLastModified } from './util'; @@ -46,7 +45,7 @@ import { parseLastModified } from './util'; * * @public */ -export class BitbucketServerUrlReader implements UrlReader { +export class BitbucketServerUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); return integrations.bitbucketServer.list().map(integration => { @@ -70,8 +69,8 @@ export class BitbucketServerUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { const { etag, lastModifiedAfter, signal } = options ?? {}; const bitbucketUrl = getBitbucketServerFileFetchUrl( url, @@ -125,8 +124,8 @@ export class BitbucketServerUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const { filepath } = parseGitUrl(url); const lastCommitShortHash = await this.getLastCommitShortHash(url); @@ -158,7 +157,10 @@ export class BitbucketServerUrlReader implements UrlReader { }); } - async search(url: string, options?: SearchOptions): Promise { + async search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise { const { filepath } = parseGitUrl(url); const matcher = new Minimatch(filepath); diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/BitbucketUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketUrlReader.test.ts diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketUrlReader.ts similarity index 93% rename from packages/backend-common/src/reading/BitbucketUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketUrlReader.ts index 090fe9098d..7f831800d3 100644 --- a/packages/backend-common/src/reading/BitbucketUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/BitbucketUrlReader.ts @@ -14,6 +14,15 @@ * limitations under the License. */ +import { + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchOptions, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; import { BitbucketIntegration, @@ -29,17 +38,7 @@ import { trimEnd } from 'lodash'; import { Minimatch } from 'minimatch'; import { Readable } from 'stream'; import { LoggerService } from '@backstage/backend-plugin-api'; -import { - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseFactory, - ReadUrlOptions, - ReadUrlResponse, - SearchOptions, - SearchResponse, - UrlReader, -} from './types'; +import { ReaderFactory, ReadTreeResponseFactory } from './types'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { parseLastModified } from './util'; @@ -50,7 +49,7 @@ import { parseLastModified } from './util'; * @public * @deprecated in favor of BitbucketCloudUrlReader and BitbucketServerUrlReader */ -export class BitbucketUrlReader implements UrlReader { +export class BitbucketUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, logger, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); return integrations.bitbucket @@ -95,8 +94,8 @@ export class BitbucketUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { const { etag, lastModifiedAfter, signal } = options ?? {}; const bitbucketUrl = getBitbucketFileFetchUrl(url, this.integration.config); const requestOptions = getBitbucketRequestOptions(this.integration.config); @@ -145,8 +144,8 @@ export class BitbucketUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const { filepath } = parseGitUrl(url); const lastCommitShortHash = await this.getLastCommitShortHash(url); @@ -178,7 +177,10 @@ export class BitbucketUrlReader implements UrlReader { }); } - async search(url: string, options?: SearchOptions): Promise { + async search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise { const { filepath } = parseGitUrl(url); const matcher = new Minimatch(filepath); diff --git a/packages/backend-common/src/reading/FetchUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/FetchUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/FetchUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/FetchUrlReader.test.ts diff --git a/packages/backend-common/src/reading/FetchUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/FetchUrlReader.ts similarity index 92% rename from packages/backend-common/src/reading/FetchUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/FetchUrlReader.ts index 475a98ffdc..d62eaedc1a 100644 --- a/packages/backend-common/src/reading/FetchUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/FetchUrlReader.ts @@ -14,16 +14,16 @@ * limitations under the License. */ +import { + UrlReaderService, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; import fetch, { Response } from 'node-fetch'; -import { - ReaderFactory, - ReadTreeResponse, - ReadUrlOptions, - ReadUrlResponse, - SearchResponse, - UrlReader, -} from './types'; +import { ReaderFactory } from './types'; import path from 'path'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { parseLastModified } from './util'; @@ -68,7 +68,7 @@ const parsePortPredicate = (port: string | undefined) => { * * @public */ -export class FetchUrlReader implements UrlReader { +export class FetchUrlReader implements UrlReaderService { /** * The factory creates a single reader that will be used for reading any URL that's listed * in configuration at `backend.reading.allow`. The allow list contains a list of objects describing @@ -121,8 +121,8 @@ export class FetchUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { let response: Response; try { response = await fetch(url, { @@ -165,11 +165,11 @@ export class FetchUrlReader implements UrlReader { throw new Error(message); } - async readTree(): Promise { + async readTree(): Promise { throw new Error('FetchUrlReader does not implement readTree'); } - async search(): Promise { + async search(): Promise { throw new Error('FetchUrlReader does not implement search'); } diff --git a/packages/backend-common/src/reading/GerritUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GerritUrlReader.test.ts similarity index 84% rename from packages/backend-common/src/reading/GerritUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GerritUrlReader.test.ts index ca4a2707f3..94627e074f 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.test.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/GerritUrlReader.test.ts @@ -32,10 +32,7 @@ import fs from 'fs-extra'; import path from 'path'; import { UrlReaderPredicateTuple } from './types'; import { DefaultReadTreeResponseFactory } from './tree'; -import { - GITILES_BASE_URL_DEPRECATION_MESSSAGE, - GerritUrlReader, -} from './GerritUrlReader'; +import { GerritUrlReader } from './GerritUrlReader'; import getRawBody from 'raw-body'; const mockDir = createMockDirectory({ mockOsTmpDir: true }); @@ -61,11 +58,11 @@ const gerritProcessor = new GerritUrlReader( readGerritIntegrationConfig( new ConfigReader({ host: 'gerrit.com', + gitilesBaseUrl: 'https://gerrit.com/gitiles', }), ), ), { treeResponseFactory }, - '/tmp', ); // Gerrit processor with a gitilesBaseUrl configured. @@ -80,7 +77,6 @@ const gerritProcessorWithGitiles = new GerritUrlReader( ), ), { treeResponseFactory }, - '/tmp', ); const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => { @@ -112,7 +108,12 @@ describe.skip('GerritUrlReader', () => { it('creates a reader.', () => { const readers = createReader({ integrations: { - gerrit: [{ host: 'gerrit.com' }], + gerrit: [ + { + host: 'gerrit.com', + gitilesBaseUrl: 'https://gerrit.com/gitiles', + }, + ], }, }); expect(readers).toHaveLength(1); @@ -126,33 +127,12 @@ describe.skip('GerritUrlReader', () => { }); }); - describe('handle optional gitilesBaseUrl deprecation', () => { - it('should throw if gitilesBaseUrl is not set.', () => { - process.env = env; - expect(() => - createReader({ - integrations: { - gerrit: [{ host: 'gerrit.com' }], - }, - }), - ).toThrow(GITILES_BASE_URL_DEPRECATION_MESSSAGE); - }); - it('should not throw if gitilesBaseUrl requirement is overridden.', () => { - process.env = { ...env, DISABLE_GERRIT_GITILES_REQUIREMENT: '1' }; - expect(() => - createReader({ - integrations: { - gerrit: [{ host: 'gerrit.com' }], - }, - }), - ).not.toThrow(); - }); - }); - describe('predicates without Gitiles', () => { const readers = createReader({ integrations: { - gerrit: [{ host: 'gerrit.com' }], + gerrit: [ + { host: 'gerrit.com', gitilesBaseUrl: 'https://gerrit.com/gitiles' }, + ], }, }); const predicate = readers[0].predicate; @@ -354,29 +334,6 @@ describe.skip('GerritUrlReader', () => { expect(cloneMock).not.toHaveBeenCalled(); }); - it('reads the wanted files correctly using git clone.', async () => { - worker.use( - rest.get(branchAPIUrl, (_, res, ctx) => { - return res(ctx.status(200), ctx.body(branchAPIresponse)); - }), - ); - - const response = await gerritProcessor.readTree(treeUrl); - - expect(response.etag).toBe(etag); - - const files = await response.files(); - expect(files.length).toBe(2); - - const docsYaml = await files[0].content(); - expect(docsYaml.toString()).toBe(mkdocsContent); - - const mdFile = await files[1].content(); - expect(mdFile.toString()).toBe(mdContent); - - expect(cloneMock).toHaveBeenCalled(); - }); - it('throws NotModifiedError for matching etags.', async () => { worker.use( rest.get(branchAPIUrl, (_, res, ctx) => { @@ -432,25 +389,5 @@ describe.skip('GerritUrlReader', () => { expect(cloneMock).not.toHaveBeenCalled(); }); - - it('should returns wanted files with a subpath using git clone', async () => { - worker.use( - rest.get(branchAPIUrl, (_, res, ctx) => { - return res(ctx.status(200), ctx.body(branchAPIresponse)); - }), - ); - - const response = await gerritProcessor.readTree(`${treeUrl}/docs`); - - expect(response.etag).toBe(etag); - - const files = await response.files(); - expect(files.length).toBe(1); - - const mdFile = await files[0].content(); - expect(mdFile.toString()).toBe(mdContent); - - expect(cloneMock).toHaveBeenCalled(); - }); }); }); diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GerritUrlReader.ts similarity index 66% rename from packages/backend-common/src/reading/GerritUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GerritUrlReader.ts index 52a541382b..8307d4c389 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/GerritUrlReader.ts @@ -14,49 +14,29 @@ * limitations under the License. */ +import { + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { Base64Decode } from 'base64-stream'; -import concatStream from 'concat-stream'; -import fs from 'fs-extra'; import fetch, { Response } from 'node-fetch'; -import os from 'os'; -import { join as joinPath } from 'path'; -import { Readable, pipeline as pipelineCb } from 'stream'; -import tar from 'tar'; -import { promisify } from 'util'; +import { Readable } from 'stream'; import { GerritIntegration, ScmIntegrations, buildGerritGitilesArchiveUrl, getGerritBranchApiUrl, - getGerritCloneRepoUrl, getGerritFileContentsApiUrl, getGerritRequestOptions, parseGerritGitilesUrl, parseGerritJsonResponse, } from '@backstage/integration'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; -import { - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseFactory, - ReadUrlOptions, - ReadUrlResponse, - ReaderFactory, - SearchResponse, - UrlReader, -} from './types'; -import { Git } from './git'; - -const pipeline = promisify(pipelineCb); - -export const GITILES_BASE_URL_DEPRECATION_MESSSAGE = `A gitilesBaseUrl must be provided \ -for the gerrit integration to work. You can disable this check by setting \ -DISABLE_GERRIT_GITILES_REQUIREMENT=1 but this will be removed in a future release. If you \ -are not able to use the gitiles gerrit plugin, please open an issue towards \ -https://github.com/backstage/backstage`; - -const createTemporaryDirectory = async (workDir: string): Promise => - await fs.mkdtemp(joinPath(workDir, '/gerrit-clone-')); +import { ReadTreeResponseFactory, ReaderFactory } from './types'; /** * Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files in Gerrit. @@ -78,26 +58,14 @@ const createTemporaryDirectory = async (workDir: string): Promise => * * @public */ -export class GerritUrlReader implements UrlReader { +export class GerritUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); if (!integrations.gerrit) { return []; } - const workDir = - config.getOptionalString('backend.workingDirectory') ?? os.tmpdir(); return integrations.gerrit.list().map(integration => { - if ( - integration.config.gitilesBaseUrl === integration.config.baseUrl && - process.env.DISABLE_GERRIT_GITILES_REQUIREMENT === undefined - ) { - throw new Error(GITILES_BASE_URL_DEPRECATION_MESSSAGE); - } - const reader = new GerritUrlReader( - integration, - { treeResponseFactory }, - workDir, - ); + const reader = new GerritUrlReader(integration, { treeResponseFactory }); const predicate = (url: URL) => { const gitilesUrl = new URL(integration.config.gitilesBaseUrl!); // If gitilesUrl is not specified it will default to @@ -111,7 +79,6 @@ export class GerritUrlReader implements UrlReader { constructor( private readonly integration: GerritIntegration, private readonly deps: { treeResponseFactory: ReadTreeResponseFactory }, - private readonly workDir: string, ) {} async read(url: string): Promise { @@ -121,8 +88,8 @@ export class GerritUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { const apiUrl = getGerritFileContentsApiUrl(this.integration.config, url); let response: Response; try { @@ -166,8 +133,8 @@ export class GerritUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const apiUrl = getGerritBranchApiUrl(this.integration.config, url); let response: Response; try { @@ -195,15 +162,10 @@ export class GerritUrlReader implements UrlReader { throw new NotModifiedError(); } - if ( - this.integration.config.gitilesBaseUrl !== this.integration.config.baseUrl - ) { - return this.readTreeFromGitiles(url, branchInfo.revision, options); - } - return this.readTreeFromGitClone(url, branchInfo.revision, options); + return this.readTreeFromGitiles(url, branchInfo.revision, options); } - async search(): Promise { + async search(): Promise { throw new Error('GerritReader does not implement search'); } @@ -212,53 +174,10 @@ export class GerritUrlReader implements UrlReader { return `gerrit{host=${host},authed=${Boolean(password)}}`; } - private async readTreeFromGitClone( - url: string, - revision: string, - options?: ReadTreeOptions, - ) { - const { filePath } = parseGerritGitilesUrl(this.integration.config, url); - - const git = Git.fromAuth({ - username: this.integration.config.username, - password: this.integration.config.password, - }); - const tempDir = await createTemporaryDirectory(this.workDir); - const cloneUrl = getGerritCloneRepoUrl(this.integration.config, url); - try { - // The "fromTarArchive" function will strip the top level directory so - // an additional directory level is created when we clone. - await git.clone({ - url: cloneUrl, - dir: joinPath(tempDir, 'repo'), - ref: revision, - depth: 1, - }); - - const data = await new Promise(async resolve => { - await pipeline( - tar.create({ cwd: tempDir }, ['']), - concatStream(resolve), - ); - }); - const tarArchive = Readable.from(data); - return await this.deps.treeResponseFactory.fromTarArchive({ - stream: tarArchive, - subpath: filePath === '/' ? undefined : filePath, - etag: revision, - filter: options?.filter, - }); - } catch (error) { - throw new Error(`Could not clone ${cloneUrl}: ${error}`); - } finally { - await fs.rm(tempDir, { recursive: true, force: true }); - } - } - private async readTreeFromGitiles( url: string, revision: string, - options?: ReadTreeOptions, + options?: UrlReaderReadTreeOptions, ) { const { branch, filePath, project } = parseGerritGitilesUrl( this.integration.config, diff --git a/packages/backend-common/src/reading/GiteaUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GiteaUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/GiteaUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GiteaUrlReader.test.ts diff --git a/packages/backend-common/src/reading/GiteaUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GiteaUrlReader.ts similarity index 90% rename from packages/backend-common/src/reading/GiteaUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GiteaUrlReader.ts index c8fab45157..da1b30ab6b 100644 --- a/packages/backend-common/src/reading/GiteaUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/GiteaUrlReader.ts @@ -13,6 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { getGiteaFileContentsUrl, getGiteaArchiveUrl, @@ -22,16 +31,7 @@ import { GiteaIntegration, ScmIntegrations, } from '@backstage/integration'; -import { - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseFactory, - ReadUrlOptions, - ReadUrlResponse, - SearchResponse, - UrlReader, -} from './types'; +import { ReaderFactory, ReadTreeResponseFactory } from './types'; import fetch, { Response } from 'node-fetch'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { @@ -47,7 +47,7 @@ import { parseLastModified } from './util'; * * @public */ -export class GiteaUrlReader implements UrlReader { +export class GiteaUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { return ScmIntegrations.fromConfig(config) .gitea.list() @@ -74,8 +74,8 @@ export class GiteaUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { let response: Response; const blobUrl = getGiteaFileContentsUrl(this.integration.config, url); @@ -126,8 +126,8 @@ export class GiteaUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const lastCommitHash = await this.getLastCommitHash(url); if (options?.etag && options.etag === lastCommitHash) { throw new NotModifiedError(); @@ -156,7 +156,7 @@ export class GiteaUrlReader implements UrlReader { }); } - search(): Promise { + search(): Promise { throw new Error('GiteaUrlReader search not implemented.'); } diff --git a/packages/backend-common/src/reading/GithubUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GithubUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/GithubUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GithubUrlReader.test.ts diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GithubUrlReader.ts similarity index 93% rename from packages/backend-common/src/reading/GithubUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GithubUrlReader.ts index b49945013d..60e9b210cd 100644 --- a/packages/backend-common/src/reading/GithubUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/GithubUrlReader.ts @@ -14,6 +14,16 @@ * limitations under the License. */ +import { + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchOptions, + UrlReaderSearchResponse, + UrlReaderSearchResponseFile, +} from '@backstage/backend-plugin-api'; import { getGithubFileFetchUrl, DefaultGithubCredentialsProvider, @@ -28,18 +38,7 @@ import parseGitUrl from 'git-url-parse'; import { Minimatch } from 'minimatch'; import { Readable } from 'stream'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; -import { - ReadTreeResponseFactory, - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - SearchOptions, - SearchResponse, - SearchResponseFile, - UrlReader, - ReadUrlOptions, - ReadUrlResponse, -} from './types'; +import { ReadTreeResponseFactory, ReaderFactory } from './types'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { parseLastModified } from './util'; @@ -58,7 +57,7 @@ export type GhBlobResponse = * * @public */ -export class GithubUrlReader implements UrlReader { +export class GithubUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); const credentialsProvider = @@ -113,8 +112,8 @@ export class GithubUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { const credentials = await this.getCredentials(url, options); const ghUrl = getGithubFileFetchUrl( @@ -149,8 +148,8 @@ export class GithubUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const repoDetails = await this.getRepoDetails(url); const commitSha = repoDetails.commitSha; @@ -176,7 +175,10 @@ export class GithubUrlReader implements UrlReader { ); } - async search(url: string, options?: SearchOptions): Promise { + async search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise { const repoDetails = await this.getRepoDetails(url); const commitSha = repoDetails.commitSha; @@ -209,8 +211,8 @@ export class GithubUrlReader implements UrlReader { sha: string, subpath: string, init: RequestInit, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { // archive_url looks like "https://api.github.com/repos/owner/repo/{archive_format}{/ref}" const archive = await this.fetchResponse( archiveUrl @@ -236,7 +238,7 @@ export class GithubUrlReader implements UrlReader { sha: string, query: string, init: RequestInit, - ): Promise { + ): Promise { function pathToUrl(path: string): string { // TODO(freben): Use the integration package facility for this instead // pathname starts as /backstage/backstage/blob/master/ diff --git a/packages/backend-common/src/reading/GitlabUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GitlabUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/GitlabUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GitlabUrlReader.test.ts diff --git a/packages/backend-common/src/reading/GitlabUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GitlabUrlReader.ts similarity index 95% rename from packages/backend-common/src/reading/GitlabUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GitlabUrlReader.ts index 178e65b40a..b45a61a40e 100644 --- a/packages/backend-common/src/reading/GitlabUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/GitlabUrlReader.ts @@ -14,6 +14,15 @@ * limitations under the License. */ +import { + UrlReaderService, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchOptions, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; import { getGitLabFileFetchUrl, getGitLabIntegrationRelativePath, @@ -26,17 +35,7 @@ import parseGitUrl from 'git-url-parse'; import { Minimatch } from 'minimatch'; import { Readable } from 'stream'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; -import { - ReadTreeResponseFactory, - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - SearchOptions, - SearchResponse, - UrlReader, - ReadUrlResponse, - ReadUrlOptions, -} from './types'; +import { ReadTreeResponseFactory, ReaderFactory } from './types'; import { trimEnd, trimStart } from 'lodash'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { parseLastModified } from './util'; @@ -46,7 +45,7 @@ import { parseLastModified } from './util'; * * @public */ -export class GitlabUrlReader implements UrlReader { +export class GitlabUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); return integrations.gitlab.list().map(integration => { @@ -70,8 +69,8 @@ export class GitlabUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { const { etag, lastModifiedAfter, signal } = options ?? {}; const builtUrl = await this.getGitlabFetchUrl(url); @@ -119,8 +118,8 @@ export class GitlabUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const { etag, signal } = options ?? {}; const { ref, full_name, filepath } = parseGitUrl(url); @@ -236,7 +235,10 @@ export class GitlabUrlReader implements UrlReader { }); } - async search(url: string, options?: SearchOptions): Promise { + async search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise { const { filepath } = parseGitUrl(url); const staticPart = this.getStaticPart(filepath); const matcher = new Minimatch(filepath); diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GoogleGcsUrlReader.test.ts similarity index 91% rename from packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GoogleGcsUrlReader.test.ts index bc31818d23..537b8c375e 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/GoogleGcsUrlReader.test.ts @@ -14,31 +14,27 @@ * limitations under the License. */ +import * as GoogleCloud from '@google-cloud/storage'; import { ConfigReader } from '@backstage/config'; import { JsonObject } from '@backstage/types'; import { DefaultReadTreeResponseFactory } from './tree'; import { GoogleGcsUrlReader } from './GoogleGcsUrlReader'; import { UrlReaderPredicateTuple } from './types'; -import packageinfo from '../../package.json'; +import packageinfo from '../../../../package.json'; import { mockServices } from '@backstage/backend-test-utils'; const bucketGetFilesMock = jest.fn(); -jest.mock('@google-cloud/storage', () => { - class Bucket { - getFiles(query: any) { - return bucketGetFilesMock(query); - } +class Bucket { + getFiles(query: any) { + return bucketGetFilesMock(query); } - class Storage { - bucket() { - return new Bucket(); - } +} +class Storage { + bucket() { + return new Bucket(); } - return { - __esModule: true, - Storage, - }; -}); +} +jest.spyOn(GoogleCloud, 'Storage').mockReturnValue(new Storage() as any); describe('GcsUrlReader', () => { const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => { @@ -80,7 +76,7 @@ describe('GcsUrlReader', () => { }); it('check if userAgent has been called with this key value', async () => { const getStorage: any = { - userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, + userAgent: `backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`, }; jest.mock('@google-cloud/storage', () => { return { @@ -89,7 +85,7 @@ describe('GcsUrlReader', () => { }); const getUserAgent = getStorage.userAgent.toString(); expect(getUserAgent).toBe( - `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, + `backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`, ); }); diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/GoogleGcsUrlReader.ts similarity index 80% rename from packages/backend-common/src/reading/GoogleGcsUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/GoogleGcsUrlReader.ts index 9cf6bbcd61..843eee9c21 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/GoogleGcsUrlReader.ts @@ -14,15 +14,15 @@ * limitations under the License. */ -import { Storage } from '@google-cloud/storage'; +import * as GoogleCloud from '@google-cloud/storage'; import { - ReaderFactory, - ReadTreeResponse, - ReadUrlOptions, - ReadUrlResponse, - SearchResponse, - UrlReader, -} from './types'; + UrlReaderService, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchResponse, +} from '@backstage/backend-plugin-api'; +import { ReaderFactory } from './types'; import getRawBody from 'raw-body'; import { GoogleGcsIntegrationConfig, @@ -30,7 +30,7 @@ import { } from '@backstage/integration'; import { Readable } from 'stream'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; -import packageinfo from '../../package.json'; +import packageinfo from '../../../../package.json'; const GOOGLE_GCS_HOST = 'storage.cloud.google.com'; @@ -56,7 +56,7 @@ const parseURL = ( * * @public */ -export class GoogleGcsUrlReader implements UrlReader { +export class GoogleGcsUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, logger }) => { if (!config.has('integrations.googleGcs')) { return []; @@ -64,21 +64,21 @@ export class GoogleGcsUrlReader implements UrlReader { const gcsConfig = readGoogleGcsIntegrationConfig( config.getConfig('integrations.googleGcs'), ); - let storage: Storage; + let storage: GoogleCloud.Storage; if (!gcsConfig.clientEmail || !gcsConfig.privateKey) { logger.info( 'googleGcs credentials not found in config. Using default credentials provider.', ); - storage = new Storage({ - userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, + storage = new GoogleCloud.Storage({ + userAgent: `backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`, }); } else { - storage = new Storage({ + storage = new GoogleCloud.Storage({ credentials: { client_email: gcsConfig.clientEmail || undefined, private_key: gcsConfig.privateKey || undefined, }, - userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, + userAgent: `backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`, }); } const reader = new GoogleGcsUrlReader(gcsConfig, storage); @@ -88,7 +88,7 @@ export class GoogleGcsUrlReader implements UrlReader { constructor( private readonly integration: GoogleGcsIntegrationConfig, - private readonly storage: Storage, + private readonly storage: GoogleCloud.Storage, ) {} private readStreamFromUrl(url: string): Readable { @@ -106,18 +106,18 @@ export class GoogleGcsUrlReader implements UrlReader { async readUrl( url: string, - _options?: ReadUrlOptions, - ): Promise { + _options?: UrlReaderReadUrlOptions, + ): Promise { // TODO etag is not implemented yet. const stream = this.readStreamFromUrl(url); return ReadUrlResponseFactory.fromReadable(stream); } - async readTree(): Promise { + async readTree(): Promise { throw new Error('GcsUrlReader does not implement readTree'); } - async search(url: string): Promise { + async search(url: string): Promise { const { bucket, key: pattern } = parseURL(url); if (!pattern.endsWith('*') || pattern.indexOf('*') !== pattern.length - 1) { diff --git a/packages/backend-common/src/reading/HarnessUrlReader.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/HarnessUrlReader.test.ts similarity index 100% rename from packages/backend-common/src/reading/HarnessUrlReader.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/HarnessUrlReader.test.ts diff --git a/packages/backend-common/src/reading/HarnessUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/HarnessUrlReader.ts similarity index 90% rename from packages/backend-common/src/reading/HarnessUrlReader.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/HarnessUrlReader.ts index 76ad882d80..23b5284b43 100644 --- a/packages/backend-common/src/reading/HarnessUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/HarnessUrlReader.ts @@ -13,6 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { + UrlReaderService, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchResponse, + UrlReaderReadTreeOptions, +} from '@backstage/backend-plugin-api'; import { getHarnessRequestOptions, getHarnessFileContentsUrl, @@ -22,16 +31,7 @@ import { getHarnessArchiveUrl, parseHarnessUrl, } from '@backstage/integration'; -import { - ReaderFactory, - ReadTreeOptions, - ReadTreeResponse, - SearchResponse, - ReadTreeResponseFactory, - ReadUrlOptions, - ReadUrlResponse, - UrlReader, -} from './types'; +import { ReadTreeResponseFactory, ReaderFactory } from './types'; import fetch, { Response } from 'node-fetch'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { @@ -47,7 +47,7 @@ import { Readable } from 'stream'; * * @public */ -export class HarnessUrlReader implements UrlReader { +export class HarnessUrlReader implements UrlReaderService { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { return ScmIntegrations.fromConfig(config) .harness.list() @@ -75,8 +75,8 @@ export class HarnessUrlReader implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { let response: Response; const blobUrl = getHarnessFileContentsUrl(this.integration.config, url); @@ -123,8 +123,8 @@ export class HarnessUrlReader implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const lastCommitHash = await this.getLastCommitHash(url); if (options?.etag && options.etag === lastCommitHash) { @@ -153,7 +153,8 @@ export class HarnessUrlReader implements UrlReader { filter: options?.filter, }); } - search(): Promise { + + search(): Promise { throw new Error('HarnessUrlReader search not implemented.'); } diff --git a/packages/backend-common/src/reading/ReadUrlResponseFactory.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/ReadUrlResponseFactory.test.ts similarity index 100% rename from packages/backend-common/src/reading/ReadUrlResponseFactory.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/ReadUrlResponseFactory.test.ts diff --git a/packages/backend-common/src/reading/ReadUrlResponseFactory.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/ReadUrlResponseFactory.ts similarity index 91% rename from packages/backend-common/src/reading/ReadUrlResponseFactory.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/ReadUrlResponseFactory.ts index 5eb4b2f5bc..805008c34e 100644 --- a/packages/backend-common/src/reading/ReadUrlResponseFactory.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/ReadUrlResponseFactory.ts @@ -15,12 +15,10 @@ */ import { ConflictError } from '@backstage/errors'; +import { UrlReaderReadUrlResponse } from '@backstage/backend-plugin-api'; import getRawBody from 'raw-body'; import { Readable } from 'stream'; -import { - ReadUrlResponse, - ReadUrlResponseFactoryFromStreamOptions, -} from './types'; +import { ReadUrlResponseFactoryFromStreamOptions } from './types'; /** * Utility class for UrlReader implementations to create valid ReadUrlResponse @@ -35,7 +33,7 @@ export class ReadUrlResponseFactory { static async fromReadable( stream: Readable, options?: ReadUrlResponseFactoryFromStreamOptions, - ): Promise { + ): Promise { // Reference to eventual buffer enables callers to call buffer() multiple // times without consequence. let buffer: Promise; @@ -71,7 +69,7 @@ export class ReadUrlResponseFactory { static async fromNodeJSReadable( oldStyleStream: NodeJS.ReadableStream, options?: ReadUrlResponseFactoryFromStreamOptions, - ): Promise { + ): Promise { const readable = Readable.from(oldStyleStream); return ReadUrlResponseFactory.fromReadable(readable, options); } diff --git a/packages/backend-common/src/reading/UrlReaderPredicateMux.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/UrlReaderPredicateMux.test.ts similarity index 100% rename from packages/backend-common/src/reading/UrlReaderPredicateMux.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/UrlReaderPredicateMux.test.ts diff --git a/packages/backend-common/src/reading/UrlReaderPredicateMux.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/UrlReaderPredicateMux.ts similarity index 74% rename from packages/backend-common/src/reading/UrlReaderPredicateMux.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/UrlReaderPredicateMux.ts index a7c2e5f983..b6db60af0a 100644 --- a/packages/backend-common/src/reading/UrlReaderPredicateMux.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/UrlReaderPredicateMux.ts @@ -14,17 +14,17 @@ * limitations under the License. */ -import { NotAllowedError } from '@backstage/errors'; import { - ReadTreeOptions, - ReadTreeResponse, - ReadUrlOptions, - ReadUrlResponse, - SearchOptions, - SearchResponse, - UrlReader, - UrlReaderPredicateTuple, -} from './types'; + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadUrlOptions, + UrlReaderReadUrlResponse, + UrlReaderSearchOptions, + UrlReaderSearchResponse, + UrlReaderService, +} from '@backstage/backend-plugin-api'; +import { NotAllowedError } from '@backstage/errors'; +import { UrlReaderPredicateTuple } from './types'; function notAllowedMessage(url: string) { return ( @@ -35,10 +35,10 @@ function notAllowedMessage(url: string) { } /** - * A UrlReader implementation that selects from a set of UrlReaders + * A UrlReaderService implementation that selects from a set of readers * based on a predicate tied to each reader. */ -export class UrlReaderPredicateMux implements UrlReader { +export class UrlReaderPredicateMux implements UrlReaderService { private readonly readers: UrlReaderPredicateTuple[] = []; register(tuple: UrlReaderPredicateTuple): void { @@ -47,8 +47,8 @@ export class UrlReaderPredicateMux implements UrlReader { async readUrl( url: string, - options?: ReadUrlOptions, - ): Promise { + options?: UrlReaderReadUrlOptions, + ): Promise { const parsed = new URL(url); for (const { predicate, reader } of this.readers) { @@ -62,8 +62,8 @@ export class UrlReaderPredicateMux implements UrlReader { async readTree( url: string, - options?: ReadTreeOptions, - ): Promise { + options?: UrlReaderReadTreeOptions, + ): Promise { const parsed = new URL(url); for (const { predicate, reader } of this.readers) { @@ -75,7 +75,10 @@ export class UrlReaderPredicateMux implements UrlReader { throw new NotAllowedError(notAllowedMessage(url)); } - async search(url: string, options?: SearchOptions): Promise { + async search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise { const parsed = new URL(url); for (const { predicate, reader } of this.readers) { diff --git a/packages/backend-common/src/reading/UrlReaders.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/UrlReaders.ts similarity index 94% rename from packages/backend-common/src/reading/UrlReaders.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/UrlReaders.ts index 7aaaf120b4..cb496dd702 100644 --- a/packages/backend-common/src/reading/UrlReaders.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/UrlReaders.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import { LoggerService } from '@backstage/backend-plugin-api'; +import { LoggerService, UrlReaderService } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; -import { ReaderFactory, UrlReader } from './types'; +import { ReaderFactory } from './types'; import { UrlReaderPredicateMux } from './UrlReaderPredicateMux'; import { AzureUrlReader } from './AzureUrlReader'; import { BitbucketCloudUrlReader } from './BitbucketCloudUrlReader'; @@ -56,7 +56,7 @@ export class UrlReaders { /** * Creates a custom {@link @backstage/backend-plugin-api#UrlReaderService} wrapper for your own set of factories. */ - static create(options: UrlReadersOptions): UrlReader { + static create(options: UrlReadersOptions): UrlReaderService { const { logger, config, factories } = options; const mux = new UrlReaderPredicateMux(); const treeResponseFactory = DefaultReadTreeResponseFactory.create({ diff --git a/packages/backend-common/src/reading/__fixtures__/awsCodeCommit/awsCodeCommit-mock-object.yaml b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsCodeCommit/awsCodeCommit-mock-object.yaml similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/awsCodeCommit/awsCodeCommit-mock-object.yaml rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsCodeCommit/awsCodeCommit-mock-object.yaml diff --git a/packages/backend-common/src/reading/__fixtures__/awsCodeCommit/subFolder/awsCodeCommit-mock-object2.yaml b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsCodeCommit/subFolder/awsCodeCommit-mock-object2.yaml similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/awsCodeCommit/subFolder/awsCodeCommit-mock-object2.yaml rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsCodeCommit/subFolder/awsCodeCommit-mock-object2.yaml diff --git a/packages/backend-common/src/reading/__fixtures__/awsS3/awsS3-mock-object.yaml b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsS3/awsS3-mock-object.yaml similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/awsS3/awsS3-mock-object.yaml rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsS3/awsS3-mock-object.yaml diff --git a/packages/backend-common/src/reading/__fixtures__/awsS3/awsS3-mock-object2.yaml b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsS3/awsS3-mock-object2.yaml similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/awsS3/awsS3-mock-object2.yaml rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsS3/awsS3-mock-object2.yaml diff --git a/packages/backend-common/src/reading/__fixtures__/awsS3/awsS3-mock-object3.yaml b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsS3/awsS3-mock-object3.yaml similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/awsS3/awsS3-mock-object3.yaml rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/awsS3/awsS3-mock-object3.yaml diff --git a/packages/backend-common/src/reading/__fixtures__/backstage-mock-etag123.tar.gz b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/backstage-mock-etag123.tar.gz similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/backstage-mock-etag123.tar.gz rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/backstage-mock-etag123.tar.gz diff --git a/packages/backend-common/src/reading/__fixtures__/bitbucket-repo-with-commit-hash.tar.gz b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/bitbucket-repo-with-commit-hash.tar.gz similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/bitbucket-repo-with-commit-hash.tar.gz rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/bitbucket-repo-with-commit-hash.tar.gz diff --git a/packages/backend-common/src/reading/__fixtures__/bitbucket-server-repo.tar.gz b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/bitbucket-server-repo.tar.gz similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/bitbucket-server-repo.tar.gz rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/bitbucket-server-repo.tar.gz diff --git a/packages/backend-common/src/reading/__fixtures__/gerrit/branch-info-response.txt b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gerrit/branch-info-response.txt similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/gerrit/branch-info-response.txt rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gerrit/branch-info-response.txt diff --git a/packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master-docs.tar.gz b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gerrit/gerrit-master-docs.tar.gz similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master-docs.tar.gz rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gerrit/gerrit-master-docs.tar.gz diff --git a/packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master.tar.gz b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gerrit/gerrit-master.tar.gz similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master.tar.gz rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gerrit/gerrit-master.tar.gz diff --git a/packages/backend-common/src/reading/__fixtures__/gitlab-archive.tar.gz b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gitlab-archive.tar.gz similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/gitlab-archive.tar.gz rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gitlab-archive.tar.gz diff --git a/packages/backend-common/src/reading/__fixtures__/gitlab-archive.zip b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gitlab-archive.zip similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/gitlab-archive.zip rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gitlab-archive.zip diff --git a/packages/backend-common/src/reading/__fixtures__/gitlab-subpath-archive.tar.gz b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gitlab-subpath-archive.tar.gz similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/gitlab-subpath-archive.tar.gz rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/gitlab-subpath-archive.tar.gz diff --git a/packages/backend-common/src/reading/__fixtures__/mallory.zip b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mallory.zip similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/mallory.zip rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mallory.zip diff --git a/packages/backend-common/src/reading/__fixtures__/mock-corrupted.zip b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mock-corrupted.zip similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/mock-corrupted.zip rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mock-corrupted.zip diff --git a/packages/backend-common/src/reading/__fixtures__/mock-main.tar.gz b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mock-main.tar.gz similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/mock-main.tar.gz rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mock-main.tar.gz diff --git a/packages/backend-common/src/reading/__fixtures__/mock-main.zip b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mock-main.zip similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/mock-main.zip rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mock-main.zip diff --git a/packages/backend-common/src/reading/__fixtures__/mock-with-extra-root-dir.zip b/packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mock-with-extra-root-dir.zip similarity index 100% rename from packages/backend-common/src/reading/__fixtures__/mock-with-extra-root-dir.zip rename to packages/backend-defaults/src/entrypoints/urlReader/lib/__fixtures__/mock-with-extra-root-dir.zip diff --git a/packages/backend-common/src/reading/git.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/git.ts similarity index 100% rename from packages/backend-common/src/reading/git.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/git.ts diff --git a/packages/backend-defaults/src/entrypoints/urlReader/lib/index.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/index.ts new file mode 100644 index 0000000000..678c6ef64b --- /dev/null +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/index.ts @@ -0,0 +1,38 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { AzureUrlReader } from './AzureUrlReader'; +export { BitbucketCloudUrlReader } from './BitbucketCloudUrlReader'; +export { BitbucketUrlReader } from './BitbucketUrlReader'; +export { BitbucketServerUrlReader } from './BitbucketServerUrlReader'; +export { GerritUrlReader } from './GerritUrlReader'; +export { GithubUrlReader } from './GithubUrlReader'; +export { GitlabUrlReader } from './GitlabUrlReader'; +export { GiteaUrlReader } from './GiteaUrlReader'; +export { HarnessUrlReader } from './HarnessUrlReader'; +export { AwsS3UrlReader } from './AwsS3UrlReader'; +export { FetchUrlReader } from './FetchUrlReader'; +export { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; +export type { + FromReadableArrayOptions, + ReaderFactory, + ReadTreeResponseFactory, + ReadTreeResponseFactoryOptions, + ReadUrlResponseFactoryFromStreamOptions, + UrlReaderPredicateTuple, +} from './types'; +export { UrlReaders } from './UrlReaders'; +export type { UrlReadersOptions } from './UrlReaders'; diff --git a/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ReadTreeResponseFactory.ts similarity index 90% rename from packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ReadTreeResponseFactory.ts index 90c58c0efa..e61ce3242e 100644 --- a/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ReadTreeResponseFactory.ts @@ -17,7 +17,6 @@ import os from 'os'; import { Config } from '@backstage/config'; import { - ReadTreeResponse, ReadTreeResponseFactoryOptions, ReadTreeResponseFactory, FromReadableArrayOptions, @@ -25,6 +24,7 @@ import { import { TarArchiveResponse } from './TarArchiveResponse'; import { ZipArchiveResponse } from './ZipArchiveResponse'; import { ReadableArrayResponse } from './ReadableArrayResponse'; +import { UrlReaderReadTreeResponse } from '@backstage/backend-plugin-api'; export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { static create(options: { config: Config }): DefaultReadTreeResponseFactory { @@ -40,7 +40,7 @@ export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { options: ReadTreeResponseFactoryOptions & { stripFirstDirectory?: boolean; }, - ): Promise { + ): Promise { return new TarArchiveResponse( options.stream, options.subpath ?? '', @@ -53,7 +53,7 @@ export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { async fromZipArchive( options: ReadTreeResponseFactoryOptions, - ): Promise { + ): Promise { return new ZipArchiveResponse( options.stream, options.subpath ?? '', @@ -65,7 +65,7 @@ export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { async fromReadableArray( options: FromReadableArrayOptions, - ): Promise { + ): Promise { return new ReadableArrayResponse(options, this.workDir, ''); } } diff --git a/packages/backend-common/src/reading/tree/ReadableArrayResponse.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ReadableArrayResponse.test.ts similarity index 100% rename from packages/backend-common/src/reading/tree/ReadableArrayResponse.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ReadableArrayResponse.test.ts diff --git a/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ReadableArrayResponse.ts similarity index 84% rename from packages/backend-common/src/reading/tree/ReadableArrayResponse.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ReadableArrayResponse.ts index 3c8bfd1fbc..4e1b24f47f 100644 --- a/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ReadableArrayResponse.ts @@ -14,27 +14,26 @@ * limitations under the License. */ +import { + UrlReaderReadTreeResponse, + UrlReaderReadTreeResponseDirOptions, + UrlReaderReadTreeResponseFile, +} from '@backstage/backend-plugin-api'; import concatStream from 'concat-stream'; import platformPath, { dirname } from 'path'; - import getRawBody from 'raw-body'; import fs from 'fs-extra'; import { promisify } from 'util'; import tar from 'tar'; import { pipeline as pipelineCb, Readable } from 'stream'; -import { - ReadTreeResponse, - ReadTreeResponseFile, - ReadTreeResponseDirOptions, - FromReadableArrayOptions, -} from '../types'; +import { FromReadableArrayOptions } from '../types'; const pipeline = promisify(pipelineCb); /** * Wraps a array of Readable objects into a tree response reader. */ -export class ReadableArrayResponse implements ReadTreeResponse { +export class ReadableArrayResponse implements UrlReaderReadTreeResponse { private read = false; constructor( @@ -53,10 +52,10 @@ export class ReadableArrayResponse implements ReadTreeResponse { this.read = true; } - async files(): Promise { + async files(): Promise { this.onlyOnce(); - const files = Array(); + const files = Array(); for (let i = 0; i < this.stream.length; i++) { if (!this.stream[i].path.endsWith('/')) { @@ -87,7 +86,7 @@ export class ReadableArrayResponse implements ReadTreeResponse { } } - async dir(options?: ReadTreeResponseDirOptions): Promise { + async dir(options?: UrlReaderReadTreeResponseDirOptions): Promise { this.onlyOnce(); const dir = diff --git a/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/TarArchiveResponse.test.ts similarity index 100% rename from packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/TarArchiveResponse.test.ts diff --git a/packages/backend-common/src/reading/tree/TarArchiveResponse.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/TarArchiveResponse.ts similarity index 93% rename from packages/backend-common/src/reading/tree/TarArchiveResponse.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/TarArchiveResponse.ts index 294ec22609..59b750eb1e 100644 --- a/packages/backend-common/src/reading/tree/TarArchiveResponse.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/TarArchiveResponse.ts @@ -14,17 +14,17 @@ * limitations under the License. */ +import { + UrlReaderReadTreeResponse, + UrlReaderReadTreeResponseDirOptions, + UrlReaderReadTreeResponseFile, +} from '@backstage/backend-plugin-api'; import concatStream from 'concat-stream'; import fs from 'fs-extra'; import platformPath from 'path'; import { pipeline as pipelineCb, Readable } from 'stream'; import tar, { Parse, ParseStream, ReadEntry } from 'tar'; import { promisify } from 'util'; -import { - ReadTreeResponse, - ReadTreeResponseDirOptions, - ReadTreeResponseFile, -} from '../types'; import { stripFirstDirectoryFromPath } from './util'; // Tar types for `Parse` is not a proper constructor, but it should be @@ -35,7 +35,7 @@ const pipeline = promisify(pipelineCb); /** * Wraps a tar archive stream into a tree response reader. */ -export class TarArchiveResponse implements ReadTreeResponse { +export class TarArchiveResponse implements UrlReaderReadTreeResponse { private read = false; constructor( @@ -68,10 +68,10 @@ export class TarArchiveResponse implements ReadTreeResponse { this.read = true; } - async files(): Promise { + async files(): Promise { this.onlyOnce(); - const files = Array(); + const files = Array(); const parser = new TarParseStream(); parser.on('entry', (entry: ReadEntry & Readable) => { @@ -142,7 +142,7 @@ export class TarArchiveResponse implements ReadTreeResponse { } } - async dir(options?: ReadTreeResponseDirOptions): Promise { + async dir(options?: UrlReaderReadTreeResponseDirOptions): Promise { this.onlyOnce(); const dir = diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ZipArchiveResponse.test.ts similarity index 100% rename from packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ZipArchiveResponse.test.ts diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ZipArchiveResponse.ts similarity index 93% rename from packages/backend-common/src/reading/tree/ZipArchiveResponse.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ZipArchiveResponse.ts index 412819c5b9..3d3b615ee7 100644 --- a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/ZipArchiveResponse.ts @@ -14,23 +14,23 @@ * limitations under the License. */ +import { + UrlReaderReadTreeResponse, + UrlReaderReadTreeResponseDirOptions, + UrlReaderReadTreeResponseFile, +} from '@backstage/backend-plugin-api'; import archiver from 'archiver'; import yauzl, { Entry } from 'yauzl'; import fs from 'fs-extra'; import platformPath from 'path'; import { Readable } from 'stream'; -import { - ReadTreeResponse, - ReadTreeResponseDirOptions, - ReadTreeResponseFile, -} from '../types'; import { streamToBuffer } from './util'; import { resolveSafeChildPath } from '@backstage/backend-plugin-api'; /** * Wraps a zip archive stream into a tree response reader. */ -export class ZipArchiveResponse implements ReadTreeResponse { +export class ZipArchiveResponse implements UrlReaderReadTreeResponse { private read = false; constructor( @@ -141,9 +141,9 @@ export class ZipArchiveResponse implements ReadTreeResponse { }); } - async files(): Promise { + async files(): Promise { this.onlyOnce(); - const files = Array(); + const files = Array(); const temporary = await this.streamToTemporaryFile(this.stream); await this.forEveryZipEntry(temporary.fileName, async (entry, content) => { @@ -184,7 +184,7 @@ export class ZipArchiveResponse implements ReadTreeResponse { return archive; } - async dir(options?: ReadTreeResponseDirOptions): Promise { + async dir(options?: UrlReaderReadTreeResponseDirOptions): Promise { this.onlyOnce(); const dir = options?.targetDir ?? diff --git a/packages/backend-common/src/reading/tree/index.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/index.ts similarity index 100% rename from packages/backend-common/src/reading/tree/index.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/index.ts diff --git a/packages/backend-common/src/reading/tree/util.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/tree/util.ts similarity index 100% rename from packages/backend-common/src/reading/tree/util.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/tree/util.ts diff --git a/packages/backend-common/src/reading/types.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/types.ts similarity index 88% rename from packages/backend-common/src/reading/types.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/types.ts index 90a3c6287e..254fe1dcec 100644 --- a/packages/backend-common/src/reading/types.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/types.ts @@ -18,23 +18,10 @@ import { Readable } from 'stream'; import { Config } from '@backstage/config'; import { UrlReaderService, - ReadTreeResponse, + UrlReaderReadTreeResponse, LoggerService, } from '@backstage/backend-plugin-api'; -export type { - UrlReaderService as UrlReader, - ReadTreeOptions, - ReadTreeResponse, - ReadTreeResponseDirOptions, - ReadTreeResponseFile, - ReadUrlResponse, - ReadUrlOptions, - SearchOptions, - SearchResponse, - SearchResponseFile, -} from '@backstage/backend-plugin-api'; - /** * A predicate that decides whether a specific {@link @backstage/backend-plugin-api#UrlReaderService} can handle a * given URL. @@ -123,11 +110,11 @@ export interface ReadTreeResponseFactory { */ stripFirstDirectory?: boolean; }, - ): Promise; + ): Promise; fromZipArchive( options: ReadTreeResponseFactoryOptions, - ): Promise; + ): Promise; fromReadableArray( options: FromReadableArrayOptions, - ): Promise; + ): Promise; } diff --git a/packages/backend-common/src/reading/util.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/util.ts similarity index 100% rename from packages/backend-common/src/reading/util.ts rename to packages/backend-defaults/src/entrypoints/urlReader/lib/util.ts diff --git a/packages/backend-defaults/src/entrypoints/urlReader/urlReaderServiceFactory.ts b/packages/backend-defaults/src/entrypoints/urlReader/urlReaderServiceFactory.ts index 7f404a24b1..dae8d692cb 100644 --- a/packages/backend-defaults/src/entrypoints/urlReader/urlReaderServiceFactory.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/urlReaderServiceFactory.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { UrlReaders } from '@backstage/backend-common'; +import { UrlReaders } from './lib/UrlReaders'; import { coreServices, createServiceFactory, diff --git a/packages/backend-dynamic-feature-service/CHANGELOG.md b/packages/backend-dynamic-feature-service/CHANGELOG.md index 007951a732..51943e952d 100644 --- a/packages/backend-dynamic-feature-service/CHANGELOG.md +++ b/packages/backend-dynamic-feature-service/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/backend-dynamic-feature-service +## 0.2.11-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-node@0.2.6-next.2 + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/plugin-events-backend@0.3.6-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/plugin-app-node@0.1.19-next.2 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.2.11-next.2 ### Patch Changes diff --git a/packages/backend-dynamic-feature-service/package.json b/packages/backend-dynamic-feature-service/package.json index 54a76df87a..fb2646f59b 100644 --- a/packages/backend-dynamic-feature-service/package.json +++ b/packages/backend-dynamic-feature-service/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-dynamic-feature-service", "description": "Backstage dynamic feature service", - "version": "0.2.11-next.2", + "version": "0.2.11-next.3", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-legacy/CHANGELOG.md b/packages/backend-legacy/CHANGELOG.md index 33d3a78ffd..64a7e372db 100644 --- a/packages/backend-legacy/CHANGELOG.md +++ b/packages/backend-legacy/CHANGELOG.md @@ -1,5 +1,47 @@ # example-backend-legacy +## 0.2.99-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.20-next.3 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.17-next.3 + - @backstage/plugin-search-backend-module-elasticsearch@1.4.2-next.3 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.6-next.3 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.4.1-next.3 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.36-next.3 + - @backstage/plugin-search-backend-module-techdocs@0.1.24-next.3 + - @backstage/plugin-search-backend-module-catalog@0.1.25-next.3 + - @backstage/plugin-search-backend-module-explore@0.1.25-next.3 + - @backstage/plugin-search-backend-module-pg@0.5.28-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-kubernetes-backend@0.18.0-next.3 + - @backstage/plugin-permission-backend@0.5.43-next.3 + - @backstage/plugin-scaffolder-backend@1.22.8-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-devtools-backend@0.3.5-next.3 + - @backstage/plugin-techdocs-backend@1.10.6-next.3 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-signals-backend@0.1.5-next.3 + - @backstage/plugin-events-backend@0.3.6-next.3 + - @backstage/plugin-search-backend@1.5.10-next.3 + - @backstage/plugin-proxy-backend@0.5.0-next.3 + - @backstage/plugin-auth-backend@0.22.6-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/plugin-app-backend@0.3.68-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - example-app@0.2.98-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + ## 0.2.99-next.2 ### Patch Changes diff --git a/packages/backend-legacy/package.json b/packages/backend-legacy/package.json index 819a33ea5d..f19b5205ae 100644 --- a/packages/backend-legacy/package.json +++ b/packages/backend-legacy/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-legacy", - "version": "0.2.99-next.2", + "version": "0.2.99-next.3", "backstage": { "role": "backend" }, diff --git a/packages/backend-openapi-utils/CHANGELOG.md b/packages/backend-openapi-utils/CHANGELOG.md index c6cf035fcf..f7a6b90d54 100644 --- a/packages/backend-openapi-utils/CHANGELOG.md +++ b/packages/backend-openapi-utils/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/backend-openapi-utils +## 0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/errors@1.2.4 + ## 0.1.12-next.1 ### Patch Changes diff --git a/packages/backend-openapi-utils/package.json b/packages/backend-openapi-utils/package.json index c50c9ec1f8..38121282c8 100644 --- a/packages/backend-openapi-utils/package.json +++ b/packages/backend-openapi-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-openapi-utils", "description": "OpenAPI typescript support.", - "version": "0.1.12-next.1", + "version": "0.1.12-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index 347f923808..141db6f408 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/backend-plugin-api +## 0.6.19-next.3 + +### Patch Changes + +- 9bdc3e8: In tests, return `null` rather than throwing an error when trying to get the `ExtensionPoint.T` property, so that tests asserting the property are not easily broken. +- b2ee7f3: Deprecated all of the `UrlReader` related type names and replaced them with prefixed versions. Please update your imports. + + - `ReadTreeOptions` was renamed to `UrlReaderReadTreeOptions` + - `ReadTreeResponse` was renamed to `UrlReaderReadTreeResponse` + - `ReadTreeResponseDirOptions` was renamed to `UrlReaderReadTreeResponseDirOptions` + - `ReadTreeResponseFile` was renamed to `UrlReaderReadTreeResponseFile` + - `ReadUrlResponse` was renamed to `UrlReaderReadUrlResponse` + - `ReadUrlOptions` was renamed to `UrlReaderReadUrlOptions` + - `SearchOptions` was renamed to `UrlReaderSearchOptions` + - `SearchResponse` was renamed to `UrlReaderSearchResponse` + - `SearchResponseFile` was renamed to `UrlReaderSearchResponseFile` + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.6.19-next.2 ### Patch Changes diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index 70ab3d8eed..5ba4e758ca 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -466,54 +466,23 @@ export function readSchedulerServiceTaskScheduleDefinitionFromConfig( config: Config, ): SchedulerServiceTaskScheduleDefinition; -// @public -export type ReadTreeOptions = { - filter?( - path: string, - info?: { - size: number; - }, - ): boolean; - etag?: string; - signal?: AbortSignal; - token?: string; -}; +// @public @deprecated (undocumented) +export type ReadTreeOptions = UrlReaderReadTreeOptions; -// @public -export type ReadTreeResponse = { - files(): Promise; - archive(): Promise; - dir(options?: ReadTreeResponseDirOptions): Promise; - etag: string; -}; +// @public @deprecated (undocumented) +export type ReadTreeResponse = UrlReaderReadTreeResponse; -// @public -export type ReadTreeResponseDirOptions = { - targetDir?: string; -}; +// @public @deprecated (undocumented) +export type ReadTreeResponseDirOptions = UrlReaderReadTreeResponseDirOptions; -// @public -export type ReadTreeResponseFile = { - path: string; - content(): Promise; - lastModifiedAt?: Date; -}; +// @public @deprecated (undocumented) +export type ReadTreeResponseFile = UrlReaderReadTreeResponseFile; -// @public -export type ReadUrlOptions = { - etag?: string; - lastModifiedAfter?: Date; - signal?: AbortSignal; - token?: string; -}; +// @public @deprecated (undocumented) +export type ReadUrlOptions = UrlReaderReadUrlOptions; -// @public -export type ReadUrlResponse = { - buffer(): Promise; - stream?(): Readable; - etag?: string; - lastModifiedAt?: Date; -}; +// @public @deprecated (undocumented) +export type ReadUrlResponse = UrlReaderReadUrlResponse; // @public export function resolvePackagePath(name: string, ...paths: string[]): string; @@ -617,25 +586,14 @@ export interface SchedulerServiceTaskScheduleDefinitionConfig { timeout: string | HumanDuration; } -// @public -export type SearchOptions = { - etag?: string; - signal?: AbortSignal; - token?: string; -}; +// @public @deprecated (undocumented) +export type SearchOptions = UrlReaderSearchOptions; -// @public -export type SearchResponse = { - files: SearchResponseFile[]; - etag: string; -}; +// @public @deprecated (undocumented) +export type SearchResponse = UrlReaderSearchResponse; -// @public -export type SearchResponseFile = { - url: string; - content(): Promise; - lastModifiedAt?: Date; -}; +// @public @deprecated (undocumented) +export type SearchResponseFile = UrlReaderSearchResponseFile; // @public (undocumented) export interface ServiceFactory< @@ -680,11 +638,89 @@ export interface TokenManagerService { }>; } +// @public +export type UrlReaderReadTreeOptions = { + filter?( + path: string, + info?: { + size: number; + }, + ): boolean; + etag?: string; + signal?: AbortSignal; + token?: string; +}; + +// @public +export type UrlReaderReadTreeResponse = { + files(): Promise; + archive(): Promise; + dir(options?: UrlReaderReadTreeResponseDirOptions): Promise; + etag: string; +}; + +// @public +export type UrlReaderReadTreeResponseDirOptions = { + targetDir?: string; +}; + +// @public +export type UrlReaderReadTreeResponseFile = { + path: string; + content(): Promise; + lastModifiedAt?: Date; +}; + +// @public +export type UrlReaderReadUrlOptions = { + etag?: string; + lastModifiedAfter?: Date; + signal?: AbortSignal; + token?: string; +}; + +// @public +export type UrlReaderReadUrlResponse = { + buffer(): Promise; + stream?(): Readable; + etag?: string; + lastModifiedAt?: Date; +}; + +// @public +export type UrlReaderSearchOptions = { + etag?: string; + signal?: AbortSignal; + token?: string; +}; + +// @public +export type UrlReaderSearchResponse = { + files: UrlReaderSearchResponseFile[]; + etag: string; +}; + +// @public +export type UrlReaderSearchResponseFile = { + url: string; + content(): Promise; + lastModifiedAt?: Date; +}; + // @public export interface UrlReaderService { - readTree(url: string, options?: ReadTreeOptions): Promise; - readUrl(url: string, options?: ReadUrlOptions): Promise; - search(url: string, options?: SearchOptions): Promise; + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; + search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise; } // @public diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index da33828aae..6e3ad58fb5 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-plugin-api", - "version": "0.6.19-next.2", + "version": "0.6.19-next.3", "description": "Core API used by Backstage backend plugins", "backstage": { "role": "node-library" diff --git a/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts b/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts index 8cb40ff202..085b0b6844 100644 --- a/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts +++ b/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts @@ -27,17 +27,26 @@ export interface UrlReaderService { /** * Reads a single file and return its content. */ - readUrl(url: string, options?: ReadUrlOptions): Promise; + readUrl( + url: string, + options?: UrlReaderReadUrlOptions, + ): Promise; /** * Reads a full or partial file tree. */ - readTree(url: string, options?: ReadTreeOptions): Promise; + readTree( + url: string, + options?: UrlReaderReadTreeOptions, + ): Promise; /** * Searches for a file in a tree using a glob pattern. */ - search(url: string, options?: SearchOptions): Promise; + search( + url: string, + options?: UrlReaderSearchOptions, + ): Promise; } /** @@ -45,7 +54,7 @@ export interface UrlReaderService { * * @public */ -export type ReadUrlOptions = { +export type UrlReaderReadUrlOptions = { /** * An ETag which can be provided to check whether a * {@link UrlReaderService.readUrl} response has changed from a previous execution. @@ -113,7 +122,7 @@ export type ReadUrlOptions = { * * @public */ -export type ReadUrlResponse = { +export type UrlReaderReadUrlResponse = { /** * Returns the data that was read from the remote URL. */ @@ -148,7 +157,7 @@ export type ReadUrlResponse = { * * @public */ -export type ReadTreeOptions = { +export type UrlReaderReadTreeOptions = { /** * A filter that can be used to select which files should be included. * @@ -208,11 +217,11 @@ export type ReadTreeOptions = { }; /** - * Options that control {@link ReadTreeResponse.dir} execution. + * Options that control {@link UrlReaderReadTreeResponse.dir} execution. * * @public */ -export type ReadTreeResponseDirOptions = { +export type UrlReaderReadTreeResponseDirOptions = { /** * The directory to write files to. * @@ -228,12 +237,12 @@ export type ReadTreeResponseDirOptions = { * * @public */ -export type ReadTreeResponse = { +export type UrlReaderReadTreeResponse = { /** * Returns an array of all the files inside the tree, and corresponding * functions to read their content. */ - files(): Promise; + files(): Promise; /** * Returns the tree contents as a binary archive, using a stream. @@ -246,7 +255,7 @@ export type ReadTreeResponse = { * * **NOTE**: It is the responsibility of the caller to remove the directory after use. */ - dir(options?: ReadTreeResponseDirOptions): Promise; + dir(options?: UrlReaderReadTreeResponseDirOptions): Promise; /** * Etag returned by content provider. @@ -263,7 +272,7 @@ export type ReadTreeResponse = { * * @public */ -export type ReadTreeResponseFile = { +export type UrlReaderReadTreeResponseFile = { /** * The filepath of the data. */ @@ -285,7 +294,7 @@ export type ReadTreeResponseFile = { * * @public */ -export type SearchOptions = { +export type UrlReaderSearchOptions = { /** * An etag can be provided to check whether the search response has changed from a previous execution. * @@ -326,11 +335,11 @@ export type SearchOptions = { * * @public */ -export type SearchResponse = { +export type UrlReaderSearchResponse = { /** * The files that matched the search query. */ - files: SearchResponseFile[]; + files: UrlReaderSearchResponseFile[]; /** * A unique identifier of the current remote tree, usually the commit SHA or etag from the target. @@ -343,7 +352,7 @@ export type SearchResponse = { * * @public */ -export type SearchResponseFile = { +export type UrlReaderSearchResponseFile = { /** * The full URL to the file. */ @@ -359,3 +368,49 @@ export type SearchResponseFile = { */ lastModifiedAt?: Date; }; + +/** + * @public + * @deprecated Use `UrlReaderReadTreeOptions` instead + */ +export type ReadTreeOptions = UrlReaderReadTreeOptions; +/** + * @public + * @deprecated Use `UrlReaderReadTreeResponse` instead + */ +export type ReadTreeResponse = UrlReaderReadTreeResponse; +/** + * @public + * @deprecated Use `UrlReaderReadTreeResponseDirOptions` instead + */ +export type ReadTreeResponseDirOptions = UrlReaderReadTreeResponseDirOptions; +/** + * @public + * @deprecated Use `UrlReaderReadTreeResponseFile` instead + */ +export type ReadTreeResponseFile = UrlReaderReadTreeResponseFile; +/** + * @public + * @deprecated Use `UrlReaderReadUrlResponse` instead + */ +export type ReadUrlResponse = UrlReaderReadUrlResponse; +/** + * @public + * @deprecated Use `UrlReaderReadUrlOptions` instead + */ +export type ReadUrlOptions = UrlReaderReadUrlOptions; +/** + * @public + * @deprecated Use `UrlReaderSearchOptions` instead + */ +export type SearchOptions = UrlReaderSearchOptions; +/** + * @public + * @deprecated Use `UrlReaderSearchResponse` instead + */ +export type SearchResponse = UrlReaderSearchResponse; +/** + * @public + * @deprecated Use `UrlReaderSearchResponseFile` instead + */ +export type SearchResponseFile = UrlReaderSearchResponseFile; diff --git a/packages/backend-plugin-api/src/services/definitions/index.ts b/packages/backend-plugin-api/src/services/definitions/index.ts index f22213a285..13175b96ae 100644 --- a/packages/backend-plugin-api/src/services/definitions/index.ts +++ b/packages/backend-plugin-api/src/services/definitions/index.ts @@ -74,6 +74,15 @@ export type { SearchOptions, SearchResponse, SearchResponseFile, + UrlReaderReadTreeOptions, + UrlReaderReadTreeResponse, + UrlReaderReadTreeResponseDirOptions, + UrlReaderReadTreeResponseFile, + UrlReaderReadUrlResponse, + UrlReaderReadUrlOptions, + UrlReaderSearchOptions, + UrlReaderSearchResponse, + UrlReaderSearchResponseFile, UrlReaderService, } from './UrlReaderService'; export type { BackstageUserInfo, UserInfoService } from './UserInfoService'; diff --git a/packages/backend-plugin-api/src/wiring/factories.test.ts b/packages/backend-plugin-api/src/wiring/factories.test.ts index 1fd05a1605..9f11c9b40b 100644 --- a/packages/backend-plugin-api/src/wiring/factories.test.ts +++ b/packages/backend-plugin-api/src/wiring/factories.test.ts @@ -26,7 +26,7 @@ describe('createExtensionPoint', () => { const extensionPoint = createExtensionPoint({ id: 'x' }); expect(extensionPoint).toBeDefined(); expect(extensionPoint.id).toBe('x'); - expect(() => extensionPoint.T).toThrow(); + expect(() => extensionPoint.T).not.toThrow(); expect(String(extensionPoint)).toBe('extensionPoint{x}'); }); }); diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index d0199e775a..5442bab897 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -51,6 +51,10 @@ export function createExtensionPoint( return { id: options.id, get T(): T { + if (process.env.NODE_ENV === 'test') { + // Avoid throwing errors so tests asserting extensions' properties cannot be easily broken + return null as T; + } throw new Error(`tried to read ExtensionPoint.T of ${this}`); }, toString() { diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index cdc54dcec4..aa4c786b65 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-tasks +## 0.5.24-next.3 + +### Patch Changes + +- 1897169: More detailed deprecation messages +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.5.24-next.2 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 029b73a013..f11d0c7788 100644 --- a/packages/backend-tasks/package.json +++ b/packages/backend-tasks/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-tasks", "description": "Common distributed task management library for Backstage backends", - "version": "0.5.24-next.2", + "version": "0.5.24-next.3", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index a15cb095bd..2e3051b85e 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/backend-test-utils +## 0.4.0-next.3 + +### Patch Changes + +- 006b3e8: The type `MockDirectoryOptions` was renamed to `CreateMockDirectoryOptions` so that it's clear these options are exclusive to the mock directory factory. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.4.0-next.2 ### Patch Changes diff --git a/packages/backend-test-utils/api-report.md b/packages/backend-test-utils/api-report.md index f3d790ebfe..cc30dc8f56 100644 --- a/packages/backend-test-utils/api-report.md +++ b/packages/backend-test-utils/api-report.md @@ -45,9 +45,15 @@ import { UserInfoService } from '@backstage/backend-plugin-api'; // @public export function createMockDirectory( - options?: MockDirectoryOptions, + options?: CreateMockDirectoryOptions, ): MockDirectory; +// @public +export interface CreateMockDirectoryOptions { + content?: MockDirectoryContent; + mockOsTmpDir?: boolean; +} + // @public (undocumented) export function isDockerDisabledForTests(): boolean; @@ -136,11 +142,8 @@ export interface MockDirectoryContentOptions { shouldReadAsText?: boolean | ((path: string, buffer: Buffer) => boolean); } -// @public -export interface MockDirectoryOptions { - content?: MockDirectoryContent; - mockOsTmpDir?: boolean; -} +// @public @deprecated (undocumented) +export type MockDirectoryOptions = CreateMockDirectoryOptions; // @public (undocumented) export namespace mockServices { diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 9dc8868f64..40523b1e04 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-test-utils", - "version": "0.4.0-next.2", + "version": "0.4.0-next.3", "description": "Test helpers library for Backstage backends", "backstage": { "role": "node-library" diff --git a/packages/backend-test-utils/src/deprecated.ts b/packages/backend-test-utils/src/deprecated.ts new file mode 100644 index 0000000000..fad7523367 --- /dev/null +++ b/packages/backend-test-utils/src/deprecated.ts @@ -0,0 +1,23 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { CreateMockDirectoryOptions } from './filesystem'; + +/** + * @public + * @deprecated Use `CreateMockDirectoryOptions` from `@backstage/backend-test-utils` instead. + */ +export type MockDirectoryOptions = CreateMockDirectoryOptions; diff --git a/packages/backend-test-utils/src/filesystem/MockDirectory.ts b/packages/backend-test-utils/src/filesystem/MockDirectory.ts index 1c10c77fc6..39518f5d9c 100644 --- a/packages/backend-test-utils/src/filesystem/MockDirectory.ts +++ b/packages/backend-test-utils/src/filesystem/MockDirectory.ts @@ -347,7 +347,7 @@ class MockDirectoryImpl { * * @public */ -export interface MockDirectoryOptions { +export interface CreateMockDirectoryOptions { /** * In addition to creating a temporary directory, also mock `os.tmpdir()` to return the * mock directory path until the end of the test suite. @@ -386,7 +386,7 @@ export interface MockDirectoryOptions { * ``` */ export function createMockDirectory( - options?: MockDirectoryOptions, + options?: CreateMockDirectoryOptions, ): MockDirectory { const tmpDir = process.env.RUNNER_TEMP || os.tmpdir(); // GitHub Actions const root = fs.mkdtempSync(joinPath(tmpDir, 'backstage-tmp-test-dir-')); diff --git a/packages/backend-test-utils/src/filesystem/index.ts b/packages/backend-test-utils/src/filesystem/index.ts index e18b0b55b8..4a045c153d 100644 --- a/packages/backend-test-utils/src/filesystem/index.ts +++ b/packages/backend-test-utils/src/filesystem/index.ts @@ -16,8 +16,8 @@ export { createMockDirectory, + type CreateMockDirectoryOptions, type MockDirectory, - type MockDirectoryOptions, type MockDirectoryContent, type MockDirectoryContentOptions, type MockDirectoryContentCallback, diff --git a/packages/backend-test-utils/src/index.ts b/packages/backend-test-utils/src/index.ts index 72abd908c5..a9feacbacd 100644 --- a/packages/backend-test-utils/src/index.ts +++ b/packages/backend-test-utils/src/index.ts @@ -20,6 +20,7 @@ * @packageDocumentation */ +export * from './deprecated'; export * from './cache'; export * from './database'; export * from './msw'; diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 49c67189fe..2a070cd28a 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,42 @@ # example-backend +## 0.0.27-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/backend-defaults@0.3.0-next.3 + - @backstage/plugin-auth-backend-module-github-provider@0.1.16-next.2 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.17-next.3 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.16-next.2 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.2-next.2 + - @backstage/plugin-auth-backend-module-guest-provider@0.1.5-next.3 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.6-next.3 + - @backstage/plugin-scaffolder-backend-module-github@0.3.0-next.3 + - @backstage/plugin-catalog-backend-module-openapi@0.1.37-next.3 + - @backstage/plugin-search-backend-module-techdocs@0.1.24-next.3 + - @backstage/plugin-search-backend-module-catalog@0.1.25-next.3 + - @backstage/plugin-search-backend-module-explore@0.1.25-next.3 + - @backstage/plugin-notifications-backend@0.3.0-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-kubernetes-backend@0.18.0-next.3 + - @backstage/plugin-permission-backend@0.5.43-next.3 + - @backstage/plugin-scaffolder-backend@1.22.8-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-devtools-backend@0.3.5-next.3 + - @backstage/plugin-techdocs-backend@1.10.6-next.3 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-signals-backend@0.1.5-next.3 + - @backstage/plugin-search-backend@1.5.10-next.3 + - @backstage/plugin-proxy-backend@0.5.0-next.3 + - @backstage/plugin-auth-backend@0.22.6-next.3 + - @backstage/plugin-app-backend@0.3.68-next.3 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/catalog-model@1.5.0 + ## 0.0.27-next.2 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index ba22ddae1e..80a5f5b614 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.0.27-next.2", + "version": "0.0.27-next.3", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli-common/CHANGELOG.md b/packages/cli-common/CHANGELOG.md index 70e98da8dd..7eb1b29e29 100644 --- a/packages/cli-common/CHANGELOG.md +++ b/packages/cli-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/cli-common +## 0.1.14-next.0 + +### Patch Changes + +- 142abb0: The monorepo root check in `findPaths` will now accept a shorthand `workspaces` config in `package.json`, no longer requiring `workspaces.packages`. + ## 0.1.13 ### Patch Changes diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index be91af578c..63b7d56d03 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/cli-common", - "version": "0.1.13", + "version": "0.1.14-next.0", "description": "Common functionality used by cli, backend, and create-app", "backstage": { "role": "node-library" diff --git a/packages/cli-node/CHANGELOG.md b/packages/cli-node/CHANGELOG.md index bc75eb9612..72608fb4c4 100644 --- a/packages/cli-node/CHANGELOG.md +++ b/packages/cli-node/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/cli-node +## 0.2.6-next.2 + +### Patch Changes + +- c328131: Added new plugin metadata fields to `BackstagePackageJson` type. +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.2.6-next.1 ### Patch Changes diff --git a/packages/cli-node/api-report.md b/packages/cli-node/api-report.md index 5b9b8485b8..a16b4c91a4 100644 --- a/packages/cli-node/api-report.md +++ b/packages/cli-node/api-report.md @@ -18,6 +18,9 @@ export interface BackstagePackageJson { backstage?: { role?: PackageRole; moved?: string; + pluginId?: string; + pluginPackage?: string; + pluginPackages?: string[]; }; // (undocumented) bundled?: boolean; diff --git a/packages/cli-node/package.json b/packages/cli-node/package.json index a76d35dc6c..38525c9854 100644 --- a/packages/cli-node/package.json +++ b/packages/cli-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/cli-node", - "version": "0.2.6-next.1", + "version": "0.2.6-next.2", "description": "Node.js library for Backstage CLIs", "backstage": { "role": "node-library" diff --git a/packages/cli-node/src/monorepo/PackageGraph.ts b/packages/cli-node/src/monorepo/PackageGraph.ts index 68ba614c94..afa5eed888 100644 --- a/packages/cli-node/src/monorepo/PackageGraph.ts +++ b/packages/cli-node/src/monorepo/PackageGraph.ts @@ -46,6 +46,21 @@ export interface BackstagePackageJson { backstage?: { role?: PackageRole; moved?: string; + + /** + * The ID of the plugin if this is a plugin package. Must always be set for plugin and module packages, and may be set for library packages. + */ + pluginId?: string; + + /** + * The parent plugin package of a module. Must always and only be set for module packages. + */ + pluginPackage?: string; + + /** + * All packages that are part of the plugin. Must always and only be set for plugin packages and plugin library packages. + */ + pluginPackages?: string[]; }; exports?: JsonValue; diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index b8e2c19747..4d769a6772 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/cli +## 0.26.7-next.3 + +### Patch Changes + +- c328131: Added a new `--publish` flag to the `repo fix` command. This command will validate and if possible generate the metadata required for publishing packages with the Backstage CLI. In addition, a check has been added that the `backstage.pluginId` and `backstage.pluginPackage(s)` fields are present when packing a package for publishing. +- Updated dependencies + - @backstage/cli-node@0.2.6-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/eslint-plugin@0.1.8 + - @backstage/release-manifests@0.0.11 + - @backstage/types@1.1.1 + ## 0.26.7-next.2 ### Patch Changes diff --git a/packages/cli/cli-report.md b/packages/cli/cli-report.md index 7b6df4366c..01b0f7ddec 100644 --- a/packages/cli/cli-report.md +++ b/packages/cli/cli-report.md @@ -442,6 +442,7 @@ Options: Usage: backstage-cli repo fix [options] Options: + --publish --check -h, --help ``` diff --git a/packages/cli/package.json b/packages/cli/package.json index e0212a34ff..bdaf29bc13 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/cli", - "version": "0.26.7-next.2", + "version": "0.26.7-next.3", "description": "CLI for developing Backstage plugins and apps", "backstage": { "role": "cli" diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 3554ddfbef..25a3a4e26c 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -70,6 +70,10 @@ export function registerRepoCommand(program: Command) { command .command('fix') .description('Automatically fix packages in the project') + .option( + '--publish', + 'Enable additional fixes that only apply when publishing packages', + ) .option( '--check', 'Fail if any packages would have been changed by the command', diff --git a/packages/cli/src/commands/pack.ts b/packages/cli/src/commands/pack.ts index 9c101e97fe..8fbbdb3d74 100644 --- a/packages/cli/src/commands/pack.ts +++ b/packages/cli/src/commands/pack.ts @@ -19,8 +19,15 @@ import { revertProductionPack, } from '../lib/packager/productionPack'; import { paths } from '../lib/paths'; +import fs from 'fs-extra'; +import { publishPreflightCheck } from '../lib/publishing'; export const pre = async () => { + publishPreflightCheck({ + dir: paths.targetDir, + packageJson: await fs.readJson(paths.resolveTarget('package.json')), + }); + await productionPack({ packageDir: paths.targetDir }); }; diff --git a/packages/cli/src/commands/repo/fix.ts b/packages/cli/src/commands/repo/fix.ts index 049f5a8416..370e5c0cb1 100644 --- a/packages/cli/src/commands/repo/fix.ts +++ b/packages/cli/src/commands/repo/fix.ts @@ -18,12 +18,14 @@ import { BackstagePackage, BackstagePackageJson, PackageGraph, + PackageRole, PackageRoles, } from '@backstage/cli-node'; import { OptionValues } from 'commander'; import fs from 'fs-extra'; import { resolve as resolvePath, posix, relative as relativePath } from 'path'; import { paths } from '../../lib/paths'; +import { publishPreflightCheck } from '../../lib/publishing'; /** * A mutable object representing a package.json file with potential fixes. @@ -239,14 +241,213 @@ export function createRepositoryFieldFixer() { }; } +function guessPluginId(role: PackageRole, pkgName: string): string | undefined { + switch (role) { + case 'frontend': + case 'frontend-plugin': + return pkgName.match(/plugin-(.*)/)?.[1]; + case 'frontend-plugin-module': + return pkgName.match(/plugin-(.*)-module-/)?.[1]; + case 'backend-plugin': + return pkgName.match(/plugin-(.*)-backend$/)?.[1]; + case 'backend-plugin-module': + return pkgName.match(/plugin-(.*)-backend-module-/)?.[1]; + case 'common-library': + return pkgName.match(/plugin-(.*)-(?:common)$/)?.[1]; + case 'web-library': + return pkgName.match(/plugin-(.*)-(?:react|test-utils)/)?.[1]; + case 'node-library': + return pkgName.match(/plugin-(.*)-(?:node|backend)-?/)?.[1]; + default: + throw new Error( + `Invalid 'backstage.role' field in "${pkgName}", got '${role}'`, + ); + } +} + +export function fixPluginId(pkg: FixablePackage) { + const role = pkg.packageJson.backstage?.role; + if (!role) { + return; + } + + if (role === 'backend' || role === 'frontend' || role === 'cli') { + return; + } + + const currentId = pkg.packageJson.backstage?.pluginId; + if (currentId !== undefined) { + if (typeof currentId !== 'string') { + throw new Error( + `Invalid 'backstage.pluginId' field in "${pkg.packageJson.name}", must be a string`, + ); + } + return; + } + + const guessedPluginId = guessPluginId(role, pkg.packageJson.name); + if ( + !guessedPluginId && + (role === 'frontend-plugin' || + role === 'frontend-plugin-module' || + role === 'backend-plugin' || + role === 'backend-plugin-module') + ) { + const path = relativePath( + paths.targetRoot, + resolvePath(pkg.dir, 'package.json'), + ); + const msg = `Failed to guess plugin ID for "${pkg.packageJson.name}", please set the 'backstage.pluginId' field manually in "${path}"`; + if (role.endsWith('module')) { + const suggestedRole = role.startsWith('frontend') + ? 'web-library' + : 'node-library'; + throw new Error( + `${msg}. It is also possible that this package is not a module, and should use the '${suggestedRole}' role instead.`, + ); + } else { + throw new Error(msg); + } + } + + if (guessedPluginId) { + pkg.packageJson.backstage = { + ...pkg.packageJson.backstage, + pluginId: guessedPluginId, + }; + pkg.changed = true; + } +} + +const backendPluginPackageNameByPluginId = new Map( + [ + 'app', + 'auth', + 'catalog', + 'events', + 'kubernetes', + 'notifications', + 'permission', + 'scaffolder', + 'search', + 'signals', + 'techdocs', + ].map(pluginId => [pluginId, `@backstage/plugin-${pluginId}-backend`]), +); + +const pluginPackageRoles: Array = [ + 'frontend-plugin', + 'backend-plugin', + 'common-library', + 'web-library', + 'node-library', +]; + +export function fixPluginPackages( + pkg: FixablePackage, + repoPackages: FixablePackage[], +) { + const pkgBackstage = pkg.packageJson.backstage; + const role = pkgBackstage?.role; + if (!role) { + return; + } + + if (role === 'backend' || role === 'frontend' || role === 'cli') { + return; + } + + const pluginId = pkgBackstage.pluginId; + if (!pluginId) { + // Might be a plugin-less library, skip + if ( + role === 'common-library' || + role === 'web-library' || + role === 'node-library' + ) { + return; + } + throw new Error( + `Missing 'backstage.pluginId' field in "${pkg.packageJson.name}"`, + ); + } + + if (role === 'backend-plugin-module' || role === 'frontend-plugin-module') { + const targetRole = role.replace('-module', ''); + + // Try to find a plugin package in the same repo, but otherwise fall back to looking up the package name by ID of @backstage/* plugins + const pluginPkgName = + repoPackages.find( + p => + p.packageJson.backstage?.pluginId === pluginId && + p.packageJson.backstage?.role === targetRole, + )?.packageJson.name ?? backendPluginPackageNameByPluginId.get(pluginId); + + if (!pluginPkgName) { + // If we can't find a matching package in the repo but one is declared, skip + if (pkgBackstage.pluginPackage) { + return; + } + const path = relativePath( + paths.targetRoot, + resolvePath(pkg.dir, 'package.json'), + ); + const suggestedRole = + role === 'frontend-plugin-module' ? 'web-library' : 'node-library'; + throw new Error( + `Failed to find plugin package for "${pkg.packageJson.name}", please declare the name of the plugin package that this package is a module for in the 'backstage.pluginPackage' field in "${path}". ` + + `It is also possible that this package is not a module, and should use the '${suggestedRole}' role instead.`, + ); + } + + if (pkgBackstage.pluginPackage !== pluginPkgName) { + pkgBackstage.pluginPackage = pluginPkgName; + pkg.changed = true; + } + } else { + let pluginPackages: string[] | undefined = repoPackages + .filter( + p => + p.packageJson.backstage?.pluginId === pluginId && + pluginPackageRoles.includes(p.packageJson.backstage?.role), + ) + .map(p => p.packageJson.name) + .sort(); + + if (pluginPackages.length === 0) { + pluginPackages = undefined; + } + + if (pkgBackstage.pluginPackages?.join(',') !== pluginPackages?.join(',')) { + pkgBackstage.pluginPackages = pluginPackages; + pkg.changed = true; + } + } +} + +type PackageFixer = (pkg: FixablePackage, packages: FixablePackage[]) => void; + export async function command(opts: OptionValues): Promise { const packages = await readFixablePackages(); const fixRepositoryField = createRepositoryFieldFixer(); - for (const pkg of packages) { - fixPackageExports(pkg); - fixSideEffects(pkg); - fixRepositoryField(pkg); + const fixers: PackageFixer[] = [fixPackageExports, fixSideEffects]; + + // Fixers that only apply to repos that publish packages + if (opts.publish) { + fixers.push( + fixRepositoryField, + fixPluginId, + fixPluginPackages, + // Run the publish preflight check too, to make sure we don't uncover errors during publishing + publishPreflightCheck, + ); + } + + for (const fixer of fixers) { + for (const pkg of packages) { + fixer(pkg, packages); + } } if (opts.check) { diff --git a/packages/cli/src/lib/publishing.ts b/packages/cli/src/lib/publishing.ts new file mode 100644 index 0000000000..20e4241985 --- /dev/null +++ b/packages/cli/src/lib/publishing.ts @@ -0,0 +1,71 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { BackstagePackage } from '@backstage/cli-node'; + +/** + * A basic check that throws if a packages doesn't contain required backstage metadata for publishing + */ +export function publishPreflightCheck(pkg: BackstagePackage): void { + const { name, backstage } = pkg.packageJson; + if (!backstage || !name) { + return; + } + + const { role } = backstage; + + if ( + role === 'backend-plugin' || + role === 'backend-plugin-module' || + role === 'frontend-plugin' || + role === 'frontend-plugin-module' + ) { + if (!backstage.pluginId) { + throw new Error( + `Plugin package ${name} is missing a backstage.pluginId, please run 'backstage-cli repo fix --publish'`, + ); + } + } + + if (role === 'backend-plugin' || role === 'frontend-plugin') { + if (!backstage.pluginPackages) { + throw new Error( + `Plugin package ${name} is missing a backstage.pluginPackages, please run 'backstage-cli repo fix --publish'`, + ); + } + } + + if ( + backstage.pluginId && + (role === 'common-library' || + role === 'node-library' || + role === 'web-library') + ) { + if (!backstage.pluginPackages) { + throw new Error( + `Plugin library package ${name} is missing a backstage.pluginPackages, please run 'backstage-cli repo fix --publish'`, + ); + } + } + + if (role === 'backend-plugin-module' || role === 'frontend-plugin-module') { + if (!backstage.pluginPackage) { + throw new Error( + `Plugin module package ${name} is missing a backstage.pluginPackage, please run 'backstage-cli repo fix --publish'`, + ); + } + } +} diff --git a/packages/codemods/CHANGELOG.md b/packages/codemods/CHANGELOG.md index 58e7434b32..968fd850d3 100644 --- a/packages/codemods/CHANGELOG.md +++ b/packages/codemods/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/codemods +## 0.1.49-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + ## 0.1.48 ### Patch Changes diff --git a/packages/codemods/package.json b/packages/codemods/package.json index e4efd7f614..a490369468 100644 --- a/packages/codemods/package.json +++ b/packages/codemods/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/codemods", - "version": "0.1.48", + "version": "0.1.49-next.0", "description": "A collection of codemods for Backstage projects", "backstage": { "role": "cli" diff --git a/packages/config-loader/CHANGELOG.md b/packages/config-loader/CHANGELOG.md index 2adf312d23..dc11c1f793 100644 --- a/packages/config-loader/CHANGELOG.md +++ b/packages/config-loader/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/config-loader +## 1.8.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.8.0 ### Minor Changes diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 99dba31d4a..1b8c25f14e 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/config-loader", - "version": "1.8.0", + "version": "1.8.1-next.0", "description": "Config loading functionality used by Backstage backend, and CLI", "backstage": { "role": "node-library" diff --git a/packages/core-compat-api/CHANGELOG.md b/packages/core-compat-api/CHANGELOG.md index 852b7303f0..3c307d7a3b 100644 --- a/packages/core-compat-api/CHANGELOG.md +++ b/packages/core-compat-api/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/core-compat-api +## 0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/version-bridge@1.0.8 + ## 0.2.6-next.1 ### Patch Changes diff --git a/packages/core-compat-api/package.json b/packages/core-compat-api/package.json index 9fa663ba7a..a145668efd 100644 --- a/packages/core-compat-api/package.json +++ b/packages/core-compat-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/core-compat-api", - "version": "0.2.6-next.1", + "version": "0.2.6-next.2", "backstage": { "role": "web-library" }, diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index c85c90ae6c..e10d4f3a1f 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/core-components +## 0.14.8-next.2 + +### Patch Changes + +- 59cee81: Use `inherit` variant on OverflowTooltip underlying Typography component. +- 83c4251: Adds icons to status component +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + - @backstage/version-bridge@1.0.8 + ## 0.14.8-next.1 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 43e1713426..34470eca79 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.14.8-next.1", + "version": "0.14.8-next.2", "publishConfig": { "access": "public" }, diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index b9af320d43..a4f3109722 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/create-app +## 0.5.16-next.3 + +### Patch Changes + +- 34daaea: Fixed a broken link to the node-postgres documentation +- 1a212f9: Remove Tech Radar menu item from sidebar of scaffolded app to align with removal of tech-radar plugin from backend +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + ## 0.5.16-next.2 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index bb2e0caf7d..68420fb52b 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.5.16-next.2", + "version": "0.5.16-next.3", "publishConfig": { "access": "public" }, diff --git a/packages/create-app/templates/default-app/app-config.production.yaml b/packages/create-app/templates/default-app/app-config.production.yaml index 05b02acd4f..5532d9067e 100644 --- a/packages/create-app/templates/default-app/app-config.production.yaml +++ b/packages/create-app/templates/default-app/app-config.production.yaml @@ -13,7 +13,7 @@ backend: # all interfaces, the most permissive setting. The right value depends on your specific deployment. listen: ':7007' - # config options: https://node-postgres.com/api/client + # config options: https://node-postgres.com/apis/client database: client: pg connection: diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 303ffaa62c..fda76c1623 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/dev-utils +## 1.0.33-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/app-defaults@1.5.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + ## 1.0.33-next.1 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 29430659d4..fe58a79069 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/dev-utils", - "version": "1.0.33-next.1", + "version": "1.0.33-next.2", "description": "Utilities for developing Backstage plugins.", "backstage": { "role": "web-library" diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index 47cf99d322..fe9af03e43 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,14 @@ # e2e-test +## 0.2.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + - @backstage/create-app@0.5.16-next.3 + - @backstage/errors@1.2.4 + ## 0.2.17-next.1 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 454602e338..c2740a2830 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -1,7 +1,7 @@ { "name": "e2e-test", "description": "E2E test for verifying Backstage packages", - "version": "0.2.17-next.1", + "version": "0.2.17-next.2", "private": true, "backstage": { "role": "cli" diff --git a/packages/frontend-app-api/CHANGELOG.md b/packages/frontend-app-api/CHANGELOG.md index af86bc675b..65b4e9b0b9 100644 --- a/packages/frontend-app-api/CHANGELOG.md +++ b/packages/frontend-app-api/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/frontend-app-api +## 0.7.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + ## 0.7.1-next.1 ### Patch Changes diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index eb5019898c..a2db39277a 100644 --- a/packages/frontend-app-api/package.json +++ b/packages/frontend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-app-api", - "version": "0.7.1-next.1", + "version": "0.7.1-next.2", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-plugin-api/CHANGELOG.md b/packages/frontend-plugin-api/CHANGELOG.md index 790b7f32bb..d0336cae85 100644 --- a/packages/frontend-plugin-api/CHANGELOG.md +++ b/packages/frontend-plugin-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/frontend-plugin-api +## 0.6.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + ## 0.6.6-next.1 ### Patch Changes diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index 6b2e15aa50..9e4e5eac97 100644 --- a/packages/frontend-plugin-api/package.json +++ b/packages/frontend-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-plugin-api", - "version": "0.6.6-next.1", + "version": "0.6.6-next.2", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-test-utils/CHANGELOG.md b/packages/frontend-test-utils/CHANGELOG.md index 2d1d700001..95064be18b 100644 --- a/packages/frontend-test-utils/CHANGELOG.md +++ b/packages/frontend-test-utils/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/frontend-test-utils +## 0.1.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-app-api@0.7.1-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/test-utils@1.5.6-next.2 + - @backstage/types@1.1.1 + ## 0.1.8-next.1 ### Patch Changes diff --git a/packages/frontend-test-utils/package.json b/packages/frontend-test-utils/package.json index 8da8dbc0fc..2671165b13 100644 --- a/packages/frontend-test-utils/package.json +++ b/packages/frontend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-test-utils", - "version": "0.1.8-next.1", + "version": "0.1.8-next.2", "backstage": { "role": "web-library" }, diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 1f9bc9f9fe..703eccbdad 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/integration-react +## 1.1.28-next.1 + +### Patch Changes + +- 23ee9ab: Fix AWS CodeCommit integration by allowing to change the host +- Updated dependencies + - @backstage/integration@1.12.0-next.1 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 1.1.28-next.0 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index e7d653b09a..79cf7694fd 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/integration-react", - "version": "1.1.28-next.0", + "version": "1.1.28-next.1", "description": "Frontend package for managing integrations towards external systems", "backstage": { "role": "web-library" diff --git a/packages/integration-react/src/api/ScmIntegrationsApi.test.ts b/packages/integration-react/src/api/ScmIntegrationsApi.test.ts index 0a1f1b1b8f..fb53bbdb12 100644 --- a/packages/integration-react/src/api/ScmIntegrationsApi.test.ts +++ b/packages/integration-react/src/api/ScmIntegrationsApi.test.ts @@ -26,6 +26,6 @@ describe('scmIntegrationsApiRef', () => { it('should be instantiated', () => { const i = ScmIntegrationsApi.fromConfig(new ConfigReader({})); - expect(i.list().length).toBe(7); // The default ones + expect(i.list().length).toBe(6); // The default ones }); }); diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index aea2956f17..928e62d67f 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/integration +## 1.12.0-next.1 + +### Minor Changes + +- be1014d: **BREAKING** Removed deprecated code from when casing was changed from `GitHub` to `Github` nearly two years ago. The following items have been removed: + + - `getGitHubFileFetchUrl` (use `getGithubFileFetchUrl` instead) + - `GitHubIntegrationConfig` (use `GithubIntegrationConfig` instead) + - `GitHubIntegration` (use `GithubIntegration` instead) + - `readGitHubIntegrationConfig` (use `readGithubIntegrationConfig` instead) + - `readGitHubIntegrationConfigs` (use `readGithubIntegrationConfigs` instead) + - `replaceGitHubUrlType` (use `replaceGithubUrlType` instead) + +### Patch Changes + +- 23ee9ab: Fix AWS CodeCommit integration by allowing to change the host +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 1.12.0-next.0 ### Minor Changes diff --git a/packages/integration/api-report.md b/packages/integration/api-report.md index 4945847751..f9a8426cf5 100644 --- a/packages/integration/api-report.md +++ b/packages/integration/api-report.md @@ -35,6 +35,7 @@ export type AwsCodeCommitIntegrationConfig = { secretAccessKey?: string; roleArn?: string; externalId?: string; + region: string; }; // @public @@ -325,7 +326,7 @@ export type GerritIntegrationConfig = { host: string; baseUrl?: string; cloneUrl?: string; - gitilesBaseUrl?: string; + gitilesBaseUrl: string; username?: string; password?: string; }; @@ -479,9 +480,6 @@ export function getGiteaRequestOptions(config: GiteaIntegrationConfig): { headers?: Record; }; -// @public @deprecated (undocumented) -export const getGitHubFileFetchUrl: typeof getGithubFileFetchUrl; - // @public export function getGithubFileFetchUrl( url: string, @@ -604,15 +602,6 @@ export interface GithubCredentialsProvider { // @public export type GithubCredentialType = 'app' | 'token'; -// @public @deprecated (undocumented) -export class GitHubIntegration extends GithubIntegration { - constructor(integrationConfig: GitHubIntegrationConfig); - // (undocumented) - get config(): GitHubIntegrationConfig; - // (undocumented) - static factory: ScmIntegrationsFactory; -} - // @public export class GithubIntegration implements ScmIntegration { constructor(integrationConfig: GithubIntegrationConfig); @@ -636,9 +625,6 @@ export class GithubIntegration implements ScmIntegration { get type(): string; } -// @public @deprecated (undocumented) -export type GitHubIntegrationConfig = GithubIntegrationConfig; - // @public export type GithubIntegrationConfig = { host: string; @@ -877,17 +863,11 @@ export function readGerritIntegrationConfigs( // @public export function readGiteaConfig(config: Config): GiteaIntegrationConfig; -// @public @deprecated (undocumented) -export const readGitHubIntegrationConfig: typeof readGithubIntegrationConfig; - // @public export function readGithubIntegrationConfig( config: Config, ): GithubIntegrationConfig; -// @public @deprecated (undocumented) -export const readGitHubIntegrationConfigs: typeof readGithubIntegrationConfigs; - // @public export function readGithubIntegrationConfigs( configs: Config[], @@ -911,9 +891,6 @@ export function readGoogleGcsIntegrationConfig( // @public export function readHarnessConfig(config: Config): HarnessIntegrationConfig; -// @public @deprecated (undocumented) -export const replaceGitHubUrlType: typeof replaceGithubUrlType; - // @public export function replaceGithubUrlType( url: string, diff --git a/packages/integration/config.d.ts b/packages/integration/config.d.ts index 58dd9153c4..1e4c8d373d 100644 --- a/packages/integration/config.d.ts +++ b/packages/integration/config.d.ts @@ -151,6 +151,11 @@ export interface Config { * @visibility frontend */ baseUrl?: string; + /** + * The gitiles base url. + * @visibility frontend + */ + gitilesBaseUrl: string; /** * The base url for cloning repos. * @visibility frontend diff --git a/packages/integration/package.json b/packages/integration/package.json index ec5944ccbd..9adc2519f1 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/integration", - "version": "1.12.0-next.0", + "version": "1.12.0-next.1", "description": "Helpers for managing integrations towards external systems", "backstage": { "role": "common-library" diff --git a/packages/integration/src/awsCodeCommit/AwsCodeCommitIntegration.test.ts b/packages/integration/src/awsCodeCommit/AwsCodeCommitIntegration.test.ts index 14b3c6c73b..76ccd59af6 100644 --- a/packages/integration/src/awsCodeCommit/AwsCodeCommitIntegration.test.ts +++ b/packages/integration/src/awsCodeCommit/AwsCodeCommitIntegration.test.ts @@ -30,30 +30,29 @@ describe('AwsCodeCommitIntegration', () => { secretAccessKey: ' secret key ', roleArn: `role arn`, externalId: `external id`, + region: `region`, }, ], }, }), }); expect(integrations.list().length).toBe(1); // including default - expect(integrations.list()[0].config.host).toBe(AMAZON_AWS_CODECOMMIT_HOST); + expect(integrations.list()[0].config.host).toBe( + `region.${AMAZON_AWS_CODECOMMIT_HOST}`, + ); expect(integrations.list()[0].config.accessKeyId).toBe('access key'); expect(integrations.list()[0].config.secretAccessKey).toBe('secret key'); expect(integrations.list()[0].config.roleArn).toBe(`role arn`); expect(integrations.list()[0].config.externalId).toBe(`external id`); + expect(integrations.list()[0].config.region).toBe(`region`); }); - it('has a working factory with default values when no data provided', () => { + it('does not have a working factory with default values when no data provided', () => { const integrations = AwsCodeCommitIntegration.factory({ config: new ConfigReader({ integrations: {}, }), }); - expect(integrations.list().length).toBe(1); // including default - expect(integrations.list()[0].config.host).toBe(AMAZON_AWS_CODECOMMIT_HOST); - expect(integrations.list()[0].config.accessKeyId).toBeUndefined(); - expect(integrations.list()[0].config.secretAccessKey).toBeUndefined(); - expect(integrations.list()[0].config.roleArn).toBeUndefined(); - expect(integrations.list()[0].config.externalId).toBeUndefined(); + expect(integrations.list().length).toBe(0); // including default }); it('returns the basics', () => { diff --git a/packages/integration/src/awsCodeCommit/config.test.ts b/packages/integration/src/awsCodeCommit/config.test.ts index 217485b45e..5bac85545c 100644 --- a/packages/integration/src/awsCodeCommit/config.test.ts +++ b/packages/integration/src/awsCodeCommit/config.test.ts @@ -29,9 +29,12 @@ describe('readAwsCodeCommitIntegrationConfig', () => { } it('reads all values (default)', () => { - const output = readAwsCodeCommitIntegrationConfig(buildConfig({})); + const output = readAwsCodeCommitIntegrationConfig( + buildConfig({ region: 'us-east-1' }), + ); expect(output).toEqual({ - host: AMAZON_AWS_CODECOMMIT_HOST, + host: `us-east-1.${AMAZON_AWS_CODECOMMIT_HOST}`, + region: `us-east-1`, }); }); @@ -42,14 +45,16 @@ describe('readAwsCodeCommitIntegrationConfig', () => { secretAccessKey: 'fake-secret-key', externalId: 'fake-external-id', roleArn: 'fake-role-arn', + region: 'fake-region', }), ); expect(output).toEqual({ - host: AMAZON_AWS_CODECOMMIT_HOST, + host: `fake-region.${AMAZON_AWS_CODECOMMIT_HOST}`, accessKeyId: 'fake-key', secretAccessKey: 'fake-secret-key', externalId: 'fake-external-id', roleArn: 'fake-role-arn', + region: 'fake-region', }); }); }); @@ -70,6 +75,7 @@ describe('readAwsCodeCommitIntegrationConfigs', () => { secretAccessKey: 'secret', externalId: 'external-id', roleArn: 'role-arn', + region: 'region', }, ]), ); @@ -79,15 +85,12 @@ describe('readAwsCodeCommitIntegrationConfigs', () => { secretAccessKey: 'secret', externalId: 'external-id', roleArn: 'role-arn', + region: 'region', }); }); it('adds a default entry when missing', () => { const output = readAwsCodeCommitIntegrationConfigs(buildConfig([])); - expect(output).toEqual([ - { - host: AMAZON_AWS_CODECOMMIT_HOST, - }, - ]); + expect(output).toEqual([]); }); }); diff --git a/packages/integration/src/awsCodeCommit/config.ts b/packages/integration/src/awsCodeCommit/config.ts index 0ebd62519f..83c449ad16 100644 --- a/packages/integration/src/awsCodeCommit/config.ts +++ b/packages/integration/src/awsCodeCommit/config.ts @@ -48,6 +48,11 @@ export type AwsCodeCommitIntegrationConfig = { * (Optional) External ID to use when assuming role */ externalId?: string; + + /** + * region to use for AWS (default: us-east-1) + */ + region: string; }; /** @@ -64,7 +69,10 @@ export function readAwsCodeCommitIntegrationConfig( const secretAccessKey = config.getOptionalString('secretAccessKey')?.trim(); const roleArn = config.getOptionalString('roleArn'); const externalId = config.getOptionalString('externalId'); - const host = AMAZON_AWS_CODECOMMIT_HOST; + const region = config.getString('region'); + const host = + config.getOptionalString('host') || + `${region}.${AMAZON_AWS_CODECOMMIT_HOST}`; return { host, @@ -72,6 +80,7 @@ export function readAwsCodeCommitIntegrationConfig( secretAccessKey, roleArn, externalId, + region, }; } @@ -85,16 +94,5 @@ export function readAwsCodeCommitIntegrationConfig( export function readAwsCodeCommitIntegrationConfigs( configs: Config[], ): AwsCodeCommitIntegrationConfig[] { - // First read all the explicit integrations - const result = configs.map(readAwsCodeCommitIntegrationConfig); - - // If no explicit console.aws.amazon.com integration was added, put one in the list as - // a convenience - if (!result.some(c => c.host === AMAZON_AWS_CODECOMMIT_HOST)) { - result.push({ - host: AMAZON_AWS_CODECOMMIT_HOST, - }); - } - - return result; + return configs.map(readAwsCodeCommitIntegrationConfig); } diff --git a/packages/integration/src/gerrit/GerritIntegration.test.ts b/packages/integration/src/gerrit/GerritIntegration.test.ts index 1a7bac5be6..1878744f68 100644 --- a/packages/integration/src/gerrit/GerritIntegration.test.ts +++ b/packages/integration/src/gerrit/GerritIntegration.test.ts @@ -27,6 +27,8 @@ describe('GerritIntegration', () => { host: 'gerrit-review.example.com', username: 'gerrituser', baseUrl: 'https://gerrit-review.example.com/gerrit', + gitilesBaseUrl: + 'https://gerrit-review.example.com/gerrit/plugins/gitiles', password: '1234', }, ], diff --git a/packages/integration/src/gerrit/config.test.ts b/packages/integration/src/gerrit/config.test.ts index 583687bd23..be31193f2e 100644 --- a/packages/integration/src/gerrit/config.test.ts +++ b/packages/integration/src/gerrit/config.test.ts @@ -76,13 +76,14 @@ describe('readGerritIntegrationConfig', () => { const output = readGerritIntegrationConfig( buildConfig({ host: 'a.com', + gitilesBaseUrl: 'https://a.com/gerrit/plugins/gitiles', }), ); expect(output).toEqual({ host: 'a.com', baseUrl: 'https://a.com', cloneUrl: 'https://a.com', - gitilesBaseUrl: 'https://a.com', + gitilesBaseUrl: 'https://a.com/gerrit/plugins/gitiles', username: undefined, password: undefined, }); @@ -106,6 +107,7 @@ describe('readGerritIntegrationConfig', () => { await buildFrontendConfig({ host: 'a.com', baseUrl: 'https://a.com/gerrit', + gitilesBaseUrl: 'https://a.com/gerrit/plugins/gitiles', username: 'u', password: 'p', }), @@ -114,7 +116,7 @@ describe('readGerritIntegrationConfig', () => { host: 'a.com', baseUrl: 'https://a.com/gerrit', cloneUrl: 'https://a.com/gerrit', - gitilesBaseUrl: 'https://a.com', + gitilesBaseUrl: 'https://a.com/gerrit/plugins/gitiles', }); }); }); @@ -130,12 +132,14 @@ describe('readGerritIntegrationConfigs', () => { { host: 'a.com', baseUrl: 'https://a.com/api', + gitilesBaseUrl: 'https://a.com/gerrit/plugins/gitiles', username: 'u', password: 'p', }, { host: 'b.com', baseUrl: 'https://b.com/api', + gitilesBaseUrl: 'https://b.com/gerrit/plugins/gitiles', }, ]), ); @@ -144,7 +148,7 @@ describe('readGerritIntegrationConfigs', () => { host: 'a.com', baseUrl: 'https://a.com/api', cloneUrl: 'https://a.com/api', - gitilesBaseUrl: 'https://a.com', + gitilesBaseUrl: 'https://a.com/gerrit/plugins/gitiles', username: 'u', password: 'p', }, @@ -152,7 +156,7 @@ describe('readGerritIntegrationConfigs', () => { host: 'b.com', baseUrl: 'https://b.com/api', cloneUrl: 'https://b.com/api', - gitilesBaseUrl: 'https://b.com', + gitilesBaseUrl: 'https://b.com/gerrit/plugins/gitiles', username: undefined, password: undefined, }, diff --git a/packages/integration/src/gerrit/config.ts b/packages/integration/src/gerrit/config.ts index c3ee3aaa24..a5fdc8dabf 100644 --- a/packages/integration/src/gerrit/config.ts +++ b/packages/integration/src/gerrit/config.ts @@ -45,12 +45,11 @@ export type GerritIntegrationConfig = { cloneUrl?: string; /** - * Optional base url for Gitiles. This is needed for creating a valid + * Base url for Gitiles. This is needed for creating a valid * user-friendly url that can be used for browsing the content of the - * provider. If not set a default value will be created in the same way - * as the "baseUrl" option. + * provider. */ - gitilesBaseUrl?: string; + gitilesBaseUrl: string; /** * The username to use for requests to gerrit. @@ -76,7 +75,7 @@ export function readGerritIntegrationConfig( const host = config.getString('host'); let baseUrl = config.getOptionalString('baseUrl'); let cloneUrl = config.getOptionalString('cloneUrl'); - let gitilesBaseUrl = config.getOptionalString('gitilesBaseUrl'); + let gitilesBaseUrl = config.getString('gitilesBaseUrl'); const username = config.getOptionalString('username'); const password = config.getOptionalString('password')?.trim(); @@ -92,7 +91,7 @@ export function readGerritIntegrationConfig( throw new Error( `Invalid Gerrit integration config, '${cloneUrl}' is not a valid cloneUrl`, ); - } else if (gitilesBaseUrl && !isValidUrl(gitilesBaseUrl)) { + } else if (!isValidUrl(gitilesBaseUrl)) { throw new Error( `Invalid Gerrit integration config, '${gitilesBaseUrl}' is not a valid gitilesBaseUrl`, ); diff --git a/packages/integration/src/gerrit/core.test.ts b/packages/integration/src/gerrit/core.test.ts index 5fbb41763a..c2bf5d3ed2 100644 --- a/packages/integration/src/gerrit/core.test.ts +++ b/packages/integration/src/gerrit/core.test.ts @@ -134,9 +134,11 @@ describe('gerrit core', () => { host: 'gerrit.com', username: 'U', password: 'P', + gitilesBaseUrl: 'https://gerrit.com/gerrit/plugins/gitiles', }; const anonymousRequest: GerritIntegrationConfig = { host: 'gerrit.com', + gitilesBaseUrl: 'https://gerrit.com/gerrit/plugins/gitiles', }; expect( (getGerritRequestOptions(authRequest).headers as any).Authorization, diff --git a/packages/integration/src/github/deprecated.ts b/packages/integration/src/github/deprecated.ts deleted file mode 100644 index 127040c1a7..0000000000 --- a/packages/integration/src/github/deprecated.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - GithubIntegrationConfig, - readGithubIntegrationConfig, - readGithubIntegrationConfigs, -} from './config'; -import { getGithubFileFetchUrl } from './core'; -import { GithubIntegration, replaceGithubUrlType } from './GithubIntegration'; -import { ScmIntegrationsFactory } from '../types'; - -/** - * @public - * @deprecated Use {@link getGithubFileFetchUrl} instead. - */ -export const getGitHubFileFetchUrl = getGithubFileFetchUrl; - -/** - * @public - * @deprecated Use {@link GithubIntegrationConfig} instead. - */ -export type GitHubIntegrationConfig = GithubIntegrationConfig; - -/** - * @public - * @deprecated Use {@link GithubIntegration} instead. - */ -export class GitHubIntegration extends GithubIntegration { - static factory: ScmIntegrationsFactory = - GithubIntegration.factory; - - constructor(integrationConfig: GitHubIntegrationConfig) { - super(integrationConfig as GithubIntegrationConfig); - } - - get config(): GitHubIntegrationConfig { - return super.config as GitHubIntegrationConfig; - } -} - -/** - * @public - * @deprecated Use {@link readGithubIntegrationConfig} instead. - */ -export const readGitHubIntegrationConfig = readGithubIntegrationConfig; - -/** - * @public - * @deprecated Use {@link readGithubIntegrationConfigs} instead. - */ -export const readGitHubIntegrationConfigs = readGithubIntegrationConfigs; - -/** - * @public - * @deprecated Use {@link replaceGithubUrlType} instead. - */ -export const replaceGitHubUrlType = replaceGithubUrlType; diff --git a/packages/integration/src/github/index.ts b/packages/integration/src/github/index.ts index 816b0d2ff9..ea6f18f2e0 100644 --- a/packages/integration/src/github/index.ts +++ b/packages/integration/src/github/index.ts @@ -31,5 +31,3 @@ export type { GithubCredentialType, } from './types'; export { GithubIntegration, replaceGithubUrlType } from './GithubIntegration'; - -export * from './deprecated'; diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 986a814a14..1a303a9c07 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/repo-tools +## 0.9.1-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-node@0.2.6-next.2 + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + ## 0.9.1-next.2 ### Patch Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 9f83572bfb..905d783369 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/repo-tools", "description": "CLI for Backstage repo tooling ", - "version": "0.9.1-next.2", + "version": "0.9.1-next.3", "publishConfig": { "access": "public" }, diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index d61570eed3..f35df3e326 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,24 @@ # techdocs-cli-embedded-app +## 0.2.97-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-techdocs@1.10.6-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/cli@0.26.7-next.3 + - @backstage/app-defaults@1.5.6-next.2 + - @backstage/test-utils@1.5.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + ## 0.2.97-next.1 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 9e7d0b9c04..b19ad856c8 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.97-next.1", + "version": "0.2.97-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index 5192493290..59f4d5f7d3 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,16 @@ # @techdocs/cli +## 1.8.12-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-techdocs-node@1.12.5-next.3 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + ## 1.8.12-next.2 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index fe0d9e209f..74c90b4854 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "Utility CLI for managing TechDocs sites in Backstage.", - "version": "1.8.12-next.2", + "version": "1.8.12-next.3", "publishConfig": { "access": "public" }, diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index 3864b3549c..ada9ea4654 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/test-utils +## 1.5.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + ## 1.5.6-next.1 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 5e61ff8cf4..7ab7a73af7 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/test-utils", - "version": "1.5.6-next.1", + "version": "1.5.6-next.2", "description": "Utilities to test Backstage plugins and apps.", "backstage": { "role": "web-library" diff --git a/packages/yarn-plugin/CHANGELOG.md b/packages/yarn-plugin/CHANGELOG.md new file mode 100644 index 0000000000..6878933d9f --- /dev/null +++ b/packages/yarn-plugin/CHANGELOG.md @@ -0,0 +1,9 @@ +# yarn-plugin-backstage + +## 0.0.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.14-next.0 + - @backstage/release-manifests@0.0.11 diff --git a/packages/yarn-plugin/package.json b/packages/yarn-plugin/package.json index b6b97c0475..7ff1b72fd8 100644 --- a/packages/yarn-plugin/package.json +++ b/packages/yarn-plugin/package.json @@ -1,6 +1,6 @@ { "name": "yarn-plugin-backstage", - "version": "0.0.0", + "version": "0.0.1-next.0", "description": "Yarn plugin for working with Backstage monorepos", "backstage": { "role": "node-library" diff --git a/plugins/api-docs-module-protoc-gen-doc/CHANGELOG.md b/plugins/api-docs-module-protoc-gen-doc/CHANGELOG.md index 31e62e11eb..9c0e32964e 100644 --- a/plugins/api-docs-module-protoc-gen-doc/CHANGELOG.md +++ b/plugins/api-docs-module-protoc-gen-doc/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-api-docs-module-protoc-gen-doc +## 0.1.7-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. + ## 0.1.6 ### Patch Changes diff --git a/plugins/api-docs-module-protoc-gen-doc/package.json b/plugins/api-docs-module-protoc-gen-doc/package.json index e90fa57137..3cab38359d 100644 --- a/plugins/api-docs-module-protoc-gen-doc/package.json +++ b/plugins/api-docs-module-protoc-gen-doc/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-api-docs-module-protoc-gen-doc", - "version": "0.1.6", + "version": "0.1.7-next.0", "description": "Additional functionalities for the api-docs plugin that renders the output of the protoc-gen-doc", "backstage": { - "role": "frontend-plugin-module" + "role": "frontend-plugin-module", + "pluginId": "api-docs", + "pluginPackage": "@backstage/plugin-api-docs" }, "publishConfig": { "access": "public", diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index 8c6c348a34..b8284e69d7 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-api-docs +## 0.11.6-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 0.11.6-next.1 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 04965a8796..47526fb80d 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,9 +1,13 @@ { "name": "@backstage/plugin-api-docs", - "version": "0.11.6-next.1", + "version": "0.11.6-next.2", "description": "A Backstage plugin that helps represent API entities in the frontend", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "api-docs", + "pluginPackages": [ + "@backstage/plugin-api-docs" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index ea9a21be29..2dc4f3d1ef 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-app-backend +## 0.3.68-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-app-node@0.1.19-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.3.68-next.2 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 8c61abfe30..dd6a726a00 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,18 +1,35 @@ { "name": "@backstage/plugin-app-backend", + "version": "0.3.68-next.3", "description": "A Backstage backend plugin that serves the Backstage frontend app", - "version": "0.3.68-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin", + "pluginId": "app", + "pluginPackages": [ + "@backstage/plugin-app-backend", + "@backstage/plugin-app-node" + ] + }, "publishConfig": { "access": "public" }, + "keywords": [ + "backstage" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/app-backend" + }, + "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": [ @@ -23,26 +40,20 @@ ] } }, - "backstage": { - "role": "backend-plugin" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/app-backend" - }, - "keywords": [ - "backstage" + "files": [ + "dist", + "config.d.ts", + "migrations/**/*.{js,d.ts}", + "static" ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -74,11 +85,5 @@ "node-fetch": "^2.6.7", "supertest": "^6.1.3" }, - "configSchema": "config.d.ts", - "files": [ - "dist", - "config.d.ts", - "migrations/**/*.{js,d.ts}", - "static" - ] + "configSchema": "config.d.ts" } diff --git a/plugins/app-node/CHANGELOG.md b/plugins/app-node/CHANGELOG.md index a9dc3aeb8a..e719fb306e 100644 --- a/plugins/app-node/CHANGELOG.md +++ b/plugins/app-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-app-node +## 0.1.19-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/config-loader@1.8.1-next.0 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/app-node/package.json b/plugins/app-node/package.json index e6ece010e1..94566895df 100644 --- a/plugins/app-node/package.json +++ b/plugins/app-node/package.json @@ -1,10 +1,15 @@ { "name": "@backstage/plugin-app-node", + "version": "0.1.19-next.2", "description": "Node.js library for the app plugin", - "version": "0.1.19-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "node-library", + "pluginId": "app", + "pluginPackages": [ + "@backstage/plugin-app-backend", + "@backstage/plugin-app-node" + ] + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,28 +20,28 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/app-node" }, - "backstage": { - "role": "node-library" - }, - "scripts": { - "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", - "clean": "backstage-cli package clean", - "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" - }, - "devDependencies": { - "@backstage/cli": "workspace:^" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", "files": [ "dist" ], + "scripts": { + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "test": "backstage-cli package test" + }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", "@backstage/config-loader": "workspace:^", "@types/express": "^4.17.6", "express": "^4.17.1", "fs-extra": "^11.2.0" + }, + "devDependencies": { + "@backstage/cli": "workspace:^" } } diff --git a/plugins/app-visualizer/CHANGELOG.md b/plugins/app-visualizer/CHANGELOG.md index 837d248762..7fb8f46223 100644 --- a/plugins/app-visualizer/CHANGELOG.md +++ b/plugins/app-visualizer/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-app-visualizer +## 0.1.7-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 0.1.7-next.1 ### Patch Changes diff --git a/plugins/app-visualizer/package.json b/plugins/app-visualizer/package.json index eea4f630de..6ab7831e09 100644 --- a/plugins/app-visualizer/package.json +++ b/plugins/app-visualizer/package.json @@ -1,9 +1,13 @@ { "name": "@backstage/plugin-app-visualizer", - "version": "0.1.7-next.1", + "version": "0.1.7-next.2", "description": "Visualizes the Backstage app structure", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "app-visualizer", + "pluginPackages": [ + "@backstage/plugin-app-visualizer" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md b/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md index 446557002c..e5cbd93934 100644 --- a/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-auth-backend-module-atlassian-provider +## 0.2.0-next.2 + +### Minor Changes + +- 8efc6cf: **BREAKING**: The `scope` and `scopes` config options have been removed and replaced by the standard `additionalScopes` config. In addition, the `offline_access`, `read:jira-work`, and `read:jira-user` scopes have been set to required and will always be present. + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-atlassian-provider/config.d.ts b/plugins/auth-backend-module-atlassian-provider/config.d.ts index 57def03aab..d2c8a249c1 100644 --- a/plugins/auth-backend-module-atlassian-provider/config.d.ts +++ b/plugins/auth-backend-module-atlassian-provider/config.d.ts @@ -27,7 +27,7 @@ export interface Config { clientSecret: string; audience?: string; callbackUrl?: string; - scope?: string; + additionalScopes?: string | string[]; }; }; }; diff --git a/plugins/auth-backend-module-atlassian-provider/package.json b/plugins/auth-backend-module-atlassian-provider/package.json index 956d010f1d..f0b847d6b7 100644 --- a/plugins/auth-backend-module-atlassian-provider/package.json +++ b/plugins/auth-backend-module-atlassian-provider/package.json @@ -1,10 +1,12 @@ { "name": "@backstage/plugin-auth-backend-module-atlassian-provider", + "version": "0.2.0-next.2", "description": "The atlassian-provider backend module for the auth plugin.", - "version": "0.1.11-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +17,21 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-atlassian-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -41,9 +47,5 @@ "@backstage/plugin-auth-backend": "workspace:^", "supertest": "^6.3.3" }, - "configSchema": "config.d.ts", - "files": [ - "dist", - "config.d.ts" - ] + "configSchema": "config.d.ts" } diff --git a/plugins/auth-backend-module-atlassian-provider/src/authenticator.ts b/plugins/auth-backend-module-atlassian-provider/src/authenticator.ts index b31de13134..0ced9cf831 100644 --- a/plugins/auth-backend-module-atlassian-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-atlassian-provider/src/authenticator.ts @@ -26,15 +26,20 @@ import { Strategy as AtlassianStrategy } from 'passport-atlassian-oauth2'; export const atlassianAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: PassportOAuthAuthenticatorHelper.defaultProfileTransform, + scopes: { + required: ['offline_access', 'read:jira-work', 'read:jira-user'], + }, initialize({ callbackUrl, config }) { const clientId = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); - const scope = - config.getOptionalString('scope') ?? - config.getOptionalString('scopes') ?? - 'offline_access read:jira-work read:jira-user'; const baseUrl = 'https://auth.atlassian.com'; + if (config.has('scope') || config.has('scopes')) { + throw new Error( + 'The atlassian provider no longer supports the "scope" or "scopes" configuration options. Please use the "additionalScopes" option instead.', + ); + } + return PassportOAuthAuthenticatorHelper.from( new AtlassianStrategy( { @@ -45,7 +50,6 @@ export const atlassianAuthenticator = createOAuthAuthenticator({ authorizationURL: `${baseUrl}/authorize`, tokenURL: `${baseUrl}/oauth/token`, profileURL: `${baseUrl}/api/v4/user`, - scope, }, ( accessToken: string, diff --git a/plugins/auth-backend-module-atlassian-provider/src/module.test.ts b/plugins/auth-backend-module-atlassian-provider/src/module.test.ts index 08b84ad165..7b92218d56 100644 --- a/plugins/auth-backend-module-atlassian-provider/src/module.test.ts +++ b/plugins/auth-backend-module-atlassian-provider/src/module.test.ts @@ -75,7 +75,8 @@ describe('authModuleAtlassianProvider', () => { nonce: decodeURIComponent(nonceCookie.value), }); }); - it('should start with and use custom scopes from scope config field', async () => { + + it('should start with and use custom scopes from additionalScopes config field', async () => { const { server } = await startTestBackend({ features: [ import('@backstage/plugin-auth-backend'), @@ -91,7 +92,10 @@ describe('authModuleAtlassianProvider', () => { development: { clientId: 'my-client-id', clientSecret: 'my-client-secret', - scope: 'offline_access read:filter:jira read:jira-work', + additionalScopes: [ + 'read:filter:jira', + 'read:jira-work', // already required + ], }, }, }, @@ -123,7 +127,7 @@ describe('authModuleAtlassianProvider', () => { client_id: 'my-client-id', redirect_uri: `http://localhost:${server.port()}/api/auth/atlassian/handler/frame`, state: expect.any(String), - scope: 'offline_access read:filter:jira read:jira-work', + scope: 'offline_access read:jira-work read:jira-user read:filter:jira', }); expect(decodeOAuthState(startUrl.searchParams.get('state')!)).toEqual({ @@ -131,60 +135,35 @@ describe('authModuleAtlassianProvider', () => { nonce: decodeURIComponent(nonceCookie.value), }); }); - it('should start with and use custom scopes from scopes config field for backward compatibility', async () => { - const { server } = await startTestBackend({ - features: [ - import('@backstage/plugin-auth-backend'), - authModuleAtlassianProvider, - mockServices.rootConfig.factory({ - data: { - app: { - baseUrl: 'http://localhost:3000', - }, - auth: { - providers: { - atlassian: { - development: { - clientId: 'my-client-id', - clientSecret: 'my-client-secret', - scopes: 'offline_access read:filter:jira read:jira-work', + + it('should fail to start with scope or scopes config', async () => { + await expect( + startTestBackend({ + features: [ + import('@backstage/plugin-auth-backend'), + authModuleAtlassianProvider, + mockServices.rootConfig.factory({ + data: { + app: { + baseUrl: 'http://localhost:3000', + }, + auth: { + providers: { + atlassian: { + development: { + clientId: 'my-client-id', + clientSecret: 'my-client-secret', + scope: 'foo', + }, }, }, }, }, - }, - }), - ], - }); - - const agent = request.agent(server); - - const res = await agent.get('/api/auth/atlassian/start?env=development'); - - expect(res.status).toEqual(302); - - const nonceCookie = agent.jar.getCookie('atlassian-nonce', { - domain: 'localhost', - path: '/api/auth/atlassian/handler', - script: false, - secure: false, - }); - expect(nonceCookie).toBeDefined(); - - const startUrl = new URL(res.get('location')); - expect(startUrl.origin).toBe('https://auth.atlassian.com'); - expect(startUrl.pathname).toBe('/authorize'); - expect(Object.fromEntries(startUrl.searchParams)).toEqual({ - response_type: 'code', - client_id: 'my-client-id', - redirect_uri: `http://localhost:${server.port()}/api/auth/atlassian/handler/frame`, - state: expect.any(String), - scope: 'offline_access read:filter:jira read:jira-work', - }); - - expect(decodeOAuthState(startUrl.searchParams.get('state')!)).toEqual({ - env: 'development', - nonce: decodeURIComponent(nonceCookie.value), - }); + }), + ], + }), + ).rejects.toThrow( + /atlassian provider no longer supports the "scope" or "scopes" configuration options/, + ); }); }); diff --git a/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md b/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md index b3ccc9c8ba..ec67f5fa79 100644 --- a/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-auth-backend-module-aws-alb-provider +## 0.1.11-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-auth-backend@0.22.6-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/errors@1.2.4 + ## 0.1.11-next.2 ### Patch Changes diff --git a/plugins/auth-backend-module-aws-alb-provider/package.json b/plugins/auth-backend-module-aws-alb-provider/package.json index 870216ecca..faf74b1eb6 100644 --- a/plugins/auth-backend-module-aws-alb-provider/package.json +++ b/plugins/auth-backend-module-aws-alb-provider/package.json @@ -1,35 +1,40 @@ { "name": "@backstage/plugin-auth-backend-module-aws-alb-provider", + "version": "0.1.11-next.3", "description": "The aws-alb provider module for the Backstage auth backend.", - "version": "0.1.11-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "backstage": { - "role": "backend-plugin-module" - }, + "keywords": [ + "backstage" + ], "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-aws-alb-provider" }, - "keywords": [ - "backstage" + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist" ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -47,8 +52,5 @@ "@backstage/config": "workspace:^", "express": "^4.18.2", "msw": "^2.0.8" - }, - "files": [ - "dist" - ] + } } diff --git a/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md b/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md index 1a9a3e052e..95c70cc6ca 100644 --- a/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-backend-module-azure-easyauth-provider +## 0.1.2-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-azure-easyauth-provider/package.json b/plugins/auth-backend-module-azure-easyauth-provider/package.json index 298de835f9..232f80fe1a 100644 --- a/plugins/auth-backend-module-azure-easyauth-provider/package.json +++ b/plugins/auth-backend-module-azure-easyauth-provider/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-auth-backend-module-azure-easyauth-provider", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "description": "The azure-easyauth-provider backend module for the auth plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md b/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md index b3dc83dfb1..f8c3b6390b 100644 --- a/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend-module-bitbucket-provider +## 0.1.2-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. In addition, the `account` scope has been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-bitbucket-provider/config.d.ts b/plugins/auth-backend-module-bitbucket-provider/config.d.ts index 81e835a5e6..17cac1c194 100644 --- a/plugins/auth-backend-module-bitbucket-provider/config.d.ts +++ b/plugins/auth-backend-module-bitbucket-provider/config.d.ts @@ -25,6 +25,7 @@ export interface Config { * @visibility secret */ clientSecret: string; + additionalScopes?: string | string[]; }; }; }; diff --git a/plugins/auth-backend-module-bitbucket-provider/package.json b/plugins/auth-backend-module-bitbucket-provider/package.json index cdccd8df5a..458f65ae47 100644 --- a/plugins/auth-backend-module-bitbucket-provider/package.json +++ b/plugins/auth-backend-module-bitbucket-provider/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-auth-backend-module-bitbucket-provider", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "description": "The bitbucket-provider backend module for the auth plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/auth-backend-module-bitbucket-provider/src/authenticator.ts b/plugins/auth-backend-module-bitbucket-provider/src/authenticator.ts index bc962ec773..a2d8275964 100644 --- a/plugins/auth-backend-module-bitbucket-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-bitbucket-provider/src/authenticator.ts @@ -26,6 +26,9 @@ import { export const bitbucketAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: PassportOAuthAuthenticatorHelper.defaultProfileTransform, + scopes: { + required: ['account'], + }, initialize({ callbackUrl, config }) { const clientID = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); diff --git a/plugins/auth-backend-module-bitbucket-provider/src/module.test.ts b/plugins/auth-backend-module-bitbucket-provider/src/module.test.ts index e761369a9c..f1426d1b0d 100644 --- a/plugins/auth-backend-module-bitbucket-provider/src/module.test.ts +++ b/plugins/auth-backend-module-bitbucket-provider/src/module.test.ts @@ -67,6 +67,7 @@ describe('authModuleBitbucketProvider', () => { client_id: 'my-client-id', redirect_uri: `http://localhost:${server.port()}/api/auth/bitbucket/handler/frame`, state: expect.any(String), + scope: 'account', }); expect(decodeOAuthState(startUrl.searchParams.get('state')!)).toEqual({ diff --git a/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md b/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md index e18a9f4074..bd41ad091d 100644 --- a/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-backend-module-cloudflare-access-provider +## 0.1.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.2-next.2 ### Patch Changes diff --git a/plugins/auth-backend-module-cloudflare-access-provider/package.json b/plugins/auth-backend-module-cloudflare-access-provider/package.json index 8bbe01228e..15e7dfc69d 100644 --- a/plugins/auth-backend-module-cloudflare-access-provider/package.json +++ b/plugins/auth-backend-module-cloudflare-access-provider/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-auth-backend-module-cloudflare-access-provider", - "version": "0.1.2-next.2", + "version": "0.1.2-next.3", "description": "The cloudflare-access-provider backend module for the auth plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md index 872835330d..2061f04974 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-backend-module-gcp-iap-provider +## 0.2.14-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.2.14-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-gcp-iap-provider/package.json b/plugins/auth-backend-module-gcp-iap-provider/package.json index 5ac57fe932..b390db9cdf 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/package.json +++ b/plugins/auth-backend-module-gcp-iap-provider/package.json @@ -1,35 +1,41 @@ { "name": "@backstage/plugin-auth-backend-module-gcp-iap-provider", + "version": "0.2.14-next.2", "description": "A GCP IAP auth provider module for the Backstage auth backend", - "version": "0.2.14-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "backstage": { - "role": "backend-plugin-module" - }, + "keywords": [ + "backstage" + ], "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-gcp-iap-provider" }, - "keywords": [ - "backstage" + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -43,9 +49,5 @@ "@backstage/cli": "workspace:^", "express": "^4.18.2" }, - "files": [ - "dist", - "config.d.ts" - ], "configSchema": "config.d.ts" } diff --git a/plugins/auth-backend-module-github-provider/CHANGELOG.md b/plugins/auth-backend-module-github-provider/CHANGELOG.md index b7983172ef..b509ec3110 100644 --- a/plugins/auth-backend-module-github-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-github-provider/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend-module-github-provider +## 0.1.16-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. In addition, the `read:user` scope has been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + ## 0.1.16-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-github-provider/config.d.ts b/plugins/auth-backend-module-github-provider/config.d.ts index e79711310d..f60d4c239d 100644 --- a/plugins/auth-backend-module-github-provider/config.d.ts +++ b/plugins/auth-backend-module-github-provider/config.d.ts @@ -27,6 +27,7 @@ export interface Config { clientSecret: string; callbackUrl?: string; enterpriseInstanceUrl?: string; + additionalScopes?: string | string[]; }; }; }; diff --git a/plugins/auth-backend-module-github-provider/package.json b/plugins/auth-backend-module-github-provider/package.json index f85d10dfa4..226e51c039 100644 --- a/plugins/auth-backend-module-github-provider/package.json +++ b/plugins/auth-backend-module-github-provider/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-auth-backend-module-github-provider", - "version": "0.1.16-next.1", + "version": "0.1.16-next.2", "description": "The github-provider backend module for the auth plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/auth-backend-module-github-provider/src/authenticator.ts b/plugins/auth-backend-module-github-provider/src/authenticator.ts index 4a9710d114..7c94a04c30 100644 --- a/plugins/auth-backend-module-github-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-github-provider/src/authenticator.ts @@ -28,7 +28,10 @@ const ACCESS_TOKEN_PREFIX = 'access-token.'; export const githubAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: PassportOAuthAuthenticatorHelper.defaultProfileTransform, - shouldPersistScopes: true, + scopes: { + persist: true, + required: ['read:user'], + }, initialize({ callbackUrl, config }) { const clientId = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); diff --git a/plugins/auth-backend-module-github-provider/src/module.test.ts b/plugins/auth-backend-module-github-provider/src/module.test.ts index 437e002bc3..53308938c0 100644 --- a/plugins/auth-backend-module-github-provider/src/module.test.ts +++ b/plugins/auth-backend-module-github-provider/src/module.test.ts @@ -67,11 +67,13 @@ describe('authModuleGithubProvider', () => { client_id: 'my-client-id', redirect_uri: `http://localhost:${server.port()}/api/auth/github/handler/frame`, state: expect.any(String), + scope: 'read:user', }); expect(decodeOAuthState(startUrl.searchParams.get('state')!)).toEqual({ env: 'development', nonce: decodeURIComponent(nonceCookie.value), + scope: 'read:user', }); }); }); diff --git a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md index b82ae5b21b..da9a38f7dc 100644 --- a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend-module-gitlab-provider +## 0.1.16-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. In addition, the `read_user` scope has been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + ## 0.1.16-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-gitlab-provider/config.d.ts b/plugins/auth-backend-module-gitlab-provider/config.d.ts index d7f04d872a..18f7cb5005 100644 --- a/plugins/auth-backend-module-gitlab-provider/config.d.ts +++ b/plugins/auth-backend-module-gitlab-provider/config.d.ts @@ -27,6 +27,7 @@ export interface Config { clientSecret: string; audience?: string; callbackUrl?: string; + additionalScopes?: string | string[]; }; }; }; diff --git a/plugins/auth-backend-module-gitlab-provider/package.json b/plugins/auth-backend-module-gitlab-provider/package.json index ff91c8395a..a90a70ee19 100644 --- a/plugins/auth-backend-module-gitlab-provider/package.json +++ b/plugins/auth-backend-module-gitlab-provider/package.json @@ -1,10 +1,12 @@ { "name": "@backstage/plugin-auth-backend-module-gitlab-provider", + "version": "0.1.16-next.2", "description": "The gitlab-provider backend module for the auth plugin.", - "version": "0.1.16-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +17,21 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-gitlab-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -41,9 +47,5 @@ "@backstage/plugin-auth-backend": "workspace:^", "supertest": "^6.3.3" }, - "configSchema": "config.d.ts", - "files": [ - "dist", - "config.d.ts" - ] + "configSchema": "config.d.ts" } diff --git a/plugins/auth-backend-module-gitlab-provider/src/authenticator.ts b/plugins/auth-backend-module-gitlab-provider/src/authenticator.ts index 9cd5857b0d..8e93921b63 100644 --- a/plugins/auth-backend-module-gitlab-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-gitlab-provider/src/authenticator.ts @@ -26,6 +26,9 @@ import { export const gitlabAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: PassportOAuthAuthenticatorHelper.defaultProfileTransform, + scopes: { + required: ['read_user'], + }, initialize({ callbackUrl, config }) { const clientId = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); diff --git a/plugins/auth-backend-module-google-provider/CHANGELOG.md b/plugins/auth-backend-module-google-provider/CHANGELOG.md index c79a83be6f..6cce19a35c 100644 --- a/plugins/auth-backend-module-google-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-google-provider/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend-module-google-provider +## 0.1.16-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. In addition, the `openid`, `userinfo.email`, and `userinfo.profile` scopes have been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + ## 0.1.16-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-google-provider/config.d.ts b/plugins/auth-backend-module-google-provider/config.d.ts index 6a1716c5bf..08a0e08f2b 100644 --- a/plugins/auth-backend-module-google-provider/config.d.ts +++ b/plugins/auth-backend-module-google-provider/config.d.ts @@ -26,6 +26,7 @@ export interface Config { */ clientSecret: string; callbackUrl?: string; + additionalScopes?: string | string[]; }; }; }; diff --git a/plugins/auth-backend-module-google-provider/package.json b/plugins/auth-backend-module-google-provider/package.json index aae3b11256..73bea4510e 100644 --- a/plugins/auth-backend-module-google-provider/package.json +++ b/plugins/auth-backend-module-google-provider/package.json @@ -1,35 +1,41 @@ { "name": "@backstage/plugin-auth-backend-module-google-provider", + "version": "0.1.16-next.2", "description": "A Google auth provider module for the Backstage auth backend", - "version": "0.1.16-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "backstage": { - "role": "backend-plugin-module" - }, + "keywords": [ + "backstage" + ], "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-google-provider" }, - "keywords": [ - "backstage" + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -44,9 +50,5 @@ "@types/passport-google-oauth20": "^2.0.3", "supertest": "^6.1.3" }, - "files": [ - "dist", - "config.d.ts" - ], "configSchema": "config.d.ts" } diff --git a/plugins/auth-backend-module-google-provider/src/authenticator.ts b/plugins/auth-backend-module-google-provider/src/authenticator.ts index a428519fee..9f1e298ae8 100644 --- a/plugins/auth-backend-module-google-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-google-provider/src/authenticator.ts @@ -27,6 +27,13 @@ import { Strategy as GoogleStrategy } from 'passport-google-oauth20'; export const googleAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: PassportOAuthAuthenticatorHelper.defaultProfileTransform, + scopes: { + required: [ + 'openid', + `https://www.googleapis.com/auth/userinfo.email`, + `https://www.googleapis.com/auth/userinfo.profile`, + ], + }, initialize({ callbackUrl, config }) { const clientId = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); diff --git a/plugins/auth-backend-module-google-provider/src/module.test.ts b/plugins/auth-backend-module-google-provider/src/module.test.ts index 59066acd4c..8ece0c1942 100644 --- a/plugins/auth-backend-module-google-provider/src/module.test.ts +++ b/plugins/auth-backend-module-google-provider/src/module.test.ts @@ -69,6 +69,8 @@ describe('authModuleGoogleProvider', () => { client_id: 'my-client-id', redirect_uri: `http://localhost:${server.port()}/api/auth/google/handler/frame`, state: expect.any(String), + scope: + 'openid https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile', }); expect(decodeOAuthState(startUrl.searchParams.get('state')!)).toEqual({ diff --git a/plugins/auth-backend-module-guest-provider/CHANGELOG.md b/plugins/auth-backend-module-guest-provider/CHANGELOG.md index c061810bf3..a22908f1c4 100644 --- a/plugins/auth-backend-module-guest-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-guest-provider/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-auth-backend-module-guest-provider +## 0.1.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + ## 0.1.5-next.2 ### Patch Changes diff --git a/plugins/auth-backend-module-guest-provider/package.json b/plugins/auth-backend-module-guest-provider/package.json index f18e91ef58..35ed295f41 100644 --- a/plugins/auth-backend-module-guest-provider/package.json +++ b/plugins/auth-backend-module-guest-provider/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-auth-backend-module-guest-provider", - "version": "0.1.5-next.2", + "version": "0.1.5-next.3", "description": "The guest-provider backend module for the auth plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md index 8fed3c1aef..8f93dbdf87 100644 --- a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend-module-microsoft-provider +## 0.1.14-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-microsoft-provider/config.d.ts b/plugins/auth-backend-module-microsoft-provider/config.d.ts index df63e9ccf4..a7ec027083 100644 --- a/plugins/auth-backend-module-microsoft-provider/config.d.ts +++ b/plugins/auth-backend-module-microsoft-provider/config.d.ts @@ -28,7 +28,7 @@ export interface Config { clientSecret: string; domainHint?: string; callbackUrl?: string; - additionalScopes?: string[]; + additionalScopes?: string | string[]; }; }; }; diff --git a/plugins/auth-backend-module-microsoft-provider/package.json b/plugins/auth-backend-module-microsoft-provider/package.json index af1b0c7f01..bea5991966 100644 --- a/plugins/auth-backend-module-microsoft-provider/package.json +++ b/plugins/auth-backend-module-microsoft-provider/package.json @@ -1,10 +1,12 @@ { "name": "@backstage/plugin-auth-backend-module-microsoft-provider", + "version": "0.1.14-next.2", "description": "The microsoft-provider backend module for the auth plugin.", - "version": "0.1.14-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +17,21 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-microsoft-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -47,9 +53,5 @@ "msw": "^1.0.0", "supertest": "^6.3.3" }, - "configSchema": "config.d.ts", - "files": [ - "dist", - "config.d.ts" - ] + "configSchema": "config.d.ts" } diff --git a/plugins/auth-backend-module-microsoft-provider/src/module.test.ts b/plugins/auth-backend-module-microsoft-provider/src/module.test.ts index 2ef92c0b44..b50956b9eb 100644 --- a/plugins/auth-backend-module-microsoft-provider/src/module.test.ts +++ b/plugins/auth-backend-module-microsoft-provider/src/module.test.ts @@ -67,7 +67,7 @@ describe('authModuleMicrosoftProvider', () => { expect(startUrl.pathname).toBe('/my-tenant-id/oauth2/v2.0/authorize'); expect(Object.fromEntries(startUrl.searchParams)).toEqual({ response_type: 'code', - scope: 'user.read User.Read.All', + scope: 'User.Read.All', client_id: 'my-client-id', redirect_uri: `http://localhost:${server.port()}/api/auth/microsoft/handler/frame`, state: expect.any(String), diff --git a/plugins/auth-backend-module-microsoft-provider/src/strategy.ts b/plugins/auth-backend-module-microsoft-provider/src/strategy.ts index cf2ff73965..d5a1aa31fe 100644 --- a/plugins/auth-backend-module-microsoft-provider/src/strategy.ts +++ b/plugins/auth-backend-module-microsoft-provider/src/strategy.ts @@ -22,7 +22,7 @@ import { Strategy as MicrosoftStrategy } from 'passport-microsoft'; export class ExtendedMicrosoftStrategy extends MicrosoftStrategy { userProfile( accessToken: string, - done: (err?: Error | null, profile?: PassportProfile) => void, + done: (err?: unknown, profile?: PassportProfile) => void, ): void { if (this.skipUserProfile(accessToken)) { done(null, undefined); @@ -31,7 +31,7 @@ export class ExtendedMicrosoftStrategy extends MicrosoftStrategy { super.userProfile( accessToken, - (err?: Error | null, profile?: PassportProfile) => { + (err?: unknown, profile?: PassportProfile) => { if (!profile || profile.photos) { done(err, profile); return; diff --git a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md index c9e64d5740..91e5ab6890 100644 --- a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-auth-backend-module-oauth2-provider +## 0.2.0-next.2 + +### Minor Changes + +- 8efc6cf: **BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + ## 0.1.16-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oauth2-provider/config.d.ts b/plugins/auth-backend-module-oauth2-provider/config.d.ts index afbfcf8f67..9b1ee18f1b 100644 --- a/plugins/auth-backend-module-oauth2-provider/config.d.ts +++ b/plugins/auth-backend-module-oauth2-provider/config.d.ts @@ -27,7 +27,9 @@ export interface Config { clientSecret: string; authorizationUrl: string; tokenUrl: string; + /** @deprecated use `additionalScopes` instead */ scope?: string; + additionalScopes?: string | string[]; disableRefresh?: boolean; includeBasicAuth?: boolean; }; diff --git a/plugins/auth-backend-module-oauth2-provider/package.json b/plugins/auth-backend-module-oauth2-provider/package.json index 67347e8cdd..959e301038 100644 --- a/plugins/auth-backend-module-oauth2-provider/package.json +++ b/plugins/auth-backend-module-oauth2-provider/package.json @@ -1,10 +1,12 @@ { "name": "@backstage/plugin-auth-backend-module-oauth2-provider", + "version": "0.2.0-next.2", "description": "The oauth2-provider backend module for the auth plugin.", - "version": "0.1.16-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +17,21 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-oauth2-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -40,9 +46,5 @@ "@backstage/plugin-auth-backend": "workspace:^", "supertest": "^6.3.3" }, - "configSchema": "config.d.ts", - "files": [ - "dist", - "config.d.ts" - ] + "configSchema": "config.d.ts" } diff --git a/plugins/auth-backend-module-oauth2-provider/src/authenticator.ts b/plugins/auth-backend-module-oauth2-provider/src/authenticator.ts index d6f84cf1c0..698d9e51cb 100644 --- a/plugins/auth-backend-module-oauth2-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-oauth2-provider/src/authenticator.ts @@ -31,9 +31,14 @@ export const oauth2Authenticator = createOAuthAuthenticator({ const clientSecret = config.getString('clientSecret'); const authorizationUrl = config.getString('authorizationUrl'); const tokenUrl = config.getString('tokenUrl'); - const scope = config.getOptionalString('scope'); const includeBasicAuth = config.getOptionalBoolean('includeBasicAuth'); + if (config.has('scope')) { + throw new Error( + 'The oauth2 provider no longer supports the "scope" configuration option. Please use the "additionalScopes" option instead.', + ); + } + return PassportOAuthAuthenticatorHelper.from( new Oauth2Strategy( { @@ -43,7 +48,6 @@ export const oauth2Authenticator = createOAuthAuthenticator({ authorizationURL: authorizationUrl, tokenURL: tokenUrl, passReqToCallback: false, - scope: scope, customHeaders: includeBasicAuth ? { Authorization: `Basic ${encodeClientCredentials( diff --git a/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md b/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md index 7b3ec7ad82..bb6fc711ba 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend-module-oauth2-proxy-provider +## 0.1.12-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/errors@1.2.4 + ## 0.1.12-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oauth2-proxy-provider/package.json b/plugins/auth-backend-module-oauth2-proxy-provider/package.json index 3d02d39645..bbc3bb5a7a 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/package.json +++ b/plugins/auth-backend-module-oauth2-proxy-provider/package.json @@ -1,10 +1,12 @@ { "name": "@backstage/plugin-auth-backend-module-oauth2-proxy-provider", + "version": "0.1.12-next.2", "description": "The oauth2-proxy-provider backend module for the auth plugin.", - "version": "0.1.12-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +17,20 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-oauth2-proxy-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -36,8 +41,5 @@ "devDependencies": { "@backstage/backend-test-utils": "workspace:^", "@backstage/cli": "workspace:^" - }, - "files": [ - "dist" - ] + } } diff --git a/plugins/auth-backend-module-oidc-provider/CHANGELOG.md b/plugins/auth-backend-module-oidc-provider/CHANGELOG.md index d9f0d1a3f8..33173baf53 100644 --- a/plugins/auth-backend-module-oidc-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oidc-provider/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-auth-backend-module-oidc-provider +## 0.2.0-next.3 + +### Minor Changes + +- 8efc6cf: **BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, `openid`, `profile`, and `email` scopes have been set to required and will always be present. + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-auth-backend@0.22.6-next.3 + - @backstage/backend-common@0.23.0-next.3 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/auth-backend-module-oidc-provider/api-report.md b/plugins/auth-backend-module-oidc-provider/api-report.md index d96d9952a0..eb9b4fb21e 100644 --- a/plugins/auth-backend-module-oidc-provider/api-report.md +++ b/plugins/auth-backend-module-oidc-provider/api-report.md @@ -19,7 +19,6 @@ export default authModuleOidcProvider; // @public (undocumented) export const oidcAuthenticator: OAuthAuthenticator< { - initializedScope: string | undefined; initializedPrompt: string | undefined; promise: Promise<{ helper: PassportOAuthAuthenticatorHelper; diff --git a/plugins/auth-backend-module-oidc-provider/config.d.ts b/plugins/auth-backend-module-oidc-provider/config.d.ts index 16131c0761..398e63c466 100644 --- a/plugins/auth-backend-module-oidc-provider/config.d.ts +++ b/plugins/auth-backend-module-oidc-provider/config.d.ts @@ -29,7 +29,7 @@ export interface Config { callbackUrl?: string; tokenEndpointAuthMethod?: string; tokenSignedResponseAlg?: string; - scope?: string; + additionalScopes?: string | string[]; prompt?: string; }; }; diff --git a/plugins/auth-backend-module-oidc-provider/package.json b/plugins/auth-backend-module-oidc-provider/package.json index aa75b31ff2..916b543b28 100644 --- a/plugins/auth-backend-module-oidc-provider/package.json +++ b/plugins/auth-backend-module-oidc-provider/package.json @@ -1,10 +1,12 @@ { "name": "@backstage/plugin-auth-backend-module-oidc-provider", + "version": "0.2.0-next.3", "description": "The oidc-provider backend module for the auth plugin.", - "version": "0.1.10-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +17,21 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-oidc-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -48,9 +54,5 @@ "msw": "^1.3.1", "supertest": "^6.3.3" }, - "configSchema": "config.d.ts", - "files": [ - "dist", - "config.d.ts" - ] + "configSchema": "config.d.ts" } diff --git a/plugins/auth-backend-module-oidc-provider/src/authenticator.test.ts b/plugins/auth-backend-module-oidc-provider/src/authenticator.test.ts index 67bfd27b19..4203a70153 100644 --- a/plugins/auth-backend-module-oidc-provider/src/authenticator.test.ts +++ b/plugins/auth-backend-module-oidc-provider/src/authenticator.test.ts @@ -254,19 +254,6 @@ describe('oidcAuthenticator', () => { expect(fakeSession['oidc:oidc.test'].code_verifier).toBeDefined(); }); - it('requests default scopes if none are provided in config', async () => { - const startResponse = await oidcAuthenticator.start( - startRequest, - implementation, - ); - const { searchParams } = new URL(startResponse.url); - const scopes = searchParams.get('scope')?.split(' ') ?? []; - - expect(scopes).toEqual( - expect.arrayContaining(['openid', 'profile', 'email']), - ); - }); - it('encodes OAuth state in query param', async () => { const startResponse = await oidcAuthenticator.start( startRequest, diff --git a/plugins/auth-backend-module-oidc-provider/src/authenticator.ts b/plugins/auth-backend-module-oidc-provider/src/authenticator.ts index 2b6a9b34f1..efcf1b61dd 100644 --- a/plugins/auth-backend-module-oidc-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-oidc-provider/src/authenticator.ts @@ -53,7 +53,6 @@ export type OidcAuthResult = { /** @public */ export const oidcAuthenticator = createOAuthAuthenticator({ - shouldPersistScopes: true, defaultProfileTransform: async ( input: OAuthAuthenticatorResult, ) => ({ @@ -63,6 +62,10 @@ export const oidcAuthenticator = createOAuthAuthenticator({ displayName: input.fullProfile.userinfo.name, }, }), + scopes: { + persist: true, + required: ['openid', 'profile', 'email'], + }, initialize({ callbackUrl, config }) { const clientId = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); @@ -74,9 +77,14 @@ export const oidcAuthenticator = createOAuthAuthenticator({ const tokenSignedResponseAlg = config.getOptionalString( 'tokenSignedResponseAlg', ); - const initializedScope = config.getOptionalString('scope'); const initializedPrompt = config.getOptionalString('prompt'); + if (config.has('scope')) { + throw new Error( + 'The oidc provider no longer supports the "scope" configuration option. Please use the "additionalScopes" option instead.', + ); + } + Issuer[custom.http_options] = httpOptionsProvider; const promise = Issuer.discover(metadataUrl).then(issuer => { issuer[custom.http_options] = httpOptionsProvider; @@ -91,7 +99,6 @@ export const oidcAuthenticator = createOAuthAuthenticator({ token_endpoint_auth_method: tokenEndpointAuthMethod || 'client_secret_basic', id_token_signed_response_alg: tokenSignedResponseAlg || 'RS256', - scope: initializedScope || '', }); client[custom.http_options] = httpOptionsProvider; @@ -123,14 +130,14 @@ export const oidcAuthenticator = createOAuthAuthenticator({ return { helper, client, strategy }; }); - return { initializedScope, initializedPrompt, promise }; + return { initializedPrompt, promise }; }, async start(input, ctx) { - const { initializedScope, initializedPrompt, promise } = ctx; + const { initializedPrompt, promise } = ctx; const { helper, strategy } = await promise; const options: Record = { - scope: input.scope || initializedScope || 'openid profile email', + scope: input.scope, state: input.state, nonce: crypto.randomBytes(16).toString('base64'), }; diff --git a/plugins/auth-backend-module-oidc-provider/src/module.test.ts b/plugins/auth-backend-module-oidc-provider/src/module.test.ts index 0edb43f9f3..1359634950 100644 --- a/plugins/auth-backend-module-oidc-provider/src/module.test.ts +++ b/plugins/auth-backend-module-oidc-provider/src/module.test.ts @@ -212,6 +212,7 @@ describe('authModuleOidcProvider', () => { expect(decodeOAuthState(startUrl.searchParams.get('state')!)).toEqual({ env: 'development', nonce: decodeURIComponent(nonceCookie.value), + scope: 'openid profile email', }); }); diff --git a/plugins/auth-backend-module-okta-provider/CHANGELOG.md b/plugins/auth-backend-module-okta-provider/CHANGELOG.md index f1edf43638..c5331c89b0 100644 --- a/plugins/auth-backend-module-okta-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-okta-provider/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend-module-okta-provider +## 0.0.12-next.2 + +### Patch Changes + +- 8efc6cf: Added support for the new shared `additionalScopes` configuration, which means it can now also be specified as an array. In addition, the `openid`, `email`, `profile`, and `offline_access` scopes have been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + ## 0.0.12-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-okta-provider/config.d.ts b/plugins/auth-backend-module-okta-provider/config.d.ts index 42688528ee..aaf6ec1f91 100644 --- a/plugins/auth-backend-module-okta-provider/config.d.ts +++ b/plugins/auth-backend-module-okta-provider/config.d.ts @@ -29,7 +29,7 @@ export interface Config { authServerId?: string; idp?: string; callbackUrl?: string; - additionalScopes?: string; + additionalScopes?: string | string[]; }; }; }; diff --git a/plugins/auth-backend-module-okta-provider/package.json b/plugins/auth-backend-module-okta-provider/package.json index 6a6e30cedc..1b2d861ae0 100644 --- a/plugins/auth-backend-module-okta-provider/package.json +++ b/plugins/auth-backend-module-okta-provider/package.json @@ -1,10 +1,12 @@ { "name": "@backstage/plugin-auth-backend-module-okta-provider", + "version": "0.0.12-next.2", "description": "The okta-provider backend module for the auth plugin.", - "version": "0.0.12-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +17,21 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-okta-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -41,9 +47,5 @@ "@backstage/plugin-auth-backend": "workspace:^", "supertest": "^6.3.3" }, - "configSchema": "config.d.ts", - "files": [ - "dist", - "config.d.ts" - ] + "configSchema": "config.d.ts" } diff --git a/plugins/auth-backend-module-okta-provider/src/authenticator.ts b/plugins/auth-backend-module-okta-provider/src/authenticator.ts index 42201232f1..1454d580cb 100644 --- a/plugins/auth-backend-module-okta-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-okta-provider/src/authenticator.ts @@ -26,25 +26,15 @@ import { export const oktaAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: PassportOAuthAuthenticatorHelper.defaultProfileTransform, + scopes: { + required: ['openid', 'email', 'profile', 'offline_access'], + }, initialize({ callbackUrl, config }) { const clientId = config.getString('clientId'); const clientSecret = config.getString('clientSecret'); const audience = config.getOptionalString('audience') || 'https://okta.com'; const authServerId = config.getOptionalString('authServerId'); const idp = config.getOptionalString('idp'); - // default scopes are taken from - // https://developer.okta.com/docs/reference/api/oidc/#response-example-success-refresh-token - const defaultScopes = 'openid profile email'; - // additional scopes can be configured in the config as a space separated string - const additionalScopes = config.getOptionalString('additionalScopes') || ''; - // combine default and additional scopes and remove duplicates - const combineScopeStrings = (scopesA: string, scopesB: string) => { - const scopesAArray = scopesA.split(' '); - const scopesBArray = scopesB.split(' '); - const combinedScopes = new Set([...scopesAArray, ...scopesBArray]); - return Array.from(combinedScopes).join(' '); - }; - const scope = combineScopeStrings(defaultScopes, additionalScopes); return PassportOAuthAuthenticatorHelper.from( new OktaStrategy( @@ -57,7 +47,6 @@ export const oktaAuthenticator = createOAuthAuthenticator({ idp: idp, passReqToCallback: false, response_type: 'code', - scope, }, ( accessToken: string, diff --git a/plugins/auth-backend-module-okta-provider/src/module.test.ts b/plugins/auth-backend-module-okta-provider/src/module.test.ts index e469067b3f..16a58b8713 100644 --- a/plugins/auth-backend-module-okta-provider/src/module.test.ts +++ b/plugins/auth-backend-module-okta-provider/src/module.test.ts @@ -21,9 +21,6 @@ import { decodeOAuthState } from '@backstage/plugin-auth-node'; describe('authModuleOktaProvider', () => { it('should start', async () => { - const defaultScopes = 'openid profile email'; - const additionalScopes = 'groups phone'; - const combinedScopes = `${defaultScopes} ${additionalScopes}`; const { server } = await startTestBackend({ features: [ import('@backstage/plugin-auth-backend'), @@ -39,7 +36,7 @@ describe('authModuleOktaProvider', () => { development: { clientId: 'my-client-id', clientSecret: 'my-client-secret', - additionalScopes, + additionalScopes: 'groups phone', }, }, }, @@ -68,7 +65,7 @@ describe('authModuleOktaProvider', () => { expect(startUrl.pathname).toBe('/oauth2/v1/authorize'); expect(Object.fromEntries(startUrl.searchParams)).toEqual({ response_type: 'code', - scope: combinedScopes, + scope: 'openid email profile offline_access groups phone', client_id: 'my-client-id', redirect_uri: `http://localhost:${server.port()}/api/auth/okta/handler/frame`, state: expect.any(String), diff --git a/plugins/auth-backend-module-onelogin-provider/CHANGELOG.md b/plugins/auth-backend-module-onelogin-provider/CHANGELOG.md new file mode 100644 index 0000000000..03954ed3ae --- /dev/null +++ b/plugins/auth-backend-module-onelogin-provider/CHANGELOG.md @@ -0,0 +1,14 @@ +# @backstage/plugin-auth-backend-module-onelogin-provider + +## 0.1.0-next.0 + +### Minor Changes + +- 566d7cb: Separate out the OneLogin provider into its own module + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 diff --git a/plugins/auth-backend-module-onelogin-provider/package.json b/plugins/auth-backend-module-onelogin-provider/package.json index 7012742eb2..c4c2cfa2af 100644 --- a/plugins/auth-backend-module-onelogin-provider/package.json +++ b/plugins/auth-backend-module-onelogin-provider/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-auth-backend-module-onelogin-provider", - "version": "0.0.0", + "version": "0.1.0-next.0", "description": "The onelogin-provider backend module for the auth plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md index e936af290b..b43ab255b1 100644 --- a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-auth-backend-module-pinniped-provider +## 0.1.13-next.2 + +### Patch Changes + +- 8efc6cf: **BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, the `openid`, `pinniped:request-audience`, `username`, and `offline_access` scopes have been set to required and will always be present. +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/config@1.2.0 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-pinniped-provider/package.json b/plugins/auth-backend-module-pinniped-provider/package.json index 3c97abd24c..3416e2f18b 100644 --- a/plugins/auth-backend-module-pinniped-provider/package.json +++ b/plugins/auth-backend-module-pinniped-provider/package.json @@ -1,10 +1,12 @@ { "name": "@backstage/plugin-auth-backend-module-pinniped-provider", + "version": "0.1.13-next.2", "description": "The pinniped-provider backend module for the auth plugin.", - "version": "0.1.13-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,17 +17,20 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/auth-backend-module-pinniped-provider" }, - "backstage": { - "role": "backend-plugin-module" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-plugin-api": "workspace:^", @@ -46,8 +51,5 @@ "msw": "^1.3.0", "passport": "^0.7.0", "supertest": "^6.3.3" - }, - "files": [ - "dist" - ] + } } diff --git a/plugins/auth-backend-module-pinniped-provider/src/authenticator.test.ts b/plugins/auth-backend-module-pinniped-provider/src/authenticator.test.ts index 2ecd54e80a..e2dedf2129 100644 --- a/plugins/auth-backend-module-pinniped-provider/src/authenticator.test.ts +++ b/plugins/auth-backend-module-pinniped-provider/src/authenticator.test.ts @@ -249,22 +249,14 @@ describe('pinnipedAuthenticator', () => { expect(fakeSession['oidc:pinniped.test'].code_verifier).toBeDefined(); }); - it('requests sufficient scopes for token exchange by default', async () => { + it('forwards scopes for token exchange', async () => { const startResponse = await pinnipedAuthenticator.start( - startRequest, + { ...startRequest, scope: 'openid username' }, authCtx, ); const { searchParams } = new URL(startResponse.url); - const scopes = searchParams.get('scope')?.split(' ') ?? []; - expect(scopes).toEqual( - expect.arrayContaining([ - 'openid', - 'pinniped:request-audience', - 'username', - 'offline_access', - ]), - ); + expect(searchParams.get('scope')).toBe('openid username'); }); it('encodes OAuth state in query param', async () => { diff --git a/plugins/auth-backend-module-pinniped-provider/src/authenticator.ts b/plugins/auth-backend-module-pinniped-provider/src/authenticator.ts index e07eaba759..abacb14ccc 100644 --- a/plugins/auth-backend-module-pinniped-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-pinniped-provider/src/authenticator.ts @@ -127,7 +127,6 @@ export class PinnipedStrategyCache { client_secret: this.config.getString('clientSecret'), redirect_uris: [this.callbackUrl], response_types: ['code'], - scope: this.config.getOptionalString('scope') || '', id_token_signed_response_alg: 'ES256', }); const providerStrategy = new OidcStrategy( @@ -154,7 +153,20 @@ export class PinnipedStrategyCache { /** @public */ export const pinnipedAuthenticator = createOAuthAuthenticator({ defaultProfileTransform: async (_r, _c) => ({ profile: {} }), + scopes: { + required: [ + 'openid', + 'pinniped:request-audience', + 'username', + 'offline_access', + ], + }, initialize({ callbackUrl, config }) { + if (config.has('scope')) { + throw new Error( + 'The pinniped provider no longer supports the "scope" configuration option. Please use the "additionalScopes" option instead.', + ); + } return new PinnipedStrategyCache(callbackUrl, config); }, async start(input, ctx): Promise<{ url: string; status?: number }> { @@ -163,9 +175,7 @@ export const pinnipedAuthenticator = createOAuthAuthenticator({ const decodedState = decodeOAuthState(input.state); const state = { ...decodedState, audience: stringifiedAudience }; const options: Record = { - scope: - input.scope || - 'openid pinniped:request-audience username offline_access', + scope: input.scope, state: encodeOAuthState(state), }; diff --git a/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md b/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md index bb5c857fb7..8b3fc7e7fa 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-auth-backend-module-vmware-cloud-provider +## 0.2.0-next.2 + +### Minor Changes + +- 8efc6cf: **BREAKING**: The `scope` config option have been removed and replaced by the standard `additionalScopes` config. In addition, `openid`, and `offline_access` scopes have been set to required and will always be present. + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/catalog-model@1.5.0 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-vmware-cloud-provider/config.d.ts b/plugins/auth-backend-module-vmware-cloud-provider/config.d.ts index 10b3566899..6ea07f1936 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/config.d.ts +++ b/plugins/auth-backend-module-vmware-cloud-provider/config.d.ts @@ -24,6 +24,7 @@ export interface Config { organizationId: string; scope?: string; consoleEndpoint?: string; + additionalScopes?: string | string[]; }; }; }; diff --git a/plugins/auth-backend-module-vmware-cloud-provider/package.json b/plugins/auth-backend-module-vmware-cloud-provider/package.json index 0173cf1d5e..6375325cc5 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/package.json +++ b/plugins/auth-backend-module-vmware-cloud-provider/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-auth-backend-module-vmware-cloud-provider", - "version": "0.1.11-next.1", + "version": "0.2.0-next.2", "description": "The vmware-cloud-provider backend module for the auth plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "auth", + "pluginPackage": "@backstage/plugin-auth-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/auth-backend-module-vmware-cloud-provider/src/authenticator.test.ts b/plugins/auth-backend-module-vmware-cloud-provider/src/authenticator.test.ts index f38ceeb462..c69d4e9ab1 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/src/authenticator.test.ts +++ b/plugins/auth-backend-module-vmware-cloud-provider/src/authenticator.test.ts @@ -163,9 +163,9 @@ describe('vmwareCloudAuthenticator', () => { expect(searchParams.get('redirect_uri')).toBe('http://callbackUrl'); }); - it('requests scopes for ID and refresh token', async () => { + it('forwards scopes for ID and refresh token', async () => { const startResponse = await vmwareCloudAuthenticator.start( - startRequest, + { ...startRequest, scope: 'openid offline_access' }, authenticatorCtx, ); const { searchParams } = new URL(startResponse.url); diff --git a/plugins/auth-backend-module-vmware-cloud-provider/src/authenticator.ts b/plugins/auth-backend-module-vmware-cloud-provider/src/authenticator.ts index 4db4836f13..55b3b5daec 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-vmware-cloud-provider/src/authenticator.ts @@ -96,6 +96,9 @@ export const vmwareCloudAuthenticator = createOAuthAuthenticator< }, }; }, + scopes: { + required: ['openid', 'offline_access'], + }, initialize({ callbackUrl, config }) { const consoleEndpoint = config.getOptionalString('consoleEndpoint') ?? @@ -106,7 +109,12 @@ export const vmwareCloudAuthenticator = createOAuthAuthenticator< const clientSecret = ''; const authorizationUrl = `${consoleEndpoint}/csp/gateway/discovery`; const tokenUrl = `${consoleEndpoint}/csp/gateway/am/api/auth/token`; - const scope = config.getOptionalString('scope') ?? 'openid offline_access'; + + if (config.has('scope')) { + throw new Error( + 'The vmware-cloud provider no longer supports the "scope" configuration option. Please use the "additionalScopes" option instead.', + ); + } const providerStrategy = new OAuth2Strategy( { @@ -118,7 +126,6 @@ export const vmwareCloudAuthenticator = createOAuthAuthenticator< passReqToCallback: false, pkce: true, state: true, - scope: scope, customHeaders: { Authorization: `Basic ${encodeClientCredentials( clientId, diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index a9d8d06054..46abaeafa2 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-auth-backend +## 0.22.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- 3e1bb15: Updated to use the new `@backstage/plugin-auth-backend-module-onelogin-provider` implementation +- Updated dependencies + - @backstage/plugin-auth-backend-module-onelogin-provider@0.1.0-next.0 + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.2.0-next.2 + - @backstage/plugin-auth-backend-module-bitbucket-provider@0.1.2-next.2 + - @backstage/plugin-auth-backend-module-github-provider@0.1.16-next.2 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.16-next.2 + - @backstage/plugin-auth-backend-module-google-provider@0.1.16-next.2 + - @backstage/plugin-auth-backend-module-microsoft-provider@0.1.14-next.2 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.2.0-next.2 + - @backstage/plugin-auth-backend-module-oidc-provider@0.2.0-next.3 + - @backstage/plugin-auth-backend-module-okta-provider@0.0.12-next.2 + - @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.2-next.3 + - @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.1.2-next.2 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.12-next.2 + - @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.11-next.3 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.14-next.2 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.22.6-next.2 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index c756e7b190..0ea8518a51 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,9 +1,15 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.22.6-next.2", + "version": "0.22.6-next.3", "description": "A Backstage backend plugin that handles authentication", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "auth", + "pluginPackages": [ + "@backstage/plugin-auth-backend", + "@backstage/plugin-auth-node", + "@backstage/plugin-auth-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md index d7c97df8e3..a860deed71 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-auth-node +## 0.4.14-next.3 + +### Patch Changes + +- 798ec37: Updated scope management for OAuth providers, where the `createOAuthAuthenticator` now accepts a new collection of `scopes` options: + + - `scopes.persist` - Whether scopes should be persisted, replaces the `shouldPersistScopes` option. + - `scopes.required` - A list of required scopes that will always be requested. + - `scopes.transform` - A function that can be used to transform the scopes before they are requested. + + The `createOAuthProviderFactory` has also received a new `additionalScopes` option, and will also read `additionalScopes` from the auth provider configuration. Both of these can be used to add additional scopes that should always be requested. + + A significant change under the hood that this new scope management brings is that providers that persist scopes will now always merge the already granted scopes with the requested ones. The previous behavior was that the full authorization flow would not include existing scopes, while the refresh flow would only include the existing scopes. + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.4.14-next.2 ### Patch Changes diff --git a/plugins/auth-node/api-report.md b/plugins/auth-node/api-report.md index 6a43d3b127..dc1d86308a 100644 --- a/plugins/auth-node/api-report.md +++ b/plugins/auth-node/api-report.md @@ -173,6 +173,7 @@ export function createOAuthAuthenticator( // @public (undocumented) export function createOAuthProviderFactory(options: { authenticator: OAuthAuthenticator; + additionalScopes?: string[]; stateTransform?: OAuthStateTransform; profileTransform?: ProfileTransform>; signInResolver?: SignInResolver>; @@ -291,6 +292,8 @@ export interface OAuthAuthenticator { ctx: TContext, ): Promise>; // (undocumented) + scopes?: OAuthAuthenticatorScopeOptions; + // @deprecated (undocumented) shouldPersistScopes?: boolean; // (undocumented) start( @@ -336,6 +339,21 @@ export interface OAuthAuthenticatorResult { session: OAuthSession; } +// @public (undocumented) +export interface OAuthAuthenticatorScopeOptions { + // (undocumented) + persist?: boolean; + // (undocumented) + required?: string[]; + // (undocumented) + transform?: (options: { + requested: Iterable; + granted: Iterable; + required: Iterable; + additional: Iterable; + }) => Iterable; +} + // @public (undocumented) export interface OAuthAuthenticatorStartInput { // (undocumented) @@ -366,6 +384,8 @@ export class OAuthEnvironmentHandler implements AuthProviderRouteHandlers { // @public (undocumented) export interface OAuthRouteHandlersOptions { + // (undocumented) + additionalScopes?: string[]; // (undocumented) appUrl: string; // (undocumented) diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 0af23792e2..4c62f191cf 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -1,8 +1,14 @@ { "name": "@backstage/plugin-auth-node", - "version": "0.4.14-next.2", + "version": "0.4.14-next.3", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "auth", + "pluginPackages": [ + "@backstage/plugin-auth-backend", + "@backstage/plugin-auth-node", + "@backstage/plugin-auth-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/auth-node/src/oauth/CookieScopeManager.test.ts b/plugins/auth-node/src/oauth/CookieScopeManager.test.ts new file mode 100644 index 0000000000..6cdee1168f --- /dev/null +++ b/plugins/auth-node/src/oauth/CookieScopeManager.test.ts @@ -0,0 +1,266 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import express from 'express'; +import { + OAuthAuthenticator, + OAuthAuthenticatorResult, + OAuthAuthenticatorScopeOptions, +} from './types'; +import { OAuthCookieManager } from './OAuthCookieManager'; +import { OAuthState } from './state'; +import { CookieScopeManager } from './CookieScopeManager'; +import { ConfigReader } from '@backstage/config'; + +function makeReq(scope?: string): express.Request { + return { + query: { scope }, + res: {}, + get: _name => 'https://example.com', + } as express.Request; +} + +const baseOpts = { + authenticator: {} as OAuthAuthenticator, + cookieManager: {} as OAuthCookieManager, +}; + +describe('CookieScopeManager', () => { + it('should work with minimal config', async () => { + const manager = CookieScopeManager.create({ + authenticator: {} as OAuthAuthenticator, + cookieManager: {} as OAuthCookieManager, + }); + + await expect(manager.start(makeReq())).resolves.toEqual({ + scope: '', + }); + await expect(manager.start(makeReq('x'))).resolves.toEqual({ + scope: 'x', + }); + await expect(manager.start(makeReq('x,y'))).resolves.toEqual({ + scope: 'x y', + }); + + await expect( + manager.handleCallback(makeReq(), { + result: { session: { scope: 'x,y' } } as OAuthAuthenticatorResult, + state: {} as OAuthState, + }), + ).resolves.toEqual('x y'); + + await expect(manager.clear(makeReq())).resolves.toBe(undefined); + + const refresh = await manager.refresh(makeReq('x,y')); + expect(refresh.scope).toBe('x y'); + + await expect( + refresh.commit({ + session: { scope: 'y,z' }, + } as OAuthAuthenticatorResult), + ).resolves.toEqual('y z'); + }); + + it('should include additional scopes', async () => { + const manager = CookieScopeManager.create({ + additionalScopes: ['a', 'b'], + ...baseOpts, + }); + + await expect(manager.start(makeReq())).resolves.toEqual({ + scope: 'a b', + }); + await expect(manager.start(makeReq('x'))).resolves.toEqual({ + scope: 'x a b', + }); + await expect(manager.start(makeReq('x,y'))).resolves.toEqual({ + scope: 'x y a b', + }); + + const refresh = await manager.refresh(makeReq('x|y')); + expect(refresh.scope).toBe('x y a b'); + + await expect( + refresh.commit({ + session: { scope: 'y,z a' }, + } as OAuthAuthenticatorResult), + ).resolves.toEqual('y z a'); + }); + + it('should include additional scopes from config', async () => { + await expect( + CookieScopeManager.create({ + additionalScopes: ['a'], + ...baseOpts, + }).start(makeReq()), + ).resolves.toEqual({ scope: 'a' }); + + await expect( + CookieScopeManager.create({ + config: new ConfigReader({ additionalScopes: 'a,b' }), + additionalScopes: ['c'], + ...baseOpts, + }).start(makeReq()), + ).resolves.toEqual({ scope: 'a b c' }); + + await expect( + CookieScopeManager.create({ + config: new ConfigReader({ additionalScopes: ['a', 'b'] }), + additionalScopes: ['c'], + ...baseOpts, + }).start(makeReq()), + ).resolves.toEqual({ scope: 'a b c' }); + }); + + it('should persist scopes', async () => { + const setGrantedScopes = jest.fn(); + const removeGrantedScopes = jest.fn(); + const manager = CookieScopeManager.create({ + authenticator: { + scopes: { + persist: true, + } as OAuthAuthenticatorScopeOptions, + } as OAuthAuthenticator, + cookieManager: { + getGrantedScopes: () => 'g', + setGrantedScopes, + removeGrantedScopes, + } as unknown as OAuthCookieManager, + }); + + await expect(manager.start(makeReq())).resolves.toEqual({ + scope: 'g', + scopeState: { + scope: 'g', + }, + }); + await expect(manager.start(makeReq('x'))).resolves.toEqual({ + scope: 'x g', + scopeState: { + scope: 'x g', + }, + }); + + expect(setGrantedScopes).not.toHaveBeenCalled(); + await expect( + manager.handleCallback(makeReq(), { + // The state is prioritized even if scope is present in the result + result: { session: { scope: 'x,y' } } as OAuthAuthenticatorResult, + state: { scope: 'x g' } as OAuthState, + origin: 'https://other.example.com', + }), + ).resolves.toEqual('x g'); + expect(setGrantedScopes).toHaveBeenCalledWith( + expect.anything(), + 'x g', + 'https://other.example.com', + ); + setGrantedScopes.mockClear(); + + expect(removeGrantedScopes).not.toHaveBeenCalled(); + await expect(manager.clear(makeReq())).resolves.toBe(undefined); + expect(removeGrantedScopes).toHaveBeenCalledWith( + expect.anything(), + 'https://example.com', + ); + + const refresh = await manager.refresh(makeReq('x,y')); + expect(refresh.scope).toBe('x y g'); + + expect(setGrantedScopes).not.toHaveBeenCalled(); + await expect( + refresh.commit({ + session: { scope: 'y,z a' }, + } as OAuthAuthenticatorResult), + ).resolves.toEqual('x y g'); + expect(setGrantedScopes).toHaveBeenCalledWith( + expect.anything(), + 'x y g', + 'https://example.com', + ); + }); + + it('should use custom scope transform', async () => { + const manager = CookieScopeManager.create({ + additionalScopes: ['b'], + authenticator: { + scopes: { + persist: true, + required: ['a'], + transform: ({ required, additional, requested, granted }) => + new Set([ + ...[...requested].map(s => `requested-${s}`), + ...[...granted].map(s => `granted-${s}`), + ...[...required].map(s => `required-${s}`), + ...[...additional].map(s => `additional-${s}`), + ]), + } as OAuthAuthenticatorScopeOptions, + } as OAuthAuthenticator, + cookieManager: { + getGrantedScopes: _req => 'g', + setGrantedScopes: (_req, _scope, _origin) => {}, + } as OAuthCookieManager, + }); + + await expect(manager.start(makeReq())).resolves.toEqual({ + scope: 'granted-g required-a additional-b', + scopeState: { + scope: 'granted-g required-a additional-b', + }, + }); + await expect(manager.start(makeReq('x'))).resolves.toEqual({ + scope: 'requested-x granted-g required-a additional-b', + scopeState: { + scope: 'requested-x granted-g required-a additional-b', + }, + }); + + const refresh = await manager.refresh(makeReq('x,y')); + expect(refresh.scope).toBe( + 'requested-x requested-y granted-g required-a additional-b', + ); + + await expect( + refresh.commit({ + session: { scope: 'y,z a' }, + } as OAuthAuthenticatorResult), + ).resolves.toEqual( + 'requested-x requested-y granted-g required-a additional-b', + ); + }); + + it('should fail on invalid input', async () => { + const manager = CookieScopeManager.create({ + authenticator: { + scopes: { + persist: true, + } as OAuthAuthenticatorScopeOptions, + } as OAuthAuthenticator, + cookieManager: {} as OAuthCookieManager, + }); + + await expect( + manager.handleCallback(makeReq(), { + result: { session: { scope: 'x,y' } } as OAuthAuthenticatorResult, + state: {} as OAuthState, + }), + ).rejects.toThrow('No scope found in OAuth state'); + + await expect(manager.clear({} as express.Request)).rejects.toThrow( + 'No response object found in request', + ); + }); +}); diff --git a/plugins/auth-node/src/oauth/CookieScopeManager.ts b/plugins/auth-node/src/oauth/CookieScopeManager.ts new file mode 100644 index 0000000000..3cbf977e09 --- /dev/null +++ b/plugins/auth-node/src/oauth/CookieScopeManager.ts @@ -0,0 +1,164 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import express from 'express'; +import { + OAuthAuthenticator, + OAuthAuthenticatorResult, + OAuthAuthenticatorScopeOptions, +} from './types'; +import { OAuthCookieManager } from './OAuthCookieManager'; +import { OAuthState } from './state'; +import { AuthenticationError } from '@backstage/errors'; +import { Config } from '@backstage/config'; + +function reqRes(req: express.Request): express.Response { + const res = req.res; + if (!res) { + throw new Error('No response object found in request'); + } + return res; +} + +const defaultTransform: Required['transform'] = + ({ requested, granted, required, additional }) => { + return [...requested, ...granted, ...required, ...additional]; + }; + +function splitScope(scope?: string): Iterable { + if (!scope) { + return []; + } + + return scope.split(/[\s|,]/).filter(Boolean); +} + +export class CookieScopeManager { + static create(options: { + config?: Config; + additionalScopes?: string[]; + authenticator: OAuthAuthenticator; + cookieManager: OAuthCookieManager; + }) { + const { authenticator, config } = options; + + const shouldPersistScopes = + authenticator.scopes?.persist ?? + authenticator.shouldPersistScopes ?? + false; + + const configScopes = + typeof config?.getOptional('additionalScopes') === 'string' + ? splitScope(config.getString('additionalScopes')) + : config?.getOptionalStringArray('additionalScopes') ?? []; + + const transform = authenticator?.scopes?.transform ?? defaultTransform; + const additional = [...configScopes, ...(options.additionalScopes ?? [])]; + const required = authenticator?.scopes?.required ?? []; + + return new CookieScopeManager( + (requested, granted) => + Array.from( + new Set(transform({ required, additional, requested, granted })), + ).join(' '), + shouldPersistScopes ? options.cookieManager : undefined, + ); + } + + private constructor( + private readonly scopeTransform: ( + requested: Iterable, + granted: Iterable, + ) => string, + private readonly cookieManager?: OAuthCookieManager, + ) {} + + async start( + req: express.Request, + ): Promise<{ scopeState?: Partial; scope: string }> { + const requestScope = splitScope(req.query.scope?.toString()); + const grantedScope = splitScope(this.cookieManager?.getGrantedScopes(req)); + + const scope = this.scopeTransform(requestScope, grantedScope); + + if (this.cookieManager) { + // If scopes are persisted then we pass them through the state so that we + // can set the cookie on successful auth + return { + scope, + scopeState: { scope }, + }; + } + return { scope }; + } + + async handleCallback( + req: express.Request, + ctx: { + result: OAuthAuthenticatorResult; + state: OAuthState; + origin?: string; + }, + ): Promise { + // If we are not persisting scopes we can forward the scope from the result + if (!this.cookieManager) { + return Array.from(splitScope(ctx.result.session.scope)).join(' '); + } + + const scope = ctx.state.scope; + if (scope === undefined) { + throw new AuthenticationError('No scope found in OAuth state'); + } + + // Store the scope that we have been granted for this session. This is useful if + // the provider does not return granted scopes on refresh or if they are normalized. + this.cookieManager.setGrantedScopes(reqRes(req), scope, ctx.origin); + + return scope; + } + + async clear(req: express.Request): Promise { + if (this.cookieManager) { + this.cookieManager.removeGrantedScopes(reqRes(req), req.get('origin')); + } + } + + async refresh(req: express.Request): Promise<{ + scope: string; + commit(result: OAuthAuthenticatorResult): Promise; + }> { + const requestScope = splitScope(req.query.scope?.toString()); + const grantedScope = splitScope(this.cookieManager?.getGrantedScopes(req)); + + const scope = this.scopeTransform(requestScope, grantedScope); + + return { + scope, + commit: async result => { + if (this.cookieManager) { + this.cookieManager.setGrantedScopes( + reqRes(req), + scope, + req.get('origin'), + ); + return scope; + } + + return Array.from(splitScope(result.session.scope)).join(' '); + }, + }; + } +} diff --git a/plugins/auth-node/src/oauth/OAuthCookieManager.ts b/plugins/auth-node/src/oauth/OAuthCookieManager.ts index 5fe2304610..1d06242a2e 100644 --- a/plugins/auth-node/src/oauth/OAuthCookieManager.ts +++ b/plugins/auth-node/src/oauth/OAuthCookieManager.ts @@ -106,6 +106,13 @@ export class OAuthCookieManager { }); } + removeGrantedScopes(res: Response, origin?: string) { + res.cookie(this.grantedScopeCookie, '', { + maxAge: 0, + ...this.getConfig(origin), + }); + } + setGrantedScopes(res: Response, scope: string, origin?: string) { res.cookie(this.grantedScopeCookie, scope, { maxAge: THOUSAND_DAYS_MS, @@ -113,15 +120,15 @@ export class OAuthCookieManager { }); } - getNonce(req: Request) { + getNonce(req: Request): string | undefined { return req.cookies[this.nonceCookie]; } - getRefreshToken(req: Request) { + getRefreshToken(req: Request): string | undefined { return req.cookies[this.refreshTokenCookie]; } - getGrantedScopes(req: Request) { + getGrantedScopes(req: Request): string | undefined { return req.cookies[this.grantedScopeCookie]; } } diff --git a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts index 87fde6a1a2..a3387b7038 100644 --- a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts +++ b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts @@ -29,6 +29,7 @@ import { SignInResolverFactory } from '../sign-in/createSignInResolverFactory'; /** @public */ export function createOAuthProviderFactory(options: { authenticator: OAuthAuthenticator; + additionalScopes?: string[]; stateTransform?: OAuthStateTransform; profileTransform?: ProfileTransform>; signInResolver?: SignInResolver>; @@ -57,6 +58,7 @@ export function createOAuthProviderFactory(options: { cookieConfigurer: ctx.cookieConfigurer, providerId: ctx.providerId, resolverContext: ctx.resolverContext, + additionalScopes: options.additionalScopes, stateTransform: options.stateTransform, profileTransform: options.profileTransform, signInResolver, diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts index a0735e3ba0..82bfa2f02c 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts @@ -27,7 +27,6 @@ import { encodeOAuthState, decodeOAuthState, OAuthStateTransform, - OAuthState, } from './state'; import { sendWebMessageResponse } from '../flow'; import { prepareBackstageIdentityResponse } from '../identity'; @@ -42,6 +41,7 @@ import { } from '../types'; import { OAuthAuthenticator, OAuthAuthenticatorResult } from './types'; import { Config } from '@backstage/config'; +import { CookieScopeManager } from './CookieScopeManager'; /** @public */ export interface OAuthRouteHandlersOptions { @@ -52,6 +52,7 @@ export interface OAuthRouteHandlersOptions { providerId: string; config: Config; resolverContext: AuthResolverContext; + additionalScopes?: string[]; stateTransform?: OAuthStateTransform; profileTransform?: ProfileTransform>; cookieConfigurer?: CookieConfigurer; @@ -111,14 +112,19 @@ export function createOAuthRouteHandlers( cookieConfigurer, }); + const scopeManager = CookieScopeManager.create({ + config, + authenticator, + cookieManager, + additionalScopes: options.additionalScopes, + }); + return { async start( this: never, req: express.Request, res: express.Response, ): Promise { - // retrieve scopes from request - const scope = req.query.scope?.toString() ?? ''; const env = req.query.env?.toString(); const origin = req.query.origin?.toString(); const redirectUrl = req.query.redirectUrl?.toString(); @@ -132,19 +138,17 @@ export function createOAuthRouteHandlers( // set a nonce cookie before redirecting to oauth provider cookieManager.setNonce(res, nonce, origin); - const state: OAuthState = { nonce, env, origin, redirectUrl, flow }; - - // If scopes are persisted then we pass them through the state so that we - // can set the cookie on successful auth - if (authenticator.shouldPersistScopes && scope) { - state.scope = scope; - } + const { scope, scopeState } = await scopeManager.start(req); + const state = { nonce, env, origin, redirectUrl, flow, ...scopeState }; const { state: transformedState } = await stateTransform(state, { req }); - const encodedState = encodeOAuthState(transformedState); const { url, status } = await options.authenticator.start( - { req, scope, state: encodedState }, + { + req, + scope, + state: encodeOAuthState(transformedState), + }, authenticatorCtx, ); @@ -159,19 +163,19 @@ export function createOAuthRouteHandlers( req: express.Request, res: express.Response, ): Promise { - let appOrigin = defaultAppOrigin; + let origin = defaultAppOrigin; try { const state = decodeOAuthState(req.query.state?.toString() ?? ''); if (state.origin) { try { - appOrigin = new URL(state.origin).origin; + origin = new URL(state.origin).origin; } catch { throw new NotAllowedError('App origin is invalid, failed to parse'); } - if (!isOriginAllowed(appOrigin)) { - throw new NotAllowedError(`Origin '${appOrigin}' is not allowed`); + if (!isOriginAllowed(origin)) { + throw new NotAllowedError(`Origin '${origin}' is not allowed`); } } @@ -191,38 +195,35 @@ export function createOAuthRouteHandlers( ); const { profile } = await profileTransform(result, resolverContext); + const signInResult = + signInResolver && + (await signInResolver({ profile, result }, resolverContext)); + + const grantedScopes = await scopeManager.handleCallback(req, { + result, + state, + origin, + }); + const response: ClientOAuthResponse = { profile, providerInfo: { idToken: result.session.idToken, accessToken: result.session.accessToken, - scope: result.session.scope, + scope: grantedScopes, expiresInSeconds: result.session.expiresInSeconds, }, + ...(signInResult && { + backstageIdentity: prepareBackstageIdentityResponse(signInResult), + }), }; - if (signInResolver) { - const identity = await signInResolver( - { profile, result }, - resolverContext, - ); - response.backstageIdentity = - prepareBackstageIdentityResponse(identity); - } - - // Store the scope that we have been granted for this session. This is useful if - // the provider does not return granted scopes on refresh or if they are normalized. - if (authenticator.shouldPersistScopes && state.scope) { - cookieManager.setGrantedScopes(res, state.scope, appOrigin); - response.providerInfo.scope = state.scope; - } - if (result.session.refreshToken) { // set new refresh token cookieManager.setRefreshToken( res, result.session.refreshToken, - appOrigin, + origin, ); } @@ -239,7 +240,7 @@ export function createOAuthRouteHandlers( } // post message back to popup if successful - sendWebMessageResponse(res, appOrigin, { + sendWebMessageResponse(res, origin, { type: 'authorization_response', response, }); @@ -248,7 +249,7 @@ export function createOAuthRouteHandlers( ? error : new Error('Encountered invalid error'); // Being a bit safe and not forwarding the bad value // post error message back to popup if failure - sendWebMessageResponse(res, appOrigin, { + sendWebMessageResponse(res, origin, { type: 'authorization_response', error: { name, message }, }); @@ -273,6 +274,9 @@ export function createOAuthRouteHandlers( // remove refresh token cookie if it is set cookieManager.removeRefreshToken(res, req.get('origin')); + // remove persisted scopes + await scopeManager.clear(req); + res.status(200).end(); }, @@ -294,16 +298,15 @@ export function createOAuthRouteHandlers( throw new InputError('Missing session cookie'); } - let scope = req.query.scope?.toString() ?? ''; - if (authenticator.shouldPersistScopes) { - scope = cookieManager.getGrantedScopes(req); - } + const scopeRefresh = await scopeManager.refresh(req); const result = await authenticator.refresh( - { req, scope, refreshToken }, + { req, scope: scopeRefresh.scope, refreshToken }, authenticatorCtx, ); + const grantedScope = await scopeRefresh.commit(result); + const { profile } = await profileTransform(result, resolverContext); const newRefreshToken = result.session.refreshToken; @@ -320,9 +323,7 @@ export function createOAuthRouteHandlers( providerInfo: { idToken: result.session.idToken, accessToken: result.session.accessToken, - scope: authenticator.shouldPersistScopes - ? scope - : result.session.scope, + scope: grantedScope, expiresInSeconds: result.session.expiresInSeconds, }, }; diff --git a/plugins/auth-node/src/oauth/index.ts b/plugins/auth-node/src/oauth/index.ts index 25213dd2f0..9cff6c5358 100644 --- a/plugins/auth-node/src/oauth/index.ts +++ b/plugins/auth-node/src/oauth/index.ts @@ -39,6 +39,7 @@ export { type OAuthAuthenticatorLogoutInput, type OAuthAuthenticatorRefreshInput, type OAuthAuthenticatorResult, + type OAuthAuthenticatorScopeOptions, type OAuthAuthenticatorStartInput, type OAuthSession, } from './types'; diff --git a/plugins/auth-node/src/oauth/types.ts b/plugins/auth-node/src/oauth/types.ts index 4bd7bd3f3f..c4ae2ee1cf 100644 --- a/plugins/auth-node/src/oauth/types.ts +++ b/plugins/auth-node/src/oauth/types.ts @@ -29,6 +29,22 @@ export interface OAuthSession { refreshTokenExpiresInSeconds?: number; } +/** @public */ +export interface OAuthAuthenticatorScopeOptions { + persist?: boolean; + required?: string[]; + transform?: (options: { + /** Scopes requested by the client */ + requested: Iterable; + /** Scopes which have already been granted */ + granted: Iterable; + /** Scopes that are required for the authenticator to function */ + required: Iterable; + /** Additional scopes added through configuration */ + additional: Iterable; + }) => Iterable; +} + /** @public */ export interface OAuthAuthenticatorStartInput { scope: string; @@ -64,7 +80,9 @@ export interface OAuthAuthenticatorResult { /** @public */ export interface OAuthAuthenticator { defaultProfileTransform: ProfileTransform>; + /** @deprecated use `scopes.persist` instead */ shouldPersistScopes?: boolean; + scopes?: OAuthAuthenticatorScopeOptions; initialize(ctx: { callbackUrl: string; config: Config }): TContext; start( input: OAuthAuthenticatorStartInput, diff --git a/plugins/auth-react/CHANGELOG.md b/plugins/auth-react/CHANGELOG.md index 1af3c2b839..f245ac9e50 100644 --- a/plugins/auth-react/CHANGELOG.md +++ b/plugins/auth-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-react +## 0.1.3-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/auth-react/package.json b/plugins/auth-react/package.json index 478c4e3fb0..8fd9008028 100644 --- a/plugins/auth-react/package.json +++ b/plugins/auth-react/package.json @@ -1,9 +1,15 @@ { "name": "@backstage/plugin-auth-react", - "version": "0.1.3-next.1", + "version": "0.1.3-next.2", "description": "Web library for the auth plugin", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "auth", + "pluginPackages": [ + "@backstage/plugin-auth-backend", + "@backstage/plugin-auth-node", + "@backstage/plugin-auth-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md index 42b62a280b..2805e36324 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.2.20-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/integration@1.12.0-next.1 + ## 0.2.20-next.0 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 929d4bf3cd..a43407fd04 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -1,9 +1,13 @@ { "name": "@backstage/plugin-bitbucket-cloud-common", - "version": "0.2.20-next.0", + "version": "0.2.20-next.1", "description": "Common functionalities for bitbucket-cloud plugins", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "bitbucket-cloud", + "pluginPackages": [ + "@backstage/plugin-bitbucket-cloud-common" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index 4877e42852..fa3d233b10 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.3.14-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + ## 0.3.14-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 1877120e84..ef8f828e3f 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", - "version": "0.3.14-next.2", + "version": "0.3.14-next.3", "description": "A Backstage catalog backend module that helps integrate towards AWS", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index d2e22fe9b3..9799f6bb67 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.39-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + ## 0.1.39-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 1f1d67ae67..06c048647c 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", - "version": "0.1.39-next.2", + "version": "0.1.39-next.3", "description": "A Backstage catalog backend module that helps integrate towards Azure", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md index 667853e9bd..c4e5324788 100644 --- a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-backstage-openapi +## 0.2.2-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-openapi-utils@0.1.12-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.2.2-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-backstage-openapi/package.json b/plugins/catalog-backend-module-backstage-openapi/package.json index 8bf2800f6f..70c1c118c2 100644 --- a/plugins/catalog-backend-module-backstage-openapi/package.json +++ b/plugins/catalog-backend-module-backstage-openapi/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-catalog-backend-module-backstage-openapi", - "version": "0.2.2-next.1", + "version": "0.2.2-next.2", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index f4d9864c7b..1aa0e7c3c7 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.2.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.20-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + ## 0.2.6-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 8c86ecbf19..0288bf3d44 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -1,18 +1,32 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud", + "version": "0.2.6-next.3", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud", - "version": "0.2.6-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" + }, "publishConfig": { "access": "public" }, + "keywords": [ + "backstage" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/catalog-backend-module-bitbucket-cloud" + }, + "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": [ @@ -23,26 +37,18 @@ ] } }, - "backstage": { - "role": "backend-plugin-module" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/catalog-backend-module-bitbucket-cloud" - }, - "keywords": [ - "backstage" + "files": [ + "config.d.ts", + "dist" ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -66,9 +72,5 @@ "luxon": "^3.0.0", "msw": "^1.0.0" }, - "files": [ - "config.d.ts", - "dist" - ], "configSchema": "config.d.ts" } diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index 8cbb911104..e7b67f047e 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.33-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.33-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index 8abe89b04b..7e6f3a919a 100644 --- a/plugins/catalog-backend-module-bitbucket-server/package.json +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -1,17 +1,31 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-server", - "version": "0.1.33-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "version": "0.1.33-next.3", + "backstage": { + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" + }, "publishConfig": { "access": "public" }, + "keywords": [ + "backstage" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/catalog-backend-module-bitbucket-server" + }, + "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": [ @@ -22,26 +36,18 @@ ] } }, - "backstage": { - "role": "backend-plugin-module" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/catalog-backend-module-bitbucket-server" - }, - "keywords": [ - "backstage" + "files": [ + "config.d.ts", + "dist" ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -62,9 +68,5 @@ "luxon": "^3.0.0", "msw": "^1.0.0" }, - "files": [ - "config.d.ts", - "dist" - ], "configSchema": "config.d.ts" } diff --git a/plugins/catalog-backend-module-gcp/CHANGELOG.md b/plugins/catalog-backend-module-gcp/CHANGELOG.md index fddbc29b0b..2d8493c2df 100644 --- a/plugins/catalog-backend-module-gcp/CHANGELOG.md +++ b/plugins/catalog-backend-module-gcp/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-gcp +## 0.1.20-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + ## 0.1.20-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json index dd69e87ac2..cd6a65e2c6 100644 --- a/plugins/catalog-backend-module-gcp/package.json +++ b/plugins/catalog-backend-module-gcp/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-gcp", - "version": "0.1.20-next.2", + "version": "0.1.20-next.3", "description": "A Backstage catalog backend module that helps integrate towards GCP", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 4f7579aa8e..0ef0bfa206 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.36-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.36-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 017781ca1d..84183c1e36 100644 --- a/plugins/catalog-backend-module-gerrit/package.json +++ b/plugins/catalog-backend-module-gerrit/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-catalog-backend-module-gerrit", - "version": "0.1.36-next.2", + "version": "0.1.36-next.3", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.test.ts b/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.test.ts index 110a927655..8b1acbdbaa 100644 --- a/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.test.ts +++ b/plugins/catalog-backend-module-gerrit/src/providers/GerritEntityProvider.test.ts @@ -166,9 +166,11 @@ describe('GerritEntityProvider', () => { gerrit: [ { host: 'gerrit1.com', + gitilesBaseUrl: 'https://gerrit1.com/gitiles', }, { host: 'gerrit2.com', + gitilesBaseUrl: 'https://gerrit2.com/gitiles', }, ], }, @@ -201,6 +203,7 @@ describe('GerritEntityProvider', () => { gerrit: [ { host: 'gerrit1.com', + gitilesBaseUrl: 'https://gerrit1.com/gitiles', }, ], }, diff --git a/plugins/catalog-backend-module-github-org/CHANGELOG.md b/plugins/catalog-backend-module-github-org/CHANGELOG.md index 21ad8f8be3..844f62c572 100644 --- a/plugins/catalog-backend-module-github-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-github-org/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-github-org +## 0.1.14-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-backend-module-github@0.6.2-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + ## 0.1.14-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github-org/package.json b/plugins/catalog-backend-module-github-org/package.json index 6cedc22d4b..45b981e178 100644 --- a/plugins/catalog-backend-module-github-org/package.json +++ b/plugins/catalog-backend-module-github-org/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-github-org", - "version": "0.1.14-next.2", + "version": "0.1.14-next.3", "description": "The github-org backend module for the catalog plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index bd01b1116d..720ba05101 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-github +## 0.6.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + ## 0.6.2-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index ca437f9bf7..a88a64f59d 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-github", - "version": "0.6.2-next.2", + "version": "0.6.2-next.3", "description": "A Backstage catalog backend module that helps integrate towards GitHub", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md b/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md index 6e8c7fac3d..78c7ad3e8c 100644 --- a/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-gitlab-org +## 0.0.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-backend-module-gitlab@0.3.18-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + ## 0.0.2-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab-org/package.json b/plugins/catalog-backend-module-gitlab-org/package.json index 0f12ca4b97..1c7f158277 100644 --- a/plugins/catalog-backend-module-gitlab-org/package.json +++ b/plugins/catalog-backend-module-gitlab-org/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab-org", - "version": "0.0.2-next.2", + "version": "0.0.2-next.3", "description": "The gitlab-org backend module for the catalog plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index b65c12cd0b..2f399995be 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.3.18-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + ## 0.3.18-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index e1d1d63e5f..6d01d225cd 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", - "version": "0.3.18-next.2", + "version": "0.3.18-next.3", "description": "A Backstage catalog backend module that helps integrate towards GitLab", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index 45c25eaa95..51904c8e97 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.4.24-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.4.24-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index 8544c300b5..14e8e37ae9 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", - "version": "0.4.24-next.2", + "version": "0.4.24-next.3", "description": "An entity provider for streaming large asset sources into the catalog", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 57395fb76b..2dd3815850 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.6.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.6.0-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index ed2d4e6e65..dfce5277d2 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", - "version": "0.6.0-next.2", + "version": "0.6.0-next.3", "description": "A Backstage catalog backend module that helps integrate towards LDAP", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index ae9e2e18b1..cb9acc5380 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.5.27-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + ## 0.5.27-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 6d1a913b31..035093e58c 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", - "version": "0.5.27-next.2", + "version": "0.5.27-next.3", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index b3f6a2a1f9..876c095e24 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.37-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-backend@1.23.0-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + ## 0.1.37-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 716f6312b3..3691f1fcb3 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", - "version": "0.1.37-next.2", + "version": "0.1.37-next.3", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md index 733403ea3e..ef16a4547c 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.1.25-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.1.25-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index 701c217c39..48997e80a9 100644 --- a/plugins/catalog-backend-module-puppetdb/package.json +++ b/plugins/catalog-backend-module-puppetdb/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-puppetdb", - "version": "0.1.25-next.2", + "version": "0.1.25-next.3", "description": "A Backstage catalog backend module that helps integrate towards PuppetDB", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md index f0147edac5..e177994807 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md +++ b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-scaffolder-entity-model +## 0.1.17-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/catalog-model@1.5.0 + ## 0.1.17-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/package.json b/plugins/catalog-backend-module-scaffolder-entity-model/package.json index a435d8926c..4b7813d8a3 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/package.json +++ b/plugins/catalog-backend-module-scaffolder-entity-model/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-scaffolder-entity-model", - "version": "0.1.17-next.2", + "version": "0.1.17-next.3", "description": "Adds support for the scaffolder specific entity model (e.g. the Template kind) to the catalog backend plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md index 3012fe3912..93ff11abaa 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.4.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-catalog-unprocessed-entities-common@0.0.2-next.0 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + ## 0.4.6-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index b09df8eb4c..22e6d46649 100644 --- a/plugins/catalog-backend-module-unprocessed/package.json +++ b/plugins/catalog-backend-module-unprocessed/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-catalog-backend-module-unprocessed", - "version": "0.4.6-next.2", + "version": "0.4.6-next.3", "description": "Backstage Catalog module to view unprocessed entities", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "catalog", + "pluginPackage": "@backstage/plugin-catalog-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index f6d31406e6..e1dc06e78b 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-catalog-backend +## 1.23.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-search-backend-module-catalog@0.1.25-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-openapi-utils@0.1.12-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.23.0-next.2 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index a0447cd7d1..f1a22f839a 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,9 +1,17 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "1.23.0-next.2", + "version": "1.23.0-next.3", "description": "The Backstage backend plugin that provides the Backstage catalog", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "catalog", + "pluginPackages": [ + "@backstage/plugin-catalog", + "@backstage/plugin-catalog-backend", + "@backstage/plugin-catalog-common", + "@backstage/plugin-catalog-node", + "@backstage/plugin-catalog-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md index a6dc3f06d6..75b3c0d6d5 100644 --- a/plugins/catalog-common/CHANGELOG.md +++ b/plugins/catalog-common/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-common +## 1.0.24-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/catalog-model@1.5.0 + ## 1.0.23 ### Patch Changes diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json index 936fc3c935..7bdcfc2bc7 100644 --- a/plugins/catalog-common/package.json +++ b/plugins/catalog-common/package.json @@ -1,9 +1,17 @@ { "name": "@backstage/plugin-catalog-common", - "version": "1.0.23", + "version": "1.0.24-next.0", "description": "Common functionalities for the catalog plugin", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "catalog", + "pluginPackages": [ + "@backstage/plugin-catalog", + "@backstage/plugin-catalog-backend", + "@backstage/plugin-catalog-common", + "@backstage/plugin-catalog-node", + "@backstage/plugin-catalog-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 887eb0b67a..c7194dcac9 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-graph +## 0.4.6-next.2 + +### Patch Changes + +- 8d474d3: Add function to `EntityRelationsGraph` filter that excludes entities from graph +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/types@1.1.1 + ## 0.4.6-next.1 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 108e48399a..5b44c7afa5 100644 --- a/plugins/catalog-graph/package.json +++ b/plugins/catalog-graph/package.json @@ -1,8 +1,12 @@ { "name": "@backstage/plugin-catalog-graph", - "version": "0.4.6-next.1", + "version": "0.4.6-next.2", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "catalog-graph", + "pluginPackages": [ + "@backstage/plugin-catalog-graph" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md index c27568a0b6..ed04b5a0f8 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-import +## 0.12.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + ## 0.12.0-next.2 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index b914747961..08c07000d5 100644 --- a/plugins/catalog-import/package.json +++ b/plugins/catalog-import/package.json @@ -1,9 +1,13 @@ { "name": "@backstage/plugin-catalog-import", - "version": "0.12.0-next.2", + "version": "0.12.0-next.3", "description": "A Backstage plugin the helps you import entities into your catalog", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "catalog-import", + "pluginPackages": [ + "@backstage/plugin-catalog-import" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md index 2e05c7efc4..2c4bf5025d 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-catalog-node +## 1.12.1-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.12.1-next.1 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 780e67a55e..e750a32249 100644 --- a/plugins/catalog-node/package.json +++ b/plugins/catalog-node/package.json @@ -1,9 +1,17 @@ { "name": "@backstage/plugin-catalog-node", - "version": "1.12.1-next.1", + "version": "1.12.1-next.2", "description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "catalog", + "pluginPackages": [ + "@backstage/plugin-catalog", + "@backstage/plugin-catalog-backend", + "@backstage/plugin-catalog-common", + "@backstage/plugin-catalog-node", + "@backstage/plugin-catalog-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md index b900fec4a2..a4f2bf8980 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-catalog-react +## 1.12.1-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- fa8560e: Prevents Autocomplete dropdown from overlapping sidebar on hovering it +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + ## 1.12.1-next.1 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 8a63a73a10..64cbc27fb1 100644 --- a/plugins/catalog-react/package.json +++ b/plugins/catalog-react/package.json @@ -1,18 +1,39 @@ { "name": "@backstage/plugin-catalog-react", + "version": "1.12.1-next.2", "description": "A frontend library that helps other Backstage plugins interact with the catalog", - "version": "1.12.1-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "web-library", + "pluginId": "catalog", + "pluginPackages": [ + "@backstage/plugin-catalog", + "@backstage/plugin-catalog-backend", + "@backstage/plugin-catalog-common", + "@backstage/plugin-catalog-node", + "@backstage/plugin-catalog-react" + ] + }, "publishConfig": { "access": "public" }, + "keywords": [ + "backstage" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/catalog-react" + }, + "license": "Apache-2.0", + "sideEffects": false, "exports": { ".": "./src/index.ts", "./alpha": "./src/alpha.tsx", "./package.json": "./package.json" }, + "main": "src/index.ts", + "types": "src/index.ts", "typesVersions": { "*": { "alpha": [ @@ -23,27 +44,17 @@ ] } }, - "backstage": { - "role": "web-library" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/catalog-react" - }, - "keywords": [ - "backstage" + "files": [ + "dist" ], - "sideEffects": false, "scripts": { "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean", - "start": "backstage-cli package start" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/catalog-client": "workspace:^", @@ -71,11 +82,6 @@ "yaml": "^2.0.0", "zen-observable": "^0.10.0" }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-router-dom": "6.0.0-beta.0 || ^6.3.0" - }, "devDependencies": { "@backstage/cli": "workspace:^", "@backstage/core-app-api": "workspace:^", @@ -89,7 +95,9 @@ "@types/zen-observable": "^0.8.0", "react-test-renderer": "^16.13.1" }, - "files": [ - "dist" - ] + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "6.0.0-beta.0 || ^6.3.0" + } } diff --git a/plugins/catalog-unprocessed-entities-common/CHANGELOG.md b/plugins/catalog-unprocessed-entities-common/CHANGELOG.md index 9e6db9682f..f399f80bc0 100644 --- a/plugins/catalog-unprocessed-entities-common/CHANGELOG.md +++ b/plugins/catalog-unprocessed-entities-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-unprocessed-entities-common +## 0.0.2-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + ## 0.0.1 ### Patch Changes diff --git a/plugins/catalog-unprocessed-entities-common/package.json b/plugins/catalog-unprocessed-entities-common/package.json index 75e85a44e0..9367e4d17d 100644 --- a/plugins/catalog-unprocessed-entities-common/package.json +++ b/plugins/catalog-unprocessed-entities-common/package.json @@ -1,9 +1,14 @@ { "name": "@backstage/plugin-catalog-unprocessed-entities-common", - "version": "0.0.1", + "version": "0.0.2-next.0", "description": "Common functionalities for the catalog-unprocessed-entities plugin", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "catalog-unprocessed-entities", + "pluginPackages": [ + "@backstage/plugin-catalog-unprocessed-entities", + "@backstage/plugin-catalog-unprocessed-entities-common" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/catalog-unprocessed-entities/CHANGELOG.md b/plugins/catalog-unprocessed-entities/CHANGELOG.md index d6dd87c51b..a87b0b1957 100644 --- a/plugins/catalog-unprocessed-entities/CHANGELOG.md +++ b/plugins/catalog-unprocessed-entities/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-unprocessed-entities +## 0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/catalog-unprocessed-entities/package.json b/plugins/catalog-unprocessed-entities/package.json index 819fdb1a1c..7411123c6c 100644 --- a/plugins/catalog-unprocessed-entities/package.json +++ b/plugins/catalog-unprocessed-entities/package.json @@ -1,8 +1,13 @@ { "name": "@backstage/plugin-catalog-unprocessed-entities", - "version": "0.2.5-next.1", + "version": "0.2.5-next.2", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "catalog-unprocessed-entities", + "pluginPackages": [ + "@backstage/plugin-catalog-unprocessed-entities", + "@backstage/plugin-catalog-unprocessed-entities-common" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md index 01fde9d752..0434b0262b 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-catalog +## 1.21.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- e04e57d: Fix bug with missing Actions column after adding "pagination" prop to catalog table +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.21.0-next.2 ### Minor Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index e100dab473..dba938217f 100644 --- a/plugins/catalog/package.json +++ b/plugins/catalog/package.json @@ -1,9 +1,17 @@ { "name": "@backstage/plugin-catalog", - "version": "1.21.0-next.2", + "version": "1.21.0-next.3", "description": "The Backstage plugin for browsing the Backstage catalog", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "catalog", + "pluginPackages": [ + "@backstage/plugin-catalog", + "@backstage/plugin-catalog-backend", + "@backstage/plugin-catalog-common", + "@backstage/plugin-catalog-node", + "@backstage/plugin-catalog-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md index c9befd72ce..59430dca35 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-config-schema +## 0.1.56-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.1.56-next.1 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index d40e47a45e..8a0f1fb1c7 100644 --- a/plugins/config-schema/package.json +++ b/plugins/config-schema/package.json @@ -1,9 +1,13 @@ { "name": "@backstage/plugin-config-schema", - "version": "0.1.56-next.1", + "version": "0.1.56-next.2", "description": "A Backstage plugin that lets you browse the configuration schema of your app", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "config-schema", + "pluginPackages": [ + "@backstage/plugin-config-schema" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/devtools-backend/CHANGELOG.md b/plugins/devtools-backend/CHANGELOG.md index 8c2022b9b8..ef2e9801d5 100644 --- a/plugins/devtools-backend/CHANGELOG.md +++ b/plugins/devtools-backend/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-devtools-backend +## 0.3.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-devtools-common@0.1.10-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/cli-common@0.1.14-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config-loader@1.8.1-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.3.5-next.2 ### Patch Changes diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index 7e9727f534..415199f0f8 100644 --- a/plugins/devtools-backend/package.json +++ b/plugins/devtools-backend/package.json @@ -1,31 +1,41 @@ { "name": "@backstage/plugin-devtools-backend", - "version": "0.3.5-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "version": "0.3.5-next.3", + "backstage": { + "role": "backend-plugin", + "pluginId": "devtools", + "pluginPackages": [ + "@backstage/plugin-devtools", + "@backstage/plugin-devtools-backend", + "@backstage/plugin-devtools-common" + ] + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, - "backstage": { - "role": "backend-plugin" - }, "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "plugins/devtools-backend" }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -60,9 +70,5 @@ "@types/yarnpkg__lockfile": "^1.1.4", "supertest": "^6.2.4" }, - "files": [ - "dist", - "config.d.ts" - ], "configSchema": "config.d.ts" } diff --git a/plugins/devtools-common/CHANGELOG.md b/plugins/devtools-common/CHANGELOG.md index cc6f2442c7..f887a90338 100644 --- a/plugins/devtools-common/CHANGELOG.md +++ b/plugins/devtools-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-devtools-common +## 0.1.10-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/types@1.1.1 + ## 0.1.9 ### Patch Changes diff --git a/plugins/devtools-common/package.json b/plugins/devtools-common/package.json index 1cce2487f6..06577b2c0f 100644 --- a/plugins/devtools-common/package.json +++ b/plugins/devtools-common/package.json @@ -1,9 +1,15 @@ { "name": "@backstage/plugin-devtools-common", - "version": "0.1.9", + "version": "0.1.10-next.0", "description": "Common functionalities for the devtools plugin", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "devtools", + "pluginPackages": [ + "@backstage/plugin-devtools", + "@backstage/plugin-devtools-backend", + "@backstage/plugin-devtools-common" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/devtools/CHANGELOG.md b/plugins/devtools/CHANGELOG.md index da6067de1a..448734d4c8 100644 --- a/plugins/devtools/CHANGELOG.md +++ b/plugins/devtools/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-devtools +## 0.1.15-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-devtools-common@0.1.10-next.0 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/devtools/package.json b/plugins/devtools/package.json index 760a70bc62..fd16205104 100644 --- a/plugins/devtools/package.json +++ b/plugins/devtools/package.json @@ -1,17 +1,33 @@ { "name": "@backstage/plugin-devtools", - "version": "0.1.15-next.1", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "version": "0.1.15-next.2", + "backstage": { + "role": "frontend-plugin", + "pluginId": "devtools", + "pluginPackages": [ + "@backstage/plugin-devtools", + "@backstage/plugin-devtools-backend", + "@backstage/plugin-devtools-common" + ] + }, "publishConfig": { "access": "public" }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/devtools" + }, + "license": "Apache-2.0", + "sideEffects": false, "exports": { ".": "./src/index.ts", "./alpha": "./src/alpha.ts", "./package.json": "./package.json" }, + "main": "src/index.ts", + "types": "src/index.ts", "typesVersions": { "*": { "alpha": [ @@ -22,24 +38,17 @@ ] } }, - "backstage": { - "role": "frontend-plugin" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/devtools" - }, - "sideEffects": false, + "files": [ + "dist" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/core-compat-api": "workspace:^", @@ -55,18 +64,15 @@ "react-json-view": "^1.21.3", "react-use": "^17.2.4" }, - "peerDependencies": { - "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-router-dom": "6.0.0-beta.0 || ^6.3.0" - }, "devDependencies": { "@backstage/cli": "workspace:^", "@backstage/dev-utils": "workspace:^", "@testing-library/jest-dom": "^6.0.0" }, - "files": [ - "dist" - ] + "peerDependencies": { + "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "6.0.0-beta.0 || ^6.3.0" + } } diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md index 409b28e30a..917c613b7a 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.3.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + ## 0.3.5-next.2 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 3b8cdbf064..625dff4e6f 100644 --- a/plugins/events-backend-module-aws-sqs/package.json +++ b/plugins/events-backend-module-aws-sqs/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-events-backend-module-aws-sqs", - "version": "0.3.5-next.2", + "version": "0.3.5-next.3", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "events", + "pluginPackage": "@backstage/plugin-events-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md index a822e82a97..9d41baa75c 100644 --- a/plugins/events-backend-module-azure/CHANGELOG.md +++ b/plugins/events-backend-module-azure/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-azure +## 0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index 2dccb516a1..6e124a6703 100644 --- a/plugins/events-backend-module-azure/package.json +++ b/plugins/events-backend-module-azure/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-events-backend-module-azure", - "version": "0.2.5-next.1", + "version": "0.2.5-next.2", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "events", + "pluginPackage": "@backstage/plugin-events-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md index 6acbbb36b3..7b5a3c4e5e 100644 --- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-bitbucket-cloud +## 0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index 93e46be069..efb4809dd6 100644 --- a/plugins/events-backend-module-bitbucket-cloud/package.json +++ b/plugins/events-backend-module-bitbucket-cloud/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-events-backend-module-bitbucket-cloud", - "version": "0.2.5-next.1", + "version": "0.2.5-next.2", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "events", + "pluginPackage": "@backstage/plugin-events-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md index 494745cc3f..ff33bde8ec 100644 --- a/plugins/events-backend-module-gerrit/CHANGELOG.md +++ b/plugins/events-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-gerrit +## 0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index f0296e341b..7a708a8fe5 100644 --- a/plugins/events-backend-module-gerrit/package.json +++ b/plugins/events-backend-module-gerrit/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-events-backend-module-gerrit", - "version": "0.2.5-next.1", + "version": "0.2.5-next.2", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "events", + "pluginPackage": "@backstage/plugin-events-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md index f2fb8bf437..1447cb2c6d 100644 --- a/plugins/events-backend-module-github/CHANGELOG.md +++ b/plugins/events-backend-module-github/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-events-backend-module-github +## 0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/config@1.2.0 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index 152a507203..80681a2228 100644 --- a/plugins/events-backend-module-github/package.json +++ b/plugins/events-backend-module-github/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-events-backend-module-github", - "version": "0.2.5-next.1", + "version": "0.2.5-next.2", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "events", + "pluginPackage": "@backstage/plugin-events-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md index 47edb2e93c..601b6061fa 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/config@1.2.0 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index a429a5eb15..7ee53328ef 100644 --- a/plugins/events-backend-module-gitlab/package.json +++ b/plugins/events-backend-module-gitlab/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-events-backend-module-gitlab", - "version": "0.2.5-next.1", + "version": "0.2.5-next.2", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "events", + "pluginPackage": "@backstage/plugin-events-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md index 3b1896a936..1c72ddb329 100644 --- a/plugins/events-backend-test-utils/CHANGELOG.md +++ b/plugins/events-backend-test-utils/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-test-utils +## 0.1.29-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-events-node@0.3.5-next.2 + ## 0.1.29-next.1 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index 951b7cc162..6b97deb195 100644 --- a/plugins/events-backend-test-utils/package.json +++ b/plugins/events-backend-test-utils/package.json @@ -1,9 +1,15 @@ { "name": "@backstage/plugin-events-backend-test-utils", - "version": "0.1.29-next.1", + "version": "0.1.29-next.2", "description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "events", + "pluginPackages": [ + "@backstage/plugin-events-backend", + "@backstage/plugin-events-backend-test-utils", + "@backstage/plugin-events-node" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md index 1c782bd269..0e4baec5bb 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-events-backend +## 0.3.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + ## 0.3.6-next.2 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index 7d4de4bca9..9aa7f160ff 100644 --- a/plugins/events-backend/package.json +++ b/plugins/events-backend/package.json @@ -1,8 +1,14 @@ { "name": "@backstage/plugin-events-backend", - "version": "0.3.6-next.2", + "version": "0.3.6-next.3", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "events", + "pluginPackages": [ + "@backstage/plugin-events-backend", + "@backstage/plugin-events-backend-test-utils", + "@backstage/plugin-events-node" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md index d6eb61e842..3c3ecb48ba 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-node +## 0.3.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + ## 0.3.5-next.1 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index a2fecb64e3..cd3ed6a8d9 100644 --- a/plugins/events-node/package.json +++ b/plugins/events-node/package.json @@ -1,9 +1,15 @@ { "name": "@backstage/plugin-events-node", - "version": "0.3.5-next.1", + "version": "0.3.5-next.2", "description": "The plugin-events-node module for @backstage/plugin-events-backend", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "events", + "pluginPackages": [ + "@backstage/plugin-events-backend", + "@backstage/plugin-events-backend-test-utils", + "@backstage/plugin-events-node" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md index 7e981d5cfe..303f21317c 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @internal/plugin-todo-list-backend +## 1.0.28-next.3 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/errors@1.2.4 + ## 1.0.28-next.2 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index e643eddc30..d562e96e6e 100644 --- a/plugins/example-todo-list-backend/package.json +++ b/plugins/example-todo-list-backend/package.json @@ -1,8 +1,14 @@ { "name": "@internal/plugin-todo-list-backend", - "version": "1.0.28-next.2", + "version": "1.0.28-next.3", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "todo-list", + "pluginPackages": [ + "@internal/plugin-todo-list", + "@internal/plugin-todo-list-backend", + "@internal/plugin-todo-list-common" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/example-todo-list-common/CHANGELOG.md b/plugins/example-todo-list-common/CHANGELOG.md index 7bd211c8f3..a1434bbe2e 100644 --- a/plugins/example-todo-list-common/CHANGELOG.md +++ b/plugins/example-todo-list-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @internal/plugin-todo-list-common +## 1.0.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + ## 1.0.18 ### Patch Changes diff --git a/plugins/example-todo-list-common/package.json b/plugins/example-todo-list-common/package.json index 746908d0bb..ad53bfd0bb 100644 --- a/plugins/example-todo-list-common/package.json +++ b/plugins/example-todo-list-common/package.json @@ -1,8 +1,14 @@ { "name": "@internal/plugin-todo-list-common", - "version": "1.0.18", + "version": "1.0.19-next.0", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "todo-list", + "pluginPackages": [ + "@internal/plugin-todo-list", + "@internal/plugin-todo-list-backend", + "@internal/plugin-todo-list-common" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md index fac2dece3c..93ea989354 100644 --- a/plugins/example-todo-list/CHANGELOG.md +++ b/plugins/example-todo-list/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-todo-list +## 1.0.28-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 1.0.28-next.1 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index 06062e590d..a46216f52f 100644 --- a/plugins/example-todo-list/package.json +++ b/plugins/example-todo-list/package.json @@ -1,8 +1,14 @@ { "name": "@internal/plugin-todo-list", - "version": "1.0.28-next.1", + "version": "1.0.28-next.2", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "todo-list", + "pluginPackages": [ + "@internal/plugin-todo-list", + "@internal/plugin-todo-list-backend", + "@internal/plugin-todo-list-common" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/home-react/CHANGELOG.md b/plugins/home-react/CHANGELOG.md index e3b72fe1fa..fb76366dba 100644 --- a/plugins/home-react/CHANGELOG.md +++ b/plugins/home-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-home-react +## 0.1.14-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/home-react/package.json b/plugins/home-react/package.json index 37c6c185d3..757fe3ecdd 100644 --- a/plugins/home-react/package.json +++ b/plugins/home-react/package.json @@ -1,9 +1,14 @@ { "name": "@backstage/plugin-home-react", - "version": "0.1.14-next.1", + "version": "0.1.14-next.2", "description": "A Backstage plugin that contains react components helps you build a home page", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "home", + "pluginPackages": [ + "@backstage/plugin-home", + "@backstage/plugin-home-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md index a1cc98893c..4ef99e645a 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-home +## 0.7.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-home-react@0.1.14-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + ## 0.7.5-next.1 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index 52d27dbf58..1e78e7c8f3 100644 --- a/plugins/home/package.json +++ b/plugins/home/package.json @@ -1,9 +1,14 @@ { "name": "@backstage/plugin-home", - "version": "0.7.5-next.1", + "version": "0.7.5-next.2", "description": "A Backstage plugin that helps you build a home page", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "home", + "pluginPackages": [ + "@backstage/plugin-home", + "@backstage/plugin-home-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md index 328fcd6457..a1a4d9135b 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-kubernetes-backend +## 0.18.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-kubernetes-node@0.1.13-next.3 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + ## 0.18.0-next.2 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 2e097c1142..0df77bfe8b 100644 --- a/plugins/kubernetes-backend/package.json +++ b/plugins/kubernetes-backend/package.json @@ -1,18 +1,39 @@ { "name": "@backstage/plugin-kubernetes-backend", + "version": "0.18.0-next.3", "description": "A Backstage backend plugin that integrates towards Kubernetes", - "version": "0.18.0-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "backend-plugin", + "pluginId": "kubernetes", + "pluginPackages": [ + "@backstage/plugin-kubernetes", + "@backstage/plugin-kubernetes-backend", + "@backstage/plugin-kubernetes-common", + "@backstage/plugin-kubernetes-node", + "@backstage/plugin-kubernetes-react" + ] + }, "publishConfig": { "access": "public" }, + "keywords": [ + "backstage", + "kubernetes" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/kubernetes-backend" + }, + "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": [ @@ -23,28 +44,18 @@ ] } }, - "backstage": { - "role": "backend-plugin" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/kubernetes-backend" - }, - "keywords": [ - "backstage", - "kubernetes" + "files": [ + "dist", + "config.d.ts" ], - "configSchema": "config.d.ts", "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@aws-crypto/sha256-js": "^5.0.0", @@ -97,8 +108,5 @@ "supertest": "^6.1.3", "ws": "^8.13.0" }, - "files": [ - "dist", - "config.d.ts" - ] + "configSchema": "config.d.ts" } diff --git a/plugins/kubernetes-cluster/CHANGELOG.md b/plugins/kubernetes-cluster/CHANGELOG.md index 34e7effd6d..9f169fbbf2 100644 --- a/plugins/kubernetes-cluster/CHANGELOG.md +++ b/plugins/kubernetes-cluster/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-kubernetes-cluster +## 0.0.12-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-kubernetes-react@0.4.0-next.3 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 0.0.12-next.2 ### Patch Changes diff --git a/plugins/kubernetes-cluster/package.json b/plugins/kubernetes-cluster/package.json index d032371e46..3d8ba47acb 100644 --- a/plugins/kubernetes-cluster/package.json +++ b/plugins/kubernetes-cluster/package.json @@ -1,9 +1,13 @@ { "name": "@backstage/plugin-kubernetes-cluster", - "version": "0.0.12-next.2", + "version": "0.0.12-next.3", "description": "A Backstage plugin that shows details of Kubernetes clusters", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "kubernetes-cluster", + "pluginPackages": [ + "@backstage/plugin-kubernetes-cluster" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md index 7bf7741f3f..c00b9eb41b 100644 --- a/plugins/kubernetes-common/CHANGELOG.md +++ b/plugins/kubernetes-common/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-kubernetes-common +## 0.8.0-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/catalog-model@1.5.0 + - @backstage/types@1.1.1 + ## 0.8.0-next.0 ### Minor Changes diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json index 64807dd61f..25160b7bf2 100644 --- a/plugins/kubernetes-common/package.json +++ b/plugins/kubernetes-common/package.json @@ -1,9 +1,17 @@ { "name": "@backstage/plugin-kubernetes-common", - "version": "0.8.0-next.0", + "version": "0.8.0-next.1", "description": "Common functionalities for kubernetes, to be shared between kubernetes and kubernetes-backend plugin", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "kubernetes", + "pluginPackages": [ + "@backstage/plugin-kubernetes", + "@backstage/plugin-kubernetes-backend", + "@backstage/plugin-kubernetes-common", + "@backstage/plugin-kubernetes-node", + "@backstage/plugin-kubernetes-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/kubernetes-node/CHANGELOG.md b/plugins/kubernetes-node/CHANGELOG.md index e2e97c240d..713a9e64d7 100644 --- a/plugins/kubernetes-node/CHANGELOG.md +++ b/plugins/kubernetes-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kubernetes-node +## 0.1.13-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/catalog-model@1.5.0 + - @backstage/types@1.1.1 + ## 0.1.13-next.2 ### Patch Changes diff --git a/plugins/kubernetes-node/package.json b/plugins/kubernetes-node/package.json index d20cc18d92..80f521b699 100644 --- a/plugins/kubernetes-node/package.json +++ b/plugins/kubernetes-node/package.json @@ -1,9 +1,17 @@ { "name": "@backstage/plugin-kubernetes-node", - "version": "0.1.13-next.2", + "version": "0.1.13-next.3", "description": "Node.js library for the kubernetes plugin", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "kubernetes", + "pluginPackages": [ + "@backstage/plugin-kubernetes", + "@backstage/plugin-kubernetes-backend", + "@backstage/plugin-kubernetes-common", + "@backstage/plugin-kubernetes-node", + "@backstage/plugin-kubernetes-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/kubernetes-react/CHANGELOG.md b/plugins/kubernetes-react/CHANGELOG.md index ce224e4be5..3aadf6f633 100644 --- a/plugins/kubernetes-react/CHANGELOG.md +++ b/plugins/kubernetes-react/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-kubernetes-react +## 0.4.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.4.0-next.2 ### Patch Changes diff --git a/plugins/kubernetes-react/package.json b/plugins/kubernetes-react/package.json index 6dca53fc50..645d532c0a 100644 --- a/plugins/kubernetes-react/package.json +++ b/plugins/kubernetes-react/package.json @@ -1,10 +1,18 @@ { "name": "@backstage/plugin-kubernetes-react", + "version": "0.4.0-next.3", "description": "Web library for the kubernetes-react plugin", - "version": "0.4.0-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "web-library", + "pluginId": "kubernetes", + "pluginPackages": [ + "@backstage/plugin-kubernetes", + "@backstage/plugin-kubernetes-backend", + "@backstage/plugin-kubernetes-common", + "@backstage/plugin-kubernetes-node", + "@backstage/plugin-kubernetes-react" + ] + }, "publishConfig": { "access": "public", "main": "dist/index.esm.js", @@ -15,19 +23,22 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/kubernetes-react" }, - "backstage": { - "role": "web-library" - }, + "license": "Apache-2.0", "sideEffects": false, - "configSchema": "config.d.ts", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist", + "config.d.ts" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/catalog-model": "workspace:^", @@ -53,9 +64,6 @@ "xterm-addon-attach": "^0.9.0", "xterm-addon-fit": "^0.8.0" }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" - }, "devDependencies": { "@backstage/cli": "workspace:^", "@backstage/core-app-api": "workspace:^", @@ -65,8 +73,8 @@ "jest-websocket-mock": "^2.5.0", "msw": "^1.3.1" }, - "files": [ - "dist", - "config.d.ts" - ] + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + }, + "configSchema": "config.d.ts" } diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md index 2b78addccc..022a64512d 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-kubernetes +## 0.11.11-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-kubernetes-common@0.8.0-next.1 + - @backstage/plugin-kubernetes-react@0.4.0-next.3 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 0.11.11-next.2 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index cd8c1c0bf8..be1b61ecf2 100644 --- a/plugins/kubernetes/package.json +++ b/plugins/kubernetes/package.json @@ -1,37 +1,48 @@ { "name": "@backstage/plugin-kubernetes", + "version": "0.11.11-next.3", "description": "A Backstage plugin that integrates towards Kubernetes", - "version": "0.11.11-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "frontend-plugin", + "pluginId": "kubernetes", + "pluginPackages": [ + "@backstage/plugin-kubernetes", + "@backstage/plugin-kubernetes-backend", + "@backstage/plugin-kubernetes-common", + "@backstage/plugin-kubernetes-node", + "@backstage/plugin-kubernetes-react" + ] + }, "publishConfig": { "access": "public", "main": "dist/index.esm.js", "types": "dist/index.d.ts" }, - "backstage": { - "role": "frontend-plugin" - }, + "keywords": [ + "backstage", + "kubernetes" + ], "homepage": "https://backstage.io", "repository": { "type": "git", "url": "https://github.com/backstage/backstage", "directory": "plugins/kubernetes" }, - "keywords": [ - "backstage", - "kubernetes" - ], + "license": "Apache-2.0", "sideEffects": false, + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist" + ], "scripts": { "build": "backstage-cli package build", - "start": "backstage-cli package start", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/catalog-model": "workspace:^", @@ -54,11 +65,6 @@ "xterm-addon-attach": "^0.9.0", "xterm-addon-fit": "^0.8.0" }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-router-dom": "6.0.0-beta.0 || ^6.3.0" - }, "devDependencies": { "@backstage/cli": "workspace:^", "@backstage/dev-utils": "workspace:^", @@ -67,7 +73,9 @@ "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^15.0.0" }, - "files": [ - "dist" - ] + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "6.0.0-beta.0 || ^6.3.0" + } } diff --git a/plugins/notifications-backend-module-email/CHANGELOG.md b/plugins/notifications-backend-module-email/CHANGELOG.md index 08512ee48f..20de4f3288 100644 --- a/plugins/notifications-backend-module-email/CHANGELOG.md +++ b/plugins/notifications-backend-module-email/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-notifications-backend-module-email +## 0.1.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-notifications-node@0.2.0-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + ## 0.1.0-next.2 ### Patch Changes diff --git a/plugins/notifications-backend-module-email/package.json b/plugins/notifications-backend-module-email/package.json index ac3ec8e1c2..2b92c78c74 100644 --- a/plugins/notifications-backend-module-email/package.json +++ b/plugins/notifications-backend-module-email/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-notifications-backend-module-email", - "version": "0.1.0-next.2", + "version": "0.1.0-next.3", "description": "The email backend module for the notifications plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "notifications", + "pluginPackage": "@backstage/plugin-notifications-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/notifications-backend/CHANGELOG.md b/plugins/notifications-backend/CHANGELOG.md index cc2763ec3a..993d75036d 100644 --- a/plugins/notifications-backend/CHANGELOG.md +++ b/plugins/notifications-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-notifications-backend +## 0.3.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-notifications-node@0.2.0-next.3 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.3.0-next.2 ### Patch Changes diff --git a/plugins/notifications-backend/package.json b/plugins/notifications-backend/package.json index accc8e2d9f..12d2b760ba 100644 --- a/plugins/notifications-backend/package.json +++ b/plugins/notifications-backend/package.json @@ -1,8 +1,15 @@ { "name": "@backstage/plugin-notifications-backend", - "version": "0.3.0-next.2", + "version": "0.3.0-next.3", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "notifications", + "pluginPackages": [ + "@backstage/plugin-notifications", + "@backstage/plugin-notifications-backend", + "@backstage/plugin-notifications-common", + "@backstage/plugin-notifications-node" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/notifications-common/CHANGELOG.md b/plugins/notifications-common/CHANGELOG.md index 571f253c34..68d5a816eb 100644 --- a/plugins/notifications-common/CHANGELOG.md +++ b/plugins/notifications-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-notifications-common +## 0.0.4-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. + ## 0.0.3 ### Patch Changes diff --git a/plugins/notifications-common/package.json b/plugins/notifications-common/package.json index 2745230a4a..28dcf719b8 100644 --- a/plugins/notifications-common/package.json +++ b/plugins/notifications-common/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-notifications-common", - "version": "0.0.3", + "version": "0.0.4-next.0", "description": "Common functionalities for the notifications plugin", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "notifications", + "pluginPackages": [ + "@backstage/plugin-notifications", + "@backstage/plugin-notifications-backend", + "@backstage/plugin-notifications-common", + "@backstage/plugin-notifications-node" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/notifications-node/CHANGELOG.md b/plugins/notifications-node/CHANGELOG.md index ea7a3a2249..165abf6e62 100644 --- a/plugins/notifications-node/CHANGELOG.md +++ b/plugins/notifications-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-notifications-node +## 0.2.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + ## 0.2.0-next.2 ### Patch Changes diff --git a/plugins/notifications-node/package.json b/plugins/notifications-node/package.json index 0fc75d3a72..143131b8e7 100644 --- a/plugins/notifications-node/package.json +++ b/plugins/notifications-node/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-notifications-node", - "version": "0.2.0-next.2", + "version": "0.2.0-next.3", "description": "Node.js library for the notifications plugin", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "notifications", + "pluginPackages": [ + "@backstage/plugin-notifications", + "@backstage/plugin-notifications-backend", + "@backstage/plugin-notifications-common", + "@backstage/plugin-notifications-node" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/notifications/CHANGELOG.md b/plugins/notifications/CHANGELOG.md index 25a46e8872..c89dbb0e72 100644 --- a/plugins/notifications/CHANGELOG.md +++ b/plugins/notifications/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-notifications +## 0.2.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-signals-react@0.0.4-next.1 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + ## 0.2.2-next.2 ### Patch Changes diff --git a/plugins/notifications/package.json b/plugins/notifications/package.json index a5bd2a7d9b..c1c896db64 100644 --- a/plugins/notifications/package.json +++ b/plugins/notifications/package.json @@ -1,8 +1,15 @@ { "name": "@backstage/plugin-notifications", - "version": "0.2.2-next.2", + "version": "0.2.2-next.3", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "notifications", + "pluginPackages": [ + "@backstage/plugin-notifications", + "@backstage/plugin-notifications-backend", + "@backstage/plugin-notifications-common", + "@backstage/plugin-notifications-node" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md index 487f3ce78f..8c55d3d5d0 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-org-react +## 0.1.25-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 0.1.25-next.1 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 6a78114b2a..85376bf50e 100644 --- a/plugins/org-react/package.json +++ b/plugins/org-react/package.json @@ -1,8 +1,13 @@ { "name": "@backstage/plugin-org-react", - "version": "0.1.25-next.1", + "version": "0.1.25-next.2", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "org", + "pluginPackages": [ + "@backstage/plugin-org", + "@backstage/plugin-org-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md index 40db440e4a..f1d41f42ee 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-org +## 0.6.26-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 0.6.26-next.1 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index fcf8b58725..f86c532595 100644 --- a/plugins/org/package.json +++ b/plugins/org/package.json @@ -1,9 +1,14 @@ { "name": "@backstage/plugin-org", - "version": "0.6.26-next.1", + "version": "0.6.26-next.2", "description": "A Backstage plugin that helps you create entity pages for your organization", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "org", + "pluginPackages": [ + "@backstage/plugin-org", + "@backstage/plugin-org-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md index 312392e413..6661f22b2b 100644 --- a/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md +++ b/plugins/permission-backend-module-policy-allow-all/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-permission-backend-module-allow-all-policy +## 0.1.16-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + ## 0.1.16-next.1 ### Patch Changes diff --git a/plugins/permission-backend-module-policy-allow-all/package.json b/plugins/permission-backend-module-policy-allow-all/package.json index 41d972cc1b..c41c09094a 100644 --- a/plugins/permission-backend-module-policy-allow-all/package.json +++ b/plugins/permission-backend-module-policy-allow-all/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-permission-backend-module-allow-all-policy", - "version": "0.1.16-next.1", + "version": "0.1.16-next.2", "description": "Allow all policy backend module for the permission plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "permission", + "pluginPackage": "@backstage/plugin-permission-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md index 34b4bb3306..0517a7d5fb 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-permission-backend +## 0.5.43-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.5.43-next.2 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 3e4fa61c3d..8c563caef6 100644 --- a/plugins/permission-backend/package.json +++ b/plugins/permission-backend/package.json @@ -1,8 +1,15 @@ { "name": "@backstage/plugin-permission-backend", - "version": "0.5.43-next.2", + "version": "0.5.43-next.3", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "permission", + "pluginPackages": [ + "@backstage/plugin-permission-backend", + "@backstage/plugin-permission-common", + "@backstage/plugin-permission-node", + "@backstage/plugin-permission-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/permission-common/CHANGELOG.md b/plugins/permission-common/CHANGELOG.md index 76d26bd4ba..3eaa31b8d4 100644 --- a/plugins/permission-common/CHANGELOG.md +++ b/plugins/permission-common/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-permission-common +## 0.7.14-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.7.13 ### Patch Changes diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json index d0f8f7ffc4..f97ff53aa4 100644 --- a/plugins/permission-common/package.json +++ b/plugins/permission-common/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-permission-common", - "version": "0.7.13", + "version": "0.7.14-next.0", "description": "Isomorphic types and client for Backstage permissions and authorization", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "permission", + "pluginPackages": [ + "@backstage/plugin-permission-backend", + "@backstage/plugin-permission-common", + "@backstage/plugin-permission-node", + "@backstage/plugin-permission-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index 45a09cd81d..a42053297e 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-permission-node +## 0.7.30-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.7.30-next.2 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index 7d172fadf7..072a23e7cc 100644 --- a/plugins/permission-node/package.json +++ b/plugins/permission-node/package.json @@ -1,18 +1,38 @@ { "name": "@backstage/plugin-permission-node", + "version": "0.7.30-next.3", "description": "Common permission and authorization utilities for backend plugins", - "version": "0.7.30-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "node-library", + "pluginId": "permission", + "pluginPackages": [ + "@backstage/plugin-permission-backend", + "@backstage/plugin-permission-common", + "@backstage/plugin-permission-node", + "@backstage/plugin-permission-react" + ] + }, "publishConfig": { "access": "public" }, + "keywords": [ + "backstage", + "permissions" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/permission-node" + }, + "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": [ @@ -23,27 +43,17 @@ ] } }, - "backstage": { - "role": "node-library" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/permission-node" - }, - "keywords": [ - "backstage", - "permissions" + "files": [ + "dist" ], "scripts": { "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean", - "start": "backstage-cli package start" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -64,8 +74,5 @@ "@types/supertest": "^2.0.8", "msw": "^1.0.0", "supertest": "^6.1.3" - }, - "files": [ - "dist" - ] + } } diff --git a/plugins/permission-react/CHANGELOG.md b/plugins/permission-react/CHANGELOG.md index e6bfc9d152..38a0f79dcb 100644 --- a/plugins/permission-react/CHANGELOG.md +++ b/plugins/permission-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-permission-react +## 0.4.23-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 0.4.23-next.0 ### Patch Changes diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json index 25d3a8554c..2f7a2060cc 100644 --- a/plugins/permission-react/package.json +++ b/plugins/permission-react/package.json @@ -1,8 +1,15 @@ { "name": "@backstage/plugin-permission-react", - "version": "0.4.23-next.0", + "version": "0.4.23-next.1", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "permission", + "pluginPackages": [ + "@backstage/plugin-permission-backend", + "@backstage/plugin-permission-common", + "@backstage/plugin-permission-node", + "@backstage/plugin-permission-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md index b46fbba91e..fd64cb957d 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-proxy-backend +## 0.5.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + ## 0.5.0-next.2 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 37127b9ad8..39df8539dc 100644 --- a/plugins/proxy-backend/package.json +++ b/plugins/proxy-backend/package.json @@ -1,9 +1,13 @@ { "name": "@backstage/plugin-proxy-backend", - "version": "0.5.0-next.2", + "version": "0.5.0-next.3", "description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "proxy", + "pluginPackages": [ + "@backstage/plugin-proxy-backend" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-azure/CHANGELOG.md b/plugins/scaffolder-backend-module-azure/CHANGELOG.md index de0e5375a6..06dc87373d 100644 --- a/plugins/scaffolder-backend-module-azure/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-azure/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-azure +## 0.1.11-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-azure/package.json b/plugins/scaffolder-backend-module-azure/package.json index 05e4add652..4bc8f6348e 100644 --- a/plugins/scaffolder-backend-module-azure/package.json +++ b/plugins/scaffolder-backend-module-azure/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-azure", - "version": "0.1.11-next.1", + "version": "0.1.11-next.2", "description": "The azure module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md index 8903aabe28..0510656db6 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket-cloud +## 0.1.9-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.9-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket-cloud/package.json b/plugins/scaffolder-backend-module-bitbucket-cloud/package.json index c8beed9126..f846f751cc 100644 --- a/plugins/scaffolder-backend-module-bitbucket-cloud/package.json +++ b/plugins/scaffolder-backend-module-bitbucket-cloud/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud", - "version": "0.1.9-next.1", + "version": "0.1.9-next.2", "description": "The Bitbucket Cloud module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md index b6290c606b..445e38129a 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket-server +## 0.1.9-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.9-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket-server/package.json b/plugins/scaffolder-backend-module-bitbucket-server/package.json index 88d8ab70ce..ca5b6a5520 100644 --- a/plugins/scaffolder-backend-module-bitbucket-server/package.json +++ b/plugins/scaffolder-backend-module-bitbucket-server/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket-server", - "version": "0.1.9-next.1", + "version": "0.1.9-next.2", "description": "The Bitbucket Server module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md b/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md index 8ee2eac340..7e55079855 100644 --- a/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-backend-module-bitbucket +## 0.2.9-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.9-next.2 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.9-next.2 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.2.9-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-bitbucket/package.json b/plugins/scaffolder-backend-module-bitbucket/package.json index e10d909548..8c4e810190 100644 --- a/plugins/scaffolder-backend-module-bitbucket/package.json +++ b/plugins/scaffolder-backend-module-bitbucket/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-bitbucket", - "version": "0.2.9-next.1", + "version": "0.2.9-next.2", "description": "The bitbucket module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md index 24dbad895d..dd01e3894c 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.2.20-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.2.20-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json index 2d8ecb7f3d..c161ab1358 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/package.json +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown", - "version": "0.2.20-next.2", + "version": "0.2.20-next.3", "description": "The confluence-to-markdown module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md index 1cf284232f..cf6a482a0f 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.43-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.2.43-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 3ce10cc57b..ab7a49d700 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-cookiecutter", - "version": "0.2.43-next.2", + "version": "0.2.43-next.3", "description": "A module for the scaffolder backend that lets you template projects using cookiecutter", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md b/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md index eb88831f44..b815b20b95 100644 --- a/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-gerrit +## 0.1.11-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.11-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gerrit/package.json b/plugins/scaffolder-backend-module-gerrit/package.json index 519c507e2c..b77c51c6b5 100644 --- a/plugins/scaffolder-backend-module-gerrit/package.json +++ b/plugins/scaffolder-backend-module-gerrit/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gerrit", - "version": "0.1.11-next.1", + "version": "0.1.11-next.2", "description": "The gerrit module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-gerrit/src/actions/gerrit.test.ts b/plugins/scaffolder-backend-module-gerrit/src/actions/gerrit.test.ts index c08544843f..1f069d3835 100644 --- a/plugins/scaffolder-backend-module-gerrit/src/actions/gerrit.test.ts +++ b/plugins/scaffolder-backend-module-gerrit/src/actions/gerrit.test.ts @@ -42,6 +42,7 @@ describe('publish:gerrit', () => { gerrit: [ { host: 'gerrithost.org', + gitilesBaseUrl: 'https://gerrithost.org/gitiles', username: 'gerrituser', password: 'usertoken', }, @@ -133,7 +134,7 @@ describe('publish:gerrit', () => { ); expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/master', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/master', ); }); @@ -184,7 +185,7 @@ describe('publish:gerrit', () => { ); expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/master', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/master', ); }); @@ -235,7 +236,7 @@ describe('publish:gerrit', () => { ); expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/master', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/master', ); }); @@ -286,7 +287,7 @@ describe('publish:gerrit', () => { ); expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/main', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/main', ); }); diff --git a/plugins/scaffolder-backend-module-gerrit/src/actions/gerritReview.examples.test.ts b/plugins/scaffolder-backend-module-gerrit/src/actions/gerritReview.examples.test.ts index d1bc594d54..91110cb512 100644 --- a/plugins/scaffolder-backend-module-gerrit/src/actions/gerritReview.examples.test.ts +++ b/plugins/scaffolder-backend-module-gerrit/src/actions/gerritReview.examples.test.ts @@ -35,6 +35,7 @@ describe('publish:gerrit:review', () => { gerrit: [ { host: 'gerrithost.org', + gitilesBaseUrl: 'https://gerrithost.org/gitiles', username: 'gerrituser', password: 'usertoken', }, @@ -77,7 +78,7 @@ describe('publish:gerrit:review', () => { expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/master', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/master', ); expect(mockContext.output).toHaveBeenCalledWith( 'reviewUrl', @@ -109,7 +110,7 @@ describe('publish:gerrit:review', () => { expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/master', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/master', ); expect(mockContext.output).toHaveBeenCalledWith( 'reviewUrl', @@ -141,7 +142,7 @@ describe('publish:gerrit:review', () => { expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/master', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/master', ); expect(mockContext.output).toHaveBeenCalledWith( 'reviewUrl', @@ -170,7 +171,7 @@ describe('publish:gerrit:review', () => { expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/develop', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/develop', ); expect(mockContext.output).toHaveBeenCalledWith( 'reviewUrl', @@ -199,7 +200,7 @@ describe('publish:gerrit:review', () => { expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/master', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/master', ); expect(mockContext.output).toHaveBeenCalledWith( 'reviewUrl', @@ -231,7 +232,7 @@ describe('publish:gerrit:review', () => { expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/develop', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/develop', ); expect(mockContext.output).toHaveBeenCalledWith( 'reviewUrl', diff --git a/plugins/scaffolder-backend-module-gerrit/src/actions/gerritReview.test.ts b/plugins/scaffolder-backend-module-gerrit/src/actions/gerritReview.test.ts index 91236d4cc0..827626bef1 100644 --- a/plugins/scaffolder-backend-module-gerrit/src/actions/gerritReview.test.ts +++ b/plugins/scaffolder-backend-module-gerrit/src/actions/gerritReview.test.ts @@ -33,6 +33,7 @@ describe('publish:gerrit:review', () => { gerrit: [ { host: 'gerrithost.org', + gitilesBaseUrl: 'https://gerrithost.org/gitiles', username: 'gerrituser', password: 'usertoken', }, @@ -104,7 +105,7 @@ describe('publish:gerrit:review', () => { expect(mockContext.output).toHaveBeenCalledWith( 'repoContentsUrl', - 'https://gerrithost.org/repo/+/refs/heads/master', + 'https://gerrithost.org/gitiles/repo/+/refs/heads/master', ); expect(mockContext.output).toHaveBeenCalledWith( 'reviewUrl', diff --git a/plugins/scaffolder-backend-module-gitea/CHANGELOG.md b/plugins/scaffolder-backend-module-gitea/CHANGELOG.md index d699ae849f..330aaea23b 100644 --- a/plugins/scaffolder-backend-module-gitea/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitea/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-gitea +## 0.1.9-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.9-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitea/package.json b/plugins/scaffolder-backend-module-gitea/package.json index 34cf67e766..f87f8695ec 100644 --- a/plugins/scaffolder-backend-module-gitea/package.json +++ b/plugins/scaffolder-backend-module-gitea/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitea", - "version": "0.1.9-next.2", + "version": "0.1.9-next.3", "description": "The gitea module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-github/CHANGELOG.md b/plugins/scaffolder-backend-module-github/CHANGELOG.md index 1d0865c1b3..baefd5bddb 100644 --- a/plugins/scaffolder-backend-module-github/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-github/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-github +## 0.3.0-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.3.0-next.2 ### Minor Changes diff --git a/plugins/scaffolder-backend-module-github/package.json b/plugins/scaffolder-backend-module-github/package.json index 6f8b952eac..800309627c 100644 --- a/plugins/scaffolder-backend-module-github/package.json +++ b/plugins/scaffolder-backend-module-github/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-github", - "version": "0.3.0-next.2", + "version": "0.3.0-next.3", "description": "The github module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md index 0a345f2dbd..f90872bbbb 100644 --- a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-backend-module-gitlab +## 0.4.1-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.4.1-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index c0533513f4..71cb12c659 100644 --- a/plugins/scaffolder-backend-module-gitlab/package.json +++ b/plugins/scaffolder-backend-module-gitlab/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-scaffolder-backend-module-gitlab", - "version": "0.4.1-next.2", + "version": "0.4.1-next.3", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-notifications/CHANGELOG.md b/plugins/scaffolder-backend-module-notifications/CHANGELOG.md index 88e2ddfe6a..e8b308afb2 100644 --- a/plugins/scaffolder-backend-module-notifications/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-notifications/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-scaffolder-backend-module-notifications +## 0.0.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-notifications-common@0.0.4-next.0 + - @backstage/plugin-notifications-node@0.2.0-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + ## 0.0.2-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-notifications/package.json b/plugins/scaffolder-backend-module-notifications/package.json index 490c9291be..57baab7b6f 100644 --- a/plugins/scaffolder-backend-module-notifications/package.json +++ b/plugins/scaffolder-backend-module-notifications/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-notifications", - "version": "0.0.2-next.2", + "version": "0.0.2-next.3", "description": "The notifications backend module for the scaffolder plugin.", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md index 4f021e3b36..1771640389 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.36-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.4.36-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index ffd335ead0..e2d2d678a5 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-scaffolder-backend-module-rails", - "version": "0.4.36-next.2", + "version": "0.4.36-next.3", "description": "A module for the scaffolder backend that lets you template projects using Rails", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md index 677be59a3b..a02aaab7b6 100644 --- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-backend-module-sentry +## 0.1.27-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.27-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index 919cc1a8aa..2566c82596 100644 --- a/plugins/scaffolder-backend-module-sentry/package.json +++ b/plugins/scaffolder-backend-module-sentry/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-scaffolder-backend-module-sentry", - "version": "0.1.27-next.2", + "version": "0.1.27-next.3", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md index bf5329efa4..80f976c1c0 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.3.2-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-scaffolder-node-test-utils@0.1.5-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/types@1.1.1 + ## 0.3.2-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index b03e49e0c5..7172b4ae38 100644 --- a/plugins/scaffolder-backend-module-yeoman/package.json +++ b/plugins/scaffolder-backend-module-yeoman/package.json @@ -1,8 +1,10 @@ { "name": "@backstage/plugin-scaffolder-backend-module-yeoman", - "version": "0.3.2-next.1", + "version": "0.3.2-next.2", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "scaffolder", + "pluginPackage": "@backstage/plugin-scaffolder-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md index ac0f327575..b920fc7e9c 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-scaffolder-backend +## 1.22.8-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- f4c8486: Increase max wait time in debug:wait action to 10 minutes +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.17-next.3 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.9-next.2 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.9-next.2 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.9-next.2 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.11-next.2 + - @backstage/plugin-scaffolder-backend-module-github@0.3.0-next.3 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.4.1-next.3 + - @backstage/plugin-scaffolder-backend-module-azure@0.1.11-next.2 + - @backstage/plugin-scaffolder-backend-module-gitea@0.1.9-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.22.8-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 76ae1cfcc8..4060529421 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -1,9 +1,18 @@ { "name": "@backstage/plugin-scaffolder-backend", - "version": "1.22.8-next.2", + "version": "1.22.8-next.3", "description": "The Backstage backend plugin that helps you create new things", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "scaffolder", + "pluginPackages": [ + "@backstage/plugin-scaffolder", + "@backstage/plugin-scaffolder-backend", + "@backstage/plugin-scaffolder-common", + "@backstage/plugin-scaffolder-node", + "@backstage/plugin-scaffolder-node-test-utils", + "@backstage/plugin-scaffolder-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts index 5d70e5bfba..aece424f5f 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts @@ -644,6 +644,100 @@ describe('NunjucksWorkflowRunner', () => { }); }); + describe('redactions', () => { + // eslint-disable-next-line jest/expect-expect + it('should redact secrets that are passed with the task', async () => { + actionRegistry.register({ + id: 'log-secret', + description: 'Mock action for testing', + supportsDryRun: true, + handler: async ctx => { + ctx.logger.info(ctx.input.secret); + }, + schema: { + input: { + type: 'object', + required: ['secret'], + properties: { + secret: { + type: 'string', + }, + }, + }, + }, + }); + + const task = createMockTaskWithSpec( + { + apiVersion: 'scaffolder.backstage.io/v1beta3', + parameters: {}, + output: {}, + steps: [ + { + id: 'test', + name: 'name', + action: 'log-secret', + input: { + secret: '${{ secrets.secret }}', + }, + }, + ], + }, + { secret: 'my-secret-value' }, + ); + + await runner.execute(task); + + expectTaskLog('info: ***'); + }); + + // eslint-disable-next-line jest/expect-expect + it('should redact meta fields properly', async () => { + actionRegistry.register({ + id: 'log-secret', + description: 'Mock action for testing', + supportsDryRun: true, + handler: async ctx => { + ctx.logger.child({ thing: ctx.input.secret }).info(ctx.input.secret); + }, + schema: { + input: { + type: 'object', + required: ['secret'], + properties: { + secret: { + type: 'string', + }, + }, + }, + }, + }); + + const task = createMockTaskWithSpec( + { + apiVersion: 'scaffolder.backstage.io/v1beta3', + parameters: {}, + output: {}, + steps: [ + { + id: 'test', + name: 'name', + action: 'log-secret', + input: { + secret: '${{ secrets.secret }}', + }, + }, + ], + }, + { secret: 'my-secret-value' }, + ); + + await runner.execute(task); + + expectTaskLog('info: *** {"thing":"***"}'); + }); + }); + describe('each', () => { it('should run a step repeatedly - flat values', async () => { const colors = ['blue', 'green', 'red']; diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts index 85664e1a6c..e9b1d78e36 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts @@ -104,24 +104,13 @@ const createStepLogger = ({ step: TaskStep; rootLogger: winston.Logger; }) => { - const stepLogStream = new PassThrough(); - stepLogStream.on('data', async data => { - const message = data.toString().trim(); - if (message?.length > 1) { - await task.emitLog(message, { stepId: step.id }); - } - }); - const taskLogger = WinstonLogger.create({ level: process.env.LOG_LEVEL || 'info', format: winston.format.combine( winston.format.colorize(), winston.format.simple(), ), - transports: [ - new winston.transports.Stream({ stream: stepLogStream }), - new BackstageLoggerTransport(rootLogger), - ], + transports: [new BackstageLoggerTransport(rootLogger, task, step.id)], }); taskLogger.addRedactions(Object.values(task.secrets ?? {})); diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts index e85c61d489..38263b73ca 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/logger.ts @@ -21,7 +21,9 @@ import { JsonObject } from '@backstage/types'; import { Format, TransformableInfo } from 'logform'; import Transport, { TransportStreamOptions } from 'winston-transport'; import { Logger, format, createLogger, transports } from 'winston'; -import { MESSAGE } from 'triple-beam'; +import { LEVEL, MESSAGE, SPLAT } from 'triple-beam'; +import { TaskContext } from '@backstage/plugin-scaffolder-node'; +import _ from 'lodash'; /** * Escapes a given string to be used inside a RegExp. @@ -44,33 +46,41 @@ interface WinstonLoggerOptions { export class BackstageLoggerTransport extends Transport { constructor( private readonly backstageLogger: LoggerService, + private readonly taskContext: TaskContext, + private readonly stepId: string, opts?: TransportStreamOptions, ) { super(opts); } - log(info: unknown, callback: VoidFunction) { + log(info: TransformableInfo, callback: VoidFunction) { if (typeof info !== 'object' || info === null) { callback(); return; } - const { level, message, ...meta } = info as JsonObject; + + const message = info[MESSAGE]; + const level = info[LEVEL]; + const splat = info[SPLAT]; + switch (level) { case 'error': - this.backstageLogger.error(String(message), meta); + this.backstageLogger.error(String(message), ...splat); break; case 'warn': - this.backstageLogger.warn(String(message), meta); + this.backstageLogger.warn(String(message), ...splat); break; case 'info': - this.backstageLogger.info(String(message), meta); + this.backstageLogger.info(String(message), ...splat); break; case 'debug': - this.backstageLogger.debug(String(message), meta); + this.backstageLogger.debug(String(message), ...splat); break; default: - this.backstageLogger.info(String(message), meta); + this.backstageLogger.info(String(message), ...splat); } + + this.taskContext.emitLog(message, { stepId: this.stepId }); callback(); } } @@ -87,9 +97,10 @@ export class WinstonLogger implements RootLoggerService { let logger = createLogger({ level: options.level, - format: format.combine(redacter.format, options.format), + format: format.combine(options.format, redacter.format), transports: options.transports ?? new transports.Console(), }); + if (options.meta) { logger = logger.child(options.meta); } @@ -163,7 +174,10 @@ export class WinstonLogger implements RootLoggerService { }, }), format.printf((info: TransformableInfo) => { - const { timestamp, level, message, plugin, service, ...fields } = info; + const { timestamp, plugin, service } = info; + const message = info[MESSAGE]; + const level = info[LEVEL]; + const fields = info[SPLAT]; const prefix = plugin || service; const timestampColor = colorizer.colorize('timestamp', timestamp); const prefixColor = colorizer.colorize('prefix', prefix); diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md index cbd9579ce9..b26c36b793 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-common +## 1.5.3-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/catalog-model@1.5.0 + - @backstage/types@1.1.1 + ## 1.5.3-next.0 ### Patch Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index 04f3375520..84aedbf963 100644 --- a/plugins/scaffolder-common/package.json +++ b/plugins/scaffolder-common/package.json @@ -1,9 +1,18 @@ { "name": "@backstage/plugin-scaffolder-common", - "version": "1.5.3-next.0", + "version": "1.5.3-next.1", "description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "scaffolder", + "pluginPackages": [ + "@backstage/plugin-scaffolder", + "@backstage/plugin-scaffolder-backend", + "@backstage/plugin-scaffolder-common", + "@backstage/plugin-scaffolder-node", + "@backstage/plugin-scaffolder-node-test-utils", + "@backstage/plugin-scaffolder-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-node-test-utils/CHANGELOG.md b/plugins/scaffolder-node-test-utils/CHANGELOG.md index e006113379..ada4c38a67 100644 --- a/plugins/scaffolder-node-test-utils/CHANGELOG.md +++ b/plugins/scaffolder-node-test-utils/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-scaffolder-node-test-utils +## 0.1.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-test-utils@0.4.0-next.3 + - @backstage/plugin-scaffolder-node@0.4.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/types@1.1.1 + ## 0.1.5-next.2 ### Patch Changes diff --git a/plugins/scaffolder-node-test-utils/package.json b/plugins/scaffolder-node-test-utils/package.json index 1c5d6445bd..2419074362 100644 --- a/plugins/scaffolder-node-test-utils/package.json +++ b/plugins/scaffolder-node-test-utils/package.json @@ -1,8 +1,17 @@ { "name": "@backstage/plugin-scaffolder-node-test-utils", - "version": "0.1.5-next.2", + "version": "0.1.5-next.3", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "scaffolder", + "pluginPackages": [ + "@backstage/plugin-scaffolder", + "@backstage/plugin-scaffolder-backend", + "@backstage/plugin-scaffolder-common", + "@backstage/plugin-scaffolder-node", + "@backstage/plugin-scaffolder-node-test-utils", + "@backstage/plugin-scaffolder-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md index 488e2c97c2..c4e974c297 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-node +## 0.4.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.4.5-next.2 ### Patch Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index 30e67477e0..233619ba99 100644 --- a/plugins/scaffolder-node/package.json +++ b/plugins/scaffolder-node/package.json @@ -1,9 +1,18 @@ { "name": "@backstage/plugin-scaffolder-node", - "version": "0.4.5-next.2", + "version": "0.4.5-next.3", "description": "The plugin-scaffolder-node module for @backstage/plugin-scaffolder-backend", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "scaffolder", + "pluginPackages": [ + "@backstage/plugin-scaffolder", + "@backstage/plugin-scaffolder-backend", + "@backstage/plugin-scaffolder-common", + "@backstage/plugin-scaffolder-node", + "@backstage/plugin-scaffolder-node-test-utils", + "@backstage/plugin-scaffolder-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md index 83e5825807..c33fbc059b 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-scaffolder-react +## 1.8.7-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- fa8560e: Prevents Autocomplete dropdown from overlapping sidebar on hovering it +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + ## 1.8.7-next.2 ### Patch Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index 084eb34d20..63fcd264ad 100644 --- a/plugins/scaffolder-react/package.json +++ b/plugins/scaffolder-react/package.json @@ -1,9 +1,18 @@ { "name": "@backstage/plugin-scaffolder-react", - "version": "1.8.7-next.2", + "version": "1.8.7-next.3", "description": "A frontend library that helps other Backstage plugins interact with the Scaffolder", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "scaffolder", + "pluginPackages": [ + "@backstage/plugin-scaffolder", + "@backstage/plugin-scaffolder-backend", + "@backstage/plugin-scaffolder-common", + "@backstage/plugin-scaffolder-node", + "@backstage/plugin-scaffolder-node-test-utils", + "@backstage/plugin-scaffolder-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md index 7260522e54..f42ddfa0e1 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-scaffolder +## 1.21.0-next.3 + +### Minor Changes + +- d57ebbc: Changed the way to display entities in EntityPicker to use entityPresentationApi instead of humanizeEntityRef + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-scaffolder-common@1.5.3-next.1 + - @backstage/plugin-permission-react@0.4.23-next.1 + - @backstage/plugin-scaffolder-react@1.8.7-next.3 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.21.0-next.2 ### Minor Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 87fb77defd..d1b58c8eca 100644 --- a/plugins/scaffolder/package.json +++ b/plugins/scaffolder/package.json @@ -1,9 +1,18 @@ { "name": "@backstage/plugin-scaffolder", - "version": "1.21.0-next.2", + "version": "1.21.0-next.3", "description": "The Backstage plugin that helps you create new things", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "scaffolder", + "pluginPackages": [ + "@backstage/plugin-scaffolder", + "@backstage/plugin-scaffolder-backend", + "@backstage/plugin-scaffolder-common", + "@backstage/plugin-scaffolder-node", + "@backstage/plugin-scaffolder-node-test-utils", + "@backstage/plugin-scaffolder-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/search-backend-module-catalog/CHANGELOG.md b/plugins/search-backend-module-catalog/CHANGELOG.md index beb7c7dc3c..880053dff5 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-search-backend-module-catalog +## 0.1.25-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.25-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index dea1865fca..cf6a9a3e18 100644 --- a/plugins/search-backend-module-catalog/package.json +++ b/plugins/search-backend-module-catalog/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-search-backend-module-catalog", - "version": "0.1.25-next.2", + "version": "0.1.25-next.3", "description": "A module for the search backend that exports catalog modules", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "search", + "pluginPackage": "@backstage/plugin-search-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md index 350d8b3d5e..81b6dfdeba 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.4.2-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/integration-aws-node@0.1.12 + ## 1.4.2-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 3994977fd2..bf6c48910f 100644 --- a/plugins/search-backend-module-elasticsearch/package.json +++ b/plugins/search-backend-module-elasticsearch/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-search-backend-module-elasticsearch", - "version": "1.4.2-next.2", + "version": "1.4.2-next.3", "description": "A module for the search backend that implements search using ElasticSearch", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "search", + "pluginPackage": "@backstage/plugin-search-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/search-backend-module-explore/CHANGELOG.md b/plugins/search-backend-module-explore/CHANGELOG.md index 4ca395300b..9ce0c3ce31 100644 --- a/plugins/search-backend-module-explore/CHANGELOG.md +++ b/plugins/search-backend-module-explore/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-explore +## 0.1.25-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + ## 0.1.25-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index a195eb08d9..88239e5853 100644 --- a/plugins/search-backend-module-explore/package.json +++ b/plugins/search-backend-module-explore/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-search-backend-module-explore", - "version": "0.1.25-next.2", + "version": "0.1.25-next.3", "description": "A module for the search backend that exports explore modules", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "search", + "pluginPackage": "@backstage/plugin-search-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md index afd7d5d5b6..f02ea765b4 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.28-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-app-api@0.7.6-next.3 + - @backstage/config@1.2.0 + ## 0.5.28-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index f81eef8fc7..236adaac63 100644 --- a/plugins/search-backend-module-pg/package.json +++ b/plugins/search-backend-module-pg/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-search-backend-module-pg", - "version": "0.5.28-next.2", + "version": "0.5.28-next.3", "description": "A module for the search backend that implements search using PostgreSQL", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "search", + "pluginPackage": "@backstage/plugin-search-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md index 63f008a851..10705399e0 100644 --- a/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md +++ b/plugins/search-backend-module-stack-overflow-collator/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-stack-overflow-collator +## 0.1.12-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + ## 0.1.12-next.2 ### 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 443cfe1155..b35262a949 100644 --- a/plugins/search-backend-module-stack-overflow-collator/package.json +++ b/plugins/search-backend-module-stack-overflow-collator/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-search-backend-module-stack-overflow-collator", - "version": "0.1.12-next.2", + "version": "0.1.12-next.3", "description": "A module for the search backend that exports stack overflow modules", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "search", + "pluginPackage": "@backstage/plugin-search-backend" }, "publishConfig": { "access": "public", diff --git a/plugins/search-backend-module-techdocs/CHANGELOG.md b/plugins/search-backend-module-techdocs/CHANGELOG.md index e2d7c21867..d3173bcf2c 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.1.24-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-techdocs-node@1.12.5-next.3 + - @backstage/plugin-catalog-node@1.12.1-next.2 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + ## 0.1.24-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index 8690558f8a..5646ac0b6d 100644 --- a/plugins/search-backend-module-techdocs/package.json +++ b/plugins/search-backend-module-techdocs/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-search-backend-module-techdocs", - "version": "0.1.24-next.2", + "version": "0.1.24-next.3", "description": "A module for the search backend that exports techdocs modules", "backstage": { - "role": "backend-plugin-module" + "role": "backend-plugin-module", + "pluginId": "search", + "pluginPackage": "@backstage/plugin-search-backend" }, "publishConfig": { "access": "public" diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md index c0cc9e1c0e..87f7db5616 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-search-backend-node +## 1.2.24-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-tasks@0.5.24-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 1.2.24-next.2 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 36a6a5de13..932404902e 100644 --- a/plugins/search-backend-node/package.json +++ b/plugins/search-backend-node/package.json @@ -1,9 +1,13 @@ { "name": "@backstage/plugin-search-backend-node", - "version": "1.2.24-next.2", + "version": "1.2.24-next.3", "description": "A library for Backstage backend plugins that want to interact with the search backend plugin", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "search-backend", + "pluginPackages": [ + "@backstage/plugin-search-backend-node" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md index c51185b2a3..f4e94b34b9 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-search-backend +## 1.5.10-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/backend-defaults@0.3.0-next.3 + - @backstage/plugin-search-backend-node@1.2.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-permission-node@0.7.30-next.3 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/backend-openapi-utils@0.1.12-next.2 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.5.10-next.2 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 4a550de16f..1f44819562 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-search-backend", - "version": "1.5.10-next.2", + "version": "1.5.10-next.3", "description": "The Backstage backend plugin that provides your backstage app with search", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "search", + "pluginPackages": [ + "@backstage/plugin-search", + "@backstage/plugin-search-backend", + "@backstage/plugin-search-common", + "@backstage/plugin-search-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/search-common/CHANGELOG.md b/plugins/search-common/CHANGELOG.md index ae1b24dea6..e0c9991457 100644 --- a/plugins/search-common/CHANGELOG.md +++ b/plugins/search-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-common +## 1.2.12-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/types@1.1.1 + ## 1.2.11 ### Patch Changes diff --git a/plugins/search-common/package.json b/plugins/search-common/package.json index 9a3c7bce03..19657dee23 100644 --- a/plugins/search-common/package.json +++ b/plugins/search-common/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-search-common", - "version": "1.2.11", + "version": "1.2.12-next.0", "description": "Common functionalities for Search, to be shared between various search-enabled plugins", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "search", + "pluginPackages": [ + "@backstage/plugin-search", + "@backstage/plugin-search-backend", + "@backstage/plugin-search-common", + "@backstage/plugin-search-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index ab153126eb..d0ca8d04f6 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-search-react +## 1.7.12-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + ## 1.7.12-next.1 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index b3fe4f0dc0..bca09316da 100644 --- a/plugins/search-react/package.json +++ b/plugins/search-react/package.json @@ -1,8 +1,15 @@ { "name": "@backstage/plugin-search-react", - "version": "1.7.12-next.1", + "version": "1.7.12-next.2", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "search", + "pluginPackages": [ + "@backstage/plugin-search", + "@backstage/plugin-search-backend", + "@backstage/plugin-search-common", + "@backstage/plugin-search-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/search/CHANGELOG.md b/plugins/search/CHANGELOG.md index d1bcaa6c97..6d2bcc0418 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search +## 1.4.12-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + ## 1.4.12-next.2 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 46167d484c..ec5d704e87 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-search", - "version": "1.4.12-next.2", + "version": "1.4.12-next.3", "description": "The Backstage plugin that provides your backstage app with search", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "search", + "pluginPackages": [ + "@backstage/plugin-search", + "@backstage/plugin-search-backend", + "@backstage/plugin-search-common", + "@backstage/plugin-search-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/signals-backend/CHANGELOG.md b/plugins/signals-backend/CHANGELOG.md index ecb0b6905b..aed8136b7b 100644 --- a/plugins/signals-backend/CHANGELOG.md +++ b/plugins/signals-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-signals-backend +## 0.1.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + ## 0.1.5-next.2 ### Patch Changes diff --git a/plugins/signals-backend/package.json b/plugins/signals-backend/package.json index 9b9429cd8e..33fd9e5020 100644 --- a/plugins/signals-backend/package.json +++ b/plugins/signals-backend/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-signals-backend", - "version": "0.1.5-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "version": "0.1.5-next.3", + "backstage": { + "role": "backend-plugin", + "pluginId": "signals", + "pluginPackages": [ + "@backstage/plugin-signals", + "@backstage/plugin-signals-backend", + "@backstage/plugin-signals-node", + "@backstage/plugin-signals-react" + ] + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -14,17 +21,20 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/signals-backend" }, - "backstage": { - "role": "backend-plugin" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "dist" + ], "scripts": { - "start": "backstage-cli package start", "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-common": "workspace:^", @@ -55,8 +65,5 @@ "@types/ws": "^8.5.10", "msw": "^1.0.0", "supertest": "^6.2.4" - }, - "files": [ - "dist" - ] + } } diff --git a/plugins/signals-node/CHANGELOG.md b/plugins/signals-node/CHANGELOG.md index 1e033a75e2..3563cbd5e2 100644 --- a/plugins/signals-node/CHANGELOG.md +++ b/plugins/signals-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-signals-node +## 0.1.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-events-node@0.3.5-next.2 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + ## 0.1.5-next.2 ### Patch Changes diff --git a/plugins/signals-node/package.json b/plugins/signals-node/package.json index 7541d19ff8..eb40dc897a 100644 --- a/plugins/signals-node/package.json +++ b/plugins/signals-node/package.json @@ -1,10 +1,17 @@ { "name": "@backstage/plugin-signals-node", + "version": "0.1.5-next.3", "description": "Node.js library for the signals plugin", - "version": "0.1.5-next.2", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", + "backstage": { + "role": "node-library", + "pluginId": "signals", + "pluginPackages": [ + "@backstage/plugin-signals", + "@backstage/plugin-signals-backend", + "@backstage/plugin-signals-node", + "@backstage/plugin-signals-react" + ] + }, "publishConfig": { "access": "public", "main": "dist/index.cjs.js", @@ -15,24 +22,20 @@ "url": "https://github.com/backstage/backstage", "directory": "plugins/signals-node" }, - "backstage": { - "role": "node-library" - }, - "scripts": { - "build": "backstage-cli package build", - "lint": "backstage-cli package lint", - "test": "backstage-cli package test", - "clean": "backstage-cli package clean", - "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" - }, - "devDependencies": { - "@backstage/cli": "workspace:^", - "@types/express": "^4.17.21" - }, + "license": "Apache-2.0", + "main": "src/index.ts", + "types": "src/index.ts", "files": [ "dist" ], + "scripts": { + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "lint": "backstage-cli package lint", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "test": "backstage-cli package test" + }, "dependencies": { "@backstage/backend-common": "workspace:^", "@backstage/backend-plugin-api": "workspace:^", @@ -43,5 +46,9 @@ "express": "^4.17.1", "uuid": "^9.0.0", "ws": "^8.14.2" + }, + "devDependencies": { + "@backstage/cli": "workspace:^", + "@types/express": "^4.17.21" } } diff --git a/plugins/signals-react/CHANGELOG.md b/plugins/signals-react/CHANGELOG.md index b013dfeb84..12810ba0b0 100644 --- a/plugins/signals-react/CHANGELOG.md +++ b/plugins/signals-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-signals-react +## 0.0.4-next.1 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/types@1.1.1 + ## 0.0.4-next.0 ### Patch Changes diff --git a/plugins/signals-react/package.json b/plugins/signals-react/package.json index 2812ef6aa8..7ea1bbafcd 100644 --- a/plugins/signals-react/package.json +++ b/plugins/signals-react/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-signals-react", - "version": "0.0.4-next.0", + "version": "0.0.4-next.1", "description": "Web library for the signals plugin", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "signals", + "pluginPackages": [ + "@backstage/plugin-signals", + "@backstage/plugin-signals-backend", + "@backstage/plugin-signals-node", + "@backstage/plugin-signals-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/signals/CHANGELOG.md b/plugins/signals/CHANGELOG.md index fb60992916..6c35f82895 100644 --- a/plugins/signals/CHANGELOG.md +++ b/plugins/signals/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-signals +## 0.0.7-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-signals-react@0.0.4-next.1 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + ## 0.0.7-next.1 ### Patch Changes diff --git a/plugins/signals/package.json b/plugins/signals/package.json index d313593271..c19f9cd3dc 100644 --- a/plugins/signals/package.json +++ b/plugins/signals/package.json @@ -1,8 +1,15 @@ { "name": "@backstage/plugin-signals", - "version": "0.0.7-next.1", + "version": "0.0.7-next.2", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "signals", + "pluginPackages": [ + "@backstage/plugin-signals", + "@backstage/plugin-signals-backend", + "@backstage/plugin-signals-node", + "@backstage/plugin-signals-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md index 5838a42270..67c17b6e9d 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.33-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/plugin-techdocs@1.10.6-next.2 + - @backstage/plugin-catalog@1.21.0-next.3 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/test-utils@1.5.6-next.2 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 1.0.33-next.1 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index 8fe3c2a942..b805b05ae7 100644 --- a/plugins/techdocs-addons-test-utils/package.json +++ b/plugins/techdocs-addons-test-utils/package.json @@ -1,8 +1,12 @@ { "name": "@backstage/plugin-techdocs-addons-test-utils", - "version": "1.0.33-next.1", + "version": "1.0.33-next.2", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "techdocs-addons", + "pluginPackages": [ + "@backstage/plugin-techdocs-addons-test-utils" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md index f201caa389..05d8f1fd46 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-techdocs-backend +## 1.10.6-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-search-backend-module-techdocs@0.1.24-next.3 + - @backstage/plugin-permission-common@0.7.14-next.0 + - @backstage/plugin-catalog-common@1.0.24-next.0 + - @backstage/plugin-techdocs-node@1.12.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-client@1.6.5 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 1.10.6-next.2 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index c6773b1f64..1abf653784 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-techdocs-backend", - "version": "1.10.6-next.2", + "version": "1.10.6-next.3", "description": "The Backstage backend plugin that renders technical documentation for your components", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "techdocs", + "pluginPackages": [ + "@backstage/plugin-techdocs", + "@backstage/plugin-techdocs-backend", + "@backstage/plugin-techdocs-node", + "@backstage/plugin-techdocs-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md index 72efbff1af..a5631f2492 100644 --- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md +++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-module-addons-contrib +## 1.1.11-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/core-plugin-api@1.9.3-next.0 + ## 1.1.11-next.1 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index 8b0e76168a..1b456ec300 100644 --- a/plugins/techdocs-module-addons-contrib/package.json +++ b/plugins/techdocs-module-addons-contrib/package.json @@ -1,9 +1,11 @@ { "name": "@backstage/plugin-techdocs-module-addons-contrib", - "version": "1.1.11-next.1", + "version": "1.1.11-next.2", "description": "Plugin module for contributed TechDocs Addons", "backstage": { - "role": "frontend-plugin-module" + "role": "frontend-plugin-module", + "pluginId": "techdocs", + "pluginPackage": "@backstage/plugin-techdocs" }, "publishConfig": { "access": "public", diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md index 5242fa8ec6..0c15e12faf 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-techdocs-node +## 1.12.5-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + ## 1.12.5-next.2 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 21bbc89f4d..7ef38c56ff 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-techdocs-node", - "version": "1.12.5-next.2", + "version": "1.12.5-next.3", "description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli", "backstage": { - "role": "node-library" + "role": "node-library", + "pluginId": "techdocs", + "pluginPackages": [ + "@backstage/plugin-techdocs", + "@backstage/plugin-techdocs-backend", + "@backstage/plugin-techdocs-node", + "@backstage/plugin-techdocs-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 569a1cb49b..8a681308d5 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-techdocs-react +## 1.2.5-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/version-bridge@1.0.8 + ## 1.2.5-next.1 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 8b10c5e3c9..233ec010bc 100644 --- a/plugins/techdocs-react/package.json +++ b/plugins/techdocs-react/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-techdocs-react", - "version": "1.2.5-next.1", + "version": "1.2.5-next.2", "description": "Shared frontend utilities for TechDocs and Addons", "backstage": { - "role": "web-library" + "role": "web-library", + "pluginId": "techdocs", + "pluginPackages": [ + "@backstage/plugin-techdocs", + "@backstage/plugin-techdocs-backend", + "@backstage/plugin-techdocs-node", + "@backstage/plugin-techdocs-react" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 2c7ad7fec8..4065b4f341 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-techdocs +## 1.10.6-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/integration@1.12.0-next.1 + - @backstage/plugin-techdocs-react@1.2.5-next.2 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-search-common@1.2.12-next.0 + - @backstage/plugin-search-react@1.7.12-next.2 + - @backstage/plugin-auth-react@0.1.3-next.2 + - @backstage/integration-react@1.1.28-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/catalog-model@1.5.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + ## 1.10.6-next.1 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index e4d6c0eaef..2ec4ff38f0 100644 --- a/plugins/techdocs/package.json +++ b/plugins/techdocs/package.json @@ -1,9 +1,16 @@ { "name": "@backstage/plugin-techdocs", - "version": "1.10.6-next.1", + "version": "1.10.6-next.2", "description": "The Backstage plugin that renders technical documentation for your components", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "techdocs", + "pluginPackages": [ + "@backstage/plugin-techdocs", + "@backstage/plugin-techdocs-backend", + "@backstage/plugin-techdocs-node", + "@backstage/plugin-techdocs-react" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/user-settings-backend/CHANGELOG.md b/plugins/user-settings-backend/CHANGELOG.md index 0e7600d0e3..bddd6f9fb3 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-user-settings-backend +## 0.2.18-next.3 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- e6ec179: Use signals to update user settings across sessions +- Updated dependencies + - @backstage/backend-plugin-api@0.6.19-next.3 + - @backstage/plugin-auth-node@0.4.14-next.3 + - @backstage/plugin-user-settings-common@0.0.1-next.0 + - @backstage/plugin-signals-node@0.1.5-next.3 + - @backstage/backend-common@0.23.0-next.3 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.2.18-next.2 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index 332c7eada1..e08e63ad05 100644 --- a/plugins/user-settings-backend/package.json +++ b/plugins/user-settings-backend/package.json @@ -1,9 +1,15 @@ { "name": "@backstage/plugin-user-settings-backend", - "version": "0.2.18-next.2", + "version": "0.2.18-next.3", "description": "The Backstage backend plugin to manage user settings", "backstage": { - "role": "backend-plugin" + "role": "backend-plugin", + "pluginId": "user-settings", + "pluginPackages": [ + "@backstage/plugin-user-settings", + "@backstage/plugin-user-settings-backend", + "@backstage/plugin-user-settings-common" + ] }, "publishConfig": { "access": "public" diff --git a/plugins/user-settings-common/CHANGELOG.md b/plugins/user-settings-common/CHANGELOG.md new file mode 100644 index 0000000000..768c2af894 --- /dev/null +++ b/plugins/user-settings-common/CHANGELOG.md @@ -0,0 +1,8 @@ +# @backstage/plugin-user-settings-common + +## 0.0.1-next.0 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- e6ec179: Use signals to update user settings across sessions diff --git a/plugins/user-settings-common/package.json b/plugins/user-settings-common/package.json index 1575712a05..f9a6b32d93 100644 --- a/plugins/user-settings-common/package.json +++ b/plugins/user-settings-common/package.json @@ -1,9 +1,15 @@ { "name": "@backstage/plugin-user-settings-common", - "version": "0.0.0", + "version": "0.0.1-next.0", "description": "Common functionalities for the user-settings plugin", "backstage": { - "role": "common-library" + "role": "common-library", + "pluginId": "user-settings", + "pluginPackages": [ + "@backstage/plugin-user-settings", + "@backstage/plugin-user-settings-backend", + "@backstage/plugin-user-settings-common" + ] }, "publishConfig": { "access": "public", diff --git a/plugins/user-settings/CHANGELOG.md b/plugins/user-settings/CHANGELOG.md index 859f4636dc..e373503785 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-user-settings +## 0.8.7-next.2 + +### Patch Changes + +- d44a20a: Added additional plugin metadata to `package.json`. +- e6ec179: Use signals to update user settings across sessions +- Updated dependencies + - @backstage/core-components@0.14.8-next.2 + - @backstage/plugin-user-settings-common@0.0.1-next.0 + - @backstage/plugin-catalog-react@1.12.1-next.2 + - @backstage/plugin-signals-react@0.0.4-next.1 + - @backstage/frontend-plugin-api@0.6.6-next.2 + - @backstage/core-compat-api@0.2.6-next.2 + - @backstage/core-app-api@1.12.6-next.0 + - @backstage/core-plugin-api@1.9.3-next.0 + - @backstage/errors@1.2.4 + - @backstage/theme@0.5.6-next.0 + - @backstage/types@1.1.1 + ## 0.8.7-next.1 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index ed9affbfe7..1d2fd3131c 100644 --- a/plugins/user-settings/package.json +++ b/plugins/user-settings/package.json @@ -1,9 +1,15 @@ { "name": "@backstage/plugin-user-settings", - "version": "0.8.7-next.1", + "version": "0.8.7-next.2", "description": "A Backstage plugin that provides a settings page", "backstage": { - "role": "frontend-plugin" + "role": "frontend-plugin", + "pluginId": "user-settings", + "pluginPackages": [ + "@backstage/plugin-user-settings", + "@backstage/plugin-user-settings-backend", + "@backstage/plugin-user-settings-common" + ] }, "publishConfig": { "access": "public" diff --git a/yarn.lock b/yarn.lock index ee4185b5b4..e39fcd83e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1777,8 +1777,8 @@ __metadata: linkType: hard "@azure/identity@npm:^4.0.0": - version: 4.1.0 - resolution: "@azure/identity@npm:4.1.0" + version: 4.2.1 + resolution: "@azure/identity@npm:4.2.1" dependencies: "@azure/abort-controller": ^1.0.0 "@azure/core-auth": ^1.5.0 @@ -1788,13 +1788,13 @@ __metadata: "@azure/core-util": ^1.3.0 "@azure/logger": ^1.0.0 "@azure/msal-browser": ^3.11.1 - "@azure/msal-node": ^2.6.6 + "@azure/msal-node": ^2.9.2 events: ^3.0.0 jws: ^4.0.0 open: ^8.0.0 stoppable: ^1.1.0 tslib: ^2.2.0 - checksum: ff46494c7a7fdc866406f0e7938e7621c9ee0e852af2faad7ecf53d62a45b1528150f9c8b13a0fdd846995943025fbcbc88f2582b107cd5afac1511c28252377 + checksum: 2dbd7b0fa6b92904b7b8f828374d7316384cc4e00c71cdac3a2f2544b9e02c7287fe7ad58149bb8794c57913d77a927f5a7b5d1367e05abe82b0f2e1b162415c languageName: node linkType: hard @@ -1816,6 +1816,13 @@ __metadata: languageName: node linkType: hard +"@azure/msal-common@npm:14.12.0": + version: 14.12.0 + resolution: "@azure/msal-common@npm:14.12.0" + checksum: 9a987b7b9b6453500481ec48224b4d9f728c62ac584f9a35ef519eff46016fc63c1a7dc159f725a5ec3748bf1ade352654fd7a7170ba42bc27ca263a01cf59db + languageName: node + linkType: hard + "@azure/msal-common@npm:14.8.1": version: 14.8.1 resolution: "@azure/msal-common@npm:14.8.1" @@ -1823,14 +1830,14 @@ __metadata: languageName: node linkType: hard -"@azure/msal-node@npm:^2.6.6": - version: 2.6.6 - resolution: "@azure/msal-node@npm:2.6.6" +"@azure/msal-node@npm:^2.9.2": + version: 2.9.2 + resolution: "@azure/msal-node@npm:2.9.2" dependencies: - "@azure/msal-common": 14.8.1 + "@azure/msal-common": 14.12.0 jsonwebtoken: ^9.0.0 uuid: ^8.3.0 - checksum: 45a83d774af1bb58df99c67551c68c686385950f701421e0c4c446e4d1b80c316f5e525024189bdbdd520b34e326d0e901a476c2afae07389fb9efd1c616c867 + checksum: a2b51d4085d20cbac84752b9e68a5a22c7c9dbfdbc25a1713ee5e6918a504928f82e66c9317fc78db4f12053e7debd477b984cab578e0bea269aacc0862e7219 languageName: node linkType: hard @@ -3588,6 +3595,12 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/backend-defaults@workspace:packages/backend-defaults" dependencies: + "@aws-sdk/abort-controller": ^3.347.0 + "@aws-sdk/client-codecommit": ^3.350.0 + "@aws-sdk/client-s3": ^3.350.0 + "@aws-sdk/credential-providers": ^3.350.0 + "@aws-sdk/types": ^3.347.0 + "@aws-sdk/util-stream-node": ^3.350.0 "@backstage/backend-app-api": "workspace:^" "@backstage/backend-common": "workspace:^" "@backstage/backend-dev-utils": "workspace:^" @@ -3597,25 +3610,41 @@ __metadata: "@backstage/config": "workspace:^" "@backstage/config-loader": "workspace:^" "@backstage/errors": "workspace:^" + "@backstage/integration": "workspace:^" + "@backstage/integration-aws-node": "workspace:^" "@backstage/plugin-events-node": "workspace:^" "@backstage/plugin-permission-node": "workspace:^" "@backstage/types": "workspace:^" + "@google-cloud/storage": ^7.0.0 "@keyv/memcache": ^1.3.5 "@keyv/redis": ^2.5.3 + "@octokit/rest": ^19.0.3 "@opentelemetry/api": ^1.3.0 + archiver: ^6.0.0 + aws-sdk-client-mock: ^4.0.0 + base64-stream: ^1.0.0 better-sqlite3: ^9.0.0 + concat-stream: ^2.0.0 cron: ^3.0.0 fs-extra: ^11.2.0 + git-url-parse: ^14.0.0 + isomorphic-git: ^1.23.0 keyv: ^4.5.2 knex: ^3.0.0 lodash: ^4.17.21 luxon: ^3.0.0 + minimatch: ^9.0.0 + msw: ^1.0.0 mysql2: ^3.0.0 + node-fetch: ^2.6.7 p-limit: ^3.1.0 pg: ^8.11.3 pg-connection-string: ^2.3.0 + raw-body: ^2.4.1 + tar: ^6.1.12 uuid: ^9.0.0 wait-for-expect: ^3.0.2 + yauzl: ^3.0.0 yn: ^4.0.0 zod: ^3.22.4 languageName: unknown @@ -5652,7 +5681,18 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-common@^1.0.20, @backstage/plugin-catalog-common@^1.0.23, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": +"@backstage/plugin-catalog-common@npm:^1.0.20, @backstage/plugin-catalog-common@npm:^1.0.23": + version: 1.0.23 + resolution: "@backstage/plugin-catalog-common@npm:1.0.23" + dependencies: + "@backstage/catalog-model": ^1.5.0 + "@backstage/plugin-permission-common": ^0.7.13 + "@backstage/plugin-search-common": ^1.2.11 + checksum: 071456b301689b9b349bdb1bea0d81cc41b0e8055e68096655a0abd198ea21afdc27bda7135d5c800ba8074fbc20d2d8d3a2244578fa8f6547205bee57c31c3d + languageName: node + linkType: hard + +"@backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-common@workspace:plugins/catalog-common" dependencies: @@ -6640,7 +6680,21 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-common@^0.7.13, @backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common": +"@backstage/plugin-permission-common@npm:^0.7.13": + version: 0.7.13 + resolution: "@backstage/plugin-permission-common@npm:0.7.13" + dependencies: + "@backstage/config": ^1.2.0 + "@backstage/errors": ^1.2.4 + "@backstage/types": ^1.1.1 + cross-fetch: ^4.0.0 + uuid: ^9.0.0 + zod: ^3.22.4 + checksum: 3abea60e1016d352b99700d331af39b8c2b6f84ce7e19e02026f909e53a709b23c1ac9fadc591658252c458bb4d381545574ca66374db0912efe6640c8d58020 + languageName: node + linkType: hard + +"@backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common": version: 0.0.0-use.local resolution: "@backstage/plugin-permission-common@workspace:plugins/permission-common" dependencies: @@ -7443,6 +7497,16 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-search-common@npm:^1.2.11": + version: 1.2.11 + resolution: "@backstage/plugin-search-common@npm:1.2.11" + dependencies: + "@backstage/plugin-permission-common": ^0.7.13 + "@backstage/types": ^1.1.1 + checksum: 861ba64fd733511bad58d2b3f6b2af60426d71b8e8d74838b85a15a5870d54c0de984681a33f5adb8e97284da9167655982bcf5e543436d0f4160a2c0cbece1f + languageName: node + linkType: hard + "@backstage/plugin-search-common@workspace:^, @backstage/plugin-search-common@workspace:plugins/search-common": version: 0.0.0-use.local resolution: "@backstage/plugin-search-common@workspace:plugins/search-common" @@ -10377,36 +10441,36 @@ __metadata: linkType: hard "@kubernetes-models/apimachinery@npm:^1.1.0, @kubernetes-models/apimachinery@npm:^1.2.1": - version: 1.2.1 - resolution: "@kubernetes-models/apimachinery@npm:1.2.1" + version: 1.2.2 + resolution: "@kubernetes-models/apimachinery@npm:1.2.2" dependencies: - "@kubernetes-models/base": ^4.0.3 - "@kubernetes-models/validate": ^3.1.1 + "@kubernetes-models/base": ^4.0.4 + "@kubernetes-models/validate": ^3.1.2 tslib: ^2.4.0 - checksum: 69145452a2f1b9314aa33326d236e1829905bbdc48727927d065570e2fe95c3895e7117e54f394823c06f5811c7de689f7df1f8010f49d6b89d59241c8704a02 + checksum: 57387bb8a1f43b740506877d2557a188122512dd2f05c54e3076e0d6cf9a2112f7c5cbbba762c8f4fee22845fcf1302b97537a9e24cfd18b6a99d51a1360136a languageName: node linkType: hard -"@kubernetes-models/base@npm:^4.0.1, @kubernetes-models/base@npm:^4.0.3": - version: 4.0.3 - resolution: "@kubernetes-models/base@npm:4.0.3" +"@kubernetes-models/base@npm:^4.0.1, @kubernetes-models/base@npm:^4.0.3, @kubernetes-models/base@npm:^4.0.4": + version: 4.0.4 + resolution: "@kubernetes-models/base@npm:4.0.4" dependencies: - "@kubernetes-models/validate": ^3.1.1 + "@kubernetes-models/validate": ^3.1.2 is-plain-object: ^5.0.0 tslib: ^2.4.0 - checksum: 0f1f333d7e70ba87c322c0bfc9497c4d51e7c7063f0530106daac2e7eac328477df1bf48e255ddf595fb1b49ae0d5214e4f9b5df91d7f67892a0db047d05995f + checksum: 15d531118e8a85eda8fd9602de4ba0e61e794d52218df7acb9842fe3c2fad5e788f3468768e8287405c6228625cce5cb1d91d923499e401a1a0f55287b2e6b5a languageName: node linkType: hard -"@kubernetes-models/validate@npm:^3.1.1": - version: 3.1.1 - resolution: "@kubernetes-models/validate@npm:3.1.1" +"@kubernetes-models/validate@npm:^3.1.1, @kubernetes-models/validate@npm:^3.1.2": + version: 3.1.2 + resolution: "@kubernetes-models/validate@npm:3.1.2" dependencies: ajv: ^8.12.0 ajv-formats: ^2.1.1 ajv-formats-draft2019: ^1.6.1 tslib: ^2.4.0 - checksum: cb5be259a0b5cead73b98648a69785a5e04c2fa3ce199033604c4551b6c4786435c9e5f926cff2d63f50a6fbd2c0ad1199550cb0cbea781e64673b29c4d85345 + checksum: 44bd7e45aa9716448532f5afc6510398a7eed77c23df67acd94acde4e940c3284a879cc62372fb3dcb67c12d2d10e43900bdd98bc39d1177492c9f2d48b63d4e languageName: node linkType: hard @@ -11129,15 +11193,14 @@ __metadata: languageName: node linkType: hard -"@nestjs/axios@npm:3.0.1": - version: 3.0.1 - resolution: "@nestjs/axios@npm:3.0.1" +"@nestjs/axios@npm:3.0.2": + version: 3.0.2 + resolution: "@nestjs/axios@npm:3.0.2" peerDependencies: "@nestjs/common": ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 axios: ^1.3.1 - reflect-metadata: ^0.1.12 rxjs: ^6.0.0 || ^7.0.0 - checksum: 01cebc64efa7a1d9df7a9053fbc5124986a95078789a0f280a2a61c31601a70a35745e07fc385497b4f85c7bdb6216a3575728646f1e6e684c038ac31900129c + checksum: 285a735fb5db602b63aa4a37e161f609b2cec05b69f4bffe983617c2136ac29c0a33bb96e6276d22a656907bed5d53460e740310bc05c043dcd39c37db7cda29 languageName: node linkType: hard @@ -12269,14 +12332,14 @@ __metadata: linkType: hard "@openapitools/openapi-generator-cli@npm:^2.4.26, @openapitools/openapi-generator-cli@npm:^2.7.0": - version: 2.13.2 - resolution: "@openapitools/openapi-generator-cli@npm:2.13.2" + version: 2.13.4 + resolution: "@openapitools/openapi-generator-cli@npm:2.13.4" dependencies: - "@nestjs/axios": 3.0.1 + "@nestjs/axios": 3.0.2 "@nestjs/common": 10.3.0 "@nestjs/core": 10.3.0 "@nuxtjs/opencollective": 0.3.2 - axios: 1.6.5 + axios: 1.6.8 chalk: 4.1.2 commander: 8.3.0 compare-versions: 4.1.4 @@ -12292,7 +12355,7 @@ __metadata: tslib: 2.6.2 bin: openapi-generator-cli: main.js - checksum: 553458ffface4090f117ec488352f664bb4656b645ef51faf5be35f27e739ac5c8931adf401309dfa0aad7ceefa39fb267d452b72d7a22f0fdb26d988d73b642 + checksum: 825a49ff86632767d318fa860d9d251984b9b3e8f386cf8298430005f20611d7b535c6e87e370edd19ff824a5c68cf65efc93cbb64d7a2f1649e46a8887cf5d2 languageName: node linkType: hard @@ -17430,14 +17493,14 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33, @types/express-serve-static-core@npm:^4.17.5": - version: 4.19.0 - resolution: "@types/express-serve-static-core@npm:4.19.0" + version: 4.19.3 + resolution: "@types/express-serve-static-core@npm:4.19.3" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" "@types/send": "*" - checksum: 39c09fcb3f61de96ed56d97273874cafe50e6675ac254af4d77014e569e4fdc29d1d0d1dd12e11f008cb9a52785b07c2801c6ba91397965392b20c75ee01fb4e + checksum: fff38a7f43baeb6a62380682d39846c9d92047e0dce1737d76ebd944528619abc18addc4f0548bf43dbf4514090a1bd5140ba36695024656f941a87424b8ed7d languageName: node linkType: hard @@ -17872,9 +17935,9 @@ __metadata: linkType: hard "@types/lodash@npm:^4.14.151": - version: 4.17.4 - resolution: "@types/lodash@npm:4.17.4" - checksum: 268e652fd52d49189f155bc89b49bd4535aa44f0b6b0ed9ce7e50318307bda58147c49539d2047f39ca37cf5b5ea38dfb801d0dbcdbc8b019c95c1afc346b05a + version: 4.17.5 + resolution: "@types/lodash@npm:4.17.5" + checksum: 3c9bb15772509f0ecb40428531863dbc3f064f2bf34bbccc2ce2b2923c69fb0868aec7e357b1d97fd0d7f7e435a014ea5c1adef8a64715529887179c97a5a823 languageName: node linkType: hard @@ -18179,13 +18242,13 @@ __metadata: linkType: hard "@types/passport-oauth2@npm:*, @types/passport-oauth2@npm:^1.4.11, @types/passport-oauth2@npm:^1.4.15": - version: 1.4.16 - resolution: "@types/passport-oauth2@npm:1.4.16" + version: 1.4.17 + resolution: "@types/passport-oauth2@npm:1.4.17" dependencies: "@types/express": "*" "@types/oauth": "*" "@types/passport": "*" - checksum: a590d3fcdf93dbe4498c636de139dc22a723bbf12a7f248f432085a47ec1b76b2e1201336ee26cd65c400d7ce6fb30ae0b151f40067267942c8a5b3c708cc23d + checksum: 4c5d2d6f717bb0b3d049669e47ca27cb166cbbef2073dccd302b10e62936c9e392074acabe6cb593f7eeb37a6a3cf81b9d3a4f35a46018a6645ac37d0f1706cb languageName: node linkType: hard @@ -21064,7 +21127,7 @@ __metadata: languageName: node linkType: hard -"async-lock@npm:^1.1.0, async-lock@npm:^1.4.1": +"async-lock@npm:^1.4.1": version: 1.4.1 resolution: "async-lock@npm:1.4.1" checksum: 29e70cd892932b7c202437786cedc39ff62123cb6941014739bd3cabd6106326416e9e7c21285a5d1dc042cad239a0f7ec9c44658491ee4a615fd36a21c1d10a @@ -21240,14 +21303,14 @@ __metadata: languageName: node linkType: hard -"axios@npm:1.6.5": - version: 1.6.5 - resolution: "axios@npm:1.6.5" +"axios@npm:1.6.8, axios@npm:^1.0.0, axios@npm:^1.4.0, axios@npm:^1.6.0": + version: 1.6.8 + resolution: "axios@npm:1.6.8" dependencies: - follow-redirects: ^1.15.4 + follow-redirects: ^1.15.6 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: e28d67b2d9134cb4608c44d8068b0678cfdccc652742e619006f27264a30c7aba13b2cd19c6f1f52ae195b5232734925928fb192d5c85feea7edd2f273df206d + checksum: bf007fa4b207d102459300698620b3b0873503c6d47bf5a8f6e43c0c64c90035a4f698b55027ca1958f61ab43723df2781c38a99711848d232cad7accbcdfcdd languageName: node linkType: hard @@ -21261,17 +21324,6 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.0.0, axios@npm:^1.4.0, axios@npm:^1.6.0": - version: 1.6.8 - resolution: "axios@npm:1.6.8" - dependencies: - follow-redirects: ^1.15.6 - form-data: ^4.0.0 - proxy-from-env: ^1.1.0 - checksum: bf007fa4b207d102459300698620b3b0873503c6d47bf5a8f6e43c0c64c90035a4f698b55027ca1958f61ab43723df2781c38a99711848d232cad7accbcdfcdd - languageName: node - linkType: hard - "axobject-query@npm:^3.2.1": version: 3.2.1 resolution: "axobject-query@npm:3.2.1" @@ -25095,7 +25147,7 @@ __metadata: languageName: node linkType: hard -"dompurify@npm:=3.1.0, dompurify@npm:^3.0.0": +"dompurify@npm:=3.1.0": version: 3.1.0 resolution: "dompurify@npm:3.1.0" checksum: 06fc76607cd076e394b2ea5479ab6f0407b8fedb6877ae95e94207b878365e5e1cd914055dacce152a5f419818afb8d4cd284b780246cf35363f0747c179a0ba @@ -25103,9 +25155,16 @@ __metadata: linkType: hard "dompurify@npm:^2.2.7": - version: 2.5.0 - resolution: "dompurify@npm:2.5.0" - checksum: 9eab7be868ddb5a43fa634898605681e7b6b18dc5b89f5d143afc9ec63bb4d2c113a15900d5ee363859aa8722e8534da346486997eafbb29e3178cbb89077e15 + version: 2.5.5 + resolution: "dompurify@npm:2.5.5" + checksum: 9d6dace3fd619a64955f844b46ea12f83b101b0ed567241715f3f730b627038d391819b8868f2e53eebf4e231c3168429d49a5d0f01f96fcc23a794eb72b2a06 + languageName: node + linkType: hard + +"dompurify@npm:^3.0.0": + version: 3.1.5 + resolution: "dompurify@npm:3.1.5" + checksum: 18ae2930cba3c260889b99e312c382c344d219bd113bc39fbb665a61987d25849021768f490395e6954aab94448a24b3c3721c160b53550547110c37cebe9feb languageName: node linkType: hard @@ -27508,7 +27567,7 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.4, follow-redirects@npm:^1.15.6": +"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.6": version: 1.15.6 resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: @@ -29249,9 +29308,9 @@ __metadata: linkType: hard "humanize-duration@npm:^3.25.1": - version: 3.32.0 - resolution: "humanize-duration@npm:3.32.0" - checksum: fd12af03045278c24542d2222d46831f74d21a2132bba053d4847ff8c8f6799840db6ff8a14ce24cc920f69633970fbde4f83d7cbcfed26806ed21804e72a03a + version: 3.32.1 + resolution: "humanize-duration@npm:3.32.1" + checksum: 17f6f2ec09a931eb0bf7de1fc8ac01f90174f366f60390289bd0797c6e4545255bd5d770dd18909c9b21685d76cc190b3a8ec880d2ecc088a1ad032e0d2f57cb languageName: node linkType: hard @@ -30561,10 +30620,10 @@ __metadata: linkType: hard "isomorphic-git@npm:^1.23.0": - version: 1.25.7 - resolution: "isomorphic-git@npm:1.25.7" + version: 1.25.10 + resolution: "isomorphic-git@npm:1.25.10" dependencies: - async-lock: ^1.1.0 + async-lock: ^1.4.1 clean-git-ref: ^2.0.1 crc-32: ^1.2.0 diff3: 0.0.3 @@ -30577,7 +30636,7 @@ __metadata: simple-get: ^4.0.1 bin: isogit: cli.cjs - checksum: 6655c70c8c9974c907f6ca864ca16b0aed113ca8b6f50de4858a624b2ed66633a83ce64ca8935f370e328a29bc37811447eb7494be379388123feb811e867459 + checksum: 69e358e47a3677e1251ae3becf56ec7b2dd63e191516800647c341b101f4d40f42d185cb80acc1f8c71b4d6bf417b44b75233d2581a63c3eda69dd2c1a33886f languageName: node linkType: hard @@ -31612,8 +31671,8 @@ __metadata: linkType: hard "json-schema-library@npm:^9.0.0": - version: 9.3.4 - resolution: "json-schema-library@npm:9.3.4" + version: 9.3.5 + resolution: "json-schema-library@npm:9.3.5" dependencies: "@sagold/json-pointer": ^5.1.2 "@sagold/json-query": ^6.1.3 @@ -31622,7 +31681,7 @@ __metadata: fast-deep-equal: ^3.1.3 smtp-address-parser: 1.0.10 valid-url: ^1.0.9 - checksum: 6e3accc45bdf0fe4831c8b2a560d8feaa9402bd6c5833a0c7e11ee78c316b17a389a3368a7ee2c989d4aac36018742d7dcc83c66b11170c54800b0e56418638f + checksum: 8c8a8c993f998a3485d5675781a0330f4e5abc43781f1fa03b709dd5a5157fb2a524c704966f8c4fc31873c5816d4a07058214873b78b1d54f8b4a0cf6737bcf languageName: node linkType: hard @@ -32346,8 +32405,8 @@ __metadata: linkType: hard "lint-staged@npm:^15.0.0": - version: 15.2.5 - resolution: "lint-staged@npm:15.2.5" + version: 15.2.6 + resolution: "lint-staged@npm:15.2.6" dependencies: chalk: ~5.3.0 commander: ~12.1.0 @@ -32361,7 +32420,7 @@ __metadata: yaml: ~2.4.2 bin: lint-staged: bin/lint-staged.js - checksum: 3025868d965eb401a5ebd903abd70cfebb8dbeb41eea1020c316f9c8c79083ea203f6cef95d32bfa8c9ec5486392b4ed08632ace6a5347b69cf238ba00e178f0 + checksum: 9320f6995365723d37b9247c8ebc1a80c567578a4d2ed693de20140749b244730be2d296e1cdc9545430c7dcda08b622473a578fc9847c70589913f1c3b61f6e languageName: node linkType: hard @@ -33153,13 +33212,13 @@ __metadata: linkType: hard "material-ui-confirm@npm:^3.0.12": - version: 3.0.12 - resolution: "material-ui-confirm@npm:3.0.12" + version: 3.0.16 + resolution: "material-ui-confirm@npm:3.0.16" peerDependencies: "@mui/material": ">= 5.0.0" react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 - checksum: de1092fdc4ab8104fbfdb5034921aeb2a5db5854ad5e31fb24dc4c204c6fb5b66a33ad377abf7adda390c432aefe96a2188ef1b8a3b9c1a80a9a28af63833458 + checksum: 10114de3ac1dfd25cd46d151fa011bf7fa07376199a9cd62c8fbc619d0f711204c7a6bcf124e1ef6752f39377b04c09eb63e470e53d08a52aae5a46ee7a35a79 languageName: node linkType: hard