diff --git a/.changeset/afraid-bananas-behave.md b/.changeset/afraid-bananas-behave.md new file mode 100644 index 0000000000..624b798c17 --- /dev/null +++ b/.changeset/afraid-bananas-behave.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed an issue where the `--successCache` option for the `repo test` and `repo lint` commands would be include the workspace path in generated cache keys. This previously broke caching in environments where the workspace path varies across builds. diff --git a/.changeset/angry-cycles-call.md b/.changeset/angry-cycles-call.md deleted file mode 100644 index e8db20b701..0000000000 --- a/.changeset/angry-cycles-call.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Preserve directory structure for CommonJS build output, just like ESM. This makes the build output more stable and easier to browse, and allows for more effective tree shaking and lazy imports. diff --git a/.changeset/angry-mayflies-collect.md b/.changeset/angry-mayflies-collect.md deleted file mode 100644 index df49f98b33..0000000000 --- a/.changeset/angry-mayflies-collect.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Correct size of FavoriteToggle and inherit non-starred color from parent diff --git a/.changeset/angry-windows-decide.md b/.changeset/angry-windows-decide.md deleted file mode 100644 index 6a5c225e80..0000000000 --- a/.changeset/angry-windows-decide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Fix extra divider displayed in owner list picker on list tasks page diff --git a/.changeset/beige-ghosts-enjoy.md b/.changeset/beige-ghosts-enjoy.md deleted file mode 100644 index 49ae916939..0000000000 --- a/.changeset/beige-ghosts-enjoy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': minor ---- - -The `repo test` command will no longer default to watch mode if the `--since` flag is provided. diff --git a/.changeset/big-rules-nail.md b/.changeset/big-rules-nail.md deleted file mode 100644 index 959ce2a26e..0000000000 --- a/.changeset/big-rules-nail.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-elasticsearch': patch ---- - -Align the configuration schema with the docs and actual behavior of the code diff --git a/.changeset/breezy-berries-yawn.md b/.changeset/breezy-berries-yawn.md deleted file mode 100644 index 0ef4fa68e7..0000000000 --- a/.changeset/breezy-berries-yawn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-react': patch ---- - -Add `overridableComponent` `BackstageTemplateStepperClassKey` to template stepper to enable custom styling diff --git a/.changeset/breezy-bulldogs-smell.md b/.changeset/breezy-bulldogs-smell.md deleted file mode 100644 index 69825142cb..0000000000 --- a/.changeset/breezy-bulldogs-smell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Create a separate route for the Scaffolder template editor and add the ability to refresh the page without closing the directory. Also, when the directory is closed, the user will stay on the editor page and can load a template folder from there. diff --git a/.changeset/brown-frogs-walk.md b/.changeset/brown-frogs-walk.md deleted file mode 100644 index 6fae44be73..0000000000 --- a/.changeset/brown-frogs-walk.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Add `fetch:template:file` scaffolder action to download a single file and template the contents. Example usage: - -```yaml -- id: fetch-file - name: Fetch File - action: fetch:template:file - input: - url: https://github.com/backstage/software-templates/blob/main/scaffolder-templates/create-react-app/skeleton/catalog-info.yaml - targetPath: './target/catalog-info.yaml' - values: - component_id: My Component - owner: Test -``` diff --git a/.changeset/calm-owls-move.md b/.changeset/calm-owls-move.md deleted file mode 100644 index bd7fb72508..0000000000 --- a/.changeset/calm-owls-move.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli-node': patch ---- - -Added new `lockfile.getDependencyTreeHash(name)` utility. diff --git a/.changeset/chair-fairs-drive.md b/.changeset/chair-fairs-drive.md deleted file mode 100644 index 91c00c063a..0000000000 --- a/.changeset/chair-fairs-drive.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/frontend-plugin-api': minor ---- - -Removed deprecated `namespace` option from `createExtension` and `createExtensionBlueprint`, including `.make` and `.makeWithOverides`, it's no longer necessary and will use the `pluginId` instead. - -Removed deprecated `createExtensionOverrides` this should be replaced with `createFrontendModule` instead. - -Removed deprecated `BackstagePlugin` type, use `FrontendPlugin` type instead from this same package. diff --git a/.changeset/chilled-dolphins-join.md b/.changeset/chilled-dolphins-join.md deleted file mode 100644 index 4c3f5a381b..0000000000 --- a/.changeset/chilled-dolphins-join.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': minor ---- - -Updated default columns for location entities to remove description and tags from the catalog table view. diff --git a/.changeset/chilled-melons-smash.md b/.changeset/chilled-melons-smash.md deleted file mode 100644 index ca8f02ff37..0000000000 --- a/.changeset/chilled-melons-smash.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-github': patch ---- - -Add `github:branch-protection:create` scaffolder action to set branch protection on an existing repository. Example usage: - -```yaml -- id: set-branch-protection - name: Set Branch Protection - action: github:branch-protection:create - input: - repoUrl: 'github.com?repo=backstage&owner=backstage' - branch: master - enforceAdmins: true # default - requiredApprovingReviewCount: 1 # default - requireBranchesToBeUpToDate: true # default - requireCodeOwnerReviews: true - dismissStaleReviews: true - requiredConversationResolution: true -``` diff --git a/.changeset/chilled-taxis-dance.md b/.changeset/chilled-taxis-dance.md new file mode 100644 index 0000000000..e2a5dcecee --- /dev/null +++ b/.changeset/chilled-taxis-dance.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +The check for `react-dom/client` in the Jest configuration will now properly always run from the target directory. diff --git a/.changeset/chilly-meals-sniff.md b/.changeset/chilly-meals-sniff.md deleted file mode 100644 index 6776f93154..0000000000 --- a/.changeset/chilly-meals-sniff.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/frontend-test-utils': patch ---- - -Disable the built-in `SignInPage` in `createExtensionTester` in order to not mess with existing tests diff --git a/.changeset/clever-paws-stare.md b/.changeset/clever-paws-stare.md deleted file mode 100644 index ad56a5306e..0000000000 --- a/.changeset/clever-paws-stare.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Added functionality to the prepack script that will append the default export type for entry points to the `exports` object before publishing. This is to help with identifying the declarative integration points for plugins without needing to fetch or run the plugins first. diff --git a/.changeset/clever-rats-rush.md b/.changeset/clever-rats-rush.md deleted file mode 100644 index c34427f8f5..0000000000 --- a/.changeset/clever-rats-rush.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-defaults': patch ---- - -Sensitive internal fields on `BackstageCredentials` objects are now defined as read-only properties in order to minimize risk of leakage. diff --git a/.changeset/cold-nails-rescue.md b/.changeset/cold-nails-rescue.md deleted file mode 100644 index b7667305ca..0000000000 --- a/.changeset/cold-nails-rescue.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': minor ---- - -**BREAKING**: The Jest configuration defined at `@backstage/cli/config/jest` no longer collects configuration defined in the `"jest"` field from all parent `package.json` files. Instead, it will only read and merge configuration from the `package.json` in the monorepo root if it exists, as well as the target package. In addition, configuration defined in the root `package.json` will now only be merged into each package configuration if it is a valid project-level configuration key. diff --git a/.changeset/crash-loop-baby.md b/.changeset/crash-loop-baby.md deleted file mode 100644 index 4f629c7f92..0000000000 --- a/.changeset/crash-loop-baby.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/backend-app-api': patch -'@backstage/backend-defaults': patch ---- - -Plugin lifecycle shutdown hooks are now performed before root lifecycle shutdown hooks. diff --git a/.changeset/crash-loop-honey.md b/.changeset/crash-loop-honey.md deleted file mode 100644 index 60f9f04600..0000000000 --- a/.changeset/crash-loop-honey.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-defaults': patch ---- - -The database manager now attempts to close any database connections in a root lifecycle shutdown hook. diff --git a/.changeset/crash-loop-yeah.md b/.changeset/crash-loop-yeah.md deleted file mode 100644 index 098bc01bae..0000000000 --- a/.changeset/crash-loop-yeah.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-defaults': patch ---- - -The task scheduler now attempts to abort any tasks if it detects that Backstage is being shut down. diff --git a/.changeset/create-app-1728387650.md b/.changeset/create-app-1728387650.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1728387650.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/create-app-1727774359.md b/.changeset/create-app-1729608704.md similarity index 100% rename from .changeset/create-app-1727774359.md rename to .changeset/create-app-1729608704.md diff --git a/.changeset/cuddly-stingrays-smell.md b/.changeset/cuddly-stingrays-smell.md deleted file mode 100644 index 5a8a8ac236..0000000000 --- a/.changeset/cuddly-stingrays-smell.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -'@backstage/plugin-auth-backend-module-cloudflare-access-provider': patch -'@backstage/plugin-auth-backend-module-vmware-cloud-provider': 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-auth-backend-module-onelogin-provider': 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-auth-backend-module-oidc-provider': patch -'@backstage/plugin-auth-backend-module-okta-provider': patch ---- - -Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. diff --git a/.changeset/curly-foxes-brake.md b/.changeset/curly-foxes-brake.md deleted file mode 100644 index 6946f30371..0000000000 --- a/.changeset/curly-foxes-brake.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Apply `defaultValue` props in `MultiEntityPicker` diff --git a/.changeset/curvy-bears-nail.md b/.changeset/curvy-bears-nail.md new file mode 100644 index 0000000000..d0bdd51401 --- /dev/null +++ b/.changeset/curvy-bears-nail.md @@ -0,0 +1,5 @@ +--- +'@backstage/theme': patch +--- + +Internal refactor to avoid top-level imports from MUI. diff --git a/.changeset/cyan-cooks-sing.md b/.changeset/cyan-cooks-sing.md deleted file mode 100644 index 70492d0165..0000000000 --- a/.changeset/cyan-cooks-sing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-gerrit': patch ---- - -Fixed an issue preventing the provider's `schedule` config from being applied." diff --git a/.changeset/cyan-peaches-lay.md b/.changeset/cyan-peaches-lay.md deleted file mode 100644 index a2b393caf8..0000000000 --- a/.changeset/cyan-peaches-lay.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Create a separate route for the template form editor so we refresh it without being redirected to scaffolder edit page. diff --git a/.changeset/cyan-suits-battle.md b/.changeset/cyan-suits-battle.md deleted file mode 100644 index ac8b9eb811..0000000000 --- a/.changeset/cyan-suits-battle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -The `scaffolder-module` template has been updated to use a more modern layout and new testing utilities for scaffolder actions. diff --git a/.changeset/cyan-trees-bow.md b/.changeset/cyan-trees-bow.md new file mode 100644 index 0000000000..6f23f67f55 --- /dev/null +++ b/.changeset/cyan-trees-bow.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-events-node': patch +--- + +Fixed an issue where subscribing to events threw an error and gave up too easily. Calling the subscribe method will cause the background polling loop to keep trying to connect to the events backend, even if the initial request fails. + +By default the events service will attempt to publish and subscribe to events from the events bus API in the events backend, but if it fails due to the events backend not being installed, it will bail and never try calling the API again. There is now a new `events.useEventBus` configuration and option for the `DefaultEventsService` that lets you control this behavior. You can set it to `'never'` to disabled API calls to the events backend completely, or `'always'` to never allow it to be disabled. diff --git a/.changeset/dependabot-a3fd85a.md b/.changeset/dependabot-a3fd85a.md deleted file mode 100644 index 8ff0c9dfa2..0000000000 --- a/.changeset/dependabot-a3fd85a.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/backend-app-api': patch -'@backstage/backend-defaults': patch -'@backstage/backend-test-utils': patch ---- - -build(deps): bump `cookie` from 0.6.0 to 0.7.0 diff --git a/.changeset/dry-frogs-drum.md b/.changeset/dry-frogs-drum.md deleted file mode 100644 index c929732943..0000000000 --- a/.changeset/dry-frogs-drum.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Change task list created at column to show timestamp diff --git a/.changeset/early-cobras-compare.md b/.changeset/early-cobras-compare.md new file mode 100644 index 0000000000..591d1377f3 --- /dev/null +++ b/.changeset/early-cobras-compare.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-ldap': patch +--- + +Added a `dnCaseSensitive` flag to support LDAP servers with mixed-case attributes. diff --git a/.changeset/early-drinks-kneel.md b/.changeset/early-drinks-kneel.md deleted file mode 100644 index c744cd5d7c..0000000000 --- a/.changeset/early-drinks-kneel.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': minor -'@backstage/plugin-scaffolder-node': minor ---- - -Added pagination support for listing of tasks and the ability to filter on several users and task statuses. diff --git a/.changeset/early-monkeys-hammer.md b/.changeset/early-monkeys-hammer.md new file mode 100644 index 0000000000..fab689d517 --- /dev/null +++ b/.changeset/early-monkeys-hammer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': patch +--- + +bump `@asyncapi/react-component` to latest `2.x` diff --git a/.changeset/early-sloths-cross.md b/.changeset/early-sloths-cross.md deleted file mode 100644 index 7f4a563918..0000000000 --- a/.changeset/early-sloths-cross.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -'@backstage/plugin-signals-react': patch -'@backstage/plugin-signals': patch -'@backstage/plugin-api-docs-module-protoc-gen-doc': patch -'@backstage/plugin-techdocs-module-addons-contrib': patch -'@backstage/plugin-catalog-unprocessed-entities': patch -'@backstage/plugin-scaffolder-node-test-utils': patch -'@backstage/plugin-techdocs-addons-test-utils': patch -'@backstage/frontend-plugin-api': patch -'@backstage/frontend-test-utils': patch -'@backstage/integration-react': patch -'@backstage/plugin-kubernetes-cluster': patch -'@backstage/frontend-app-api': patch -'@backstage/core-compat-api': patch -'@backstage/core-components': patch -'@backstage/core-plugin-api': patch -'@backstage/plugin-kubernetes-react': patch -'@backstage/plugin-permission-react': patch -'@backstage/plugin-scaffolder-react': patch -'@backstage/version-bridge': patch -'@backstage/plugin-app-visualizer': patch -'@backstage/plugin-catalog-import': patch -'@backstage/plugin-techdocs-react': patch -'@backstage/app-defaults': patch -'@backstage/core-app-api': patch -'@backstage/plugin-catalog-graph': patch -'@backstage/plugin-catalog-react': patch -'@backstage/plugin-config-schema': patch -'@backstage/plugin-notifications': patch -'@backstage/plugin-user-settings': patch -'@backstage/plugin-search-react': patch -'@backstage/test-utils': patch -'@backstage/dev-utils': patch -'@backstage/plugin-auth-react': patch -'@backstage/plugin-home-react': patch -'@backstage/plugin-kubernetes': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-org-react': patch -'@backstage/plugin-api-docs': patch -'@backstage/plugin-devtools': patch -'@backstage/plugin-techdocs': patch -'@backstage/plugin-catalog': patch -'@backstage/theme': patch -'@backstage/plugin-search': patch -'@backstage/plugin-home': patch -'@backstage/plugin-org': patch ---- - -Move `@types/react` to a peer dependency. diff --git a/.changeset/eight-clocks-complain.md b/.changeset/eight-clocks-complain.md deleted file mode 100644 index b7044481ac..0000000000 --- a/.changeset/eight-clocks-complain.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/eslint-plugin': patch ---- - -Exclude `@material-ui/data-grid` diff --git a/.changeset/eight-steaks-chew.md b/.changeset/eight-steaks-chew.md deleted file mode 100644 index 4651d3fb8c..0000000000 --- a/.changeset/eight-steaks-chew.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-scaffolder-react': minor -'@backstage/plugin-scaffolder': minor ---- - -Added support for `FormFieldBlueprint` to create field extensions in the Scaffolder plugin diff --git a/.changeset/eighty-mice-turn.md b/.changeset/eighty-mice-turn.md deleted file mode 100644 index cec3835641..0000000000 --- a/.changeset/eighty-mice-turn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Add tests for the `TemplateEditorToolbarTemplatesMenu` component. diff --git a/.changeset/eleven-beds-play.md b/.changeset/eleven-beds-play.md deleted file mode 100644 index fd51922cb4..0000000000 --- a/.changeset/eleven-beds-play.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend': patch ---- - -Fix to schema to allow arbitrary query parameters. diff --git a/.changeset/eleven-pugs-hear.md b/.changeset/eleven-pugs-hear.md deleted file mode 100644 index 5d65057e0b..0000000000 --- a/.changeset/eleven-pugs-hear.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-api-docs': patch -'@backstage/plugin-catalog': patch ---- - -Empty states updated with external link icon for learn more links diff --git a/.changeset/empty-lobsters-wait.md b/.changeset/empty-lobsters-wait.md new file mode 100644 index 0000000000..404b0c8066 --- /dev/null +++ b/.changeset/empty-lobsters-wait.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-catalog-backend-module-incremental-ingestion': minor +--- + +Use `HumanDuration` for all duration needs in the public API, instead of `luxon` types. These are generally compatible, with a few caveats: + +- If you scheduled things to run quarterly (`quarter` or `quarters`), you can use `{ months: 3 }` instead. +- If you used the singular nouns such as `year: 1`, use plurals instead (e.g. `years: 1`). diff --git a/.changeset/fair-chairs-drive.md b/.changeset/fair-chairs-drive.md deleted file mode 100644 index fae2195821..0000000000 --- a/.changeset/fair-chairs-drive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/frontend-app-api': minor ---- - -Removed deprecated `createApp` and `CreateAppFeatureLoader` from `@backstage/frontend-app-api`, use the same `createApp` and `CreateAppFeatureLoader` import from `@backstage/frontend-defaults` instead. diff --git a/.changeset/famous-bobcats-remain.md b/.changeset/famous-bobcats-remain.md deleted file mode 100644 index 6943eb7e56..0000000000 --- a/.changeset/famous-bobcats-remain.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/eslint-plugin': patch ---- - -Internal refactor to deal with `estree` upgrade diff --git a/.changeset/few-hornets-rush.md b/.changeset/few-hornets-rush.md new file mode 100644 index 0000000000..7d23a5ffc9 --- /dev/null +++ b/.changeset/few-hornets-rush.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-google-provider': patch +--- + +Fix visibility of config for use in front end code diff --git a/.changeset/fifty-trainers-watch.md b/.changeset/fifty-trainers-watch.md deleted file mode 100644 index 5cef1ad2b2..0000000000 --- a/.changeset/fifty-trainers-watch.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-techdocs': patch ---- - -Make `emptyState` input optional on `entity-content:techdocs` extension so that -the default empty state extension works correctly. diff --git a/.changeset/five-gorillas-pay.md b/.changeset/five-gorillas-pay.md deleted file mode 100644 index c5cd18a186..0000000000 --- a/.changeset/five-gorillas-pay.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Create a separate route for the custom fields explorer so we refresh it without being redirected to scaffolder edit page. diff --git a/.changeset/five-turkeys-taste.md b/.changeset/five-turkeys-taste.md deleted file mode 100644 index 7f3361ebbf..0000000000 --- a/.changeset/five-turkeys-taste.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': patch ---- - -Properly log instructions when APIs do not match diff --git a/.changeset/flat-eels-exist.md b/.changeset/flat-eels-exist.md deleted file mode 100644 index fb30b51e82..0000000000 --- a/.changeset/flat-eels-exist.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Remove unknown dependency `diff` diff --git a/.changeset/flat-feet-do.md b/.changeset/flat-feet-do.md new file mode 100644 index 0000000000..0495390273 --- /dev/null +++ b/.changeset/flat-feet-do.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Updated engines to support Node 20 or 22 diff --git a/.changeset/flat-seals-type.md b/.changeset/flat-seals-type.md deleted file mode 100644 index 9574c74fc9..0000000000 --- a/.changeset/flat-seals-type.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-node': patch ---- - -Added a new `allowedDomains` option for the common `emailLocalPartMatchingUserEntityName` sign-in resolver. diff --git a/.changeset/fluffy-dogs-mate.md b/.changeset/fluffy-dogs-mate.md deleted file mode 100644 index cb7a78d0fb..0000000000 --- a/.changeset/fluffy-dogs-mate.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/backend-dynamic-feature-service': patch ---- - -Enhance and simplify the activation of the dynamic plugins feature: - -- The dynamic plugins service (which implements the `DynamicPluginsProvider`) is restored, since it is required for plugins to depend on it in order to get the details of loaded dynamic plugins (possibly with loading errors to be surfaced in some UI). -- A new all-in-one feature loader (`dynamicPluginsFeatureLoader`) is provided that allows a 1-liner activation of both the dynamic features and additional services or plugins required to have the dynamic plugins work correctly with dynamic plugins config schemas. Previous service factories or feature loaders are deprecated. diff --git a/.changeset/fluffy-dolphins-battle.md b/.changeset/fluffy-dolphins-battle.md deleted file mode 100644 index b247d549e5..0000000000 --- a/.changeset/fluffy-dolphins-battle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Add tests for the new pages header navigation. diff --git a/.changeset/fluffy-pears-cry.md b/.changeset/fluffy-pears-cry.md deleted file mode 100644 index 2da74eb857..0000000000 --- a/.changeset/fluffy-pears-cry.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/repo-tools': minor ---- - -Update @microsoft/api-extractor and use their api report resolution. -Change api report format from `api-report.md` to `report.api.md` diff --git a/.changeset/forty-pets-wave.md b/.changeset/forty-pets-wave.md new file mode 100644 index 0000000000..1b96867e7d --- /dev/null +++ b/.changeset/forty-pets-wave.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-catalog': patch +--- + +Fixed a bug where the `filter` setting of the collator was not permitted to be an array. diff --git a/.changeset/curly-tomatoes-reply.md b/.changeset/forty-spoons-burn.md similarity index 63% rename from .changeset/curly-tomatoes-reply.md rename to .changeset/forty-spoons-burn.md index 386e2b6109..627cb31970 100644 --- a/.changeset/curly-tomatoes-reply.md +++ b/.changeset/forty-spoons-burn.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-backend': patch --- -handle step.if: false +Fix tasks listing with postgres diff --git a/.changeset/four-moons-watch.md b/.changeset/four-moons-watch.md deleted file mode 100644 index 3d0b25c1d5..0000000000 --- a/.changeset/four-moons-watch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/integration-react': patch ---- - -Revert of change #26430 diff --git a/.changeset/friendly-coins-approve.md b/.changeset/friendly-coins-approve.md deleted file mode 100644 index 71a8240089..0000000000 --- a/.changeset/friendly-coins-approve.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-app-backend': patch ---- - -Fixed unexpected behaviour where configuration supplied with `APP_CONFIG_*` environment variables where not filtered by the configuration schema. diff --git a/.changeset/friendly-cougars-return.md b/.changeset/friendly-cougars-return.md deleted file mode 100644 index 8852177e0a..0000000000 --- a/.changeset/friendly-cougars-return.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Added support for a new experimental `EXPERIMENTAL_TRIM_NEXT_ENTRY` flag which removes any `./next` entry points present in packages when building and publishing. diff --git a/.changeset/funny-dancers-drum.md b/.changeset/funny-dancers-drum.md deleted file mode 100644 index 3f57244a1a..0000000000 --- a/.changeset/funny-dancers-drum.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-techdocs': minor ---- - -Refactor TechDocs collator, enable clients to override the mkdocs search index transformer, so that per document properties (like tags) can be added to Backstage search index. diff --git a/.changeset/funny-rocks-train.md b/.changeset/funny-rocks-train.md deleted file mode 100644 index f5b2fbba63..0000000000 --- a/.changeset/funny-rocks-train.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/frontend-plugin-api': patch -'@backstage/frontend-test-utils': patch ---- - -Internal refactor of usage of opaque types. diff --git a/.changeset/fuzzy-elephants-tease.md b/.changeset/fuzzy-elephants-tease.md deleted file mode 100644 index 014a1136fd..0000000000 --- a/.changeset/fuzzy-elephants-tease.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Fixed lack of `.yarnrc.yml` in the template. diff --git a/.changeset/giant-kiwis-retire.md b/.changeset/giant-kiwis-retire.md deleted file mode 100644 index 380e05042f..0000000000 --- a/.changeset/giant-kiwis-retire.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/app-defaults': patch ---- - -Added `externalLink` to icon defaults diff --git a/.changeset/gold-pots-end.md b/.changeset/gold-pots-end.md deleted file mode 100644 index e7291fc3ad..0000000000 --- a/.changeset/gold-pots-end.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor ---- - -Improved the layout of the manage templates page (`/edit`) by adding icons and descriptions that better describe what each page is for. Updated the header menu to link back to the scaffolder create page. diff --git a/.changeset/good-eels-drive.md b/.changeset/good-eels-drive.md deleted file mode 100644 index c90a1263ec..0000000000 --- a/.changeset/good-eels-drive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -It is possible to define a custom error element to be shown when sign in fails diff --git a/.changeset/good-trainers-appear.md b/.changeset/good-trainers-appear.md deleted file mode 100644 index 3bce8c86bd..0000000000 --- a/.changeset/good-trainers-appear.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -The check for `react-dom/client` will now properly always run from the target directory. diff --git a/.changeset/gorgeous-months-fix.md b/.changeset/gorgeous-months-fix.md deleted file mode 100644 index f248afad46..0000000000 --- a/.changeset/gorgeous-months-fix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Fix behavior of scaffolder entity pickers (EntityPicker, MultiEntityPicker, MyGroupsPicker) to not auto-fill and disable the field if there is only a single value option and the field is not required. diff --git a/.changeset/great-eagles-repair.md b/.changeset/great-eagles-repair.md deleted file mode 100644 index 886fb5df7a..0000000000 --- a/.changeset/great-eagles-repair.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/frontend-test-utils': patch ---- - -Added an `ApiMock`, analogous to `ServiceMock` from the backend test utils. diff --git a/.changeset/green-berries-wave.md b/.changeset/green-berries-wave.md deleted file mode 100644 index 574d329488..0000000000 --- a/.changeset/green-berries-wave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -feat: experimentally support using rspack instead under `EXPERIMENTAL_RSPACK` env flag diff --git a/.changeset/green-bottles-live.md b/.changeset/green-bottles-live.md deleted file mode 100644 index 6bed257eee..0000000000 --- a/.changeset/green-bottles-live.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-scaffolder-react': patch -'@backstage/plugin-scaffolder': patch ---- - -Add support for pagination in scaffolder tasks list diff --git a/.changeset/green-cooks-sort.md b/.changeset/green-cooks-sort.md deleted file mode 100644 index 51dd86ac2e..0000000000 --- a/.changeset/green-cooks-sort.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': minor ---- - -Adding negation keyword for entity filtering diff --git a/.changeset/green-tools-arrive.md b/.changeset/green-tools-arrive.md new file mode 100644 index 0000000000..78eed180d4 --- /dev/null +++ b/.changeset/green-tools-arrive.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-react': patch +--- + +Fix issue with form state not refreshing when updating diff --git a/.changeset/grumpy-shoes-return.md b/.changeset/grumpy-shoes-return.md new file mode 100644 index 0000000000..e5bf70c0a5 --- /dev/null +++ b/.changeset/grumpy-shoes-return.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed an issue with the `--successCache` flag for `repo test` where the tree hash for the wrong package directory would sometimes be used to generate the cache key. diff --git a/.changeset/happy-ligers-think.md b/.changeset/happy-ligers-think.md deleted file mode 100644 index 69dd68ae6c..0000000000 --- a/.changeset/happy-ligers-think.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/app-defaults': patch ---- - -Updated the `bitbucket-server-auth` default API to set its environment based on the `auth.environment` config option instead of being hardcoded to `development`. diff --git a/.changeset/healthy-lions-judge.md b/.changeset/healthy-lions-judge.md new file mode 100644 index 0000000000..f9ead85d2e --- /dev/null +++ b/.changeset/healthy-lions-judge.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-auth-backend-module-aws-alb-provider': minor +'@backstage/plugin-auth-backend': minor +--- + +**BREAKING**: The AWS ALB `fullProfile` will no longer have the its username or email converted to lowercase. This is to ensure unique handling of the users. You may need to update and configure a custom sign-in resolver or profile transform as a result. diff --git a/.changeset/healthy-shoes-judge.md b/.changeset/healthy-shoes-judge.md deleted file mode 100644 index eebd89a23d..0000000000 --- a/.changeset/healthy-shoes-judge.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch ---- - -Add `reviewers` input parameter to `publish:bitbucketServer:pull-request` diff --git a/.changeset/healthy-years-search.md b/.changeset/healthy-years-search.md deleted file mode 100644 index a613d11eea..0000000000 --- a/.changeset/healthy-years-search.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-catalog-react': minor ---- - -Add catalog service mocks under the `/testUtils` subpath export. - -You can now use e.g. `const catalog = catalogApiMock.mock()` in your test and then do assertions on `catalog.getEntities` without awkward type casting. diff --git a/.changeset/heavy-mice-raise.md b/.changeset/heavy-mice-raise.md new file mode 100644 index 0000000000..8b32ecb4d7 --- /dev/null +++ b/.changeset/heavy-mice-raise.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-react': patch +--- + +Fix issue with `Stepper` and trying to trim additional properties. This is now all behind `liveOmit` and `omitExtraData` instead. diff --git a/.changeset/heavy-ties-tell.md b/.changeset/heavy-ties-tell.md deleted file mode 100644 index 072b0c7860..0000000000 --- a/.changeset/heavy-ties-tell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend-module-microsoft-provider': patch ---- - -Add `skipUserProfile` config flag to Microsoft authenticator diff --git a/.changeset/honest-impalas-rescue.md b/.changeset/honest-impalas-rescue.md deleted file mode 100644 index bac076bba6..0000000000 --- a/.changeset/honest-impalas-rescue.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -Fixed a bug in the `SidebarSubmenu` core component that caused the nested menu to overlap with the sidebar when the user hovers over the pinned sidebar. diff --git a/.changeset/hungry-buckets-repair.md b/.changeset/hungry-buckets-repair.md deleted file mode 100644 index fde682d603..0000000000 --- a/.changeset/hungry-buckets-repair.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Change "Register Existing Component" CTA to outlined as it's not a primary action on the scaffolder pages diff --git a/.changeset/hungry-owls-sell.md b/.changeset/hungry-owls-sell.md new file mode 100644 index 0000000000..cb2c18c21c --- /dev/null +++ b/.changeset/hungry-owls-sell.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Fix techdocs config schema for custom elements sanitizer diff --git a/.changeset/itchy-elephants-trade.md b/.changeset/itchy-elephants-trade.md new file mode 100644 index 0000000000..8ac6aaeeb9 --- /dev/null +++ b/.changeset/itchy-elephants-trade.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-events-backend': patch +'@backstage/plugin-events-node': patch +--- + +Fix `events.useEventBus` by propagating config to `DefaultEventsService` diff --git a/.changeset/strong-monkeys-melt.md b/.changeset/khaki-fireants-march.md similarity index 56% rename from .changeset/strong-monkeys-melt.md rename to .changeset/khaki-fireants-march.md index ef33b0cddd..ec84fe1b63 100644 --- a/.changeset/strong-monkeys-melt.md +++ b/.changeset/khaki-fireants-march.md @@ -2,4 +2,4 @@ '@backstage/cli': patch --- -The `LEGACY_BACKEND_START` flag is now deprecated. +Added `--alwaysPack` as a replacement for the now hidden `--alwaysYarnPack` flag for the `build-workspace` command. diff --git a/.changeset/kind-avocados-speak.md b/.changeset/kind-avocados-speak.md deleted file mode 100644 index b57d271907..0000000000 --- a/.changeset/kind-avocados-speak.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/backend-dynamic-feature-service': patch ---- - -Enhance the API of the `DynamicPluginProvider` (available as a service) to: - -- expose the new `getScannedPackage()` method that returns the `ScannedPluginPackage` from which a given plugin has been loaded, -- add an optional `includeFailed` argument in the plugins list retrieval methods, to include the plugins that could be successfully loaded (`false` by default). diff --git a/.changeset/large-hats-reply.md b/.changeset/large-hats-reply.md deleted file mode 100644 index 02fe00d70c..0000000000 --- a/.changeset/large-hats-reply.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor ---- - -Text field content of the `EntityPicker` is now more readable as it uses entity title instead of entity reference. diff --git a/.changeset/large-plants-rhyme.md b/.changeset/large-plants-rhyme.md deleted file mode 100644 index 3566826730..0000000000 --- a/.changeset/large-plants-rhyme.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -'@backstage/frontend-plugin-api': patch ---- - -It is now possible to override the blueprint parameters when overriding an extension created from a blueprint: - -```ts -const myExtension = MyBlueprint.make({ - params: { - myParam: 'myDefault', - }, -}); - -const myOverride = myExtension.override({ - params: { - myParam: 'myOverride', - }, -}); -const myFactoryOverride = myExtension.override({ - factory(origFactory) { - return origFactory({ - params: { - myParam: 'myOverride', - }, - }); - }, -}); -``` - -The provided parameters will be merged with the original parameters of the extension. diff --git a/.changeset/late-kings-wave.md b/.changeset/late-kings-wave.md new file mode 100644 index 0000000000..01877f2732 --- /dev/null +++ b/.changeset/late-kings-wave.md @@ -0,0 +1,15 @@ +--- +'@backstage/cli': patch +--- + +Added a new `"rejectFrontendNetworkRequests"` configuration flag that can be set in the `"jest"` field in the root `package.json`: + +```json +{ + "jest": { + "rejectFrontendNetworkRequests": true + } +} +``` + +This flag causes rejection of any form of network requests that are attempted to be made in frontend or common package tests. This flag can only be set in the root `package.json` and can not be overridden in individual package configurations. diff --git a/.changeset/lemon-badgers-share.md b/.changeset/lemon-badgers-share.md deleted file mode 100644 index c00b43c403..0000000000 --- a/.changeset/lemon-badgers-share.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-dynamic-feature-service': patch ---- - -Allow passing an async module loader in the `DynamicPluginsFeatureLoaderOptions`. diff --git a/.changeset/lemon-pumpkins-lick.md b/.changeset/lemon-pumpkins-lick.md deleted file mode 100644 index 361c5769e3..0000000000 --- a/.changeset/lemon-pumpkins-lick.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch -'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch -'@backstage/plugin-scaffolder-backend-module-gitlab': patch -'@backstage/plugin-scaffolder-backend-module-rails': patch -'@backstage/plugin-scaffolder-backend-module-sentry': patch -'@backstage/plugin-scaffolder-backend-module-yeoman': patch -'@backstage/plugin-search-backend-module-stack-overflow-collator': patch ---- - -Updated installation instructions in README to not include `/alpha`. diff --git a/.changeset/light-rats-travel.md b/.changeset/light-rats-travel.md deleted file mode 100644 index de497567ef..0000000000 --- a/.changeset/light-rats-travel.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch -'@backstage/plugin-search-backend-module-stack-overflow-collator': patch -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch -'@backstage/plugin-scaffolder-backend-module-notifications': patch -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch -'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch -'@backstage/plugin-auth-backend-module-aws-alb-provider': 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-catalog-backend-module-gitlab-org': patch -'@backstage/backend-dynamic-feature-service': patch -'@backstage/plugin-scaffolder-backend-module-github': patch -'@backstage/plugin-scaffolder-backend-module-gitlab': patch -'@backstage/plugin-scaffolder-backend-module-yeoman': patch -'@backstage/plugin-scaffolder-backend-module-rails': patch -'@backstage/plugin-catalog-backend-module-openapi': patch -'@backstage/plugin-search-backend-module-techdocs': patch -'@backstage/plugin-catalog-backend-module-github': 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-scaffolder-node-test-utils': patch -'@backstage/plugin-search-backend-module-pg': patch -'@backstage/plugin-notifications-backend': patch -'@backstage/plugin-search-backend-node': patch -'@backstage/plugin-kubernetes-backend': patch -'@backstage/plugin-notifications-node': patch -'@backstage/plugin-permission-backend': patch -'@backstage/plugin-scaffolder-backend': patch -'@backstage/backend-defaults': patch -'@backstage/backend-app-api': patch -'@backstage/plugin-devtools-backend': patch -'@backstage/plugin-techdocs-backend': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-kubernetes-node': patch -'@backstage/plugin-permission-node': patch -'@backstage/plugin-scaffolder-node': patch -'@backstage/plugin-signals-backend': patch -'@backstage/plugin-events-backend': patch -'@backstage/plugin-search-backend': patch -'@backstage/plugin-proxy-backend': patch -'@backstage/plugin-auth-backend': patch -'@backstage/plugin-signals-node': patch -'@backstage/plugin-app-backend': patch -'@backstage/plugin-events-node': patch -'@backstage/plugin-auth-node': patch -'@backstage/cli': patch ---- - -Remove references to in-repo backend-common diff --git a/.changeset/long-humans-hunt.md b/.changeset/long-humans-hunt.md deleted file mode 100644 index e27ebfbd3d..0000000000 --- a/.changeset/long-humans-hunt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor ---- - -Added ability to create a new local scaffolder template to ease onboarding when creating new templates. diff --git a/.changeset/loud-hotels-tan.md b/.changeset/loud-hotels-tan.md deleted file mode 100644 index 34890dfe97..0000000000 --- a/.changeset/loud-hotels-tan.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-react': minor ---- - -Added a new prop, `disableTooltip` to the `EntityRefLink` component diff --git a/.changeset/loud-trainers-yawn.md b/.changeset/loud-trainers-yawn.md new file mode 100644 index 0000000000..b48f773caa --- /dev/null +++ b/.changeset/loud-trainers-yawn.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +The `--successCache` option for the `repo test` and `repo lint` commands now use an additive store that keeps old entries around for a week before they are cleaned up automatically. diff --git a/.changeset/lovely-bees-walk.md b/.changeset/lovely-bees-walk.md deleted file mode 100644 index 223acf1769..0000000000 --- a/.changeset/lovely-bees-walk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-node': patch ---- - -Documentation for the `testUtils` named export diff --git a/.changeset/lovely-jokes-breathe.md b/.changeset/lovely-jokes-breathe.md deleted file mode 100644 index f5782832eb..0000000000 --- a/.changeset/lovely-jokes-breathe.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-elasticsearch': minor -'@backstage/plugin-scaffolder-backend': minor -'@backstage/plugin-techdocs-backend': minor -'@backstage/plugin-catalog-backend': minor -'@backstage/plugin-search-backend': minor -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch -'@backstage/plugin-catalog-backend-module-bitbucket-server': patch -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch -'@backstage/plugin-events-backend-module-bitbucket-cloud': patch -'@backstage/plugin-catalog-backend-module-msgraph': patch -'@backstage/plugin-search-backend-module-techdocs': 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-events-backend-module-gerrit': patch -'@backstage/plugin-events-backend-module-azure': patch -'@backstage/plugin-catalog-backend-module-aws': patch -'@backstage/plugin-search-backend-module-pg': patch -'@backstage/plugin-user-settings-backend': patch -'@backstage/plugin-kubernetes-backend': patch -'@backstage/plugin-permission-backend': patch -'@backstage/plugin-events-backend': patch -'@backstage/plugin-proxy-backend': patch -'@backstage/plugin-app-backend': patch ---- - -The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. diff --git a/.changeset/lucky-mugs-drive.md b/.changeset/lucky-mugs-drive.md deleted file mode 100644 index f3253d834a..0000000000 --- a/.changeset/lucky-mugs-drive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Remove some dependencies that aren't required anymore diff --git a/.changeset/mean-years-deliver.md b/.changeset/mean-years-deliver.md new file mode 100644 index 0000000000..82b4a12688 --- /dev/null +++ b/.changeset/mean-years-deliver.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Fix issue with token not being available because it's now non-enumerable diff --git a/.changeset/metal-files-itch.md b/.changeset/metal-files-itch.md new file mode 100644 index 0000000000..ac045eba9f --- /dev/null +++ b/.changeset/metal-files-itch.md @@ -0,0 +1,9 @@ +--- +'@backstage/cli': minor +--- + +Added a new optimization to the `repo test` command that will filter out unused packages in watch mode if all provide filters are paths that point from the repo root. This significantly speeds up running individual tests from the repo root in a large workspace, for example: + +```sh +yarn test packages/app/src/App.test.tsx +``` diff --git a/.changeset/mighty-forks-exercise.md b/.changeset/mighty-forks-exercise.md deleted file mode 100644 index 2ec5b90fa2..0000000000 --- a/.changeset/mighty-forks-exercise.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Added migration `20241003170511_alter_target_in_locations.js` to change the target column in the `locations` table to TEXT type. -Added a hash for the key column in the `refresh_keys` table. diff --git a/.changeset/mighty-jobs-unite.md b/.changeset/mighty-jobs-unite.md new file mode 100644 index 0000000000..c8e880ba3e --- /dev/null +++ b/.changeset/mighty-jobs-unite.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-api-docs': patch +--- + +Uses theme values to style the API definition schema so that theme overrides apply. diff --git a/.changeset/mighty-spoons-suffer.md b/.changeset/mighty-spoons-suffer.md new file mode 100644 index 0000000000..5b03378568 --- /dev/null +++ b/.changeset/mighty-spoons-suffer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Avoid page re-rendering when clicking on anchor links in the same documentation page. diff --git a/.changeset/mighty-terms-peel.md b/.changeset/mighty-terms-peel.md deleted file mode 100644 index 8804ee4556..0000000000 --- a/.changeset/mighty-terms-peel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -The backend plugin template for the `new` command has been updated to provide more guidance and use a more modern structure. diff --git a/.changeset/nasty-geese-repeat.md b/.changeset/nasty-geese-repeat.md deleted file mode 100644 index b000231057..0000000000 --- a/.changeset/nasty-geese-repeat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch ---- - -Turn down the logging level on most "all is well" type log messages diff --git a/.changeset/nasty-lamps-greet.md b/.changeset/nasty-lamps-greet.md deleted file mode 100644 index 75d8086db7..0000000000 --- a/.changeset/nasty-lamps-greet.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': minor ---- - -Added ability to link to a specific action on the actions page diff --git a/.changeset/neat-geckos-end.md b/.changeset/neat-geckos-end.md deleted file mode 100644 index 02a281b447..0000000000 --- a/.changeset/neat-geckos-end.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Tweaked the new package feature detection to not be active when building backend packages. diff --git a/.changeset/nice-badgers-travel.md b/.changeset/nice-badgers-travel.md deleted file mode 100644 index 7ec79b56d8..0000000000 --- a/.changeset/nice-badgers-travel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': minor ---- - -Adds a new command `backstage-repo-tools peer-deps` for validating your usage of peer dependencies in your plugins. It currently supports react related peer dependencies. It also has a `--fix` mode for quickly fixing any issues that it finds. diff --git a/.changeset/ninety-shirts-float.md b/.changeset/ninety-shirts-float.md new file mode 100644 index 0000000000..4ff9a39560 --- /dev/null +++ b/.changeset/ninety-shirts-float.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Align with type declaration of template filter/global function by supporting undefined as return value. diff --git a/.changeset/olive-walls-wave.md b/.changeset/olive-walls-wave.md deleted file mode 100644 index f7dc5434a6..0000000000 --- a/.changeset/olive-walls-wave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-home': minor ---- - -**BREAKING** Implement usage of unused `limit` query parameter in visits API `.list()` function diff --git a/.changeset/orange-moles-taste.md b/.changeset/orange-moles-taste.md new file mode 100644 index 0000000000..79a5bd70ff --- /dev/null +++ b/.changeset/orange-moles-taste.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-kubernetes-backend': minor +'@backstage/plugin-kubernetes-common': minor +'@backstage/plugin-kubernetes-react': minor +'@backstage/plugin-kubernetes-node': minor +'@backstage/plugin-kubernetes': minor +--- + +Bumping @kubernetes/client-node to 1.0.0-rc7 to mitigate CVEs related to the request and tough-cookie packages diff --git a/.changeset/perfect-goats-mate.md b/.changeset/perfect-goats-mate.md new file mode 100644 index 0000000000..6ad2884d08 --- /dev/null +++ b/.changeset/perfect-goats-mate.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': minor +--- + +The SupportButton component will now be hidden if no support config is specified in app-config diff --git a/.changeset/plenty-students-check.md b/.changeset/plenty-students-check.md new file mode 100644 index 0000000000..b83199f9e0 --- /dev/null +++ b/.changeset/plenty-students-check.md @@ -0,0 +1,21 @@ +--- +'@backstage/core-components': patch +--- + +Adds the ability to mock a media query per break point and to change the active break point during a test. Usage example: + +```ts +const { set } = mockBreakpoint({ + initialBreakpoint: 'md', + queryBreakpointMap: { + '(min-width:1500px)': 'xl', + '(min-width:1000px)': 'lg', + '(min-width:700px)': 'md', + '(min-width:400px)': 'sm', + '(min-width:0px)': 'xs', + }, +}); +// assertions for when the active break point is "md" +set('lg'); +// assertions for when the active break point is "lg" +``` diff --git a/.changeset/polite-days-flash.md b/.changeset/polite-days-flash.md deleted file mode 100644 index 6a54d08c5a..0000000000 --- a/.changeset/polite-days-flash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-compat-api': patch ---- - -Internal update to remove deprecated `BackstagePlugin` type and move to `FrontendPlugin` diff --git a/.changeset/poor-dodos-wait.md b/.changeset/poor-dodos-wait.md deleted file mode 100644 index f1d0b4e941..0000000000 --- a/.changeset/poor-dodos-wait.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Add translation to the editor toolbar component. diff --git a/.changeset/popular-items-retire.md b/.changeset/popular-items-retire.md deleted file mode 100644 index 2b737d9710..0000000000 --- a/.changeset/popular-items-retire.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-test-utils': patch ---- - -The `createMockDirectory` cleanup strategy has been changed, no longer requiring it to be called outside individual tests. diff --git a/.changeset/pre.json b/.changeset/pre.json index e1c8fb99d1..79dcd14d8d 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -2,313 +2,244 @@ "mode": "pre", "tag": "next", "initialVersions": { - "example-app": "0.2.101", - "@backstage/app-defaults": "1.5.11", - "example-app-next": "0.0.15", - "app-next-example-plugin": "0.0.15", - "example-backend": "0.0.30", - "@backstage/backend-app-api": "1.0.0", - "@backstage/backend-defaults": "0.5.0", + "example-app": "0.2.102", + "@backstage/app-defaults": "1.5.12", + "example-app-next": "0.0.16", + "app-next-example-plugin": "0.0.16", + "example-backend": "0.0.31", + "@backstage/backend-app-api": "1.0.1", + "@backstage/backend-defaults": "0.5.1", "@backstage/backend-dev-utils": "0.1.5", - "@backstage/backend-dynamic-feature-service": "0.4.0", - "example-backend-legacy": "0.2.102", - "@backstage/backend-openapi-utils": "0.1.18", - "@backstage/backend-plugin-api": "1.0.0", - "@backstage/backend-test-utils": "1.0.0", - "@backstage/catalog-client": "1.7.0", + "@backstage/backend-dynamic-feature-service": "0.4.2", + "example-backend-legacy": "0.2.103", + "@backstage/backend-openapi-utils": "0.2.0", + "@backstage/backend-plugin-api": "1.0.1", + "@backstage/backend-test-utils": "1.0.1", + "@backstage/catalog-client": "1.7.1", "@backstage/catalog-model": "1.7.0", - "@backstage/cli": "0.27.1", + "@backstage/cli": "0.28.0", "@backstage/cli-common": "0.1.14", - "@backstage/cli-node": "0.2.8", - "@backstage/codemods": "0.1.50", + "@backstage/cli-node": "0.2.9", + "@backstage/codemods": "0.1.51", "@backstage/config": "1.2.0", "@backstage/config-loader": "1.9.1", - "@backstage/core-app-api": "1.15.0", - "@backstage/core-compat-api": "0.3.0", - "@backstage/core-components": "0.15.0", - "@backstage/core-plugin-api": "1.9.4", - "@backstage/create-app": "0.5.19", - "@backstage/dev-utils": "1.1.0", - "e2e-test": "0.2.20", + "@backstage/core-app-api": "1.15.1", + "@backstage/core-compat-api": "0.3.1", + "@backstage/core-components": "0.15.1", + "@backstage/core-plugin-api": "1.10.0", + "@backstage/create-app": "0.5.21", + "@backstage/dev-utils": "1.1.2", + "e2e-test": "0.2.21", "@backstage/e2e-test-utils": "0.1.1", "@backstage/errors": "1.2.4", - "@backstage/eslint-plugin": "0.1.9", - "@backstage/frontend-app-api": "0.9.0", - "@backstage/frontend-defaults": "0.1.0", - "@internal/frontend": "0.0.1", - "@backstage/frontend-plugin-api": "0.8.0", - "@backstage/frontend-test-utils": "0.2.0", - "@backstage/integration": "1.15.0", + "@backstage/eslint-plugin": "0.1.10", + "@backstage/frontend-app-api": "0.10.0", + "@backstage/frontend-defaults": "0.1.1", + "@internal/frontend": "0.0.2", + "@backstage/frontend-plugin-api": "0.9.0", + "@backstage/frontend-test-utils": "0.2.1", + "@backstage/integration": "1.15.1", "@backstage/integration-aws-node": "0.1.12", - "@backstage/integration-react": "1.1.31", + "@backstage/integration-react": "1.2.0", "@internal/opaque": "0.0.1", "@backstage/release-manifests": "0.0.11", - "@backstage/repo-tools": "0.9.7", - "@techdocs/cli": "1.8.19", - "techdocs-cli-embedded-app": "0.2.100", - "@backstage/test-utils": "1.6.0", - "@backstage/theme": "0.5.7", + "@backstage/repo-tools": "0.10.0", + "@internal/scaffolder": "0.0.2", + "@techdocs/cli": "1.8.20", + "techdocs-cli-embedded-app": "0.2.101", + "@backstage/test-utils": "1.7.0", + "@backstage/theme": "0.6.0", "@backstage/types": "1.1.1", - "@backstage/version-bridge": "1.0.9", + "@backstage/version-bridge": "1.0.10", "yarn-plugin-backstage": "0.0.2", - "@backstage/plugin-api-docs": "0.11.9", - "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.7", - "@backstage/plugin-app": "0.1.0", - "@backstage/plugin-app-backend": "0.3.74", - "@backstage/plugin-app-node": "0.1.25", - "@backstage/plugin-app-visualizer": "0.1.10", - "@backstage/plugin-auth-backend": "0.23.0", - "@backstage/plugin-auth-backend-module-atlassian-provider": "0.3.0", - "@backstage/plugin-auth-backend-module-auth0-provider": "0.1.0", - "@backstage/plugin-auth-backend-module-aws-alb-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-bitbucket-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-bitbucket-server-provider": "0.1.0", - "@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.3.0", - "@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.3.0", - "@backstage/plugin-auth-backend-module-github-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-gitlab-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-google-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-guest-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-microsoft-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-oauth2-provider": "0.3.0", - "@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-oidc-provider": "0.3.0", - "@backstage/plugin-auth-backend-module-okta-provider": "0.1.0", - "@backstage/plugin-auth-backend-module-onelogin-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-pinniped-provider": "0.2.0", - "@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.3.0", - "@backstage/plugin-auth-node": "0.5.2", - "@backstage/plugin-auth-react": "0.1.6", - "@backstage/plugin-bitbucket-cloud-common": "0.2.23", - "@backstage/plugin-catalog": "1.23.0", - "@backstage/plugin-catalog-backend": "1.26.0", - "@backstage/plugin-catalog-backend-module-aws": "0.4.2", - "@backstage/plugin-catalog-backend-module-azure": "0.2.2", - "@backstage/plugin-catalog-backend-module-backstage-openapi": "0.4.0", - "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.3.2", - "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.2.2", - "@backstage/plugin-catalog-backend-module-gcp": "0.3.0", - "@backstage/plugin-catalog-backend-module-gerrit": "0.2.2", - "@backstage/plugin-catalog-backend-module-github": "0.7.3", - "@backstage/plugin-catalog-backend-module-github-org": "0.3.0", - "@backstage/plugin-catalog-backend-module-gitlab": "0.4.2", - "@backstage/plugin-catalog-backend-module-gitlab-org": "0.2.0", - "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.5.3", - "@backstage/plugin-catalog-backend-module-ldap": "0.9.0", - "@backstage/plugin-catalog-backend-module-logs": "0.1.0", - "@backstage/plugin-catalog-backend-module-msgraph": "0.6.2", - "@backstage/plugin-catalog-backend-module-openapi": "0.2.0", - "@backstage/plugin-catalog-backend-module-puppetdb": "0.2.2", - "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.2.0", - "@backstage/plugin-catalog-backend-module-unprocessed": "0.5.0", + "@backstage/plugin-api-docs": "0.11.11", + "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.8", + "@backstage/plugin-app": "0.1.1", + "@backstage/plugin-app-backend": "0.3.76", + "@backstage/plugin-app-node": "0.1.26", + "@backstage/plugin-app-visualizer": "0.1.11", + "@backstage/plugin-auth-backend": "0.23.1", + "@backstage/plugin-auth-backend-module-atlassian-provider": "0.3.1", + "@backstage/plugin-auth-backend-module-auth0-provider": "0.1.1", + "@backstage/plugin-auth-backend-module-aws-alb-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-bitbucket-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-bitbucket-server-provider": "0.1.1", + "@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.3.1", + "@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.3.1", + "@backstage/plugin-auth-backend-module-github-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-gitlab-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-google-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-guest-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-microsoft-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-oauth2-provider": "0.3.1", + "@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-oidc-provider": "0.3.1", + "@backstage/plugin-auth-backend-module-okta-provider": "0.1.1", + "@backstage/plugin-auth-backend-module-onelogin-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-pinniped-provider": "0.2.1", + "@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.4.0", + "@backstage/plugin-auth-node": "0.5.3", + "@backstage/plugin-auth-react": "0.1.7", + "@backstage/plugin-bitbucket-cloud-common": "0.2.24", + "@backstage/plugin-catalog": "1.24.0", + "@backstage/plugin-catalog-backend": "1.27.0", + "@backstage/plugin-catalog-backend-module-aws": "0.4.3", + "@backstage/plugin-catalog-backend-module-azure": "0.2.3", + "@backstage/plugin-catalog-backend-module-backstage-openapi": "0.4.1", + "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.4.0", + "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.2.3", + "@backstage/plugin-catalog-backend-module-gcp": "0.3.1", + "@backstage/plugin-catalog-backend-module-gerrit": "0.2.3", + "@backstage/plugin-catalog-backend-module-github": "0.7.5", + "@backstage/plugin-catalog-backend-module-github-org": "0.3.2", + "@backstage/plugin-catalog-backend-module-gitlab": "0.4.3", + "@backstage/plugin-catalog-backend-module-gitlab-org": "0.2.1", + "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.5.5", + "@backstage/plugin-catalog-backend-module-ldap": "0.9.1", + "@backstage/plugin-catalog-backend-module-logs": "0.1.2", + "@backstage/plugin-catalog-backend-module-msgraph": "0.6.3", + "@backstage/plugin-catalog-backend-module-openapi": "0.2.2", + "@backstage/plugin-catalog-backend-module-puppetdb": "0.2.3", + "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.2.1", + "@backstage/plugin-catalog-backend-module-unprocessed": "0.5.1", "@backstage/plugin-catalog-common": "1.1.0", - "@backstage/plugin-catalog-graph": "0.4.9", - "@backstage/plugin-catalog-import": "0.12.3", - "@backstage/plugin-catalog-node": "1.13.0", - "@backstage/plugin-catalog-react": "1.13.0", - "@backstage/plugin-catalog-unprocessed-entities": "0.2.8", + "@backstage/plugin-catalog-graph": "0.4.11", + "@backstage/plugin-catalog-import": "0.12.5", + "@backstage/plugin-catalog-node": "1.13.1", + "@backstage/plugin-catalog-react": "1.14.0", + "@backstage/plugin-catalog-unprocessed-entities": "0.2.9", "@backstage/plugin-catalog-unprocessed-entities-common": "0.0.4", - "@backstage/plugin-config-schema": "0.1.59", - "@backstage/plugin-devtools": "0.1.18", - "@backstage/plugin-devtools-backend": "0.4.0", + "@backstage/plugin-config-schema": "0.1.60", + "@backstage/plugin-devtools": "0.1.19", + "@backstage/plugin-devtools-backend": "0.4.1", "@backstage/plugin-devtools-common": "0.1.12", - "@backstage/plugin-events-backend": "0.3.12", - "@backstage/plugin-events-backend-module-aws-sqs": "0.4.2", - "@backstage/plugin-events-backend-module-azure": "0.2.11", - "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.11", - "@backstage/plugin-events-backend-module-gerrit": "0.2.11", - "@backstage/plugin-events-backend-module-github": "0.2.11", - "@backstage/plugin-events-backend-module-gitlab": "0.2.11", - "@backstage/plugin-events-backend-test-utils": "0.1.35", - "@backstage/plugin-events-node": "0.4.0", - "@internal/plugin-todo-list": "1.0.31", - "@internal/plugin-todo-list-backend": "1.0.31", + "@backstage/plugin-events-backend": "0.3.13", + "@backstage/plugin-events-backend-module-aws-sqs": "0.4.3", + "@backstage/plugin-events-backend-module-azure": "0.2.12", + "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.12", + "@backstage/plugin-events-backend-module-gerrit": "0.2.12", + "@backstage/plugin-events-backend-module-github": "0.2.12", + "@backstage/plugin-events-backend-module-gitlab": "0.2.12", + "@backstage/plugin-events-backend-test-utils": "0.1.36", + "@backstage/plugin-events-node": "0.4.1", + "@internal/plugin-todo-list": "1.0.32", + "@internal/plugin-todo-list-backend": "1.0.32", "@internal/plugin-todo-list-common": "1.0.21", - "@backstage/plugin-home": "0.7.10", - "@backstage/plugin-home-react": "0.1.17", - "@backstage/plugin-kubernetes": "0.11.14", - "@backstage/plugin-kubernetes-backend": "0.18.6", - "@backstage/plugin-kubernetes-cluster": "0.0.15", + "@backstage/plugin-home": "0.8.0", + "@backstage/plugin-home-react": "0.1.18", + "@backstage/plugin-kubernetes": "0.11.16", + "@backstage/plugin-kubernetes-backend": "0.18.7", + "@backstage/plugin-kubernetes-cluster": "0.0.17", "@backstage/plugin-kubernetes-common": "0.8.3", - "@backstage/plugin-kubernetes-node": "0.1.19", - "@backstage/plugin-kubernetes-react": "0.4.3", - "@backstage/plugin-notifications": "0.3.1", - "@backstage/plugin-notifications-backend": "0.4.0", - "@backstage/plugin-notifications-backend-module-email": "0.3.0", + "@backstage/plugin-kubernetes-node": "0.1.20", + "@backstage/plugin-kubernetes-react": "0.4.4", + "@backstage/plugin-notifications": "0.3.2", + "@backstage/plugin-notifications-backend": "0.4.1", + "@backstage/plugin-notifications-backend-module-email": "0.3.1", "@backstage/plugin-notifications-common": "0.0.5", - "@backstage/plugin-notifications-node": "0.2.6", - "@backstage/plugin-org": "0.6.29", - "@backstage/plugin-org-react": "0.1.28", - "@backstage/plugin-permission-backend": "0.5.49", - "@backstage/plugin-permission-backend-module-allow-all-policy": "0.2.0", + "@backstage/plugin-notifications-node": "0.2.7", + "@backstage/plugin-org": "0.6.31", + "@backstage/plugin-org-react": "0.1.30", + "@backstage/plugin-permission-backend": "0.5.50", + "@backstage/plugin-permission-backend-module-allow-all-policy": "0.2.1", "@backstage/plugin-permission-common": "0.8.1", - "@backstage/plugin-permission-node": "0.8.3", - "@backstage/plugin-permission-react": "0.4.26", - "@backstage/plugin-proxy-backend": "0.5.6", - "@backstage/plugin-scaffolder": "1.25.0", - "@backstage/plugin-scaffolder-backend": "1.25.0", - "@backstage/plugin-scaffolder-backend-module-azure": "0.2.0", - "@backstage/plugin-scaffolder-backend-module-bitbucket": "0.3.0", - "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.2.0", - "@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.2.0", - "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.3.0", - "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.3.0", - "@backstage/plugin-scaffolder-backend-module-gcp": "0.2.0", - "@backstage/plugin-scaffolder-backend-module-gerrit": "0.2.0", - "@backstage/plugin-scaffolder-backend-module-gitea": "0.2.0", - "@backstage/plugin-scaffolder-backend-module-github": "0.5.0", - "@backstage/plugin-scaffolder-backend-module-gitlab": "0.5.0", - "@backstage/plugin-scaffolder-backend-module-notifications": "0.1.0", - "@backstage/plugin-scaffolder-backend-module-rails": "0.5.0", - "@backstage/plugin-scaffolder-backend-module-sentry": "0.2.0", - "@backstage/plugin-scaffolder-backend-module-yeoman": "0.4.0", + "@backstage/plugin-permission-node": "0.8.4", + "@backstage/plugin-permission-react": "0.4.27", + "@backstage/plugin-proxy-backend": "0.5.7", + "@backstage/plugin-scaffolder": "1.26.0", + "@backstage/plugin-scaffolder-backend": "1.26.0", + "@backstage/plugin-scaffolder-backend-module-azure": "0.2.1", + "@backstage/plugin-scaffolder-backend-module-bitbucket": "0.3.1", + "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.2.1", + "@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.2.1", + "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.3.1", + "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.3.1", + "@backstage/plugin-scaffolder-backend-module-gcp": "0.2.1", + "@backstage/plugin-scaffolder-backend-module-gerrit": "0.2.1", + "@backstage/plugin-scaffolder-backend-module-gitea": "0.2.1", + "@backstage/plugin-scaffolder-backend-module-github": "0.5.1", + "@backstage/plugin-scaffolder-backend-module-gitlab": "0.6.0", + "@backstage/plugin-scaffolder-backend-module-notifications": "0.1.1", + "@backstage/plugin-scaffolder-backend-module-rails": "0.5.1", + "@backstage/plugin-scaffolder-backend-module-sentry": "0.2.1", + "@backstage/plugin-scaffolder-backend-module-yeoman": "0.4.1", "@backstage/plugin-scaffolder-common": "1.5.6", - "@backstage/plugin-scaffolder-node": "0.4.11", - "@backstage/plugin-scaffolder-node-test-utils": "0.1.12", - "@backstage/plugin-scaffolder-react": "1.12.0", - "@backstage/plugin-search": "1.4.16", - "@backstage/plugin-search-backend": "1.5.17", - "@backstage/plugin-search-backend-module-catalog": "0.2.2", - "@backstage/plugin-search-backend-module-elasticsearch": "1.5.6", - "@backstage/plugin-search-backend-module-explore": "0.2.2", - "@backstage/plugin-search-backend-module-pg": "0.5.35", - "@backstage/plugin-search-backend-module-stack-overflow-collator": "0.3.0", - "@backstage/plugin-search-backend-module-techdocs": "0.2.2", - "@backstage/plugin-search-backend-node": "1.3.2", + "@backstage/plugin-scaffolder-node": "0.5.0", + "@backstage/plugin-scaffolder-node-test-utils": "0.1.13", + "@backstage/plugin-scaffolder-react": "1.13.0", + "@backstage/plugin-search": "1.4.18", + "@backstage/plugin-search-backend": "1.6.0", + "@backstage/plugin-search-backend-module-catalog": "0.2.3", + "@backstage/plugin-search-backend-module-elasticsearch": "1.6.0", + "@backstage/plugin-search-backend-module-explore": "0.2.3", + "@backstage/plugin-search-backend-module-pg": "0.5.36", + "@backstage/plugin-search-backend-module-stack-overflow-collator": "0.3.1", + "@backstage/plugin-search-backend-module-techdocs": "0.3.0", + "@backstage/plugin-search-backend-node": "1.3.3", "@backstage/plugin-search-common": "1.2.14", - "@backstage/plugin-search-react": "1.8.0", - "@backstage/plugin-signals": "0.0.10", - "@backstage/plugin-signals-backend": "0.2.0", - "@backstage/plugin-signals-node": "0.1.11", - "@backstage/plugin-signals-react": "0.0.5", - "@backstage/plugin-techdocs": "1.10.9", - "@backstage/plugin-techdocs-addons-test-utils": "1.0.38", - "@backstage/plugin-techdocs-backend": "1.10.13", + "@backstage/plugin-search-react": "1.8.1", + "@backstage/plugin-signals": "0.0.11", + "@backstage/plugin-signals-backend": "0.2.1", + "@backstage/plugin-signals-node": "0.1.12", + "@backstage/plugin-signals-react": "0.0.6", + "@backstage/plugin-techdocs": "1.11.0", + "@backstage/plugin-techdocs-addons-test-utils": "1.0.40", + "@backstage/plugin-techdocs-backend": "1.11.0", "@backstage/plugin-techdocs-common": "0.1.0", - "@backstage/plugin-techdocs-module-addons-contrib": "1.1.14", - "@backstage/plugin-techdocs-node": "1.12.11", - "@backstage/plugin-techdocs-react": "1.2.8", - "@backstage/plugin-user-settings": "0.8.12", - "@backstage/plugin-user-settings-backend": "0.2.24", - "@backstage/plugin-user-settings-common": "0.0.1", - "@internal/scaffolder": "0.0.1" + "@backstage/plugin-techdocs-module-addons-contrib": "1.1.16", + "@backstage/plugin-techdocs-node": "1.12.12", + "@backstage/plugin-techdocs-react": "1.2.9", + "@backstage/plugin-user-settings": "0.8.14", + "@backstage/plugin-user-settings-backend": "0.2.25", + "@backstage/plugin-user-settings-common": "0.0.1" }, "changesets": [ - "angry-cycles-call", - "angry-mayflies-collect", - "angry-windows-decide", - "big-rules-nail", - "breezy-bulldogs-smell", - "brown-frogs-walk", - "calm-owls-move", - "chair-fairs-drive", - "chilled-dolphins-join", - "chilled-melons-smash", - "clever-paws-stare", - "cold-nails-rescue", - "crash-loop-baby", - "crash-loop-honey", - "crash-loop-yeah", - "create-app-1727774359", - "create-app-1728387650", - "cuddly-stingrays-smell", - "curly-foxes-brake", - "curly-tomatoes-reply", - "cyan-cooks-sing", - "cyan-peaches-lay", - "cyan-vans-study", - "dependabot-a3fd85a", - "dry-frogs-drum", - "early-drinks-kneel", - "early-sloths-cross", - "eight-clocks-complain", - "eight-steaks-chew", - "eighty-mice-turn", - "eleven-beds-play", - "eleven-pugs-hear", - "fair-chairs-drive", - "famous-bobcats-remain", - "fifty-trainers-watch", - "five-gorillas-pay", - "five-turkeys-taste", - "flat-eels-exist", - "flat-seals-type", - "fluffy-dolphins-battle", - "fluffy-pears-cry", - "four-moons-watch", - "friendly-coins-approve", - "friendly-cougars-return", - "funny-rocks-train", - "fuzzy-elephants-tease", - "giant-kiwis-retire", - "gold-pots-end", - "great-eagles-repair", - "green-bottles-live", - "green-cooks-sort", - "happy-ligers-think", - "healthy-shoes-judge", - "healthy-years-search", - "heavy-ties-tell", - "honest-impalas-rescue", - "hungry-buckets-repair", - "large-hats-reply", - "large-plants-rhyme", - "light-rats-travel", - "long-humans-hunt", - "loud-hotels-tan", - "lovely-bees-walk", - "nasty-lamps-greet", - "neat-geckos-end", - "nice-badgers-travel", - "olive-walls-wave", - "polite-days-flash", - "poor-dodos-wait", - "pretty-buses-repair", - "pretty-plants-hammer", - "purple-toys-heal", - "quiet-dingos-bathe", - "quiet-needles-impress", - "rare-crabs-cheat", - "rare-rabbits-flow", - "renovate-156753b", - "renovate-7874fad", - "renovate-85a184e", - "renovate-87a3bd2", - "renovate-9f7136b", - "renovate-f88b005", - "rich-deers-attend", - "rich-needles-collect", - "rotten-camels-deny", - "rude-apricots-eat", - "sharp-lamps-fix", - "shy-olives-swim", - "shy-plants-retire", - "silly-geckos-learn", - "silly-readers-build", - "slimy-ravens-end", - "slow-gorillas-thank", - "slow-trees-compare", - "small-donkeys-attack", - "smart-jobs-sit", - "sour-grapes-trade", - "sour-phones-fix", - "stale-ravens-clap", - "stale-roses-serve", - "strange-bees-attack", - "strong-monkeys-melt", - "sweet-chicken-smash", - "ten-apes-turn", - "ten-rings-look", - "thick-tables-give", - "thirty-pets-fry", - "thirty-pianos-mix", - "tiny-pugs-kick", - "tough-fireants-itch", - "tough-pillows-sip", - "tricky-shoes-lie", - "twenty-cups-knock", - "two-plums-fail", - "weak-bottles-cross" + "chilled-taxis-dance", + "create-app-1729608704", + "cyan-trees-bow", + "early-cobras-compare", + "early-monkeys-hammer", + "forty-pets-wave", + "forty-spoons-burn", + "green-tools-arrive", + "healthy-lions-judge", + "heavy-mice-raise", + "itchy-elephants-trade", + "khaki-fireants-march", + "late-kings-wave", + "loud-trainers-yawn", + "mean-years-deliver", + "mighty-jobs-unite", + "mighty-spoons-suffer", + "ninety-shirts-float", + "perfect-goats-mate", + "plenty-students-check", + "pretty-zebras-listen", + "quick-cougars-fry", + "rare-otters-judge", + "rare-trains-scream", + "red-fishes-press", + "renovate-3d822ce", + "renovate-bcc9782", + "rotten-lions-cover", + "rotten-needles-relax", + "selfish-ads-count", + "shy-pots-speak", + "shy-rats-hear", + "silent-wasps-whisper", + "slimy-jobs-scream", + "slow-mayflies-sleep", + "slow-shrimps-call", + "spotty-snails-worry", + "swift-laws-applaud", + "three-mangos-dance", + "two-donuts-float", + "violet-ears-dance", + "warm-tomatoes-develop", + "wild-experts-unite", + "witty-bobcats-push", + "witty-socks-repeat", + "young-penguins-act" ] } diff --git a/.changeset/pretty-buses-repair.md b/.changeset/pretty-buses-repair.md deleted file mode 100644 index e5575c36c1..0000000000 --- a/.changeset/pretty-buses-repair.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Standardize template editor pages desktop and mobile layouts. diff --git a/.changeset/pretty-pans-exist.md b/.changeset/pretty-pans-exist.md deleted file mode 100644 index e9ccdda0e0..0000000000 --- a/.changeset/pretty-pans-exist.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-app': patch ---- - -Added missing default `SignInPageExtension` which by default uses guest auth, missing `ApiExtensions` for `scmAuth` diff --git a/.changeset/pretty-plants-hammer.md b/.changeset/pretty-plants-hammer.md deleted file mode 100644 index c070f769c4..0000000000 --- a/.changeset/pretty-plants-hammer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/integration-react': minor ---- - -Added new ScmAuth method `forBitbucketServer` that uses correct OAuth scopes by default. Also updated `forBitbucket` method to allow overriding the default OAuth scopes. diff --git a/.changeset/pretty-zebras-listen.md b/.changeset/pretty-zebras-listen.md new file mode 100644 index 0000000000..d7ee0faef4 --- /dev/null +++ b/.changeset/pretty-zebras-listen.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed an issue where the `raw-loader` for loading HTML templates was not resolved from the context of the CLI package. diff --git a/.changeset/purple-toys-heal.md b/.changeset/purple-toys-heal.md deleted file mode 100644 index 4a57dca64f..0000000000 --- a/.changeset/purple-toys-heal.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend-module-vmware-cloud-provider': minor ---- - -**BREAKING**: The `profileEmailMatchingUserEntityEmail` sign-in resolver has been removed as it was using an insecure fallback for resolving user identities. See https://backstage.io/docs/auth/identity-resolver#sign-in-without-users-in-the-catalog for how to create a custom sign-in resolver if needed as a replacement. diff --git a/.changeset/quick-cougars-fry.md b/.changeset/quick-cougars-fry.md new file mode 100644 index 0000000000..6ae8b66eda --- /dev/null +++ b/.changeset/quick-cougars-fry.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-home': patch +--- + +Improve Starred Entities UI to reduce whitespace and provide more context on the entities: + +- Use the Entity Presentation API (via ``) to display the entity's name +- Component's `kind` and `spec.type` are displayed as a secondary text +- List items are condensed to reduce unnecessary spacing diff --git a/.changeset/quiet-dingos-bathe.md b/.changeset/quiet-dingos-bathe.md deleted file mode 100644 index b0e41de687..0000000000 --- a/.changeset/quiet-dingos-bathe.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Fixed a bug where the concurrency limiter for URL reading was not honored diff --git a/.changeset/quiet-islands-learn.md b/.changeset/quiet-islands-learn.md deleted file mode 100644 index 7e2ad6bdf1..0000000000 --- a/.changeset/quiet-islands-learn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Add configuration parameters for deferred stitcher diff --git a/.changeset/quiet-needles-impress.md b/.changeset/quiet-needles-impress.md deleted file mode 100644 index a79fe97b91..0000000000 --- a/.changeset/quiet-needles-impress.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-gitlab': minor ---- - -declare correct type (number) for publish:gitlab output.projectId diff --git a/.changeset/rare-crabs-cheat.md b/.changeset/rare-crabs-cheat.md deleted file mode 100644 index 6b4fd37ed7..0000000000 --- a/.changeset/rare-crabs-cheat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs': patch ---- - -Add support for mkdocs material palette conditional hashes. diff --git a/.changeset/rare-otters-judge.md b/.changeset/rare-otters-judge.md new file mode 100644 index 0000000000..3c3f91e094 --- /dev/null +++ b/.changeset/rare-otters-judge.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-node': patch +--- + +Browsers silently drop cookies that exceed 4KB, which can be problematic for refresh tokens and other large cookies.This update ensures that large cookies, like refresh tokens, are not dropped by browsers, maintaining the integrity of the authentication process. The changes include both the implementation of the cookie splitting logic and corresponding tests to validate the new functionality. diff --git a/.changeset/rare-rabbits-flow.md b/.changeset/rare-rabbits-flow.md deleted file mode 100644 index 6b64957d59..0000000000 --- a/.changeset/rare-rabbits-flow.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': minor ---- - -Fixes the event-based updates at `BitbucketCloudEntityProvider`. - -Previously, this entity provider had optional event support for legacy backends -that could be enabled by passing `catalogApi`, `events`, and `tokenManager`. - -For the new/current backend system, the `catalogModuleBitbucketCloudEntityProvider` -(`catalog.bitbucket-cloud-entity-provider`), event support was enabled by default. - -A recent change removed `tokenManager` as a dependency from the module as well as removed it as input. -While this didn't break the instantiation of the module, it broke the event-based updates, -and led to a runtime misbehavior, accompanied by an info log message. - -This change will replace the use of `tokenManager` with the use of `auth` (`AuthService`). - -Additionally, to simplify, it will make `catalogApi` and `events` required dependencies. -For the current backend system, this change is transparent and doesn't require any action. -For the legacy backend system, this change will require you to pass those dependencies -if you didn't do it already. - -BREAKING CHANGES: - -_(For legacy backend users only.)_ - -Previously optional `catalogApi`, and `events` are required now. -A new required dependency `auth` was added. diff --git a/.changeset/rare-trains-scream.md b/.changeset/rare-trains-scream.md new file mode 100644 index 0000000000..e6a3a141fa --- /dev/null +++ b/.changeset/rare-trains-scream.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +fix(scaffolder): use `onInputChange` in `RepoUrlPicker` to fix issue with the value not updating properly diff --git a/.changeset/real-tigers-punch.md b/.changeset/real-tigers-punch.md deleted file mode 100644 index c5597e50da..0000000000 --- a/.changeset/real-tigers-punch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Updated the Vite implementation behind the `EXPERIMENTAL_VITE` flag to work with more recent versions of Backstage. diff --git a/.changeset/red-fishes-press.md b/.changeset/red-fishes-press.md new file mode 100644 index 0000000000..8493ddf446 --- /dev/null +++ b/.changeset/red-fishes-press.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Added DomPurify sanitizer configuration for custom elements implementing RFC https://github.com/backstage/backstage/issues/26988. +See https://backstage.io/docs/features/techdocs/how-to-guides#how-to-enable-custom-elements-in-techdocs for how to enable it in the configuration. diff --git a/.changeset/renovate-156753b.md b/.changeset/renovate-156753b.md deleted file mode 100644 index 0ef9afb0e2..0000000000 --- a/.changeset/renovate-156753b.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-kubernetes-cluster': patch -'@backstage/plugin-kubernetes-react': patch -'@backstage/plugin-kubernetes': patch ---- - -Updated dependency `@kubernetes-models/base` to `^5.0.0`. diff --git a/.changeset/renovate-3d822ce.md b/.changeset/renovate-3d822ce.md new file mode 100644 index 0000000000..805b924b3b --- /dev/null +++ b/.changeset/renovate-3d822ce.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-elasticsearch': patch +--- + +Updated dependency `@short.io/opensearch-mock` to `^0.4.0`. diff --git a/.changeset/renovate-7874fad.md b/.changeset/renovate-7874fad.md deleted file mode 100644 index b7ccd5fe95..0000000000 --- a/.changeset/renovate-7874fad.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-techdocs-node': patch ---- - -Updated dependency `@smithy/node-http-handler` to `^3.0.0`. diff --git a/.changeset/renovate-7b59eed.md b/.changeset/renovate-7b59eed.md new file mode 100644 index 0000000000..8031f9c4e7 --- /dev/null +++ b/.changeset/renovate-7b59eed.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Updated dependency `del` to `^8.0.0`. diff --git a/.changeset/renovate-85a184e.md b/.changeset/renovate-85a184e.md deleted file mode 100644 index 91b575e6db..0000000000 --- a/.changeset/renovate-85a184e.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -'@backstage/backend-defaults': patch -'@backstage/cli': patch -'@backstage/integration': patch -'@backstage/plugin-catalog-backend-module-github': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-catalog-import': patch -'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch -'@backstage/plugin-scaffolder': patch -'@backstage/plugin-techdocs-module-addons-contrib': patch -'@backstage/plugin-techdocs-node': patch -'@backstage/plugin-techdocs': patch ---- - -Updated dependency `git-url-parse` to `^15.0.0`. diff --git a/.changeset/renovate-87a3bd2.md b/.changeset/renovate-87a3bd2.md deleted file mode 100644 index c14def75b7..0000000000 --- a/.changeset/renovate-87a3bd2.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-azure': patch ---- - -Updated dependency `azure-devops-node-api` to `^14.0.0`. diff --git a/.changeset/renovate-966d123.md b/.changeset/renovate-966d123.md deleted file mode 100644 index c3f868cee9..0000000000 --- a/.changeset/renovate-966d123.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': patch ---- - -Updated dependency `@useoptic/optic` to `^1.0.0`. diff --git a/.changeset/renovate-9f7136b.md b/.changeset/renovate-bcc9782.md similarity index 90% rename from .changeset/renovate-9f7136b.md rename to .changeset/renovate-bcc9782.md index a1efc81de7..56b6704f79 100644 --- a/.changeset/renovate-9f7136b.md +++ b/.changeset/renovate-bcc9782.md @@ -2,4 +2,4 @@ '@backstage/plugin-search-backend-module-explore': patch --- -Updated dependency `@backstage-community/plugin-explore-common` to `^0.0.6`. +Updated dependency `@backstage-community/plugin-explore-common` to `^0.0.7`. diff --git a/.changeset/renovate-cc4bfa7.md b/.changeset/renovate-cc4bfa7.md deleted file mode 100644 index b3434c8127..0000000000 --- a/.changeset/renovate-cc4bfa7.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/codemods': patch ---- - -Updated dependency `@types/jscodeshift` to `^0.12.0`. diff --git a/.changeset/renovate-f88b005.md b/.changeset/renovate-f88b005.md deleted file mode 100644 index b62080e8da..0000000000 --- a/.changeset/renovate-f88b005.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-kubernetes-cluster': patch -'@backstage/plugin-kubernetes-react': patch -'@backstage/plugin-kubernetes': patch ---- - -Updated dependency `@kubernetes-models/apimachinery` to `^2.0.0`. diff --git a/.changeset/rich-deers-attend.md b/.changeset/rich-deers-attend.md deleted file mode 100644 index 1b26636009..0000000000 --- a/.changeset/rich-deers-attend.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -The backend will no longer exit immediately if any plugin or modules fails to initialize. Instead, the backend will wait for all plugins and modules to either start up successfully or throw, and then shut down the backend if there were any initialization errors. - -This fixes an issue where backend initialization errors in adjacent plugins during database schema migration could cause the database migrations to be stuck in a locked state. diff --git a/.changeset/rich-needles-collect.md b/.changeset/rich-needles-collect.md deleted file mode 100644 index dab36e9543..0000000000 --- a/.changeset/rich-needles-collect.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-react': minor ---- - -Renamed Template Editor to Manage Templates. diff --git a/.changeset/rotten-camels-deny.md b/.changeset/rotten-camels-deny.md deleted file mode 100644 index f5660d953a..0000000000 --- a/.changeset/rotten-camels-deny.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Support `--max-warnings` flag for package linting diff --git a/.changeset/rotten-lions-cover.md b/.changeset/rotten-lions-cover.md new file mode 100644 index 0000000000..f64e8209b9 --- /dev/null +++ b/.changeset/rotten-lions-cover.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Removed `canvas` dev dependency. diff --git a/.changeset/rotten-needles-relax.md b/.changeset/rotten-needles-relax.md new file mode 100644 index 0000000000..ef389402aa --- /dev/null +++ b/.changeset/rotten-needles-relax.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-node': minor +--- + +The `catalogServiceRef` now has its own accompanying `CatalogService` interface that requires Backstage `credentials` objects to be passed. This new version of the `catalogServiceRef` has been promoted and is now available via the main `@backstage/plugin-catalog-node` entry point. + +The old `catalogServiceRef` with the old `CatalogApi` type is still available from the `/alpha` entry point. diff --git a/.changeset/rotten-rockets-deny.md b/.changeset/rotten-rockets-deny.md deleted file mode 100644 index 58dec57c32..0000000000 --- a/.changeset/rotten-rockets-deny.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Running `repo lint` with the `--successCache` flag now respects `.gitinore`, and it ignores projects without a `lint` script. diff --git a/.changeset/rude-apricots-eat.md b/.changeset/rude-apricots-eat.md deleted file mode 100644 index 198d6a0ec7..0000000000 --- a/.changeset/rude-apricots-eat.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/backend-defaults': patch -'@backstage/integration': patch ---- - -Updating error message for getProjectId when fetching Gitlab project from its url to be more accurate diff --git a/.changeset/selfish-ads-count.md b/.changeset/selfish-ads-count.md new file mode 100644 index 0000000000..2f2f0597dd --- /dev/null +++ b/.changeset/selfish-ads-count.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-test-utils': patch +--- + +The `mockServices.discovery.factory()` factory now uses the mocked discovery service as its implementation, avoid the need for configuration. diff --git a/.changeset/shaggy-weeks-hunt.md b/.changeset/shaggy-weeks-hunt.md deleted file mode 100644 index 2b007f6944..0000000000 --- a/.changeset/shaggy-weeks-hunt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Tweak `Dockerfile` to fix deprecated syntax. diff --git a/.changeset/sharp-lamps-fix.md b/.changeset/sharp-lamps-fix.md deleted file mode 100644 index 52de6690fe..0000000000 --- a/.changeset/sharp-lamps-fix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Add tests for the `useTemplateDirectory` hook. diff --git a/.changeset/short-geckos-sniff.md b/.changeset/short-geckos-sniff.md new file mode 100644 index 0000000000..4d31ca436b --- /dev/null +++ b/.changeset/short-geckos-sniff.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Fixed an issue with the `repo lint` command where the cache key for the `--successCache` option would not properly ignore files that should be ignored according to `.eslintignore`s. diff --git a/.changeset/shy-clouds-brake.md b/.changeset/shy-clouds-brake.md new file mode 100644 index 0000000000..1e69a1d193 --- /dev/null +++ b/.changeset/shy-clouds-brake.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +--- + +Bumped the `isolated-vm` dependency from v4 to v5, which drops support for Node.js v16. diff --git a/.changeset/shy-olives-swim.md b/.changeset/shy-olives-swim.md deleted file mode 100644 index 8a9a07fa81..0000000000 --- a/.changeset/shy-olives-swim.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@backstage/backend-dynamic-feature-service': patch -'@backstage/plugin-search-backend-module-techdocs': patch -'@backstage/plugin-search-backend-module-catalog': patch -'@backstage/plugin-search-backend-module-explore': patch -'@backstage/plugin-events-backend-module-github': patch -'@backstage/plugin-events-backend-module-gitlab': patch -'@backstage/plugin-events-node': patch ---- - -Updated backend installation instructions. diff --git a/.changeset/shy-plants-retire.md b/.changeset/shy-plants-retire.md deleted file mode 100644 index 77427452f5..0000000000 --- a/.changeset/shy-plants-retire.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search': patch ---- - -Updated the default SearchType.Accordion behavior to remain open after result type selection. This is a UX improvement to reduce the number of clicks needed when toggling result type filters. diff --git a/.changeset/real-rockets-divide.md b/.changeset/shy-pots-speak.md similarity index 59% rename from .changeset/real-rockets-divide.md rename to .changeset/shy-pots-speak.md index 2506a89f22..8eceacb9ec 100644 --- a/.changeset/real-rockets-divide.md +++ b/.changeset/shy-pots-speak.md @@ -2,4 +2,4 @@ '@backstage/backend-test-utils': patch --- -Minor doc string changes +Removed unused `msw` dependency. diff --git a/.changeset/shy-rats-hear.md b/.changeset/shy-rats-hear.md new file mode 100644 index 0000000000..460d70c56a --- /dev/null +++ b/.changeset/shy-rats-hear.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-defaults': patch +--- + +Link to proper package in `rootLoggerServiceFactory` doc string. diff --git a/.changeset/silent-wasps-whisper.md b/.changeset/silent-wasps-whisper.md new file mode 100644 index 0000000000..33620139e7 --- /dev/null +++ b/.changeset/silent-wasps-whisper.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +Revert the change of the option label for `EntityPicker` diff --git a/.changeset/silly-geckos-learn.md b/.changeset/silly-geckos-learn.md deleted file mode 100644 index 53d4301b5c..0000000000 --- a/.changeset/silly-geckos-learn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-user-settings': patch ---- - -`useUserProfile` will now use the user's picture stored in the catalog as a fallback if the identity provider doesn't return a picture. diff --git a/.changeset/silly-ligers-tan.md b/.changeset/silly-ligers-tan.md deleted file mode 100644 index 6b9097497d..0000000000 --- a/.changeset/silly-ligers-tan.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Adds the ability to disable catalog processing `catalog.processingInterval: false` in `app-config` diff --git a/.changeset/silly-readers-build.md b/.changeset/silly-readers-build.md deleted file mode 100644 index 4797c2b036..0000000000 --- a/.changeset/silly-readers-build.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Add an actions filter on the list actions page and drawer. diff --git a/.changeset/silver-comics-attend.md b/.changeset/silver-comics-attend.md deleted file mode 100644 index f13553b53f..0000000000 --- a/.changeset/silver-comics-attend.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-defaults': patch ---- - -Fix for backend shutdown hanging during local development due to SQLite connection shutdown never resolving. diff --git a/.changeset/slimy-jobs-scream.md b/.changeset/slimy-jobs-scream.md new file mode 100644 index 0000000000..e20119fed4 --- /dev/null +++ b/.changeset/slimy-jobs-scream.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-techdocs-react': patch +'@backstage/plugin-techdocs': patch +--- + +Fix an issue that caused the current documentation page to be re-rendered when navigating to +another one. diff --git a/.changeset/slimy-ravens-end.md b/.changeset/slimy-ravens-end.md deleted file mode 100644 index 65e02079b1..0000000000 --- a/.changeset/slimy-ravens-end.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-techdocs': minor -'@backstage/theme': minor ---- - -Adds support for custom background colors in code blocks and inline code within TechDocs. diff --git a/.changeset/slow-gorillas-thank.md b/.changeset/slow-gorillas-thank.md deleted file mode 100644 index 2c52964a47..0000000000 --- a/.changeset/slow-gorillas-thank.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-events-backend': patch ---- - -The events backend now has its own built-in event bus for distributing events across multiple backend instances. It exposes a new HTTP API under `/bus/v1/` for publishing and reading events from the bus, as well as its own storage and notification mechanism for events. - -The backing event store for the bus only supports scaled deployment if PostgreSQL is used as the DBMS. If SQLite or MySQL is used, the event bus will fall back to an in-memory store that does not support multiple backend instances. - -The default `EventsService` implementation from `@backstage/plugin-events-node` has also been updated to use the new events bus. diff --git a/.changeset/slow-mayflies-sleep.md b/.changeset/slow-mayflies-sleep.md new file mode 100644 index 0000000000..ebfb9d12d4 --- /dev/null +++ b/.changeset/slow-mayflies-sleep.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': minor +--- + +Adds a `--watch` mode to the `schema openapi generate` command for a better local schema writing experience. diff --git a/.changeset/slow-shrimps-call.md b/.changeset/slow-shrimps-call.md new file mode 100644 index 0000000000..7e04633307 --- /dev/null +++ b/.changeset/slow-shrimps-call.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-notifications-backend': patch +'@backstage/plugin-notifications-common': patch +'@backstage/plugin-notifications': patch +--- + +Add support for user specific notification settings diff --git a/.changeset/slow-trees-compare.md b/.changeset/slow-trees-compare.md deleted file mode 100644 index 18e1a82ff9..0000000000 --- a/.changeset/slow-trees-compare.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-scaffolder-react': patch -'@backstage/plugin-scaffolder-node': patch -'@backstage/plugin-scaffolder': patch ---- - -Make it possible to manually retry the scaffolder template from the step it failed diff --git a/.changeset/slow-walls-report.md b/.changeset/slow-walls-report.md deleted file mode 100644 index e5ab380006..0000000000 --- a/.changeset/slow-walls-report.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -'@backstage/backend-defaults': patch ---- - -The default root HTTP service implementation will now pretty-print JSON responses in development. - -If you are overriding the `rootHttpRouterServiceFactory` with a `configure` function that doesn't call `applyDefaults`, you can introduce this functionality by adding the following snippet inside `configure`: - -```ts -if (process.env.NODE_ENV === 'development') { - app.set('json spaces', 2); -} -``` diff --git a/.changeset/small-donkeys-attack.md b/.changeset/small-donkeys-attack.md deleted file mode 100644 index ecfc969452..0000000000 --- a/.changeset/small-donkeys-attack.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Added a new `--successCache` option to the `backstage-cli repo test` and `backstage-cli repo lint` commands. The cache keeps track of successful runs and avoids re-running for individual packages if they haven't changed. This option is intended only to be used in CI. - -In addition a `--successCacheDir ` option has also been added to be able to override the default cache directory. diff --git a/.changeset/smart-jobs-sit.md b/.changeset/smart-jobs-sit.md deleted file mode 100644 index edd21e67b5..0000000000 --- a/.changeset/smart-jobs-sit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-openapi-utils': minor ---- - -Improved support for OpenAPI validation during Jest tests. Now, OpenAPI validation can happen as you are writing your Jest tests - you no longer have to run `repo schema openapi test`. diff --git a/.changeset/sour-grapes-trade.md b/.changeset/sour-grapes-trade.md deleted file mode 100644 index acbb6cdbe7..0000000000 --- a/.changeset/sour-grapes-trade.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -The Jest configuration will now search for a `src/setupTests.*` file with any valid script extension, not only `.ts`. diff --git a/.changeset/sour-phones-fix.md b/.changeset/sour-phones-fix.md deleted file mode 100644 index d2519f2ef5..0000000000 --- a/.changeset/sour-phones-fix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-gitlab': patch ---- - -Updated `gitlab:group:ensureExists` action to instead use oauth client. diff --git a/.changeset/spotty-snails-worry.md b/.changeset/spotty-snails-worry.md new file mode 100644 index 0000000000..3ecf2e9b35 --- /dev/null +++ b/.changeset/spotty-snails-worry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-signals-backend': patch +--- + +The signals backend now supports scaled deployments where clients may be connecting to one of many signal backend instances. diff --git a/.changeset/stale-ravens-clap.md b/.changeset/stale-ravens-clap.md deleted file mode 100644 index 3abb16a04d..0000000000 --- a/.changeset/stale-ravens-clap.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Update catalog search table in transaction diff --git a/.changeset/stale-roses-serve.md b/.changeset/stale-roses-serve.md deleted file mode 100644 index 29dee56e22..0000000000 --- a/.changeset/stale-roses-serve.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-events-node': patch ---- - -The default implementation of the `EventsService` now uses the new event bus for distributing events across multiple backend instances if the events backend plugin is installed. diff --git a/.changeset/strange-bees-attack.md b/.changeset/strange-bees-attack.md deleted file mode 100644 index c4e95097f8..0000000000 --- a/.changeset/strange-bees-attack.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-components': patch ---- - -`Link` component now accepts `externalLinkIcon` prop diff --git a/.changeset/sweet-chicken-smash.md b/.changeset/sweet-chicken-smash.md deleted file mode 100644 index 9aa4c60803..0000000000 --- a/.changeset/sweet-chicken-smash.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@backstage/cli': minor ---- - -**BREAKING**: Removed the following deprecated commands: - -- `create`: Use `backstage-cli new` instead -- `create-plugin`: Use `backstage-cli new` instead -- `plugin:diff`: Use `backstage-cli fix` instead -- `test`: Use `backstage-cli repo test` or `backstage-cli package test` instead -- `versions:check`: Use `yarn dedupe` or `yarn-deduplicate` instead -- `clean`: Use `backstage-cli package clean` instead - -In addition, the experimental `install` and `onboard` commands have been removed since they have not received any updates since their introduction and we're expecting usage to be low. If you where relying on these commands, please let us know by opening an issue towards the main Backstage repository. diff --git a/.changeset/swift-laws-applaud.md b/.changeset/swift-laws-applaud.md new file mode 100644 index 0000000000..8de93e825b --- /dev/null +++ b/.changeset/swift-laws-applaud.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Update upgrade-helper link in `versions:bump` command to include `yarnPlugin` parameter when the yarn plugin is installed diff --git a/.changeset/ten-apes-turn.md b/.changeset/ten-apes-turn.md deleted file mode 100644 index 750f48beba..0000000000 --- a/.changeset/ten-apes-turn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Disabled parsing of input source maps in the SWC transform for Jest. diff --git a/.changeset/ten-rings-look.md b/.changeset/ten-rings-look.md deleted file mode 100644 index d3f6e059bd..0000000000 --- a/.changeset/ten-rings-look.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/catalog-client': patch ---- - -Add missing doc string to API diff --git a/.changeset/thick-tables-give.md b/.changeset/thick-tables-give.md deleted file mode 100644 index e6b4026e51..0000000000 --- a/.changeset/thick-tables-give.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-node': patch ---- - -Use `branch` function instead of `checkout` function when creating branch diff --git a/.changeset/thin-chairs-ring.md b/.changeset/thin-chairs-ring.md deleted file mode 100644 index 104c78a96d..0000000000 --- a/.changeset/thin-chairs-ring.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@backstage/test-utils': minor -'@backstage/frontend-test-utils': patch ---- - -Added a `mockApis` export, which will replace the `MockX` API implementation classes and their related types. This is analogous with the backend's `mockServices`. - -**DEPRECATED** several old helpers: - -- Deprecated `MockAnalyticsApi`, please use `mockApis.analytics` instead. -- Deprecated `MockConfigApi`, please use `mockApis.config` instead. -- Deprecated `MockPermissionApi`, please use `mockApis.permission` instead. -- Deprecated `MockStorageApi`, please use `mockApis.storage` instead. -- Deprecated `MockTranslationApi`, please use `mockApis.translation` instead. diff --git a/.changeset/thirty-pets-fry.md b/.changeset/thirty-pets-fry.md deleted file mode 100644 index 2a588bb161..0000000000 --- a/.changeset/thirty-pets-fry.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/frontend-plugin-api': minor -'@backstage/core-plugin-api': minor ---- - -**BREAKING PRODUCERS**: The `IconComponent` no longer accepts `fontSize="default"`. This has effectively been removed from Material-UI since its last two major versions, and has not worked properly for them in a long time. - -This change should not have an effect on neither users of MUI4 nor MUI5/6, since the updated interface should still let you send the respective `SvgIcon` types into interfaces where relevant (e.g. as app icons). diff --git a/.changeset/thirty-pianos-mix.md b/.changeset/thirty-pianos-mix.md deleted file mode 100644 index 147307ac9e..0000000000 --- a/.changeset/thirty-pianos-mix.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-techdocs-module-addons-contrib': patch -'@backstage/plugin-techdocs': patch ---- - -Use more of the available space for the navigation sidebar. diff --git a/.changeset/three-mangos-dance.md b/.changeset/three-mangos-dance.md new file mode 100644 index 0000000000..0135869611 --- /dev/null +++ b/.changeset/three-mangos-dance.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-openapi-utils': patch +--- + +Moves msw from dependencies to devDependencies diff --git a/.changeset/tiny-pugs-kick.md b/.changeset/tiny-pugs-kick.md deleted file mode 100644 index 2d6f83b325..0000000000 --- a/.changeset/tiny-pugs-kick.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Update the Scaffolder template editor to quickly access installed custom fields and actions when editing a template. diff --git a/.changeset/tough-fireants-itch.md b/.changeset/tough-fireants-itch.md deleted file mode 100644 index 3567ac82d0..0000000000 --- a/.changeset/tough-fireants-itch.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-techdocs-backend': patch -'@backstage/plugin-techdocs-node': patch ---- - -Allow to pass StorageOptions to GCS Publisher diff --git a/.changeset/tough-onions-dance.md b/.changeset/tough-onions-dance.md new file mode 100644 index 0000000000..46b7477399 --- /dev/null +++ b/.changeset/tough-onions-dance.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Added a new `generate-patch` command that can be used to generate patches for current changes in a source workspace to be installed it a target workspace. diff --git a/.changeset/tough-pillows-sip.md b/.changeset/tough-pillows-sip.md deleted file mode 100644 index aea3e2d5a0..0000000000 --- a/.changeset/tough-pillows-sip.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/integration': patch ---- - -Updated functions parseHarnessUrl, getHarnessLatestCommitUrl, getHarnessFileContentsUrl and getHarnessArchiveUrl to fix parsing of urls diff --git a/.changeset/tricky-crabs-lick.md b/.changeset/tricky-crabs-lick.md new file mode 100644 index 0000000000..4f858538a3 --- /dev/null +++ b/.changeset/tricky-crabs-lick.md @@ -0,0 +1,13 @@ +--- +'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch +'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch +--- + +Fix double branch creation in `public:bitbucket{Cloud,Server}:pull-request` +This resulted in the following error when using the actions: + +``` +AlreadyExistsError: Failed to create branch at create-test because it already exists. +``` + +The issue was original introduced in d103a48fa306d745599dc0c793668c9e6a479d32 diff --git a/.changeset/tricky-shoes-lie.md b/.changeset/tricky-shoes-lie.md deleted file mode 100644 index d7a17f0345..0000000000 --- a/.changeset/tricky-shoes-lie.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@backstage/plugin-catalog-graph': patch ---- - -Added InfoCard `action` attribute for CatalogGraphCard - -```tsx -const action = Dialog Box Title - + - {dialogContent()} + + + This component is used whenever confirmation of some sort is needed, + such as: + +
    +
  • + + Consent to sensitive matters like GDPR, access, etc; + +
  • +
  • + + Save, submit, cancel after a form is completed; + +
  • +
  • + Alert message; +
  • +
  • + Buttons are optional. +
  • +
+ + The color for the secondary button is the same as the primary. + +
- - + +
- - ); + ); + }, }; diff --git a/packages/core-components/src/components/SupportButton/SupportButton.test.tsx b/packages/core-components/src/components/SupportButton/SupportButton.test.tsx index 9ed8fb8401..4036884130 100644 --- a/packages/core-components/src/components/SupportButton/SupportButton.test.tsx +++ b/packages/core-components/src/components/SupportButton/SupportButton.test.tsx @@ -41,34 +41,50 @@ const configApi = mockApis.config({ }, }); +const noSupportConfigApi = mockApis.config({ + data: { + app: {}, + }, +}); + const SUPPORT_BUTTON_ID = 'support-button'; const POPOVER_ID = 'support-button-popover'; describe('', () => { it('renders without exploding', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); await expect( screen.findByTestId(SUPPORT_BUTTON_ID), ).resolves.toBeInTheDocument(); }); it('supports passing a title', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); fireEvent.click(screen.getByTestId(SUPPORT_BUTTON_ID)); expect(screen.getByText('Custom title')).toBeInTheDocument(); }); it('supports passing link items through props', async () => { await renderInTestApp( - , + + + , ); const supportButton = screen.getByTestId(SUPPORT_BUTTON_ID); @@ -97,7 +113,11 @@ describe('', () => { }); it('shows popover on click', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); await expect( screen.findByTestId(SUPPORT_BUTTON_ID), @@ -108,4 +128,14 @@ describe('', () => { await expect(screen.findByTestId(POPOVER_ID)).resolves.toBeInTheDocument(); }); + + it('hides button if config is missing', async () => { + await renderInTestApp( + + + , + ); + + await expect(screen.findByTestId(SUPPORT_BUTTON_ID)).rejects.toThrow(); + }); }); diff --git a/packages/core-components/src/components/SupportButton/SupportButton.tsx b/packages/core-components/src/components/SupportButton/SupportButton.tsx index 9e51e23119..c3a6e283b6 100644 --- a/packages/core-components/src/components/SupportButton/SupportButton.tsx +++ b/packages/core-components/src/components/SupportButton/SupportButton.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { useApp } from '@backstage/core-plugin-api'; +import { configApiRef, useApi, useApp } from '@backstage/core-plugin-api'; import Box from '@material-ui/core/Box'; import Button from '@material-ui/core/Button'; import DialogActions from '@material-ui/core/DialogActions'; @@ -94,6 +94,7 @@ export function SupportButton(props: SupportButtonProps) { const [popoverOpen, setPopoverOpen] = useState(false); const [anchorEl, setAnchorEl] = useState(null); const classes = useStyles(); + const supportConfig = useApi(configApiRef).getOptionalConfig('app.support'); const isSmallScreen = useMediaQuery(theme => theme.breakpoints.down('sm'), ); @@ -107,6 +108,10 @@ export function SupportButton(props: SupportButtonProps) { setPopoverOpen(false); }; + if (!supportConfig) { + return null; + } + return ( <> diff --git a/packages/core-components/src/testUtils.test.ts b/packages/core-components/src/testUtils.test.ts new file mode 100644 index 0000000000..ca1979c5d4 --- /dev/null +++ b/packages/core-components/src/testUtils.test.ts @@ -0,0 +1,73 @@ +/* + * 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 { Breakpoint } from '@material-ui/core/styles/createBreakpoints'; +import { mockBreakpoint } from './testUtils'; + +describe('mockBreakpoint', () => { + const originalMatchMedia = window.matchMedia; + + afterAll(() => { + window.matchMedia = originalMatchMedia; + }); + + it('should remove the mock', () => { + const { remove } = mockBreakpoint({ initialBreakpoint: 'md' }); + expect(originalMatchMedia).not.toBe(window.matchMedia); + remove(); + expect(window.matchMedia).toBe(originalMatchMedia); + }); + + it('should mock matchMedia with initialBreakpoint', () => { + const { set } = mockBreakpoint({ initialBreakpoint: 'md' }); + + expect(window.matchMedia('(min-width:960px)').matches).toBe(true); + expect(window.matchMedia('(min-width:1280px)').matches).toBe(false); + + set('lg'); + expect(window.matchMedia('(min-width:1280px)').matches).toBe(true); + }); + + it('should mock matchMedia with matches option', () => { + mockBreakpoint({ matches: true }); + + expect(window.matchMedia('(min-width:1920px)').matches).toBe(true); + expect(window.matchMedia('(min-width:1280px)').matches).toBe(true); + expect(window.matchMedia('(min-width:960px)').matches).toBe(true); + expect(window.matchMedia('(min-width:600px)').matches).toBe(true); + expect(window.matchMedia('(min-width:0px)').matches).toBe(true); + }); + + it('should mock matchMedia with custom queryBreakpointMap', () => { + const customMap: Record = { + '(min-width:1500px)': 'xl', + '(min-width:1000px)': 'lg', + '(min-width:700px)': 'md', + '(min-width:400px)': 'sm', + '(min-width:0px)': 'xs', + }; + const { set } = mockBreakpoint({ + initialBreakpoint: 'sm', + queryBreakpointMap: customMap, + }); + + expect(window.matchMedia('(min-width:400px)').matches).toBe(true); + expect(window.matchMedia('(min-width:700px)').matches).toBe(false); + + set('md'); + expect(window.matchMedia('(min-width:700px)').matches).toBe(true); + }); +}); diff --git a/packages/core-components/src/testUtils.ts b/packages/core-components/src/testUtils.ts index 17bb0db63b..92c094743a 100644 --- a/packages/core-components/src/testUtils.ts +++ b/packages/core-components/src/testUtils.ts @@ -14,6 +14,11 @@ * limitations under the License. */ +import { Breakpoint } from '@material-ui/core/styles/createBreakpoints'; +import { act } from '@testing-library/react'; + +const originalMatchMedia = window.matchMedia; + /** * This is a mocking method suggested in the Jest docs, as it is not implemented in JSDOM yet. * It can be used to mock values for the Material UI `useMediaQuery` hook if it is used in a tested component. @@ -25,19 +30,137 @@ * https://mui.com/material-ui/react-use-media-query/#testing * * @public + * + * @example + * Match with any media query: + * ```ts + * mockBreakpoint({ matches: true }); + * ``` */ -export function mockBreakpoint(options: { matches: boolean }) { +export function mockBreakpoint(options: { matches: boolean }): void; +/** + * This is a mocking method suggested in the Jest docs, as it is not implemented in JSDOM yet. + * It can be used to mock values for the Material UI `useMediaQuery` hook if it is used in a tested component. + * + * For issues checkout the documentation: + * https://jestjs.io/docs/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom + * + * If there are any updates from Material UI React on testing `useMediaQuery` this mock should be replaced + * https://mui.com/material-ui/react-use-media-query/#testing + * + * @public + * + * @example + * Set the initial breakpoint: + * ```ts + * mockBreakpoint({ initialBreakpoint: 'md' }); + * ``` + * + * @example + * Map media queries to breakpoints: + * ```ts + * mockBreakpoint({ queryBreakpointMap: { '(min-width:1500px)': 'xl', '(min-width:1000px)': 'lg', '(min-width:700px)': 'md', '(min-width:400px)': 'sm', '(min-width:0px)': 'xs', } }); + * ``` + * + * @example + * Change the breakpoint during the test: + * ```ts + * const { set } = mockBreakpoint({ initialBreakpoint: 'md' }); + * set('lg'); + * ``` + **/ +export function mockBreakpoint(options: { + /** Defaults to 'lg' */ + initialBreakpoint?: Breakpoint; + /** Defaults to \{ '(min-width:1920px)': 'xl', '(min-width:1280px)': 'lg', '(min-width:960px)': 'md', '(min-width:600px)': 'sm', '(min-width:0px)': 'xs' \} */ + queryBreakpointMap?: Record; +}): { + set(value: string): void; + remove(): void; +}; +export function mockBreakpoint( + options: + | { + matches: boolean; + } + | { + initialBreakpoint?: Breakpoint; + queryBreakpointMap?: Record; + }, +): { + set(value: string): void; + remove(): void; +} { + const mediaQueries: { + mediaQueryString: string; + mediaQueryList: { matches: boolean }; + mediaQueryListeners: Set<(event: { matches: boolean }) => void>; + }[] = []; + let breakpoint: Breakpoint = 'lg'; + if ('initialBreakpoint' in options && options.initialBreakpoint) { + breakpoint = options.initialBreakpoint; + } + const breakpoints: Record = + 'queryBreakpointMap' in options && + typeof options.queryBreakpointMap === 'object' + ? options.queryBreakpointMap + : { + '(min-width:1920px)': 'xl', + '(min-width:1280px)': 'lg', + '(min-width:960px)': 'md', + '(min-width:600px)': 'sm', + '(min-width:0px)': 'xs', + }; Object.defineProperty(window, 'matchMedia', { writable: true, - value: jest.fn().mockImplementation(query => ({ - matches: options.matches ?? false, - media: query, - onchange: null, - addListener: jest.fn(), // deprecated - removeListener: jest.fn(), // deprecated - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), + value: jest.fn().mockImplementation(mediaQueryString => { + const mediaQueryListeners = new Set< + (event: { matches: boolean }) => void + >(); + const mediaQueryList = { + matches: + 'matches' in options + ? options.matches + : breakpoints[mediaQueryString] === breakpoint, + media: mediaQueryString, + onchange: null, + addListener: jest.fn(listener => { + mediaQueryListeners.add(listener); + }), + removeListener: jest.fn(listener => { + mediaQueryListeners.delete(listener); + }), + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + }; + mediaQueries.push({ + mediaQueryString, + mediaQueryList, + mediaQueryListeners, + }); + return mediaQueryList; + }), }); + + return { + set(newBreakpoint: Breakpoint) { + breakpoint = newBreakpoint; + mediaQueries.forEach( + ({ mediaQueryString, mediaQueryList, mediaQueryListeners }) => { + act(() => { + const matches = + 'matches' in options + ? options.matches + : breakpoints[mediaQueryString] === breakpoint; + mediaQueryList.matches = matches; + mediaQueryListeners.forEach(listener => listener({ matches })); + }); + }, + ); + }, + remove() { + window.matchMedia = originalMatchMedia; + }, + }; } diff --git a/packages/core-plugin-api/CHANGELOG.md b/packages/core-plugin-api/CHANGELOG.md index 614feda711..0c5c3f0780 100644 --- a/packages/core-plugin-api/CHANGELOG.md +++ b/packages/core-plugin-api/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/core-plugin-api +## 1.10.0 + +### Minor Changes + +- bfd4bec: **BREAKING PRODUCERS**: The `IconComponent` no longer accepts `fontSize="default"`. This has effectively been removed from Material-UI since its last two major versions, and has not worked properly for them in a long time. + + This change should not have an effect on neither users of MUI4 nor MUI5/6, since the updated interface should still let you send the respective `SvgIcon` types into interfaces where relevant (e.g. as app icons). + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- 39001f4: Fixing issue with types for `ParamKeys` leading to type mismatches across versions +- Updated dependencies + - @backstage/version-bridge@1.0.10 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.10.0-next.1 ### Patch Changes diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json index dc08e132c1..0e54f32ff4 100644 --- a/packages/core-plugin-api/package.json +++ b/packages/core-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/core-plugin-api", - "version": "1.10.0-next.1", + "version": "1.10.0", "description": "Core API used by Backstage plugins", "backstage": { "role": "web-library" diff --git a/packages/core-plugin-api/report-alpha.api.md b/packages/core-plugin-api/report-alpha.api.md index 260e0365a7..c0f0d02535 100644 --- a/packages/core-plugin-api/report-alpha.api.md +++ b/packages/core-plugin-api/report-alpha.api.md @@ -239,36 +239,5 @@ export const useTranslationRef: < t: TranslationFunction; }; -// Warnings were encountered during analysis: -// -// src/apis/definitions/AppLanguageApi.d.ts:4:1 - (ae-undocumented) Missing documentation for "AppLanguageApi". -// src/apis/definitions/AppLanguageApi.d.ts:19:22 - (ae-undocumented) Missing documentation for "appLanguageApiRef". -// src/apis/definitions/TranslationApi.d.ts:228:1 - (ae-undocumented) Missing documentation for "TranslationFunction". -// src/apis/definitions/TranslationApi.d.ts:231:5 - (ae-undocumented) Missing documentation for "__call". -// src/apis/definitions/TranslationApi.d.ts:234:1 - (ae-undocumented) Missing documentation for "TranslationSnapshot". -// src/apis/definitions/TranslationApi.d.ts:243:1 - (ae-undocumented) Missing documentation for "TranslationApi". -// src/apis/definitions/TranslationApi.d.ts:254:22 - (ae-undocumented) Missing documentation for "translationApiRef". -// src/translation/TranslationMessages.d.ts:17:5 - (ae-undocumented) Missing documentation for "$$type". -// src/translation/TranslationMessages.d.ts:33:5 - (ae-undocumented) Missing documentation for "ref". -// src/translation/TranslationMessages.d.ts:34:5 - (ae-undocumented) Missing documentation for "full". -// src/translation/TranslationMessages.d.ts:35:5 - (ae-undocumented) Missing documentation for "messages". -// src/translation/TranslationRef.d.ts:2:1 - (ae-undocumented) Missing documentation for "TranslationRef". -// src/translation/TranslationRef.d.ts:7:5 - (ae-undocumented) Missing documentation for "$$type". -// src/translation/TranslationRef.d.ts:8:5 - (ae-undocumented) Missing documentation for "id". -// src/translation/TranslationRef.d.ts:9:5 - (ae-undocumented) Missing documentation for "T". -// src/translation/TranslationRef.d.ts:30:1 - (ae-undocumented) Missing documentation for "TranslationRefOptions". -// src/translation/TranslationRef.d.ts:37:5 - (ae-undocumented) Missing documentation for "id". -// src/translation/TranslationRef.d.ts:38:5 - (ae-undocumented) Missing documentation for "messages". -// src/translation/TranslationRef.d.ts:39:5 - (ae-undocumented) Missing documentation for "translations". -// src/translation/TranslationRef.d.ts:42:1 - (ae-undocumented) Missing documentation for "createTranslationRef". -// src/translation/TranslationResource.d.ts:3:1 - (ae-undocumented) Missing documentation for "TranslationResource". -// src/translation/TranslationResource.d.ts:4:5 - (ae-undocumented) Missing documentation for "$$type". -// src/translation/TranslationResource.d.ts:5:5 - (ae-undocumented) Missing documentation for "id". -// src/translation/TranslationResource.d.ts:8:1 - (ae-undocumented) Missing documentation for "TranslationResourceOptions". -// src/translation/TranslationResource.d.ts:17:5 - (ae-undocumented) Missing documentation for "ref". -// src/translation/TranslationResource.d.ts:18:5 - (ae-undocumented) Missing documentation for "translations". -// src/translation/TranslationResource.d.ts:21:1 - (ae-undocumented) Missing documentation for "createTranslationResource". -// src/translation/useTranslationRef.d.ts:4:22 - (ae-undocumented) Missing documentation for "useTranslationRef". - // (No @packageDocumentation comment for this package) ``` diff --git a/packages/core-plugin-api/report.api.md b/packages/core-plugin-api/report.api.md index 06333c1fb4..9924d816da 100644 --- a/packages/core-plugin-api/report.api.md +++ b/packages/core-plugin-api/report.api.md @@ -613,9 +613,13 @@ export type OptionalParams< > = Params[keyof Params] extends never ? undefined : Params; // @public @deprecated -export type ParamKeys = keyof Params extends never +export type ParamKeys = [AnyRouteRefParams] extends [ + Params, +] + ? string[] + : keyof Params extends never ? [] - : (keyof Params)[]; + : Array; // @public @deprecated export type ParamNames = @@ -792,8 +796,4 @@ export function withApis( ): React_2.JSX.Element; displayName: string; }; - -// Warnings were encountered during analysis: -// -// src/routing/types.d.ts:13:1 - (ae-undocumented) Missing documentation for "AnyParams". ``` diff --git a/packages/core-plugin-api/src/routing/ExternalRouteRef.test.ts b/packages/core-plugin-api/src/routing/ExternalRouteRef.test.ts index f6e072f760..05e7a23d5d 100644 --- a/packages/core-plugin-api/src/routing/ExternalRouteRef.test.ts +++ b/packages/core-plugin-api/src/routing/ExternalRouteRef.test.ts @@ -87,7 +87,7 @@ describe('ExternalRouteRef', () => { const _3 = createExternalRouteRef({ id: '3', params: ['x', 'y'] }); // @ts-expect-error validateType<{ x: string }, any>(_3); - // extra z, we validate this at runtime instead + // @ts-expect-error validateType<{ x: string; y: string; z: string }, any>(_3); validateType<{ x: string; y: string }, false>(_3); diff --git a/packages/core-plugin-api/src/routing/RouteRef.test.ts b/packages/core-plugin-api/src/routing/RouteRef.test.ts index 5314957a25..489900d892 100644 --- a/packages/core-plugin-api/src/routing/RouteRef.test.ts +++ b/packages/core-plugin-api/src/routing/RouteRef.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { AnyParams, RouteRef } from './types'; +import { AnyParams, RouteRef, ParamKeys } from './types'; import { createRouteRef } from './RouteRef'; describe('RouteRef', () => { @@ -54,7 +54,7 @@ describe('RouteRef', () => { validateType(_2); // @ts-expect-error validateType<{ x: string; z: string }>(_2); - // extra z, we validate this at runtime instead + // @ts-expect-error validateType<{ x: string; y: string; z: string }>(_2); validateType<{ x: string; y: string }>(_2); @@ -71,4 +71,28 @@ describe('RouteRef', () => { // To avoid complains about missing expectations and unused vars expect([_1, _2, _3, _4].join('')).toEqual(expect.any(String)); }); + + it('should properly infer param keys', () => { + function validateType(_test: T) {} + + validateType>(['x', 'y']); + + // @ts-expect-error + validateType>(['foo']); + validateType>([]); + + // @ts-expect-error + validateType>([1]); + validateType>(['foo']); + + // @ts-expect-error + validateType>([1]); + validateType>(['foo']); + + // @ts-expect-error + validateType>(['foo']); + validateType>([]); + + expect(true).toBeDefined(); + }); }); diff --git a/packages/core-plugin-api/src/routing/SubRouteRef.test.ts b/packages/core-plugin-api/src/routing/SubRouteRef.test.ts index cec00de025..1db429e178 100644 --- a/packages/core-plugin-api/src/routing/SubRouteRef.test.ts +++ b/packages/core-plugin-api/src/routing/SubRouteRef.test.ts @@ -102,7 +102,7 @@ describe('SubRouteRef', () => { validateType<{ x: string; z: string }>(_2); // @ts-expect-error validateType<{ y: string }>(_2); - // extra z, we validate this at runtime instead + // @ts-expect-error validateType<{ x: string; y: string; z: string }>(_2); validateType<{ x: string; y: string }>(_2); diff --git a/packages/core-plugin-api/src/routing/types.ts b/packages/core-plugin-api/src/routing/types.ts index 32f26f19c1..4598574afb 100644 --- a/packages/core-plugin-api/src/routing/types.ts +++ b/packages/core-plugin-api/src/routing/types.ts @@ -35,9 +35,13 @@ export type AnyParams = AnyRouteRefParams; * @public * @deprecated this type is deprecated and will be removed in the future */ -export type ParamKeys = keyof Params extends never +export type ParamKeys = [AnyRouteRefParams] extends [ + Params, +] + ? string[] + : keyof Params extends never ? [] - : (keyof Params)[]; + : Array; /** * Optional route params. diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index c028b01fb6..48bf961dcb 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/create-app +## 0.5.22-next.0 + +### Patch Changes + +- Bumped create-app version. +- Updated dependencies + - @backstage/cli-common@0.1.14 + +## 0.5.21 + +### Patch Changes + +- c42c710: Bumped create-app version. +- 56a8118: Bumped create-app version. +- a7674d6: Fixed lack of `.yarnrc.yml` in the template. +- ab89e45: Remove some dependencies that aren't required anymore +- b452088: Tweak `Dockerfile` to fix deprecated syntax. +- Updated dependencies + - @backstage/cli-common@0.1.14 + ## 0.5.21-next.2 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 586ef8357a..df61434ae1 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/create-app", - "version": "0.5.21-next.2", + "version": "0.5.22-next.0", "description": "A CLI that helps you create your own Backstage app", "backstage": { "role": "cli" @@ -59,7 +59,7 @@ "@types/command-exists": "^1.2.0", "@types/fs-extra": "^11.0.0", "@types/inquirer": "^8.1.3", - "@types/node": "^18.17.8", + "@types/node": "^20.16.0", "@types/recursive-readdir": "^2.2.0", "msw": "^1.0.0", "nodemon": "^3.0.1" diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 7a42fed3f8..73f97484f9 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "engines": { - "node": "18 || 20" + "node": "20 || 22" }, "scripts": { "dev": "yarn workspaces foreach -A --include backend --include app --parallel -v -i run start", diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index b1a7e783b8..92ab85b66f 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/dev-utils +## 1.1.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.16.0-next.0 + - @backstage/app-defaults@1.5.13-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/core-app-api@1.15.1 + - @backstage/core-plugin-api@1.10.0 + - @backstage/integration-react@1.2.0 + - @backstage/theme@0.6.0 + - @backstage/plugin-catalog-react@1.14.1-next.0 + +## 1.1.2 + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- Updated dependencies + - @backstage/core-components@0.15.1 + - @backstage/integration-react@1.2.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/app-defaults@1.5.12 + - @backstage/core-app-api@1.15.1 + - @backstage/plugin-catalog-react@1.14.0 + - @backstage/theme@0.6.0 + - @backstage/catalog-model@1.7.0 + ## 1.1.2-next.2 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index b91a135c55..3797c8fa1f 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/dev-utils", - "version": "1.1.2-next.2", + "version": "1.1.3-next.0", "description": "Utilities for developing Backstage plugins.", "backstage": { "role": "web-library" diff --git a/packages/dev-utils/report.api.md b/packages/dev-utils/report.api.md index 18da50026e..1a7b765fab 100644 --- a/packages/dev-utils/report.api.md +++ b/packages/dev-utils/report.api.md @@ -67,10 +67,4 @@ export const SidebarSignOutButton: (props: { icon?: IconComponent; text?: string; }) => React_2.JSX.Element; - -// Warnings were encountered during analysis: -// -// src/components/EntityGridItem/EntityGridItem.d.ts:5:22 - (ae-undocumented) Missing documentation for "EntityGridItem". -// src/components/SidebarLanguageSwitcher/SidebarLanguageSwitcher.d.ts:3:22 - (ae-undocumented) Missing documentation for "SidebarLanguageSwitcher". -// src/devApp/render.d.ts:8:1 - (ae-undocumented) Missing documentation for "DevAppPageOptions". ``` diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index 1720a3f765..c5f66d2df4 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,23 @@ # e2e-test +## 0.2.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.22-next.0 + - @backstage/cli-common@0.1.14 + - @backstage/errors@1.2.4 + +## 0.2.21 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.21 + - @backstage/cli-common@0.1.14 + - @backstage/errors@1.2.4 + ## 0.2.21-next.2 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index c6536ed92a..ff18b51ae4 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -1,6 +1,6 @@ { "name": "e2e-test", - "version": "0.2.21-next.2", + "version": "0.2.22-next.0", "description": "E2E test for verifying Backstage packages", "backstage": { "role": "cli" @@ -47,7 +47,7 @@ "devDependencies": { "@backstage/cli": "workspace:^", "@types/fs-extra": "^11.0.0", - "@types/node": "^18.17.8", + "@types/node": "^20.16.0", "nodemon": "^3.0.1" } } diff --git a/packages/e2e-test/src/commands/run.ts b/packages/e2e-test/src/commands/run.ts index 0a9ac6368c..77e2e83c4c 100644 --- a/packages/e2e-test/src/commands/run.ts +++ b/packages/e2e-test/src/commands/run.ts @@ -531,7 +531,11 @@ async function testBackendStart(appDir: string, ...args: string[]) { !l.includes( 'ExperimentalWarning: `globalPreload` is planned for removal in favor of `initialize`.', // Node 18 ) && - !l.includes('node --trace-warnings ...'), + !l.includes( + 'DeprecationWarning: The `punycode` module is deprecated.', // Node 22 + ) && + !l.includes('node --trace-warnings ...') && + !l.includes('node --trace-deprecation ...'), ); }; diff --git a/packages/errors/report.api.md b/packages/errors/report.api.md index d2ba2d22ff..894aac8413 100644 --- a/packages/errors/report.api.md +++ b/packages/errors/report.api.md @@ -155,16 +155,4 @@ export class ServiceUnavailableError extends CustomErrorBase {} // @public export function stringifyError(error: unknown): string; - -// Warnings were encountered during analysis: -// -// src/errors/ResponseError.d.ts:32:5 - (ae-undocumented) Missing documentation for "statusCode". -// src/errors/ResponseError.d.ts:33:5 - (ae-undocumented) Missing documentation for "statusText". -// src/errors/common.d.ts:8:5 - (ae-undocumented) Missing documentation for "name". -// src/errors/common.d.ts:16:5 - (ae-undocumented) Missing documentation for "name". -// src/errors/common.d.ts:24:5 - (ae-undocumented) Missing documentation for "name". -// src/errors/common.d.ts:35:5 - (ae-undocumented) Missing documentation for "name". -// src/errors/common.d.ts:44:5 - (ae-undocumented) Missing documentation for "name". -// src/errors/common.d.ts:52:5 - (ae-undocumented) Missing documentation for "name". -// src/errors/common.d.ts:60:5 - (ae-undocumented) Missing documentation for "name". ``` diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index ce751563b9..12aed8093f 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/eslint-plugin +## 0.1.10 + +### Patch Changes + +- b1c2a2d: Exclude `@material-ui/data-grid` +- 63963f6: Internal refactor to deal with `estree` upgrade + ## 0.1.10-next.1 ### Patch Changes diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index ee345fc835..3a67ce8cee 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/eslint-plugin", - "version": "0.1.10-next.1", + "version": "0.1.10", "description": "Backstage ESLint plugin", "publishConfig": { "access": "public" diff --git a/packages/frontend-app-api/CHANGELOG.md b/packages/frontend-app-api/CHANGELOG.md index 694279ef3f..898fd5b472 100644 --- a/packages/frontend-app-api/CHANGELOG.md +++ b/packages/frontend-app-api/CHANGELOG.md @@ -1,5 +1,38 @@ # @backstage/frontend-app-api +## 0.10.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.15.1 + - @backstage/core-plugin-api@1.10.0 + - @backstage/errors@1.2.4 + - @backstage/frontend-defaults@0.1.2-next.0 + - @backstage/frontend-plugin-api@0.9.1-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.10 + +## 0.10.0 + +### Minor Changes + +- 4a5ba19: Removed deprecated `createApp` and `CreateAppFeatureLoader` from `@backstage/frontend-app-api`, use the same `createApp` and `CreateAppFeatureLoader` import from `@backstage/frontend-defaults` instead. + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- Updated dependencies + - @backstage/frontend-plugin-api@0.9.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/version-bridge@1.0.10 + - @backstage/core-app-api@1.15.1 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/frontend-defaults@0.1.1 + - @backstage/types@1.1.1 + ## 0.10.0-next.2 ### Patch Changes diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index 760b9e334b..c87ab1495b 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.10.0-next.2", + "version": "0.10.1-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-app-api/report.api.md b/packages/frontend-app-api/report.api.md index b5e5f801e6..4216f1f823 100644 --- a/packages/frontend-app-api/report.api.md +++ b/packages/frontend-app-api/report.api.md @@ -43,8 +43,4 @@ export type FrontendFeature = | { $$type: '@backstage/BackstagePlugin'; }; - -// Warnings were encountered during analysis: -// -// src/wiring/types.d.ts:3:1 - (ae-undocumented) Missing documentation for "FrontendFeature". ``` diff --git a/packages/frontend-defaults/CHANGELOG.md b/packages/frontend-defaults/CHANGELOG.md index 96d4424879..c1d032d43f 100644 --- a/packages/frontend-defaults/CHANGELOG.md +++ b/packages/frontend-defaults/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/frontend-defaults +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/frontend-app-api@0.10.1-next.0 + - @backstage/frontend-plugin-api@0.9.1-next.0 + - @backstage/plugin-app@0.1.2-next.0 + +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.9.0 + - @backstage/frontend-app-api@0.10.0 + - @backstage/plugin-app@0.1.1 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.1.1-next.2 ### Patch Changes diff --git a/packages/frontend-defaults/package.json b/packages/frontend-defaults/package.json index 60933d7922..63cd367c37 100644 --- a/packages/frontend-defaults/package.json +++ b/packages/frontend-defaults/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-defaults", - "version": "0.1.1-next.2", + "version": "0.1.2-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-defaults/report.api.md b/packages/frontend-defaults/report.api.md index 4822312294..b99232b784 100644 --- a/packages/frontend-defaults/report.api.md +++ b/packages/frontend-defaults/report.api.md @@ -40,10 +40,4 @@ export interface CreateAppOptions { export function createPublicSignInApp(options?: CreateAppOptions): { createRoot(): React_2.JSX.Element; }; - -// Warnings were encountered during analysis: -// -// src/createApp.d.ts:29:5 - (ae-undocumented) Missing documentation for "features". -// src/createApp.d.ts:30:5 - (ae-undocumented) Missing documentation for "configLoader". -// src/createApp.d.ts:33:5 - (ae-undocumented) Missing documentation for "bindRoutes". ``` diff --git a/packages/frontend-internal/CHANGELOG.md b/packages/frontend-internal/CHANGELOG.md index 0ea601d440..0a63a04e3a 100644 --- a/packages/frontend-internal/CHANGELOG.md +++ b/packages/frontend-internal/CHANGELOG.md @@ -1,5 +1,23 @@ # @internal/frontend +## 0.0.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.9.1-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.10 + +## 0.0.2 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-plugin-api@0.9.0 + - @backstage/version-bridge@1.0.10 + - @backstage/types@1.1.1 + ## 0.0.2-next.2 ### Patch Changes diff --git a/packages/frontend-internal/package.json b/packages/frontend-internal/package.json index d0970eb0fe..a712d6d432 100644 --- a/packages/frontend-internal/package.json +++ b/packages/frontend-internal/package.json @@ -1,6 +1,6 @@ { "name": "@internal/frontend", - "version": "0.0.2-next.2", + "version": "0.0.3-next.0", "backstage": { "role": "web-library", "inline": true diff --git a/packages/frontend-plugin-api/CHANGELOG.md b/packages/frontend-plugin-api/CHANGELOG.md index 79090ada71..eb9ec8441c 100644 --- a/packages/frontend-plugin-api/CHANGELOG.md +++ b/packages/frontend-plugin-api/CHANGELOG.md @@ -1,5 +1,66 @@ # @backstage/frontend-plugin-api +## 0.9.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.16.0-next.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.10 + +## 0.9.0 + +### Minor Changes + +- 4a5ba19: Removed deprecated `namespace` option from `createExtension` and `createExtensionBlueprint`, including `.make` and `.makeWithOverides`, it's no longer necessary and will use the `pluginId` instead. + + Removed deprecated `createExtensionOverrides` this should be replaced with `createFrontendModule` instead. + + Removed deprecated `BackstagePlugin` type, use `FrontendPlugin` type instead from this same package. + +- bfd4bec: **BREAKING PRODUCERS**: The `IconComponent` no longer accepts `fontSize="default"`. This has effectively been removed from Material-UI since its last two major versions, and has not worked properly for them in a long time. + + This change should not have an effect on neither users of MUI4 nor MUI5/6, since the updated interface should still let you send the respective `SvgIcon` types into interfaces where relevant (e.g. as app icons). + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- 873e424: Internal refactor of usage of opaque types. +- 323aae8: It is now possible to override the blueprint parameters when overriding an extension created from a blueprint: + + ```ts + const myExtension = MyBlueprint.make({ + params: { + myParam: 'myDefault', + }, + }); + + const myOverride = myExtension.override({ + params: { + myParam: 'myOverride', + }, + }); + const myFactoryOverride = myExtension.override({ + factory(origFactory) { + return origFactory({ + params: { + myParam: 'myOverride', + }, + }); + }, + }); + ``` + + The provided parameters will be merged with the original parameters of the extension. + +- Updated dependencies + - @backstage/core-components@0.15.1 + - @backstage/core-plugin-api@1.10.0 + - @backstage/version-bridge@1.0.10 + - @backstage/types@1.1.1 + ## 0.9.0-next.2 ### Patch Changes diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index 2b8e7e8c87..28b47090b5 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.9.0-next.2", + "version": "0.9.1-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-plugin-api/report.api.md b/packages/frontend-plugin-api/report.api.md index 5bc2a663d7..acc9efed61 100644 --- a/packages/frontend-plugin-api/report.api.md +++ b/packages/frontend-plugin-api/report.api.md @@ -1747,106 +1747,4 @@ export { useTranslationRef }; export { vmwareCloudAuthApiRef }; export { withApis }; - -// Warnings were encountered during analysis: -// -// src/apis/definitions/AppTreeApi.d.ts:12:5 - (ae-undocumented) Missing documentation for "id". -// src/apis/definitions/AppTreeApi.d.ts:13:5 - (ae-undocumented) Missing documentation for "attachTo". -// src/apis/definitions/AppTreeApi.d.ts:17:5 - (ae-undocumented) Missing documentation for "extension". -// src/apis/definitions/AppTreeApi.d.ts:18:5 - (ae-undocumented) Missing documentation for "disabled". -// src/apis/definitions/AppTreeApi.d.ts:19:5 - (ae-undocumented) Missing documentation for "config". -// src/apis/definitions/AppTreeApi.d.ts:20:5 - (ae-undocumented) Missing documentation for "source". -// src/apis/definitions/AppTreeApi.d.ts:32:5 - (ae-undocumented) Missing documentation for "attachedTo". -// src/apis/definitions/AppTreeApi.d.ts:36:5 - (ae-undocumented) Missing documentation for "attachments". -// src/apis/definitions/ComponentsApi.d.ts:9:5 - (ae-undocumented) Missing documentation for "getComponent". -// src/apis/definitions/IconsApi.d.ts:8:5 - (ae-undocumented) Missing documentation for "getIcon". -// src/apis/definitions/IconsApi.d.ts:9:5 - (ae-undocumented) Missing documentation for "listIconKeys". -// src/apis/definitions/RouteResolutionApi.d.ts:19:1 - (ae-undocumented) Missing documentation for "RouteResolutionApiResolveOptions". -// src/apis/definitions/RouteResolutionApi.d.ts:29:1 - (ae-undocumented) Missing documentation for "RouteResolutionApi". -// src/apis/definitions/RouteResolutionApi.d.ts:30:5 - (ae-undocumented) Missing documentation for "resolve". -// src/blueprints/IconBundleBlueprint.d.ts:3:22 - (ae-undocumented) Missing documentation for "IconBundleBlueprint". -// src/blueprints/RouterBlueprint.d.ts:3:22 - (ae-undocumented) Missing documentation for "RouterBlueprint". -// src/components/ExtensionBoundary.d.ts:4:1 - (ae-undocumented) Missing documentation for "ExtensionBoundaryProps". -// src/components/ExtensionBoundary.d.ts:5:5 - (ae-undocumented) Missing documentation for "node". -// src/components/ExtensionBoundary.d.ts:12:5 - (ae-undocumented) Missing documentation for "children". -// src/components/ExtensionBoundary.d.ts:15:1 - (ae-undocumented) Missing documentation for "ExtensionBoundary". -// src/components/ExtensionBoundary.d.ts:17:1 - (ae-undocumented) Missing documentation for "ExtensionBoundary". -// src/components/ExtensionBoundary.d.ts:18:5 - (ae-undocumented) Missing documentation for "lazy". -// src/components/coreComponentRefs.d.ts:3:22 - (ae-undocumented) Missing documentation for "coreComponentRefs". -// src/components/createComponentRef.d.ts:2:1 - (ae-undocumented) Missing documentation for "ComponentRef". -// src/components/createComponentRef.d.ts:7:1 - (ae-undocumented) Missing documentation for "createComponentRef". -// src/extensions/createComponentExtension.d.ts:4:1 - (ae-undocumented) Missing documentation for "createComponentExtension". -// src/extensions/createComponentExtension.d.ts:31:1 - (ae-undocumented) Missing documentation for "createComponentExtension". -// src/extensions/createComponentExtension.d.ts:32:11 - (ae-undocumented) Missing documentation for "componentDataRef". -// src/routing/ExternalRouteRef.d.ts:12:5 - (ae-undocumented) Missing documentation for "$$type". -// src/routing/ExternalRouteRef.d.ts:13:5 - (ae-undocumented) Missing documentation for "T". -// src/routing/RouteRef.d.ts:12:5 - (ae-undocumented) Missing documentation for "$$type". -// src/routing/RouteRef.d.ts:13:5 - (ae-undocumented) Missing documentation for "T". -// src/routing/SubRouteRef.d.ts:13:5 - (ae-undocumented) Missing documentation for "$$type". -// src/routing/SubRouteRef.d.ts:14:5 - (ae-undocumented) Missing documentation for "T". -// src/routing/SubRouteRef.d.ts:15:5 - (ae-undocumented) Missing documentation for "path". -// src/schema/types.d.ts:3:1 - (ae-undocumented) Missing documentation for "PortableSchema". -// src/types.d.ts:11:1 - (ae-undocumented) Missing documentation for "CoreProgressProps". -// src/types.d.ts:13:1 - (ae-undocumented) Missing documentation for "CoreNotFoundErrorPageProps". -// src/types.d.ts:17:1 - (ae-undocumented) Missing documentation for "CoreErrorBoundaryFallbackProps". -// src/wiring/coreExtensionData.d.ts:4:22 - (ae-undocumented) Missing documentation for "coreExtensionData". -// src/wiring/createExtension.d.ts:31:1 - (ae-undocumented) Missing documentation for "CreateExtensionOptions". -// src/wiring/createExtension.d.ts:61:1 - (ae-undocumented) Missing documentation for "ExtensionDefinitionParameters". -// src/wiring/createExtension.d.ts:80:1 - (ae-undocumented) Missing documentation for "ExtensionDefinition". -// src/wiring/createExtension.d.ts:134:1 - (ae-undocumented) Missing documentation for "createExtension". -// src/wiring/createExtensionBlueprint.d.ts:12:1 - (ae-undocumented) Missing documentation for "CreateExtensionBlueprintOptions". -// src/wiring/createExtensionBlueprint.d.ts:45:1 - (ae-undocumented) Missing documentation for "ExtensionBlueprintParameters". -// src/wiring/createExtensionBlueprint.d.ts:69:1 - (ae-undocumented) Missing documentation for "ExtensionBlueprint". -// src/wiring/createExtensionBlueprint.d.ts:70:5 - (ae-undocumented) Missing documentation for "dataRefs". -// src/wiring/createExtensionBlueprint.d.ts:71:5 - (ae-undocumented) Missing documentation for "make". -// src/wiring/createExtensionDataContainer.d.ts:3:1 - (ae-undocumented) Missing documentation for "ExtensionDataContainer". -// src/wiring/createExtensionDataRef.d.ts:2:1 - (ae-undocumented) Missing documentation for "ExtensionDataValue". -// src/wiring/createExtensionDataRef.d.ts:8:1 - (ae-undocumented) Missing documentation for "ExtensionDataRef". -// src/wiring/createExtensionDataRef.d.ts:17:1 - (ae-undocumented) Missing documentation for "ExtensionDataRefToValue". -// src/wiring/createExtensionDataRef.d.ts:19:1 - (ae-undocumented) Missing documentation for "AnyExtensionDataRef". -// src/wiring/createExtensionDataRef.d.ts:23:1 - (ae-undocumented) Missing documentation for "ConfigurableExtensionDataRef". -// src/wiring/createExtensionDataRef.d.ts:26:5 - (ae-undocumented) Missing documentation for "optional". -// src/wiring/createExtensionDataRef.d.ts:29:5 - (ae-undocumented) Missing documentation for "__call". -// src/wiring/createExtensionDataRef.d.ts:35:1 - (ae-undocumented) Missing documentation for "createExtensionDataRef". -// src/wiring/createExtensionDataRef.d.ts:37:1 - (ae-undocumented) Missing documentation for "createExtensionDataRef". -// src/wiring/createExtensionInput.d.ts:3:1 - (ae-undocumented) Missing documentation for "ExtensionInput". -// src/wiring/createExtensionInput.d.ts:9:5 - (ae-undocumented) Missing documentation for "$$type". -// src/wiring/createExtensionInput.d.ts:10:5 - (ae-undocumented) Missing documentation for "extensionData". -// src/wiring/createExtensionInput.d.ts:11:5 - (ae-undocumented) Missing documentation for "config". -// src/wiring/createExtensionInput.d.ts:12:5 - (ae-undocumented) Missing documentation for "replaces". -// src/wiring/createExtensionInput.d.ts:18:1 - (ae-undocumented) Missing documentation for "createExtensionInput". -// src/wiring/createFrontendModule.d.ts:4:1 - (ae-undocumented) Missing documentation for "CreateFrontendModuleOptions". -// src/wiring/createFrontendModule.d.ts:5:5 - (ae-undocumented) Missing documentation for "pluginId". -// src/wiring/createFrontendModule.d.ts:6:5 - (ae-undocumented) Missing documentation for "extensions". -// src/wiring/createFrontendModule.d.ts:7:5 - (ae-undocumented) Missing documentation for "featureFlags". -// src/wiring/createFrontendModule.d.ts:10:1 - (ae-undocumented) Missing documentation for "FrontendModule". -// src/wiring/createFrontendModule.d.ts:11:5 - (ae-undocumented) Missing documentation for "$$type". -// src/wiring/createFrontendModule.d.ts:12:5 - (ae-undocumented) Missing documentation for "pluginId". -// src/wiring/createFrontendModule.d.ts:15:1 - (ae-undocumented) Missing documentation for "createFrontendModule". -// src/wiring/createFrontendPlugin.d.ts:5:1 - (ae-undocumented) Missing documentation for "FrontendPlugin". -// src/wiring/createFrontendPlugin.d.ts:10:5 - (ae-undocumented) Missing documentation for "$$type". -// src/wiring/createFrontendPlugin.d.ts:11:5 - (ae-undocumented) Missing documentation for "id". -// src/wiring/createFrontendPlugin.d.ts:12:5 - (ae-undocumented) Missing documentation for "routes". -// src/wiring/createFrontendPlugin.d.ts:13:5 - (ae-undocumented) Missing documentation for "externalRoutes". -// src/wiring/createFrontendPlugin.d.ts:14:5 - (ae-undocumented) Missing documentation for "getExtension". -// src/wiring/createFrontendPlugin.d.ts:15:5 - (ae-undocumented) Missing documentation for "withOverrides". -// src/wiring/createFrontendPlugin.d.ts:20:1 - (ae-undocumented) Missing documentation for "PluginOptions". -// src/wiring/createFrontendPlugin.d.ts:21:5 - (ae-undocumented) Missing documentation for "id". -// src/wiring/createFrontendPlugin.d.ts:22:5 - (ae-undocumented) Missing documentation for "routes". -// src/wiring/createFrontendPlugin.d.ts:23:5 - (ae-undocumented) Missing documentation for "externalRoutes". -// src/wiring/createFrontendPlugin.d.ts:24:5 - (ae-undocumented) Missing documentation for "extensions". -// src/wiring/createFrontendPlugin.d.ts:25:5 - (ae-undocumented) Missing documentation for "featureFlags". -// src/wiring/createFrontendPlugin.d.ts:28:1 - (ae-undocumented) Missing documentation for "createFrontendPlugin". -// src/wiring/resolveExtensionDefinition.d.ts:4:1 - (ae-undocumented) Missing documentation for "Extension". -// src/wiring/resolveExtensionDefinition.d.ts:5:5 - (ae-undocumented) Missing documentation for "$$type". -// src/wiring/resolveExtensionDefinition.d.ts:6:5 - (ae-undocumented) Missing documentation for "id". -// src/wiring/resolveExtensionDefinition.d.ts:7:5 - (ae-undocumented) Missing documentation for "attachTo". -// src/wiring/resolveExtensionDefinition.d.ts:11:5 - (ae-undocumented) Missing documentation for "disabled". -// src/wiring/resolveExtensionDefinition.d.ts:12:5 - (ae-undocumented) Missing documentation for "configSchema". -// src/wiring/resolveInputOverrides.d.ts:5:1 - (ae-undocumented) Missing documentation for "ResolveInputValueOverrides". -// src/wiring/types.d.ts:14:1 - (ae-undocumented) Missing documentation for "AnyRoutes". -// src/wiring/types.d.ts:18:1 - (ae-undocumented) Missing documentation for "AnyExternalRoutes". -// src/wiring/types.d.ts:28:1 - (ae-undocumented) Missing documentation for "ExtensionOverrides". -// src/wiring/types.d.ts:29:5 - (ae-undocumented) Missing documentation for "$$type". -// src/wiring/types.d.ts:35:1 - (ae-undocumented) Missing documentation for "FrontendFeature". ``` diff --git a/packages/frontend-test-utils/CHANGELOG.md b/packages/frontend-test-utils/CHANGELOG.md index 03adcdf5b3..17caaa8182 100644 --- a/packages/frontend-test-utils/CHANGELOG.md +++ b/packages/frontend-test-utils/CHANGELOG.md @@ -1,5 +1,45 @@ # @backstage/frontend-test-utils +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/frontend-app-api@0.10.1-next.0 + - @backstage/frontend-plugin-api@0.9.1-next.0 + - @backstage/test-utils@1.7.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.10 + - @backstage/plugin-app@0.1.2-next.0 + +## 0.2.1 + +### Patch Changes + +- 666d5b1: Disable the built-in `SignInPage` in `createExtensionTester` in order to not mess with existing tests +- e969dc7: Move `@types/react` to a peer dependency. +- 873e424: Internal refactor of usage of opaque types. +- 0801db6: Added an `ApiMock`, analogous to `ServiceMock` from the backend test utils. +- 9cc7dd6: Added a `mockApis` export, which will replace the `MockX` API implementation classes and their related types. This is analogous with the backend's `mockServices`. + + **DEPRECATED** several old helpers: + + - Deprecated `MockAnalyticsApi`, please use `mockApis.analytics` instead. + - Deprecated `MockConfigApi`, please use `mockApis.config` instead. + - Deprecated `MockPermissionApi`, please use `mockApis.permission` instead. + - Deprecated `MockStorageApi`, please use `mockApis.storage` instead. + - Deprecated `MockTranslationApi`, please use `mockApis.translation` instead. + +- Updated dependencies + - @backstage/frontend-plugin-api@0.9.0 + - @backstage/frontend-app-api@0.10.0 + - @backstage/version-bridge@1.0.10 + - @backstage/test-utils@1.7.0 + - @backstage/plugin-app@0.1.1 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + ## 0.2.1-next.2 ### Patch Changes diff --git a/packages/frontend-test-utils/package.json b/packages/frontend-test-utils/package.json index 6285a8b479..a782fe8bed 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.2.1-next.2", + "version": "0.2.2-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-test-utils/report.api.md b/packages/frontend-test-utils/report.api.md index dc37ec4fb4..1982315a35 100644 --- a/packages/frontend-test-utils/report.api.md +++ b/packages/frontend-test-utils/report.api.md @@ -146,20 +146,4 @@ export type TestAppOptions = { }; export { withLogCollector }; - -// Warnings were encountered during analysis: -// -// src/apis/AnalyticsApi/MockAnalyticsApi.d.ts:10:5 - (ae-undocumented) Missing documentation for "captureEvent". -// src/apis/AnalyticsApi/MockAnalyticsApi.d.ts:11:5 - (ae-undocumented) Missing documentation for "getEvents". -// src/app/createExtensionTester.d.ts:4:1 - (ae-undocumented) Missing documentation for "ExtensionQuery". -// src/app/createExtensionTester.d.ts:7:5 - (ae-undocumented) Missing documentation for "node". -// src/app/createExtensionTester.d.ts:8:5 - (ae-undocumented) Missing documentation for "instance". -// src/app/createExtensionTester.d.ts:9:5 - (ae-undocumented) Missing documentation for "get". -// src/app/createExtensionTester.d.ts:12:1 - (ae-undocumented) Missing documentation for "ExtensionTester". -// src/app/createExtensionTester.d.ts:14:5 - (ae-undocumented) Missing documentation for "add". -// src/app/createExtensionTester.d.ts:17:5 - (ae-undocumented) Missing documentation for "get". -// src/app/createExtensionTester.d.ts:18:5 - (ae-undocumented) Missing documentation for "query". -// src/app/createExtensionTester.d.ts:19:5 - (ae-undocumented) Missing documentation for "reactElement". -// src/app/createExtensionTester.d.ts:22:1 - (ae-undocumented) Missing documentation for "createExtensionTester". -// src/deprecated.d.ts:5:1 - (ae-undocumented) Missing documentation for "setupRequestMockHandlers". ``` diff --git a/packages/integration-aws-node/report.api.md b/packages/integration-aws-node/report.api.md index 80b1eee3ba..d9ed25e193 100644 --- a/packages/integration-aws-node/report.api.md +++ b/packages/integration-aws-node/report.api.md @@ -35,9 +35,5 @@ export class DefaultAwsCredentialsManager implements AwsCredentialsManager { ): Promise; } -// Warnings were encountered during analysis: -// -// src/DefaultAwsCredentialsManager.d.ts:12:5 - (ae-undocumented) Missing documentation for "fromConfig". - // (No @packageDocumentation comment for this package) ``` diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index 023ab6e3d0..2b686905ab 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/integration-react +## 1.2.0 + +### Minor Changes + +- a11495a: Added new ScmAuth method `forBitbucketServer` that uses correct OAuth scopes by default. Also updated `forBitbucket` method to allow overriding the default OAuth scopes. + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- 3dbac17: Revert of change #26430 +- Updated dependencies + - @backstage/core-plugin-api@1.10.0 + - @backstage/integration@1.15.1 + - @backstage/config@1.2.0 + ## 1.2.0-next.2 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 948186d962..c524d82d31 100644 --- a/packages/integration-react/package.json +++ b/packages/integration-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/integration-react", - "version": "1.2.0-next.2", + "version": "1.2.0", "description": "Frontend package for managing integrations towards external systems", "backstage": { "role": "web-library" diff --git a/packages/integration-react/src/api/ScmAuth.ts b/packages/integration-react/src/api/ScmAuth.ts index 1b68d56a6e..ff3e8c098d 100644 --- a/packages/integration-react/src/api/ScmAuth.ts +++ b/packages/integration-react/src/api/ScmAuth.ts @@ -258,7 +258,7 @@ export class ScmAuth implements ScmAuthApi { * * The default scopes are: * - * `PUBLIC_REPOS REPOS_READ` + * `PUBLIC_REPOS REPO_READ` * * If the additional `repoWrite` permission is requested, these scopes are added: * @@ -277,10 +277,7 @@ export class ScmAuth implements ScmAuthApi { return this.forBitbucket(bitbucketAuthApi, { host: options.host, scopeMapping: { - default: options.scopeMapping?.default ?? [ - 'PUBLIC_REPOS', - 'REPOS_READ', - ], + default: options.scopeMapping?.default ?? ['PUBLIC_REPOS', 'REPO_READ'], repoWrite: options.scopeMapping?.repoWrite ?? ['REPO_WRITE'], }, }); diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md index 3b9df29c4a..5b5165bd53 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/integration +## 1.15.1 + +### Patch Changes + +- 720a2f9: Updated dependency `git-url-parse` to `^15.0.0`. +- 920004b: Updating error message for getProjectId when fetching Gitlab project from its url to be more accurate +- 090e49a: Updated functions parseHarnessUrl, getHarnessLatestCommitUrl, getHarnessFileContentsUrl and getHarnessArchiveUrl to fix parsing of urls +- Updated dependencies + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 1.15.1-next.1 ### Patch Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index 35404beb35..d41ffa501d 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/integration", - "version": "1.15.1-next.1", + "version": "1.15.1", "description": "Helpers for managing integrations towards external systems", "backstage": { "role": "common-library" diff --git a/packages/integration/report.api.md b/packages/integration/report.api.md index e14a93b9a4..e9b67bb6c1 100644 --- a/packages/integration/report.api.md +++ b/packages/integration/report.api.md @@ -1027,127 +1027,4 @@ export class SingleInstanceGithubCredentialsProvider static create: (config: GithubIntegrationConfig) => GithubCredentialsProvider; getCredentials(opts: { url: string }): Promise; } - -// Warnings were encountered during analysis: -// -// src/ScmIntegrations.d.ts:21:5 - (ae-undocumented) Missing documentation for "awsS3". -// src/ScmIntegrations.d.ts:22:5 - (ae-undocumented) Missing documentation for "awsCodeCommit". -// src/ScmIntegrations.d.ts:23:5 - (ae-undocumented) Missing documentation for "azure". -// src/ScmIntegrations.d.ts:27:5 - (ae-undocumented) Missing documentation for "bitbucket". -// src/ScmIntegrations.d.ts:28:5 - (ae-undocumented) Missing documentation for "bitbucketCloud". -// src/ScmIntegrations.d.ts:29:5 - (ae-undocumented) Missing documentation for "bitbucketServer". -// src/ScmIntegrations.d.ts:30:5 - (ae-undocumented) Missing documentation for "gerrit". -// src/ScmIntegrations.d.ts:31:5 - (ae-undocumented) Missing documentation for "github". -// src/ScmIntegrations.d.ts:32:5 - (ae-undocumented) Missing documentation for "gitlab". -// src/ScmIntegrations.d.ts:33:5 - (ae-undocumented) Missing documentation for "gitea". -// src/ScmIntegrations.d.ts:34:5 - (ae-undocumented) Missing documentation for "harness". -// src/ScmIntegrations.d.ts:43:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/ScmIntegrations.d.ts:45:5 - (ae-undocumented) Missing documentation for "awsS3". -// src/ScmIntegrations.d.ts:46:5 - (ae-undocumented) Missing documentation for "awsCodeCommit". -// src/ScmIntegrations.d.ts:47:5 - (ae-undocumented) Missing documentation for "azure". -// src/ScmIntegrations.d.ts:51:5 - (ae-undocumented) Missing documentation for "bitbucket". -// src/ScmIntegrations.d.ts:52:5 - (ae-undocumented) Missing documentation for "bitbucketCloud". -// src/ScmIntegrations.d.ts:53:5 - (ae-undocumented) Missing documentation for "bitbucketServer". -// src/ScmIntegrations.d.ts:54:5 - (ae-undocumented) Missing documentation for "gerrit". -// src/ScmIntegrations.d.ts:55:5 - (ae-undocumented) Missing documentation for "github". -// src/ScmIntegrations.d.ts:56:5 - (ae-undocumented) Missing documentation for "gitlab". -// src/ScmIntegrations.d.ts:57:5 - (ae-undocumented) Missing documentation for "gitea". -// src/ScmIntegrations.d.ts:58:5 - (ae-undocumented) Missing documentation for "harness". -// src/ScmIntegrations.d.ts:59:5 - (ae-undocumented) Missing documentation for "list". -// src/ScmIntegrations.d.ts:60:5 - (ae-undocumented) Missing documentation for "byUrl". -// src/ScmIntegrations.d.ts:61:5 - (ae-undocumented) Missing documentation for "byHost". -// src/ScmIntegrations.d.ts:62:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/ScmIntegrations.d.ts:67:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/awsCodeCommit/AwsCodeCommitIntegration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/awsCodeCommit/AwsCodeCommitIntegration.d.ts:11:5 - (ae-undocumented) Missing documentation for "type". -// src/awsCodeCommit/AwsCodeCommitIntegration.d.ts:12:5 - (ae-undocumented) Missing documentation for "config". -// src/awsCodeCommit/AwsCodeCommitIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "title". -// src/awsCodeCommit/AwsCodeCommitIntegration.d.ts:15:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/awsCodeCommit/AwsCodeCommitIntegration.d.ts:20:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/awsS3/AwsS3Integration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/awsS3/AwsS3Integration.d.ts:11:5 - (ae-undocumented) Missing documentation for "type". -// src/awsS3/AwsS3Integration.d.ts:12:5 - (ae-undocumented) Missing documentation for "title". -// src/awsS3/AwsS3Integration.d.ts:13:5 - (ae-undocumented) Missing documentation for "config". -// src/awsS3/AwsS3Integration.d.ts:15:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/awsS3/AwsS3Integration.d.ts:20:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/azure/AzureIntegration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/azure/AzureIntegration.d.ts:12:5 - (ae-undocumented) Missing documentation for "type". -// src/azure/AzureIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "title". -// src/azure/AzureIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "config". -// src/azure/AzureIntegration.d.ts:15:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/azure/AzureIntegration.d.ts:20:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/azure/DefaultAzureDevOpsCredentialsProvider.d.ts:9:5 - (ae-undocumented) Missing documentation for "fromIntegrations". -// src/azure/DefaultAzureDevOpsCredentialsProvider.d.ts:14:5 - (ae-undocumented) Missing documentation for "getCredentials". -// src/azure/types.d.ts:25:5 - (ae-undocumented) Missing documentation for "getCredentials". -// src/bitbucket/BitbucketIntegration.d.ts:11:5 - (ae-undocumented) Missing documentation for "factory". -// src/bitbucket/BitbucketIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "type". -// src/bitbucket/BitbucketIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "title". -// src/bitbucket/BitbucketIntegration.d.ts:15:5 - (ae-undocumented) Missing documentation for "config". -// src/bitbucket/BitbucketIntegration.d.ts:16:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/bitbucket/BitbucketIntegration.d.ts:21:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/bitbucketCloud/BitbucketCloudIntegration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/bitbucketCloud/BitbucketCloudIntegration.d.ts:12:5 - (ae-undocumented) Missing documentation for "type". -// src/bitbucketCloud/BitbucketCloudIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "title". -// src/bitbucketCloud/BitbucketCloudIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "config". -// src/bitbucketCloud/BitbucketCloudIntegration.d.ts:15:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/bitbucketCloud/BitbucketCloudIntegration.d.ts:20:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/bitbucketServer/BitbucketServerIntegration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/bitbucketServer/BitbucketServerIntegration.d.ts:12:5 - (ae-undocumented) Missing documentation for "type". -// src/bitbucketServer/BitbucketServerIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "title". -// src/bitbucketServer/BitbucketServerIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "config". -// src/bitbucketServer/BitbucketServerIntegration.d.ts:15:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/bitbucketServer/BitbucketServerIntegration.d.ts:20:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/gerrit/GerritIntegration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/gerrit/GerritIntegration.d.ts:12:5 - (ae-undocumented) Missing documentation for "type". -// src/gerrit/GerritIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "title". -// src/gerrit/GerritIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "config". -// src/gerrit/GerritIntegration.d.ts:15:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/gerrit/GerritIntegration.d.ts:20:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/gitea/GiteaIntegration.d.ts:9:5 - (ae-undocumented) Missing documentation for "config". -// src/gitea/GiteaIntegration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/gitea/GiteaIntegration.d.ts:12:5 - (ae-undocumented) Missing documentation for "type". -// src/gitea/GiteaIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "title". -// src/gitea/GiteaIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/gitea/GiteaIntegration.d.ts:19:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/github/DefaultGithubCredentialsProvider.d.ts:13:5 - (ae-undocumented) Missing documentation for "fromIntegrations". -// src/github/GithubIntegration.d.ts:11:5 - (ae-undocumented) Missing documentation for "factory". -// src/github/GithubIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "type". -// src/github/GithubIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "title". -// src/github/GithubIntegration.d.ts:15:5 - (ae-undocumented) Missing documentation for "config". -// src/github/GithubIntegration.d.ts:16:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/github/GithubIntegration.d.ts:21:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/github/GithubIntegration.d.ts:22:5 - (ae-undocumented) Missing documentation for "parseRateLimitInfo". -// src/github/SingleInstanceGithubCredentialsProvider.d.ts:12:5 - (ae-undocumented) Missing documentation for "getAllInstallations". -// src/github/SingleInstanceGithubCredentialsProvider.d.ts:13:5 - (ae-undocumented) Missing documentation for "getAppToken". -// src/github/SingleInstanceGithubCredentialsProvider.d.ts:26:5 - (ae-undocumented) Missing documentation for "create". -// src/github/types.d.ts:26:5 - (ae-undocumented) Missing documentation for "getCredentials". -// src/gitlab/DefaultGitlabCredentialsProvider.d.ts:10:5 - (ae-undocumented) Missing documentation for "fromIntegrations". -// src/gitlab/DefaultGitlabCredentialsProvider.d.ts:12:5 - (ae-undocumented) Missing documentation for "getCredentials". -// src/gitlab/GitLabIntegration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/gitlab/GitLabIntegration.d.ts:12:5 - (ae-undocumented) Missing documentation for "type". -// src/gitlab/GitLabIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "title". -// src/gitlab/GitLabIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "config". -// src/gitlab/GitLabIntegration.d.ts:15:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/gitlab/GitLabIntegration.d.ts:20:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/gitlab/types.d.ts:4:1 - (ae-undocumented) Missing documentation for "GitlabCredentials". -// src/gitlab/types.d.ts:13:1 - (ae-undocumented) Missing documentation for "GitlabCredentialsProvider". -// src/gitlab/types.d.ts:14:5 - (ae-undocumented) Missing documentation for "getCredentials". -// src/harness/HarnessIntegration.d.ts:9:5 - (ae-undocumented) Missing documentation for "config". -// src/harness/HarnessIntegration.d.ts:10:5 - (ae-undocumented) Missing documentation for "factory". -// src/harness/HarnessIntegration.d.ts:12:5 - (ae-undocumented) Missing documentation for "type". -// src/harness/HarnessIntegration.d.ts:13:5 - (ae-undocumented) Missing documentation for "title". -// src/harness/HarnessIntegration.d.ts:14:5 - (ae-undocumented) Missing documentation for "resolveUrl". -// src/harness/HarnessIntegration.d.ts:19:5 - (ae-undocumented) Missing documentation for "resolveEditUrl". -// src/registry.d.ts:19:5 - (ae-undocumented) Missing documentation for "awsS3". -// src/registry.d.ts:20:5 - (ae-undocumented) Missing documentation for "awsCodeCommit". -// src/registry.d.ts:21:5 - (ae-undocumented) Missing documentation for "azure". -// src/registry.d.ts:25:5 - (ae-undocumented) Missing documentation for "bitbucket". -// src/registry.d.ts:26:5 - (ae-undocumented) Missing documentation for "bitbucketCloud". -// src/registry.d.ts:27:5 - (ae-undocumented) Missing documentation for "bitbucketServer". -// src/registry.d.ts:28:5 - (ae-undocumented) Missing documentation for "gerrit". -// src/registry.d.ts:29:5 - (ae-undocumented) Missing documentation for "github". -// src/registry.d.ts:30:5 - (ae-undocumented) Missing documentation for "gitlab". -// src/registry.d.ts:31:5 - (ae-undocumented) Missing documentation for "gitea". -// src/registry.d.ts:32:5 - (ae-undocumented) Missing documentation for "harness". -// src/types.d.ts:93:5 - (ae-undocumented) Missing documentation for "isRateLimited". ``` diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 2fa8871f69..aa5db78402 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,46 @@ # @backstage/repo-tools +## 0.11.0-next.0 + +### Minor Changes + +- 47fdbb4: Adds a `--watch` mode to the `schema openapi generate` command for a better local schema writing experience. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/cli-common@0.1.14 + - @backstage/cli-node@0.2.9 + - @backstage/config-loader@1.9.1 + - @backstage/errors@1.2.4 + +## 0.10.0 + +### Minor Changes + +- 30c2be9: Update @microsoft/api-extractor and use their api report resolution. + Change api report format from `api-report.md` to `report.api.md` +- 8eb3033: Adds a new command `backstage-repo-tools peer-deps` for validating your usage of peer dependencies in your plugins. It currently supports react related peer dependencies. It also has a `--fix` mode for quickly fixing any issues that it finds. + +### Patch Changes + +- 1f6706f: Properly log instructions when APIs do not match +- 35e735b: Fix issues with warnings in API reports not being checked or reported. + + Due to the recent version bump of API Extractor you may now see a lot of `ae-undocumented` warnings, + these can be ignored using the `-o` option, for example, `backstage-repo-tools api-reports -o ae-undocumented,ae-wrong-input-file-type`. + +- 248793e: Updated dependency `@useoptic/optic` to `^1.0.0`. +- Updated dependencies + - @backstage/cli-node@0.2.9 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/cli-common@0.1.14 + - @backstage/config-loader@1.9.1 + - @backstage/errors@1.2.4 + ## 0.10.0-next.2 ### Patch Changes diff --git a/packages/repo-tools/cli-report.md b/packages/repo-tools/cli-report.md index 9266957886..da483fe016 100644 --- a/packages/repo-tools/cli-report.md +++ b/packages/repo-tools/cli-report.md @@ -16,6 +16,7 @@ Commands: type-deps peer-deps [options] generate-catalog-info [options] + generate-patch [options] knip-reports [options] [paths...] package [command] repo [command] @@ -52,6 +53,20 @@ Options: -h, --help ``` +### `backstage-repo-tools generate-patch` + +``` +Usage: backstage-repo-tools generate-patch [options] + +Options: + --target + --registry-url + --base-version + --query + --skip-install + -h, --help +``` + ### `backstage-repo-tools knip-reports` ``` diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 7c907456ab..fc5df8b53d 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/repo-tools", - "version": "0.10.0-next.2", + "version": "0.11.0-next.0", "description": "CLI for Backstage repo tooling ", "backstage": { "role": "cli" @@ -62,6 +62,7 @@ "@stoplight/types": "^14.0.0", "@useoptic/openapi-utilities": "^0.55.0", "chalk": "^4.0.0", + "chokidar": "^3.5.3", "codeowners-utils": "^1.0.2", "command-exists": "^1.2.9", "commander": "^12.0.0", @@ -73,6 +74,7 @@ "minimatch": "^9.0.0", "p-limit": "^3.0.2", "portfinder": "^1.0.32", + "tar": "^6.1.12", "ts-morph": "^23.0.0", "yaml-diff-patch": "^2.0.0" }, @@ -81,7 +83,7 @@ "@backstage/cli": "workspace:^", "@backstage/types": "workspace:^", "@types/is-glob": "^4.0.2", - "@types/node": "^18.17.8", + "@types/node": "^20.16.0", "@types/prettier": "^2.0.0" }, "peerDependencies": { diff --git a/packages/repo-tools/src/commands/api-reports/api-extractor.ts b/packages/repo-tools/src/commands/api-reports/api-extractor.ts index 90c5c40fdd..c55410ce4a 100644 --- a/packages/repo-tools/src/commands/api-reports/api-extractor.ts +++ b/packages/repo-tools/src/commands/api-reports/api-extractor.ts @@ -376,6 +376,7 @@ export async function runApiExtraction({ logLevel: 'none', }; } + const warnings = new Array(); for (const [packageDir, packageEntryPoints] of Object.entries( @@ -406,7 +407,7 @@ export async function runApiExtraction({ const suffix = packageEntryPoint.name === 'index' ? '' : `-${packageEntryPoint.name}`; const reportFileName = `report${suffix}`; - const reportPath = resolvePath(projectFolder, reportFileName); + const reportPath = resolvePath(projectFolder, `${reportFileName}.api.md`); const warningCountBefore = await countApiReportWarnings(reportPath); @@ -602,6 +603,7 @@ export async function runApiExtraction({ } const warningCountAfter = await countApiReportWarnings(reportPath); + if (noBail) { console.log(`Skipping warnings check for ${packageDir}`); } diff --git a/packages/repo-tools/src/commands/generate-patch/generate-patch.ts b/packages/repo-tools/src/commands/generate-patch/generate-patch.ts new file mode 100644 index 0000000000..e5d9928cea --- /dev/null +++ b/packages/repo-tools/src/commands/generate-patch/generate-patch.ts @@ -0,0 +1,446 @@ +/* + * 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 { getPackages, Package, Packages } from '@manypkg/get-packages'; +import os from 'os'; +import fs from 'fs-extra'; +import { + relative as relativePath, + join as joinPath, + resolve as resolvePath, + posix, +} from 'path'; +import { exec } from '../../lib/exec'; +import { ForwardedError } from '@backstage/errors'; +import { Readable } from 'stream'; +import { finished } from 'stream/promises'; +import { ReadableStream } from 'stream/web'; +import tar from 'tar'; + +// TODO: add option for this +const DEFAULT_REGISTRY_URL = 'https://registry.npmjs.org'; + +const PATCH_GITIGNORE = [ + // Avoid generating patches for source maps + '*.map', + // Patching package.json has no effect, so exclude + 'package.json', + // No point patching docs + '/*.md', + '/docs', +]; + +// More predictable git behavior, see https://github.com/yarnpkg/berry/blob/f59bbf9f3828865c14b06a3e5cc3ae284a0db78d/packages/plugin-patch/sources/patchUtils.ts#L291 +const GIT_ENV = { + GIT_CONFIG_NOSYSTEM: '1', + HOME: '', + XDG_CONFIG_HOME: '', + USERPROFILE: '', +}; + +interface PatchContext { + sourceRepo: Packages; + targetRepo: Packages; + sourcePkg: Package; + packageName: string; + targetRoot: string; + workDir: string; + registryUrl: string; +} + +export default async ( + packageArg: string, + opts: { + target: string; + query?: string; + registryUrl?: string; + baseVersion?: string; + skipInstall?: boolean; + }, +) => { + const sourceRepo = await getPackages(process.cwd()); + const targetRepo = await getPackages(opts.target); + const registryUrl = opts.registryUrl || DEFAULT_REGISTRY_URL; + + if (targetRepo.tool !== 'yarn') { + throw new Error( + `Unable to generate patch for target repo, tool is not supported: ${targetRepo.tool}`, + ); + } + if (sourceRepo.root.dir === targetRepo.root.dir) { + throw new Error( + `Unexpected workspace roots, source and target repo are the same: ${sourceRepo.root.dir}`, + ); + } + + await verifyYarnVersion(sourceRepo.root.dir); + await verifyYarnVersion(targetRepo.root.dir); + + const sourcePkg = sourceRepo.packages.find( + pkg => + pkg.packageJson.name === packageArg || + relativePath(sourceRepo.root.dir, pkg.dir) === packageArg, + ); + if (!sourcePkg) { + throw new Error(`Could not find package ${packageArg} in source repo`); + } + + const tmpDir = await fs.mkdtemp(os.tmpdir()); + const ctx: PatchContext = { + sourceRepo, + targetRepo, + sourcePkg, + packageName: sourcePkg.packageJson.name, + targetRoot: targetRepo.root.dir, + registryUrl, + workDir: tmpDir, + }; + + // Create a new temporary directory where we put archives and generate patches + try { + const updateTargetRootPkg = await loadTrimmedRootPkg(ctx, opts.query); + + console.log( + `Building and packaging target package ${sourcePkg.packageJson.name}`, + ); + const targetArchive = await buildTargetArchive(ctx); + + console.log(`Generating patch from ${sourcePkg.packageJson.version}`); + const patchEntry = await generatePatch( + ctx, + targetArchive, + opts.baseVersion || sourcePkg.packageJson.version, + ); + + await updateTargetRootPkg(patchEntry); + + if (!opts.skipInstall) { + console.log("Running 'yarn install' in target workspace"); + await exec('yarn', ['install'], { + cwd: ctx.targetRoot, + }).catch(() => { + throw new Error( + "Failed to run 'yarn install' in target workspace, please run it manually to troubleshoot", + ); + }); + } else { + console.log("Skipped running 'yarn install'"); + } + } finally { + fs.rmSync(tmpDir, { force: true, recursive: true, maxRetries: 3 }); + } +}; + +// Load the root package.json from the target repo, and trim out any existing +// resolution entries and patches. The changes can be saved along with the new +// patch entry by calling the returned function. +async function loadTrimmedRootPkg(ctx: PatchContext, query?: string) { + const newPkgJson = JSON.parse( + JSON.stringify(ctx.targetRepo.root.packageJson), + ); + const resolutionsObj = + newPkgJson.resolutions || (newPkgJson.resolutions = {}); + + const searchEntry = query ? `${ctx.packageName}@${query}` : ctx.packageName; + + // Check if there is a resolution for all versions of the source package, in + // that case we just replace that, rather than patching each version + if (query || resolutionsObj[searchEntry]) { + const existingPatchFile = tryParsePatchResolution( + resolutionsObj[searchEntry], + ); + + if (existingPatchFile) { + await fs.rm(resolvePath(ctx.targetRoot, existingPatchFile), { + force: true, + }); + } + + return async (patchEntry?: string) => { + resolutionsObj[searchEntry] = patchEntry; + + await fs.writeJson( + resolvePath(ctx.targetRoot, 'package.json'), + newPkgJson, + { + spaces: 2, + }, + ); + }; + } + + const resolutionMap = await readResolutionMap(ctx); + + // Any existing resolution entries for the package are removed + const entriesToRemove = Object.entries(resolutionsObj).filter(([key]) => + key.startsWith(`${ctx.packageName}@`), + ) as Array<[string, string]>; + + for (const [key, value] of entriesToRemove) { + delete resolutionsObj[key]; + + // Existing patch files are also removed + const existingPatchFile = tryParsePatchResolution(value); + if (existingPatchFile) { + await fs.rm(resolvePath(ctx.targetRoot, existingPatchFile), { + force: true, + }); + } + } + + // This collects the list of version descriptors that we want to apply the patch to + const descriptors = new Array(); + for (const [descriptor, locator] of resolutionMap) { + // Skip virtual and other non-npm entries + if (!locator.includes('@npm:')) { + // We know that virtual entries are fine to skip, but want to warn if we skip others + if (!locator.includes('@virtual:')) { + console.warn(`Skipping resolution for ${descriptor}, no version found`); + } + continue; + } + + descriptors.push(descriptor); + } + + return async (patchEntry?: string) => { + for (const descriptor of descriptors) { + resolutionsObj[descriptor] = patchEntry; + } + // We use the same patch for all versions of the package, if they don't + // apply it might require manual intervention using the --query option + await fs.writeJson( + resolvePath(ctx.targetRoot, 'package.json'), + newPkgJson, + { + spaces: 2, + }, + ); + }; +} + +// Verify that a repo is using a supported Yarn version +async function verifyYarnVersion(cwd: string) { + const exists = await fs.pathExists(joinPath(cwd, '.yarnrc.yml')); + if (!exists) { + throw new Error( + `Missing .yarnrc.yml in ${cwd}, Yarn v1 (classic) is not support by this command`, + ); + } +} + +// Generate a new patch and return the path to the generated patch file. Will +// instead return undefined if the patch is empty. +async function generatePatch( + ctx: PatchContext, + targetArchive: string, + version: string, +): Promise { + const baseArchive = await downloadArchive(ctx, version); + const patch = await generatePatchForArchives(ctx, baseArchive, targetArchive); + if (!patch) { + console.warn(`Generated patch for ${ctx.packageName} is empty`); + return undefined; + } + const cleanPackageName = ctx.packageName.replace('/', '-'); + const describeResult = await exec( + 'git', + ['describe', '--always', '--dirty', "--exclude='*'"], + { + cwd: ctx.sourceRepo.root.dir, + env: { ...process.env, ...GIT_ENV }, + }, + ); + const describe = describeResult.stdout.toString('utf8').trim(); + const name = `${cleanPackageName}-${version}-${describe}.patch`; + const patchDir = joinPath(ctx.targetRepo.root.dir, '.yarn', 'patches'); + + await fs.ensureDir(patchDir); + await fs.writeFile(joinPath(patchDir, name), patch, 'utf8'); + + const locator = `${ctx.sourcePkg.packageJson.name}@npm:${version}`; + return `patch:${encodeURIComponent(locator)}#${posix.join( + '.', + '.yarn', + 'patches', + name, + )}`; +} + +// Check if an existing resolution entry is a patch, and in that case return the +// path to the patch file. +function tryParsePatchResolution(value?: string): string | undefined { + if (!value) { + return undefined; + } + if (!value.startsWith('patch:')) { + return undefined; + } + const patchFilePath = value.split('#')[1]; + return patchFilePath; +} + +// Read out the descriptors for all entries of the package in the target repo +async function readResolutionMap( + ctx: PatchContext, +): Promise> { + const { stdout: whyOutput } = await exec( + 'yarn', + ['why', '--json', ctx.packageName], + { + cwd: ctx.targetRoot, + maxBuffer: 64 * 1024 * 1024, + }, + ); + + const resolutionMap = new Map(); + + for (const line of whyOutput.toString('utf8').trim().split(/\r?\n/)) { + for (const { locator, descriptor } of Object.values( + JSON.parse(line).children, + ) as Array<{ locator: string; descriptor: string }>) { + const existing = resolutionMap.get(descriptor); + if (existing) { + if (existing !== locator) { + throw new Error( + `Conflicting resolutions in target package for ${descriptor}: ${existing} vs ${locator}`, + ); + } + } else { + resolutionMap.set(descriptor, locator); + } + } + } + + return resolutionMap; +} + +// Build and pack the source package to an archive in the work directory +async function buildTargetArchive(ctx: PatchContext): Promise { + await exec('yarn', ['build'], { + cwd: ctx.sourcePkg.dir, + }); + + const archiveName = 'target.tgz'; + + await exec('yarn', ['pack', '--out', joinPath(ctx.workDir, archiveName)], { + cwd: ctx.sourcePkg.dir, + }); + + return archiveName; +} + +// Downloads a tar archive for the source package at the specified version +async function downloadArchive( + ctx: PatchContext, + version: string, +): Promise { + const nameWithoutScope = ctx.packageName.replace(/^@.+\//, ''); + const tarName = `${nameWithoutScope}-${version}.tgz`; + + if (await fs.pathExists(joinPath(ctx.workDir, tarName))) { + return tarName; + } + + try { + const url = `${ctx.registryUrl}/${ctx.packageName}/-/${tarName}`; + const res = await fetch(url); + if (!res.ok) { + throw new Error( + `Request to ${url} failed with status ${res.status} ${res.statusText}`, + ); + } + if (!res.body) { + throw new Error('Missing response body'); + } + const write = fs.createWriteStream(joinPath(ctx.workDir, tarName)); + + await finished(Readable.fromWeb(res.body as ReadableStream).pipe(write)); + + return tarName; + } catch (error) { + throw new ForwardedError( + `Failed to fetch tarball for ${ctx.packageName}@${version}`, + error, + ); + } +} + +// Given two archives, generate a git diff patch for the differences between +async function generatePatchForArchives( + ctx: PatchContext, + baseArchive: string, + headArchive: string, +): Promise { + const basePath = joinPath(ctx.workDir, baseArchive); + const headPath = joinPath(ctx.workDir, headArchive); + + const patchDir = await fs.mkdtemp(joinPath(ctx.workDir, 'patch-')); + + // Extract base archive contents to use as base for patch + // Strip 1 level as the root of the archive is a package/ directory + await tar.extract({ file: basePath, cwd: patchDir, strip: 1 }); + + // Write .gitignore to avoid generating patches for certain files + await fs.writeFile( + joinPath(patchDir, '.gitignore'), + PATCH_GITIGNORE.join(os.EOL), + ); + + // Init git and populate index + await exec('git', ['init'], { + cwd: patchDir, + env: { ...process.env, ...GIT_ENV }, + }); + await exec('git', ['add', '.'], { + cwd: patchDir, + env: { ...process.env, ...GIT_ENV }, + }); + + // Remove all existing files + for (const path of await fs.readdir(patchDir)) { + if (path !== '.git' && path !== '.gitignore') { + await fs.rm(joinPath(patchDir, path), { + recursive: true, + maxRetries: 3, + force: true, + }); + } + } + + // Extract the target archive to use a target for the patch + await tar.extract({ file: headPath, cwd: patchDir, strip: 1 }); + + const { stdout: patch } = await exec( + 'git', + [ + '-c', + 'core.safecrlf=false', + 'diff', + '--src-prefix=a/', + '--dst-prefix=b/', + '--ignore-cr-at-eol', + '--full-index', + '--no-renames', + '--text', + ], + { + cwd: patchDir, + env: { ...process.env, ...GIT_ENV }, + }, + ); + return patch.toString('utf8'); +} diff --git a/packages/repo-tools/src/commands/index.ts b/packages/repo-tools/src/commands/index.ts index 5a69a74ff3..e3c4c9e41f 100644 --- a/packages/repo-tools/src/commands/index.ts +++ b/packages/repo-tools/src/commands/index.ts @@ -58,6 +58,8 @@ function registerPackageCommand(program: Command) { .description( 'Additional properties that can be passed to @openapitools/openapi-generator-cli', ) + .option('--watch') + .description('Watch the OpenAPI spec for changes and regenerate on save.') .action( lazy(() => import('./package/schema/openapi/generate').then(m => m.command), @@ -251,6 +253,37 @@ export function registerCommands(program: Command) { ), ); + program + .command('generate-patch ') + .requiredOption( + '--target ', + 'The target repository to generate patches for', + ) + .option( + '--registry-url ', + 'The registry to use for downloading artifacts (default: https://registry.npmjs.org)', + ) + .option( + '--base-version ', + 'Override the base version to generate the patch towards instead', + ) + .option( + '--query ', + 'Only apply the patch for a specific version query in the target repository', + ) + .option( + '--skip-install', + 'Skip dependency installation in the target repository after applying the patch', + ) + .description( + 'Generate a patch for the selected package in the target repository', + ) + .action( + lazy(() => + import('./generate-patch/generate-patch').then(m => m.default), + ), + ); + program .command('knip-reports [paths...]') .option('--ci', 'CI run checks that there is no changes on knip reports') diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts index b843cd27ec..742f303f51 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts @@ -30,6 +30,7 @@ import { getPathToCurrentOpenApiSpec } from '../../../../../lib/openapi/helpers' async function generate( outputDirectory: string, clientAdditionalProperties?: string, + abortSignal?: AbortController, ) { const resolvedOpenapiPath = await getPathToCurrentOpenApiSpec(); const resolvedOutputDirectory = cliPaths.resolveTargetRoot( @@ -69,6 +70,7 @@ async function generate( additionalProperties, ], { + signal: abortSignal?.signal, maxBuffer: Number.MAX_VALUE, cwd: resolvePackagePath('@backstage/repo-tools'), env: { @@ -79,11 +81,15 @@ async function generate( await exec( `yarn backstage-cli package lint --fix ${resolvedOutputDirectory}`, + [], + { signal: abortSignal?.signal }, ); const prettier = cliPaths.resolveTargetRoot('node_modules/.bin/prettier'); if (prettier) { - await exec(`${prettier} --write ${resolvedOutputDirectory}`); + await exec(`${prettier} --write ${resolvedOutputDirectory}`, [], { + signal: abortSignal?.signal, + }); } fs.removeSync(resolve(resolvedOutputDirectory, '.openapi-generator-ignore')); @@ -97,17 +103,29 @@ async function generate( export async function command( outputPackage: string, clientAdditionalProperties?: string, + { + abortSignal, + isWatch = false, + }: { abortSignal?: AbortController; isWatch?: boolean } = {}, ): Promise { try { - await generate(outputPackage, clientAdditionalProperties); + await generate(outputPackage, clientAdditionalProperties, abortSignal); console.log( chalk.green(`Generated client in ${outputPackage}/${OUTPUT_PATH}`), ); } catch (err) { - console.log(); - console.log(chalk.red(`Client generation failed:`)); - console.log(err); - - process.exit(1); + if (err.name === 'AbortError') { + console.debug('Server generation aborted.'); + return; + } + if (isWatch) { + console.log(chalk.red(`Client generation failed:`)); + console.group(); + console.log(chalk.red(err.message)); + console.groupEnd(); + } else { + console.log(chalk.red(`Client generation failed.`)); + console.log(chalk.red(err.message)); + } } } diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/index.test.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/index.test.ts new file mode 100644 index 0000000000..73d26924be --- /dev/null +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/index.test.ts @@ -0,0 +1,106 @@ +/* + * 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 { createMockDirectory } from '@backstage/backend-test-utils'; +import path from 'path'; + +jest.mock( + 'lodash', + () => + ({ + ...jest.requireActual('lodash'), + debounce: (fn: any) => fn, + } as any as typeof import('lodash')), +); + +describe('generateOpenApiSchema', () => { + const inputDir = createMockDirectory(); + const outputDir = createMockDirectory(); + + beforeEach(() => { + inputDir.clear(); + outputDir.clear(); + + inputDir.addContent({ + 'openapi.yaml': ` + openapi: 3.0.0 + info: + title: Test API + version: 1.0.0 + paths: + /test: + get: + responses: + '200': + description: OK + `, + }); + jest.mock('../../../../../lib/openapi/helpers', () => ({ + getPathToCurrentOpenApiSpec: jest.fn(() => + Promise.resolve(path.join(inputDir.path, 'openapi.yaml')), + ), + loadAndValidateOpenApiYaml: jest.fn(), + })); + }); + it('should handle watch mode', async () => { + const generateClientMock = jest.fn(); + const generateServerMock = jest.fn(); + jest.doMock('./client', () => ({ command: generateClientMock })); + jest.doMock('./server', () => ({ command: generateServerMock })); + + const mockWatch = jest.fn(); + jest.mock('chokidar', () => ({ + watch: mockWatch, + })); + let resolve: (val?: any) => void; + const block = () => + new Promise(res => { + resolve = res; + }); + jest.mock('../../../../../lib/runner', () => ({ + block, + })); + + const mockOn: Record = {}; + mockWatch.mockReturnValue({ + on: jest.fn((event, cb) => { + console.log(event); + mockOn[event] = cb; + }), + } as any); + + const { command } = await import('./index'); + + const actions = async () => { + while (!mockOn.ready) { + // Wait for the watcher to be registered + await new Promise(r => setTimeout(r, 100)); + } + + expect(generateClientMock).toHaveBeenCalledTimes(1); + mockOn.change(); + // Wait for the debounce to finish with the initial load. + await new Promise(r => setTimeout(r, 500)); + expect(generateClientMock).toHaveBeenCalledTimes(2); + resolve(); + }; + + await Promise.all([ + actions(), + command({ watch: true, clientPackage: 'test123' }), + ]); + }); +}); diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts index 41884e2e90..1c9fd586fb 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts @@ -17,6 +17,13 @@ import chalk from 'chalk'; import { OptionValues } from 'commander'; import { command as generateClient } from './client'; import { command as generateServer } from './server'; +import chokidar from 'chokidar'; +import { + getPathToCurrentOpenApiSpec, + loadAndValidateOpenApiYaml, +} from '../../../../../lib/openapi/helpers'; +import { debounce } from 'lodash'; +import { block } from '../../../../../lib/runner'; export async function command(opts: OptionValues) { if (!opts.clientPackage && !opts.server) { @@ -25,10 +32,70 @@ export async function command(opts: OptionValues) { ); process.exit(1); } - if (opts.clientPackage) { - await generateClient(opts.clientPackage, opts.clientAdditionalProperties); - } - if (opts.server) { - await generateServer(); + + const sharedCommand = async (abortSignal?: AbortController) => { + const resolvedOpenapiPath = await getPathToCurrentOpenApiSpec(); + await loadAndValidateOpenApiYaml(resolvedOpenapiPath); + const promises = []; + const options = { + isWatch: opts.watch, + abortSignal, + }; + if (opts.clientPackage) { + promises.push( + generateClient( + opts.clientPackage, + opts.clientAdditionalProperties, + options, + ), + ); + } + if (opts.server) { + promises.push(generateServer(options)); + } + await Promise.all(promises); + }; + + if (opts.watch) { + try { + const resolvedOpenapiPath = await getPathToCurrentOpenApiSpec(); + let abortController = new AbortController(); + const watcher = chokidar.watch(resolvedOpenapiPath); + + // The generate command currently takes ~8 seconds to run, so let's debounce calling it so we don't have to cancel it so much. + const debouncedCommand = debounce(() => { + console.log('Detected changes! Regenerating...'); + abortController.abort(); + abortController = new AbortController(); + sharedCommand(abortController).catch(err => { + console.error(chalk.red('Error: ', err)); + }); + }, 500); + + watcher.on('change', () => { + debouncedCommand(); + }); + watcher.on('error', error => { + console.error('Error happened', error); + }); + + watcher.on('ready', async () => { + console.log( + 'Watching for changes in OpenAPI spec. Press Ctrl+C to stop.', + ); + }); + + debouncedCommand(); + await block(); + } catch (err) { + console.error(chalk.red('Error: ', err)); + process.exit(1); + } + } else { + try { + await sharedCommand(); + } catch (err) { + process.exit(1); + } } } diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/server.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/server.ts index e6c56c3122..1ef6fd10d2 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/server.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/server.ts @@ -25,7 +25,7 @@ import { getPathToCurrentOpenApiSpec } from '../../../../../lib/openapi/helpers' const exec = promisify(execCb); -async function generate() { +async function generate(abortSignal?: AbortController) { const openapiPath = await getPathToCurrentOpenApiSpec(); const yaml = YAML.load(await fs.readFile(openapiPath, 'utf8')); @@ -50,21 +50,40 @@ export const createOpenApiRouter = async ( `, ); - await exec(`yarn backstage-cli package lint --fix ${tsPath}`); + await exec(`yarn backstage-cli package lint --fix ${tsPath}`, { + signal: abortSignal?.signal, + }); if (await cliPaths.resolveTargetRoot('node_modules/.bin/prettier')) { await exec(`yarn prettier --write ${tsPath}`, { cwd: cliPaths.targetRoot, + signal: abortSignal?.signal, }); } } -export async function command(): Promise { +export async function command({ + abortSignal, + isWatch = false, +}: { + abortSignal?: AbortController; + isWatch?: boolean; +}): Promise { try { - await generate(); - console.log(chalk.green('Generated all files.')); + await generate(abortSignal); + console.log(chalk.green('Generated server files.')); } catch (err) { - console.log(chalk.red(`OpenAPI server stub generation failed.`)); - console.log(err.message); - process.exit(1); + if (err.name === 'AbortError') { + console.debug('Server generation aborted.'); + return; + } + if (isWatch) { + console.log(chalk.red(`Server generation failed:`)); + console.group(); + console.log(chalk.red(err.message)); + console.groupEnd(); + } else { + console.log(chalk.red(err.message)); + console.log(chalk.red(`OpenAPI server stub generation failed.`)); + } } } diff --git a/packages/repo-tools/src/commands/repo/schema/openapi/verify.ts b/packages/repo-tools/src/commands/repo/schema/openapi/verify.ts index 23e07d1230..35dd3e1702 100644 --- a/packages/repo-tools/src/commands/repo/schema/openapi/verify.ts +++ b/packages/repo-tools/src/commands/repo/schema/openapi/verify.ts @@ -15,12 +15,10 @@ */ import fs from 'fs-extra'; -import YAML from 'js-yaml'; -import { isEqual, cloneDeep } from 'lodash'; +import { isEqual } from 'lodash'; import { join } from 'path'; import chalk from 'chalk'; import { relative as relativePath, resolve as resolvePath } from 'path'; -import Parser from '@apidevtools/swagger-parser'; import { runner } from '../../../../lib/runner'; import { paths as cliPaths } from '../../../../lib/paths'; import { @@ -28,7 +26,10 @@ import { TS_SCHEMA_PATH, YAML_SCHEMA_PATH, } from '../../../../lib/openapi/constants'; -import { getPathToOpenApiSpec } from '../../../../lib/openapi/helpers'; +import { + getPathToOpenApiSpec, + loadAndValidateOpenApiYaml, +} from '../../../../lib/openapi/helpers'; async function verify(directoryPath: string) { let openapiPath = ''; @@ -38,8 +39,7 @@ async function verify(directoryPath: string) { // Unable to find spec at path. return; } - const yaml = YAML.load(await fs.readFile(openapiPath, 'utf8')); - await Parser.validate(cloneDeep(yaml) as any); + const yaml = await loadAndValidateOpenApiYaml(openapiPath); const schemaPath = join(directoryPath, TS_SCHEMA_PATH); if (!(await fs.pathExists(schemaPath))) { diff --git a/packages/repo-tools/src/lib/openapi/helpers.ts b/packages/repo-tools/src/lib/openapi/helpers.ts index f7e684a407..2359a1bbb0 100644 --- a/packages/repo-tools/src/lib/openapi/helpers.ts +++ b/packages/repo-tools/src/lib/openapi/helpers.ts @@ -18,6 +18,10 @@ import { pathExists } from 'fs-extra'; import { paths } from '../paths'; import { YAML_SCHEMA_PATH } from './constants'; import { resolve } from 'path'; +import YAML from 'js-yaml'; +import { cloneDeep } from 'lodash'; +import Parser from '@apidevtools/swagger-parser'; +import fs from 'fs-extra'; export const getPathToFile = async (directory: string, filename: string) => { return resolve(directory, filename); @@ -41,3 +45,9 @@ export const getPathToOpenApiSpec = async (directory: string) => { export const getPathToCurrentOpenApiSpec = async () => { return await assertExists(await getRelativePathToFile(YAML_SCHEMA_PATH)); }; + +export async function loadAndValidateOpenApiYaml(path: string) { + const yaml = YAML.load(await fs.readFile(path, 'utf8')); + await Parser.validate(cloneDeep(yaml) as any); + return yaml; +} diff --git a/packages/repo-tools/src/lib/runner.ts b/packages/repo-tools/src/lib/runner.ts index ea7b511938..8389caa63a 100644 --- a/packages/repo-tools/src/lib/runner.ts +++ b/packages/repo-tools/src/lib/runner.ts @@ -67,3 +67,7 @@ export async function runner( return resultsList; } + +export async function block() { + return new Promise(() => {}); +} diff --git a/packages/scaffolder-internal/CHANGELOG.md b/packages/scaffolder-internal/CHANGELOG.md index 6cf47d5ce2..13ba983c6a 100644 --- a/packages/scaffolder-internal/CHANGELOG.md +++ b/packages/scaffolder-internal/CHANGELOG.md @@ -1,5 +1,19 @@ # @internal/scaffolder +## 0.0.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-react@1.13.2-next.0 + +## 0.0.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-react@1.13.0 + ## 0.0.2-next.2 ### Patch Changes diff --git a/packages/scaffolder-internal/package.json b/packages/scaffolder-internal/package.json index f5c566ce02..26e822170f 100644 --- a/packages/scaffolder-internal/package.json +++ b/packages/scaffolder-internal/package.json @@ -1,6 +1,6 @@ { "name": "@internal/scaffolder", - "version": "0.0.2-next.2", + "version": "0.0.3-next.0", "backstage": { "role": "web-library", "inline": true diff --git a/packages/techdocs-cli-embedded-app/.eslintrc.js b/packages/techdocs-cli-embedded-app/.eslintrc.js index e2a53a6ad2..e487f765b2 100644 --- a/packages/techdocs-cli-embedded-app/.eslintrc.js +++ b/packages/techdocs-cli-embedded-app/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index d87871ad07..262c71f395 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,43 @@ # techdocs-cli-embedded-app +## 0.2.102-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.29.0-next.0 + - @backstage/plugin-techdocs@1.11.1-next.0 + - @backstage/core-components@0.16.0-next.0 + - @backstage/plugin-techdocs-react@1.2.10-next.0 + - @backstage/app-defaults@1.5.13-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.15.1 + - @backstage/core-plugin-api@1.10.0 + - @backstage/integration-react@1.2.0 + - @backstage/test-utils@1.7.0 + - @backstage/theme@0.6.0 + - @backstage/plugin-catalog@1.24.1-next.0 + +## 0.2.101 + +### Patch Changes + +- Updated dependencies + - @backstage/cli@0.28.0 + - @backstage/core-components@0.15.1 + - @backstage/plugin-catalog@1.24.0 + - @backstage/integration-react@1.2.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/plugin-techdocs-react@1.2.9 + - @backstage/app-defaults@1.5.12 + - @backstage/core-app-api@1.15.1 + - @backstage/test-utils@1.7.0 + - @backstage/plugin-techdocs@1.11.0 + - @backstage/theme@0.6.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + ## 0.2.101-next.2 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 16dbf42b01..9475f83427 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.101-next.2", + "version": "0.2.102-next.0", "backstage": { "role": "frontend" }, diff --git a/packages/techdocs-cli-embedded-app/src/components/Root/LogoFull.tsx b/packages/techdocs-cli-embedded-app/src/components/Root/LogoFull.tsx index c7b1c846c4..da6911bb17 100644 --- a/packages/techdocs-cli-embedded-app/src/components/Root/LogoFull.tsx +++ b/packages/techdocs-cli-embedded-app/src/components/Root/LogoFull.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { makeStyles } from '@material-ui/core'; +import { makeStyles } from '@material-ui/core/styles'; const useStyles = makeStyles({ svg: { diff --git a/packages/techdocs-cli-embedded-app/src/components/Root/LogoIcon.tsx b/packages/techdocs-cli-embedded-app/src/components/Root/LogoIcon.tsx index 073cf6edad..ff4b5132b0 100644 --- a/packages/techdocs-cli-embedded-app/src/components/Root/LogoIcon.tsx +++ b/packages/techdocs-cli-embedded-app/src/components/Root/LogoIcon.tsx @@ -15,7 +15,7 @@ */ import React from 'react'; -import { makeStyles } from '@material-ui/core'; +import { makeStyles } from '@material-ui/core/styles'; const useStyles = makeStyles({ svg: { diff --git a/packages/techdocs-cli-embedded-app/src/components/Root/Root.tsx b/packages/techdocs-cli-embedded-app/src/components/Root/Root.tsx index 81e3d12d9d..b2fac4081f 100644 --- a/packages/techdocs-cli-embedded-app/src/components/Root/Root.tsx +++ b/packages/techdocs-cli-embedded-app/src/components/Root/Root.tsx @@ -16,7 +16,7 @@ import React, { PropsWithChildren } from 'react'; -import { makeStyles } from '@material-ui/core'; +import { makeStyles } from '@material-ui/core/styles'; import LibraryBooks from '@material-ui/icons/LibraryBooks'; import LogoFull from './LogoFull'; import LogoIcon from './LogoIcon'; diff --git a/packages/techdocs-cli-embedded-app/src/components/TechDocsPage/TechDocsPage.tsx b/packages/techdocs-cli-embedded-app/src/components/TechDocsPage/TechDocsPage.tsx index cc20081198..5dc635e023 100644 --- a/packages/techdocs-cli-embedded-app/src/components/TechDocsPage/TechDocsPage.tsx +++ b/packages/techdocs-cli-embedded-app/src/components/TechDocsPage/TechDocsPage.tsx @@ -16,9 +16,12 @@ import React, { useState } from 'react'; -import { Theme, makeStyles } from '@material-ui/core'; +import { makeStyles } from '@material-ui/core/styles'; +import { Theme } from '@material-ui/core/styles/createTheme'; -import { Box, Tooltip, IconButton } from '@material-ui/core'; +import Box from '@material-ui/core/Box'; +import Tooltip from '@material-ui/core/Tooltip'; +import IconButton from '@material-ui/core/IconButton'; import LightIcon from '@material-ui/icons/Brightness7'; import DarkIcon from '@material-ui/icons/Brightness4'; diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index db4eb65f09..b1e8de5f49 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,27 @@ # @techdocs/cli +## 1.8.22-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-defaults@0.5.3-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/cli-common@0.1.14 + - @backstage/config@1.2.0 + - @backstage/plugin-techdocs-node@1.12.13-next.0 + +## 1.8.20 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-defaults@0.5.1 + - @backstage/plugin-techdocs-node@1.12.12 + - @backstage/catalog-model@1.7.0 + - @backstage/cli-common@0.1.14 + - @backstage/config@1.2.0 + ## 1.8.20-next.2 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 53de9c86ba..188d78bac5 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,6 +1,6 @@ { "name": "@techdocs/cli", - "version": "1.8.20-next.2", + "version": "1.8.22-next.0", "description": "Utility CLI for managing TechDocs sites in Backstage.", "backstage": { "role": "cli" @@ -62,7 +62,7 @@ "@types/commander": "^2.12.2", "@types/fs-extra": "^11.0.0", "@types/http-proxy": "^1.17.4", - "@types/node": "^18.17.8", + "@types/node": "^20.16.0", "@types/serve-handler": "^6.1.0", "@types/webpack-env": "^1.15.3", "find-process": "^1.4.5", diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index fe38a2a0a6..64816e59a6 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/test-utils +## 1.7.0 + +### Minor Changes + +- 9cc7dd6: Added a `mockApis` export, which will replace the `MockX` API implementation classes and their related types. This is analogous with the backend's `mockServices`. + + **DEPRECATED** several old helpers: + + - Deprecated `MockAnalyticsApi`, please use `mockApis.analytics` instead. + - Deprecated `MockConfigApi`, please use `mockApis.config` instead. + - Deprecated `MockPermissionApi`, please use `mockApis.permission` instead. + - Deprecated `MockStorageApi`, please use `mockApis.storage` instead. + - Deprecated `MockTranslationApi`, please use `mockApis.translation` instead. + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- Updated dependencies + - @backstage/core-plugin-api@1.10.0 + - @backstage/plugin-permission-react@0.4.27 + - @backstage/core-app-api@1.15.1 + - @backstage/theme@0.6.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.8.1 + ## 1.6.1-next.2 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 5fa0a19adb..4a478aada8 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/test-utils", - "version": "1.6.1-next.2", + "version": "1.7.0", "description": "Utilities to test Backstage plugins and apps.", "backstage": { "role": "web-library" diff --git a/packages/test-utils/report-alpha.api.md b/packages/test-utils/report-alpha.api.md index 19a3786fc9..0c0186a8af 100644 --- a/packages/test-utils/report-alpha.api.md +++ b/packages/test-utils/report-alpha.api.md @@ -28,12 +28,5 @@ export class MockTranslationApi implements TranslationApi { >(): Observable>; } -// Warnings were encountered during analysis: -// -// src/testUtils/apis/TranslationApi/MockTranslationApi.d.ts:7:1 - (ae-undocumented) Missing documentation for "MockTranslationApi". -// src/testUtils/apis/TranslationApi/MockTranslationApi.d.ts:9:5 - (ae-undocumented) Missing documentation for "create". -// src/testUtils/apis/TranslationApi/MockTranslationApi.d.ts:11:5 - (ae-undocumented) Missing documentation for "getTranslation". -// src/testUtils/apis/TranslationApi/MockTranslationApi.d.ts:14:5 - (ae-undocumented) Missing documentation for "translation$". - // (No @packageDocumentation comment for this package) ``` diff --git a/packages/test-utils/report.api.md b/packages/test-utils/report.api.md index 11657ce534..126b7236b3 100644 --- a/packages/test-utils/report.api.md +++ b/packages/test-utils/report.api.md @@ -403,33 +403,4 @@ export function wrapInTestApp( Component: ComponentType | ReactNode, options?: TestAppOptions, ): ReactElement; - -// Warnings were encountered during analysis: -// -// src/deprecated.d.ts:5:1 - (ae-undocumented) Missing documentation for "setupRequestMockHandlers". -// src/testUtils/apis/AnalyticsApi/MockAnalyticsApi.d.ts:11:5 - (ae-undocumented) Missing documentation for "captureEvent". -// src/testUtils/apis/AnalyticsApi/MockAnalyticsApi.d.ts:12:5 - (ae-undocumented) Missing documentation for "getEvents". -// src/testUtils/apis/ErrorApi/MockErrorApi.d.ts:28:5 - (ae-undocumented) Missing documentation for "post". -// src/testUtils/apis/ErrorApi/MockErrorApi.d.ts:29:5 - (ae-undocumented) Missing documentation for "error$". -// src/testUtils/apis/ErrorApi/MockErrorApi.d.ts:33:5 - (ae-undocumented) Missing documentation for "getErrors". -// src/testUtils/apis/ErrorApi/MockErrorApi.d.ts:34:5 - (ae-undocumented) Missing documentation for "waitForError". -// src/testUtils/apis/PermissionApi/MockPermissionApi.d.ts:14:5 - (ae-undocumented) Missing documentation for "authorize". -// src/testUtils/apis/StorageApi/MockStorageApi.d.ts:21:5 - (ae-undocumented) Missing documentation for "create". -// src/testUtils/apis/StorageApi/MockStorageApi.d.ts:22:5 - (ae-undocumented) Missing documentation for "forBucket". -// src/testUtils/apis/StorageApi/MockStorageApi.d.ts:23:5 - (ae-undocumented) Missing documentation for "snapshot". -// src/testUtils/apis/StorageApi/MockStorageApi.d.ts:24:5 - (ae-undocumented) Missing documentation for "set". -// src/testUtils/apis/StorageApi/MockStorageApi.d.ts:25:5 - (ae-undocumented) Missing documentation for "remove". -// src/testUtils/apis/StorageApi/MockStorageApi.d.ts:26:5 - (ae-undocumented) Missing documentation for "observe$". -// src/testUtils/apis/mockApis.d.ts:58:15 - (ae-undocumented) Missing documentation for "factory". -// src/testUtils/apis/mockApis.d.ts:59:15 - (ae-undocumented) Missing documentation for "mock". -// src/testUtils/apis/mockApis.d.ts:125:15 - (ae-undocumented) Missing documentation for "factory". -// src/testUtils/apis/mockApis.d.ts:128:15 - (ae-undocumented) Missing documentation for "mock". -// src/testUtils/apis/mockApis.d.ts:150:15 - (ae-undocumented) Missing documentation for "factory". -// src/testUtils/apis/mockApis.d.ts:158:15 - (ae-undocumented) Missing documentation for "mock". -// src/testUtils/apis/mockApis.d.ts:177:15 - (ae-undocumented) Missing documentation for "factory". -// src/testUtils/apis/mockApis.d.ts:180:15 - (ae-undocumented) Missing documentation for "mock". -// src/testUtils/apis/mockApis.d.ts:197:15 - (ae-undocumented) Missing documentation for "factory". -// src/testUtils/apis/mockApis.d.ts:200:15 - (ae-undocumented) Missing documentation for "mock". -// src/testUtils/apis/mockApis.d.ts:215:15 - (ae-undocumented) Missing documentation for "factory". -// src/testUtils/apis/mockApis.d.ts:216:15 - (ae-undocumented) Missing documentation for "mock". ``` diff --git a/packages/theme/.eslintrc.js b/packages/theme/.eslintrc.js index e2a53a6ad2..e487f765b2 100644 --- a/packages/theme/.eslintrc.js +++ b/packages/theme/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/theme/CHANGELOG.md b/packages/theme/CHANGELOG.md index b756ddc252..fcdb81d7df 100644 --- a/packages/theme/CHANGELOG.md +++ b/packages/theme/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/theme +## 0.6.0 + +### Minor Changes + +- e77ff3d: Adds support for custom background colors in code blocks and inline code within TechDocs. + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. + ## 0.6.0-next.1 ### Minor Changes diff --git a/packages/theme/package.json b/packages/theme/package.json index 5503eb54a8..d5859b64b7 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/theme", - "version": "0.6.0-next.1", + "version": "0.6.0", "description": "material-ui theme for use with Backstage.", "backstage": { "role": "web-library" diff --git a/packages/theme/report.api.md b/packages/theme/report.api.md index faec0b8456..ebdae12a05 100644 --- a/packages/theme/report.api.md +++ b/packages/theme/report.api.md @@ -12,9 +12,10 @@ import { ReactNode } from 'react'; import { Theme } from '@mui/material/styles'; import { Theme as Theme_2 } from '@material-ui/core/styles'; import { Theme as Theme_3 } from '@material-ui/core'; +import type { Theme as Theme_4 } from '@material-ui/core/styles/createTheme'; import { ThemeOptions } from '@mui/material/styles'; import { ThemeOptions as ThemeOptions_2 } from '@material-ui/core/styles'; -import type { ThemeOptions as ThemeOptions_3 } from '@material-ui/core'; +import type { ThemeOptions as ThemeOptions_3 } from '@material-ui/core/styles/createTheme'; import { UnifiedTheme as UnifiedTheme_2 } from '@backstage/theme'; // @public @deprecated @@ -91,7 +92,7 @@ export type BackstagePaletteOptions = PaletteOptions & BackstagePaletteAdditions; // @public @deprecated -export interface BackstageTheme extends Theme_3 { +export interface BackstageTheme extends Theme_4 { // (undocumented) getPageTheme: (selector: PageThemeSelector) => PageTheme; // (undocumented) @@ -188,13 +189,13 @@ export function createBaseThemeOptions( }; // @public @deprecated -export function createTheme(options: SimpleThemeOptions): Theme_3; +export function createTheme(options: SimpleThemeOptions): Theme_4; // @public @deprecated export function createThemeOptions(options: SimpleThemeOptions): ThemeOptions_3; // @public @deprecated -export function createThemeOverrides(theme: Theme_3): Overrides; +export function createThemeOverrides(theme: Theme_4): Overrides; // @public export function createUnifiedTheme(options: UnifiedThemeOptions): UnifiedTheme; @@ -462,30 +463,4 @@ export interface UnifiedThemeProviderProps { // (undocumented) theme: UnifiedTheme; } - -// Warnings were encountered during analysis: -// -// src/base/createBaseThemeOptions.d.ts:14:5 - (ae-undocumented) Missing documentation for "palette". -// src/base/createBaseThemeOptions.d.ts:15:5 - (ae-undocumented) Missing documentation for "defaultPageTheme". -// src/base/createBaseThemeOptions.d.ts:16:5 - (ae-undocumented) Missing documentation for "pageTheme". -// src/base/createBaseThemeOptions.d.ts:17:5 - (ae-undocumented) Missing documentation for "fontFamily". -// src/base/createBaseThemeOptions.d.ts:18:5 - (ae-undocumented) Missing documentation for "htmlFontSize". -// src/base/createBaseThemeOptions.d.ts:19:5 - (ae-undocumented) Missing documentation for "typography". -// src/unified/UnifiedTheme.d.ts:17:5 - (ae-undocumented) Missing documentation for "palette". -// src/unified/UnifiedTheme.d.ts:18:5 - (ae-undocumented) Missing documentation for "defaultPageTheme". -// src/unified/UnifiedTheme.d.ts:19:5 - (ae-undocumented) Missing documentation for "pageTheme". -// src/unified/UnifiedTheme.d.ts:20:5 - (ae-undocumented) Missing documentation for "fontFamily". -// src/unified/UnifiedTheme.d.ts:21:5 - (ae-undocumented) Missing documentation for "htmlFontSize". -// src/unified/UnifiedTheme.d.ts:22:5 - (ae-undocumented) Missing documentation for "components". -// src/unified/UnifiedTheme.d.ts:23:5 - (ae-undocumented) Missing documentation for "typography". -// src/unified/UnifiedThemeProvider.d.ts:9:5 - (ae-undocumented) Missing documentation for "children". -// src/unified/UnifiedThemeProvider.d.ts:10:5 - (ae-undocumented) Missing documentation for "theme". -// src/unified/UnifiedThemeProvider.d.ts:11:5 - (ae-undocumented) Missing documentation for "noCssBaseline". -// src/unified/types.d.ts:25:5 - (ae-undocumented) Missing documentation for "getTheme". -// src/v4/types.d.ts:31:5 - (ae-undocumented) Missing documentation for "palette". -// src/v4/types.d.ts:32:5 - (ae-undocumented) Missing documentation for "page". -// src/v4/types.d.ts:33:5 - (ae-undocumented) Missing documentation for "getPageTheme". -// src/v4/types.d.ts:42:5 - (ae-undocumented) Missing documentation for "palette". -// src/v4/types.d.ts:43:5 - (ae-undocumented) Missing documentation for "page". -// src/v4/types.d.ts:44:5 - (ae-undocumented) Missing documentation for "getPageTheme". ``` diff --git a/packages/theme/src/unified/UnifiedThemeProvider.tsx b/packages/theme/src/unified/UnifiedThemeProvider.tsx index 465a4dda24..e44e5502f3 100644 --- a/packages/theme/src/unified/UnifiedThemeProvider.tsx +++ b/packages/theme/src/unified/UnifiedThemeProvider.tsx @@ -15,7 +15,7 @@ */ import React, { ReactNode } from 'react'; -import { CssBaseline } from '@material-ui/core'; +import CssBaseline from '@material-ui/core/CssBaseline'; import { ThemeProvider, StylesProvider, diff --git a/packages/theme/src/v4/baseTheme.ts b/packages/theme/src/v4/baseTheme.ts index ef63e2a5fa..9f994c6b94 100644 --- a/packages/theme/src/v4/baseTheme.ts +++ b/packages/theme/src/v4/baseTheme.ts @@ -16,12 +16,10 @@ import { Theme as Mui5Theme } from '@mui/material/styles'; import { createTheme as createMuiTheme } from '@material-ui/core/styles'; -import type { - GridProps, - SwitchProps, - Theme, - ThemeOptions, -} from '@material-ui/core'; +import type { Theme, ThemeOptions } from '@material-ui/core/styles/createTheme'; +import type { GridProps } from '@material-ui/core/Grid'; +import type { SwitchProps } from '@material-ui/core/Switch'; + import { Overrides } from '@material-ui/core/styles/overrides'; import { SimpleThemeOptions } from './types'; import { createBaseThemeOptions } from '../base'; diff --git a/packages/theme/src/v4/types.ts b/packages/theme/src/v4/types.ts index c5100dab8f..16b18e14bc 100644 --- a/packages/theme/src/v4/types.ts +++ b/packages/theme/src/v4/types.ts @@ -17,7 +17,7 @@ import type { Theme as MuiTheme, ThemeOptions as MuiThemeOptions, -} from '@material-ui/core'; +} from '@material-ui/core/styles/createTheme'; import type { PaletteOptions as MuiPaletteOptions, Palette as MuiPalette, diff --git a/packages/version-bridge/CHANGELOG.md b/packages/version-bridge/CHANGELOG.md index 10a7aa5f60..038f87398e 100644 --- a/packages/version-bridge/CHANGELOG.md +++ b/packages/version-bridge/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/version-bridge +## 1.0.10 + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. + ## 1.0.10-next.0 ### Patch Changes diff --git a/packages/version-bridge/package.json b/packages/version-bridge/package.json index 4d00974baa..2f2ce69cec 100644 --- a/packages/version-bridge/package.json +++ b/packages/version-bridge/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/version-bridge", - "version": "1.0.10-next.0", + "version": "1.0.10", "description": "Utilities used by @backstage packages to support multiple concurrent versions", "backstage": { "role": "web-library" diff --git a/packages/yarn-plugin/README.md b/packages/yarn-plugin/README.md index 16507713af..67ea19b1bd 100644 --- a/packages/yarn-plugin/README.md +++ b/packages/yarn-plugin/README.md @@ -9,5 +9,18 @@ version specified in the manifest for the Backstage release listed in backstage.json. If the dependent package is published, this version will be prefixed by `^`. -**This plugin is still under active development, and requires some further -testing before we recommend it for general use.** +Detailed instructions for using the plugin can be found in [the docs](https://backstage.io/docs/getting-started/keeping-backstage-updated/#managing-package-versions-with-the-backstage-yarn-plugin). + +## Installation + +```bash +yarn plugin import https://versions.backstage.io/v1/tags/main/yarn-plugin +``` + +The resulting changes in the file system should be committed to your repo. + +## Usage + +The yarn plugin recognizes the version string `"backstage:^"`, and replaces it +with the appropriate version based on the overall Backstage version in +backstage.json. diff --git a/packages/yarn-plugin/report.api.md b/packages/yarn-plugin/report.api.md index b246b802bb..f0300ec9a1 100644 --- a/packages/yarn-plugin/report.api.md +++ b/packages/yarn-plugin/report.api.md @@ -8,8 +8,4 @@ import { Plugin as Plugin_2 } from '@yarnpkg/core'; // @public (undocumented) const plugin: Plugin_2; export default plugin; - -// Warnings were encountered during analysis: -// -// src/index.d.ts:11:15 - (ae-undocumented) Missing documentation for "plugin". ``` diff --git a/plugins/api-docs-module-protoc-gen-doc/CHANGELOG.md b/plugins/api-docs-module-protoc-gen-doc/CHANGELOG.md index b3b852ea90..4cdd7c9bdc 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.8 + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. + ## 0.1.8-next.0 ### 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 c3c38d7af9..1eedb4aaa1 100644 --- a/plugins/api-docs-module-protoc-gen-doc/package.json +++ b/plugins/api-docs-module-protoc-gen-doc/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-api-docs-module-protoc-gen-doc", - "version": "0.1.8-next.0", + "version": "0.1.8", "description": "Additional functionalities for the api-docs plugin that renders the output of the protoc-gen-doc", "backstage": { "role": "frontend-plugin-module", diff --git a/plugins/api-docs-module-protoc-gen-doc/report.api.md b/plugins/api-docs-module-protoc-gen-doc/report.api.md index 355b867e9a..836f8313d8 100644 --- a/plugins/api-docs-module-protoc-gen-doc/report.api.md +++ b/plugins/api-docs-module-protoc-gen-doc/report.api.md @@ -11,8 +11,4 @@ export const grpcDocsApiWidget: { title: string; component: (definition: string) => React_2.JSX.Element; }; - -// Warnings were encountered during analysis: -// -// src/widgets.d.ts:5:22 - (ae-undocumented) Missing documentation for "grpcDocsApiWidget". ``` diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md index c0cface09e..e7490de339 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,39 @@ # @backstage/plugin-api-docs +## 0.11.12-next.0 + +### Patch Changes + +- 11f57de: bump `@asyncapi/react-component` to latest `2.x` +- 3cd1dee: Uses theme values to style the API definition schema so that theme overrides apply. +- Updated dependencies + - @backstage/core-components@0.16.0-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/core-compat-api@0.3.2-next.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/frontend-plugin-api@0.9.1-next.0 + - @backstage/plugin-catalog@1.24.1-next.0 + - @backstage/plugin-catalog-common@1.1.0 + - @backstage/plugin-catalog-react@1.14.1-next.0 + - @backstage/plugin-permission-react@0.4.27 + +## 0.11.11 + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- 46b5a20: Empty states updated with external link icon for learn more links +- Updated dependencies + - @backstage/core-components@0.15.1 + - @backstage/frontend-plugin-api@0.9.0 + - @backstage/plugin-catalog@1.24.0 + - @backstage/core-compat-api@0.3.1 + - @backstage/core-plugin-api@1.10.0 + - @backstage/plugin-permission-react@0.4.27 + - @backstage/plugin-catalog-react@1.14.0 + - @backstage/catalog-model@1.7.0 + - @backstage/plugin-catalog-common@1.1.0 + ## 0.11.11-next.2 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 53b46a78b1..709e905ff6 100644 --- a/plugins/api-docs/package.json +++ b/plugins/api-docs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-api-docs", - "version": "0.11.11-next.2", + "version": "0.11.12-next.0", "description": "A Backstage plugin that helps represent API entities in the frontend", "backstage": { "role": "frontend-plugin", @@ -53,7 +53,7 @@ "test": "backstage-cli package test" }, "dependencies": { - "@asyncapi/react-component": "1.3.1", + "@asyncapi/react-component": "^2.3.3", "@backstage/catalog-model": "workspace:^", "@backstage/core-compat-api": "workspace:^", "@backstage/core-components": "workspace:^", diff --git a/plugins/api-docs/report-alpha.api.md b/plugins/api-docs/report-alpha.api.md index 274d5d4aac..820978b877 100644 --- a/plugins/api-docs/report-alpha.api.md +++ b/plugins/api-docs/report-alpha.api.md @@ -427,9 +427,5 @@ const _default: FrontendPlugin< >; export default _default; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_default". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/api-docs/report.api.md b/plugins/api-docs/report.api.md index 74318781c8..3c3f245a3c 100644 --- a/plugins/api-docs/report.api.md +++ b/plugins/api-docs/report.api.md @@ -229,38 +229,4 @@ export const TrpcApiDefinitionWidget: ( export type TrpcApiDefinitionWidgetProps = { definition: string; }; - -// Warnings were encountered during analysis: -// -// src/components/ApiDefinitionCard/ApiDefinitionCard.d.ts:3:22 - (ae-undocumented) Missing documentation for "ApiDefinitionCard". -// src/components/ApiDefinitionCard/ApiDefinitionWidget.d.ts:3:1 - (ae-undocumented) Missing documentation for "ApiDefinitionWidget". -// src/components/ApiDefinitionCard/ApiDefinitionWidget.d.ts:10:1 - (ae-undocumented) Missing documentation for "defaultDefinitionWidgets". -// src/components/ApiDefinitionCard/ApiTypeTitle.d.ts:6:22 - (ae-undocumented) Missing documentation for "ApiTypeTitle". -// src/components/ApisCards/ConsumedApisCard.d.ts:7:22 - (ae-undocumented) Missing documentation for "ConsumedApisCard". -// src/components/ApisCards/HasApisCard.d.ts:7:22 - (ae-undocumented) Missing documentation for "HasApisCard". -// src/components/ApisCards/ProvidedApisCard.d.ts:7:22 - (ae-undocumented) Missing documentation for "ProvidedApisCard". -// src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.d.ts:4:1 - (ae-undocumented) Missing documentation for "AsyncApiResolver". -// src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.d.ts:4:1 - (ae-undocumented) Missing documentation for "AsyncApiDefinitionWidgetProps". -// src/components/AsyncApiDefinitionWidget/AsyncApiDefinitionWidget.d.ts:9:22 - (ae-undocumented) Missing documentation for "AsyncApiDefinitionWidget". -// src/components/ComponentsCards/ConsumingComponentsCard.d.ts:7:22 - (ae-undocumented) Missing documentation for "ConsumingComponentsCard". -// src/components/ComponentsCards/ProvidingComponentsCard.d.ts:5:22 - (ae-undocumented) Missing documentation for "ProvidingComponentsCard". -// src/components/GraphQlDefinitionWidget/GraphQlDefinitionWidget.d.ts:3:1 - (ae-undocumented) Missing documentation for "GraphQlDefinitionWidgetProps". -// src/components/GraphQlDefinitionWidget/GraphQlDefinitionWidget.d.ts:7:22 - (ae-undocumented) Missing documentation for "GraphQlDefinitionWidget". -// src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.d.ts:3:1 - (ae-undocumented) Missing documentation for "OpenApiDefinitionWidgetProps". -// src/components/OpenApiDefinitionWidget/OpenApiDefinitionWidget.d.ts:9:22 - (ae-undocumented) Missing documentation for "OpenApiDefinitionWidget". -// src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.d.ts:3:1 - (ae-undocumented) Missing documentation for "PlainApiDefinitionWidgetProps". -// src/components/PlainApiDefinitionWidget/PlainApiDefinitionWidget.d.ts:8:22 - (ae-undocumented) Missing documentation for "PlainApiDefinitionWidget". -// src/components/TrpcDefinitionWidget/TrpcApiDefinitionWidget.d.ts:3:1 - (ae-undocumented) Missing documentation for "TrpcApiDefinitionWidgetProps". -// src/components/TrpcDefinitionWidget/TrpcApiDefinitionWidget.d.ts:7:22 - (ae-undocumented) Missing documentation for "TrpcApiDefinitionWidget". -// src/config.d.ts:4:22 - (ae-undocumented) Missing documentation for "apiDocsConfigRef". -// src/config.d.ts:6:1 - (ae-undocumented) Missing documentation for "ApiDocsConfig". -// src/config.d.ts:7:5 - (ae-undocumented) Missing documentation for "getApiDefinitionWidget". -// src/plugin.d.ts:4:22 - (ae-undocumented) Missing documentation for "apiDocsPlugin". -// src/plugin.d.ts:10:22 - (ae-undocumented) Missing documentation for "ApiExplorerPage". -// src/plugin.d.ts:12:22 - (ae-undocumented) Missing documentation for "EntityApiDefinitionCard". -// src/plugin.d.ts:14:22 - (ae-undocumented) Missing documentation for "EntityConsumedApisCard". -// src/plugin.d.ts:21:22 - (ae-undocumented) Missing documentation for "EntityConsumingComponentsCard". -// src/plugin.d.ts:26:22 - (ae-undocumented) Missing documentation for "EntityProvidedApisCard". -// src/plugin.d.ts:33:22 - (ae-undocumented) Missing documentation for "EntityProvidingComponentsCard". -// src/plugin.d.ts:38:22 - (ae-undocumented) Missing documentation for "EntityHasApisCard". ``` diff --git a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.test.tsx b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.test.tsx index ed3a3e98ce..c9f979edad 100644 --- a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.test.tsx +++ b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.test.tsx @@ -54,7 +54,7 @@ components: expect(getByText(/Account Service/i)).toBeInTheDocument(); expect(getByText(/user\/signedup/i)).toBeInTheDocument(); - expect(getAllByText(/UserSignedUp/i)).toHaveLength(4); + expect(getAllByText(/UserSignedUp/i)).toHaveLength(2); expect(getAllByText(/displayName/i)).toHaveLength(3); }); }); diff --git a/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinition.tsx b/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinition.tsx index 1505646dee..ea1df525b7 100644 --- a/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinition.tsx +++ b/plugins/api-docs/src/components/OpenApiDefinitionWidget/OpenApiDefinition.tsx @@ -94,7 +94,8 @@ const useStyles = makeStyles(theme => ({ .errors small`]: { color: theme.palette.text.secondary, }, - [`& .parameter__name.required:after`]: { + [`& .parameter__name.required:after, + .parameter__name.required span`]: { color: theme.palette.warning.dark, }, [`& table.model, @@ -132,6 +133,46 @@ const useStyles = makeStyles(theme => ({ [`& span.prop-type`]: { color: theme.palette.success.light, }, + [`& .opblock-control-arrow svg, .authorization__btn .unlocked`]: { + fill: theme.palette.text.primary, + }, + [`& .json-schema-2020-12__title, + .json-schema-2020-12-keyword__name, + .json-schema-2020-12-property .json-schema-2020-12__title, + .json-schema-2020-12-keyword--description`]: { + color: theme.palette.text.primary, + }, + [`.json-schema-2020-12-accordion__icon svg`]: { + fill: theme.palette.text.primary, + }, + [`& .json-schema-2020-12-accordion, + .json-schema-2020-12-expand-deep-button`]: { + background: 'none', + appearance: 'none', + }, + [`& .json-schema-2020-12-expand-deep-button, + .json-schema-2020-12-keyword__name--secondary, + .json-schema-2020-12-keyword__value--secondary, + .json-schema-2020-12__attribute--muted, + .json-schema-2020-12-keyword__value--const, + .json-schema-2020-12-keyword__value--warning`]: { + color: theme.palette.text.secondary, + }, + [`& .json-schema-2020-12-body, + .json-schema-2020-12-keyword__value--const, + .json-schema-2020-12-keyword__value--warning`]: { + borderColor: theme.palette.text.secondary, + }, + [`.json-schema-2020-12__constraint--string`]: { + backgroundColor: theme.palette.primary.main, + }, + [`& .json-schema-2020-12__attribute--primary`]: { + color: theme.palette.primary.main, + }, + [`& .json-schema-2020-12-property--required>.json-schema-2020-12:first-of-type>.json-schema-2020-12-head .json-schema-2020-12__title:after`]: + { + color: theme.palette.warning.dark, + }, }, }, })); diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md index e9da72b01a..984734725f 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/plugin-app-backend +## 0.3.77-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.9.1 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-app-node@0.1.27-next.0 + +## 0.3.76 + +### Patch Changes + +- 2c4ee26: Fixed unexpected behaviour where configuration supplied with `APP_CONFIG_*` environment variables where not filtered by the configuration schema. +- 094eaa3: Remove references to in-repo backend-common +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.9.1 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-app-node@0.1.26 + ## 0.3.76-next.1 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 8270f31a25..830da9bbdf 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-app-backend", - "version": "0.3.76-next.1", + "version": "0.3.77-next.0", "description": "A Backstage backend plugin that serves the Backstage frontend app", "backstage": { "role": "backend-plugin", diff --git a/plugins/app-backend/report-alpha.api.md b/plugins/app-backend/report-alpha.api.md index f5bd67554d..78c4b97232 100644 --- a/plugins/app-backend/report-alpha.api.md +++ b/plugins/app-backend/report-alpha.api.md @@ -9,9 +9,5 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; const _appPlugin: BackendFeature; export default _appPlugin; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_appPlugin". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/app-backend/report.api.md b/plugins/app-backend/report.api.md index 4ec356951f..35e7ea383d 100644 --- a/plugins/app-backend/report.api.md +++ b/plugins/app-backend/report.api.md @@ -35,13 +35,4 @@ export interface RouterOptions { schema?: ConfigSchema; staticFallbackHandler?: express.Handler; } - -// Warnings were encountered during analysis: -// -// src/service/router.d.ts:9:1 - (ae-undocumented) Missing documentation for "RouterOptions". -// src/service/router.d.ts:10:5 - (ae-undocumented) Missing documentation for "config". -// src/service/router.d.ts:11:5 - (ae-undocumented) Missing documentation for "logger". -// src/service/router.d.ts:12:5 - (ae-undocumented) Missing documentation for "auth". -// src/service/router.d.ts:13:5 - (ae-undocumented) Missing documentation for "httpAuth". -// src/service/router.d.ts:61:1 - (ae-undocumented) Missing documentation for "createRouter". ``` diff --git a/plugins/app-node/CHANGELOG.md b/plugins/app-node/CHANGELOG.md index 69a8de9fbf..32f2976e17 100644 --- a/plugins/app-node/CHANGELOG.md +++ b/plugins/app-node/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-app-node +## 0.1.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/config-loader@1.9.1 + +## 0.1.26 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@1.0.1 + - @backstage/config-loader@1.9.1 + ## 0.1.26-next.1 ### Patch Changes diff --git a/plugins/app-node/package.json b/plugins/app-node/package.json index db8c4fa841..aa439528a0 100644 --- a/plugins/app-node/package.json +++ b/plugins/app-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-app-node", - "version": "0.1.26-next.1", + "version": "0.1.27-next.0", "description": "Node.js library for the app plugin", "backstage": { "role": "node-library", diff --git a/plugins/app-visualizer/CHANGELOG.md b/plugins/app-visualizer/CHANGELOG.md index 12d1a383b4..7173d15a12 100644 --- a/plugins/app-visualizer/CHANGELOG.md +++ b/plugins/app-visualizer/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-app-visualizer +## 0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.16.0-next.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/frontend-plugin-api@0.9.1-next.0 + +## 0.1.11 + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- Updated dependencies + - @backstage/core-components@0.15.1 + - @backstage/frontend-plugin-api@0.9.0 + - @backstage/core-plugin-api@1.10.0 + ## 0.1.11-next.2 ### Patch Changes diff --git a/plugins/app-visualizer/package.json b/plugins/app-visualizer/package.json index 659a6bcf39..13189be8d5 100644 --- a/plugins/app-visualizer/package.json +++ b/plugins/app-visualizer/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-app-visualizer", - "version": "0.1.11-next.2", + "version": "0.1.12-next.0", "description": "Visualizes the Backstage app structure", "backstage": { "role": "frontend-plugin", diff --git a/plugins/app-visualizer/report.api.md b/plugins/app-visualizer/report.api.md index 15f7384c42..48eca04ed8 100644 --- a/plugins/app-visualizer/report.api.md +++ b/plugins/app-visualizer/report.api.md @@ -71,9 +71,5 @@ const visualizerPlugin: FrontendPlugin< >; export default visualizerPlugin; -// Warnings were encountered during analysis: -// -// src/plugin.d.ts:20:22 - (ae-undocumented) Missing documentation for "visualizerPlugin". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/app/CHANGELOG.md b/plugins/app/CHANGELOG.md index 77e96b7917..5062ce4ab3 100644 --- a/plugins/app/CHANGELOG.md +++ b/plugins/app/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-app +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.16.0-next.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/frontend-plugin-api@0.9.1-next.0 + - @backstage/integration-react@1.2.0 + - @backstage/theme@0.6.0 + - @backstage/plugin-permission-react@0.4.27 + +## 0.1.1 + +### Patch Changes + +- b36be7a: Added missing default `SignInPageExtension` which by default uses guest auth, missing `ApiExtensions` for `scmAuth` +- Updated dependencies + - @backstage/core-components@0.15.1 + - @backstage/frontend-plugin-api@0.9.0 + - @backstage/integration-react@1.2.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/plugin-permission-react@0.4.27 + - @backstage/theme@0.6.0 + ## 0.1.1-next.2 ### Patch Changes diff --git a/plugins/app/package.json b/plugins/app/package.json index a14e1eab43..1091b7a574 100644 --- a/plugins/app/package.json +++ b/plugins/app/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-app", - "version": "0.1.1-next.2", + "version": "0.1.2-next.0", "backstage": { "role": "frontend-plugin", "pluginId": "app", diff --git a/plugins/app/report.api.md b/plugins/app/report.api.md index 208f9dcfb0..89dde35f78 100644 --- a/plugins/app/report.api.md +++ b/plugins/app/report.api.md @@ -754,9 +754,5 @@ const appPlugin: FrontendPlugin< >; export default appPlugin; -// Warnings were encountered during analysis: -// -// src/plugin.d.ts:3:22 - (ae-undocumented) Missing documentation for "appPlugin". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md b/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md index b9dfa38462..84d3405f82 100644 --- a/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-atlassian-provider/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend-module-atlassian-provider +## 0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.3.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.3.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-atlassian-provider/package.json b/plugins/auth-backend-module-atlassian-provider/package.json index b262f11467..3ab8e6140a 100644 --- a/plugins/auth-backend-module-atlassian-provider/package.json +++ b/plugins/auth-backend-module-atlassian-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-atlassian-provider", - "version": "0.3.1-next.1", + "version": "0.3.2-next.0", "description": "The atlassian-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-atlassian-provider/report.api.md b/plugins/auth-backend-module-atlassian-provider/report.api.md index 7f32330451..7abdf7ee70 100644 --- a/plugins/auth-backend-module-atlassian-provider/report.api.md +++ b/plugins/auth-backend-module-atlassian-provider/report.api.md @@ -27,9 +27,4 @@ export namespace atlassianSignInResolvers { // @public (undocumented) const authModuleAtlassianProvider: BackendFeature; export default authModuleAtlassianProvider; - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "atlassianAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleAtlassianProvider". ``` diff --git a/plugins/auth-backend-module-auth0-provider/CHANGELOG.md b/plugins/auth-backend-module-auth0-provider/CHANGELOG.md index dc1df6ebe4..f98a38af97 100644 --- a/plugins/auth-backend-module-auth0-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-auth0-provider/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-auth-backend-module-auth0-provider +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-auth0-provider/package.json b/plugins/auth-backend-module-auth0-provider/package.json index 76986bbcb0..5539b9a245 100644 --- a/plugins/auth-backend-module-auth0-provider/package.json +++ b/plugins/auth-backend-module-auth0-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-auth0-provider", - "version": "0.1.1-next.1", + "version": "0.1.2-next.0", "description": "The auth0-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-auth0-provider/report.api.md b/plugins/auth-backend-module-auth0-provider/report.api.md index 2d1b9074b4..fb7aa9d0ba 100644 --- a/plugins/auth-backend-module-auth0-provider/report.api.md +++ b/plugins/auth-backend-module-auth0-provider/report.api.md @@ -22,9 +22,4 @@ export const auth0Authenticator: OAuthAuthenticator< // @public (undocumented) const authModuleAuth0Provider: BackendFeature; export default authModuleAuth0Provider; - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "auth0Authenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleAuth0Provider". ``` diff --git a/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md b/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md index 50304061f7..ddc0ba7030 100644 --- a/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-aws-alb-provider/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/plugin-auth-backend-module-aws-alb-provider +## 0.3.0-next.0 + +### Minor Changes + +- 75168e3: **BREAKING**: The AWS ALB `fullProfile` will no longer have the its username or email converted to lowercase. This is to ensure unique handling of the users. You may need to update and configure a custom sign-in resolver or profile transform as a result. + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.24.0-next.0 + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/errors@1.2.4 + +## 0.2.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- 094eaa3: Remove references to in-repo backend-common +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/plugin-auth-backend@0.23.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/errors@1.2.4 + ## 0.2.1-next.1 ### 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 eff13892bd..2766b1d5ba 100644 --- a/plugins/auth-backend-module-aws-alb-provider/package.json +++ b/plugins/auth-backend-module-aws-alb-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-aws-alb-provider", - "version": "0.2.1-next.1", + "version": "0.3.0-next.0", "description": "The aws-alb provider module for the Backstage auth backend.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-aws-alb-provider/report.api.md b/plugins/auth-backend-module-aws-alb-provider/report.api.md index c7437a1b9d..b3a9ce4517 100644 --- a/plugins/auth-backend-module-aws-alb-provider/report.api.md +++ b/plugins/auth-backend-module-aws-alb-provider/report.api.md @@ -46,10 +46,4 @@ export namespace awsAlbSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:6:22 - (ae-undocumented) Missing documentation for "awsAlbAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleAwsAlbProvider". -// src/resolvers.d.ts:8:11 - (ae-undocumented) Missing documentation for "emailMatchingUserEntityProfileEmail". ``` diff --git a/plugins/auth-backend-module-aws-alb-provider/src/authenticator.ts b/plugins/auth-backend-module-aws-alb-provider/src/authenticator.ts index 2e7fe1cd26..b6969c5432 100644 --- a/plugins/auth-backend-module-aws-alb-provider/src/authenticator.ts +++ b/plugins/auth-backend-module-aws-alb-provider/src/authenticator.ts @@ -77,12 +77,12 @@ export const awsAlbAuthenticator = createProxyAuthenticator({ provider: 'unknown', id: claims.sub, displayName: claims.name, - username: claims.email.split('@')[0].toLowerCase(), + username: claims.email.split('@')[0], name: { familyName: claims.family_name, givenName: claims.given_name, }, - emails: [{ value: claims.email.toLowerCase() }], + emails: [{ value: claims.email }], photos: [{ value: claims.picture }], }; diff --git a/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md b/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md index 284d6ea8ce..1705bf1c7a 100644 --- a/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-azure-easyauth-provider/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-auth-backend-module-azure-easyauth-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/errors@1.2.4 + +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/errors@1.2.4 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-azure-easyauth-provider/package.json b/plugins/auth-backend-module-azure-easyauth-provider/package.json index 13d9a666ee..bde78e9aba 100644 --- a/plugins/auth-backend-module-azure-easyauth-provider/package.json +++ b/plugins/auth-backend-module-azure-easyauth-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-azure-easyauth-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The azure-easyauth-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-azure-easyauth-provider/report.api.md b/plugins/auth-backend-module-azure-easyauth-provider/report.api.md index 3292654787..9d337e3f34 100644 --- a/plugins/auth-backend-module-azure-easyauth-provider/report.api.md +++ b/plugins/auth-backend-module-azure-easyauth-provider/report.api.md @@ -36,13 +36,5 @@ export namespace azureEasyAuthSignInResolvers { >; } -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:5:22 - (ae-undocumented) Missing documentation for "azureEasyAuthAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleAzureEasyAuthProvider". -// src/resolvers.d.ts:3:1 - (ae-undocumented) Missing documentation for "azureEasyAuthSignInResolvers". -// src/resolvers.d.ts:4:11 - (ae-undocumented) Missing documentation for "idMatchingUserEntityAnnotation". -// src/types.d.ts:3:1 - (ae-undocumented) Missing documentation for "AzureEasyAuthResult". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md b/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md index 1ff45b5f95..0cdfe45343 100644 --- a/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-bitbucket-provider/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend-module-bitbucket-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.2.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-bitbucket-provider/package.json b/plugins/auth-backend-module-bitbucket-provider/package.json index 288725480e..5d79fd9e69 100644 --- a/plugins/auth-backend-module-bitbucket-provider/package.json +++ b/plugins/auth-backend-module-bitbucket-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-bitbucket-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The bitbucket-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-bitbucket-provider/report.api.md b/plugins/auth-backend-module-bitbucket-provider/report.api.md index 210a292050..ceb4141fd9 100644 --- a/plugins/auth-backend-module-bitbucket-provider/report.api.md +++ b/plugins/auth-backend-module-bitbucket-provider/report.api.md @@ -31,9 +31,4 @@ export namespace bitbucketSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "bitbucketAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleBitbucketProvider". ``` diff --git a/plugins/auth-backend-module-bitbucket-server-provider/CHANGELOG.md b/plugins/auth-backend-module-bitbucket-server-provider/CHANGELOG.md index e7a8a55c13..bebabde280 100644 --- a/plugins/auth-backend-module-bitbucket-server-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-bitbucket-server-provider/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-auth-backend-module-bitbucket-server-provider +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.1.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-bitbucket-server-provider/package.json b/plugins/auth-backend-module-bitbucket-server-provider/package.json index a8610b36d3..4c59b89fd8 100644 --- a/plugins/auth-backend-module-bitbucket-server-provider/package.json +++ b/plugins/auth-backend-module-bitbucket-server-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-bitbucket-server-provider", - "version": "0.1.1-next.1", + "version": "0.1.2-next.0", "description": "The bitbucket-server-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-bitbucket-server-provider/report.api.md b/plugins/auth-backend-module-bitbucket-server-provider/report.api.md index 371873027a..d5c484f6e3 100644 --- a/plugins/auth-backend-module-bitbucket-server-provider/report.api.md +++ b/plugins/auth-backend-module-bitbucket-server-provider/report.api.md @@ -30,9 +30,4 @@ export namespace bitbucketServerSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "bitbucketServerAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleBitbucketServerProvider". ``` diff --git a/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md b/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md index cb9f09b8ec..ee21bc8d78 100644 --- a/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-cloudflare-access-provider/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-auth-backend-module-cloudflare-access-provider +## 0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## 0.3.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.3.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-cloudflare-access-provider/package.json b/plugins/auth-backend-module-cloudflare-access-provider/package.json index 1b54c3c43f..8bfd309624 100644 --- a/plugins/auth-backend-module-cloudflare-access-provider/package.json +++ b/plugins/auth-backend-module-cloudflare-access-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-cloudflare-access-provider", - "version": "0.3.1-next.1", + "version": "0.3.2-next.0", "description": "The cloudflare-access-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-cloudflare-access-provider/report.api.md b/plugins/auth-backend-module-cloudflare-access-provider/report.api.md index b9943b2bef..1547190d39 100644 --- a/plugins/auth-backend-module-cloudflare-access-provider/report.api.md +++ b/plugins/auth-backend-module-cloudflare-access-provider/report.api.md @@ -60,10 +60,4 @@ export namespace cloudflareAccessSignInResolvers { export function createCloudflareAccessAuthenticator(options?: { cache?: CacheService; }): ProxyAuthenticator; - -// Warnings were encountered during analysis: -// -// src/types.d.ts:55:1 - (ae-undocumented) Missing documentation for "CloudflareAccessGroup". -// src/types.d.ts:72:1 - (ae-undocumented) Missing documentation for "CloudflareAccessIdentityProfile". -// src/types.d.ts:81:1 - (ae-undocumented) Missing documentation for "CloudflareAccessResult". ``` diff --git a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md index 4121a96c56..21f15b7267 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gcp-iap-provider/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-auth-backend-module-gcp-iap-provider +## 0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## 0.3.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.3.1-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 dde8a1fd2a..af0bb0e418 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/package.json +++ b/plugins/auth-backend-module-gcp-iap-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-gcp-iap-provider", - "version": "0.3.1-next.1", + "version": "0.3.2-next.0", "description": "A GCP IAP auth provider module for the Backstage auth backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-gcp-iap-provider/report.api.md b/plugins/auth-backend-module-gcp-iap-provider/report.api.md index 72887276d5..1476694f99 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/report.api.md +++ b/plugins/auth-backend-module-gcp-iap-provider/report.api.md @@ -50,10 +50,5 @@ export type GcpIapTokenInfo = { [key: string]: JsonPrimitive; }; -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:2:22 - (ae-undocumented) Missing documentation for "gcpIapAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleGcpIapProvider". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/auth-backend-module-github-provider/CHANGELOG.md b/plugins/auth-backend-module-github-provider/CHANGELOG.md index 215798984c..ac2c7503bb 100644 --- a/plugins/auth-backend-module-github-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-github-provider/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend-module-github-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.2.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-github-provider/package.json b/plugins/auth-backend-module-github-provider/package.json index 8ae5c93f69..976ea59e3d 100644 --- a/plugins/auth-backend-module-github-provider/package.json +++ b/plugins/auth-backend-module-github-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-github-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The github-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-github-provider/report.api.md b/plugins/auth-backend-module-github-provider/report.api.md index 0578c23d3e..222305adfd 100644 --- a/plugins/auth-backend-module-github-provider/report.api.md +++ b/plugins/auth-backend-module-github-provider/report.api.md @@ -27,9 +27,4 @@ export namespace githubSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "githubAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleGithubProvider". ``` diff --git a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md index 4427a63302..b7d5b6bd04 100644 --- a/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-gitlab-provider/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend-module-gitlab-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.2.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-gitlab-provider/package.json b/plugins/auth-backend-module-gitlab-provider/package.json index fd9758b33e..2b5a4ce213 100644 --- a/plugins/auth-backend-module-gitlab-provider/package.json +++ b/plugins/auth-backend-module-gitlab-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-gitlab-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The gitlab-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-gitlab-provider/report.api.md b/plugins/auth-backend-module-gitlab-provider/report.api.md index a72c00c6e5..44c5ffb214 100644 --- a/plugins/auth-backend-module-gitlab-provider/report.api.md +++ b/plugins/auth-backend-module-gitlab-provider/report.api.md @@ -27,9 +27,4 @@ export namespace gitlabSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "gitlabAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleGitlabProvider". ``` diff --git a/plugins/auth-backend-module-google-provider/CHANGELOG.md b/plugins/auth-backend-module-google-provider/CHANGELOG.md index c9ff7f0a31..8b9e8fcf53 100644 --- a/plugins/auth-backend-module-google-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-google-provider/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend-module-google-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.2.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.2.1-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 e788860fa8..1571c06deb 100644 --- a/plugins/auth-backend-module-google-provider/config.d.ts +++ b/plugins/auth-backend-module-google-provider/config.d.ts @@ -18,6 +18,7 @@ export interface Config { /** Configuration options for the auth plugin */ auth?: { providers?: { + /** @visibility frontend */ google?: { [authEnv: string]: { clientId: string; diff --git a/plugins/auth-backend-module-google-provider/package.json b/plugins/auth-backend-module-google-provider/package.json index 3ae2b64c79..a92bf6cd0c 100644 --- a/plugins/auth-backend-module-google-provider/package.json +++ b/plugins/auth-backend-module-google-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-google-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "A Google auth provider module for the Backstage auth backend", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-google-provider/report.api.md b/plugins/auth-backend-module-google-provider/report.api.md index a2fc1bbce9..eeefb8e837 100644 --- a/plugins/auth-backend-module-google-provider/report.api.md +++ b/plugins/auth-backend-module-google-provider/report.api.md @@ -28,10 +28,5 @@ export namespace googleSignInResolvers { >; } -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "googleAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleGoogleProvider". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/auth-backend-module-guest-provider/CHANGELOG.md b/plugins/auth-backend-module-guest-provider/CHANGELOG.md index 5d32f6c727..6c7f7bd869 100644 --- a/plugins/auth-backend-module-guest-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-guest-provider/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-auth-backend-module-guest-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/errors@1.2.4 + +## 0.2.1 + +### Patch Changes + +- 094eaa3: Remove references to in-repo backend-common +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/errors@1.2.4 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-guest-provider/package.json b/plugins/auth-backend-module-guest-provider/package.json index e8d8b1af17..1d761d9291 100644 --- a/plugins/auth-backend-module-guest-provider/package.json +++ b/plugins/auth-backend-module-guest-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-guest-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The guest-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-guest-provider/report.api.md b/plugins/auth-backend-module-guest-provider/report.api.md index b100e5270b..b0ba5386a2 100644 --- a/plugins/auth-backend-module-guest-provider/report.api.md +++ b/plugins/auth-backend-module-guest-provider/report.api.md @@ -8,8 +8,4 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; // @public (undocumented) const authModuleGuestProvider: BackendFeature; export default authModuleGuestProvider; - -// Warnings were encountered during analysis: -// -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleGuestProvider". ``` diff --git a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md index d82506d7bb..db6cc64cdb 100644 --- a/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-microsoft-provider/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-auth-backend-module-microsoft-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.2.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- daa02d6: Add `skipUserProfile` config flag to Microsoft authenticator +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-microsoft-provider/package.json b/plugins/auth-backend-module-microsoft-provider/package.json index 29b4d79539..7c45df327a 100644 --- a/plugins/auth-backend-module-microsoft-provider/package.json +++ b/plugins/auth-backend-module-microsoft-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-microsoft-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The microsoft-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-microsoft-provider/report.api.md b/plugins/auth-backend-module-microsoft-provider/report.api.md index 3e7775cfa8..6aef395d7c 100644 --- a/plugins/auth-backend-module-microsoft-provider/report.api.md +++ b/plugins/auth-backend-module-microsoft-provider/report.api.md @@ -37,10 +37,4 @@ export namespace microsoftSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "microsoftAuthenticator". -// src/deprecated.d.ts:5:22 - (ae-undocumented) Missing documentation for "authModuleMicrosoftProvider". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleMicrosoftProvider". ``` diff --git a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md index e6bedff552..7f49f09f12 100644 --- a/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-provider/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend-module-oauth2-provider +## 0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.3.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.3.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oauth2-provider/package.json b/plugins/auth-backend-module-oauth2-provider/package.json index 32943f47b7..38db33c2a5 100644 --- a/plugins/auth-backend-module-oauth2-provider/package.json +++ b/plugins/auth-backend-module-oauth2-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-oauth2-provider", - "version": "0.3.1-next.1", + "version": "0.3.2-next.0", "description": "The oauth2-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-oauth2-provider/report.api.md b/plugins/auth-backend-module-oauth2-provider/report.api.md index 5648d043a2..632591ec04 100644 --- a/plugins/auth-backend-module-oauth2-provider/report.api.md +++ b/plugins/auth-backend-module-oauth2-provider/report.api.md @@ -27,9 +27,4 @@ export namespace oauth2SignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "oauth2Authenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleOauth2Provider". ``` diff --git a/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md b/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md index 57bf181c83..6d5647d608 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oauth2-proxy-provider/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-auth-backend-module-oauth2-proxy-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/errors@1.2.4 + +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/errors@1.2.4 + ## 0.2.1-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 e53822a3e5..f3b48c62ac 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/package.json +++ b/plugins/auth-backend-module-oauth2-proxy-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-oauth2-proxy-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The oauth2-proxy-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-oauth2-proxy-provider/report.api.md b/plugins/auth-backend-module-oauth2-proxy-provider/report.api.md index 27b3a9feb2..5c5cefd734 100644 --- a/plugins/auth-backend-module-oauth2-proxy-provider/report.api.md +++ b/plugins/auth-backend-module-oauth2-proxy-provider/report.api.md @@ -32,9 +32,4 @@ export type OAuth2ProxyResult = { headers: IncomingHttpHeaders; getHeader(name: string): string | undefined; }; - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:10:22 - (ae-undocumented) Missing documentation for "oauth2ProxyAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleOauth2ProxyProvider". ``` diff --git a/plugins/auth-backend-module-oidc-provider/CHANGELOG.md b/plugins/auth-backend-module-oidc-provider/CHANGELOG.md index aa3eb88776..e921f882dc 100644 --- a/plugins/auth-backend-module-oidc-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-oidc-provider/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-auth-backend-module-oidc-provider +## 0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.24.0-next.0 + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.3.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- 094eaa3: Remove references to in-repo backend-common +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/plugin-auth-backend@0.23.1 + - @backstage/backend-plugin-api@1.0.1 + ## 0.3.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-oidc-provider/package.json b/plugins/auth-backend-module-oidc-provider/package.json index 76e16598cb..677c0ce776 100644 --- a/plugins/auth-backend-module-oidc-provider/package.json +++ b/plugins/auth-backend-module-oidc-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-oidc-provider", - "version": "0.3.1-next.1", + "version": "0.3.2-next.0", "description": "The oidc-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-oidc-provider/report.api.md b/plugins/auth-backend-module-oidc-provider/report.api.md index bee9a2fdd9..93c000c2ee 100644 --- a/plugins/auth-backend-module-oidc-provider/report.api.md +++ b/plugins/auth-backend-module-oidc-provider/report.api.md @@ -49,9 +49,4 @@ export namespace oidcSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:13:22 - (ae-undocumented) Missing documentation for "oidcAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleOidcProvider". ``` diff --git a/plugins/auth-backend-module-okta-provider/CHANGELOG.md b/plugins/auth-backend-module-okta-provider/CHANGELOG.md index c3970534df..475b6674fe 100644 --- a/plugins/auth-backend-module-okta-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-okta-provider/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend-module-okta-provider +## 0.1.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.1.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-okta-provider/package.json b/plugins/auth-backend-module-okta-provider/package.json index 602a54833a..5d4e054d5a 100644 --- a/plugins/auth-backend-module-okta-provider/package.json +++ b/plugins/auth-backend-module-okta-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-okta-provider", - "version": "0.1.1-next.1", + "version": "0.1.2-next.0", "description": "The okta-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-okta-provider/report.api.md b/plugins/auth-backend-module-okta-provider/report.api.md index 97e587df76..a142265100 100644 --- a/plugins/auth-backend-module-okta-provider/report.api.md +++ b/plugins/auth-backend-module-okta-provider/report.api.md @@ -27,9 +27,4 @@ export namespace oktaSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "oktaAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleOktaProvider". ``` diff --git a/plugins/auth-backend-module-onelogin-provider/CHANGELOG.md b/plugins/auth-backend-module-onelogin-provider/CHANGELOG.md index 9bb75c97c6..6b3e0eeb90 100644 --- a/plugins/auth-backend-module-onelogin-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-onelogin-provider/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-auth-backend-module-onelogin-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + +## 0.2.1 + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.2.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend-module-onelogin-provider/package.json b/plugins/auth-backend-module-onelogin-provider/package.json index 78f9f48771..e3046eb54f 100644 --- a/plugins/auth-backend-module-onelogin-provider/package.json +++ b/plugins/auth-backend-module-onelogin-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-onelogin-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The onelogin-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-onelogin-provider/report.api.md b/plugins/auth-backend-module-onelogin-provider/report.api.md index a636d96ae0..1991f00e0b 100644 --- a/plugins/auth-backend-module-onelogin-provider/report.api.md +++ b/plugins/auth-backend-module-onelogin-provider/report.api.md @@ -27,9 +27,4 @@ export namespace oneLoginSignInResolvers { unknown >; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:3:22 - (ae-undocumented) Missing documentation for "oneLoginAuthenticator". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModuleOneLoginProvider". ``` diff --git a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md index b5321c23e6..45c65620ff 100644 --- a/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-pinniped-provider/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-auth-backend-module-pinniped-provider +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/config@1.2.0 + +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/config@1.2.0 + ## 0.2.1-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 22ad075d24..cc84c71707 100644 --- a/plugins/auth-backend-module-pinniped-provider/package.json +++ b/plugins/auth-backend-module-pinniped-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-pinniped-provider", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "The pinniped-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-pinniped-provider/report.api.md b/plugins/auth-backend-module-pinniped-provider/report.api.md index a0500f5e74..e15f4ee324 100644 --- a/plugins/auth-backend-module-pinniped-provider/report.api.md +++ b/plugins/auth-backend-module-pinniped-provider/report.api.md @@ -37,12 +37,4 @@ export class PinnipedStrategyCache { client: BaseClient; }>; } - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:4:1 - (ae-undocumented) Missing documentation for "PinnipedStrategyCache". -// src/authenticator.d.ts:11:5 - (ae-undocumented) Missing documentation for "getStrategy". -// src/authenticator.d.ts:20:22 - (ae-undocumented) Missing documentation for "pinnipedAuthenticator". -// src/deprecated.d.ts:5:22 - (ae-undocumented) Missing documentation for "authModulePinnipedProvider". -// src/module.d.ts:2:22 - (ae-undocumented) Missing documentation for "authModulePinnipedProvider". ``` diff --git a/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md b/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md index 62355966c1..26e362fa11 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md +++ b/plugins/auth-backend-module-vmware-cloud-provider/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-auth-backend-module-vmware-cloud-provider +## 0.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + +## 0.4.0 + +### Minor Changes + +- d0edfec: **BREAKING**: The `profileEmailMatchingUserEntityEmail` sign-in resolver has been removed as it was using an insecure fallback for resolving user identities. See https://backstage.io/docs/auth/identity-resolver#sign-in-without-users-in-the-catalog for how to create a custom sign-in resolver if needed as a replacement. + +### Patch Changes + +- 217458a: Updated configuration schema to include the new `allowedDomains` option for the `emailLocalPartMatchingUserEntityName` sign-in resolver. +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + ## 0.4.0-next.1 ### Minor Changes diff --git a/plugins/auth-backend-module-vmware-cloud-provider/package.json b/plugins/auth-backend-module-vmware-cloud-provider/package.json index 0442f5b299..d6339f0110 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/package.json +++ b/plugins/auth-backend-module-vmware-cloud-provider/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend-module-vmware-cloud-provider", - "version": "0.4.0-next.1", + "version": "0.4.1-next.0", "description": "The vmware-cloud-provider backend module for the auth plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/auth-backend-module-vmware-cloud-provider/report.api.md b/plugins/auth-backend-module-vmware-cloud-provider/report.api.md index 1bd10c7eae..46cf7810ca 100644 --- a/plugins/auth-backend-module-vmware-cloud-provider/report.api.md +++ b/plugins/auth-backend-module-vmware-cloud-provider/report.api.md @@ -33,12 +33,4 @@ export interface VMwareCloudAuthenticatorContext { export type VMwarePassportProfile = PassportProfile & { organizationId?: string; }; - -// Warnings were encountered during analysis: -// -// src/authenticator.d.ts:4:1 - (ae-undocumented) Missing documentation for "VMwareCloudAuthenticatorContext". -// src/authenticator.d.ts:5:5 - (ae-undocumented) Missing documentation for "organizationId". -// src/authenticator.d.ts:6:5 - (ae-undocumented) Missing documentation for "providerStrategy". -// src/authenticator.d.ts:7:5 - (ae-undocumented) Missing documentation for "helper". -// src/authenticator.d.ts:10:1 - (ae-undocumented) Missing documentation for "VMwarePassportProfile". ``` diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md index 664ce3a37f..245b6285e7 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,72 @@ # @backstage/plugin-auth-backend +## 0.24.0-next.0 + +### Minor Changes + +- 75168e3: **BREAKING**: The AWS ALB `fullProfile` will no longer have the its username or email converted to lowercase. This is to ensure unique handling of the users. You may need to update and configure a custom sign-in resolver or profile transform as a result. + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend-module-aws-alb-provider@0.3.0-next.0 + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/catalog-client@1.8.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.3.2-next.0 + - @backstage/plugin-auth-backend-module-auth0-provider@0.1.2-next.0 + - @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.2.2-next.0 + - @backstage/plugin-auth-backend-module-bitbucket-provider@0.2.2-next.0 + - @backstage/plugin-auth-backend-module-bitbucket-server-provider@0.1.2-next.0 + - @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.3.2-next.0 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.3.2-next.0 + - @backstage/plugin-auth-backend-module-github-provider@0.2.2-next.0 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.2.2-next.0 + - @backstage/plugin-auth-backend-module-google-provider@0.2.2-next.0 + - @backstage/plugin-auth-backend-module-microsoft-provider@0.2.2-next.0 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.3.2-next.0 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.2.2-next.0 + - @backstage/plugin-auth-backend-module-oidc-provider@0.3.2-next.0 + - @backstage/plugin-auth-backend-module-okta-provider@0.1.2-next.0 + - @backstage/plugin-auth-backend-module-onelogin-provider@0.2.2-next.0 + +## 0.23.1 + +### Patch Changes + +- 094eaa3: Remove references to in-repo backend-common +- Updated dependencies + - @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.3.1 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.3.1 + - @backstage/plugin-auth-backend-module-bitbucket-provider@0.2.1 + - @backstage/plugin-auth-backend-module-microsoft-provider@0.2.1 + - @backstage/plugin-auth-backend-module-onelogin-provider@0.2.1 + - @backstage/plugin-auth-backend-module-aws-alb-provider@0.2.1 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.3.1 + - @backstage/plugin-auth-backend-module-github-provider@0.2.1 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.2.1 + - @backstage/plugin-auth-backend-module-google-provider@0.2.1 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.3.1 + - @backstage/plugin-auth-backend-module-oidc-provider@0.3.1 + - @backstage/plugin-auth-backend-module-okta-provider@0.1.1 + - @backstage/plugin-auth-node@0.5.3 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/catalog-client@1.7.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-auth-backend-module-auth0-provider@0.1.1 + - @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.2.1 + - @backstage/plugin-auth-backend-module-bitbucket-server-provider@0.1.1 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.2.1 + ## 0.23.1-next.1 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index ff36f84138..0446974a5f 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-backend", - "version": "0.23.1-next.1", + "version": "0.24.0-next.0", "description": "A Backstage backend plugin that handles authentication", "backstage": { "role": "backend-plugin", diff --git a/plugins/auth-backend/report.api.md b/plugins/auth-backend/report.api.md index 80976525d3..20690528d1 100644 --- a/plugins/auth-backend/report.api.md +++ b/plugins/auth-backend/report.api.md @@ -700,68 +700,4 @@ export const verifyNonce: (req: express.Request, providerId: string) => void; // @public @deprecated (undocumented) export type WebMessageResponse = WebMessageResponse_2; - -// Warnings were encountered during analysis: -// -// src/identity/types.d.ts:13:1 - (ae-undocumented) Missing documentation for "TokenParams". -// src/lib/flow/authFlowHelpers.d.ts:8:22 - (ae-undocumented) Missing documentation for "postMessageResponse". -// src/lib/flow/authFlowHelpers.d.ts:13:22 - (ae-undocumented) Missing documentation for "ensuresXRequestedWith". -// src/lib/flow/types.d.ts:6:1 - (ae-undocumented) Missing documentation for "WebMessageResponse". -// src/lib/oauth/OAuthAdapter.d.ts:10:1 - (ae-undocumented) Missing documentation for "OAuthAdapterOptions". -// src/lib/oauth/OAuthAdapter.d.ts:23:1 - (ae-undocumented) Missing documentation for "OAuthAdapter". -// src/lib/oauth/OAuthAdapter.d.ts:26:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/lib/oauth/OAuthAdapter.d.ts:29:5 - (ae-undocumented) Missing documentation for "start". -// src/lib/oauth/OAuthAdapter.d.ts:30:5 - (ae-undocumented) Missing documentation for "frameHandler". -// src/lib/oauth/OAuthAdapter.d.ts:31:5 - (ae-undocumented) Missing documentation for "logout". -// src/lib/oauth/OAuthAdapter.d.ts:32:5 - (ae-undocumented) Missing documentation for "refresh". -// src/lib/oauth/OAuthEnvironmentHandler.d.ts:6:22 - (ae-undocumented) Missing documentation for "OAuthEnvironmentHandler". -// src/lib/oauth/helpers.d.ts:7:22 - (ae-undocumented) Missing documentation for "readState". -// src/lib/oauth/helpers.d.ts:12:22 - (ae-undocumented) Missing documentation for "encodeState". -// src/lib/oauth/helpers.d.ts:17:22 - (ae-undocumented) Missing documentation for "verifyNonce". -// src/lib/oauth/types.d.ts:29:1 - (ae-undocumented) Missing documentation for "OAuthResult". -// src/lib/oauth/types.d.ts:44:1 - (ae-undocumented) Missing documentation for "OAuthResponse". -// src/lib/oauth/types.d.ts:53:1 - (ae-undocumented) Missing documentation for "OAuthProviderInfo". -// src/lib/oauth/types.d.ts:75:1 - (ae-undocumented) Missing documentation for "OAuthState". -// src/lib/oauth/types.d.ts:80:1 - (ae-undocumented) Missing documentation for "OAuthStartRequest". -// src/lib/oauth/types.d.ts:88:1 - (ae-undocumented) Missing documentation for "OAuthRefreshRequest". -// src/lib/oauth/types.d.ts:96:1 - (ae-undocumented) Missing documentation for "OAuthLogoutRequest". -// src/lib/oauth/types.d.ts:103:1 - (ae-undocumented) Missing documentation for "OAuthHandlers". -// src/providers/azure-easyauth/index.d.ts:7:1 - (ae-undocumented) Missing documentation for "EasyAuthResult". -// src/providers/bitbucket/provider.d.ts:9:1 - (ae-undocumented) Missing documentation for "BitbucketOAuthResult". -// src/providers/bitbucket/provider.d.ts:23:1 - (ae-undocumented) Missing documentation for "BitbucketPassportProfile". -// src/providers/bitbucketServer/provider.d.ts:9:1 - (ae-undocumented) Missing documentation for "BitbucketServerOAuthResult". -// src/providers/cloudflare-access/provider.d.ts:90:1 - (ae-undocumented) Missing documentation for "CloudflareAccessResult". -// src/providers/github/provider.d.ts:5:1 - (ae-undocumented) Missing documentation for "GithubOAuthResult". -// src/providers/oauth2-proxy/index.d.ts:7:1 - (ae-undocumented) Missing documentation for "OAuth2ProxyResult". -// src/providers/oidc/index.d.ts:7:1 - (ae-undocumented) Missing documentation for "OidcAuthResult". -// src/providers/prepareBackstageIdentityResponse.d.ts:6:22 - (ae-undocumented) Missing documentation for "prepareBackstageIdentityResponse". -// src/providers/router.d.ts:9:1 - (ae-undocumented) Missing documentation for "ProviderFactories". -// src/providers/router.d.ts:27:1 - (ae-undocumented) Missing documentation for "createOriginFilter". -// src/providers/saml/provider.d.ts:6:1 - (ae-undocumented) Missing documentation for "SamlAuthResult". -// src/providers/types.d.ts:7:1 - (ae-undocumented) Missing documentation for "AuthResolverCatalogUserQuery". -// src/providers/types.d.ts:12:1 - (ae-undocumented) Missing documentation for "AuthResolverContext". -// src/providers/types.d.ts:17:1 - (ae-undocumented) Missing documentation for "CookieConfigurer". -// src/providers/types.d.ts:22:1 - (ae-undocumented) Missing documentation for "OAuthStartResponse". -// src/providers/types.d.ts:36:1 - (ae-undocumented) Missing documentation for "AuthProviderConfig". -// src/providers/types.d.ts:41:1 - (ae-undocumented) Missing documentation for "AuthProviderRouteHandlers". -// src/providers/types.d.ts:46:1 - (ae-undocumented) Missing documentation for "AuthProviderFactory". -// src/providers/types.d.ts:51:1 - (ae-undocumented) Missing documentation for "AuthResponse". -// src/providers/types.d.ts:56:1 - (ae-undocumented) Missing documentation for "ProfileInfo". -// src/providers/types.d.ts:61:1 - (ae-undocumented) Missing documentation for "SignInInfo". -// src/providers/types.d.ts:66:1 - (ae-undocumented) Missing documentation for "SignInResolver". -// src/providers/types.d.ts:96:1 - (ae-undocumented) Missing documentation for "StateEncoder". -// src/service/router.d.ts:11:1 - (ae-undocumented) Missing documentation for "RouterOptions". -// src/service/router.d.ts:12:5 - (ae-undocumented) Missing documentation for "logger". -// src/service/router.d.ts:13:5 - (ae-undocumented) Missing documentation for "database". -// src/service/router.d.ts:14:5 - (ae-undocumented) Missing documentation for "config". -// src/service/router.d.ts:15:5 - (ae-undocumented) Missing documentation for "discovery". -// src/service/router.d.ts:16:5 - (ae-undocumented) Missing documentation for "tokenManager". -// src/service/router.d.ts:17:5 - (ae-undocumented) Missing documentation for "auth". -// src/service/router.d.ts:18:5 - (ae-undocumented) Missing documentation for "httpAuth". -// src/service/router.d.ts:19:5 - (ae-undocumented) Missing documentation for "tokenFactoryAlgorithm". -// src/service/router.d.ts:20:5 - (ae-undocumented) Missing documentation for "providerFactories". -// src/service/router.d.ts:21:5 - (ae-undocumented) Missing documentation for "disableDefaultProviderFactories". -// src/service/router.d.ts:22:5 - (ae-undocumented) Missing documentation for "catalogApi". -// src/service/router.d.ts:23:5 - (ae-undocumented) Missing documentation for "ownershipResolver". -// src/service/router.d.ts:29:1 - (ae-undocumented) Missing documentation for "createRouter". ``` diff --git a/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.test.ts b/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.test.ts index 2cd58d692f..749b684d6e 100644 --- a/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.test.ts +++ b/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.test.ts @@ -17,11 +17,11 @@ import { TokenManager } from '@backstage/backend-common'; import { RELATION_MEMBER_OF, - UserEntity, UserEntityV1alpha1, } from '@backstage/catalog-model'; import { catalogServiceMock } from '@backstage/plugin-catalog-node/testUtils'; import { CatalogIdentityClient } from './CatalogIdentityClient'; +import { mockServices } from '@backstage/backend-test-utils'; describe('CatalogIdentityClient', () => { const tokenManager: jest.Mocked = { @@ -32,14 +32,25 @@ describe('CatalogIdentityClient', () => { afterEach(() => jest.resetAllMocks()); it('findUser passes through the correct search params', async () => { - const catalogApi = catalogServiceMock.mock({ - getEntities: jest - .fn() - .mockResolvedValueOnce({ items: [{} as UserEntity] }), + const catalogApi = catalogServiceMock({ + entities: [ + { + apiVersion: 'backstage.io/v1beta1', + kind: 'User', + metadata: { + name: 'user', + namespace: 'default', + annotations: { key: 'value' }, + }, + spec: {}, + }, + ], }); + jest.spyOn(catalogApi, 'getEntities'); + tokenManager.getToken.mockResolvedValue({ token: 'my-token' }); const client = new CatalogIdentityClient({ - discovery: {} as any, + discovery: mockServices.discovery(), catalogApi, tokenManager, }); @@ -94,9 +105,8 @@ describe('CatalogIdentityClient', () => { ], }, ]; - const catalogApi = catalogServiceMock.mock({ - getEntities: jest.fn().mockResolvedValueOnce({ items: mockUsers }), - }); + const catalogApi = catalogServiceMock({ entities: mockUsers }); + jest.spyOn(catalogApi, 'getEntities'); tokenManager.getToken.mockResolvedValue({ token: 'my-token' }); const client = new CatalogIdentityClient({ diff --git a/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.test.ts b/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.test.ts index a1ca3c53ac..c51d99a558 100644 --- a/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.test.ts +++ b/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.test.ts @@ -26,9 +26,8 @@ describe('CatalogAuthResolverContext', () => { jest.clearAllMocks(); }); - const catalogApi = catalogServiceMock.mock({ - getEntities: jest.fn().mockResolvedValue({ items: [] }), - }); + const catalogApi = catalogServiceMock(); + jest.spyOn(catalogApi, 'getEntities'); it('adds kind to filter when missing', async () => { const context = CatalogAuthResolverContext.create({ diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md index f87f9dbb10..144aa1ff58 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,33 @@ # @backstage/plugin-auth-node +## 0.5.4-next.0 + +### Patch Changes + +- a0a9a4a: Browsers silently drop cookies that exceed 4KB, which can be problematic for refresh tokens and other large cookies.This update ensures that large cookies, like refresh tokens, are not dropped by browsers, maintaining the integrity of the authentication process. The changes include both the implementation of the cookie splitting logic and corresponding tests to validate the new functionality. +- Updated dependencies + - @backstage/catalog-client@1.8.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## 0.5.3 + +### Patch Changes + +- 217458a: Added a new `allowedDomains` option for the common `emailLocalPartMatchingUserEntityName` sign-in resolver. +- 094eaa3: Remove references to in-repo backend-common +- e4ad29a: Fix authentication error handling using redirect flow via `enableExperimentalRedirectFlow` config. If an error is caught during authentication, the user is redirected back to app origin with `error` query parameter containing the error message. +- Updated dependencies + - @backstage/catalog-client@1.7.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.5.3-next.1 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 8fff337b9d..b3e7210e62 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-node", - "version": "0.5.3-next.1", + "version": "0.5.4-next.0", "backstage": { "role": "node-library", "pluginId": "auth", diff --git a/plugins/auth-node/report.api.md b/plugins/auth-node/report.api.md index 5d3fce8f23..db61257f7a 100644 --- a/plugins/auth-node/report.api.md +++ b/plugins/auth-node/report.api.md @@ -700,128 +700,4 @@ export type WebMessageResponse = type: 'authorization_response'; error: Error; }; - -// Warnings were encountered during analysis: -// -// src/extensions/AuthOwnershipResolutionExtensionPoint.d.ts:3:1 - (ae-undocumented) Missing documentation for "AuthOwnershipResolutionExtensionPoint". -// src/extensions/AuthOwnershipResolutionExtensionPoint.d.ts:4:5 - (ae-undocumented) Missing documentation for "setAuthOwnershipResolver". -// src/extensions/AuthOwnershipResolutionExtensionPoint.d.ts:7:22 - (ae-undocumented) Missing documentation for "authOwnershipResolutionExtensionPoint". -// src/extensions/AuthProvidersExtensionPoint.d.ts:3:1 - (ae-undocumented) Missing documentation for "AuthProviderRegistrationOptions". -// src/extensions/AuthProvidersExtensionPoint.d.ts:4:5 - (ae-undocumented) Missing documentation for "providerId". -// src/extensions/AuthProvidersExtensionPoint.d.ts:5:5 - (ae-undocumented) Missing documentation for "factory". -// src/extensions/AuthProvidersExtensionPoint.d.ts:8:1 - (ae-undocumented) Missing documentation for "AuthProvidersExtensionPoint". -// src/extensions/AuthProvidersExtensionPoint.d.ts:9:5 - (ae-undocumented) Missing documentation for "registerProvider". -// src/extensions/AuthProvidersExtensionPoint.d.ts:12:22 - (ae-undocumented) Missing documentation for "authProvidersExtensionPoint". -// src/flow/sendWebMessageResponse.d.ts:17:1 - (ae-undocumented) Missing documentation for "sendWebMessageResponse". -// src/identity/DefaultIdentityClient.d.ts:35:5 - (ae-undocumented) Missing documentation for "getIdentity". -// src/identity/IdentityClient.d.ts:13:5 - (ae-undocumented) Missing documentation for "create". -// src/oauth/OAuthEnvironmentHandler.d.ts:5:1 - (ae-undocumented) Missing documentation for "OAuthEnvironmentHandler". -// src/oauth/OAuthEnvironmentHandler.d.ts:7:5 - (ae-undocumented) Missing documentation for "mapConfig". -// src/oauth/OAuthEnvironmentHandler.d.ts:9:5 - (ae-undocumented) Missing documentation for "start". -// src/oauth/OAuthEnvironmentHandler.d.ts:10:5 - (ae-undocumented) Missing documentation for "frameHandler". -// src/oauth/OAuthEnvironmentHandler.d.ts:11:5 - (ae-undocumented) Missing documentation for "refresh". -// src/oauth/OAuthEnvironmentHandler.d.ts:12:5 - (ae-undocumented) Missing documentation for "logout". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:6:1 - (ae-undocumented) Missing documentation for "PassportOAuthResult". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:17:1 - (ae-undocumented) Missing documentation for "PassportOAuthPrivateInfo". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:21:1 - (ae-undocumented) Missing documentation for "PassportOAuthDoneCallback". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:23:1 - (ae-undocumented) Missing documentation for "PassportOAuthAuthenticatorHelper". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:25:5 - (ae-undocumented) Missing documentation for "defaultProfileTransform". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:26:5 - (ae-undocumented) Missing documentation for "from". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:28:5 - (ae-undocumented) Missing documentation for "start". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:32:5 - (ae-undocumented) Missing documentation for "authenticate". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:33:5 - (ae-undocumented) Missing documentation for "refresh". -// src/oauth/PassportOAuthAuthenticatorHelper.d.ts:34:5 - (ae-undocumented) Missing documentation for "fetchProfile". -// src/oauth/createOAuthProviderFactory.d.ts:6:1 - (ae-undocumented) Missing documentation for "createOAuthProviderFactory". -// src/oauth/createOAuthRouteHandlers.d.ts:6:1 - (ae-undocumented) Missing documentation for "OAuthRouteHandlersOptions". -// src/oauth/createOAuthRouteHandlers.d.ts:7:5 - (ae-undocumented) Missing documentation for "authenticator". -// src/oauth/createOAuthRouteHandlers.d.ts:8:5 - (ae-undocumented) Missing documentation for "appUrl". -// src/oauth/createOAuthRouteHandlers.d.ts:9:5 - (ae-undocumented) Missing documentation for "baseUrl". -// src/oauth/createOAuthRouteHandlers.d.ts:10:5 - (ae-undocumented) Missing documentation for "isOriginAllowed". -// src/oauth/createOAuthRouteHandlers.d.ts:11:5 - (ae-undocumented) Missing documentation for "providerId". -// src/oauth/createOAuthRouteHandlers.d.ts:12:5 - (ae-undocumented) Missing documentation for "config". -// src/oauth/createOAuthRouteHandlers.d.ts:13:5 - (ae-undocumented) Missing documentation for "resolverContext". -// src/oauth/createOAuthRouteHandlers.d.ts:14:5 - (ae-undocumented) Missing documentation for "additionalScopes". -// src/oauth/createOAuthRouteHandlers.d.ts:15:5 - (ae-undocumented) Missing documentation for "stateTransform". -// src/oauth/createOAuthRouteHandlers.d.ts:16:5 - (ae-undocumented) Missing documentation for "profileTransform". -// src/oauth/createOAuthRouteHandlers.d.ts:17:5 - (ae-undocumented) Missing documentation for "cookieConfigurer". -// src/oauth/createOAuthRouteHandlers.d.ts:18:5 - (ae-undocumented) Missing documentation for "signInResolver". -// src/oauth/createOAuthRouteHandlers.d.ts:21:1 - (ae-undocumented) Missing documentation for "createOAuthRouteHandlers". -// src/oauth/state.d.ts:16:1 - (ae-undocumented) Missing documentation for "OAuthStateTransform". -// src/oauth/state.d.ts:22:1 - (ae-undocumented) Missing documentation for "encodeOAuthState". -// src/oauth/state.d.ts:24:1 - (ae-undocumented) Missing documentation for "decodeOAuthState". -// src/oauth/types.d.ts:5:1 - (ae-undocumented) Missing documentation for "OAuthSession". -// src/oauth/types.d.ts:6:5 - (ae-undocumented) Missing documentation for "accessToken". -// src/oauth/types.d.ts:7:5 - (ae-undocumented) Missing documentation for "tokenType". -// src/oauth/types.d.ts:8:5 - (ae-undocumented) Missing documentation for "idToken". -// src/oauth/types.d.ts:9:5 - (ae-undocumented) Missing documentation for "scope". -// src/oauth/types.d.ts:10:5 - (ae-undocumented) Missing documentation for "expiresInSeconds". -// src/oauth/types.d.ts:11:5 - (ae-undocumented) Missing documentation for "refreshToken". -// src/oauth/types.d.ts:12:5 - (ae-undocumented) Missing documentation for "refreshTokenExpiresInSeconds". -// src/oauth/types.d.ts:15:1 - (ae-undocumented) Missing documentation for "OAuthAuthenticatorScopeOptions". -// src/oauth/types.d.ts:16:5 - (ae-undocumented) Missing documentation for "persist". -// src/oauth/types.d.ts:17:5 - (ae-undocumented) Missing documentation for "required". -// src/oauth/types.d.ts:18:5 - (ae-undocumented) Missing documentation for "transform". -// src/oauth/types.d.ts:30:1 - (ae-undocumented) Missing documentation for "OAuthAuthenticatorStartInput". -// src/oauth/types.d.ts:31:5 - (ae-undocumented) Missing documentation for "scope". -// src/oauth/types.d.ts:32:5 - (ae-undocumented) Missing documentation for "state". -// src/oauth/types.d.ts:33:5 - (ae-undocumented) Missing documentation for "req". -// src/oauth/types.d.ts:36:1 - (ae-undocumented) Missing documentation for "OAuthAuthenticatorAuthenticateInput". -// src/oauth/types.d.ts:37:5 - (ae-undocumented) Missing documentation for "req". -// src/oauth/types.d.ts:40:1 - (ae-undocumented) Missing documentation for "OAuthAuthenticatorRefreshInput". -// src/oauth/types.d.ts:41:5 - (ae-undocumented) Missing documentation for "scope". -// src/oauth/types.d.ts:42:5 - (ae-undocumented) Missing documentation for "refreshToken". -// src/oauth/types.d.ts:43:5 - (ae-undocumented) Missing documentation for "req". -// src/oauth/types.d.ts:46:1 - (ae-undocumented) Missing documentation for "OAuthAuthenticatorLogoutInput". -// src/oauth/types.d.ts:47:5 - (ae-undocumented) Missing documentation for "accessToken". -// src/oauth/types.d.ts:48:5 - (ae-undocumented) Missing documentation for "refreshToken". -// src/oauth/types.d.ts:49:5 - (ae-undocumented) Missing documentation for "req". -// src/oauth/types.d.ts:52:1 - (ae-undocumented) Missing documentation for "OAuthAuthenticatorResult". -// src/oauth/types.d.ts:53:5 - (ae-undocumented) Missing documentation for "fullProfile". -// src/oauth/types.d.ts:54:5 - (ae-undocumented) Missing documentation for "session". -// src/oauth/types.d.ts:57:1 - (ae-undocumented) Missing documentation for "OAuthAuthenticator". -// src/oauth/types.d.ts:58:5 - (ae-undocumented) Missing documentation for "defaultProfileTransform". -// src/oauth/types.d.ts:60:5 - (ae-undocumented) Missing documentation for "shouldPersistScopes". -// src/oauth/types.d.ts:61:5 - (ae-undocumented) Missing documentation for "scopes". -// src/oauth/types.d.ts:62:5 - (ae-undocumented) Missing documentation for "initialize". -// src/oauth/types.d.ts:66:5 - (ae-undocumented) Missing documentation for "start". -// src/oauth/types.d.ts:70:5 - (ae-undocumented) Missing documentation for "authenticate". -// src/oauth/types.d.ts:71:5 - (ae-undocumented) Missing documentation for "refresh". -// src/oauth/types.d.ts:72:5 - (ae-undocumented) Missing documentation for "logout". -// src/oauth/types.d.ts:75:1 - (ae-undocumented) Missing documentation for "createOAuthAuthenticator". -// src/passport/PassportHelpers.d.ts:6:1 - (ae-undocumented) Missing documentation for "PassportHelpers". -// src/passport/PassportHelpers.d.ts:8:5 - (ae-undocumented) Missing documentation for "transformProfile". -// src/passport/PassportHelpers.d.ts:9:5 - (ae-undocumented) Missing documentation for "executeRedirectStrategy". -// src/passport/PassportHelpers.d.ts:19:5 - (ae-undocumented) Missing documentation for "executeFrameHandlerStrategy". -// src/passport/PassportHelpers.d.ts:23:5 - (ae-undocumented) Missing documentation for "executeRefreshTokenStrategy". -// src/passport/PassportHelpers.d.ts:34:5 - (ae-undocumented) Missing documentation for "executeFetchUserProfileStrategy". -// src/passport/types.d.ts:3:1 - (ae-undocumented) Missing documentation for "PassportProfile". -// src/passport/types.d.ts:9:1 - (ae-undocumented) Missing documentation for "PassportDoneCallback". -// src/proxy/createProxyAuthProviderFactory.d.ts:5:1 - (ae-undocumented) Missing documentation for "createProxyAuthProviderFactory". -// src/proxy/createProxyRouteHandlers.d.ts:5:1 - (ae-undocumented) Missing documentation for "ProxyAuthRouteHandlersOptions". -// src/proxy/createProxyRouteHandlers.d.ts:6:5 - (ae-undocumented) Missing documentation for "authenticator". -// src/proxy/createProxyRouteHandlers.d.ts:7:5 - (ae-undocumented) Missing documentation for "config". -// src/proxy/createProxyRouteHandlers.d.ts:8:5 - (ae-undocumented) Missing documentation for "resolverContext". -// src/proxy/createProxyRouteHandlers.d.ts:9:5 - (ae-undocumented) Missing documentation for "signInResolver". -// src/proxy/createProxyRouteHandlers.d.ts:10:5 - (ae-undocumented) Missing documentation for "profileTransform". -// src/proxy/createProxyRouteHandlers.d.ts:13:1 - (ae-undocumented) Missing documentation for "createProxyAuthRouteHandlers". -// src/proxy/types.d.ts:5:1 - (ae-undocumented) Missing documentation for "ProxyAuthenticator". -// src/proxy/types.d.ts:6:5 - (ae-undocumented) Missing documentation for "defaultProfileTransform". -// src/proxy/types.d.ts:7:5 - (ae-undocumented) Missing documentation for "initialize". -// src/proxy/types.d.ts:10:5 - (ae-undocumented) Missing documentation for "authenticate". -// src/proxy/types.d.ts:18:1 - (ae-undocumented) Missing documentation for "createProxyAuthenticator". -// src/sign-in/createSignInResolverFactory.d.ts:5:1 - (ae-undocumented) Missing documentation for "SignInResolverFactory". -// src/sign-in/createSignInResolverFactory.d.ts:6:5 - (ae-undocumented) Missing documentation for "__call". -// src/sign-in/createSignInResolverFactory.d.ts:7:5 - (ae-undocumented) Missing documentation for "optionsJsonSchema". -// src/sign-in/createSignInResolverFactory.d.ts:10:1 - (ae-undocumented) Missing documentation for "SignInResolverFactoryOptions". -// src/sign-in/createSignInResolverFactory.d.ts:11:5 - (ae-undocumented) Missing documentation for "optionsSchema". -// src/sign-in/createSignInResolverFactory.d.ts:12:5 - (ae-undocumented) Missing documentation for "create". -// src/sign-in/createSignInResolverFactory.d.ts:15:1 - (ae-undocumented) Missing documentation for "createSignInResolverFactory". -// src/sign-in/readDeclarativeSignInResolver.d.ts:5:1 - (ae-undocumented) Missing documentation for "ReadDeclarativeSignInResolverOptions". -// src/sign-in/readDeclarativeSignInResolver.d.ts:6:5 - (ae-undocumented) Missing documentation for "config". -// src/sign-in/readDeclarativeSignInResolver.d.ts:7:5 - (ae-undocumented) Missing documentation for "signInResolverFactories". -// src/sign-in/readDeclarativeSignInResolver.d.ts:12:1 - (ae-undocumented) Missing documentation for "readDeclarativeSignInResolver". -// src/types.d.ts:139:5 - (ae-undocumented) Missing documentation for "resolveOwnershipEntityRefs". -// src/types.d.ts:204:1 - (ae-undocumented) Missing documentation for "AuthProviderConfig". -// src/types.d.ts:224:1 - (ae-undocumented) Missing documentation for "AuthProviderFactory". -// src/types.d.ts:250:1 - (ae-undocumented) Missing documentation for "ClientAuthResponse". ``` diff --git a/plugins/auth-node/src/oauth/OAuthCookieManager.ts b/plugins/auth-node/src/oauth/OAuthCookieManager.ts index 1d06242a2e..d594d7e78b 100644 --- a/plugins/auth-node/src/oauth/OAuthCookieManager.ts +++ b/plugins/auth-node/src/oauth/OAuthCookieManager.ts @@ -14,12 +14,14 @@ * limitations under the License. */ -import { Request, Response } from 'express'; +import { CookieOptions, Request, Response } from 'express'; import { CookieConfigurer } from '../types'; const THOUSAND_DAYS_MS = 1000 * 24 * 60 * 60 * 1000; const TEN_MINUTES_MS = 600 * 1000; +const MAX_COOKIE_SIZE_CHARACTERS = 4000; + const defaultCookieConfigurer: CookieConfigurer = ({ callbackUrl, providerId, @@ -85,50 +87,170 @@ export class OAuthCookieManager { }; } - setNonce(res: Response, nonce: string, origin?: string) { - res.cookie(this.nonceCookie, nonce, { - maxAge: TEN_MINUTES_MS, - ...this.getConfig(origin, '/handler'), - }); + setNonce(res: Response, nonce: string, origin?: string): void { + this.setCookie( + res, + this.nonceCookie, + nonce, + TEN_MINUTES_MS, + origin, + '/handler', + ); } - setRefreshToken(res: Response, refreshToken: string, origin?: string) { - res.cookie(this.refreshTokenCookie, refreshToken, { - maxAge: THOUSAND_DAYS_MS, - ...this.getConfig(origin), - }); + setRefreshToken(res: Response, refreshToken: string, origin?: string): void { + this.setCookie( + res, + this.refreshTokenCookie, + refreshToken, + THOUSAND_DAYS_MS, + origin, + ); } - removeRefreshToken(res: Response, origin?: string) { - res.cookie(this.refreshTokenCookie, '', { - maxAge: 0, - ...this.getConfig(origin), - }); + removeRefreshToken(res: Response, origin?: string): void { + this.removeCookie(res, this.refreshTokenCookie, origin); } - removeGrantedScopes(res: Response, origin?: string) { - res.cookie(this.grantedScopeCookie, '', { - maxAge: 0, - ...this.getConfig(origin), - }); + removeGrantedScopes(res: Response, origin?: string): void { + this.removeCookie(res, this.grantedScopeCookie, origin); } - setGrantedScopes(res: Response, scope: string, origin?: string) { - res.cookie(this.grantedScopeCookie, scope, { - maxAge: THOUSAND_DAYS_MS, - ...this.getConfig(origin), - }); + setGrantedScopes(res: Response, scope: string, origin?: string): void { + this.setCookie( + res, + this.grantedScopeCookie, + scope, + THOUSAND_DAYS_MS, + origin, + ); } getNonce(req: Request): string | undefined { - return req.cookies[this.nonceCookie]; + return this.getCookie(req, this.nonceCookie); } getRefreshToken(req: Request): string | undefined { - return req.cookies[this.refreshTokenCookie]; + return this.getCookie(req, this.refreshTokenCookie); } getGrantedScopes(req: Request): string | undefined { - return req.cookies[this.grantedScopeCookie]; + return this.getCookie(req, this.grantedScopeCookie); + } + + private setCookie( + res: Response, + name: string, + val: string, + maxAge: number, + origin?: string, + pathSuffix: string = '', + ): Response { + const options = { + maxAge, + ...this.getConfig(origin, pathSuffix), + }; + const req = res.req; + let output = res; + if (val.length > MAX_COOKIE_SIZE_CHARACTERS) { + const nonChunkedFormatExists = !!req.cookies[name]; + if (nonChunkedFormatExists) { + output = output.cookie(name, '', this.getRemoveCookieOptions()); + } + + const chunked = this.splitCookieToChunks(val, MAX_COOKIE_SIZE_CHARACTERS); + chunked.forEach((value, chunkNumber) => { + output = output.cookie( + OAuthCookieManager.getCookieChunkName(name, chunkNumber), + value, + options, + ); + }); + return output; + } + + const chunkedFormatExists = OAuthCookieManager.chunkedCookieExists( + req, + name, + ); + if (chunkedFormatExists) { + for (let chunkNumber = 0; ; chunkNumber++) { + const key = OAuthCookieManager.getCookieChunkName(name, chunkNumber); + const exists = !!req.cookies[key]; + if (!exists) { + break; + } + output = output.cookie(key, '', this.getRemoveCookieOptions()); + } + } + + return output.cookie(name, val, options); + } + + private getCookie(req: Request, name: string): string | undefined { + const isChunked = OAuthCookieManager.chunkedCookieExists(req, name); + if (isChunked) { + const chunks: string[] = []; + let chunkNumber = 0; + let chunk = + req.cookies[OAuthCookieManager.getCookieChunkName(name, chunkNumber)]; + while (chunk) { + chunks.push(chunk); + chunkNumber++; + chunk = + req.cookies[OAuthCookieManager.getCookieChunkName(name, chunkNumber)]; + } + return chunks.join(''); + } + return req.cookies[name]; + } + + private removeCookie(res: Response, name: string, origin?: string): Response { + const req = res.req; + const options = this.getRemoveCookieOptions(origin); + const isChunked = OAuthCookieManager.chunkedCookieExists(req, name); + if (isChunked) { + const nonChunkedFormatExists = !!req.cookies[name]; + let output: Response = nonChunkedFormatExists + ? res.cookie(name, '', options) + : res; + for (let chunkNumber = 0; ; chunkNumber++) { + const key = OAuthCookieManager.getCookieChunkName(name, chunkNumber); + const exists = !!req.cookies[key]; + if (!exists) { + break; + } + output = output.cookie(key, '', options); + } + return output; + } + return res.cookie(name, '', options); + } + + private splitCookieToChunks(val: string, chunkSize: number): string[] { + const numChunks = Math.ceil(val.length / chunkSize); + const chunks: string[] = Array(numChunks); + + let offset: number = 0; + for (let i = 0; i < numChunks; i++) { + chunks[i] = val.substring(offset, offset + chunkSize); + offset += chunkSize; + } + return chunks; + } + + private static chunkedCookieExists(req: Request, name: string): boolean { + return !!req.cookies[OAuthCookieManager.getCookieChunkName(name, 0)]; + } + + private static getCookieChunkName(name: string, chunkIndex: number): string { + return `${name}-${chunkIndex}`; + } + + private getRemoveCookieOptions(origin?: string): CookieOptions { + return { + maxAge: 0, + ...this.getConfig(origin), + }; } } diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts index edf816cbee..4ea8dc17cc 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts @@ -49,6 +49,9 @@ const mockSession = { refreshToken: 'refresh-token', }; +const fiveKilobyteRefreshToken = + 'tylmRqYlw3LrrXATyPerWfYMXrF86h3FeI5DECH8lZ6bERd3SsSFaJZ7EVYw0Rr8HMQVqJAurcSDZBtXjry3y9hXGRmugroDiZngNw8ROSPqcWzaNWDbaVuxCGf3jdjccOio7MnbrmMGpKUF8dfx8DhBH9Vogj5qCWpDajxnGpG0HEOcAHmQbsmJ0KHKVIggAtTYIefjvO2I75Us5VI0sId1GYU0E2AsRVEGedu6oexiLV6QgyJHSyKzTTRD7DqZ4ktVLDsjOBUhAAEWbAl0vxhvjSUEt4YYEFshV5T13MhRGGma8QtVC7R1NItwtojj94QGfwnnQEviIuECONwQc6b4ObeQkPn4bgbsWG9PD5UJA9kBycBV8SqBQkKvT5nsrlsnO4E8zBJBtc2Pd14MUh6CzFng3Wee7v5uPQAnyDJT4V7COwY2F2opz2ifau6c6gUT5ybkEKbp945mo2R0mu99C7z99jhUq9RRxgrtSeNQ7o7j4NksnJThZMjxvpi978bG2P2oMWIl59LgsrYyUt2bkjEB5sQ1qwngitAQDy57flLwAyHAwTobQWjGDUumAAOHe9UqjsuPd6qf23nD0b2nn1rCtnGyJ0H6luaTT0Lqet1Eq9XRLHkL52mJN4iPLWKcDrYsK6KqKhIlVkHa4zXRKHnKONOgMqYioC155yncAirYYJQl142MWamHXqW3LsIjrPwPh9xj02TsWMG4hDt2kVb8Rp3qGJTDyDM79NKbIFFSkATIwyQmQB1THo0kAkpu3V7YYoOfDSl4N5TUbPJRSbEug6Xg3dqMjaHrL729xrGsc0iWC8DAKlTzPKnoVcjaYeru6zHIXhJJcs5BIxeA6afUcataOrzTddXdBiCehqtzjS0omXdeiHKv5d73fLeC5luUo1um6eVEidr5fXEApGpSHKsEo7mv1a9xOTCZPCE1lHntIkaG2vTgEc14QmGTXAjnaxuThGROxmm2gX8xM3JD6HYAfTxQpD5Y6fcMyF5joffBjLdFvHyYC66BghXIb4M7oZ0QQNqzMKzNuJ06JYLK4e0Pi2FQHt1XcO38sknlFnQh5S0GPMiGHXStIyDTfZNwPnI7iKH0GtsRZBUPmoG2cgJWSJPTMZOnIaC5AzZ8AClMT58GAa3MiyIhVLAs1hBv4BMu5mbY1QVSZ8UETZTDnXEn6rGIES41zkr1A3FThUhUTzJAwYLaG2nYn5Dtpge5C1B4LGElcVQDLJKKV3e6foYQMHcIzlwySKWSylI2bRjGJtE9594rlB9Yz1eno7KTtxy9IrMoAd13KnOCnrKjL40kGEWwbDScT0zob04qw1uuIcldUiLYLhPD0MtdxqtZTgvKeVTCeFNo23kWRnBvwhLlguGqvPCMfwXFjLldJsei9MElZgRrPgubBb7ZjSSdGT6CKey6TaFPx5jOT7V9v88jfQJMyEoX9jMCvCQZMFZyCMQdGKU40dOaozRqsymNMhPOgvheIhlXfN0MhU6RLJGhUen0QLuRBy2MiK82z1nkKSnlhMB3REmFmAIXrVhXiOalPLDVB9kR3csn5f6bddAcTzDLrv2YH6ZGhmXwILKJ0osKm8e9aIKVWHitr0LXl5zvkDj7U9CIVtktLLRodLTVxlKRS048LmbRBpGafoxXgOlcVfDmQO8LdKbKHWJOEN4oEhxF3zEgPf9rRMWEI0oE9KoOau7R5DVJMB6Bbf6tOxbHlVwPmnXGsEIJFDt7Wb79knZihK1mfLqaOumcAznQZiFdNt5NbBSestUCytXDDJn1fm8IGxXsBQSsEEtklg9phenjmMG38ABmyLhZCDiDEQ4M6VRPseVXpPhNYuija8YePhrB1y1aW1Cab7wglIIbeGj1Z06sJ6i4HGkAXtn2M1HolRLc6oPohihPaYtrKOFCtJarwbCHMtQjaR9GnzVfGoLFKemhY0kOZvAdLmB0g1QUKsmcKtNdpQwVYwciJE9vvIlgMIpeWBrU6cDkdIbQDOM6dvLicO3BZQqBXbSNgLcXsF1JqlD5YgUzdARjxv7tagxjXVJ4DVB31UgXcBWlEmI1gGrbVZUTQ4Kaj609StfQw2XNNdal8eES46C4rqHtTGCtdUjW7QINXaqt1efjNk4WYFS9OTGKL0GcgvF5ERlHuAQh0R2R0rSQLl72ayOZDeausNRBDYyI24pie4gFb2LI1hJjRwVTJej0xllYoPtMgLxmkCnUpPhbpPjIwPYIZfSYE6CoV7oxy4BDSyK6ueE6dUak6hlEZwOnDh3aOTSVioq53vuqk6ofC2kT2ar1PfgH5SGxpXB6RpI5bYiF4NYoDX9zEOKHD7hwVHoLK4UusPJWSNdbIDuIBmGb6p83vnEZukNaY5ocPZTZyM1Ex8dDOFiOiZs4bOgOY0NsJKv8pb4I1lDzSeBqPbytFkSAQrU5pUgK45bSIFlyEG3ef59nPHblCA8GstcMSm3zZETd5yVq1NAmQvAnabHyc10T3Arp8cm9Xe1SPVGMzEP6QjXMkZMRbwn8k9nXXcFNfRe6XjE4EhifwRuAYoUJ5jQEF5yrF1nYwwbsx6nlKtxlkxWljavjxH1aP8w8t50T3THX1hx39aktWddjRSjQJtu1rZcCxBCBx1FxictyrP9y5dhVVMGIup6mJ8vHws8nudLqHaiEEQlGlRGKi6hMcF31S8l1RWG6KJRsbm8x6jvJchk5ekr9Cj2fmCkpVdE2yCianjU7pCLibtfR7HV36uGK2d0DXwbrv0sXPr9M7KGgTLmSjlUJrohDBHshfHPdT5DgIq1boeBBZjxlxNoUxN7veZ80VjFSuNbCxTg9rcZeAT35qgt06oHboySGL1ZwGPs4Ip73tN1AYRlfo3PZBHWCT4V8mF0R9DDyFEdhkZtvjJLTNqroJsUuUAQzggheYufFunJ8lrwJyche4XaJqnKkv2JktuSbLXol2NoNX31493O2F2nnwWbzgff1jh2gDvPiG9o8wvNrXY06Ar47WDF62YipcLuAY50RnPWaVOgC2vV0OmDGMxnu3niKM0rSiyOtwWzc8SbRPkdRzGwqmtmSFfJSLzNdDLFAbGyDel7WzMUtWuXfvqEZwLVco49zrlcnLPAT4OKNvSl6AcZaTulU9sA2xbEK7gKMv7r8HNJLdEze2cgHG6rXUiayefWE3o2V8YjSHyUwV4PmrW8neAv0v5zKnKBsE6QwlYX23NoaPBvSokjStkNbLxLec0ip6Rgy7vJv5AEA7nxbDM53WUz44898OKHrVjN9vqvoKPBQUXf5BHihloJQCnpk03yzcc2h6y3e9rMFPyMyLFI6Hd4jCOuwtOqTJjAJAvcJzP7gKkeAe9N5ObwtjNqkkWPOd1AJccZukWnT1Lu390xfY3eyRjdMutc5OkTo4di2u0AjVH3LtRIRfa0AHVEly3ZvBCCYo9jCZ0CV8s6PlNOJ6SkyZyZzO3VyOUYxfj09D0P8kCaQ8YcyyoeSKPKVlFvxEqALW8nXASnKCv5mvsAyZMGpYRHtoyu4mVyCIrdOjmyGIK462aO6KaGC6lfWkKisQhLmSK2PmrPeimdS5ViOHllBfwexF5AsmNi6LYrjS00uPTki9K06h6yuppMVV8ykV6HIZoLABicTm5NofudhYrqV5hWstXxunHAk2cNq5Is1mFSNU4eedYbqu2c3y8iD3QzLWO6FmxwWFu3XUK8upSJ2cK34uUl8kX1uRsWSNEMIMOils8HZwHtxZ9fZ09sT2fRJKAIKxx57h0leLsjciNT5iTrMHgsNTlpa5I1QDSbEqtlFhDvh3TYmAYBYUENhcVBZmVK62XhTPpzgmEIQX4dlZJbz9g6I85jjfJILKLsEpmErtbzglmQpyQNw2EQFzYIWu25tv2dTDoDRP7uDV4KDKl5pXKRwu5z4UQI4sXLPACK78x6EoEyVUFnBktvnT7mQe5bqAlJ7dhqUEbzC3AJIgVosnRplZqXInSlNdpTFOasW3YyQmQtDB4183vKzCe4UMdKnHkRAoA127iSIUvKe5w66Cv8cQU38AFyWp5eedMNu9NlbqepUEaYSTmas5odjQUJ23D35QCuO67zFILoDKqWYv7jVKXMIVZUnyvspAWbtUFYDij5SmP2QQCgCpExeDtmoVPdjusL1QqQjukGVc9nXHwjhZ7KwrtrC5XMeKgl9EBvNjRum0sn4B7MLhuqJPqreoTLE2unGcI34mKbWRbyHjSq5xi8uZy72MuDCXyUU4GmZrXNqMG7QAw4wAvMKI31G0uHJEaOSV5II9XGAuYSGTuUuO4y31NTQBPpa2O0JFfnFJgYveVoWL3cCcjJivvEWezutrJ3eObOFbV4ACiZ1uXwJFlI484ILeWSNkS3jaSgfIYvBK9SMVZwg6IuFtjX6D855I4U4XHMqKWla3IcaKvIKwYFlrOWPq81lflKMPLQvJnrEiUi67jZJZYF0rMKtrv2ayFEfFBDtG58hA9uIkCbvHAQOBeWpzuTNUdtZoNdAuLqxddjpxZr4moFtk1CjdQihJNQLPeZR0ZrQYVBUPMyFIV639RykPOPyhxFMSKQNo9xjNCuxnoZWBbtqHHXtFZdUBq7qkb0GzfiADZ7LaRtj9MNOLLej35Wy0L0xPu5Hy5v9N0Jslj65YZJvC7N8uMYuIR6rMuh2MhuthHOlxLLbzcBy7gicP5aFofdt4fkOBgitm8CCRdm0f9DQpETZ5hEGmkI4V59HRs2Up4CG2ajOFIZwRmbvs3B8M5NZmwf1mmek0j7qfjkOhpsp7RHMqUztEYGd1RX3S6vaHDSFEouqPiU07CjNFDV1f8x94tUq8ldicDtQN1DbR5oBTvdmQZsgG8K6oU70IKNhwX4idMFNaTcQ0ZsfJk1rQLh6cIoksmrbm6tYu97HQhVsDmavCs5CnkN2mZDEEj9HfK6O53ck273X3jRo01lFfT65KcUSH71zr3KkLPzxBbhhCRmdpXQSfyHwbN7QbKWi6NkU8G7xb8oRFFsR'; + const baseConfig = { authenticator: mockAuthenticator, appUrl: 'http://127.0.0.1', @@ -91,7 +94,15 @@ function getNonceCookie(test: SuperAgentTest) { }); } -function getRefreshTokenCookie(test: SuperAgentTest) { +function getRefreshTokenCookie(test: SuperAgentTest, chunkNumber?: number) { + if (chunkNumber !== undefined) { + return test.jar.getCookie(`my-provider-refresh-token-${chunkNumber}`, { + domain: '127.0.0.1', + path: '/my-provider', + script: false, + secure: false, + }); + } return test.jar.getCookie('my-provider-refresh-token', { domain: '127.0.0.1', path: '/my-provider', @@ -267,6 +278,60 @@ describe('createOAuthRouteHandlers', () => { expect(getGrantedScopesCookie(agent)).toBeUndefined(); }); + it('should authenticate when refresh token is bigger than 4KB', async () => { + const agent = request.agent( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ); + + agent.jar.setCookie( + 'my-provider-nonce=123', + '127.0.0.1', + '/my-provider/handler', + ); + + mockAuthenticator.authenticate.mockResolvedValue({ + fullProfile: { id: 'id' } as PassportProfile, + session: { + ...mockSession, + refreshToken: fiveKilobyteRefreshToken, + }, + }); + + const res = await agent.get('/my-provider/handler/frame').query({ + state: encodeOAuthState({ + env: 'development', + nonce: '123', + } as OAuthState), + }); + + expect(mockAuthenticator.authenticate).toHaveBeenCalledWith( + { req: expect.anything() }, + { ctx: 'authenticator' }, + ); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + response: { + profile: {}, + providerInfo: { + accessToken: 'access-token', + expiresInSeconds: 3, + idToken: 'id-token', + scope: 'my-scope', + }, + }, + }); + + expect(getRefreshTokenCookie(agent, 0).value).toBe( + fiveKilobyteRefreshToken.slice(0, 4000), + ); + expect(getRefreshTokenCookie(agent, 1).value).toBe( + fiveKilobyteRefreshToken.slice(4000), + ); + expect(getGrantedScopesCookie(agent)).toBeUndefined(); + }); + it('should authenticate with sign-in, profile transform, and persisted scopes', async () => { const agent = request.agent( wrapInApp( @@ -556,6 +621,60 @@ describe('createOAuthRouteHandlers', () => { }); }); + it('should refresh for chunked token', async () => { + const agent = request.agent( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ); + + agent.jar.setCookie( + `my-provider-refresh-token-0=${fiveKilobyteRefreshToken.slice( + 0, + 4000, + )}`, + '127.0.0.1', + '/my-provider', + ); + agent.jar.setCookie( + `my-provider-refresh-token-1=${fiveKilobyteRefreshToken.slice(4000)}`, + '127.0.0.1', + '/my-provider', + ); + + mockAuthenticator.refresh.mockImplementation(async ({ scope }) => ({ + fullProfile: { id: 'id' } as PassportProfile, + session: { + ...mockSession, + scope, + refreshToken: fiveKilobyteRefreshToken, + }, + })); + + const res = await agent + .post('/my-provider/refresh') + .set('X-Requested-With', 'XMLHttpRequest') + .query({ scope: 'my-scope' }); + + expect(mockAuthenticator.refresh).toHaveBeenCalledWith( + { + req: expect.anything(), + refreshToken: fiveKilobyteRefreshToken, + scope: 'my-scope', + }, + { ctx: 'authenticator' }, + ); + + expect(res.status).toBe(200); + expect(res.body).toEqual({ + profile: {}, + providerInfo: { + accessToken: 'access-token', + expiresInSeconds: 3, + idToken: 'id-token', + scope: 'my-scope', + }, + }); + }); + it('should refresh with sign-in, profile transform, and persisted scopes', async () => { const agent = request.agent( wrapInApp( diff --git a/plugins/auth-react/CHANGELOG.md b/plugins/auth-react/CHANGELOG.md index ac6f473383..202665f573 100644 --- a/plugins/auth-react/CHANGELOG.md +++ b/plugins/auth-react/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-auth-react +## 0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.16.0-next.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/errors@1.2.4 + +## 0.1.7 + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- Updated dependencies + - @backstage/core-components@0.15.1 + - @backstage/core-plugin-api@1.10.0 + - @backstage/errors@1.2.4 + ## 0.1.7-next.2 ### Patch Changes diff --git a/plugins/auth-react/package.json b/plugins/auth-react/package.json index c290bab01d..ddbd2e2d18 100644 --- a/plugins/auth-react/package.json +++ b/plugins/auth-react/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-auth-react", - "version": "0.1.7-next.2", + "version": "0.1.8-next.0", "description": "Web library for the auth plugin", "backstage": { "role": "web-library", diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md index 65e3ef76ef..47a419a515 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.2.24 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.15.1 + ## 0.2.24-next.1 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 131fc41b16..f25cc3b52b 100644 --- a/plugins/bitbucket-cloud-common/package.json +++ b/plugins/bitbucket-cloud-common/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bitbucket-cloud-common", - "version": "0.2.24-next.1", + "version": "0.2.24", "description": "Common functionalities for bitbucket-cloud plugins", "backstage": { "role": "common-library", diff --git a/plugins/bitbucket-cloud-common/report.api.md b/plugins/bitbucket-cloud-common/report.api.md index ebad8ff878..833a367c03 100644 --- a/plugins/bitbucket-cloud-common/report.api.md +++ b/plugins/bitbucket-cloud-common/report.api.md @@ -482,154 +482,4 @@ export class WithPagination< options?: PaginationOptions, ): AsyncGenerator, void, unknown>; } - -// Warnings were encountered during analysis: -// -// src/BitbucketCloudClient.d.ts:6:1 - (ae-undocumented) Missing documentation for "BitbucketCloudClient". -// src/BitbucketCloudClient.d.ts:8:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/BitbucketCloudClient.d.ts:10:5 - (ae-undocumented) Missing documentation for "searchCode". -// src/BitbucketCloudClient.d.ts:11:5 - (ae-undocumented) Missing documentation for "listRepositoriesByWorkspace". -// src/BitbucketCloudClient.d.ts:12:5 - (ae-undocumented) Missing documentation for "listProjectsByWorkspace". -// src/BitbucketCloudClient.d.ts:13:5 - (ae-undocumented) Missing documentation for "listWorkspaces". -// src/BitbucketCloudClient.d.ts:14:5 - (ae-undocumented) Missing documentation for "listBranchesByRepository". -// src/events/index.d.ts:3:1 - (ae-undocumented) Missing documentation for "Events". -// src/events/index.d.ts:5:5 - (ae-undocumented) Missing documentation for "RepoEvent". -// src/events/index.d.ts:6:9 - (ae-undocumented) Missing documentation for "repository". -// src/events/index.d.ts:9:9 - (ae-undocumented) Missing documentation for "actor". -// src/events/index.d.ts:12:5 - (ae-undocumented) Missing documentation for "RepoPushEvent". -// src/events/index.d.ts:13:9 - (ae-undocumented) Missing documentation for "push". -// src/events/index.d.ts:16:5 - (ae-undocumented) Missing documentation for "RepoPush". -// src/events/index.d.ts:17:9 - (ae-undocumented) Missing documentation for "changes". -// src/events/index.d.ts:20:5 - (ae-undocumented) Missing documentation for "Change". -// src/events/index.d.ts:21:9 - (ae-undocumented) Missing documentation for "old". -// src/events/index.d.ts:22:9 - (ae-undocumented) Missing documentation for "new". -// src/events/index.d.ts:23:9 - (ae-undocumented) Missing documentation for "truncated". -// src/events/index.d.ts:24:9 - (ae-undocumented) Missing documentation for "created". -// src/events/index.d.ts:25:9 - (ae-undocumented) Missing documentation for "forced". -// src/events/index.d.ts:26:9 - (ae-undocumented) Missing documentation for "closed". -// src/events/index.d.ts:27:9 - (ae-undocumented) Missing documentation for "links". -// src/events/index.d.ts:28:9 - (ae-undocumented) Missing documentation for "commits". -// src/events/index.d.ts:31:5 - (ae-undocumented) Missing documentation for "ChangeLinks". -// src/events/index.d.ts:32:9 - (ae-undocumented) Missing documentation for "commits". -// src/events/index.d.ts:33:9 - (ae-undocumented) Missing documentation for "diff". -// src/events/index.d.ts:34:9 - (ae-undocumented) Missing documentation for "html". -// src/models/index.d.ts:13:1 - (ae-undocumented) Missing documentation for "Models". -// src/models/index.d.ts:19:9 - (ae-undocumented) Missing documentation for "created_on". -// src/models/index.d.ts:20:9 - (ae-undocumented) Missing documentation for "display_name". -// src/models/index.d.ts:21:9 - (ae-undocumented) Missing documentation for "links". -// src/models/index.d.ts:22:9 - (ae-undocumented) Missing documentation for "username". -// src/models/index.d.ts:23:9 - (ae-undocumented) Missing documentation for "uuid". -// src/models/index.d.ts:30:9 - (ae-undocumented) Missing documentation for "__index". -// src/models/index.d.ts:31:9 - (ae-undocumented) Missing documentation for "avatar". -// src/models/index.d.ts:42:9 - (ae-undocumented) Missing documentation for "user". -// src/models/index.d.ts:49:9 - (ae-undocumented) Missing documentation for "author". -// src/models/index.d.ts:50:9 - (ae-undocumented) Missing documentation for "date". -// src/models/index.d.ts:51:9 - (ae-undocumented) Missing documentation for "hash". -// src/models/index.d.ts:52:9 - (ae-undocumented) Missing documentation for "message". -// src/models/index.d.ts:53:9 - (ae-undocumented) Missing documentation for "parents". -// src/models/index.d.ts:54:9 - (ae-undocumented) Missing documentation for "summary". -// src/models/index.d.ts:59:5 - (ae-undocumented) Missing documentation for "BaseCommitSummary". -// src/models/index.d.ts:92:9 - (ae-undocumented) Missing documentation for "links". -// src/models/index.d.ts:97:9 - (ae-undocumented) Missing documentation for "target". -// src/models/index.d.ts:98:9 - (ae-undocumented) Missing documentation for "type". -// src/models/index.d.ts:127:9 - (ae-undocumented) Missing documentation for "participants". -// src/models/index.d.ts:128:9 - (ae-undocumented) Missing documentation for "repository". -// src/models/index.d.ts:135:9 - (ae-undocumented) Missing documentation for "__index". -// src/models/index.d.ts:136:9 - (ae-undocumented) Missing documentation for "attributes". -// src/models/index.d.ts:137:9 - (ae-undocumented) Missing documentation for "commit". -// src/models/index.d.ts:146:9 - (ae-undocumented) Missing documentation for "type". -// src/models/index.d.ts:151:11 - (ae-undocumented) Missing documentation for "CommitFileAttributesEnum". -// src/models/index.d.ts:161:5 - (ae-undocumented) Missing documentation for "CommitFileAttributesEnum". -// src/models/index.d.ts:167:9 - (ae-undocumented) Missing documentation for "href". -// src/models/index.d.ts:168:9 - (ae-undocumented) Missing documentation for "name". -// src/models/index.d.ts:175:9 - (ae-undocumented) Missing documentation for "__index". -// src/models/index.d.ts:176:9 - (ae-undocumented) Missing documentation for "type". -// src/models/index.d.ts:253:9 - (ae-undocumented) Missing documentation for "approved". -// src/models/index.d.ts:258:9 - (ae-undocumented) Missing documentation for "role". -// src/models/index.d.ts:259:9 - (ae-undocumented) Missing documentation for "state". -// src/models/index.d.ts:260:9 - (ae-undocumented) Missing documentation for "user". -// src/models/index.d.ts:265:11 - (ae-undocumented) Missing documentation for "ParticipantRoleEnum". -// src/models/index.d.ts:272:5 - (ae-undocumented) Missing documentation for "ParticipantRoleEnum". -// src/models/index.d.ts:276:11 - (ae-undocumented) Missing documentation for "ParticipantStateEnum". -// src/models/index.d.ts:284:5 - (ae-undocumented) Missing documentation for "ParticipantStateEnum". -// src/models/index.d.ts:291:9 - (ae-undocumented) Missing documentation for "created_on". -// src/models/index.d.ts:292:9 - (ae-undocumented) Missing documentation for "description". -// src/models/index.d.ts:310:9 - (ae-undocumented) Missing documentation for "links". -// src/models/index.d.ts:315:9 - (ae-undocumented) Missing documentation for "owner". -// src/models/index.d.ts:316:9 - (ae-undocumented) Missing documentation for "updated_on". -// src/models/index.d.ts:325:5 - (ae-undocumented) Missing documentation for "ProjectLinks". -// src/models/index.d.ts:326:9 - (ae-undocumented) Missing documentation for "avatar". -// src/models/index.d.ts:327:9 - (ae-undocumented) Missing documentation for "html". -// src/models/index.d.ts:332:5 - (ae-undocumented) Missing documentation for "RefLinks". -// src/models/index.d.ts:333:9 - (ae-undocumented) Missing documentation for "commits". -// src/models/index.d.ts:334:9 - (ae-undocumented) Missing documentation for "html". -// src/models/index.d.ts:335:9 - (ae-undocumented) Missing documentation for "self". -// src/models/index.d.ts:342:9 - (ae-undocumented) Missing documentation for "created_on". -// src/models/index.d.ts:343:9 - (ae-undocumented) Missing documentation for "description". -// src/models/index.d.ts:372:9 - (ae-undocumented) Missing documentation for "is_private". -// src/models/index.d.ts:373:9 - (ae-undocumented) Missing documentation for "language". -// src/models/index.d.ts:374:9 - (ae-undocumented) Missing documentation for "links". -// src/models/index.d.ts:375:9 - (ae-undocumented) Missing documentation for "mainbranch". -// src/models/index.d.ts:376:9 - (ae-undocumented) Missing documentation for "name". -// src/models/index.d.ts:377:9 - (ae-undocumented) Missing documentation for "owner". -// src/models/index.d.ts:378:9 - (ae-undocumented) Missing documentation for "parent". -// src/models/index.d.ts:379:9 - (ae-undocumented) Missing documentation for "project". -// src/models/index.d.ts:380:9 - (ae-undocumented) Missing documentation for "scm". -// src/models/index.d.ts:381:9 - (ae-undocumented) Missing documentation for "size". -// src/models/index.d.ts:386:9 - (ae-undocumented) Missing documentation for "updated_on". -// src/models/index.d.ts:421:11 - (ae-undocumented) Missing documentation for "RepositoryScmEnum". -// src/models/index.d.ts:427:5 - (ae-undocumented) Missing documentation for "RepositoryScmEnum". -// src/models/index.d.ts:431:5 - (ae-undocumented) Missing documentation for "RepositoryLinks". -// src/models/index.d.ts:432:9 - (ae-undocumented) Missing documentation for "avatar". -// src/models/index.d.ts:433:9 - (ae-undocumented) Missing documentation for "clone". -// src/models/index.d.ts:434:9 - (ae-undocumented) Missing documentation for "commits". -// src/models/index.d.ts:435:9 - (ae-undocumented) Missing documentation for "downloads". -// src/models/index.d.ts:436:9 - (ae-undocumented) Missing documentation for "forks". -// src/models/index.d.ts:437:9 - (ae-undocumented) Missing documentation for "hooks". -// src/models/index.d.ts:438:9 - (ae-undocumented) Missing documentation for "html". -// src/models/index.d.ts:439:9 - (ae-undocumented) Missing documentation for "pullrequests". -// src/models/index.d.ts:440:9 - (ae-undocumented) Missing documentation for "self". -// src/models/index.d.ts:441:9 - (ae-undocumented) Missing documentation for "watchers". -// src/models/index.d.ts:446:5 - (ae-undocumented) Missing documentation for "SearchCodeSearchResult". -// src/models/index.d.ts:447:9 - (ae-undocumented) Missing documentation for "content_match_count". -// src/models/index.d.ts:448:9 - (ae-undocumented) Missing documentation for "content_matches". -// src/models/index.d.ts:449:9 - (ae-undocumented) Missing documentation for "file". -// src/models/index.d.ts:450:9 - (ae-undocumented) Missing documentation for "path_matches". -// src/models/index.d.ts:451:9 - (ae-undocumented) Missing documentation for "type". -// src/models/index.d.ts:456:5 - (ae-undocumented) Missing documentation for "SearchContentMatch". -// src/models/index.d.ts:457:9 - (ae-undocumented) Missing documentation for "lines". -// src/models/index.d.ts:462:5 - (ae-undocumented) Missing documentation for "SearchLine". -// src/models/index.d.ts:463:9 - (ae-undocumented) Missing documentation for "line". -// src/models/index.d.ts:464:9 - (ae-undocumented) Missing documentation for "segments". -// src/models/index.d.ts:469:5 - (ae-undocumented) Missing documentation for "SearchResultPage". -// src/models/index.d.ts:470:9 - (ae-undocumented) Missing documentation for "query_substituted". -// src/models/index.d.ts:479:5 - (ae-undocumented) Missing documentation for "SearchSegment". -// src/models/index.d.ts:480:9 - (ae-undocumented) Missing documentation for "match". -// src/models/index.d.ts:481:9 - (ae-undocumented) Missing documentation for "text". -// src/models/index.d.ts:488:9 - (ae-undocumented) Missing documentation for "links". -// src/models/index.d.ts:495:9 - (ae-undocumented) Missing documentation for "html". -// src/models/index.d.ts:496:9 - (ae-undocumented) Missing documentation for "members". -// src/models/index.d.ts:497:9 - (ae-undocumented) Missing documentation for "projects". -// src/models/index.d.ts:498:9 - (ae-undocumented) Missing documentation for "repositories". -// src/models/index.d.ts:499:9 - (ae-undocumented) Missing documentation for "self". -// src/models/index.d.ts:507:9 - (ae-undocumented) Missing documentation for "created_on". -// src/models/index.d.ts:513:9 - (ae-undocumented) Missing documentation for "links". -// src/models/index.d.ts:522:9 - (ae-undocumented) Missing documentation for "updated_on". -// src/models/index.d.ts:531:5 - (ae-undocumented) Missing documentation for "WorkspaceLinks". -// src/models/index.d.ts:532:9 - (ae-undocumented) Missing documentation for "avatar". -// src/models/index.d.ts:533:9 - (ae-undocumented) Missing documentation for "html". -// src/models/index.d.ts:534:9 - (ae-undocumented) Missing documentation for "members". -// src/models/index.d.ts:535:9 - (ae-undocumented) Missing documentation for "owners". -// src/models/index.d.ts:536:9 - (ae-undocumented) Missing documentation for "projects". -// src/models/index.d.ts:537:9 - (ae-undocumented) Missing documentation for "repositories". -// src/models/index.d.ts:538:9 - (ae-undocumented) Missing documentation for "self". -// src/models/index.d.ts:539:9 - (ae-undocumented) Missing documentation for "snippets". -// src/pagination.d.ts:3:1 - (ae-undocumented) Missing documentation for "PaginationOptions". -// src/pagination.d.ts:8:1 - (ae-undocumented) Missing documentation for "WithPagination". -// src/pagination.d.ts:12:5 - (ae-undocumented) Missing documentation for "getPage". -// src/pagination.d.ts:13:5 - (ae-undocumented) Missing documentation for "iteratePages". -// src/pagination.d.ts:14:5 - (ae-undocumented) Missing documentation for "iterateResults". -// src/types.d.ts:3:1 - (ae-undocumented) Missing documentation for "FilterAndSortOptions". -// src/types.d.ts:8:1 - (ae-undocumented) Missing documentation for "PartialResponseOptions". -// src/types.d.ts:12:1 - (ae-undocumented) Missing documentation for "RequestOptions". ``` diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md index 90e86825bf..1825959871 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,38 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-defaults@0.5.3-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.15.1 + - @backstage/integration-aws-node@0.1.12 + - @backstage/plugin-catalog-common@1.1.0 + - @backstage/plugin-kubernetes-common@0.8.3 + +## 0.4.3 + +### Patch Changes + +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- Updated dependencies + - @backstage/backend-defaults@0.5.1 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + - @backstage/plugin-catalog-common@1.1.0 + - @backstage/plugin-kubernetes-common@0.8.3 + ## 0.4.3-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 170daf17b5..aaba31e06d 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-aws", - "version": "0.4.3-next.2", + "version": "0.4.5-next.0", "description": "A Backstage catalog backend module that helps integrate towards AWS", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-aws/report-alpha.api.md b/plugins/catalog-backend-module-aws/report-alpha.api.md index 2d9ceaec2d..efaf350e99 100644 --- a/plugins/catalog-backend-module-aws/report-alpha.api.md +++ b/plugins/catalog-backend-module-aws/report-alpha.api.md @@ -9,9 +9,5 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; const _feature: BackendFeature; export default _feature; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_feature". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-aws/report.api.md b/plugins/catalog-backend-module-aws/report.api.md index c0e5653190..beb951df7e 100644 --- a/plugins/catalog-backend-module-aws/report.api.md +++ b/plugins/catalog-backend-module-aws/report.api.md @@ -117,17 +117,4 @@ export type EksClusterEntityTransformer = ( cluster: Cluster, accountId: string, ) => Promise; - -// Warnings were encountered during analysis: -// -// src/processors/AwsEKSClusterProcessor.d.ts:18:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/AwsEKSClusterProcessor.d.ts:26:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/AwsEKSClusterProcessor.d.ts:27:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/processors/AwsOrganizationCloudAccountProcessor.d.ts:17:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/AwsOrganizationCloudAccountProcessor.d.ts:21:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/AwsOrganizationCloudAccountProcessor.d.ts:22:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/processors/AwsS3DiscoveryProcessor.d.ts:15:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/AwsS3DiscoveryProcessor.d.ts:16:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/providers/AwsS3EntityProvider.d.ts:20:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/AwsS3EntityProvider.d.ts:31:5 - (ae-undocumented) Missing documentation for "refresh". ``` diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md index 6ab9ab2417..8850516932 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.15.1 + - @backstage/plugin-catalog-common@1.1.0 + +## 0.2.3 + +### Patch Changes + +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/config@1.2.0 + - @backstage/plugin-catalog-common@1.1.0 + ## 0.2.3-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index b2ee04cac6..1ad6b27d98 100644 --- a/plugins/catalog-backend-module-azure/package.json +++ b/plugins/catalog-backend-module-azure/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-azure", - "version": "0.2.3-next.2", + "version": "0.2.4-next.0", "description": "A Backstage catalog backend module that helps integrate towards Azure", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-azure/report-alpha.api.md b/plugins/catalog-backend-module-azure/report-alpha.api.md index 1be3e1481f..3336b07e09 100644 --- a/plugins/catalog-backend-module-azure/report-alpha.api.md +++ b/plugins/catalog-backend-module-azure/report-alpha.api.md @@ -9,9 +9,5 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; const _feature: BackendFeature; export default _feature; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_feature". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-azure/report.api.md b/plugins/catalog-backend-module-azure/report.api.md index b3b7b71158..d11197d7f2 100644 --- a/plugins/catalog-backend-module-azure/report.api.md +++ b/plugins/catalog-backend-module-azure/report.api.md @@ -58,12 +58,4 @@ export class AzureDevOpsEntityProvider implements EntityProvider { // @public const catalogModuleAzureDevOpsEntityProvider: BackendFeature; export default catalogModuleAzureDevOpsEntityProvider; - -// Warnings were encountered during analysis: -// -// src/processors/AzureDevOpsDiscoveryProcessor.d.ts:26:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/AzureDevOpsDiscoveryProcessor.d.ts:33:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/AzureDevOpsDiscoveryProcessor.d.ts:34:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/providers/AzureDevOpsEntityProvider.d.ts:18:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/AzureDevOpsEntityProvider.d.ts:29:5 - (ae-undocumented) Missing documentation for "refresh". ``` diff --git a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md index 8bacf99fa4..f8334f723b 100644 --- a/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-backstage-openapi/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-catalog-backend-module-backstage-openapi +## 0.4.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-openapi-utils@0.2.1-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## 0.4.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-openapi-utils@0.2.0 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.4.1-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 027a06ae8a..b1b155ef5f 100644 --- a/plugins/catalog-backend-module-backstage-openapi/package.json +++ b/plugins/catalog-backend-module-backstage-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-backstage-openapi", - "version": "0.4.1-next.1", + "version": "0.4.2-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "catalog", diff --git a/plugins/catalog-backend-module-backstage-openapi/report.api.md b/plugins/catalog-backend-module-backstage-openapi/report.api.md index 88ad499e84..06334182cb 100644 --- a/plugins/catalog-backend-module-backstage-openapi/report.api.md +++ b/plugins/catalog-backend-module-backstage-openapi/report.api.md @@ -18,11 +18,5 @@ export type MetaApiDocsPluginOptions = { // @public (undocumented) export const metaOpenApiDocsPluginId = 'meta-api-docs'; -// Warnings were encountered during analysis: -// -// src/index.d.ts:4:1 - (ae-undocumented) Missing documentation for "MetaApiDocsPluginOptions". -// src/index.d.ts:10:22 - (ae-undocumented) Missing documentation for "metaOpenApiDocsPluginId". -// src/index.d.ts:14:22 - (ae-undocumented) Missing documentation for "catalogModuleInternalOpenApiSpec". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md index e167e757a0..2897fb741b 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,65 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.4.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.3-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/catalog-client@1.8.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.15.1 + - @backstage/plugin-bitbucket-cloud-common@0.2.24 + - @backstage/plugin-catalog-common@1.1.0 + +## 0.4.0 + +### Minor Changes + +- 6343c8d: Fixes the event-based updates at `BitbucketCloudEntityProvider`. + + Previously, this entity provider had optional event support for legacy backends + that could be enabled by passing `catalogApi`, `events`, and `tokenManager`. + + For the new/current backend system, the `catalogModuleBitbucketCloudEntityProvider` + (`catalog.bitbucket-cloud-entity-provider`), event support was enabled by default. + + A recent change removed `tokenManager` as a dependency from the module as well as removed it as input. + While this didn't break the instantiation of the module, it broke the event-based updates, + and led to a runtime misbehavior, accompanied by an info log message. + + This change will replace the use of `tokenManager` with the use of `auth` (`AuthService`). + + Additionally, to simplify, it will make `catalogApi` and `events` required dependencies. + For the current backend system, this change is transparent and doesn't require any action. + For the legacy backend system, this change will require you to pass those dependencies + if you didn't do it already. + + BREAKING CHANGES: + + _(For legacy backend users only.)_ + + Previously optional `catalogApi`, and `events` are required now. + A new required dependency `auth` was added. + +### Patch Changes + +- 094eaa3: Remove references to in-repo backend-common +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- Updated dependencies + - @backstage/plugin-events-node@0.4.1 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/catalog-client@1.7.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.24 + - @backstage/plugin-catalog-common@1.1.0 + ## 0.4.0-next.2 ### Minor Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 133eed59a1..2fa09f2edb 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/package.json +++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud", - "version": "0.4.0-next.2", + "version": "0.4.2-next.0", "description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-bitbucket-cloud/report-alpha.api.md b/plugins/catalog-backend-module-bitbucket-cloud/report-alpha.api.md index 418327eb07..ae6ba51eff 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/report-alpha.api.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/report-alpha.api.md @@ -9,9 +9,5 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; const _feature: BackendFeature; export default _feature; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_feature". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-bitbucket-cloud/report.api.md b/plugins/catalog-backend-module-bitbucket-cloud/report.api.md index 19e835913f..77b20e44f1 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/report.api.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/report.api.md @@ -41,11 +41,4 @@ export class BitbucketCloudEntityProvider implements EntityProvider { // @public (undocumented) const catalogModuleBitbucketCloudEntityProvider: BackendFeature; export default catalogModuleBitbucketCloudEntityProvider; - -// Warnings were encountered during analysis: -// -// src/module/catalogModuleBitbucketCloudEntityProvider.d.ts:4:22 - (ae-undocumented) Missing documentation for "catalogModuleBitbucketCloudEntityProvider". -// src/providers/BitbucketCloudEntityProvider.d.ts:26:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/BitbucketCloudEntityProvider.d.ts:42:5 - (ae-undocumented) Missing documentation for "refresh". -// src/providers/BitbucketCloudEntityProvider.d.ts:44:5 - (ae-undocumented) Missing documentation for "onRepoPush". ``` diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts index baea86715c..aa00f937d8 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts +++ b/plugins/catalog-backend-module-bitbucket-cloud/src/providers/BitbucketCloudEntityProvider.test.ts @@ -153,7 +153,7 @@ describe('BitbucketCloudEntityProvider', () => { it('no provider config', () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); const config = new ConfigReader({}); const events = DefaultEventsService.create({ logger }); const providers = BitbucketCloudEntityProvider.fromConfig(config, { @@ -169,7 +169,7 @@ describe('BitbucketCloudEntityProvider', () => { it('single simple provider config', () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); const events = DefaultEventsService.create({ logger }); const providers = BitbucketCloudEntityProvider.fromConfig(simpleConfig, { auth, @@ -187,7 +187,7 @@ describe('BitbucketCloudEntityProvider', () => { it('fail without schedule and scheduler', () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); const events = DefaultEventsService.create({ logger }); expect(() => @@ -202,7 +202,7 @@ describe('BitbucketCloudEntityProvider', () => { it('fail with scheduler but no schedule config', () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); const events = DefaultEventsService.create({ logger }); const scheduler = mockServices.scheduler.mock(); const config = new ConfigReader({ @@ -230,7 +230,7 @@ describe('BitbucketCloudEntityProvider', () => { it('single simple provider config with schedule in config', () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); const events = DefaultEventsService.create({ logger }); const scheduler = mockServices.scheduler.mock(); const config = new ConfigReader({ @@ -263,7 +263,7 @@ describe('BitbucketCloudEntityProvider', () => { it('multiple provider configs', () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); const config = new ConfigReader({ catalog: { providers: { @@ -298,7 +298,7 @@ describe('BitbucketCloudEntityProvider', () => { it('apply full update on scheduled execution', async () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); const events = DefaultEventsService.create({ logger }); const provider = BitbucketCloudEntityProvider.fromConfig(defaultConfig, { auth, @@ -610,7 +610,8 @@ describe('BitbucketCloudEntityProvider', () => { it('no onRepoPush update on non-matching workspace slug', async () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); + jest.spyOn(catalogApi, 'refreshEntity'); const events = DefaultEventsService.create({ logger }); const provider = BitbucketCloudEntityProvider.fromConfig(defaultConfig, { auth, @@ -641,7 +642,8 @@ describe('BitbucketCloudEntityProvider', () => { it('no onRepoPush update on non-matching repo slug', async () => { const auth = mockServices.auth.mock(); - const catalogApi = catalogServiceMock.mock(); + const catalogApi = catalogServiceMock(); + jest.spyOn(catalogApi, 'refreshEntity'); const events = DefaultEventsService.create({ logger }); const provider = BitbucketCloudEntityProvider.fromConfig(defaultConfig, { auth, diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md index f0aaa3a88e..f8418fdd12 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.15.1 + +## 0.2.3 + +### Patch Changes + +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.2.3-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 846c33e2a7..12206522df 100644 --- a/plugins/catalog-backend-module-bitbucket-server/package.json +++ b/plugins/catalog-backend-module-bitbucket-server/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-bitbucket-server", - "version": "0.2.3-next.2", + "version": "0.2.4-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "catalog", diff --git a/plugins/catalog-backend-module-bitbucket-server/report-alpha.api.md b/plugins/catalog-backend-module-bitbucket-server/report-alpha.api.md index 60f05fac26..06212c3c60 100644 --- a/plugins/catalog-backend-module-bitbucket-server/report-alpha.api.md +++ b/plugins/catalog-backend-module-bitbucket-server/report-alpha.api.md @@ -9,9 +9,5 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; const _feature: BackendFeature; export default _feature; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_feature". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-bitbucket-server/report.api.md b/plugins/catalog-backend-module-bitbucket-server/report.api.md index 41b0d398ab..b2a0a9368a 100644 --- a/plugins/catalog-backend-module-bitbucket-server/report.api.md +++ b/plugins/catalog-backend-module-bitbucket-server/report.api.md @@ -114,20 +114,4 @@ export type BitbucketServerRepository = { // @public (undocumented) const catalogModuleBitbucketServerEntityProvider: BackendFeature; export default catalogModuleBitbucketServerEntityProvider; - -// Warnings were encountered during analysis: -// -// src/lib/BitbucketServerClient.d.ts:11:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/lib/BitbucketServerClient.d.ts:17:5 - (ae-undocumented) Missing documentation for "listProjects". -// src/lib/BitbucketServerClient.d.ts:20:5 - (ae-undocumented) Missing documentation for "listRepositories". -// src/lib/BitbucketServerClient.d.ts:24:5 - (ae-undocumented) Missing documentation for "getFile". -// src/lib/BitbucketServerClient.d.ts:29:5 - (ae-undocumented) Missing documentation for "getRepository". -// src/lib/BitbucketServerClient.d.ts:33:5 - (ae-undocumented) Missing documentation for "resolvePath". -// src/lib/BitbucketServerClient.d.ts:48:1 - (ae-undocumented) Missing documentation for "BitbucketServerListOptions". -// src/lib/BitbucketServerClient.d.ts:56:1 - (ae-undocumented) Missing documentation for "BitbucketServerPagedResponse". -// src/lib/types.d.ts:2:1 - (ae-undocumented) Missing documentation for "BitbucketServerRepository". -// src/lib/types.d.ts:14:1 - (ae-undocumented) Missing documentation for "BitbucketServerProject". -// src/module/catalogModuleBitbucketServerEntityProvider.d.ts:4:22 - (ae-undocumented) Missing documentation for "catalogModuleBitbucketServerEntityProvider". -// src/providers/BitbucketServerEntityProvider.d.ts:20:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/BitbucketServerEntityProvider.d.ts:32:5 - (ae-undocumented) Missing documentation for "refresh". ``` diff --git a/plugins/catalog-backend-module-gcp/CHANGELOG.md b/plugins/catalog-backend-module-gcp/CHANGELOG.md index 19f4b839b7..338f97a2c9 100644 --- a/plugins/catalog-backend-module-gcp/CHANGELOG.md +++ b/plugins/catalog-backend-module-gcp/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-catalog-backend-module-gcp +## 0.3.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/plugin-kubernetes-common@0.8.3 + +## 0.3.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/plugin-kubernetes-common@0.8.3 + ## 0.3.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json index 83bae5fbe6..57b260cf7f 100644 --- a/plugins/catalog-backend-module-gcp/package.json +++ b/plugins/catalog-backend-module-gcp/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gcp", - "version": "0.3.1-next.1", + "version": "0.3.2-next.0", "description": "A Backstage catalog backend module that helps integrate towards GCP", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-gcp/report.api.md b/plugins/catalog-backend-module-gcp/report.api.md index cf490f09ae..6260d07c88 100644 --- a/plugins/catalog-backend-module-gcp/report.api.md +++ b/plugins/catalog-backend-module-gcp/report.api.md @@ -46,12 +46,4 @@ export class GkeEntityProvider implements EntityProvider { // (undocumented) refresh(): Promise; } - -// Warnings were encountered during analysis: -// -// src/providers/GkeEntityProvider.d.ts:17:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/GkeEntityProvider.d.ts:22:5 - (ae-undocumented) Missing documentation for "fromConfigWithClient". -// src/providers/GkeEntityProvider.d.ts:28:5 - (ae-undocumented) Missing documentation for "getProviderName". -// src/providers/GkeEntityProvider.d.ts:29:5 - (ae-undocumented) Missing documentation for "connect". -// src/providers/GkeEntityProvider.d.ts:35:5 - (ae-undocumented) Missing documentation for "refresh". ``` diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 8d4bbd5d6f..8052348efa 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.15.1 + +## 0.2.3 + +### Patch Changes + +- 5b6edf1: Fixed an issue preventing the provider's `schedule` config from being applied." +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + ## 0.2.3-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index 3d3942d410..fe0667dc78 100644 --- a/plugins/catalog-backend-module-gerrit/package.json +++ b/plugins/catalog-backend-module-gerrit/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gerrit", - "version": "0.2.3-next.2", + "version": "0.2.4-next.0", "backstage": { "role": "backend-plugin-module", "pluginId": "catalog", diff --git a/plugins/catalog-backend-module-gerrit/report-alpha.api.md b/plugins/catalog-backend-module-gerrit/report-alpha.api.md index 741c105577..59ce95dd4f 100644 --- a/plugins/catalog-backend-module-gerrit/report-alpha.api.md +++ b/plugins/catalog-backend-module-gerrit/report-alpha.api.md @@ -9,9 +9,5 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; const _feature: BackendFeature; export default _feature; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_feature". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-gerrit/report.api.md b/plugins/catalog-backend-module-gerrit/report.api.md index 76866fe76a..8f8cd60e4e 100644 --- a/plugins/catalog-backend-module-gerrit/report.api.md +++ b/plugins/catalog-backend-module-gerrit/report.api.md @@ -34,14 +34,5 @@ export class GerritEntityProvider implements EntityProvider { refresh(logger: LoggerService): Promise; } -// Warnings were encountered during analysis: -// -// src/module/catalogModuleGerritEntityProvider.d.ts:4:22 - (ae-undocumented) Missing documentation for "catalogModuleGerritEntityProvider". -// src/providers/GerritEntityProvider.d.ts:5:1 - (ae-undocumented) Missing documentation for "GerritEntityProvider". -// src/providers/GerritEntityProvider.d.ts:11:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/GerritEntityProvider.d.ts:17:5 - (ae-undocumented) Missing documentation for "getProviderName". -// src/providers/GerritEntityProvider.d.ts:18:5 - (ae-undocumented) Missing documentation for "connect". -// src/providers/GerritEntityProvider.d.ts:20:5 - (ae-undocumented) Missing documentation for "refresh". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-github-org/CHANGELOG.md b/plugins/catalog-backend-module-github-org/CHANGELOG.md index 693bd3051b..aa3cec79ba 100644 --- a/plugins/catalog-backend-module-github-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-github-org/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-catalog-backend-module-github-org +## 0.3.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.3-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-catalog-backend-module-github@0.7.7-next.0 + +## 0.3.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend-module-github@0.7.5 + - @backstage/plugin-events-node@0.4.1 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/config@1.2.0 + ## 0.3.2-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 21ee6c8a89..2f19dc2b61 100644 --- a/plugins/catalog-backend-module-github-org/package.json +++ b/plugins/catalog-backend-module-github-org/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-github-org", - "version": "0.3.2-next.2", + "version": "0.3.4-next.0", "description": "The github-org backend module for the catalog plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md index aebba9666e..a2a2c6eff4 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,38 @@ # @backstage/plugin-catalog-backend-module-github +## 0.7.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.3-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/catalog-client@1.8.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.15.1 + - @backstage/plugin-catalog-backend@1.27.2-next.0 + - @backstage/plugin-catalog-common@1.1.0 + +## 0.7.5 + +### Patch Changes + +- 094eaa3: Remove references to in-repo backend-common +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- 720a2f9: Updated dependency `git-url-parse` to `^15.0.0`. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.27.0 + - @backstage/plugin-events-node@0.4.1 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/catalog-client@1.7.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/plugin-catalog-common@1.1.0 + ## 0.7.5-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 51ad1ad506..2765a20819 100644 --- a/plugins/catalog-backend-module-github/package.json +++ b/plugins/catalog-backend-module-github/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-github", - "version": "0.7.5-next.2", + "version": "0.7.7-next.0", "description": "A Backstage catalog backend module that helps integrate towards GitHub", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-github/report-alpha.api.md b/plugins/catalog-backend-module-github/report-alpha.api.md index fbe98b714e..4e596df822 100644 --- a/plugins/catalog-backend-module-github/report-alpha.api.md +++ b/plugins/catalog-backend-module-github/report-alpha.api.md @@ -9,9 +9,5 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; const _feature: BackendFeature; export default _feature; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_feature". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-github/report.api.md b/plugins/catalog-backend-module-github/report.api.md index e81d0a0e81..dcc94e47bc 100644 --- a/plugins/catalog-backend-module-github/report.api.md +++ b/plugins/catalog-backend-module-github/report.api.md @@ -323,41 +323,4 @@ export type UserTransformer = ( item: GithubUser, ctx: TransformerContext, ) => Promise; - -// Warnings were encountered during analysis: -// -// src/analyzers/GithubLocationAnalyzer.d.ts:8:1 - (ae-undocumented) Missing documentation for "GithubLocationAnalyzerOptions". -// src/analyzers/GithubLocationAnalyzer.d.ts:17:1 - (ae-undocumented) Missing documentation for "GithubLocationAnalyzer". -// src/analyzers/GithubLocationAnalyzer.d.ts:23:5 - (ae-undocumented) Missing documentation for "supports". -// src/analyzers/GithubLocationAnalyzer.d.ts:24:5 - (ae-undocumented) Missing documentation for "analyze". -// src/deprecated.d.ts:9:1 - (ae-undocumented) Missing documentation for "GitHubOrgEntityProvider". -// src/deprecated.d.ts:10:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/deprecated.d.ts:16:1 - (ae-undocumented) Missing documentation for "GitHubOrgEntityProviderOptions". -// src/deprecated.d.ts:21:1 - (ae-undocumented) Missing documentation for "GitHubEntityProvider". -// src/deprecated.d.ts:23:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/deprecated.d.ts:29:5 - (ae-undocumented) Missing documentation for "connect". -// src/deprecated.d.ts:30:5 - (ae-undocumented) Missing documentation for "getProviderName". -// src/deprecated.d.ts:31:5 - (ae-undocumented) Missing documentation for "refresh". -// src/lib/defaultTransformers.d.ts:10:5 - (ae-undocumented) Missing documentation for "client". -// src/lib/defaultTransformers.d.ts:11:5 - (ae-undocumented) Missing documentation for "query". -// src/lib/defaultTransformers.d.ts:12:5 - (ae-undocumented) Missing documentation for "org". -// src/processors/GithubDiscoveryProcessor.d.ts:25:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/GithubDiscoveryProcessor.d.ts:34:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/GithubDiscoveryProcessor.d.ts:35:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/processors/GithubMultiOrgReaderProcessor.d.ts:19:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/GithubMultiOrgReaderProcessor.d.ts:33:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/GithubMultiOrgReaderProcessor.d.ts:34:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/processors/GithubOrgReaderProcessor.d.ts:18:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/GithubOrgReaderProcessor.d.ts:27:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/GithubOrgReaderProcessor.d.ts:28:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/providers/GithubEntityProvider.d.ts:21:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/GithubEntityProvider.d.ts:33:5 - (ae-undocumented) Missing documentation for "refresh". -// src/providers/GithubEntityProvider.d.ts:51:8 - (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration -// src/providers/GithubEntityProvider.d.ts:60:8 - (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration -// src/providers/GithubEntityProvider.d.ts:71:8 - (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration -// src/providers/GithubEntityProvider.d.ts:81:8 - (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration -// src/providers/GithubEntityProvider.d.ts:93:8 - (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration -// src/providers/GithubEntityProvider.d.ts:102:8 - (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration -// src/providers/GithubMultiOrgEntityProvider.d.ts:84:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/GithubOrgEntityProvider.d.ts:71:5 - (ae-undocumented) Missing documentation for "fromConfig". ``` diff --git a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts index 1c64174ee7..5c6dc75e48 100644 --- a/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts +++ b/plugins/catalog-backend-module-github/src/providers/GithubEntityProvider.ts @@ -472,7 +472,6 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { * Removes all entities associated with the repository. * * @param event - The repository archived event. - * @private */ private async onRepoArchived(event: RepositoryArchivedEvent) { const repository = this.createRepoFromEvent(event); @@ -488,7 +487,6 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { * Removes all entities associated with the repository. * * @param event - The repository deleted event. - * @private */ private async onRepoDeleted(event: RepositoryDeletedEvent) { const repository = this.createRepoFromEvent(event); @@ -506,7 +504,6 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { * Removes all entities associated with the repository if the repository no longer matches the filters. * * @param event - The repository edited event. - * @private */ private async onRepoEdited(event: RepositoryEditedEvent) { const repository = this.createRepoFromEvent(event); @@ -525,7 +522,6 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { * Creates new entities for the repository's new name if it still matches the filters. * * @param event - The repository renamed event. - * @private */ private async onRepoRenamed(event: RepositoryRenamedEvent) { const repository = this.createRepoFromEvent(event); @@ -560,7 +556,6 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { * Creates new entities for the repository if it matches the filters. * * @param event - The repository unarchived event. - * @private */ private async onRepoTransferred(event: RepositoryTransferredEvent) { const repository = this.createRepoFromEvent(event); @@ -582,7 +577,6 @@ export class GithubEntityProvider implements EntityProvider, EventSubscriber { * Creates new entities for the repository if it matches the filters. * * @param event - The repository unarchived event. - * @private */ private async onRepoUnarchived(event: RepositoryUnarchivedEvent) { const repository = this.createRepoFromEvent(event); diff --git a/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md b/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md index 6b6b86de65..457234e891 100644 --- a/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab-org/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-catalog-backend-module-gitlab-org +## 0.2.3-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.3-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/plugin-catalog-backend-module-gitlab@0.4.5-next.0 + +## 0.2.1 + +### Patch Changes + +- 094eaa3: Remove references to in-repo backend-common +- Updated dependencies + - @backstage/plugin-events-node@0.4.1 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/plugin-catalog-backend-module-gitlab@0.4.3 + - @backstage/backend-plugin-api@1.0.1 + ## 0.2.1-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab-org/package.json b/plugins/catalog-backend-module-gitlab-org/package.json index ebe9e457a4..2fee9f0781 100644 --- a/plugins/catalog-backend-module-gitlab-org/package.json +++ b/plugins/catalog-backend-module-gitlab-org/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab-org", - "version": "0.2.1-next.2", + "version": "0.2.3-next.0", "description": "The gitlab-org backend module for the catalog plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md index ceb2af0873..a6817a5075 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.3-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-defaults@0.5.3-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.15.1 + - @backstage/plugin-catalog-common@1.1.0 + +## 0.4.3 + +### Patch Changes + +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- Updated dependencies + - @backstage/backend-defaults@0.5.1 + - @backstage/plugin-events-node@0.4.1 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/plugin-catalog-common@1.1.0 + ## 0.4.3-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 192da01f04..3bbfc8e1de 100644 --- a/plugins/catalog-backend-module-gitlab/package.json +++ b/plugins/catalog-backend-module-gitlab/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-gitlab", - "version": "0.4.3-next.2", + "version": "0.4.5-next.0", "description": "A Backstage catalog backend module that helps integrate towards GitLab", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-gitlab/report-alpha.api.md b/plugins/catalog-backend-module-gitlab/report-alpha.api.md index 350411a6dc..e8ef479d82 100644 --- a/plugins/catalog-backend-module-gitlab/report-alpha.api.md +++ b/plugins/catalog-backend-module-gitlab/report-alpha.api.md @@ -9,9 +9,5 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; const _feature: BackendFeature; export default _feature; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_feature". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-gitlab/report.api.md b/plugins/catalog-backend-module-gitlab/report.api.md index 07612bca88..890ca29eca 100644 --- a/plugins/catalog-backend-module-gitlab/report.api.md +++ b/plugins/catalog-backend-module-gitlab/report.api.md @@ -176,29 +176,4 @@ export interface UserTransformerOptions { // (undocumented) user: GitLabUser; } - -// Warnings were encountered during analysis: -// -// src/GitLabDiscoveryProcessor.d.ts:14:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/GitLabDiscoveryProcessor.d.ts:20:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/GitLabDiscoveryProcessor.d.ts:21:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/lib/types.d.ts:48:1 - (ae-undocumented) Missing documentation for "GitLabGroupSamlIdentity". -// src/lib/types.d.ts:234:5 - (ae-undocumented) Missing documentation for "group". -// src/lib/types.d.ts:235:5 - (ae-undocumented) Missing documentation for "providerConfig". -// src/lib/types.d.ts:249:5 - (ae-undocumented) Missing documentation for "user". -// src/lib/types.d.ts:250:5 - (ae-undocumented) Missing documentation for "integrationConfig". -// src/lib/types.d.ts:251:5 - (ae-undocumented) Missing documentation for "providerConfig". -// src/lib/types.d.ts:252:5 - (ae-undocumented) Missing documentation for "groupNameTransformer". -// src/lib/types.d.ts:266:5 - (ae-undocumented) Missing documentation for "groups". -// src/lib/types.d.ts:267:5 - (ae-undocumented) Missing documentation for "providerConfig". -// src/lib/types.d.ts:268:5 - (ae-undocumented) Missing documentation for "groupNameTransformer". -// src/providers/GitlabDiscoveryEntityProvider.d.ts:21:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/GitlabDiscoveryEntityProvider.d.ts:33:5 - (ae-undocumented) Missing documentation for "getProviderName". -// src/providers/GitlabDiscoveryEntityProvider.d.ts:34:5 - (ae-undocumented) Missing documentation for "connect". -// src/providers/GitlabDiscoveryEntityProvider.d.ts:75:15 - (tsdoc-param-tag-with-invalid-type) The @param block should not include a JSDoc-style '{type}' -// src/providers/GitlabDiscoveryEntityProvider.d.ts:76:30 - (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag -// src/providers/GitlabDiscoveryEntityProvider.d.ts:76:17 - (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@" -// src/providers/GitlabOrgDiscoveryEntityProvider.d.ts:21:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/providers/GitlabOrgDiscoveryEntityProvider.d.ts:31:5 - (ae-undocumented) Missing documentation for "getProviderName". -// src/providers/GitlabOrgDiscoveryEntityProvider.d.ts:32:5 - (ae-undocumented) Missing documentation for "connect". ``` diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts index fdd884e1fd..0ac45b93e1 100644 --- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts +++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabDiscoveryEntityProvider.ts @@ -418,8 +418,8 @@ export class GitlabDiscoveryEntityProvider implements EntityProvider { /** * Converts a target URL to a LocationSpec object. * - * @param {string} target - The target URL to be converted. - * @returns {LocationSpec} The LocationSpec object representing the URL. + * @param target - The target URL to be converted. + * @returns The LocationSpec object representing the URL. */ private toLocationSpec(target: string): LocationSpec { return { diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md index ef5883c734..294d646018 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,37 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.5.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.3-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-catalog-backend@1.27.2-next.0 + - @backstage/plugin-permission-common@0.8.1 + +## 0.5.5 + +### Patch Changes + +- 4b60e0c: Remove extension points from `/alpha` export, they're available from the main package already +- 094eaa3: Remove references to in-repo backend-common +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- 2107965: Turn down the logging level on most "all is well" type log messages +- Updated dependencies + - @backstage/plugin-catalog-backend@1.27.0 + - @backstage/plugin-events-node@0.4.1 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-permission-common@0.8.1 + ## 0.5.5-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/README.md b/plugins/catalog-backend-module-incremental-ingestion/README.md index 3b847d4ad7..2535fbe8e3 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/README.md +++ b/plugins/catalog-backend-module-incremental-ingestion/README.md @@ -311,7 +311,7 @@ export const catalogModuleCustomIncrementalIngestionProvider = burstInterval: { seconds: 3 }, // How long should it rest before re-ingesting again? - restLength: { day: 1 }, + restLength: { days: 1 }, // Optional back-off configuration - how long should it wait to retry // in the event of an error? diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index bcf15adfcc..37106bae96 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/package.json +++ b/plugins/catalog-backend-module-incremental-ingestion/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-incremental-ingestion", - "version": "0.5.5-next.2", + "version": "0.5.7-next.0", "description": "An entity provider for streaming large asset sources into the catalog", "backstage": { "role": "backend-plugin-module", @@ -60,8 +60,8 @@ "@backstage/plugin-catalog-node": "workspace:^", "@backstage/plugin-events-node": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", + "@backstage/types": "workspace:^", "@types/express": "^4.17.6", - "@types/luxon": "^3.0.0", "express": "^4.17.1", "express-promise-router": "^4.1.0", "knex": "^3.0.0", @@ -71,6 +71,7 @@ "devDependencies": { "@backstage/backend-defaults": "workspace:^", "@backstage/backend-test-utils": "workspace:^", - "@backstage/cli": "workspace:^" + "@backstage/cli": "workspace:^", + "@types/luxon": "^3.0.0" } } diff --git a/plugins/catalog-backend-module-incremental-ingestion/report-alpha.api.md b/plugins/catalog-backend-module-incremental-ingestion/report-alpha.api.md index 8f3a5fa780..cb1bb63d00 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/report-alpha.api.md +++ b/plugins/catalog-backend-module-incremental-ingestion/report-alpha.api.md @@ -4,28 +4,10 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; -import { ExtensionPoint } from '@backstage/backend-plugin-api'; -import { IncrementalEntityProvider } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; -import { IncrementalEntityProviderOptions } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; // @alpha (undocumented) const _feature: BackendFeature; export default _feature; -// Warning: (ae-forgotten-export) The symbol "IncrementalIngestionProviderExtensionPoint_2" needs to be exported by the entry point alpha.d.ts -// -// @alpha (undocumented) -export type IncrementalIngestionProviderExtensionPoint = - IncrementalIngestionProviderExtensionPoint_2; - -// @alpha (undocumented) -export const incrementalIngestionProvidersExtensionPoint: ExtensionPoint; - -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:3:15 - (ae-undocumented) Missing documentation for "_feature". -// src/alpha.d.ts:6:1 - (ae-undocumented) Missing documentation for "IncrementalIngestionProviderExtensionPoint". -// src/alpha.d.ts:8:22 - (ae-undocumented) Missing documentation for "incrementalIngestionProvidersExtensionPoint". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-incremental-ingestion/report.api.md b/plugins/catalog-backend-module-incremental-ingestion/report.api.md index 4b7e473b48..30ad70164f 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/report.api.md +++ b/plugins/catalog-backend-module-incremental-ingestion/report.api.md @@ -9,10 +9,10 @@ import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; import type { Config } from '@backstage/config'; import type { DeferredEntity } from '@backstage/plugin-catalog-node'; -import type { DurationObjectUnits } from 'luxon'; import { EventParams } from '@backstage/plugin-events-node'; import { EventSubscriber } from '@backstage/plugin-events-node'; import { ExtensionPoint } from '@backstage/backend-plugin-api'; +import { HumanDuration } from '@backstage/types'; import { IncrementalEntityProvider as IncrementalEntityProvider_2 } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; import { IncrementalEntityProviderOptions as IncrementalEntityProviderOptions_2 } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; import type { Logger } from 'winston'; @@ -85,12 +85,12 @@ export interface IncrementalEntityProvider { // @public (undocumented) export interface IncrementalEntityProviderOptions { - backoff?: DurationObjectUnits[]; - burstInterval: DurationObjectUnits; - burstLength: DurationObjectUnits; + backoff?: HumanDuration[]; + burstInterval: HumanDuration; + burstLength: HumanDuration; rejectEmptySourceCollections?: boolean; rejectRemovalsAbovePercentage?: number; - restLength: DurationObjectUnits; + restLength: HumanDuration; } // @public @@ -113,12 +113,4 @@ export type PluginEnvironment = { reader: UrlReaderService; permissions: PermissionEvaluator; }; - -// Warnings were encountered during analysis: -// -// src/service/IncrementalCatalogBuilder.d.ts:6:1 - (ae-undocumented) Missing documentation for "IncrementalCatalogBuilder". -// src/service/IncrementalCatalogBuilder.d.ts:20:5 - (ae-undocumented) Missing documentation for "build". -// src/service/IncrementalCatalogBuilder.d.ts:23:5 - (ae-undocumented) Missing documentation for "addIncrementalEntityProvider". -// src/types.d.ts:106:1 - (ae-undocumented) Missing documentation for "IncrementalEntityProviderOptions". -// src/types.d.ts:145:1 - (ae-undocumented) Missing documentation for "PluginEnvironment". ``` diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/alpha.ts b/plugins/catalog-backend-module-incremental-ingestion/src/alpha.ts index ee9c7ff415..cba672ce49 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/alpha.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/alpha.ts @@ -15,16 +15,7 @@ */ import { default as feature } from './module'; -import { - IncrementalIngestionProviderExtensionPoint as ExtensionPoint, - incrementalIngestionProvidersExtensionPoint as extensionPoint, -} from './module'; /** @alpha */ const _feature = feature; export default _feature; - -/** @alpha */ -export type IncrementalIngestionProviderExtensionPoint = ExtensionPoint; -/** @alpha */ -export const incrementalIngestionProvidersExtensionPoint = extensionPoint; diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts b/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts index 4f9e205cfe..1b72a46d17 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/engine/IncrementalIngestionEngine.ts @@ -18,16 +18,17 @@ import type { DeferredEntity } from '@backstage/plugin-catalog-node'; import { IterationEngine, IterationEngineOptions } from '../types'; import { IncrementalIngestionDatabaseManager } from '../database/IncrementalIngestionDatabaseManager'; import { performance } from 'perf_hooks'; -import { Duration, DurationObjectUnits } from 'luxon'; +import { Duration } from 'luxon'; import { v4 } from 'uuid'; import { stringifyError } from '@backstage/errors'; import { EventParams, EventSubscriber } from '@backstage/plugin-events-node'; +import { HumanDuration } from '@backstage/types'; export class IncrementalIngestionEngine implements IterationEngine, EventSubscriber { private readonly restLength: Duration; - private readonly backoff: DurationObjectUnits[]; + private readonly backoff: HumanDuration[]; private manager: IncrementalIngestionDatabaseManager; diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts index 1a98c478a1..89698da1de 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts @@ -24,10 +24,11 @@ import { createServiceFactory, } from '@backstage/backend-plugin-api'; import { ConfigReader } from '@backstage/config'; -import { IncrementalEntityProvider } from '.'; -import catalogModuleIncrementalIngestionEntityProvider, { +import { + IncrementalEntityProvider, incrementalIngestionProvidersExtensionPoint, -} from './alpha'; +} from '.'; +import catalogModuleIncrementalIngestionEntityProvider from './alpha'; const provider: IncrementalEntityProvider = { getProviderName: () => 'test-provider', diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/types.ts b/plugins/catalog-backend-module-incremental-ingestion/src/types.ts index 79368638f2..dd7854b586 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/types.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/types.ts @@ -22,7 +22,6 @@ import type { } from '@backstage/plugin-catalog-node'; import { EventParams } from '@backstage/plugin-events-node'; import type { PermissionEvaluator } from '@backstage/plugin-permission-common'; -import type { DurationObjectUnits } from 'luxon'; import type { Logger } from 'winston'; import { IncrementalIngestionDatabaseManager } from './database/IncrementalIngestionDatabaseManager'; import { @@ -31,6 +30,7 @@ import { SchedulerService, SchedulerServiceTaskFunction, } from '@backstage/backend-plugin-api'; +import { HumanDuration } from '@backstage/types'; /** * Ingest entities into the catalog in bite-sized chunks. @@ -145,27 +145,27 @@ export interface IncrementalEntityProviderOptions { * Entities are ingested in bursts. This interval determines how * much time to wait in between each burst. */ - burstInterval: DurationObjectUnits; + burstInterval: HumanDuration; /** * Entities are ingested in bursts. This value determines how long * to keep ingesting within each burst. */ - burstLength: DurationObjectUnits; + burstLength: HumanDuration; /** * After a successful ingestion, the incremental entity provider * will rest for this period of time before starting to ingest * again. */ - restLength: DurationObjectUnits; + restLength: HumanDuration; /** * In the event of an error during an ingestion burst, the backoff * determines how soon it will be retried. E.g. * `[{ minutes: 1}, { minutes: 5}, {minutes: 30 }, { hours: 3 }]` */ - backoff?: DurationObjectUnits[]; + backoff?: HumanDuration[]; /** * If an error occurs at a data source that results in a large @@ -203,7 +203,7 @@ export interface IterationEngineOptions { connection: EntityProviderConnection; manager: IncrementalIngestionDatabaseManager; provider: IncrementalEntityProvider; - restLength: DurationObjectUnits; + restLength: HumanDuration; ready: Promise; backoff?: IncrementalEntityProviderOptions['backoff']; rejectRemovalsAbovePercentage?: number; diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md index 831684ec76..2c4d5b9e87 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.9.2-next.0 + +### Patch Changes + +- 884a86c: Added a `dnCaseSensitive` flag to support LDAP servers with mixed-case attributes. +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.1.0 + +## 0.9.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.1.0 + ## 0.9.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index bc565f2fa5..d23d6e5eb1 100644 --- a/plugins/catalog-backend-module-ldap/package.json +++ b/plugins/catalog-backend-module-ldap/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-ldap", - "version": "0.9.1-next.1", + "version": "0.9.2-next.0", "description": "A Backstage catalog backend module that helps integrate towards LDAP", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-ldap/report.api.md b/plugins/catalog-backend-module-ldap/report.api.md index e8b20073a3..12dcffcd02 100644 --- a/plugins/catalog-backend-module-ldap/report.api.md +++ b/plugins/catalog-backend-module-ldap/report.api.md @@ -205,6 +205,7 @@ export type LdapProviderConfig = { export type LdapVendor = { dnAttributeName: string; uuidAttributeName: string; + dnCaseSensitive?: boolean; decodeStringAttribute: (entry: SearchEntry, name: string) => string[]; }; @@ -274,14 +275,6 @@ export type UserTransformer = ( export type VendorConfig = { dnAttributeName?: string; uuidAttributeName?: string; + dnCaseSensitive?: boolean; }; - -// Warnings were encountered during analysis: -// -// src/ldap/client.d.ts:16:5 - (ae-undocumented) Missing documentation for "create". -// src/processors/LdapOrgEntityProvider.d.ts:107:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/LdapOrgEntityProvider.d.ts:108:5 - (ae-undocumented) Missing documentation for "fromLegacyConfig". -// src/processors/LdapOrgReaderProcessor.d.ts:16:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/LdapOrgReaderProcessor.d.ts:27:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/LdapOrgReaderProcessor.d.ts:28:5 - (ae-undocumented) Missing documentation for "readLocation". ``` diff --git a/plugins/catalog-backend-module-ldap/src/ldap/config.ts b/plugins/catalog-backend-module-ldap/src/ldap/config.ts index 6fdf682b42..4b53034d36 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/config.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/config.ts @@ -181,6 +181,13 @@ export type VendorConfig = { * Attribute name for the unique identifier (UUID) of an entry, */ uuidAttributeName?: string; + + /** + * Attribute to determine if we need to force the DN and members/memberOf values to be forced to same case. + * Some providers may provide lowercase members but multicase DN names which causes the group filtering to break. + * The default is off, but turning this on forces the inbound DN values and all member values to lowercase. + */ + dnCaseSensitive?: boolean; }; const defaultUserConfig = { @@ -256,6 +263,7 @@ function readVendorConfig( return { dnAttributeName: c.getOptionalString('dnAttributeName'), uuidAttributeName: c.getOptionalString('uuidAttributeName'), + dnCaseSensitive: c.getOptionalBoolean('dnCaseSensitive'), }; } diff --git a/plugins/catalog-backend-module-ldap/src/ldap/read.test.ts b/plugins/catalog-backend-module-ldap/src/ldap/read.test.ts index 5a7e625577..20917a0fcc 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/read.test.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/read.test.ts @@ -330,6 +330,128 @@ describe('readLdapUsers', () => { new Map([['dn-value', new Set(['x', 'y', 'z'])]]), ); }); + + it('transfers all attributes from for vendorDN case sensitivity', async () => { + const vendor = DefaultLdapVendor; + vendor.dnCaseSensitive = true; + client.getVendor.mockResolvedValue(vendor); + client.searchStreaming.mockImplementation(async (_dn, _opts, fn) => { + await fn( + searchEntry({ + uid: ['uid-value'], + description: ['description-value'], + cn: ['cn-value'], + mail: ['mail-value'], + avatarUrl: ['avatarUrl-value'], + memberOf: ['x', 'Y', 'z'], + entryDN: ['dn-VALUE'], + entryUUID: ['uuid-value'], + }), + ); + }); + const config: UserConfig[] = [ + { + dn: 'ddd', + options: {}, + map: { + rdn: 'uid', + name: 'uid', + description: 'description', + displayName: 'cn', + email: 'mail', + picture: 'avatarUrl', + memberOf: 'memberOf', + }, + }, + ]; + const { users, userMemberOf } = await readLdapUsers(client, config, vendor); + // reset dnCaseSensitivity + vendor.dnCaseSensitive = false; + expect(users).toEqual([ + expect.objectContaining({ + metadata: { + name: 'uid-value', + description: 'description-value', + annotations: { + [LDAP_DN_ANNOTATION]: 'dn-value', + [LDAP_RDN_ANNOTATION]: 'uid-value', + [LDAP_UUID_ANNOTATION]: 'uuid-value', + }, + }, + spec: { + profile: { + displayName: 'cn-value', + email: 'mail-value', + picture: 'avatarUrl-value', + }, + memberOf: [], + }, + }), + ]); + expect(userMemberOf).toEqual( + new Map([['dn-value', new Set(['x', 'y', 'z'])]]), + ); + }); + it('fails to transfer all attributes from for due case sensitivity', async () => { + const vendor = DefaultLdapVendor; + client.getVendor.mockResolvedValue(vendor); + client.searchStreaming.mockImplementation(async (_dn, _opts, fn) => { + await fn( + searchEntry({ + uid: ['uid-value'], + description: ['description-value'], + cn: ['cn-value'], + mail: ['mail-value'], + avatarUrl: ['avatarUrl-value'], + memberOf: ['x', 'Y', 'z'], + entryDN: ['dn-VALUE'], + entryUUID: ['uuid-value'], + }), + ); + }); + const config: UserConfig[] = [ + { + dn: 'ddd', + options: {}, + map: { + rdn: 'uid', + name: 'uid', + description: 'description', + displayName: 'cn', + email: 'mail', + picture: 'avatarUrl', + memberOf: 'memberOf', + }, + }, + ]; + const { users, userMemberOf } = await readLdapUsers(client, config, vendor); + expect(users).toEqual([ + expect.objectContaining({ + metadata: { + name: 'uid-value', + description: 'description-value', + annotations: { + [LDAP_DN_ANNOTATION]: 'dn-VALUE', + [LDAP_RDN_ANNOTATION]: 'uid-value', + [LDAP_UUID_ANNOTATION]: 'uuid-value', + }, + }, + spec: { + profile: { + displayName: 'cn-value', + email: 'mail-value', + picture: 'avatarUrl-value', + }, + memberOf: [], + }, + }), + ]); + + expect(userMemberOf).toEqual( + new Map([['dn-VALUE', new Set(['x', 'Y', 'z'])]]), + ); + }); + it('can process a list of UserConfigs', async () => { client.getVendor.mockResolvedValue(DefaultLdapVendor); client.searchStreaming.mockImplementation(async (_dn, _opts, fn) => { @@ -955,3 +1077,170 @@ describe('defaultGroupTransformer', () => { }); }); }); + +/** + * Case Insensitivity Tests + */ +describe('defaultUserTransformerWithCaseSensitiveDNs', () => { + it('can set things safely', async () => { + const config: UserConfig = { + dn: 'ddd', + options: {}, + map: { + rdn: 'uid', + name: 'uid', + displayName: 'cn', + email: 'mail', + memberOf: 'memberOf', + }, + set: { + 'metadata.annotations.a': 1, + 'metadata.annotations': { a: 2, b: 3 }, + }, + }; + + const entry = searchEntry({ + uid: ['uid-value'], + description: ['description-value'], + cn: ['cn-value'], + mail: ['mail-value'], + avatarUrl: ['avatarUrl-value'], + memberOf: ['x', 'y', 'z'], + entryDN: ['dn-VALUE'], + entryUUID: ['uuid-value'], + }); + + const vendor = DefaultLdapVendor; + vendor.dnCaseSensitive = true; + let output = await defaultUserTransformer(vendor, config, entry); + expect(output).toEqual({ + apiVersion: 'backstage.io/v1beta1', + kind: 'User', + metadata: { + annotations: { + 'backstage.io/ldap-dn': 'dn-value', + 'backstage.io/ldap-rdn': 'uid-value', + 'backstage.io/ldap-uuid': 'uuid-value', + a: 2, + b: 3, + }, + name: 'uid-value', + }, + spec: { + memberOf: [], + profile: { displayName: 'cn-value', email: 'mail-value' }, + }, + }); + + (output!.metadata.annotations as any).c = 7; + + // exact same inputs again + output = await defaultUserTransformer(vendor, config, entry); + // reset dnCaseSensitivity + vendor.dnCaseSensitive = false; + expect(output).toEqual({ + apiVersion: 'backstage.io/v1beta1', + kind: 'User', + metadata: { + annotations: { + 'backstage.io/ldap-dn': 'dn-value', + 'backstage.io/ldap-rdn': 'uid-value', + 'backstage.io/ldap-uuid': 'uuid-value', + a: 2, + b: 3, + }, + name: 'uid-value', + }, + spec: { + memberOf: [], + profile: { displayName: 'cn-value', email: 'mail-value' }, + }, + }); + }); +}); + +describe('defaultGroupTransformerWithCaseSensitiveDNs', () => { + it('can set things safely', async () => { + const config: GroupConfig = { + dn: 'ddd', + options: {}, + map: { + rdn: 'uid', + name: 'uid', + displayName: 'cn', + email: 'mail', + description: 'description', + type: 'type', + members: 'members', + memberOf: 'memberOf', + }, + set: { + 'metadata.annotations.a': 1, + 'metadata.annotations': { a: 2, b: 3 }, + }, + }; + + const entry = searchEntry({ + uid: ['uid-value'], + description: ['description-value'], + cn: ['cn-value'], + mail: ['mail-value'], + avatarUrl: ['avatarUrl-value'], + memberOf: ['x', 'y', 'z'], + entryDN: ['dn-VALUE'], + entryUUID: ['uuid-value'], + }); + + const vendor = DefaultLdapVendor; + vendor.dnCaseSensitive = true; + + let output = await defaultGroupTransformer(vendor, config, entry); + expect(output).toEqual({ + apiVersion: 'backstage.io/v1beta1', + kind: 'Group', + metadata: { + annotations: { + 'backstage.io/ldap-dn': 'dn-value', + 'backstage.io/ldap-rdn': 'uid-value', + 'backstage.io/ldap-uuid': 'uuid-value', + a: 2, + b: 3, + }, + description: 'description-value', + name: 'uid-value', + }, + spec: { + type: 'unknown', + children: [], + profile: { displayName: 'cn-value', email: 'mail-value' }, + }, + }); + + (output!.metadata.annotations as any).c = 7; + + // exact same inputs again + output = await defaultGroupTransformer(vendor, config, entry); + // reset dnCaseSensitivity + vendor.dnCaseSensitive = false; + expect(output).toEqual({ + apiVersion: 'backstage.io/v1beta1', + kind: 'Group', + metadata: { + annotations: { + 'backstage.io/ldap-dn': 'dn-value', + 'backstage.io/ldap-rdn': 'uid-value', + 'backstage.io/ldap-uuid': 'uuid-value', + a: 2, + b: 3, + }, + description: 'description-value', + name: 'uid-value', + }, + spec: { + type: 'unknown', + children: [], + profile: { displayName: 'cn-value', email: 'mail-value' }, + }, + }); + }); +}); diff --git a/plugins/catalog-backend-module-ldap/src/ldap/read.ts b/plugins/catalog-backend-module-ldap/src/ldap/read.ts index e1cfc0730e..2ec663d7fe 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/read.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/read.ts @@ -80,7 +80,10 @@ export async function defaultUserTransformer( entity.metadata.annotations![LDAP_UUID_ANNOTATION] = v; }); mapStringAttr(entry, vendor, vendor.dnAttributeName, v => { - entity.metadata.annotations![LDAP_DN_ANNOTATION] = v; + entity.metadata.annotations![LDAP_DN_ANNOTATION] = getCaseSensitivityValue( + v, + vendor, + ); }); mapStringAttr(entry, vendor, map.displayName, v => { entity.spec.profile!.displayName = v; @@ -122,6 +125,8 @@ export async function readLdapUsers( vendorConfig?.dnAttributeName ?? vendorDefaults.dnAttributeName, uuidAttributeName: vendorConfig?.uuidAttributeName ?? vendorDefaults.uuidAttributeName, + dnCaseSensitive: + vendorConfig?.dnCaseSensitive ?? vendorDefaults.dnCaseSensitive, decodeStringAttribute: vendorDefaults.decodeStringAttribute, }; const transformer = opts?.transformer ?? defaultUserTransformer; @@ -190,7 +195,10 @@ export async function defaultGroupTransformer( entity.metadata.annotations![LDAP_UUID_ANNOTATION] = v; }); mapStringAttr(entry, vendor, vendor.dnAttributeName, v => { - entity.metadata.annotations![LDAP_DN_ANNOTATION] = v; + entity.metadata.annotations![LDAP_DN_ANNOTATION] = getCaseSensitivityValue( + v, + vendor, + ); }); mapStringAttr(entry, vendor, map.type, v => { entity.spec.type = v; @@ -240,6 +248,8 @@ export async function readLdapGroups( vendorConfig?.dnAttributeName ?? vendorDefaults.dnAttributeName, uuidAttributeName: vendorConfig?.uuidAttributeName ?? vendorDefaults.uuidAttributeName, + dnCaseSensitive: + vendorConfig?.dnCaseSensitive ?? vendorDefaults.dnCaseSensitive, decodeStringAttribute: vendorDefaults.decodeStringAttribute, }; @@ -341,11 +351,25 @@ function mapReferencesAttr( const values = vendor.decodeStringAttribute(entry, attributeName); const dn = vendor.decodeStringAttribute(entry, vendor.dnAttributeName); if (values && dn && dn.length === 1) { - setter(dn[0], values); + if (vendor.dnCaseSensitive) { + setter( + dn[0].toLocaleLowerCase('en-US'), + values.map(v => v.toLocaleLowerCase('en-US')), + ); + } else { + setter(dn[0], values); + } } } } +/** Validates value exists and if required forced sensitivty value to lowercase */ +function getCaseSensitivityValue(value: string, vendor: LdapVendor) { + return value && vendor.dnCaseSensitive + ? value.toLocaleLowerCase('en-US') + : value; +} + // Inserts a number of values in a key-values mapping function ensureItems( target: Map>, diff --git a/plugins/catalog-backend-module-ldap/src/ldap/vendors.ts b/plugins/catalog-backend-module-ldap/src/ldap/vendors.ts index 9f4e365c38..8b84002c20 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/vendors.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/vendors.ts @@ -30,6 +30,12 @@ export type LdapVendor = { * The attribute name that holds a universal unique identifier for an entry. */ uuidAttributeName: string; + + /** + * The attribute that determines behaviour of the (dn,members,memberOf) for entries. + */ + dnCaseSensitive?: boolean; + /** * Decode ldap entry values for a given attribute name to their string representation. * diff --git a/plugins/catalog-backend-module-logs/CHANGELOG.md b/plugins/catalog-backend-module-logs/CHANGELOG.md index 9d1d81585f..2bcb32155b 100644 --- a/plugins/catalog-backend-module-logs/CHANGELOG.md +++ b/plugins/catalog-backend-module-logs/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-logs +## 0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.3-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/plugin-catalog-backend@1.27.2-next.0 + +## 0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.27.0 + - @backstage/plugin-events-node@0.4.1 + - @backstage/backend-plugin-api@1.0.1 + ## 0.1.2-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-logs/package.json b/plugins/catalog-backend-module-logs/package.json index 28784f1fb4..cd8080070c 100644 --- a/plugins/catalog-backend-module-logs/package.json +++ b/plugins/catalog-backend-module-logs/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-logs", - "version": "0.1.2-next.2", + "version": "0.1.4-next.0", "description": "A module that subscribes to catalog releated events and logs them.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md index d0c836093d..a7a1f6e896 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.6.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/plugin-catalog-common@1.1.0 + +## 0.6.3 + +### Patch Changes + +- 4b60e0c: Remove extension points from `/alpha` export, they're available from the main package already +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/plugin-catalog-common@1.1.0 + ## 0.6.3-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 828725c566..6c95103742 100644 --- a/plugins/catalog-backend-module-msgraph/package.json +++ b/plugins/catalog-backend-module-msgraph/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-msgraph", - "version": "0.6.3-next.1", + "version": "0.6.4-next.0", "description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-msgraph/report-alpha.api.md b/plugins/catalog-backend-module-msgraph/report-alpha.api.md index 416c335bff..da981edd8d 100644 --- a/plugins/catalog-backend-module-msgraph/report-alpha.api.md +++ b/plugins/catalog-backend-module-msgraph/report-alpha.api.md @@ -4,30 +4,10 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; -import { ExtensionPoint } from '@backstage/backend-plugin-api'; -import { GroupTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; -import { OrganizationTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; -import { ProviderConfigTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; -import { UserTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; // @alpha (undocumented) const _feature: BackendFeature; export default _feature; -// Warning: (ae-forgotten-export) The symbol "MicrosoftGraphOrgEntityProviderTransformsExtensionPoint_2" needs to be exported by the entry point alpha.d.ts -// -// @alpha (undocumented) -export const microsoftGraphOrgEntityProviderTransformExtensionPoint: ExtensionPoint; - -// @alpha (undocumented) -export type MicrosoftGraphOrgEntityProviderTransformsExtensionPoint = - MicrosoftGraphOrgEntityProviderTransformsExtensionPoint_2; - -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:3:15 - (ae-undocumented) Missing documentation for "_feature". -// src/alpha.d.ts:6:1 - (ae-undocumented) Missing documentation for "MicrosoftGraphOrgEntityProviderTransformsExtensionPoint". -// src/alpha.d.ts:8:22 - (ae-undocumented) Missing documentation for "microsoftGraphOrgEntityProviderTransformExtensionPoint". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-msgraph/report.api.md b/plugins/catalog-backend-module-msgraph/report.api.md index 4d7c0966a5..35ae148a25 100644 --- a/plugins/catalog-backend-module-msgraph/report.api.md +++ b/plugins/catalog-backend-module-msgraph/report.api.md @@ -323,14 +323,4 @@ export type UserTransformer = ( user: MicrosoftGraph.User, userPhoto?: string, ) => Promise; - -// Warnings were encountered during analysis: -// -// src/microsoftGraph/client.d.ts:109:5 - (ae-undocumented) Missing documentation for "getUserPhoto". -// src/microsoftGraph/client.d.ts:129:5 - (ae-undocumented) Missing documentation for "getGroupPhoto". -// src/microsoftGraph/client.d.ts:176:5 - (ae-unresolved-link) The @link reference could not be resolved: The package "@backstage/plugin-catalog-backend-module-msgraph" does not have an export "entityName" -// src/processors/MicrosoftGraphOrgEntityProvider.d.ts:119:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/MicrosoftGraphOrgReaderProcessor.d.ts:18:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/MicrosoftGraphOrgReaderProcessor.d.ts:31:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/MicrosoftGraphOrgReaderProcessor.d.ts:32:5 - (ae-undocumented) Missing documentation for "readLocation". ``` diff --git a/plugins/catalog-backend-module-msgraph/src/alpha.ts b/plugins/catalog-backend-module-msgraph/src/alpha.ts index 2c0cfe2fb4..cba672ce49 100644 --- a/plugins/catalog-backend-module-msgraph/src/alpha.ts +++ b/plugins/catalog-backend-module-msgraph/src/alpha.ts @@ -15,18 +15,7 @@ */ import { default as feature } from './module'; -import { - MicrosoftGraphOrgEntityProviderTransformsExtensionPoint as ExtensionPoint, - microsoftGraphOrgEntityProviderTransformExtensionPoint as extensionPoint, -} from './module'; /** @alpha */ const _feature = feature; export default _feature; - -/** @alpha */ -export type MicrosoftGraphOrgEntityProviderTransformsExtensionPoint = - ExtensionPoint; -/** @alpha */ -export const microsoftGraphOrgEntityProviderTransformExtensionPoint = - extensionPoint; diff --git a/plugins/catalog-backend-module-msgraph/src/microsoftGraph/client.ts b/plugins/catalog-backend-module-msgraph/src/microsoftGraph/client.ts index c190e2a959..2dc2a65135 100644 --- a/plugins/catalog-backend-module-msgraph/src/microsoftGraph/client.ts +++ b/plugins/catalog-backend-module-msgraph/src/microsoftGraph/client.ts @@ -392,7 +392,7 @@ export class MicrosoftGraphClient { * from Graph API * * @param entityName - type of parent resource, either `User` or `Group` - * @param id - The unique identifier for the {@link entityName | entityName} resource + * @param id - The unique identifier for the `entityName` resource * @param maxSize - Maximum pixel height of the photo * */ diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md index 7b4ff5caed..09242576c6 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.15.1 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-backend@1.27.2-next.0 + - @backstage/plugin-catalog-common@1.1.0 + +## 0.2.2 + +### Patch Changes + +- 094eaa3: Remove references to in-repo backend-common +- Updated dependencies + - @backstage/plugin-catalog-backend@1.27.0 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.1.0 + ## 0.2.2-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 1de2587122..c45f65d477 100644 --- a/plugins/catalog-backend-module-openapi/package.json +++ b/plugins/catalog-backend-module-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-openapi", - "version": "0.2.2-next.2", + "version": "0.2.4-next.0", "description": "A Backstage catalog backend module that helps with OpenAPI specifications", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-openapi/report.api.md b/plugins/catalog-backend-module-openapi/report.api.md index c913e63294..d79d852387 100644 --- a/plugins/catalog-backend-module-openapi/report.api.md +++ b/plugins/catalog-backend-module-openapi/report.api.md @@ -47,14 +47,5 @@ export class OpenApiRefProcessor implements CatalogProcessor { preProcessEntity(entity: Entity, location: LocationSpec): Promise; } -// Warnings were encountered during analysis: -// -// src/OpenApiRefProcessor.d.ts:12:1 - (ae-undocumented) Missing documentation for "OpenApiRefProcessor". -// src/OpenApiRefProcessor.d.ts:16:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/OpenApiRefProcessor.d.ts:25:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/OpenApiRefProcessor.d.ts:26:5 - (ae-undocumented) Missing documentation for "preProcessEntity". -// src/index.d.ts:8:22 - (ae-undocumented) Missing documentation for "openApiPlaceholderResolver". -// src/jsonSchemaRefPlaceholderResolver.d.ts:4:1 - (ae-undocumented) Missing documentation for "jsonSchemaRefPlaceholderResolver". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md index 81447d1292..8081494d66 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,30 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## 0.2.3 + +### Patch Changes + +- 4b60e0c: Small tweaks to API reports to make them valid +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index 3a05b4ad43..77d439db6f 100644 --- a/plugins/catalog-backend-module-puppetdb/package.json +++ b/plugins/catalog-backend-module-puppetdb/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-puppetdb", - "version": "0.2.3-next.1", + "version": "0.2.4-next.0", "description": "A Backstage catalog backend module that helps integrate towards PuppetDB", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-puppetdb/report.api.md b/plugins/catalog-backend-module-puppetdb/report.api.md index 00874a3b2f..f6fa5bfc83 100644 --- a/plugins/catalog-backend-module-puppetdb/report.api.md +++ b/plugins/catalog-backend-module-puppetdb/report.api.md @@ -75,12 +75,4 @@ export type ResourceTransformer = ( node: PuppetNode, config: PuppetDbEntityProviderConfig, ) => Promise; - -// Warnings were encountered during analysis: -// -// src/providers/PuppetDbEntityProvider.d.ts:39:8 - (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration -// src/providers/PuppetDbEntityProvider.d.ts:41:5 - (ae-unresolved-link) The @link reference could not be resolved: The package "@backstage/plugin-catalog-backend-module-puppetdb" does not have an export "LoggerService" -// src/providers/PuppetDbEntityProvider.d.ts:41:5 - (ae-unresolved-link) The @link reference could not be resolved: The package "@backstage/plugin-catalog-backend-module-puppetdb" does not have an export "SchedulerServiceTaskRunner" -// src/providers/PuppetDbEntityProvider.d.ts:51:8 - (tsdoc-undefined-tag) The TSDoc tag "@private" is not defined in this configuration -// src/providers/PuppetDbEntityProvider.d.ts:53:5 - (ae-unresolved-link) The @link reference could not be resolved: The package "@backstage/plugin-catalog-backend-module-puppetdb" does not have an export "SchedulerServiceTaskRunner" ``` diff --git a/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.ts b/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.ts index fc13f45c39..8849e32c16 100644 --- a/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.ts +++ b/plugins/catalog-backend-module-puppetdb/src/providers/PuppetDbEntityProvider.ts @@ -99,11 +99,10 @@ export class PuppetDbEntityProvider implements EntityProvider { * Creates an instance of {@link PuppetDbEntityProvider}. * * @param config - Configuration of the provider. - * @param logger - The instance of a {@link LoggerService}. - * @param taskRunner - The instance of {@link SchedulerServiceTaskRunner}. + * @param logger - The instance of a {@link @backstage/backend-plugin-api#LoggerService}. + * @param taskRunner - The instance of {@link @backstage/backend-plugin-api#SchedulerServiceTaskRunner}. * @param transformer - A {@link ResourceTransformer} function. * - * @private */ private constructor( config: PuppetDbEntityProviderConfig, @@ -133,9 +132,7 @@ export class PuppetDbEntityProvider implements EntityProvider { /** * Creates a function that can be used to schedule a refresh of the catalog. * - * @param taskRunner - The instance of {@link SchedulerServiceTaskRunner}. - * - * @private + * @param taskRunner - The instance of {@link @backstage/backend-plugin-api#SchedulerServiceTaskRunner}. */ private createScheduleFn( taskRunner: SchedulerServiceTaskRunner, @@ -218,7 +215,7 @@ function withLocations(baseUrl: string, entity: Entity): Entity { /** * Tracks the progress of the PuppetDB read and commit operations. * - * @param logger - The instance of a {@link LoggerService}. + * @param logger - The instance of a {@link @backstage/backend-plugin-api#LoggerService}. */ function trackProgress(logger: LoggerService) { let timestamp = Date.now(); diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md index 434f7a6287..1a1479e0ad 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md +++ b/plugins/catalog-backend-module-scaffolder-entity-model/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-catalog-backend-module-scaffolder-entity-model +## 0.2.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/plugin-catalog-common@1.1.0 + - @backstage/plugin-scaffolder-common@1.5.6 + +## 0.2.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/plugin-catalog-common@1.1.0 + - @backstage/plugin-scaffolder-common@1.5.6 + ## 0.2.1-next.1 ### 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 03a1b81752..fdeac222e6 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/package.json +++ b/plugins/catalog-backend-module-scaffolder-entity-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-scaffolder-entity-model", - "version": "0.2.1-next.1", + "version": "0.2.2-next.0", "description": "Adds support for the scaffolder specific entity model (e.g. the Template kind) to the catalog backend plugin.", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-scaffolder-entity-model/report.api.md b/plugins/catalog-backend-module-scaffolder-entity-model/report.api.md index e4af5d5ef5..49542b0396 100644 --- a/plugins/catalog-backend-module-scaffolder-entity-model/report.api.md +++ b/plugins/catalog-backend-module-scaffolder-entity-model/report.api.md @@ -26,10 +26,4 @@ export class ScaffolderEntitiesProcessor implements CatalogProcessor { // (undocumented) validateEntityKind(entity: Entity): Promise; } - -// Warnings were encountered during analysis: -// -// src/processor/ScaffolderEntitiesProcessor.d.ts:10:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processor/ScaffolderEntitiesProcessor.d.ts:12:5 - (ae-undocumented) Missing documentation for "validateEntityKind". -// src/processor/ScaffolderEntitiesProcessor.d.ts:13:5 - (ae-undocumented) Missing documentation for "postProcessEntity". ``` diff --git a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md index 0fb01bece5..1324f25ac8 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.5.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.5.4-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-catalog-unprocessed-entities-common@0.0.4 + - @backstage/plugin-permission-common@0.8.1 + +## 0.5.1 + +### Patch Changes + +- 094eaa3: Remove references to in-repo backend-common +- Updated dependencies + - @backstage/plugin-auth-node@0.5.3 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-catalog-unprocessed-entities-common@0.0.4 + - @backstage/plugin-permission-common@0.8.1 + ## 0.5.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index 3d09ff692f..91f0633237 100644 --- a/plugins/catalog-backend-module-unprocessed/package.json +++ b/plugins/catalog-backend-module-unprocessed/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend-module-unprocessed", - "version": "0.5.1-next.1", + "version": "0.5.2-next.0", "description": "Backstage Catalog module to view unprocessed entities", "backstage": { "role": "backend-plugin-module", diff --git a/plugins/catalog-backend-module-unprocessed/report.api.md b/plugins/catalog-backend-module-unprocessed/report.api.md index ea3a9d974c..493082ac7c 100644 --- a/plugins/catalog-backend-module-unprocessed/report.api.md +++ b/plugins/catalog-backend-module-unprocessed/report.api.md @@ -27,9 +27,4 @@ export class UnprocessedEntitiesModule { // (undocumented) registerRoutes(): void; } - -// Warnings were encountered during analysis: -// -// src/UnprocessedEntitiesModule.d.ts:15:5 - (ae-undocumented) Missing documentation for "create". -// src/UnprocessedEntitiesModule.d.ts:26:5 - (ae-undocumented) Missing documentation for "registerRoutes". ``` diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md index 69439e3b70..4c7bf3c4aa 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,58 @@ # @backstage/plugin-catalog-backend +## 1.27.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.4.3-next.0 + - @backstage/plugin-search-backend-module-catalog@0.2.5-next.0 + - @backstage/plugin-catalog-node@1.14.0-next.0 + - @backstage/backend-openapi-utils@0.2.1-next.0 + - @backstage/catalog-client@1.8.0-next.0 + - @backstage/backend-plugin-api@1.0.2-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.15.1 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.1.0 + - @backstage/plugin-permission-common@0.8.1 + - @backstage/plugin-permission-node@0.8.5-next.0 + +## 1.27.0 + +### Minor Changes + +- 3109c24: The export for the new backend system at the `/alpha` export is now also available via the main entry point, which means that you can remove the `/alpha` suffix from the import. + +### Patch Changes + +- 094eaa3: Remove references to in-repo backend-common +- 83a8830: Added migration `20241003170511_alter_target_in_locations.js` to change the target column in the `locations` table to TEXT type. + Added a hash for the key column in the `refresh_keys` table. +- 62747f8: Fixed a bug where the concurrency limiter for URL reading was not honored +- c1f9764: Add configuration parameters for deferred stitcher +- 720a2f9: Updated dependency `git-url-parse` to `^15.0.0`. +- d1cf90a: Adds the ability to disable catalog processing `catalog.processingInterval: false` in `app-config` +- f1cab41: Update catalog search table in transaction +- 8206f49: Fix a bug where etags were expiring too soon in the URL reader +- Updated dependencies + - @backstage/plugin-search-backend-module-catalog@0.2.3 + - @backstage/plugin-permission-node@0.8.4 + - @backstage/plugin-events-node@0.4.1 + - @backstage/plugin-catalog-node@1.13.1 + - @backstage/integration@1.15.1 + - @backstage/backend-openapi-utils@0.2.0 + - @backstage/catalog-client@1.7.1 + - @backstage/backend-plugin-api@1.0.1 + - @backstage/catalog-model@1.7.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-common@1.1.0 + - @backstage/plugin-permission-common@0.8.1 + ## 1.26.2-next.2 ### Patch Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index ce2199836f..12ca1a7be5 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-catalog-backend", - "version": "1.26.2-next.2", + "version": "1.27.2-next.0", "description": "The Backstage backend plugin that provides the Backstage catalog", "backstage": { "role": "backend-plugin", diff --git a/plugins/catalog-backend/report-alpha.api.md b/plugins/catalog-backend/report-alpha.api.md index 59155670ba..d32ef323c9 100644 --- a/plugins/catalog-backend/report-alpha.api.md +++ b/plugins/catalog-backend/report-alpha.api.md @@ -146,9 +146,5 @@ export const permissionRules: { >; }; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:2:15 - (ae-undocumented) Missing documentation for "_feature". - // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend/report.api.md b/plugins/catalog-backend/report.api.md index 9294c71377..a200057a3a 100644 --- a/plugins/catalog-backend/report.api.md +++ b/plugins/catalog-backend/report.api.md @@ -483,85 +483,4 @@ export class UrlReaderProcessor implements CatalogProcessor_2 { cache: CatalogProcessorCache_2, ): Promise; } - -// Warnings were encountered during analysis: -// -// src/constants.d.ts:2:22 - (ae-undocumented) Missing documentation for "CATALOG_CONFLICTS_TOPIC". -// src/constants.d.ts:4:22 - (ae-undocumented) Missing documentation for "CATALOG_ERRORS_TOPIC". -// src/deprecated.d.ts:8:22 - (ae-undocumented) Missing documentation for "locationSpecToMetadataName". -// src/deprecated.d.ts:13:22 - (ae-undocumented) Missing documentation for "locationSpecToLocationEntity". -// src/deprecated.d.ts:18:22 - (ae-undocumented) Missing documentation for "processingResult". -// src/deprecated.d.ts:31:1 - (ae-undocumented) Missing documentation for "EntitiesSearchFilter". -// src/deprecated.d.ts:36:1 - (ae-undocumented) Missing documentation for "EntityFilter". -// src/deprecated.d.ts:41:1 - (ae-undocumented) Missing documentation for "DeferredEntity". -// src/deprecated.d.ts:46:1 - (ae-undocumented) Missing documentation for "EntityRelationSpec". -// src/deprecated.d.ts:51:1 - (ae-undocumented) Missing documentation for "CatalogProcessor". -// src/deprecated.d.ts:56:1 - (ae-undocumented) Missing documentation for "CatalogProcessorParser". -// src/deprecated.d.ts:61:1 - (ae-undocumented) Missing documentation for "CatalogProcessorCache". -// src/deprecated.d.ts:66:1 - (ae-undocumented) Missing documentation for "CatalogProcessorEmit". -// src/deprecated.d.ts:71:1 - (ae-undocumented) Missing documentation for "CatalogProcessorLocationResult". -// src/deprecated.d.ts:76:1 - (ae-undocumented) Missing documentation for "CatalogProcessorEntityResult". -// src/deprecated.d.ts:81:1 - (ae-undocumented) Missing documentation for "CatalogProcessorRelationResult". -// src/deprecated.d.ts:86:1 - (ae-undocumented) Missing documentation for "CatalogProcessorErrorResult". -// src/deprecated.d.ts:91:1 - (ae-undocumented) Missing documentation for "CatalogProcessorRefreshKeysResult". -// src/deprecated.d.ts:96:1 - (ae-undocumented) Missing documentation for "CatalogProcessorResult". -// src/deprecated.d.ts:101:1 - (ae-undocumented) Missing documentation for "EntityProvider". -// src/deprecated.d.ts:106:1 - (ae-undocumented) Missing documentation for "EntityProviderConnection". -// src/deprecated.d.ts:111:1 - (ae-undocumented) Missing documentation for "EntityProviderMutation". -// src/deprecated.d.ts:129:1 - (ae-undocumented) Missing documentation for "AnalyzeOptions". -// src/deprecated.d.ts:134:1 - (ae-undocumented) Missing documentation for "LocationAnalyzer". -// src/deprecated.d.ts:139:1 - (ae-undocumented) Missing documentation for "ScmLocationAnalyzer". -// src/deprecated.d.ts:144:1 - (ae-undocumented) Missing documentation for "PlaceholderResolver". -// src/deprecated.d.ts:149:1 - (ae-undocumented) Missing documentation for "PlaceholderResolverParams". -// src/deprecated.d.ts:154:1 - (ae-undocumented) Missing documentation for "PlaceholderResolverRead". -// src/deprecated.d.ts:159:1 - (ae-undocumented) Missing documentation for "PlaceholderResolverResolveUrl". -// src/deprecated.d.ts:164:1 - (ae-undocumented) Missing documentation for "AnalyzeLocationRequest". -// src/deprecated.d.ts:169:1 - (ae-undocumented) Missing documentation for "AnalyzeLocationResponse". -// src/deprecated.d.ts:202:22 - (ae-undocumented) Missing documentation for "DefaultCatalogCollatorFactory". -// src/deprecated.d.ts:207:22 - (ae-undocumented) Missing documentation for "defaultCatalogCollatorEntityTransformer". -// src/deprecated.d.ts:212:1 - (ae-undocumented) Missing documentation for "DefaultCatalogCollatorFactoryOptions". -// src/deprecated.d.ts:217:1 - (ae-undocumented) Missing documentation for "CatalogCollatorEntityTransformer". -// src/processing/types.d.ts:31:5 - (ae-undocumented) Missing documentation for "start". -// src/processing/types.d.ts:32:5 - (ae-undocumented) Missing documentation for "stop". -// src/processors/AnnotateLocationEntityProcessor.d.ts:6:1 - (ae-undocumented) Missing documentation for "AnnotateLocationEntityProcessor". -// src/processors/AnnotateLocationEntityProcessor.d.ts:11:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/AnnotateLocationEntityProcessor.d.ts:12:5 - (ae-undocumented) Missing documentation for "preProcessEntity". -// src/processors/AnnotateScmSlugEntityProcessor.d.ts:7:1 - (ae-undocumented) Missing documentation for "AnnotateScmSlugEntityProcessor". -// src/processors/AnnotateScmSlugEntityProcessor.d.ts:13:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/AnnotateScmSlugEntityProcessor.d.ts:14:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/AnnotateScmSlugEntityProcessor.d.ts:17:5 - (ae-undocumented) Missing documentation for "preProcessEntity". -// src/processors/BuiltinKindsEntityProcessor.d.ts:5:1 - (ae-undocumented) Missing documentation for "BuiltinKindsEntityProcessor". -// src/processors/BuiltinKindsEntityProcessor.d.ts:7:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/BuiltinKindsEntityProcessor.d.ts:8:5 - (ae-undocumented) Missing documentation for "validateEntityKind". -// src/processors/BuiltinKindsEntityProcessor.d.ts:9:5 - (ae-undocumented) Missing documentation for "postProcessEntity". -// src/processors/CodeOwnersProcessor.d.ts:8:1 - (ae-undocumented) Missing documentation for "CodeOwnersProcessor". -// src/processors/CodeOwnersProcessor.d.ts:12:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/processors/CodeOwnersProcessor.d.ts:21:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/CodeOwnersProcessor.d.ts:22:5 - (ae-undocumented) Missing documentation for "preProcessEntity". -// src/processors/FileReaderProcessor.d.ts:4:1 - (ae-undocumented) Missing documentation for "FileReaderProcessor". -// src/processors/FileReaderProcessor.d.ts:5:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/FileReaderProcessor.d.ts:6:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/processors/LocationEntityProcessor.d.ts:10:1 - (ae-undocumented) Missing documentation for "LocationEntityProcessorOptions". -// src/processors/LocationEntityProcessor.d.ts:28:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/LocationEntityProcessor.d.ts:29:5 - (ae-undocumented) Missing documentation for "postProcessEntity". -// src/processors/PlaceholderProcessor.d.ts:8:1 - (ae-undocumented) Missing documentation for "PlaceholderProcessorOptions". -// src/processors/PlaceholderProcessor.d.ts:21:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/PlaceholderProcessor.d.ts:22:5 - (ae-undocumented) Missing documentation for "preProcessEntity". -// src/processors/UrlReaderProcessor.d.ts:5:1 - (ae-undocumented) Missing documentation for "UrlReaderProcessor". -// src/processors/UrlReaderProcessor.d.ts:12:5 - (ae-undocumented) Missing documentation for "getProcessorName". -// src/processors/UrlReaderProcessor.d.ts:13:5 - (ae-undocumented) Missing documentation for "readLocation". -// src/search/DefaultCatalogCollator.d.ts:11:1 - (ae-undocumented) Missing documentation for "DefaultCatalogCollator". -// src/search/DefaultCatalogCollator.d.ts:12:5 - (ae-undocumented) Missing documentation for "discovery". -// src/search/DefaultCatalogCollator.d.ts:13:5 - (ae-undocumented) Missing documentation for "locationTemplate". -// src/search/DefaultCatalogCollator.d.ts:14:5 - (ae-undocumented) Missing documentation for "filter". -// src/search/DefaultCatalogCollator.d.ts:15:5 - (ae-undocumented) Missing documentation for "catalogClient". -// src/search/DefaultCatalogCollator.d.ts:16:5 - (ae-undocumented) Missing documentation for "type". -// src/search/DefaultCatalogCollator.d.ts:17:5 - (ae-undocumented) Missing documentation for "visibilityPermission". -// src/search/DefaultCatalogCollator.d.ts:18:5 - (ae-undocumented) Missing documentation for "tokenManager". -// src/search/DefaultCatalogCollator.d.ts:19:5 - (ae-undocumented) Missing documentation for "fromConfig". -// src/search/DefaultCatalogCollator.d.ts:31:5 - (ae-undocumented) Missing documentation for "applyArgsToFormat". -// src/search/DefaultCatalogCollator.d.ts:33:5 - (ae-undocumented) Missing documentation for "execute". -// src/service/CatalogBuilder.d.ts:19:1 - (ae-undocumented) Missing documentation for "CatalogEnvironment". -// src/service/CatalogBuilder.d.ts:233:5 - (ae-undocumented) Missing documentation for "subscribe". -// src/util/parse.d.ts:6:1 - (ae-undocumented) Missing documentation for "parseEntityYaml". ``` diff --git a/plugins/catalog-common/report.api.md b/plugins/catalog-common/report.api.md index 95b1d9b6c6..231c8aac34 100644 --- a/plugins/catalog-common/report.api.md +++ b/plugins/catalog-common/report.api.md @@ -64,16 +64,4 @@ export type LocationSpec = { target: string; presence?: 'optional' | 'required'; }; - -// Warnings were encountered during analysis: -// -// src/ingestion/LocationAnalyzer.d.ts:5:1 - (ae-undocumented) Missing documentation for "AnalyzeLocationRequest". -// src/ingestion/LocationAnalyzer.d.ts:10:1 - (ae-undocumented) Missing documentation for "AnalyzeLocationResponse". -// src/ingestion/LocationAnalyzer.d.ts:39:1 - (ae-undocumented) Missing documentation for "AnalyzeLocationEntityField". -// src/search/CatalogEntityDocument.d.ts:9:5 - (ae-undocumented) Missing documentation for "componentType". -// src/search/CatalogEntityDocument.d.ts:10:5 - (ae-undocumented) Missing documentation for "type". -// src/search/CatalogEntityDocument.d.ts:11:5 - (ae-undocumented) Missing documentation for "namespace". -// src/search/CatalogEntityDocument.d.ts:12:5 - (ae-undocumented) Missing documentation for "kind". -// src/search/CatalogEntityDocument.d.ts:13:5 - (ae-undocumented) Missing documentation for "lifecycle". -// src/search/CatalogEntityDocument.d.ts:14:5 - (ae-undocumented) Missing documentation for "owner". ``` diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md index 3db73d4648..6dd4d9175c 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,41 @@ # @backstage/plugin-catalog-graph +## 0.4.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.16.0-next.0 + - @backstage/catalog-client@1.8.0-next.0 + - @backstage/catalog-model@1.7.0 + - @backstage/core-compat-api@0.3.2-next.0 + - @backstage/core-plugin-api@1.10.0 + - @backstage/frontend-plugin-api@0.9.1-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-catalog-react@1.14.1-next.0 + +## 0.4.11 + +### Patch Changes + +- e969dc7: Move `@types/react` to a peer dependency. +- 4d9f39e: Added InfoCard `action` attribute for CatalogGraphCard + + ```tsx + const action =