diff --git a/.changeset/afraid-trees-stare.md b/.changeset/afraid-trees-stare.md
deleted file mode 100644
index 748bbb3cfe..0000000000
--- a/.changeset/afraid-trees-stare.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': minor
----
-
-Added the ability to be able to define an actions `input` and `output` schema using `zod` instead of hand writing types and `jsonschema`
diff --git a/.changeset/backend-token-authentication.md b/.changeset/backend-token-authentication.md
deleted file mode 100644
index 3b0f016800..0000000000
--- a/.changeset/backend-token-authentication.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': patch
----
-
-Make identity valid if subject of token is a backstage server-2-server auth token
diff --git a/.changeset/beige-hats-cheer.md b/.changeset/beige-hats-cheer.md
deleted file mode 100644
index 83b70d137e..0000000000
--- a/.changeset/beige-hats-cheer.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-'@backstage/plugin-catalog-backend': patch
----
-
-Add deprecations for symbols that were moved to `@backstage/plugin-catalog-node` a long time ago:
-
-- `CatalogProcessor`
-- `CatalogProcessorCache`
-- `CatalogProcessorEmit`
-- `CatalogProcessorEntityResult`
-- `CatalogProcessorErrorResult`
-- `CatalogProcessorLocationResult`
-- `CatalogProcessorParser`
-- `CatalogProcessorRefreshKeysResult`
-- `CatalogProcessorRelationResult`
-- `CatalogProcessorResult`
-- `DeferredEntity`
-- `EntityProvider`
-- `EntityProviderConnection`
-- `EntityProviderMutation`
-- `EntityRelationSpec`
-- `processingResult`
-
-Also moved over and deprecated the following symbols:
-
-- `locationSpecToLocationEntity`
-- `locationSpecToMetadataName`
diff --git a/.changeset/big-gorillas-fail1.md b/.changeset/big-gorillas-fail1.md
deleted file mode 100644
index 18c2d621d7..0000000000
--- a/.changeset/big-gorillas-fail1.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-bitbucket-cloud': patch
----
-
-Renamed `bitbucketCloudEventRouterEventsModule` to `eventsModuleBitbucketCloudEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail2.md b/.changeset/big-gorillas-fail2.md
deleted file mode 100644
index bc34bf9aaa..0000000000
--- a/.changeset/big-gorillas-fail2.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-aws-sqs': patch
----
-
-Renamed `awsSqsConsumingEventPublisherEventsModule` to `eventsModuleAwsSqsConsumingEventPublisher` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail3.md b/.changeset/big-gorillas-fail3.md
deleted file mode 100644
index 352c1a2cff..0000000000
--- a/.changeset/big-gorillas-fail3.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-gerrit': patch
----
-
-Renamed `gerritEventRouterEventsModule` to `eventsModuleGerritEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail4.md b/.changeset/big-gorillas-fail4.md
deleted file mode 100644
index add8699f8b..0000000000
--- a/.changeset/big-gorillas-fail4.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-github': patch
----
-
-Renamed `githubEventRouterEventsModule` to `eventsModuleGithubEventRouter` and `githubWebhookEventsModule` to `eventsModuleGithubWebhook`, to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail5.md b/.changeset/big-gorillas-fail5.md
deleted file mode 100644
index 549eb61f24..0000000000
--- a/.changeset/big-gorillas-fail5.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-gitlab': patch
----
-
-Renamed `gitlabEventRouterEventsModule` to `eventsModuleGitlabEventRouter` and `gitlabWebhookEventsModule` to `eventsModuleGitlabWebhook` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/big-gorillas-fail6.md b/.changeset/big-gorillas-fail6.md
deleted file mode 100644
index 6622b5222e..0000000000
--- a/.changeset/big-gorillas-fail6.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-azure': patch
----
-
-Renamed `azureDevOpsEventRouterEventsModule` to `eventsModuleAzureDevOpsEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/breezy-bees-care.md b/.changeset/breezy-bees-care.md
deleted file mode 100644
index 9a5b59fe03..0000000000
--- a/.changeset/breezy-bees-care.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/catalog-client': minor
----
-
-Add `queryEntities` method to `CatalogApi`.
diff --git a/.changeset/bright-kids-raise.md b/.changeset/bright-kids-raise.md
deleted file mode 100644
index e0d69e0c71..0000000000
--- a/.changeset/bright-kids-raise.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-todo-backend': patch
----
-
-todo-backend is now exposed as a plugin which uses the new plugin system
diff --git a/.changeset/bright-pumpkins-bake.md b/.changeset/bright-pumpkins-bake.md
new file mode 100644
index 0000000000..4c16e307ec
--- /dev/null
+++ b/.changeset/bright-pumpkins-bake.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+Rename output parameter `mergeRequestURL` of `publish:gitlab:merge-request` action to `mergeRequestUrl`.
diff --git a/.changeset/clean-lemons-jump.md b/.changeset/clean-lemons-jump.md
deleted file mode 100644
index ab6f22136a..0000000000
--- a/.changeset/clean-lemons-jump.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Button labels in the sidebar (previously displayed in uppercase) will be displayed in the case that is provided without any transformations.
-For example, a sidebar button with the label "Search" will appear as Search, "search" will appear as search, "SEARCH" will appear as SEARCH etc.
-This can potentially affect any overriding styles previously applied to change the appearance of Button labels in the Sidebar.
diff --git a/.changeset/clean-planes-join.md b/.changeset/clean-planes-join.md
deleted file mode 100644
index dd8280f553..0000000000
--- a/.changeset/clean-planes-join.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-permission-node': patch
----
-
-Changed the `createPermissionIntegrationRouter` API to allow `getResources`, `resourceType` and `rules` to be optional
diff --git a/.changeset/clever-dogs-cheat.md b/.changeset/clever-dogs-cheat.md
deleted file mode 100644
index 56fcf3d30c..0000000000
--- a/.changeset/clever-dogs-cheat.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-'@backstage/plugin-search-backend-module-elasticsearch': patch
-'@backstage/plugin-tech-insights-backend-module-jsonfc': patch
-'@backstage/plugin-catalog-backend-module-github': patch
-'@backstage/plugin-scaffolder-backend': patch
-'@backstage/plugin-scaffolder-react': patch
-'@backstage/plugin-splunk-on-call': patch
-'@backstage/plugin-techdocs-react': patch
-'@backstage/plugin-catalog-react': patch
-'@backstage/plugin-tech-insights': patch
-'@backstage/plugin-techdocs-node': patch
-'@backstage/plugin-search-react': patch
-'@backstage/plugin-scaffolder': patch
-'@backstage/plugin-auth-node': patch
-'@backstage/plugin-sonarqube': patch
-'@backstage/plugin-techdocs': patch
-'@backstage/plugin-explore': patch
-'@backstage/plugin-search': patch
----
-
-Minor API report tweaks
diff --git a/.changeset/cold-dogs-watch.md b/.changeset/cold-dogs-watch.md
deleted file mode 100644
index 99b25a833e..0000000000
--- a/.changeset/cold-dogs-watch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-puppetdb': patch
----
-
-Added a `catalogModulePuppetDbEntityProvider` alpha export for the new backend system
diff --git a/.changeset/cold-plants-boil.md b/.changeset/cold-plants-boil.md
deleted file mode 100644
index a991601a88..0000000000
--- a/.changeset/cold-plants-boil.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs-node': patch
----
-
-Update to a newer version of `@trendyol-js/openstack-swift-sdk`
diff --git a/.changeset/cool-clocks-prove.md b/.changeset/cool-clocks-prove.md
deleted file mode 100644
index dfd7b8c5eb..0000000000
--- a/.changeset/cool-clocks-prove.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Fixed a bug where additional backend package entry points where not properly marked as internal during local development.
diff --git a/.changeset/cool-feet-speak.md b/.changeset/cool-feet-speak.md
deleted file mode 100644
index 9240c5bb52..0000000000
--- a/.changeset/cool-feet-speak.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-scaffolder-react': patch
-'@backstage/plugin-scaffolder': patch
----
-
-Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
diff --git a/.changeset/create-app-1676993958.md b/.changeset/create-app-1676993958.md
deleted file mode 100644
index b50d431d4b..0000000000
--- a/.changeset/create-app-1676993958.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Bumped create-app version.
diff --git a/.changeset/create-app-1678209629.md b/.changeset/create-app-1678209629.md
deleted file mode 100644
index b50d431d4b..0000000000
--- a/.changeset/create-app-1678209629.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Bumped create-app version.
diff --git a/.changeset/curly-boats-trade.md b/.changeset/curly-boats-trade.md
new file mode 100644
index 0000000000..773d66734c
--- /dev/null
+++ b/.changeset/curly-boats-trade.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-api-docs': patch
+---
+
+Corrected styling of nested objects in AsyncAPI to avoid inappropriate uppercase text transformation of nested objects.
diff --git a/.changeset/curly-jobs-kneel.md b/.changeset/curly-jobs-kneel.md
new file mode 100644
index 0000000000..f313beab88
--- /dev/null
+++ b/.changeset/curly-jobs-kneel.md
@@ -0,0 +1,8 @@
+---
+'@backstage/plugin-scaffolder': patch
+'@backstage/plugin-scaffolder-backend': patch
+'@backstage/plugin-scaffolder-node': patch
+'@backstage/plugin-scaffolder-react': patch
+---
+
+Added a possibility to cancel the running task (executing of a scaffolder template)
diff --git a/.changeset/curvy-pets-hang.md b/.changeset/curvy-pets-hang.md
deleted file mode 100644
index 3a2d11ac12..0000000000
--- a/.changeset/curvy-pets-hang.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/repo-tools': patch
----
-
-Tweaked type dependency check to trim wildcard type imports.
diff --git a/.changeset/cyan-sheep-tap.md b/.changeset/cyan-sheep-tap.md
deleted file mode 100644
index 7812e6b6c6..0000000000
--- a/.changeset/cyan-sheep-tap.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Added templates for new plugin Web and Node.js libraries.
diff --git a/.changeset/dull-adults-drum.md b/.changeset/dull-adults-drum.md
deleted file mode 100644
index 088eb1539e..0000000000
--- a/.changeset/dull-adults-drum.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-adr': patch
----
-
-Updated readme instructions
diff --git a/.changeset/eight-radios-bake.md b/.changeset/eight-radios-bake.md
deleted file mode 100644
index 173739a625..0000000000
--- a/.changeset/eight-radios-bake.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': patch
----
-
-throw error from catalog:fetch scaffolder action when entity is null and optional is false
diff --git a/.changeset/eighty-chairs-roll.md b/.changeset/eighty-chairs-roll.md
deleted file mode 100644
index c981229378..0000000000
--- a/.changeset/eighty-chairs-roll.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': minor
----
-
-Update `EntityPicker` to use the fully qualified entity ref instead of the humanized version.
diff --git a/.changeset/eighty-geese-return.md b/.changeset/eighty-geese-return.md
deleted file mode 100644
index 49361de8e7..0000000000
--- a/.changeset/eighty-geese-return.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-msgraph': patch
----
-
-Revert using `baseUrl` for MS Graph provider as it breaks token retrieval
diff --git a/.changeset/empty-books-occur.md b/.changeset/empty-books-occur.md
deleted file mode 100644
index 69218c5cfa..0000000000
--- a/.changeset/empty-books-occur.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-react': patch
----
-
-Correctly disable next button in `SearchPagination` on last page
diff --git a/.changeset/famous-sloths-tie.md b/.changeset/famous-sloths-tie.md
deleted file mode 100644
index 53932afab6..0000000000
--- a/.changeset/famous-sloths-tie.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Getting credentials in the RepoUrlPicker now also works for targets without owner (e.g. Bitbucket Server).
diff --git a/.changeset/fast-snakes-buy.md b/.changeset/fast-snakes-buy.md
new file mode 100644
index 0000000000..711588918d
--- /dev/null
+++ b/.changeset/fast-snakes-buy.md
@@ -0,0 +1,7 @@
+---
+'@backstage/plugin-entity-feedback': minor
+'@backstage/plugin-entity-feedback-backend': patch
+'@backstage/plugin-entity-feedback-common': patch
+---
+
+Added an endpoint to fetch anonymous aggregated results from an entity
diff --git a/.changeset/fifty-beds-dress.md b/.changeset/fifty-beds-dress.md
deleted file mode 100644
index 19049732cc..0000000000
--- a/.changeset/fifty-beds-dress.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-puppetdb': minor
----
-
-Initial version of the plugin.
diff --git a/.changeset/flat-kids-occur.md b/.changeset/flat-kids-occur.md
deleted file mode 100644
index 4e4c002928..0000000000
--- a/.changeset/flat-kids-occur.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-scaffolder-react': minor
-'@backstage/plugin-scaffolder': minor
----
-
-Move `useTaskStream`, `TaskBorder`, `TaskLogStream` and `TaskSteps` into `scaffolder-react`.
diff --git a/.changeset/flat-peaches-act.md b/.changeset/flat-peaches-act.md
deleted file mode 100644
index e4b4138ee5..0000000000
--- a/.changeset/flat-peaches-act.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs-backend': patch
----
-
-Techdocs backend explains a bit more about what might have caused the docs not being found when building techdocs.
diff --git a/.changeset/forty-snails-clap.md b/.changeset/forty-snails-clap.md
deleted file mode 100644
index f5aef12d9d..0000000000
--- a/.changeset/forty-snails-clap.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-incremental-ingestion': minor
----
-
-Added endpoint to get a list of known incremental entity providers
diff --git a/.changeset/four-lizards-grin.md b/.changeset/four-lizards-grin.md
deleted file mode 100644
index 6fa5f57243..0000000000
--- a/.changeset/four-lizards-grin.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend': patch
----
-
-Fix export of `defaultCatalogCollatorEntityTransformer`.
diff --git a/.changeset/fresh-hairs-switch.md b/.changeset/fresh-hairs-switch.md
deleted file mode 100644
index 16d3b119e5..0000000000
--- a/.changeset/fresh-hairs-switch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-tasks': minor
----
-
-add functionality to get descriptions from the scheduler for triggering
diff --git a/.changeset/fuzzy-actors-turn.md b/.changeset/fuzzy-actors-turn.md
new file mode 100644
index 0000000000..bd92ad34ef
--- /dev/null
+++ b/.changeset/fuzzy-actors-turn.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-kubernetes-backend': patch
+---
+
+Fixes bug whereby backstage crashes when bad credentials are provided to the kubernetes plugin.
diff --git a/.changeset/fuzzy-trains-search.md b/.changeset/fuzzy-trains-search.md
deleted file mode 100644
index 229d25f3b5..0000000000
--- a/.changeset/fuzzy-trains-search.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog': patch
----
-
-Fix icon alignment in `CatalogSearchResultListItem`
diff --git a/.changeset/gentle-bears-love.md b/.changeset/gentle-bears-love.md
deleted file mode 100644
index b6f6e3cfcf..0000000000
--- a/.changeset/gentle-bears-love.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-msgraph': patch
----
-
-Fixed msgraph catalog backend to use user.select option when fetching user from AzureAD
diff --git a/.changeset/gentle-pears-clean.md b/.changeset/gentle-pears-clean.md
deleted file mode 100644
index d92c3709ae..0000000000
--- a/.changeset/gentle-pears-clean.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/eslint-plugin': patch
----
-
-Fixing a bug that we should check internal dependencies too
diff --git a/.changeset/gorgeous-pumas-speak.md b/.changeset/gorgeous-pumas-speak.md
deleted file mode 100644
index 60f40c6748..0000000000
--- a/.changeset/gorgeous-pumas-speak.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog': patch
----
-
-fix entity switch rendering when there is no default case
diff --git a/.changeset/great-trains-jam.md b/.changeset/great-trains-jam.md
deleted file mode 100644
index 91133bfe32..0000000000
--- a/.changeset/great-trains-jam.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Fix bug that caused next and previous links not to work with certain versions of mkdocs-material
diff --git a/.changeset/grumpy-bikes-begin.md b/.changeset/grumpy-bikes-begin.md
deleted file mode 100644
index a98e6651f5..0000000000
--- a/.changeset/grumpy-bikes-begin.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-tech-insights-backend': patch
----
-
-Add DB index to improve latency of latest fact query
diff --git a/.changeset/happy-boxes-arrive.md b/.changeset/happy-boxes-arrive.md
deleted file mode 100644
index 85998c1bdd..0000000000
--- a/.changeset/happy-boxes-arrive.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-react': patch
----
-
-fix bug with `hasErrors` returning false when dealing with empty objects
diff --git a/.changeset/healthy-buses-live-1.md b/.changeset/healthy-buses-live-1.md
deleted file mode 100644
index 7e433372df..0000000000
--- a/.changeset/healthy-buses-live-1.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
----
-
-Renamed `incrementalIngestionEntityProviderCatalogModule` to `catalogModuleIncrementalIngestionEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-2.md b/.changeset/healthy-buses-live-2.md
deleted file mode 100644
index ab577276d8..0000000000
--- a/.changeset/healthy-buses-live-2.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
----
-
-Renamed `bitbucketServerEntityProviderCatalogModule` to `catalogModuleBitbucketServerEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-3.md b/.changeset/healthy-buses-live-3.md
deleted file mode 100644
index 493236ea73..0000000000
--- a/.changeset/healthy-buses-live-3.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
----
-
-Renamed `bitbucketCloudEntityProviderCatalogModule` to `catalogModuleBitbucketCloudEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-4.md b/.changeset/healthy-buses-live-4.md
deleted file mode 100644
index fdc223a7f4..0000000000
--- a/.changeset/healthy-buses-live-4.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-msgraph': patch
----
-
-Renamed `microsoftGraphOrgEntityProviderCatalogModule` to `catalogModuleMicrosoftGraphOrgEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-5.md b/.changeset/healthy-buses-live-5.md
deleted file mode 100644
index f540751696..0000000000
--- a/.changeset/healthy-buses-live-5.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-gerrit': patch
----
-
-Renamed `gerritEntityProviderCatalogModule` to `catalogModuleGerritEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-6.md b/.changeset/healthy-buses-live-6.md
deleted file mode 100644
index f293e56eae..0000000000
--- a/.changeset/healthy-buses-live-6.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-github': patch
----
-
-Renamed `githubEntityProviderCatalogModule` to `catalogModuleGithubEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-7.md b/.changeset/healthy-buses-live-7.md
deleted file mode 100644
index 7e7219bf01..0000000000
--- a/.changeset/healthy-buses-live-7.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-gitlab': patch
----
-
-Renamed `gitlabDiscoveryEntityProviderCatalogModule` to `catalogModuleGitlabDiscoveryEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-8.md b/.changeset/healthy-buses-live-8.md
deleted file mode 100644
index 9137a3b31a..0000000000
--- a/.changeset/healthy-buses-live-8.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-azure': patch
----
-
-Renamed `azureDevOpsEntityProviderCatalogModule` to `catalogModuleAzureDevOpsEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/healthy-buses-live-9.md b/.changeset/healthy-buses-live-9.md
deleted file mode 100644
index dbcba51470..0000000000
--- a/.changeset/healthy-buses-live-9.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-aws': patch
----
-
-Renamed `awsS3EntityProviderCatalogModule` to `catalogModuleAwsS3EntityProviders` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
diff --git a/.changeset/honest-clouds-shout.md b/.changeset/honest-clouds-shout.md
deleted file mode 100644
index 0a7249d9ad..0000000000
--- a/.changeset/honest-clouds-shout.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': patch
----
-
-catalog write action should allow any shape of object
diff --git a/.changeset/honest-nails-bake.md b/.changeset/honest-nails-bake.md
deleted file mode 100644
index 03d5a080c9..0000000000
--- a/.changeset/honest-nails-bake.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-octopus-deploy': minor
----
-
-Initial version
diff --git a/.changeset/hungry-lies-cry.md b/.changeset/hungry-lies-cry.md
new file mode 100644
index 0000000000..712aef6172
--- /dev/null
+++ b/.changeset/hungry-lies-cry.md
@@ -0,0 +1,8 @@
+---
+'@backstage/plugin-catalog-backend-module-gitlab': patch
+---
+
+The gitlab org data integration now makes use of the GraphQL API to determine
+the relationships between imported User and Group entities, effectively making
+this integration usable without an administrator account's Personal Access
+Token.
diff --git a/.changeset/hungry-monkeys-reply.md b/.changeset/hungry-monkeys-reply.md
new file mode 100644
index 0000000000..c7f5d54ea1
--- /dev/null
+++ b/.changeset/hungry-monkeys-reply.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog': minor
+---
+
+Added a new EntitySwitch isResourceType to allow different views depending on Resource type
diff --git a/.changeset/khaki-cars-drum.md b/.changeset/khaki-cars-drum.md
new file mode 100644
index 0000000000..325b0f8ba5
--- /dev/null
+++ b/.changeset/khaki-cars-drum.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-auth-backend': patch
+---
+
+Enforce the secret visibility of certificates and client secrets in the auth backend. Also, document all known options for each auth plugin.
diff --git a/.changeset/khaki-doors-compare.md b/.changeset/khaki-doors-compare.md
new file mode 100644
index 0000000000..a2c4de020a
--- /dev/null
+++ b/.changeset/khaki-doors-compare.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-vault-backend': minor
+---
+
+Allow generic Vault clients to be passed into the builder
diff --git a/.changeset/khaki-guests-turn.md b/.changeset/khaki-guests-turn.md
new file mode 100644
index 0000000000..5676236aae
--- /dev/null
+++ b/.changeset/khaki-guests-turn.md
@@ -0,0 +1,9 @@
+---
+'@backstage/plugin-catalog-backend-module-msgraph': patch
+'@backstage/plugin-catalog-backend-module-openapi': patch
+'@backstage/plugin-catalog-backend-module-ldap': patch
+'@backstage/plugin-scaffolder-backend': patch
+'@backstage/plugin-catalog-backend': patch
+---
+
+Fix deprecated types.
diff --git a/.changeset/khaki-poems-run.md b/.changeset/khaki-poems-run.md
deleted file mode 100644
index 74db902c02..0000000000
--- a/.changeset/khaki-poems-run.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-entity-validation': patch
----
-
-Fixed bug in EntityVaidation plugin where string in text box was unable to be updated.
diff --git a/.changeset/lazy-monkeys-worry.md b/.changeset/lazy-monkeys-worry.md
new file mode 100644
index 0000000000..9dc3ea514e
--- /dev/null
+++ b/.changeset/lazy-monkeys-worry.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-tech-insights': patch
+---
+
+The `Check` type now optionally includes the `failureMetadata` and `successMetadata` as returned by the `runChecks` call.
diff --git a/.changeset/light-bees-end.md b/.changeset/light-bees-end.md
deleted file mode 100644
index 9fbbc44da0..0000000000
--- a/.changeset/light-bees-end.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes': patch
----
-
-GitLab can now be used as an `oidcTokenProvider` for Kubernetes clusters
diff --git a/.changeset/light-sheep-trade.md b/.changeset/light-sheep-trade.md
deleted file mode 100644
index 480ffc973e..0000000000
--- a/.changeset/light-sheep-trade.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated the ESLint plugin configuration that is enabled through `yarn start --check` to only pick up valid source files.
diff --git a/.changeset/long-nails-pump.md b/.changeset/long-nails-pump.md
deleted file mode 100644
index d9eefc0249..0000000000
--- a/.changeset/long-nails-pump.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Added a new `migrate package-exports` command that synchronizes package exports fields in all `package.json`s.
diff --git a/.changeset/long-wolves-drive.md b/.changeset/long-wolves-drive.md
deleted file mode 100644
index 1c3ffadb5a..0000000000
--- a/.changeset/long-wolves-drive.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-octopus-deploy': patch
----
-
-Added Octopus Deploy logo
diff --git a/.changeset/lovely-tigers-look.md b/.changeset/lovely-tigers-look.md
deleted file mode 100644
index 5e7d230e6d..0000000000
--- a/.changeset/lovely-tigers-look.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-adr-backend': patch
----
-
-Support MADR v3 format
diff --git a/.changeset/many-eggs-press.md b/.changeset/many-eggs-press.md
new file mode 100644
index 0000000000..551cf9e759
--- /dev/null
+++ b/.changeset/many-eggs-press.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-search-react': patch
+'@backstage/plugin-techdocs': patch
+---
+
+Fixes a UI bug in search result item which rendered the item text with incorrect font size and color
diff --git a/.changeset/mean-toys-itch.md b/.changeset/mean-toys-itch.md
deleted file mode 100644
index 75252b3482..0000000000
--- a/.changeset/mean-toys-itch.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-'@backstage/backend-common': patch
----
-
-Adds config option `backend.database.role` to set ownership for newly created schemas and tables in Postgres
-
-The example config below connects to the database as user `v-backstage-123` but sets the ownership of
-the create schemas and tables to `backstage`
-
-```yaml
-backend:
- database:
- client: pg
- pluginDivisionMode: schema
- role: backstage
- connection:
- user: v-backstage-123
- ...
-```
diff --git a/.changeset/metal-suns-rhyme.md b/.changeset/metal-suns-rhyme.md
deleted file mode 100644
index 3fefdca7c6..0000000000
--- a/.changeset/metal-suns-rhyme.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Bumped the `msw` version in templates to 1.0.0
diff --git a/.changeset/mighty-games-turn.md b/.changeset/mighty-games-turn.md
deleted file mode 100644
index 38c2487835..0000000000
--- a/.changeset/mighty-games-turn.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-tech-radar': patch
----
-
-Update colors to match Zalando's tech radar, also add coloring on title and legend to match ring color.
diff --git a/.changeset/mighty-years-own.md b/.changeset/mighty-years-own.md
deleted file mode 100644
index b14b974bc4..0000000000
--- a/.changeset/mighty-years-own.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-react': patch
----
-
-scaffolder/next: Move the `uiSchema` to its own property in the validation `context` to align with component development and access of `ui:options`
diff --git a/.changeset/modern-colts-exercise.md b/.changeset/modern-colts-exercise.md
deleted file mode 100644
index 651f10bc98..0000000000
--- a/.changeset/modern-colts-exercise.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-azure': patch
----
-
-Add branch filter support
-https://backstage.io/docs/integrations/azure/discovery
diff --git a/.changeset/moody-apes-know.md b/.changeset/moody-apes-know.md
deleted file mode 100644
index bd48cb108e..0000000000
--- a/.changeset/moody-apes-know.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-'@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-catalog-backend-module-bitbucket': patch
-'@backstage/plugin-catalog-backend-module-puppetdb': patch
-'@backstage/plugin-catalog-backend-module-msgraph': patch
-'@backstage/plugin-catalog-backend-module-gerrit': patch
-'@backstage/plugin-catalog-backend-module-github': patch
-'@backstage/plugin-catalog-backend-module-gitlab': patch
-'@backstage/plugin-catalog-backend-module-azure': patch
-'@backstage/plugin-catalog-backend-module-ldap': patch
-'@backstage/plugin-catalog-backend-module-aws': patch
----
-
-Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
diff --git a/.changeset/neat-donkeys-work.md b/.changeset/neat-donkeys-work.md
new file mode 100644
index 0000000000..dfa3236d43
--- /dev/null
+++ b/.changeset/neat-donkeys-work.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': minor
+---
+
+scaffolder/next: removing the `routeRefs` and exporting the originals on `scaffolderPlugin.routes.x` instead
diff --git a/.changeset/new-jobs-deny.md b/.changeset/new-jobs-deny.md
deleted file mode 100644
index e7b5bff71a..0000000000
--- a/.changeset/new-jobs-deny.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-react': minor
----
-
-Add possibility to re-use EntityPicker for filters with multiple select.
diff --git a/.changeset/nice-planets-wave.md b/.changeset/nice-planets-wave.md
deleted file mode 100644
index 2af1a14d83..0000000000
--- a/.changeset/nice-planets-wave.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-linguist-backend': minor
----
-
-**BREAKING** The linguist-backend `createRouter` now requires that the `tokenManger` is passed to the router.
diff --git a/.changeset/nine-bikes-applaud.md b/.changeset/nine-bikes-applaud.md
deleted file mode 100644
index 77a1c0e4be..0000000000
--- a/.changeset/nine-bikes-applaud.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
----
-
-allow container runner to be undefined in cookiecutter plugin
diff --git a/.changeset/ninety-turtles-wait.md b/.changeset/ninety-turtles-wait.md
deleted file mode 100644
index 683583528f..0000000000
--- a/.changeset/ninety-turtles-wait.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-The HTML tag attributes in the documentation content inserted to shadow DOM is preserved to improve accessibility
diff --git a/.changeset/odd-fireants-bathe.md b/.changeset/odd-fireants-bathe.md
deleted file mode 100644
index d4b7f5dc5a..0000000000
--- a/.changeset/odd-fireants-bathe.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-adr-backend': patch
-'@backstage/cli': patch
----
-
-Adjust express dependencies to be the same as the rest of the project
diff --git a/.changeset/odd-oranges-tease.md b/.changeset/odd-oranges-tease.md
deleted file mode 100644
index f9d5e60d19..0000000000
--- a/.changeset/odd-oranges-tease.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-'@backstage/plugin-git-release-manager': patch
-'@backstage/plugin-microsoft-calendar': patch
-'@backstage/plugin-newrelic-dashboard': patch
-'@backstage/core-components': patch
-'@backstage/plugin-code-coverage': patch
-'@backstage/plugin-code-climate': patch
-'@backstage/plugin-azure-sites': patch
-'@backstage/plugin-firehydrant': patch
-'@backstage/plugin-scaffolder': patch
-'@backstage/plugin-tech-radar': patch
-'@backstage/plugin-gcalendar': patch
-'@backstage/plugin-shortcuts': patch
-'@backstage/plugin-techdocs': patch
-'@backstage/plugin-catalog': patch
-'@backstage/plugin-explore': patch
-'@backstage/plugin-ilert': patch
-'@backstage/plugin-org': patch
----
-
-Change black & white colors to be theme aware
diff --git a/.changeset/odd-waves-rescue.md b/.changeset/odd-waves-rescue.md
deleted file mode 100644
index e435bc9962..0000000000
--- a/.changeset/odd-waves-rescue.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Create an "Other Templates" group when groups are given to scaffolder/next.
diff --git a/.changeset/old-cougars-sit.md b/.changeset/old-cougars-sit.md
new file mode 100644
index 0000000000..cdab8b1291
--- /dev/null
+++ b/.changeset/old-cougars-sit.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-kubernetes-backend': patch
+---
+
+Fix parsing error when kubernetes api is returning badly structured data.
diff --git a/.changeset/old-foxes-shave.md b/.changeset/old-foxes-shave.md
deleted file mode 100644
index 4cd0808103..0000000000
--- a/.changeset/old-foxes-shave.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-api-docs': patch
----
-
-Add ApiDefinitionDialog component for fast access to the API definition in ProvidedApiCards and ConsumedApiCards.
diff --git a/.changeset/olive-berries-poke.md b/.changeset/olive-berries-poke.md
deleted file mode 100644
index 48bde329c8..0000000000
--- a/.changeset/olive-berries-poke.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-react': patch
----
-
-scaffolder/next: Fix for steps without properties
diff --git a/.changeset/orange-experts-hug.md b/.changeset/orange-experts-hug.md
deleted file mode 100644
index 1bf8b4a7d7..0000000000
--- a/.changeset/orange-experts-hug.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-api-docs': patch
----
-
-Fix dark theme Swagger's clear button font color.
diff --git a/.changeset/perfect-mayflies-greet.md b/.changeset/perfect-mayflies-greet.md
deleted file mode 100644
index 7e57507dae..0000000000
--- a/.changeset/perfect-mayflies-greet.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated frontend plugin template to use some more recent features
diff --git a/.changeset/pink-dolls-unite.md b/.changeset/pink-dolls-unite.md
deleted file mode 100644
index 418edfd92b..0000000000
--- a/.changeset/pink-dolls-unite.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-linguist-backend': patch
----
-
-Added support for linguist-js options using the linguistJSOptions in the plugin, the available config can be found [here](https://www.npmjs.com/package/linguist-js#API).
diff --git a/.changeset/polite-chicken-do.md b/.changeset/polite-chicken-do.md
deleted file mode 100644
index 33e4149253..0000000000
--- a/.changeset/polite-chicken-do.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-vault-backend': patch
----
-
-Ignore the `eslint` error
diff --git a/.changeset/polite-falcons-jump.md b/.changeset/polite-falcons-jump.md
deleted file mode 100644
index ab9209913d..0000000000
--- a/.changeset/polite-falcons-jump.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-org': patch
----
-
-Fix small UI-glitch in MemberListCard
diff --git a/.changeset/polite-wombats-smash.md b/.changeset/polite-wombats-smash.md
deleted file mode 100644
index 98569e1799..0000000000
--- a/.changeset/polite-wombats-smash.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/errors': patch
----
-
-Added `NotImplementedError`, which can be used when the server does not recognize the request method and is incapable of supporting it for any resource.
diff --git a/.changeset/pre.json b/.changeset/pre.json
index fc7fbffc9a..8ed335e113 100644
--- a/.changeset/pre.json
+++ b/.changeset/pre.json
@@ -1,327 +1,217 @@
{
- "mode": "exit",
+ "mode": "pre",
"tag": "next",
"initialVersions": {
- "example-app": "0.2.80",
- "@backstage/app-defaults": "1.2.0",
- "example-backend": "0.2.80",
- "@backstage/backend-app-api": "0.4.0",
- "@backstage/backend-common": "0.18.2",
- "@backstage/backend-defaults": "0.1.7",
- "@backstage/backend-dev-utils": "0.1.0",
- "example-backend-next": "0.0.8",
- "@backstage/backend-plugin-api": "0.4.0",
- "@backstage/backend-tasks": "0.4.3",
- "@backstage/backend-test-utils": "0.1.34",
- "@backstage/catalog-client": "1.3.1",
- "@backstage/catalog-model": "1.2.0",
- "@backstage/cli": "0.22.2",
- "@backstage/cli-common": "0.1.11",
- "@backstage/codemods": "0.1.43",
- "@backstage/config": "1.0.6",
- "@backstage/config-loader": "1.1.8",
- "@backstage/core-app-api": "1.5.0",
- "@backstage/core-components": "0.12.4",
- "@backstage/core-plugin-api": "1.4.0",
- "@backstage/create-app": "0.4.37",
- "@backstage/dev-utils": "1.0.12",
- "e2e-test": "0.2.0",
- "@backstage/errors": "1.1.4",
- "@backstage/eslint-plugin": "0.1.0",
- "@backstage/integration": "1.4.2",
- "@backstage/integration-aws-node": "0.1.1",
- "@backstage/integration-react": "1.1.10",
- "@backstage/release-manifests": "0.0.8",
- "@backstage/repo-tools": "0.1.2",
- "@techdocs/cli": "1.3.2",
- "techdocs-cli-embedded-app": "0.2.79",
- "@backstage/test-utils": "1.2.5",
- "@backstage/theme": "0.2.17",
+ "example-app": "0.2.81",
+ "@backstage/app-defaults": "1.2.1",
+ "example-backend": "0.2.81",
+ "@backstage/backend-app-api": "0.4.1",
+ "@backstage/backend-common": "0.18.3",
+ "@backstage/backend-defaults": "0.1.8",
+ "@backstage/backend-dev-utils": "0.1.1",
+ "example-backend-next": "0.0.9",
+ "@backstage/backend-plugin-api": "0.5.0",
+ "@backstage/backend-tasks": "0.5.0",
+ "@backstage/backend-test-utils": "0.1.35",
+ "@backstage/catalog-client": "1.4.0",
+ "@backstage/catalog-model": "1.2.1",
+ "@backstage/cli": "0.22.4",
+ "@backstage/cli-common": "0.1.12",
+ "@backstage/codemods": "0.1.44",
+ "@backstage/config": "1.0.7",
+ "@backstage/config-loader": "1.1.9",
+ "@backstage/core-app-api": "1.6.0",
+ "@backstage/core-components": "0.12.5",
+ "@backstage/core-plugin-api": "1.5.0",
+ "@backstage/create-app": "0.4.38",
+ "@backstage/dev-utils": "1.0.13",
+ "e2e-test": "0.2.1",
+ "@backstage/errors": "1.1.5",
+ "@backstage/eslint-plugin": "0.1.2",
+ "@backstage/integration": "1.4.3",
+ "@backstage/integration-aws-node": "0.1.2",
+ "@backstage/integration-react": "1.1.11",
+ "@backstage/release-manifests": "0.0.9",
+ "@backstage/repo-tools": "0.1.3",
+ "@techdocs/cli": "1.4.0",
+ "techdocs-cli-embedded-app": "0.2.80",
+ "@backstage/test-utils": "1.2.6",
+ "@backstage/theme": "0.2.18",
"@backstage/types": "1.0.2",
"@backstage/version-bridge": "1.0.3",
- "@backstage/plugin-adr": "0.4.0",
- "@backstage/plugin-adr-backend": "0.3.0",
- "@backstage/plugin-adr-common": "0.2.6",
- "@backstage/plugin-airbrake": "0.3.15",
- "@backstage/plugin-airbrake-backend": "0.2.15",
- "@backstage/plugin-allure": "0.1.31",
- "@backstage/plugin-analytics-module-ga": "0.1.26",
- "@backstage/plugin-apache-airflow": "0.2.8",
- "@backstage/plugin-api-docs": "0.9.0",
+ "@backstage/plugin-adr": "0.4.1",
+ "@backstage/plugin-adr-backend": "0.3.1",
+ "@backstage/plugin-adr-common": "0.2.7",
+ "@backstage/plugin-airbrake": "0.3.16",
+ "@backstage/plugin-airbrake-backend": "0.2.16",
+ "@backstage/plugin-allure": "0.1.32",
+ "@backstage/plugin-analytics-module-ga": "0.1.27",
+ "@backstage/plugin-apache-airflow": "0.2.9",
+ "@backstage/plugin-api-docs": "0.9.1",
"@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.1",
- "@backstage/plugin-apollo-explorer": "0.1.8",
- "@backstage/plugin-app-backend": "0.3.42",
- "@backstage/plugin-auth-backend": "0.18.0",
- "@backstage/plugin-auth-node": "0.2.11",
- "@backstage/plugin-azure-devops": "0.2.6",
- "@backstage/plugin-azure-devops-backend": "0.3.21",
+ "@backstage/plugin-apollo-explorer": "0.1.9",
+ "@backstage/plugin-app-backend": "0.3.43",
+ "@backstage/plugin-auth-backend": "0.18.1",
+ "@backstage/plugin-auth-node": "0.2.12",
+ "@backstage/plugin-azure-devops": "0.2.7",
+ "@backstage/plugin-azure-devops-backend": "0.3.22",
"@backstage/plugin-azure-devops-common": "0.3.0",
- "@backstage/plugin-azure-sites": "0.1.4",
- "@backstage/plugin-azure-sites-backend": "0.1.4",
+ "@backstage/plugin-azure-sites": "0.1.5",
+ "@backstage/plugin-azure-sites-backend": "0.1.5",
"@backstage/plugin-azure-sites-common": "0.1.0",
- "@backstage/plugin-badges": "0.2.39",
- "@backstage/plugin-badges-backend": "0.1.36",
- "@backstage/plugin-bazaar": "0.2.4",
- "@backstage/plugin-bazaar-backend": "0.2.5",
- "@backstage/plugin-bitbucket-cloud-common": "0.2.3",
- "@backstage/plugin-bitrise": "0.1.42",
- "@backstage/plugin-catalog": "1.8.0",
- "@backstage/plugin-catalog-backend": "1.7.2",
- "@backstage/plugin-catalog-backend-module-aws": "0.1.15",
- "@backstage/plugin-catalog-backend-module-azure": "0.1.13",
- "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.9",
- "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.9",
- "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.7",
- "@backstage/plugin-catalog-backend-module-gerrit": "0.1.10",
- "@backstage/plugin-catalog-backend-module-github": "0.2.5",
- "@backstage/plugin-catalog-backend-module-gitlab": "0.1.13",
- "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.2.0",
- "@backstage/plugin-catalog-backend-module-ldap": "0.5.9",
- "@backstage/plugin-catalog-backend-module-msgraph": "0.5.0",
- "@backstage/plugin-catalog-backend-module-openapi": "0.1.8",
- "@backstage/plugin-catalog-common": "1.0.11",
- "@internal/plugin-catalog-customized": "0.0.7",
- "@backstage/plugin-catalog-graph": "0.2.27",
- "@backstage/plugin-catalog-graphql": "0.3.18",
- "@backstage/plugin-catalog-import": "0.9.5",
- "@backstage/plugin-catalog-node": "1.3.3",
- "@backstage/plugin-catalog-react": "1.3.0",
- "@backstage/plugin-cicd-statistics": "0.1.17",
- "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.11",
- "@backstage/plugin-circleci": "0.3.15",
- "@backstage/plugin-cloudbuild": "0.3.15",
- "@backstage/plugin-code-climate": "0.1.15",
- "@backstage/plugin-code-coverage": "0.2.8",
- "@backstage/plugin-code-coverage-backend": "0.2.8",
- "@backstage/plugin-codescene": "0.1.10",
- "@backstage/plugin-config-schema": "0.1.38",
- "@backstage/plugin-cost-insights": "0.12.4",
+ "@backstage/plugin-badges": "0.2.40",
+ "@backstage/plugin-badges-backend": "0.1.37",
+ "@backstage/plugin-bazaar": "0.2.6",
+ "@backstage/plugin-bazaar-backend": "0.2.6",
+ "@backstage/plugin-bitbucket-cloud-common": "0.2.4",
+ "@backstage/plugin-bitrise": "0.1.43",
+ "@backstage/plugin-catalog": "1.9.0",
+ "@backstage/plugin-catalog-backend": "1.8.0",
+ "@backstage/plugin-catalog-backend-module-aws": "0.1.17",
+ "@backstage/plugin-catalog-backend-module-azure": "0.1.14",
+ "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.10",
+ "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.10",
+ "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.8",
+ "@backstage/plugin-catalog-backend-module-gerrit": "0.1.11",
+ "@backstage/plugin-catalog-backend-module-github": "0.2.6",
+ "@backstage/plugin-catalog-backend-module-gitlab": "0.1.14",
+ "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.3.0",
+ "@backstage/plugin-catalog-backend-module-ldap": "0.5.10",
+ "@backstage/plugin-catalog-backend-module-msgraph": "0.5.2",
+ "@backstage/plugin-catalog-backend-module-openapi": "0.1.9",
+ "@backstage/plugin-catalog-backend-module-puppetdb": "0.1.0",
+ "@backstage/plugin-catalog-common": "1.0.12",
+ "@internal/plugin-catalog-customized": "0.0.8",
+ "@backstage/plugin-catalog-graph": "0.2.28",
+ "@backstage/plugin-catalog-graphql": "0.3.19",
+ "@backstage/plugin-catalog-import": "0.9.6",
+ "@backstage/plugin-catalog-node": "1.3.4",
+ "@backstage/plugin-catalog-react": "1.4.0",
+ "@backstage/plugin-cicd-statistics": "0.1.18",
+ "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.12",
+ "@backstage/plugin-circleci": "0.3.16",
+ "@backstage/plugin-cloudbuild": "0.3.16",
+ "@backstage/plugin-code-climate": "0.1.16",
+ "@backstage/plugin-code-coverage": "0.2.9",
+ "@backstage/plugin-code-coverage-backend": "0.2.9",
+ "@backstage/plugin-codescene": "0.1.11",
+ "@backstage/plugin-config-schema": "0.1.39",
+ "@backstage/plugin-cost-insights": "0.12.5",
"@backstage/plugin-cost-insights-common": "0.1.1",
- "@backstage/plugin-dynatrace": "2.0.0",
- "@backstage/plugin-entity-feedback": "0.1.0",
- "@backstage/plugin-entity-feedback-backend": "0.1.0",
+ "@backstage/plugin-dynatrace": "3.0.0",
+ "@backstage/plugin-entity-feedback": "0.1.1",
+ "@backstage/plugin-entity-feedback-backend": "0.1.1",
"@backstage/plugin-entity-feedback-common": "0.1.0",
- "@backstage/plugin-entity-validation": "0.1.0",
- "@backstage/plugin-events-backend": "0.2.3",
- "@backstage/plugin-events-backend-module-aws-sqs": "0.1.4",
- "@backstage/plugin-events-backend-module-azure": "0.1.4",
- "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.1.4",
- "@backstage/plugin-events-backend-module-gerrit": "0.1.4",
- "@backstage/plugin-events-backend-module-github": "0.1.4",
- "@backstage/plugin-events-backend-module-gitlab": "0.1.4",
- "@backstage/plugin-events-backend-test-utils": "0.1.4",
- "@backstage/plugin-events-node": "0.2.3",
- "@internal/plugin-todo-list": "1.0.10",
- "@internal/plugin-todo-list-backend": "1.0.10",
- "@internal/plugin-todo-list-common": "1.0.8",
- "@backstage/plugin-explore": "0.4.0",
- "@backstage/plugin-explore-backend": "0.0.4",
+ "@backstage/plugin-entity-validation": "0.1.1",
+ "@backstage/plugin-events-backend": "0.2.4",
+ "@backstage/plugin-events-backend-module-aws-sqs": "0.1.5",
+ "@backstage/plugin-events-backend-module-azure": "0.1.5",
+ "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.1.5",
+ "@backstage/plugin-events-backend-module-gerrit": "0.1.5",
+ "@backstage/plugin-events-backend-module-github": "0.1.5",
+ "@backstage/plugin-events-backend-module-gitlab": "0.1.5",
+ "@backstage/plugin-events-backend-test-utils": "0.1.5",
+ "@backstage/plugin-events-node": "0.2.4",
+ "@internal/plugin-todo-list": "1.0.11",
+ "@internal/plugin-todo-list-backend": "1.0.11",
+ "@internal/plugin-todo-list-common": "1.0.9",
+ "@backstage/plugin-explore": "0.4.1",
+ "@backstage/plugin-explore-backend": "0.0.5",
"@backstage/plugin-explore-common": "0.0.1",
- "@backstage/plugin-explore-react": "0.0.26",
- "@backstage/plugin-firehydrant": "0.1.32",
- "@backstage/plugin-fossa": "0.2.47",
- "@backstage/plugin-gcalendar": "0.3.11",
- "@backstage/plugin-gcp-projects": "0.3.34",
- "@backstage/plugin-git-release-manager": "0.3.28",
- "@backstage/plugin-github-actions": "0.5.15",
- "@backstage/plugin-github-deployments": "0.1.46",
- "@backstage/plugin-github-issues": "0.2.4",
- "@backstage/plugin-github-pull-requests-board": "0.1.9",
- "@backstage/plugin-gitops-profiles": "0.3.33",
- "@backstage/plugin-gocd": "0.1.21",
- "@backstage/plugin-graphiql": "0.2.47",
- "@backstage/plugin-graphql-backend": "0.1.32",
- "@backstage/plugin-graphql-voyager": "0.1.0",
- "@backstage/plugin-home": "0.4.31",
- "@backstage/plugin-ilert": "0.2.4",
- "@backstage/plugin-jenkins": "0.7.14",
- "@backstage/plugin-jenkins-backend": "0.1.32",
- "@backstage/plugin-jenkins-common": "0.1.13",
- "@backstage/plugin-kafka": "0.3.15",
- "@backstage/plugin-kafka-backend": "0.2.35",
- "@backstage/plugin-kubernetes": "0.7.8",
- "@backstage/plugin-kubernetes-backend": "0.9.3",
- "@backstage/plugin-kubernetes-common": "0.6.0",
- "@backstage/plugin-lighthouse": "0.4.0",
- "@backstage/plugin-lighthouse-backend": "0.1.0",
- "@backstage/plugin-lighthouse-common": "0.1.0",
- "@backstage/plugin-linguist": "0.1.0",
- "@backstage/plugin-linguist-backend": "0.1.0",
+ "@backstage/plugin-explore-react": "0.0.27",
+ "@backstage/plugin-firehydrant": "0.2.0",
+ "@backstage/plugin-fossa": "0.2.48",
+ "@backstage/plugin-gcalendar": "0.3.12",
+ "@backstage/plugin-gcp-projects": "0.3.35",
+ "@backstage/plugin-git-release-manager": "0.3.29",
+ "@backstage/plugin-github-actions": "0.5.16",
+ "@backstage/plugin-github-deployments": "0.1.47",
+ "@backstage/plugin-github-issues": "0.2.5",
+ "@backstage/plugin-github-pull-requests-board": "0.1.10",
+ "@backstage/plugin-gitops-profiles": "0.3.34",
+ "@backstage/plugin-gocd": "0.1.22",
+ "@backstage/plugin-graphiql": "0.2.48",
+ "@backstage/plugin-graphql-backend": "0.1.33",
+ "@backstage/plugin-graphql-voyager": "0.1.1",
+ "@backstage/plugin-home": "0.4.32",
+ "@backstage/plugin-ilert": "0.2.5",
+ "@backstage/plugin-jenkins": "0.7.15",
+ "@backstage/plugin-jenkins-backend": "0.1.33",
+ "@backstage/plugin-jenkins-common": "0.1.14",
+ "@backstage/plugin-kafka": "0.3.16",
+ "@backstage/plugin-kafka-backend": "0.2.36",
+ "@backstage/plugin-kubernetes": "0.7.9",
+ "@backstage/plugin-kubernetes-backend": "0.9.4",
+ "@backstage/plugin-kubernetes-common": "0.6.1",
+ "@backstage/plugin-lighthouse": "0.4.1",
+ "@backstage/plugin-lighthouse-backend": "0.1.1",
+ "@backstage/plugin-lighthouse-common": "0.1.1",
+ "@backstage/plugin-linguist": "0.1.1",
+ "@backstage/plugin-linguist-backend": "0.2.0",
"@backstage/plugin-linguist-common": "0.1.0",
- "@backstage/plugin-microsoft-calendar": "0.1.0",
- "@backstage/plugin-newrelic": "0.3.33",
- "@backstage/plugin-newrelic-dashboard": "0.2.8",
- "@backstage/plugin-org": "0.6.5",
- "@backstage/plugin-org-react": "0.1.4",
- "@backstage/plugin-pagerduty": "0.5.8",
- "@backstage/plugin-periskop": "0.1.13",
- "@backstage/plugin-periskop-backend": "0.1.13",
- "@backstage/plugin-permission-backend": "0.5.17",
- "@backstage/plugin-permission-common": "0.7.3",
- "@backstage/plugin-permission-node": "0.7.5",
- "@backstage/plugin-permission-react": "0.4.10",
- "@backstage/plugin-playlist": "0.1.6",
- "@backstage/plugin-playlist-backend": "0.2.5",
- "@backstage/plugin-playlist-common": "0.1.4",
- "@backstage/plugin-proxy-backend": "0.2.36",
- "@backstage/plugin-rollbar": "0.4.15",
- "@backstage/plugin-rollbar-backend": "0.1.39",
- "@backstage/plugin-scaffolder": "1.11.0",
- "@backstage/plugin-scaffolder-backend": "1.11.0",
- "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.17",
- "@backstage/plugin-scaffolder-backend-module-rails": "0.4.10",
- "@backstage/plugin-scaffolder-backend-module-sentry": "0.1.2",
- "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.15",
- "@backstage/plugin-scaffolder-common": "1.2.5",
- "@backstage/plugin-scaffolder-node": "0.1.0",
- "@backstage/plugin-scaffolder-react": "1.1.0",
- "@backstage/plugin-search": "1.1.0",
- "@backstage/plugin-search-backend": "1.2.3",
- "@backstage/plugin-search-backend-module-elasticsearch": "1.1.3",
- "@backstage/plugin-search-backend-module-pg": "0.5.3",
- "@backstage/plugin-search-backend-node": "1.1.3",
- "@backstage/plugin-search-common": "1.2.1",
- "@backstage/plugin-search-react": "1.5.0",
- "@backstage/plugin-sentry": "0.5.0",
- "@backstage/plugin-shortcuts": "0.3.7",
- "@backstage/plugin-sonarqube": "0.6.3",
- "@backstage/plugin-sonarqube-backend": "0.1.7",
- "@backstage/plugin-sonarqube-react": "0.1.2",
- "@backstage/plugin-splunk-on-call": "0.4.4",
- "@backstage/plugin-stack-overflow": "0.1.11",
- "@backstage/plugin-stack-overflow-backend": "0.1.11",
- "@backstage/plugin-tech-insights": "0.3.7",
- "@backstage/plugin-tech-insights-backend": "0.5.8",
- "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.26",
+ "@backstage/plugin-microsoft-calendar": "0.1.1",
+ "@backstage/plugin-newrelic": "0.3.34",
+ "@backstage/plugin-newrelic-dashboard": "0.2.9",
+ "@backstage/plugin-octopus-deploy": "0.1.0",
+ "@backstage/plugin-org": "0.6.6",
+ "@backstage/plugin-org-react": "0.1.5",
+ "@backstage/plugin-pagerduty": "0.5.9",
+ "@backstage/plugin-periskop": "0.1.14",
+ "@backstage/plugin-periskop-backend": "0.1.14",
+ "@backstage/plugin-permission-backend": "0.5.18",
+ "@backstage/plugin-permission-common": "0.7.4",
+ "@backstage/plugin-permission-node": "0.7.6",
+ "@backstage/plugin-permission-react": "0.4.11",
+ "@backstage/plugin-playlist": "0.1.7",
+ "@backstage/plugin-playlist-backend": "0.2.6",
+ "@backstage/plugin-playlist-common": "0.1.5",
+ "@backstage/plugin-proxy-backend": "0.2.37",
+ "@backstage/plugin-rollbar": "0.4.16",
+ "@backstage/plugin-rollbar-backend": "0.1.40",
+ "@backstage/plugin-scaffolder": "1.12.0",
+ "@backstage/plugin-scaffolder-backend": "1.12.0",
+ "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.18",
+ "@backstage/plugin-scaffolder-backend-module-rails": "0.4.11",
+ "@backstage/plugin-scaffolder-backend-module-sentry": "0.1.3",
+ "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.16",
+ "@backstage/plugin-scaffolder-common": "1.2.6",
+ "@backstage/plugin-scaffolder-node": "0.1.1",
+ "@backstage/plugin-scaffolder-react": "1.2.0",
+ "@backstage/plugin-search": "1.1.1",
+ "@backstage/plugin-search-backend": "1.2.4",
+ "@backstage/plugin-search-backend-module-elasticsearch": "1.1.4",
+ "@backstage/plugin-search-backend-module-pg": "0.5.4",
+ "@backstage/plugin-search-backend-node": "1.1.4",
+ "@backstage/plugin-search-common": "1.2.2",
+ "@backstage/plugin-search-react": "1.5.1",
+ "@backstage/plugin-sentry": "0.5.1",
+ "@backstage/plugin-shortcuts": "0.3.8",
+ "@backstage/plugin-sonarqube": "0.6.5",
+ "@backstage/plugin-sonarqube-backend": "0.1.8",
+ "@backstage/plugin-sonarqube-react": "0.1.4",
+ "@backstage/plugin-splunk-on-call": "0.4.5",
+ "@backstage/plugin-stack-overflow": "0.1.12",
+ "@backstage/plugin-stack-overflow-backend": "0.1.12",
+ "@backstage/plugin-stackstorm": "0.1.0",
+ "@backstage/plugin-tech-insights": "0.3.8",
+ "@backstage/plugin-tech-insights-backend": "0.5.9",
+ "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.27",
"@backstage/plugin-tech-insights-common": "0.2.10",
- "@backstage/plugin-tech-insights-node": "0.4.0",
- "@backstage/plugin-tech-radar": "0.6.1",
- "@backstage/plugin-techdocs": "1.5.0",
- "@backstage/plugin-techdocs-addons-test-utils": "1.0.10",
- "@backstage/plugin-techdocs-backend": "1.5.3",
- "@backstage/plugin-techdocs-module-addons-contrib": "1.0.10",
- "@backstage/plugin-techdocs-node": "1.5.0",
- "@backstage/plugin-techdocs-react": "1.1.3",
- "@backstage/plugin-todo": "0.2.17",
- "@backstage/plugin-todo-backend": "0.1.39",
- "@backstage/plugin-user-settings": "0.7.0",
- "@backstage/plugin-user-settings-backend": "0.1.6",
- "@backstage/plugin-vault": "0.1.9",
- "@backstage/plugin-vault-backend": "0.2.8",
- "@backstage/plugin-xcmetrics": "0.2.35",
- "@backstage/plugin-octopus-deploy": "0.0.0",
- "@backstage/plugin-stackstorm": "0.0.0",
- "@backstage/plugin-catalog-backend-module-puppetdb": "0.0.1"
+ "@backstage/plugin-tech-insights-node": "0.4.1",
+ "@backstage/plugin-tech-radar": "0.6.2",
+ "@backstage/plugin-techdocs": "1.6.0",
+ "@backstage/plugin-techdocs-addons-test-utils": "1.0.11",
+ "@backstage/plugin-techdocs-backend": "1.6.0",
+ "@backstage/plugin-techdocs-module-addons-contrib": "1.0.11",
+ "@backstage/plugin-techdocs-node": "1.6.0",
+ "@backstage/plugin-techdocs-react": "1.1.4",
+ "@backstage/plugin-todo": "0.2.18",
+ "@backstage/plugin-todo-backend": "0.1.40",
+ "@backstage/plugin-user-settings": "0.7.1",
+ "@backstage/plugin-user-settings-backend": "0.1.7",
+ "@backstage/plugin-vault": "0.1.10",
+ "@backstage/plugin-vault-backend": "0.2.10",
+ "@backstage/plugin-xcmetrics": "0.2.36"
},
- "changesets": [
- "afraid-trees-stare",
- "backend-token-authentication",
- "breezy-bees-care",
- "bright-kids-raise",
- "clean-lemons-jump",
- "clean-planes-join",
- "clever-dogs-cheat",
- "cool-clocks-prove",
- "cool-feet-speak",
- "create-app-1676993958",
- "create-app-1678209629",
- "curvy-pets-hang",
- "eight-radios-bake",
- "eighty-chairs-roll",
- "eighty-geese-return",
- "empty-books-occur",
- "famous-sloths-tie",
- "fifty-beds-dress",
- "flat-kids-occur",
- "flat-peaches-act",
- "forty-snails-clap",
- "four-lizards-grin",
- "fresh-hairs-switch",
- "fuzzy-trains-search",
- "gentle-bears-love",
- "gentle-pears-clean",
- "great-trains-jam",
- "grumpy-bikes-begin",
- "happy-boxes-arrive",
- "honest-clouds-shout",
- "honest-nails-bake",
- "khaki-poems-run",
- "light-bees-end",
- "light-sheep-trade",
- "long-nails-pump",
- "long-wolves-drive",
- "lovely-tigers-look",
- "mean-toys-itch",
- "metal-suns-rhyme",
- "mighty-games-turn",
- "mighty-years-own",
- "new-jobs-deny",
- "nice-planets-wave",
- "nine-bikes-applaud",
- "ninety-turtles-wait",
- "odd-fireants-bathe",
- "odd-oranges-tease",
- "odd-waves-rescue",
- "old-foxes-shave",
- "olive-berries-poke",
- "orange-experts-hug",
- "perfect-mayflies-greet",
- "pink-dolls-unite",
- "polite-chicken-do",
- "polite-falcons-jump",
- "polite-wombats-smash",
- "purple-days-film",
- "quick-coats-sneeze",
- "quick-schools-dress",
- "quick-tables-listen",
- "quiet-ghosts-float",
- "rare-buses-swim",
- "rare-grapes-count",
- "rare-pandas-hope",
- "rename-for-the-win",
- "renovate-3672e5e",
- "renovate-4775edd",
- "renovate-488b7e7",
- "renovate-80f8787",
- "renovate-fb85ae7",
- "rich-clocks-approve",
- "rich-wombats-rescue",
- "rotten-cats-matter",
- "rotten-panthers-share",
- "selfish-hats-wait",
- "short-mayflies-fix",
- "silent-dryers-end",
- "silly-suits-run",
- "silver-bikes-breathe",
- "silver-lies-rest",
- "six-melons-rhyme",
- "slimy-lobsters-kneel",
- "slow-insects-cheat",
- "slow-pens-compare",
- "slow-suits-grab",
- "spotty-bees-tell",
- "spotty-turtles-reply",
- "spotty-wasps-complain",
- "swift-bags-wave",
- "tall-hats-talk",
- "ten-tigers-marry",
- "thin-candles-wait",
- "tiny-llamas-jump",
- "tricky-jars-film",
- "twelve-cars-push",
- "twenty-jeans-speak",
- "unlucky-sloths-explain",
- "warm-vans-fail",
- "weak-coats-allow",
- "what-is-going-on-babe",
- "wicked-lions-repeat",
- "wicked-spoons-call",
- "wild-ads-pull",
- "wild-bulldogs-suffer",
- "witty-geckos-design",
- "yellow-bananas-yawn",
- "young-schools-double",
- "young-scissors-cough",
- "young-walls-prove"
- ]
+ "changesets": []
}
diff --git a/.changeset/proud-jokes-pull.md b/.changeset/proud-jokes-pull.md
deleted file mode 100644
index 7d7790889a..0000000000
--- a/.changeset/proud-jokes-pull.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-node': patch
----
-
-Added `locationSpecToMetadataName` and `locationSpecToLocationEntity` as their new home, moved over from the backend package where they now are marked as deprecated.
diff --git a/.changeset/purple-days-film.md b/.changeset/purple-days-film.md
deleted file mode 100644
index 09d760c33e..0000000000
--- a/.changeset/purple-days-film.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs-node': patch
----
-
-Fixed bug that prevented deletion of stale files when non-empty directories where tried to be deleted as well.
diff --git a/.changeset/quick-coats-sneeze.md b/.changeset/quick-coats-sneeze.md
deleted file mode 100644
index 24f7f70e83..0000000000
--- a/.changeset/quick-coats-sneeze.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@techdocs/cli': minor
----
-
-Running `@techdocs/cli generate` with the `--verbose` flag will now print the mkdocs output.
diff --git a/.changeset/quick-schools-dress.md b/.changeset/quick-schools-dress.md
deleted file mode 100644
index 511709461e..0000000000
--- a/.changeset/quick-schools-dress.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs-addons-test-utils': patch
----
-
-Fix bug/problem with test helper
diff --git a/.changeset/quick-tables-listen.md b/.changeset/quick-tables-listen.md
deleted file mode 100644
index fab9ef7969..0000000000
--- a/.changeset/quick-tables-listen.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-stackstorm': minor
----
-
-Add StackStorm plugin to Backstage which is interfacing with StackStorm API. It allows users to view workflow executions, packs and actions. For installation and configuration instructions please view [README.md](https://github.com/backstage/backstage/tree/master/plugins/stackstorm/README.md)
diff --git a/.changeset/quiet-ghosts-float.md b/.changeset/quiet-ghosts-float.md
deleted file mode 100644
index dc8df90206..0000000000
--- a/.changeset/quiet-ghosts-float.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-'@backstage/plugin-entity-validation': patch
-'@backstage/core-components': patch
-'@backstage/plugin-kubernetes': patch
-'@backstage/plugin-scaffolder': patch
-'@backstage/plugin-circleci': patch
-'@backstage/plugin-playlist': patch
-'@backstage/plugin-techdocs': patch
-'@backstage/plugin-explore': patch
----
-
-Switch to using `LinkButton` instead of the deprecated `Button`
diff --git a/.changeset/rare-buses-swim.md b/.changeset/rare-buses-swim.md
deleted file mode 100644
index 4626343ca3..0000000000
--- a/.changeset/rare-buses-swim.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-tasks': patch
----
-
-Added the adapted query to mysql and sqlite3 databases to not returning warning on logs
diff --git a/.changeset/rare-grapes-count.md b/.changeset/rare-grapes-count.md
deleted file mode 100644
index fdeb653f3c..0000000000
--- a/.changeset/rare-grapes-count.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-'@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-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-catalog-backend-module-azure': patch
-'@backstage/plugin-events-backend-module-gerrit': patch
-'@backstage/plugin-events-backend-module-github': patch
-'@backstage/plugin-events-backend-module-gitlab': patch
-'@backstage/plugin-events-backend-module-azure': patch
-'@backstage/plugin-catalog-backend-module-aws': patch
-'@backstage/backend-plugin-api': patch
-'@backstage/backend-test-utils': patch
-'@backstage/plugin-scaffolder-backend': patch
-'@backstage/backend-defaults': patch
-'@backstage/backend-app-api': patch
-'@backstage/core-plugin-api': patch
-'@backstage/plugin-scaffolder-react': patch
-'@backstage/plugin-techdocs-backend': patch
-'@backstage/backend-common': patch
-'@backstage/plugin-catalog-backend': patch
-'@backstage/plugin-sonarqube-react': patch
-'@backstage/catalog-model': patch
-'@backstage/plugin-catalog-common': patch
-'@backstage/plugin-events-backend': patch
-'@backstage/plugin-jenkins-common': patch
-'@backstage/plugin-techdocs-react': patch
-'@backstage/plugin-catalog-react': patch
-'@backstage/plugin-cost-insights': patch
-'@backstage/plugin-catalog-node': patch
-'@backstage/test-utils': patch
-'@backstage/plugin-app-backend': patch
-'@backstage/plugin-events-node': patch
-'@backstage/plugin-scaffolder': patch
-'@backstage/plugin-sonarqube': patch
-'@backstage/plugin-catalog': patch
-'@backstage/plugin-jenkins': patch
----
-
-Internal refactor of `/alpha` exports.
diff --git a/.changeset/rare-pandas-hope.md b/.changeset/rare-pandas-hope.md
deleted file mode 100644
index 6e8e81fcfb..0000000000
--- a/.changeset/rare-pandas-hope.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-playlist': patch
----
-
-Internal update to work with newer versions of react-router
diff --git a/.changeset/rare-seals-decide.md b/.changeset/rare-seals-decide.md
new file mode 100644
index 0000000000..e3cbadee69
--- /dev/null
+++ b/.changeset/rare-seals-decide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs-react': patch
+---
+
+Fix a bug that caused the header to not render when generating a document for the first time
diff --git a/.changeset/rename-for-the-win.md b/.changeset/rename-for-the-win.md
deleted file mode 100644
index 8b3dc6df58..0000000000
--- a/.changeset/rename-for-the-win.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-permission-node': patch
----
-
-Update the service-to-service auth docs URL in error message.
-``
diff --git a/.changeset/renovate-3672e5e.md b/.changeset/renovate-3672e5e.md
deleted file mode 100644
index c94eec2245..0000000000
--- a/.changeset/renovate-3672e5e.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated dependency `del` to `^7.0.0`.
diff --git a/.changeset/renovate-4775edd.md b/.changeset/renovate-4775edd.md
deleted file mode 100644
index 6472fac254..0000000000
--- a/.changeset/renovate-4775edd.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'@backstage/plugin-catalog-graphql': patch
----
-
-Updated dependency `@graphql-codegen/cli` to `^3.0.0`.
-Updated dependency `@graphql-codegen/graphql-modules-preset` to `^3.0.0`.
-Updated dependency `@graphql-codegen/typescript` to `^3.0.0`.
-Updated dependency `@graphql-codegen/typescript-resolvers` to `^3.0.0`.
diff --git a/.changeset/renovate-488b7e7.md b/.changeset/renovate-488b7e7.md
deleted file mode 100644
index 35940f474b..0000000000
--- a/.changeset/renovate-488b7e7.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Updated dependency `@types/passport-microsoft` to `^1.0.0`.
diff --git a/.changeset/renovate-80f8787.md b/.changeset/renovate-80f8787.md
deleted file mode 100644
index addac46355..0000000000
--- a/.changeset/renovate-80f8787.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-techdocs-react': patch
-'@backstage/plugin-techdocs': patch
----
-
-Updated dependency `jss` to `~10.10.0`.
diff --git a/.changeset/renovate-a9116b7.md b/.changeset/renovate-a9116b7.md
new file mode 100644
index 0000000000..168230442e
--- /dev/null
+++ b/.changeset/renovate-a9116b7.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-scaffolder-react': patch
+'@backstage/plugin-scaffolder': patch
+---
+
+Updated dependency `@rjsf/validator-ajv8` to `5.3.0`.
diff --git a/.changeset/renovate-c574b04.md b/.changeset/renovate-c574b04.md
new file mode 100644
index 0000000000..e409c71940
--- /dev/null
+++ b/.changeset/renovate-c574b04.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-catalog-graphql': patch
+'@backstage/plugin-graphql-backend': patch
+---
+
+Updated dependency `@apollo/server` to `^4.0.0`.
diff --git a/.changeset/renovate-fb85ae7.md b/.changeset/renovate-fb85ae7.md
deleted file mode 100644
index 920469850c..0000000000
--- a/.changeset/renovate-fb85ae7.md
+++ /dev/null
@@ -1,125 +0,0 @@
----
-'@backstage/backend-common': patch
-'@backstage/backend-test-utils': patch
-'@backstage/catalog-client': patch
-'@backstage/cli': patch
-'@backstage/config-loader': patch
-'@backstage/core-app-api': patch
-'@backstage/core-components': patch
-'@backstage/core-plugin-api': patch
-'@backstage/integration-react': patch
-'@backstage/integration': patch
-'@backstage/release-manifests': patch
-'@backstage/test-utils': patch
-'@backstage/plugin-adr-backend': patch
-'@backstage/plugin-adr': patch
-'@backstage/plugin-airbrake-backend': patch
-'@backstage/plugin-airbrake': patch
-'@backstage/plugin-allure': patch
-'@backstage/plugin-analytics-module-ga': patch
-'@backstage/plugin-apache-airflow': patch
-'@backstage/plugin-api-docs': patch
-'@backstage/plugin-apollo-explorer': patch
-'@backstage/plugin-app-backend': patch
-'@backstage/plugin-auth-backend': patch
-'@backstage/plugin-auth-node': patch
-'@backstage/plugin-azure-devops-backend': patch
-'@backstage/plugin-azure-devops': patch
-'@backstage/plugin-azure-sites-backend': patch
-'@backstage/plugin-azure-sites': patch
-'@backstage/plugin-badges': patch
-'@backstage/plugin-bitbucket-cloud-common': patch
-'@backstage/plugin-bitrise': patch
-'@backstage/plugin-catalog-backend-module-azure': patch
-'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
-'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
-'@backstage/plugin-catalog-backend-module-bitbucket': patch
-'@backstage/plugin-catalog-backend-module-gerrit': patch
-'@backstage/plugin-catalog-backend-module-github': patch
-'@backstage/plugin-catalog-backend-module-gitlab': patch
-'@backstage/plugin-catalog-backend-module-msgraph': patch
-'@backstage/plugin-catalog-backend': patch
-'@backstage/plugin-catalog-graphql': patch
-'@backstage/plugin-catalog-import': patch
-'@backstage/plugin-circleci': patch
-'@backstage/plugin-cloudbuild': patch
-'@backstage/plugin-code-climate': patch
-'@backstage/plugin-code-coverage-backend': patch
-'@backstage/plugin-code-coverage': patch
-'@backstage/plugin-codescene': patch
-'@backstage/plugin-config-schema': patch
-'@backstage/plugin-cost-insights': patch
-'@backstage/plugin-dynatrace': patch
-'@backstage/plugin-entity-feedback-backend': patch
-'@backstage/plugin-entity-feedback': patch
-'@backstage/plugin-entity-validation': patch
-'@backstage/plugin-explore-backend': patch
-'@backstage/plugin-explore-react': patch
-'@backstage/plugin-explore': patch
-'@backstage/plugin-firehydrant': patch
-'@backstage/plugin-fossa': patch
-'@backstage/plugin-gcalendar': patch
-'@backstage/plugin-gcp-projects': patch
-'@backstage/plugin-git-release-manager': patch
-'@backstage/plugin-github-actions': patch
-'@backstage/plugin-github-deployments': patch
-'@backstage/plugin-github-issues': patch
-'@backstage/plugin-github-pull-requests-board': patch
-'@backstage/plugin-gitops-profiles': patch
-'@backstage/plugin-gocd': patch
-'@backstage/plugin-graphiql': patch
-'@backstage/plugin-graphql-backend': patch
-'@backstage/plugin-graphql-voyager': patch
-'@backstage/plugin-home': patch
-'@backstage/plugin-ilert': patch
-'@backstage/plugin-jenkins-backend': patch
-'@backstage/plugin-jenkins': patch
-'@backstage/plugin-kafka': patch
-'@backstage/plugin-kubernetes-backend': patch
-'@backstage/plugin-kubernetes': patch
-'@backstage/plugin-lighthouse': patch
-'@backstage/plugin-linguist-backend': patch
-'@backstage/plugin-linguist': patch
-'@backstage/plugin-microsoft-calendar': patch
-'@backstage/plugin-newrelic': patch
-'@backstage/plugin-octopus-deploy': patch
-'@backstage/plugin-org-react': patch
-'@backstage/plugin-org': patch
-'@backstage/plugin-pagerduty': patch
-'@backstage/plugin-periskop-backend': patch
-'@backstage/plugin-periskop': patch
-'@backstage/plugin-permission-backend': patch
-'@backstage/plugin-permission-common': patch
-'@backstage/plugin-permission-node': patch
-'@backstage/plugin-playlist-backend': patch
-'@backstage/plugin-playlist': patch
-'@backstage/plugin-proxy-backend': patch
-'@backstage/plugin-rollbar-backend': patch
-'@backstage/plugin-rollbar': patch
-'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
-'@backstage/plugin-scaffolder-backend': patch
-'@backstage/plugin-scaffolder': patch
-'@backstage/plugin-search': patch
-'@backstage/plugin-sentry': patch
-'@backstage/plugin-shortcuts': patch
-'@backstage/plugin-sonarqube-backend': patch
-'@backstage/plugin-sonarqube': patch
-'@backstage/plugin-splunk-on-call': patch
-'@backstage/plugin-stack-overflow-backend': patch
-'@backstage/plugin-stack-overflow': patch
-'@backstage/plugin-stackstorm': patch
-'@backstage/plugin-tech-insights': patch
-'@backstage/plugin-tech-radar': patch
-'@backstage/plugin-techdocs-addons-test-utils': patch
-'@backstage/plugin-techdocs-backend': patch
-'@backstage/plugin-techdocs-module-addons-contrib': patch
-'@backstage/plugin-techdocs': patch
-'@backstage/plugin-todo-backend': patch
-'@backstage/plugin-todo': patch
-'@backstage/plugin-user-settings': patch
-'@backstage/plugin-vault-backend': patch
-'@backstage/plugin-vault': patch
-'@backstage/plugin-xcmetrics': patch
----
-
-Updated dependency `msw` to `^1.0.0`.
diff --git a/.changeset/rich-clocks-approve.md b/.changeset/rich-clocks-approve.md
deleted file mode 100644
index 319a8a7c9c..0000000000
--- a/.changeset/rich-clocks-approve.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-lighthouse-backend': patch
----
-
-Update README.md; typo with plugin name & removed unneeded "import { Router } from 'express';"
diff --git a/.changeset/rich-wombats-rescue.md b/.changeset/rich-wombats-rescue.md
deleted file mode 100644
index d62f38cb4a..0000000000
--- a/.changeset/rich-wombats-rescue.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Updated the `aria-label` of the `HeaderTabs` component.
diff --git a/.changeset/rotten-cats-matter.md b/.changeset/rotten-cats-matter.md
deleted file mode 100644
index 2515db9991..0000000000
--- a/.changeset/rotten-cats-matter.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-'@backstage/core-app-api': minor
----
-
-`OAuth2` now gets ID tokens from a session with the `openid` scope explicitly
-requested.
-
-This should not be considered a breaking change, because spec-compliant OIDC
-providers will already be returning ID tokens if and only if the `openid` scope
-is granted.
-
-This change makes the dependence explicit, and removes the burden on
-OAuth2-based providers which require an ID token (e.g. this is done by various
-default [auth
-handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add
-`openid` to their default scopes. _That_ could carry another indirect benefit:
-by removing `openid` from the default scopes for a provider, grants for
-resource-specific access tokens can avoid requesting excess ID token-related
-scopes.
diff --git a/.changeset/rotten-panthers-share.md b/.changeset/rotten-panthers-share.md
deleted file mode 100644
index b9f0dd6691..0000000000
--- a/.changeset/rotten-panthers-share.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/backend-common': patch
-'@backstage/plugin-catalog-backend-module-aws': patch
----
-
-AwsS3UrlReader upgraded to use aws-sdk v3
diff --git a/.changeset/selfish-hats-wait.md b/.changeset/selfish-hats-wait.md
deleted file mode 100644
index d706d42e8e..0000000000
--- a/.changeset/selfish-hats-wait.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-org': patch
----
-
-Add styling to the `MembersListCard` and `ComponentsGrid` to handle overflow text.
diff --git a/.changeset/short-mayflies-fix.md b/.changeset/short-mayflies-fix.md
deleted file mode 100644
index 9d68a85da7..0000000000
--- a/.changeset/short-mayflies-fix.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-pagerduty': patch
----
-
-Update readme link for discord channel
diff --git a/.changeset/short-panthers-float.md b/.changeset/short-panthers-float.md
new file mode 100644
index 0000000000..91eafe28aa
--- /dev/null
+++ b/.changeset/short-panthers-float.md
@@ -0,0 +1,5 @@
+---
+'@techdocs/cli': patch
+---
+
+Adding global-agent to enable the ability to publish through a proxy
diff --git a/.changeset/silent-dryers-end.md b/.changeset/silent-dryers-end.md
deleted file mode 100644
index d15ea602ae..0000000000
--- a/.changeset/silent-dryers-end.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Fix the scaffolder validator for arrays when the item is a field in the object
diff --git a/.changeset/silly-suits-run.md b/.changeset/silly-suits-run.md
deleted file mode 100644
index ec371e4077..0000000000
--- a/.changeset/silly-suits-run.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-catalog-backend': minor
----
-
-Add /entities/by-query endpoint returning paginated entities.
-
-The endpoint supports cursor base pagination and server side sorting of the entities
diff --git a/.changeset/silver-bikes-breathe.md b/.changeset/silver-bikes-breathe.md
deleted file mode 100644
index 0288580bba..0000000000
--- a/.changeset/silver-bikes-breathe.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-'@backstage/plugin-catalog': minor
----
-
-Allow `EntitySwitch` to render all cases that match the condition.
-
-This change introduces a new parameter for the `EntitySwitch` component
-`renderMultipleMatches`. In case the parameter value is `all`, the `EntitySwitch`
-will render all `EntitySwitch.Case` that contain `if` parameter, and it
-evaluates to true. In case none of the cases match, the default case will be
-rendered, if any.
-
-This means for example in the CI/CD page you can now do the following:
-
-```tsx
-
- Jenkins
- CodeBuild
- No CI/CD
-
-```
-
-This allows the component to have multiple CI/CD systems and all of those are
-rendered on the same page.
diff --git a/.changeset/silver-lies-rest.md b/.changeset/silver-lies-rest.md
deleted file mode 100644
index 34b77f5375..0000000000
--- a/.changeset/silver-lies-rest.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-gitlab': patch
----
-
-The configuration key `branch` of the `GitlabDiscoveryEntityProvider` has been deprecated in favor of the configuration key `fallbackBranch`.
-It will be reused in future release to enforce a concrete branch to be used in catalog file discovery.
-To migrate to the new configuration value, rename `branch` to `fallbackBranch`.
diff --git a/.changeset/six-melons-rhyme.md b/.changeset/six-melons-rhyme.md
deleted file mode 100644
index dbb878fc89..0000000000
--- a/.changeset/six-melons-rhyme.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-react': patch
----
-
-scaffolder/next: Added the ability to get the fields definition in the schema in the validation function
diff --git a/.changeset/slimy-lobsters-kneel.md b/.changeset/slimy-lobsters-kneel.md
deleted file mode 100644
index 40ff476a64..0000000000
--- a/.changeset/slimy-lobsters-kneel.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-linguist-backend': patch
----
-
-Fixed bug in LinguistBackendApi that caused initial batch of entities to be skipped.
diff --git a/.changeset/slow-insects-cheat.md b/.changeset/slow-insects-cheat.md
deleted file mode 100644
index 70b7bbf69b..0000000000
--- a/.changeset/slow-insects-cheat.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-techdocs': minor
-'@backstage/plugin-catalog': minor
-'@backstage/plugin-explore': patch
----
-
-Add ability to pass icon as function to have ability to customize it by search item
diff --git a/.changeset/slow-pens-compare.md b/.changeset/slow-pens-compare.md
deleted file mode 100644
index 158cb6f760..0000000000
--- a/.changeset/slow-pens-compare.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend': patch
----
-
-Fix a bug where the batch fetch by ref endpoint did not work in conjunction with filtering (e.g. if authorization was enabled).
diff --git a/.changeset/slow-suits-grab.md b/.changeset/slow-suits-grab.md
deleted file mode 100644
index 4a741cac6b..0000000000
--- a/.changeset/slow-suits-grab.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-msgraph': patch
----
-
-properly support custom graph api URL
diff --git a/.changeset/sour-dragons-cheat.md b/.changeset/sour-dragons-cheat.md
new file mode 100644
index 0000000000..1b577d85f7
--- /dev/null
+++ b/.changeset/sour-dragons-cheat.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Add `onboard` command. While still in development, this command aims to guide users in setting up their Backstage App.
diff --git a/.changeset/spotty-bees-tell.md b/.changeset/spotty-bees-tell.md
deleted file mode 100644
index 5267d8a6a0..0000000000
--- a/.changeset/spotty-bees-tell.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
-'@backstage/plugin-catalog-backend-module-aws': patch
----
-
-Fix missing `dependencies` in `package.json`
diff --git a/.changeset/spotty-turtles-reply.md b/.changeset/spotty-turtles-reply.md
deleted file mode 100644
index 2dfc12a176..0000000000
--- a/.changeset/spotty-turtles-reply.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Copy to clipboard now works in a not secure context.
diff --git a/.changeset/spotty-wasps-complain.md b/.changeset/spotty-wasps-complain.md
deleted file mode 100644
index 7b1e42b2a0..0000000000
--- a/.changeset/spotty-wasps-complain.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-react': patch
----
-
-Fix alignment bug for owners on `TemplateCard`
diff --git a/.changeset/stupid-games-brake.md b/.changeset/stupid-games-brake.md
deleted file mode 100644
index 0a50a32ffa..0000000000
--- a/.changeset/stupid-games-brake.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend': patch
----
-
-Updated README instructions
diff --git a/.changeset/swift-bags-wave.md b/.changeset/swift-bags-wave.md
deleted file mode 100644
index 8f57c7f89b..0000000000
--- a/.changeset/swift-bags-wave.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-sonarqube-react': patch
-'@backstage/plugin-sonarqube': patch
----
-
-Moved imports from `/alpha` to main public exports.
diff --git a/.changeset/tall-hats-talk.md b/.changeset/tall-hats-talk.md
deleted file mode 100644
index b10af002f6..0000000000
--- a/.changeset/tall-hats-talk.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Keep custom exports entry points in package.json
diff --git a/.changeset/ten-tigers-marry.md b/.changeset/ten-tigers-marry.md
deleted file mode 100644
index f90f7b3ea2..0000000000
--- a/.changeset/ten-tigers-marry.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-'@backstage/plugin-proxy-backend': patch
----
-
-The proxy-backend plugin now supports reviving request bodies that have previously been consumed by an express middleware (e.g. `express.json()`). This is done by setting `reviveConsumedRequestBodies: true` on the proxy `RouterOptions`. In order to preserve the current behavior, the proxy will **not** revive request bodies by default.
-
-The following is an example of a proxy `createRouter` invocation that revives request bodies:
-
-```diff
-const router = await createRouter({
- config,
- logger,
- discovery,
-+ reviveConsumedRequestBodies: true,
-});
-```
diff --git a/.changeset/thin-candles-wait.md b/.changeset/thin-candles-wait.md
deleted file mode 100644
index c7e18367b5..0000000000
--- a/.changeset/thin-candles-wait.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-sonarqube': patch
----
-
-Show a more appropriate icon if there are no code smells and/or vulnerabilities.
diff --git a/.changeset/thirty-crabs-tell.md b/.changeset/thirty-crabs-tell.md
new file mode 100644
index 0000000000..2ca5e8cd34
--- /dev/null
+++ b/.changeset/thirty-crabs-tell.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-components': patch
+---
+
+Fixed the font color on `BackstageHeaderLabel` to respect the active page theme.
diff --git a/.changeset/tidy-pumpkins-clean.md b/.changeset/tidy-pumpkins-clean.md
deleted file mode 100644
index c5a067a98c..0000000000
--- a/.changeset/tidy-pumpkins-clean.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Fix bug where `
` component would not take into account header styles defined in `columns[*].headerStyle`.
diff --git a/.changeset/tiny-llamas-jump.md b/.changeset/tiny-llamas-jump.md
deleted file mode 100644
index ccf42cd514..0000000000
--- a/.changeset/tiny-llamas-jump.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Use media queries to change layout instead of `isMobile` prop in `BackstagePage` component
diff --git a/.changeset/tricky-jars-film.md b/.changeset/tricky-jars-film.md
deleted file mode 100644
index 9533634614..0000000000
--- a/.changeset/tricky-jars-film.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
----
-
-Move `@backstage/backend-defaults` to `devDependencies`
diff --git a/.changeset/twelve-cars-push.md b/.changeset/twelve-cars-push.md
deleted file mode 100644
index 599d456d2b..0000000000
--- a/.changeset/twelve-cars-push.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-'@backstage/backend-plugin-api': patch
-'@backstage/backend-test-utils': patch
-'@backstage/backend-dev-utils': patch
-'@backstage/backend-defaults': patch
-'@backstage/backend-app-api': patch
-'@backstage/backend-common': patch
-'@backstage/backend-tasks': patch
-'@backstage/config-loader': patch
-'@backstage/cli-common': patch
-'@backstage/create-app': patch
-'@backstage/test-utils': patch
-'@backstage/dev-utils': patch
-'@backstage/codemods': patch
-'@backstage/config': patch
-'@backstage/theme': patch
-'@backstage/cli': patch
----
-
-Updated link to docs.
diff --git a/.changeset/twelve-parrots-camp.md b/.changeset/twelve-parrots-camp.md
new file mode 100644
index 0000000000..ea7e254f29
--- /dev/null
+++ b/.changeset/twelve-parrots-camp.md
@@ -0,0 +1,5 @@
+---
+'@backstage/eslint-plugin': patch
+---
+
+Add support for auto-fixing missing imports detected by the `no-undeclared-imports` rule.
diff --git a/.changeset/twenty-insects-live.md b/.changeset/twenty-insects-live.md
deleted file mode 100644
index d3f8cdfc25..0000000000
--- a/.changeset/twenty-insects-live.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-proxy-backend': patch
----
-
-Ensure that `@backstage/plugin-proxy-backend` logs the requests that it proxies when log level is set to `debug`.
diff --git a/.changeset/twenty-jeans-speak.md b/.changeset/twenty-jeans-speak.md
deleted file mode 100644
index fddcc2eedd..0000000000
--- a/.changeset/twenty-jeans-speak.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Added authentication provider for Azure Easy Authentication.
diff --git a/.changeset/unlucky-sloths-explain.md b/.changeset/unlucky-sloths-explain.md
deleted file mode 100644
index 3d5f963a73..0000000000
--- a/.changeset/unlucky-sloths-explain.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs-module-addons-contrib': patch
----
-
-Fixed bug in IssueLink component where the URL was not generated properly when the repository was located inside a Gitlab subgroup
diff --git a/.changeset/warm-vans-fail.md b/.changeset/warm-vans-fail.md
deleted file mode 100644
index 6cbd3a4e8f..0000000000
--- a/.changeset/warm-vans-fail.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog': minor
----
-
-Add a `columns` prop to certain components that use the `EntityTable` for easier extensibility.
diff --git a/.changeset/weak-coats-allow.md b/.changeset/weak-coats-allow.md
deleted file mode 100644
index 31fc592326..0000000000
--- a/.changeset/weak-coats-allow.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-linguist': patch
----
-
-Updated `README.md` to removed images with refresh button as this feature was not implemented in the current version
diff --git a/.changeset/what-is-going-on-babe.md b/.changeset/what-is-going-on-babe.md
deleted file mode 100644
index c22d69d1de..0000000000
--- a/.changeset/what-is-going-on-babe.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-app-api': patch
----
-
-Add support for `NotImplementedError`, properly returning 501 as status code.
diff --git a/.changeset/wicked-lions-repeat.md b/.changeset/wicked-lions-repeat.md
deleted file mode 100644
index c48545c6bc..0000000000
--- a/.changeset/wicked-lions-repeat.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@techdocs/cli': minor
-'@backstage/plugin-techdocs-node': minor
----
-
-Added support for an HTTPS proxy for techdocs AWS S3 requests
diff --git a/.changeset/wicked-spoons-call.md b/.changeset/wicked-spoons-call.md
deleted file mode 100644
index c57860349b..0000000000
--- a/.changeset/wicked-spoons-call.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-newrelic': patch
----
-
-Updated installation instructions
diff --git a/.changeset/wild-ads-pull.md b/.changeset/wild-ads-pull.md
deleted file mode 100644
index 5a40787358..0000000000
--- a/.changeset/wild-ads-pull.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-api-docs': patch
----
-
-Add a `columns` prop to certain components that use the `EntityTable` for easier extensibility.
diff --git a/.changeset/wild-bulldogs-suffer.md b/.changeset/wild-bulldogs-suffer.md
deleted file mode 100644
index 02f50927e9..0000000000
--- a/.changeset/wild-bulldogs-suffer.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-gitlab': patch
----
-
-filter gitlab groups by prefix
diff --git a/.changeset/witty-geckos-design.md b/.changeset/witty-geckos-design.md
deleted file mode 100644
index d482332c23..0000000000
--- a/.changeset/witty-geckos-design.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-'@backstage/plugin-linguist-backend': patch
----
-
-Allow kind to be configurable
-
-```ts
-return createRouter({ schedule: schedule, kind: ['Component'] }, { ...env });
-```
diff --git a/.changeset/witty-squids-fetch.md b/.changeset/witty-squids-fetch.md
deleted file mode 100644
index 3e13421038..0000000000
--- a/.changeset/witty-squids-fetch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Added to the template `packages/app/.eslintignore` file to packages to ignore the contents of `packages/app/public`.
diff --git a/.changeset/yellow-bananas-yawn.md b/.changeset/yellow-bananas-yawn.md
deleted file mode 100644
index d9c522a429..0000000000
--- a/.changeset/yellow-bananas-yawn.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/repo-tools': patch
----
-
-The API report generation process is now able to detect and generate reports for additional entry points declared in the package `"exports"` field.
diff --git a/.changeset/young-schools-double.md b/.changeset/young-schools-double.md
deleted file mode 100644
index 8cba2ec8f3..0000000000
--- a/.changeset/young-schools-double.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-react': patch
----
-
-Do not close `Autocomplete` powered multiple-selection filters when checking boxes
diff --git a/.changeset/young-scissors-cough.md b/.changeset/young-scissors-cough.md
deleted file mode 100644
index fa35588224..0000000000
--- a/.changeset/young-scissors-cough.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-defaults': patch
----
-
-Added a workaround for the cyclic dependency bug across `@backstage/backend-common` and `@backstage/backend-app-api`.
diff --git a/.changeset/young-walls-prove.md b/.changeset/young-walls-prove.md
deleted file mode 100644
index 33fafa1548..0000000000
--- a/.changeset/young-walls-prove.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-plugin-api': minor
----
-
-The GitLab auth provider can now be used to get OpenID tokens.
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 010af451af..5929aa8ffb 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -13,6 +13,7 @@ yarn.lock @backstage/maintainers @back
/docs/features/search @backstage/techdocs-core
/docs/features/techdocs @backstage/techdocs-core
/docs/plugins/integrating-search-into-plugins.md @backstage/techdocs-core
+/packages/cli/src/commands/onboard @backstage/sharks
/packages/techdocs-cli @backstage/techdocs-core
/packages/techdocs-cli-embedded-app @backstage/techdocs-core
/plugins/adr @backstage/maintainers @kuangp
@@ -62,7 +63,7 @@ yarn.lock @backstage/maintainers @back
/plugins/kafka-backend @backstage/maintainers @nirga @andrewthauer
/plugins/kubernetes @backstage/maintainers @backstage/warpspeed
/plugins/kubernetes-* @backstage/maintainers @backstage/warpspeed
-/plugins/microsoft-calendar @backstage/maintainers @abhay-soni-developer
+/plugins/microsoft-calendar @backstage/maintainers @abhay-soni-developer @NishkarshRaj
/plugins/newrelic-dashboard @backstage/maintainers @mufaddal7
/plugins/playlist @backstage/maintainers @kuangp
/plugins/playlist-* @backstage/maintainers @kuangp
diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt
index 63fa474115..82c6251d12 100644
--- a/.github/vale/Vocab/Backstage/accept.txt
+++ b/.github/vale/Vocab/Backstage/accept.txt
@@ -158,6 +158,7 @@ img
incentivised
Indal
indexable
+ingestors
inlined
inlinehilite
integrator's
@@ -367,6 +368,7 @@ templaters
Templaters
TFRecord
theia
+threenager
thumbsup
todo
todos
@@ -403,6 +405,7 @@ validator
validators
varchar
VMware
+Vodafone
VPCs
VSCode
Wayfair
diff --git a/docs/features/software-catalog/external-integrations.md b/docs/features/software-catalog/external-integrations.md
index 6f957625bd..0f2459d6e0 100644
--- a/docs/features/software-catalog/external-integrations.md
+++ b/docs/features/software-catalog/external-integrations.md
@@ -506,9 +506,10 @@ import {
processingResult,
CatalogProcessor,
CatalogProcessorEmit,
- LocationSpec,
} from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
+
// A processor that reads from the fictional System-X
export class SystemXReaderProcessor implements CatalogProcessor {
constructor(private readonly reader: UrlReader) {}
diff --git a/docs/features/software-templates/index.md b/docs/features/software-templates/index.md
index 5911e192b1..fbccf8848c 100644
--- a/docs/features/software-templates/index.md
+++ b/docs/features/software-templates/index.md
@@ -58,6 +58,10 @@ It shouldn't take too long, and you'll have a success screen!
If it fails, you'll be able to click on each section to get the log from the
step that failed which can be helpful in debugging.
+You can also cancel the running process. Once you clicked on button "Cancel", the abort signal
+will be sent to a task and all next steps won't be executed. The current step will be cancelled
+only if it supports it.
+

## View Component in Catalog
diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md
index 3e89e89582..7a841dfd0e 100644
--- a/docs/features/software-templates/writing-custom-actions.md
+++ b/docs/features/software-templates/writing-custom-actions.md
@@ -71,7 +71,7 @@ You can also choose to define your custom action using JSON schema instead of `z
```ts title="With JSON Schema"
import { createTemplateAction } from '@backstage/plugin-scaffolder-node';
-import fs from 'fs-extra';
+import { writeFile } from 'fs';
export const createNewFileAction = () => {
return createTemplateAction<{ contents: string; filename: string }>({
@@ -95,9 +95,12 @@ export const createNewFileAction = () => {
},
},
async handler(ctx) {
- await fs.outputFile(
+ const { signal } = ctx;
+ await writeFile(
`${ctx.workspacePath}/${ctx.input.filename}`,
ctx.input.contents,
+ { signal },
+ _ => {},
);
},
});
diff --git a/docs/features/techdocs/cli.md b/docs/features/techdocs/cli.md
index b174896d6a..76589de5a8 100644
--- a/docs/features/techdocs/cli.md
+++ b/docs/features/techdocs/cli.md
@@ -200,6 +200,15 @@ Options:
-h, --help display help for command
```
+#### Publishing from behind a proxy
+
+For users attempting to publish TechDocs content behind a proxy, the TechDocs CLI leverages `global-agent` to navigate the proxy to successfully connect to that location. To enable `global-agent`, the following variables need to be set prior to running the techdocs-cli command:
+
+```bash
+export GLOBAL_AGENT_HTTPS_PROXY=${HTTP_PROXY}
+export GLOBAL_AGENT_NO_PROXY=${NO_PROXY}
+```
+
### Migrate content for case-insensitive access
Prior to the beta version of TechDocs (`v[0.11.0]`), TechDocs were stored in
diff --git a/docs/integrations/gitlab/org.md b/docs/integrations/gitlab/org.md
index 7ddc5202b5..d78b0ed388 100644
--- a/docs/integrations/gitlab/org.md
+++ b/docs/integrations/gitlab/org.md
@@ -2,15 +2,14 @@
id: org
title: GitLab Organizational Data
sidebar_label: Org Data
-description: Importing users and groups from a GitLab organization into Backstage
+description: Importing users and groups from GitLab into Backstage
---
-The Backstage catalog can be set up to ingest organizational data - users and
-teams - directly from an organization in GitLab. The result
-is a hierarchy of
+The Backstage catalog can be set up to ingest organizational data -- users and
+groups -- directly from GitLab. The result is a hierarchy of
[`User`](../../features/software-catalog/descriptor-format.md#kind-user) and
-[`Group`](../../features/software-catalog/descriptor-format.md#kind-group) kind
-entities that mirror your org setup.
+[`Group`](../../features/software-catalog/descriptor-format.md#kind-group)
+entities that mirrors your org setup.
```yaml
integrations:
@@ -19,10 +18,11 @@ integrations:
token: ${GITLAB_TOKEN}
```
-This will query all users and groups from your gitlab installation. Depending on the size
-of the Gitlab Instance, this can take some time and resources.
+This will query all users and groups from your GitLab instance. Depending on the
+amount of data, this can take significant time and resources.
-The token that is used for the Organization Integration, has to be an Admin Personal Access Token (PAT).
+The token used must have the `read_api` scope, and the Users and Groups fetched
+will be those visible to the account which provisioned the token.
```yaml
catalog:
@@ -35,6 +35,7 @@ catalog:
groupPattern: '[\s\S]*' # Optional. Filters found groups based on provided pattern. Defaults to `[\s\S]*`, which means to not filter anything
```
-When the `group` parameter is provided, the corresponding path prefix will be stripped out from each matching group
-when computing the unique entity name. e.g. If `group` is `org/teams`, the name for `org/teams/avengers/gotg` will
-be `avengers-gotg`.
+When the `group` parameter is provided, the corresponding path prefix will be
+stripped out from each matching group when computing the unique entity name.
+e.g. If `group` is `org/teams`, the name for `org/teams/avengers/gotg` will be
+`avengers-gotg`.
diff --git a/docs/local-dev/cli-commands.md b/docs/local-dev/cli-commands.md
index 8c1e061237..c4c057ffe6 100644
--- a/docs/local-dev/cli-commands.md
+++ b/docs/local-dev/cli-commands.md
@@ -73,7 +73,7 @@ Build packages in the project, excluding bundled app and backend packages.
Options:
--all Build all packages, including bundled app and backend packages.
- --since <ref> Only build packages and their dev dependents that changed since the specified ref
+ --since [ Only build packages and their dev dependents that changed since the specified ref
```
## repo lint
@@ -86,8 +86,8 @@ Usage: backstage-cli repo lint [options]
Lint all packages in the project
Options:
- --format <format> Lint report output format (default: "eslint-formatter-friendly")
- --since <ref> Only lint packages that changed since the specified ref
+ --format ] Lint report output format (default: "eslint-formatter-friendly")
+ --since [ Only lint packages that changed since the specified ref
--fix Attempt to automatically fix violations
```
@@ -101,8 +101,8 @@ Usage: backstage-cli package start [options]
Start a package for local development
Options:
- --config <path> Config files to load instead of app-config.yaml (default: [])
- --role <name> Run the command with an explicit package role
+ --config ] Config files to load instead of app-config.yaml (default: [])
+ --role Run the command with an explicit package role
--check Enable type checking and linting if available
--inspect Enable debugger in Node.js environments
--inspect-brk Enable debugger in Node.js environments, breaking before code starts
@@ -118,11 +118,11 @@ Usage: backstage-cli package build [options]
Build a package for production deployment or publishing
Options:
- --role <name> Run the command with an explicit package role
+ --role Run the command with an explicit package role
--minify Minify the generated code. Does not apply to app or backend packages.
--skip-build-dependencies Skip the automatic building of local dependencies. Applies to backend packages only.
--stats If bundle stats are available, write them to the output directory. Applies to app packages only.
- --config <path> Config files to load instead of app-config.yaml. Applies to app packages only. (default: [])
+ --config Config files to load instead of app-config.yaml. Applies to app packages only. (default: [])
```
## package lint
@@ -138,7 +138,7 @@ Usage: backstage-cli package lint [options]
Lint a package
Options:
- --format <format> Lint report output format (default: "eslint-formatter-friendly")
+ --format Lint report output format (default: "eslint-formatter-friendly")
--fix Attempt to automatically fix violations
```
@@ -227,10 +227,10 @@ that owns the app repo. For example you may have it set up like this:
Usage: backstage-cli create [options]
Options:
- --select <name> Select the thing you want to be creating upfront
- --option <name>=<value> Pre-fill options for the creation process (default: [])
- --scope <scope> The scope to use for new packages
- --npm-registry <URL> The package registry to use for new packages
+ --select Select the thing you want to be creating upfront
+ --option = Pre-fill options for the creation process (default: [])
+ --scope The scope to use for new packages
+ --npm-registry The package registry to use for new packages
--no-private Do not mark new packages as private
-h, --help display help for command
```
@@ -248,7 +248,7 @@ Usage: backstage-cli config:docs [options]
Browse the configuration reference documentation
Options:
- --package <name> Only include the schema that applies to the given package
+ --package Only include the schema that applies to the given package
-h, --help display help for command
```
@@ -268,12 +268,12 @@ yarn backstage-cli config:print --frontend --package my-app
Usage: backstage-cli config:print [options]
Options:
- --package <name> Only load config schema that applies to the given package
+ --package Only load config schema that applies to the given package
--lax Do not require environment variables to be set
--frontend Print only the frontend configuration
--with-secrets Include secrets in the printed configuration
- --format <format> Format to print the configuration in, either json or yaml [yaml]
- --config <path> Config files to load instead of app-config.yaml (default: [])
+ --format Format to print the configuration in, either json or yaml [yaml]
+ --config Config files to load instead of app-config.yaml (default: [])
-h, --help display help for command
```
@@ -287,11 +287,11 @@ local packages in the repo.
Usage: backstage-cli config:check [options]
Options:
- --package <name> Only load config schema that applies to the given package
+ --package Only load config schema that applies to the given package
--lax Do not require environment variables to be set
--frontend Only validate the frontend configuration
--deprecated List all deprecated configuration settings
- --config <path> Config files to load instead of app-config.yaml (default: [])
+ --config Config files to load instead of app-config.yaml (default: [])
-h, --help display help for command
```
@@ -309,8 +309,8 @@ Usage: backstage-cli config:schema [options]
Print configuration schema
Options:
- --package <name> Only output config schema that applies to the given package
- --format <format> Format to print the schema in, either json or yaml [yaml]
+ --package Only output config schema that applies to the given package
+ --format Format to print the schema in, either json or yaml [yaml]
-h, --help display help for command
```
@@ -325,8 +325,8 @@ Usage: backstage-cli versions:bump [options]
Options:
-h, --help display help for command
- --pattern <glob> Override glob for matching packages to upgrade
- --release <version|next|main> Bump to a specific Backstage release line or version (default: "main")
+ --pattern Override glob for matching packages to upgrade
+ --release Bump to a specific Backstage release line or version (default: "main")
```
## versions:check
diff --git a/docs/plugins/feature-flags.md b/docs/plugins/feature-flags.md
index a572143d6e..7b7a6c1435 100644
--- a/docs/plugins/feature-flags.md
+++ b/docs/plugins/feature-flags.md
@@ -37,7 +37,11 @@ Defining feature flag in the application is done by adding feature flags in`feat
const app = createApp({
// ...
featureFlags: [
- { name: 'tech-radar', description: 'Enables the tech radar plugin' },
+ {
+ pluginId: '', // pluginId is required for feature flags in plugins. It can be left blank for a feature flag leveraged in the application.
+ name: 'tech-radar',
+ description: 'Enables the tech radar plugin',
+ },
],
// ...
});
diff --git a/docs/releases/v1.12.0-changelog.md b/docs/releases/v1.12.0-changelog.md
new file mode 100644
index 0000000000..7a8b52e33b
--- /dev/null
+++ b/docs/releases/v1.12.0-changelog.md
@@ -0,0 +1,2933 @@
+# Release v1.12.0
+
+## @backstage/backend-plugin-api@0.5.0
+
+### Minor Changes
+
+- c1ee073a82b: Added `lastModifiedAt` field on `UrlReaderService` responses and a `lastModifiedAfter` option to `UrlReaderService.readUrl`.
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/backend-tasks@0.5.0
+
+### Minor Changes
+
+- 1578276708a: add functionality to get descriptions from the scheduler for triggering
+
+### Patch Changes
+
+- f0685193efa: Added the adapted query to mysql and sqlite3 databases to not returning warning on logs
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/catalog-client@1.4.0
+
+### Minor Changes
+
+- 8c030b1826c: Add `queryEntities` method to `CatalogApi`.
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- c630360631f: Ensure that `getEntitiesByRefs` returns `undefined` instead of `null` for missing items
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+
+## @backstage/core-app-api@1.6.0
+
+### Minor Changes
+
+- 456eaa8cf83: `OAuth2` now gets ID tokens from a session with the `openid` scope explicitly
+ requested.
+
+ This should not be considered a breaking change, because spec-compliant OIDC
+ providers will already be returning ID tokens if and only if the `openid` scope
+ is granted.
+
+ This change makes the dependence explicit, and removes the burden on
+ OAuth2-based providers which require an ID token (e.g. this is done by various
+ default [auth
+ handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add
+ `openid` to their default scopes. _That_ could carry another indirect benefit:
+ by removing `openid` from the default scopes for a provider, grants for
+ resource-specific access tokens can avoid requesting excess ID token-related
+ scopes.
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+
+## @backstage/core-plugin-api@1.5.0
+
+### Minor Changes
+
+- ab750ddc4f2: The GitLab auth provider can now be used to get OpenID tokens.
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+
+## @techdocs/cli@1.4.0
+
+### Minor Changes
+
+- 8e465ce52e2: Running `@techdocs/cli generate` with the `--verbose` flag will now print the mkdocs output.
+- ea2bbef1b16: Added support for an HTTPS proxy for techdocs AWS S3 requests
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-techdocs-node@1.6.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/catalog-model@1.2.1
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-catalog@1.9.0
+
+### Minor Changes
+
+- 23cc40039c0: Allow `EntitySwitch` to render all cases that match the condition.
+
+ This change introduces a new parameter for the `EntitySwitch` component
+ `renderMultipleMatches`. In case the parameter value is `all`, the `EntitySwitch`
+ will render all `EntitySwitch.Case` that contain `if` parameter, and it
+ evaluates to true. In case none of the cases match, the default case will be
+ rendered, if any.
+
+ This means for example in the CI/CD page you can now do the following:
+
+ ```tsx
+
+ Jenkins
+ CodeBuild
+ No CI/CD
+
+ ```
+
+ This allows the component to have multiple CI/CD systems and all of those are
+ rendered on the same page.
+
+- 3f75b7607ca: Add ability to pass icon as function to have ability to customize it by search item
+
+- c9a9f3c834f: Add a `columns` prop to certain components that use the `EntityTable` for easier extensibility.
+
+### Patch Changes
+
+- 3fa41696820: Make the "Copied!" message disappear automatically after some time
+- 7e8930ae1c6: Fix icon alignment in `CatalogSearchResultListItem`
+- dbbde6ed353: fix entity switch rendering when there is no default case
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration-react@1.1.11
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-catalog-backend@1.8.0
+
+### Minor Changes
+
+- 7f4ea3d3602: Add /entities/by-query endpoint returning paginated entities.
+
+ The endpoint supports cursor base pagination and server side sorting of the entities
+
+### Patch Changes
+
+- e675f902980: Add deprecations for symbols that were moved to `@backstage/plugin-catalog-node` a long time ago:
+
+ - `CatalogProcessor`
+ - `CatalogProcessorCache`
+ - `CatalogProcessorEmit`
+ - `CatalogProcessorEntityResult`
+ - `CatalogProcessorErrorResult`
+ - `CatalogProcessorLocationResult`
+ - `CatalogProcessorParser`
+ - `CatalogProcessorRefreshKeysResult`
+ - `CatalogProcessorRelationResult`
+ - `CatalogProcessorResult`
+ - `DeferredEntity`
+ - `EntityProvider`
+ - `EntityProviderConnection`
+ - `EntityProviderMutation`
+ - `EntityRelationSpec`
+ - `processingResult`
+
+ Also moved over and deprecated the following symbols:
+
+ - `locationSpecToLocationEntity`
+ - `locationSpecToMetadataName`
+
+- ac8929f2f31: Fix export of `defaultCatalogCollatorEntityTransformer`.
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+
+- f093ce83d58: Fix a bug where the batch fetch by ref endpoint did not work in conjunction with filtering (e.g. if authorization was enabled).
+
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-common@1.2.6
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.3.0
+
+### Minor Changes
+
+- a811bd246c4: Added endpoint to get a list of known incremental entity providers
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `incrementalIngestionEntityProviderCatalogModule` to `catalogModuleIncrementalIngestionEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- bf611cf019a: Fix missing `dependencies` in `package.json`
+- 6e612b58577: Move `@backstage/backend-defaults` to `devDependencies`
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-catalog-backend-module-puppetdb@0.1.0
+
+### Minor Changes
+
+- a1efcf9a658: Initial version of the plugin.
+
+### Patch Changes
+
+- 561ce41191d: Added a `catalogModulePuppetDbEntityProvider` alpha export for the new backend system
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-catalog-react@1.4.0
+
+### Minor Changes
+
+- 0a5b73b2926: Add possibility to re-use EntityPicker for filters with multiple select.
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 24916d23494: Do not close `Autocomplete` powered multiple-selection filters when checking boxes
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+ - @backstage/plugin-permission-react@0.4.11
+
+## @backstage/plugin-firehydrant@0.2.0
+
+### Minor Changes
+
+- e2e3dd08a54: Allow firehydrant to use component annotation
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-linguist-backend@0.2.0
+
+### Minor Changes
+
+- 4a1c318853d: **BREAKING** The linguist-backend `createRouter` now requires that the `tokenManger` is passed to the router.
+
+### Patch Changes
+
+- 8a298b47240: Added support for linguist-js options using the linguistJSOptions in the plugin, the available config can be found [here](https://www.npmjs.com/package/linguist-js#API).
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+
+- 2ea57821629: Fixed bug in LinguistBackendApi that caused initial batch of entities to be skipped.
+
+- b271d5ca052: Allow kind to be configurable
+
+ ```ts
+ return createRouter({ schedule: schedule, kind: ['Component'] }, { ...env });
+ ```
+
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-linguist-common@0.1.0
+
+## @backstage/plugin-octopus-deploy@0.1.0
+
+### Minor Changes
+
+- b7fff1171f0: Initial version
+
+### Patch Changes
+
+- cb0fc15a992: Added Octopus Deploy logo
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-scaffolder@1.12.0
+
+### Minor Changes
+
+- 0d61fcca9c3: Update `EntityPicker` to use the fully qualified entity ref instead of the humanized version.
+- 8f4d13f21cf: Move `useTaskStream`, `TaskBorder`, `TaskLogStream` and `TaskSteps` into `scaffolder-react`.
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 3c96e77b513: Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
+- be3cddaab5f: Getting credentials in the RepoUrlPicker now also works for targets without owner (e.g. Bitbucket Server).
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- eb877bad736: Create an "Other Templates" group when groups are given to scaffolder/next.
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 0aae4596296: Fix the scaffolder validator for arrays when the item is a field in the object
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-scaffolder-react@1.2.0
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/plugin-permission-react@0.4.11
+ - @backstage/plugin-scaffolder-common@1.2.6
+
+## @backstage/plugin-scaffolder-backend@1.12.0
+
+### Minor Changes
+
+- 7d724d8ef56: Added the ability to be able to define an actions `input` and `output` schema using `zod` instead of hand writing types and `jsonschema`
+
+### Patch Changes
+
+- 860de10fa67: Make identity valid if subject of token is a backstage server-2-server auth token
+- 65454876fb2: Minor API report tweaks
+- c6c78b4acbe: throw error from catalog:fetch scaffolder action when entity is null and optional is false
+- 9968f455921: catalog write action should allow any shape of object
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 7af12854970: Extended scaffolder action `catalog:fetch` to fetch multiple catalog entities by entity references.
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-common@1.2.6
+ - @backstage/plugin-scaffolder-node@0.1.1
+
+## @backstage/plugin-scaffolder-react@1.2.0
+
+### Minor Changes
+
+- 8f4d13f21cf: Move `useTaskStream`, `TaskBorder`, `TaskLogStream` and `TaskSteps` into `scaffolder-react`.
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 3c96e77b513: Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
+- c8d78b9ae9d: fix bug with `hasErrors` returning false when dealing with empty objects
+- 9b8c374ace5: Remove timer for skipped steps in Scaffolder Next's TaskSteps
+- 44941fc97eb: scaffolder/next: Move the `uiSchema` to its own property in the validation `context` to align with component development and access of `ui:options`
+- d9893263ba9: scaffolder/next: Fix for steps without properties
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- cc418d652a7: scaffolder/next: Added the ability to get the fields definition in the schema in the validation function
+- d4100d0ec42: Fix alignment bug for owners on `TemplateCard`
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+ - @backstage/plugin-scaffolder-common@1.2.6
+
+## @backstage/plugin-stackstorm@0.1.0
+
+### Minor Changes
+
+- f3a15259e91: Add StackStorm plugin to Backstage which is interfacing with StackStorm API. It allows users to view workflow executions, packs and actions. For installation and configuration instructions please view [README.md](https://github.com/backstage/backstage/tree/master/plugins/stackstorm/README.md)
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-techdocs@1.6.0
+
+### Minor Changes
+
+- 3f75b7607ca: Add ability to pass icon as function to have ability to customize it by search item
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 54a1e133b56: Fix bug that caused next and previous links not to work with certain versions of mkdocs-material
+- f320c299c67: The HTML tag attributes in the documentation content inserted to shadow DOM is preserved to improve accessibility
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 8adfda60ae1: Updated dependency `jss` to `~10.10.0`.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 238cf657c09: Copy to clipboard now works in a not secure context.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-techdocs-backend@1.6.0
+
+### Minor Changes
+
+- 92b495328bd: Introduced alpha export of the `techdocsPlugin` using the new backend system.
+
+### Patch Changes
+
+- 40298b02778: Techdocs backend explains a bit more about what might have caused the docs not being found when building techdocs.
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-techdocs-node@1.6.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-techdocs-node@1.6.0
+
+### Minor Changes
+
+- ea2bbef1b16: Added support for an HTTPS proxy for techdocs AWS S3 requests
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- bf493710f50: Update to a newer version of `@trendyol-js/openstack-swift-sdk`
+- bfe350ef4ce: Fixed bug that prevented deletion of stale files when non-empty directories where tried to be deleted as well.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/integration-aws-node@0.1.2
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/app-defaults@1.2.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/core-app-api@1.6.0
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-permission-react@0.4.11
+
+## @backstage/backend-app-api@0.4.1
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 482dae5de1c: Updated link to docs.
+- 915e46622cf: Add support for `NotImplementedError`, properly returning 501 as status code.
+- Updated dependencies
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config-loader@1.1.9
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/backend-common@0.18.3
+
+### Patch Changes
+
+- f75097868a7: Adds config option `backend.database.role` to set ownership for newly created schemas and tables in Postgres
+
+ The example config below connects to the database as user `v-backstage-123` but sets the ownership of
+ the create schemas and tables to `backstage`
+
+ ```yaml
+ backend:
+ database:
+ client: pg
+ pluginDivisionMode: schema
+ role: backstage
+ connection:
+ user: v-backstage-123
+ ...
+ ```
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+
+- 87f0bbec175: AwsS3UrlReader upgraded to use aws-sdk v3
+
+- c1ee073a82b: Added `lastModifiedAt` field on `UrlReaderService` responses and a `lastModifiedAfter` option to `UrlReaderService.readUrl`.
+
+- 482dae5de1c: Updated link to docs.
+
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/backend-app-api@0.4.1
+ - @backstage/config-loader@1.1.9
+ - @backstage/integration@1.4.3
+ - @backstage/backend-dev-utils@0.1.1
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+ - @backstage/integration-aws-node@0.1.2
+ - @backstage/types@1.0.2
+
+## @backstage/backend-defaults@0.1.8
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 482dae5de1c: Updated link to docs.
+- 5d0693edc09: Added a workaround for the cyclic dependency bug across `@backstage/backend-common` and `@backstage/backend-app-api`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/backend-app-api@0.4.1
+
+## @backstage/backend-dev-utils@0.1.1
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+
+## @backstage/backend-test-utils@0.1.35
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/backend-app-api@0.4.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/catalog-model@1.2.1
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/cli@0.22.4
+
+### Patch Changes
+
+- 1ad8d885d30: Fixed a bug where additional backend package entry points where not properly marked as internal during local development.
+- 2011b86052c: Added templates for new plugin Web and Node.js libraries.
+- 867f4752ca1: Updated the ESLint plugin configuration that is enabled through `yarn start --check` to only pick up valid source files.
+- b4cd145b574: Added a new `migrate package-exports` command that synchronizes package exports fields in all `package.json`s.
+- 9bf50a36674: Bumped the `msw` version in templates to 1.0.0
+- 8bf24946c66: Adjust express dependencies to be the same as the rest of the project
+- 17271841de8: Updated frontend plugin template to use some more recent features
+- 4b4998466b4: Updated dependency `del` to `^7.0.0`.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- a11b9a23f5a: Keep custom exports entry points in package.json
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/eslint-plugin@0.1.2
+ - @backstage/errors@1.1.5
+ - @backstage/config-loader@1.1.9
+ - @backstage/release-manifests@0.0.9
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/cli-common@0.1.12
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+
+## @backstage/codemods@0.1.44
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/cli-common@0.1.12
+
+## @backstage/config@1.0.7
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/types@1.0.2
+
+## @backstage/config-loader@1.1.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/core-components@0.12.5
+
+### Patch Changes
+
+- 8bbf95b5507: Button labels in the sidebar (previously displayed in uppercase) will be displayed in the case that is provided without any transformations.
+ For example, a sidebar button with the label "Search" will appear as Search, "search" will appear as search, "SEARCH" will appear as SEARCH etc.
+ This can potentially affect any overriding styles previously applied to change the appearance of Button labels in the Sidebar.
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- e1aae2f5a0c: Updated the `aria-label` of the `HeaderTabs` component.
+- 6a51a49a810: Fix bug where `` component would not take into account header styles defined in `columns[*].headerStyle`.
+- fa004f66871: Use media queries to change layout instead of `isMobile` prop in `BackstagePage` component
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/version-bridge@1.0.3
+
+## @backstage/create-app@0.4.38
+
+### Patch Changes
+
+- b4627f23b28: Bumped create-app version.
+- 0eceadb9502: Bumped create-app version.
+- 482dae5de1c: Updated link to docs.
+- 6ace2dd2c58: Added to the template `packages/app/.eslintignore` file to packages to ignore the contents of `packages/app/public`.
+- Updated dependencies
+ - @backstage/cli-common@0.1.12
+
+## @backstage/dev-utils@1.0.13
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/test-utils@1.2.6
+ - @backstage/core-app-api@1.6.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/theme@0.2.18
+ - @backstage/app-defaults@1.2.1
+
+## @backstage/errors@1.1.5
+
+### Patch Changes
+
+- 3bf83a2aabf: Added `NotImplementedError`, which can be used when the server does not recognize the request method and is incapable of supporting it for any resource.
+- Updated dependencies
+ - @backstage/types@1.0.2
+
+## @backstage/eslint-plugin@0.1.2
+
+### Patch Changes
+
+- a061c466d66: Fixing a bug that we should check internal dependencies too
+
+## @backstage/integration@1.4.3
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
+## @backstage/integration-aws-node@0.1.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
+## @backstage/integration-react@1.1.11
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
+## @backstage/release-manifests@0.0.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+
+## @backstage/repo-tools@0.1.3
+
+### Patch Changes
+
+- 32a4a05838c: Tweaked type dependency check to trim wildcard type imports.
+- 6ba8faf22ac: The API report generation process is now able to detect and generate reports for additional entry points declared in the package `"exports"` field.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/cli-common@0.1.12
+
+## @backstage/test-utils@1.2.6
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/core-app-api@1.6.0
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/plugin-permission-react@0.4.11
+
+## @backstage/theme@0.2.18
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+
+## @backstage/plugin-adr@0.4.1
+
+### Patch Changes
+
+- d293f4aaf83: Updated readme instructions
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration-react@1.1.11
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-adr-common@0.2.7
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-adr-backend@0.3.1
+
+### Patch Changes
+
+- 2a73ded3861: Support MADR v3 format
+- 8bf24946c66: Adjust express dependencies to be the same as the rest of the project
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-adr-common@0.2.7
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-adr-common@0.2.7
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-airbrake@0.3.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/test-utils@1.2.6
+ - @backstage/dev-utils@1.0.13
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-airbrake-backend@0.2.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-allure@0.1.32
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-analytics-module-ga@0.1.27
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-apache-airflow@0.2.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+
+## @backstage/plugin-api-docs@0.9.1
+
+### Patch Changes
+
+- 095e755d9b5: Add ApiDefinitionDialog component for fast access to the API definition in ProvidedApiCards and ConsumedApiCards.
+- 8bc7dcec820: Fix dark theme Swagger's clear button font color.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 9820eb5d24f: Add a `columns` prop to certain components that use the `EntityTable` for easier extensibility.
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-apollo-explorer@0.1.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-app-backend@0.3.43
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config-loader@1.1.9
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-auth-backend@0.18.1
+
+### Patch Changes
+
+- e262738b8a0: Handle difference in expiration time between Microsoft session and Backstage session which caused the Backstage token to be invalid during a time frame.
+- 86cece2c1fb: Updated dependency `@types/passport-microsoft` to `^1.0.0`.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 529de8c4211: Added authentication provider for Azure Easy Authentication.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-auth-node@0.2.12
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-azure-devops@0.2.7
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-azure-devops-common@0.3.0
+
+## @backstage/plugin-azure-devops-backend@0.3.22
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-azure-devops-common@0.3.0
+
+## @backstage/plugin-azure-sites@0.1.5
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-azure-sites-common@0.1.0
+
+## @backstage/plugin-azure-sites-backend@0.1.5
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-azure-sites-common@0.1.0
+
+## @backstage/plugin-badges@0.2.40
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-badges-backend@0.1.37
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-bazaar@0.2.6
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/cli@0.22.4
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-bazaar-backend@0.2.6
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-bitbucket-cloud-common@0.2.4
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/integration@1.4.3
+
+## @backstage/plugin-bitrise@0.1.43
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-catalog-backend-module-aws@0.1.17
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `awsS3EntityProviderCatalogModule` to `catalogModuleAwsS3EntityProviders` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 87f0bbec175: AwsS3UrlReader upgraded to use aws-sdk v3
+- bf611cf019a: Fix missing `dependencies` in `package.json`
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-kubernetes-common@0.6.1
+
+## @backstage/plugin-catalog-backend-module-azure@0.1.14
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `azureDevOpsEntityProviderCatalogModule` to `catalogModuleAzureDevOpsEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- c17fa101825: Add branch filter support
+
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-catalog-backend-module-bitbucket@0.2.10
+
+### Patch Changes
+
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-bitbucket-cloud-common@0.2.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.10
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `bitbucketCloudEntityProviderCatalogModule` to `catalogModuleBitbucketCloudEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-bitbucket-cloud-common@0.2.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.8
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `bitbucketServerEntityProviderCatalogModule` to `catalogModuleBitbucketServerEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-catalog-backend-module-gerrit@0.1.11
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `gerritEntityProviderCatalogModule` to `catalogModuleGerritEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-catalog-backend-module-github@0.2.6
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 90469c02c8c: Renamed `githubEntityProviderCatalogModule` to `catalogModuleGithubEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-catalog-backend-module-gitlab@0.1.14
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `gitlabDiscoveryEntityProviderCatalogModule` to `catalogModuleGitlabDiscoveryEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- af1095f1e11: The configuration key `branch` of the `GitlabDiscoveryEntityProvider` has been deprecated in favor of the configuration key `fallbackBranch`.
+ It will be reused in future release to enforce a concrete branch to be used in catalog file discovery.
+ To migrate to the new configuration value, rename `branch` to `fallbackBranch`.
+- be129f8f3cd: filter gitlab groups by prefix
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-catalog-backend-module-ldap@0.5.10
+
+### Patch Changes
+
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-catalog-backend-module-msgraph@0.5.2
+
+### Patch Changes
+
+- a4ebd513527: Revert using `baseUrl` for MS Graph provider as it breaks token retrieval
+- 26eef93c547: Fixed msgraph catalog backend to use user.select option when fetching user from AzureAD
+- 90469c02c8c: Renamed `microsoftGraphOrgEntityProviderCatalogModule` to `catalogModuleMicrosoftGraphOrgEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 2c234a89325: properly support custom graph api URL
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-catalog-backend-module-openapi@0.1.9
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-catalog-common@1.0.12
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-catalog-graph@0.2.28
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-catalog-graphql@0.3.19
+
+### Patch Changes
+
+- b990021ddeb: Updated dependency `@graphql-codegen/cli` to `^3.0.0`.
+ Updated dependency `@graphql-codegen/graphql-modules-preset` to `^3.0.0`.
+ Updated dependency `@graphql-codegen/typescript` to `^3.0.0`.
+ Updated dependency `@graphql-codegen/typescript-resolvers` to `^3.0.0`.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-catalog-import@0.9.6
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-catalog-node@1.3.4
+
+### Patch Changes
+
+- e675f902980: Added `locationSpecToMetadataName` and `locationSpecToLocationEntity` as their new home, moved over from the backend package where they now are marked as deprecated.
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-cicd-statistics@0.1.18
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+
+## @backstage/plugin-cicd-statistics-module-gitlab@0.1.12
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-cicd-statistics@0.1.18
+
+## @backstage/plugin-circleci@0.3.16
+
+### Patch Changes
+
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-cloudbuild@0.3.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-code-climate@0.1.16
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-code-coverage@0.2.9
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-code-coverage-backend@0.2.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-codescene@0.1.11
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-config-schema@0.1.39
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-cost-insights@0.12.5
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-cost-insights-common@0.1.1
+
+## @backstage/plugin-dynatrace@3.0.0
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-entity-feedback@0.1.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-entity-feedback-common@0.1.0
+
+## @backstage/plugin-entity-feedback-backend@0.1.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/plugin-entity-feedback-common@0.1.0
+
+## @backstage/plugin-entity-validation@0.1.1
+
+### Patch Changes
+
+- 47d246691ac: Fixed bug in EntityVaidation plugin where string in text box was unable to be updated.
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-events-backend@0.2.4
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- a5de745ac17: Updated README instructions
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-events-backend-module-aws-sqs@0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `awsSqsConsumingEventPublisherEventsModule` to `eventsModuleAwsSqsConsumingEventPublisher` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-events-backend-module-azure@0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `azureDevOpsEventRouterEventsModule` to `eventsModuleAzureDevOpsEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+
+## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `bitbucketCloudEventRouterEventsModule` to `eventsModuleBitbucketCloudEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+
+## @backstage/plugin-events-backend-module-gerrit@0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `gerritEventRouterEventsModule` to `eventsModuleGerritEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+
+## @backstage/plugin-events-backend-module-github@0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `githubEventRouterEventsModule` to `eventsModuleGithubEventRouter` and `githubWebhookEventsModule` to `eventsModuleGithubWebhook`, to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-events-backend-module-gitlab@0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `gitlabEventRouterEventsModule` to `eventsModuleGitlabEventRouter` and `gitlabWebhookEventsModule` to `eventsModuleGitlabWebhook` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-events-backend-test-utils@0.1.5
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-events-node@0.2.4
+
+## @backstage/plugin-events-node@0.2.4
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+
+## @backstage/plugin-explore@0.4.1
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 3f75b7607ca: Add ability to pass icon as function to have ability to customize it by search item
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-explore-react@0.0.27
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-explore-common@0.0.1
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-explore-backend@0.0.5
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-explore-common@0.0.1
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-explore-react@0.0.27
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/plugin-explore-common@0.0.1
+
+## @backstage/plugin-fossa@0.2.48
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-gcalendar@0.3.12
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-gcp-projects@0.3.35
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-git-release-manager@0.3.29
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-github-actions@0.5.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-github-deployments@0.1.47
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-github-issues@0.2.5
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-github-pull-requests-board@0.1.10
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-gitops-profiles@0.3.34
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-gocd@0.1.22
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-graphiql@0.2.48
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-graphql-backend@0.1.33
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-catalog-graphql@0.3.19
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-graphql-voyager@0.1.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-home@0.4.32
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-ilert@0.2.5
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-jenkins@0.7.15
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-jenkins-common@0.1.14
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-jenkins-backend@0.1.33
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-jenkins-common@0.1.14
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-jenkins-common@0.1.14
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-permission-common@0.7.4
+
+## @backstage/plugin-kafka@0.3.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-kafka-backend@0.2.36
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-kubernetes@0.7.9
+
+### Patch Changes
+
+- 8adeb19b37d: GitLab can now be used as an `oidcTokenProvider` for Kubernetes clusters
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-kubernetes-common@0.6.1
+
+## @backstage/plugin-kubernetes-backend@0.9.4
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/plugin-kubernetes-common@0.6.1
+
+## @backstage/plugin-kubernetes-common@0.6.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+
+## @backstage/plugin-lighthouse@0.4.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-lighthouse-common@0.1.1
+
+## @backstage/plugin-lighthouse-backend@0.1.1
+
+### Patch Changes
+
+- 46829bc2f0e: Update README.md; typo with plugin name & removed unneeded "import { Router } from 'express';"
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-lighthouse-common@0.1.1
+
+## @backstage/plugin-lighthouse-common@0.1.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-linguist@0.1.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- ab997ce243f: Updated `README.md` to removed images with refresh button as this feature was not implemented in the current version
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-linguist-common@0.1.0
+
+## @backstage/plugin-microsoft-calendar@0.1.1
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-newrelic@0.3.34
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 66fdf05a1ef: Updated installation instructions
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-newrelic-dashboard@0.2.9
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+
+## @backstage/plugin-org@0.6.6
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 36bccb5252f: Fix small UI-glitch in MemberListCard
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- a06fcac4040: Add styling to the `MembersListCard` and `ComponentsGrid` to handle overflow text.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-org-react@0.1.5
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-pagerduty@0.5.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 9c08ecbaa4b: Update readme link for discord channel
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-periskop@0.1.14
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-periskop-backend@0.1.14
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-permission-backend@0.5.18
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-permission-common@0.7.4
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-permission-node@0.7.6
+
+### Patch Changes
+
+- 27a103ca07b: Changed the `createPermissionIntegrationRouter` API to allow `getResources`, `resourceType` and `rules` to be optional
+- 37e9215c793: Update the service-to-service auth docs URL in error message.
+ \`\`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-permission-react@0.4.11
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-playlist@0.1.7
+
+### Patch Changes
+
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 122a37a880e: Internal update to work with newer versions of react-router
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-permission-react@0.4.11
+ - @backstage/plugin-playlist-common@0.1.5
+
+## @backstage/plugin-playlist-backend@0.2.6
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/plugin-playlist-common@0.1.5
+
+## @backstage/plugin-playlist-common@0.1.5
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-permission-common@0.7.4
+
+## @backstage/plugin-proxy-backend@0.2.37
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+
+- 3e3eea4bc7e: The proxy-backend plugin now supports reviving request bodies that have previously been consumed by an express middleware (e.g. `express.json()`). This is done by setting `reviveConsumedRequestBodies: true` on the proxy `RouterOptions`. In order to preserve the current behavior, the proxy will **not** revive request bodies by default.
+
+ The following is an example of a proxy `createRouter` invocation that revives request bodies:
+
+ ```diff
+ const router = await createRouter({
+ config,
+ logger,
+ discovery,
+ + reviveConsumedRequestBodies: true,
+ });
+ ```
+
+- 4acd93dae1d: Ensure that `@backstage/plugin-proxy-backend` logs the requests that it proxies when log level is set to `debug`.
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-rollbar@0.4.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-rollbar-backend@0.1.40
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.18
+
+### Patch Changes
+
+- 62414770ead: allow container runner to be undefined in cookiecutter plugin
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-node@0.1.1
+
+## @backstage/plugin-scaffolder-backend-module-rails@0.4.11
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-node@0.1.1
+
+## @backstage/plugin-scaffolder-backend-module-sentry@0.1.3
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/plugin-scaffolder-node@0.1.1
+
+## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.16
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-node@0.1.1
+
+## @backstage/plugin-scaffolder-common@1.2.6
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-scaffolder-node@0.1.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-common@1.2.6
+
+## @backstage/plugin-search@1.1.1
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-search-backend@1.2.4
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-search-backend-node@1.1.4
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-search-backend-module-elasticsearch@1.1.4
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-backend-node@1.1.4
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-search-backend-module-pg@0.5.4
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-backend-node@1.1.4
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-search-backend-node@1.1.4
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-search-common@1.2.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-search-react@1.5.1
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 553f3c95011: Correctly disable next button in `SearchPagination` on last page
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-sentry@0.5.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-shortcuts@0.3.8
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+
+- 7c38e565d1f: Fixed bug in LocalStoredShortcuts client where adding new Shortcut results in replacing entire shortcut list.
+
+ Refactored LocalStoredShortcuts client to listen to `storageApi` updates to ensure that local state is always up to date.
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-sonarqube@0.6.5
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 8ae65a0bc1d: Moved imports from `/alpha` to main public exports.
+- d3d624e8e8d: Show a more appropriate icon if there are no code smells and/or vulnerabilities.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/plugin-sonarqube-react@0.1.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-sonarqube-backend@0.1.8
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-sonarqube-react@0.1.4
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 8ae65a0bc1d: Moved imports from `/alpha` to main public exports.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+
+## @backstage/plugin-splunk-on-call@0.4.5
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-stack-overflow@0.1.12
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 3ef5fb09ca5: Export api ref and StackOverflowApi type
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/plugin-home@0.4.32
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-stack-overflow-backend@0.1.12
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-common@1.2.2
+
+## @backstage/plugin-tech-insights@0.3.8
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/plugin-tech-insights-common@0.2.10
+
+## @backstage/plugin-tech-insights-backend@0.5.9
+
+### Patch Changes
+
+- f244b589163: Add DB index to improve latency of latest fact query
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-tech-insights-common@0.2.10
+ - @backstage/plugin-tech-insights-node@0.4.1
+
+## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.27
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/plugin-tech-insights-common@0.2.10
+ - @backstage/plugin-tech-insights-node@0.4.1
+
+## @backstage/plugin-tech-insights-node@0.4.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-tech-insights-common@0.2.10
+
+## @backstage/plugin-tech-radar@0.6.2
+
+### Patch Changes
+
+- e14dcfa4994: Update colors to match Zalando's tech radar, also add coloring on title and legend to match ring color.
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-techdocs-addons-test-utils@1.0.11
+
+### Patch Changes
+
+- 2b00d8a225c: Fix bug/problem with test helper
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/plugin-techdocs@1.6.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/test-utils@1.2.6
+ - @backstage/core-app-api@1.6.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-techdocs-module-addons-contrib@1.0.11
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 37cf85fb85c: Fixed bug in IssueLink component where the URL was not generated properly when the repository was located inside a Gitlab subgroup
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-techdocs-react@1.1.4
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 8adfda60ae1: Updated dependency `jss` to `~10.10.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/version-bridge@1.0.3
+
+## @backstage/plugin-todo@0.2.18
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-todo-backend@0.1.40
+
+### Patch Changes
+
+- 4120513412a: todo-backend is now exposed as a plugin which uses the new plugin system
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-user-settings@0.7.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/core-app-api@1.6.0
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-user-settings-backend@0.1.7
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/types@1.0.2
+
+## @backstage/plugin-vault@0.1.10
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
+## @backstage/plugin-vault-backend@0.2.10
+
+### Patch Changes
+
+- 66b3a3956b8: Ignore the `eslint` error
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
+## @backstage/plugin-xcmetrics@0.2.36
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## example-app@0.2.81
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-scaffolder-react@1.2.0
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-tech-insights@0.3.8
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/plugin-scaffolder@1.12.0
+ - @backstage/plugin-techdocs@1.6.0
+ - @backstage/plugin-explore@0.4.1
+ - @backstage/plugin-search@1.1.1
+ - @backstage/cli@0.22.4
+ - @backstage/plugin-kubernetes@0.7.9
+ - @backstage/plugin-tech-radar@0.6.2
+ - @backstage/plugin-microsoft-calendar@0.1.1
+ - @backstage/plugin-newrelic-dashboard@0.2.9
+ - @backstage/plugin-code-coverage@0.2.9
+ - @backstage/plugin-azure-sites@0.1.5
+ - @backstage/plugin-gcalendar@0.3.12
+ - @backstage/plugin-shortcuts@0.3.8
+ - @backstage/plugin-org@0.6.6
+ - @backstage/plugin-api-docs@0.9.1
+ - @backstage/plugin-stackstorm@0.1.0
+ - @backstage/plugin-circleci@0.3.16
+ - @backstage/plugin-playlist@0.1.7
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-cost-insights@0.12.5
+ - @backstage/plugin-jenkins@0.7.15
+ - @backstage/core-app-api@1.6.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/plugin-airbrake@0.3.16
+ - @backstage/plugin-apache-airflow@0.2.9
+ - @backstage/plugin-azure-devops@0.2.7
+ - @backstage/plugin-badges@0.2.40
+ - @backstage/plugin-catalog-import@0.9.6
+ - @backstage/plugin-cloudbuild@0.3.16
+ - @backstage/plugin-dynatrace@3.0.0
+ - @backstage/plugin-entity-feedback@0.1.1
+ - @backstage/plugin-gcp-projects@0.3.35
+ - @backstage/plugin-github-actions@0.5.16
+ - @backstage/plugin-gocd@0.1.22
+ - @backstage/plugin-graphiql@0.2.48
+ - @backstage/plugin-home@0.4.32
+ - @backstage/plugin-kafka@0.3.16
+ - @backstage/plugin-lighthouse@0.4.1
+ - @backstage/plugin-linguist@0.1.1
+ - @backstage/plugin-newrelic@0.3.34
+ - @backstage/plugin-pagerduty@0.5.9
+ - @backstage/plugin-rollbar@0.4.16
+ - @backstage/plugin-sentry@0.5.1
+ - @backstage/plugin-stack-overflow@0.1.12
+ - @backstage/plugin-techdocs-module-addons-contrib@1.0.11
+ - @backstage/plugin-todo@0.2.18
+ - @backstage/plugin-user-settings@0.7.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @internal/plugin-catalog-customized@0.0.8
+ - @backstage/plugin-catalog-graph@0.2.28
+ - @backstage/app-defaults@1.2.1
+ - @backstage/plugin-linguist-common@0.1.0
+ - @backstage/plugin-permission-react@0.4.11
+ - @backstage/plugin-search-common@1.2.2
+
+## example-backend@0.2.81
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-todo-backend@0.1.40
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-search-backend-module-elasticsearch@1.1.4
+ - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.27
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/plugin-techdocs-backend@1.6.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/plugin-tech-insights-backend@0.5.9
+ - @backstage/plugin-adr-backend@0.3.1
+ - @backstage/plugin-auth-backend@0.18.1
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-linguist-backend@0.2.0
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-events-backend@0.2.4
+ - @backstage/plugin-app-backend@0.3.43
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-azure-devops-backend@0.3.22
+ - @backstage/plugin-azure-sites-backend@0.1.5
+ - @backstage/plugin-code-coverage-backend@0.2.9
+ - @backstage/plugin-entity-feedback-backend@0.1.1
+ - @backstage/plugin-explore-backend@0.0.5
+ - @backstage/plugin-graphql-backend@0.1.33
+ - @backstage/plugin-jenkins-backend@0.1.33
+ - @backstage/plugin-kubernetes-backend@0.9.4
+ - @backstage/plugin-permission-backend@0.5.18
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/plugin-playlist-backend@0.2.6
+ - @backstage/plugin-proxy-backend@0.2.37
+ - @backstage/plugin-rollbar-backend@0.1.40
+ - @backstage/plugin-lighthouse-backend@0.1.1
+ - @backstage/config@1.0.7
+ - @backstage/plugin-scaffolder-backend-module-rails@0.4.11
+ - @backstage/plugin-badges-backend@0.1.37
+ - example-app@0.2.81
+ - @backstage/plugin-search-backend@1.2.4
+ - @backstage/plugin-kafka-backend@0.2.36
+ - @backstage/plugin-search-backend-module-pg@0.5.4
+ - @backstage/plugin-search-backend-node@1.1.4
+ - @backstage/plugin-search-common@1.2.2
+ - @backstage/plugin-tech-insights-node@0.4.1
+
+## example-backend-next@0.0.9
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/plugin-todo-backend@0.1.40
+ - @backstage/plugin-techdocs-backend@1.6.0
+ - @backstage/backend-defaults@0.1.8
+ - @backstage/plugin-app-backend@0.3.43
+
+## e2e-test@0.2.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/create-app@0.4.38
+ - @backstage/errors@1.1.5
+ - @backstage/cli-common@0.1.12
+
+## techdocs-cli-embedded-app@0.2.80
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/plugin-techdocs@1.6.0
+ - @backstage/cli@0.22.4
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/test-utils@1.2.6
+ - @backstage/core-app-api@1.6.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/app-defaults@1.2.1
+
+## @internal/plugin-catalog-customized@0.0.8
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/plugin-catalog-react@1.4.0
+
+## @internal/plugin-todo-list@1.0.11
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
+## @internal/plugin-todo-list-backend@1.0.11
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config@1.0.7
+
+## @internal/plugin-todo-list-common@1.0.9
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-permission-common@0.7.4
diff --git a/docs/releases/v1.12.0.md b/docs/releases/v1.12.0.md
new file mode 100644
index 0000000000..789be8beca
--- /dev/null
+++ b/docs/releases/v1.12.0.md
@@ -0,0 +1,62 @@
+---
+id: v1.12.0
+title: v1.12.0
+description: Backstage Release v1.12.0
+---
+
+These are the release notes for the v1.12.0 release of [Backstage](https://backstage.io/).
+
+A huge thanks to the whole team of maintainers and contributors as well as the amazing Backstage Community for the hard work in getting this release developed and done.
+
+## Highlights
+
+This release mostly contains a bunch of smaller additions and bug fixes, but on top of that, there’s also some quality of life improvements and features as listed below. Enjoy!
+
+### Using `zod` for action definitions
+
+As a convenience, it is now possible to define your action inputs and outputs as `zod` schemas. This tends to be more convenient than writing JSON schema by hand, and gives you instant type feedback in your editor.
+
+Added by [@zcason](https://github.com/zcason) in [#15561](https://github.com/backstage/backstage/pull/15561)
+
+### Reading paginated data from the catalog
+
+The catalog has a new backend endpoint and corresponding client method, for fetching entities with proper cursor based pagination and server side filtering and ordering. This will be used to target performance hot-spots in the frontend and elsewhere.
+
+Added by [@vinzscam](https://github.com/vinzscam) in [#12246](https://github.com/backstage/backstage/pull/12246)
+
+### Renamed backend system related plugin exports
+
+As we settle the new backend system bit by bit, we have renamed a number of exports from individual plugins, to match the new [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns). If you are already leveraging the new backend system, you may find that you need to update some imports. For example, `githubEntityProviderCatalogModule` was renamed to `catalogModuleGithubEntityProvider`. These were considered non-breaking since they are still in alpha. More details can be found in [#16760](https://github.com/backstage/backstage/pull/16760) and [#16764](https://github.com/backstage/backstage/pull/16764).
+
+### New plugin: `catalog-backend` `puppetdb` module
+
+Added a `catalogModulePuppetDbEntityProvider` alpha export for the new backend system. Contributed by [@tdabasinskas](https://github.com/tdabasinskas) in [#16184](https://github.com/backstage/backstage/pull/16184)
+
+### New plugin: Octopus deploy
+
+[Octopus](https://octopus.com) deployment plugin. Contributed by [@jmezach](https://github.com/jmezach) in [#16353](https://github.com/backstage/backstage/pull/16353)
+
+### New plugin: StackStorm
+
+Integration with [StackStorm](https://stackstorm.com). Contributed by [@pamelin](https://github.com/pamelin) in [#16152](https://github.com/backstage/backstage/pull/16152)
+
+## Security Fixes
+
+This release does not contain any security fixes.
+
+## Upgrade path
+
+We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for [keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated).
+
+## Links and References
+
+Below you can find a list of links and references to help you learn about and start using this new release.
+
+- [Backstage official website](https://backstage.io/), [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/)
+- [GitHub repository](https://github.com/backstage/backstage)
+- Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy)
+- [Community Discord](https://discord.gg/backstage-687207715902193673) for discussions and support
+- [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.12.0-changelog.md)
+- Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins)
+
+Sign up for our [newsletter](https://mailchi.mp/spotify/backstage-community) if you want to be informed about what is happening in the world of Backstage.
diff --git a/microsite/.prettierignore b/microsite/.prettierignore
index b52c4a85c3..65d3600479 100644
--- a/microsite/.prettierignore
+++ b/microsite/.prettierignore
@@ -1 +1,2 @@
+build
.docusaurus
diff --git a/microsite/blog/2023-03-15-backstage-turns-3.md b/microsite/blog/2023-03-15-backstage-turns-3.md
new file mode 100644
index 0000000000..fffd4a70b0
--- /dev/null
+++ b/microsite/blog/2023-03-15-backstage-turns-3.md
@@ -0,0 +1,84 @@
+---
+title: Backstage Turns Three!
+author: Ben Lambert
+authorURL: https://github.com/benjdlambert
+authorImageURL: https://avatars.githubusercontent.com/u/3645856?v=4
+---
+
+
+
+**tl;dr** Spotify released Backstage into open source three years ago today. Since then, the community has grown by leaps and bounds to stretch across the globe (and the Discord server!). Now that Backstage is a threenager, the growing pains are real. So, on this birthday, we want to cover our collective efforts to make it easier to adopt and contribute to Backstage.
+
+
+
+## They grow up so fast, don’t they?
+
+Happy birthday, Backstage! Three years ago, Spotify released its homegrown developer portal into the wild after a small team collaborated on an internal Hack Week project. We’d had a lot of conversations with companies looking to build out something similar to what we’d been running for years, so our Hack Week sprint started as an experiment to see if the Backstage core plugins could be valuable in open source.
+
+It's cliché at this point — because we’ve said it a million times — but no one could have predicted what came next.
+
+In three short years, Backstage has grown to a Cloud Native Computing Foundation Incubating project, with more than 900 adopters and 1000+ contributors worldwide. Companies like CVS Health, Siemens, LinkedIn, REI, Vodafone, and Lego are building out their own developer portals from the Backstage framework and bringing their learnings to the project.
+
+A few more stats we love to see (mainly coming from the [project repo](https://github.com/backstage/backstage)):
+
+- 3k+ project forks
+- 38k+ commits
+- 12k+ PRs
+- 15k+ total contributions
+- 21k+ stars on GitHub
+- 9k+ Discord members
+- 100+ open source plugins in the [plugin marketplace](https://backstage.io/plugins)
+
+But, without a doubt, the best thing about the Backstage project is the people in this community. People who are curious, collaborative, and excited to share knowledge. People who’ll sift through Discord at all hours to answer questions and support one another. People who come from all over the world but share a common trait: being passionate about enabling developers to do their best work.
+
+Don’t take our word for it! Take a look at this birthday video we put together with a few community members.
+
+
+ VIDEO
+
+
+## The growing pains are real
+
+But it's not all sunshine and roses in Backstage-land. If Year 1 was about getting this community going and Year 2 was focused on maturing the platform, then Year 3 needs to address some of the inevitable growing pains a project undergoes as it gains ground.
+
+We hear two things pretty consistently from the community:
+
+- **Backstage is a steep learning curve:** Over the past three years, the project has grown in scope and breadth which can translate to complexity. This is especially true for newcomers looking to get their arms wrapped around the key concepts.
+- **Backstage has barriers to adoption:** Backstage adopters tell us driving widespread adoption of their developer portal remains the biggest challenge they face. Adoption barriers can be technical but are often cultural.
+
+The maintainers and some of our most involved community members are actively tackling how we can make the Backstage onboarding process easier for contributors. There are also lots of ways the project could better support adopters on that journey and make adoption faster and smoother.
+
+We’re looking at everything from cleaning up documentation to opinionated catalog ingestors being discussed in both the Catalog and Adoption monthly SIGs (running meeting notes [here](https://docs.google.com/document/d/1xg57CDfX2R5jTGbbWANzifm2szEb664kuTwfEEvKgZU/) and [here](https://docs.google.com/document/d/1zeYSzXYgh897bxPQmwy2btOwCFlEjlUDLf00riySLRc)). A few priorities that we’ve already mapped out:
+
+- Make it easier to install, customize, and maintain Backstage
+- Provide Golden Paths for adoption
+- Improve the experience and the content on [backstage.io](https://backstage.io/docs/overview/what-is-backstage)
+
+Because there are now so many mature adopters — Spotify included — there’s so much knowledge on how to create a roadmap for adoption and use cases, how to roll out your developer portal to your teams and drive inner source contributions, how to measure and attribute developer productivity gains, etc.
+
+Our goal is to tap into the knowledge those adopters have gained and create more tangible resources for the entire community. But we can’t do it without help. And that’s where you come in!
+
+## Getting (more) involved
+
+We’re very grateful for the Backstage ride-or-dies: the contributors who show up to every community session, attend every SIG, and are always ready to jump in on any PR or issue.
+
+But one of the areas where we think the project could greatly improve (and better address some of the growing pains I mentioned above!) is more active contribution — both the total number of people contributing and what they’re contributing.
+
+We’ve already shared a bit on this but the maintainer team is starting to address this challenge by proposing the following three initiatives:
+
+- Introduce more steps in between first-time contributor and maintainer in the form of a contributor ladder (loosely based on the [CNCF Project Template](https://github.com/cncf/project-template/blob/main/CONTRIBUTOR_LADDER.md)).
+- Change the ownership model, for example, divide the project up into several project areas, each covering particular parts of the project.
+- Introduce a new process for large contributions in the form of Backstage Enhancement Proposals (BEPs).
+
+These two RFCs on [Updated Backstage Governance](https://github.com/backstage/backstage/issues/15317) and [Backstage Enhancement Proposals](https://github.com/backstage/backstage/issues/15318) remain open so feel free to read and join the discussion! Watch this space as we’ll share more on the go-forward governance and BEPs plan soon.
+
+But if you’re brand-new and just looking to get your feet wet, we’ve also [compiled some small steps](https://backstage.io/docs/getting-started/getting-involved/) you can take to get involved:
+
+- Report (or squash) bugs: Look through the GitHub issues for [bugs](https://github.com/backstage/backstage/labels/bug), [good first issues](https://github.com/backstage/backstage/labels/good%20first%20issue) or [help wanted](https://github.com/backstage/backstage/labels/help%20wanted)
+- Build or suggest a plugin: The Backstage project grows with every new plugin that gets added
+- Add non-code contributions: We welcome things that help the community at large, but may not fit into the scope of the core project
+- Write documentation or improve the website: The current documentation and project site are pretty limited. Better content helps a lot of those growing pains.
+- Contribute to Storybook: Help us [create new components](https://github.com/backstage/backstage/labels/help%20wanted) or improve stories for the existing ones
+- Submit feedback: The best way to send feedback is to file [an issue](https://github.com/backstage/backstage/issues) with as much detail as possible
+- Add your company to ADOPTERS: Adding your company to [ADOPTERS](https://github.com/backstage/backstage/blob/master/ADOPTERS.md) really helps the project, you can do this by filling out this [adopter form](https://form.typeform.com/to/zcOaKikB)
diff --git a/microsite/blog/assets/2023-03-15/birthday.gif b/microsite/blog/assets/2023-03-15/birthday.gif
new file mode 100644
index 0000000000..0c489bc536
Binary files /dev/null and b/microsite/blog/assets/2023-03-15/birthday.gif differ
diff --git a/microsite/data/plugins/microsoft-calendar.yaml b/microsite/data/plugins/microsoft-calendar.yaml
new file mode 100644
index 0000000000..183c991761
--- /dev/null
+++ b/microsite/data/plugins/microsoft-calendar.yaml
@@ -0,0 +1,15 @@
+title: Microsoft Calendar
+author: StatusNeo
+authorUrl: https://statusneo.com/
+category: Productivity
+description: |
+ The plugin integrates with your Microsoft Calendar.
+ It displays all your calendars and events in it.
+documentation: https://github.com/backstage/backstage/tree/master/plugins/microsoft-calendar
+iconUrl: /img/outlook-statusneo.png
+npmPackageName: '@backstage/plugin-microsoft-calendar'
+tags:
+ - Microsoft
+ - calendar
+ - Management
+addedDate: '2023-03-15'
diff --git a/microsite/data/plugins/statusneo-github-plugin.yaml b/microsite/data/plugins/statusneo-github-plugin.yaml
new file mode 100644
index 0000000000..eea4b84e06
--- /dev/null
+++ b/microsite/data/plugins/statusneo-github-plugin.yaml
@@ -0,0 +1,13 @@
+title: Statusneo Github Plugin
+author: Statusneo
+authorUrl: https://statusneo.com/
+category: GitHub
+description: Provides status cards GitHub pull requests and GitHub actions.
+documentation: https://github.com/StatusNeo/backstage-plugin-github
+iconUrl: /img/github-statusneo.png
+npmPackageName: '@statusneo/backstage-plugin-github'
+tags:
+ - GitHub
+ - Monitoring
+ - Productivity
+addedDate: '2023-02-15'
diff --git a/microsite/docusaurus.config.js b/microsite/docusaurus.config.js
index 8a9fe6fd9b..549974a168 100644
--- a/microsite/docusaurus.config.js
+++ b/microsite/docusaurus.config.js
@@ -60,7 +60,7 @@ module.exports = {
path: 'blog',
},
theme: {
- customCss: 'src/css/customTheme.css',
+ customCss: 'src/theme/customTheme.scss',
},
gtag: {
trackingID: 'G-KSEVGGNCJW',
@@ -163,7 +163,7 @@ module.exports = {
position: 'left',
},
{
- to: 'docs/releases/v1.11.0',
+ to: 'docs/releases/v1.12.0',
label: 'Releases',
position: 'left',
},
diff --git a/microsite/sidebars.json b/microsite/sidebars.json
index ebb387f81c..09727685a0 100644
--- a/microsite/sidebars.json
+++ b/microsite/sidebars.json
@@ -1,6 +1,7 @@
{
"releases": {
"Release Notes": [
+ "releases/v1.12.0",
"releases/v1.11.0",
"releases/v1.10.0",
"releases/v1.9.0",
diff --git a/microsite/src/components/bannerSection/bannerSection.module.scss b/microsite/src/components/bannerSection/bannerSection.module.scss
index 2beabf9738..64f4967d11 100644
--- a/microsite/src/components/bannerSection/bannerSection.module.scss
+++ b/microsite/src/components/bannerSection/bannerSection.module.scss
@@ -1,5 +1,41 @@
+@use 'src/theme/variables';
+
.bannerSection {
+ --diagonalBorderHeight: 40px;
+
display: block;
+ background: var(--ifm-background-color);
+
+ @media (min-width: variables.$desktopUpBreakpoint) {
+ --diagonalBorderHeight: 80px;
+ }
+
+ &:global(:is(.diagonalBorder, .diagonalBottomBorder)) {
+ padding-bottom: var(--diagonalBorderHeight);
+
+ & + section {
+ margin-top: calc(var(--diagonalBorderHeight) * -1);
+ padding-top: var(--diagonalBorderHeight);
+ }
+ }
+
+ &:global(.diagonalBorder) {
+ clip-path: polygon(
+ 0 var(--diagonalBorderHeight),
+ 100% 0,
+ 100% calc(100% - var(--diagonalBorderHeight)),
+ 0 100%
+ );
+ }
+
+ &:global(.diagonalBottomBorder) {
+ clip-path: polygon(
+ 0 0,
+ 100% 0,
+ 100% calc(100% - var(--diagonalBorderHeight)),
+ 0 100%
+ );
+ }
&:global(.greyBackground) {
background: linear-gradient(90.49deg, #121212 15.36%, #282828 70.44%);
diff --git a/microsite/src/components/bannerSection/bannerSection.tsx b/microsite/src/components/bannerSection/bannerSection.tsx
index 64c8d246c8..5dc99eecf0 100644
--- a/microsite/src/components/bannerSection/bannerSection.tsx
+++ b/microsite/src/components/bannerSection/bannerSection.tsx
@@ -6,6 +6,8 @@ import bannerStyles from './bannerSection.module.scss';
export type IBannerSectionProps = PropsWithChildren<{
className?: string;
greyBackground?: boolean;
+ diagonalBorder?: boolean;
+ diagonalBottomBorder?: boolean;
greenGradientBackground?: boolean;
greenBottomGradientBackground?: boolean;
greenCallToActionGradientBackground?: boolean;
@@ -15,6 +17,8 @@ export const BannerSection = ({
children,
className,
greyBackground = false,
+ diagonalBorder = false,
+ diagonalBottomBorder = false,
greenGradientBackground = false,
greenBottomGradientBackground = false,
greenCallToActionGradientBackground = false,
@@ -22,6 +26,8 @@ export const BannerSection = ({
{
return (
-
+
{
-
+
@@ -199,7 +199,7 @@ const Community = () => {
-
+
Community initiatives}
>
@@ -223,7 +223,7 @@ const Community = () => {
-
+
Trainings and Certifications
diff --git a/microsite/src/pages/demos/index.tsx b/microsite/src/pages/demos/index.tsx
index 2ca77e5c89..1221c38a63 100644
--- a/microsite/src/pages/demos/index.tsx
+++ b/microsite/src/pages/demos/index.tsx
@@ -167,6 +167,8 @@ const Demos = () => {
{demoItems.map((demoItem, index) => (
0 && index < demoItems.length - 1}
greyBackground={index % 2 === 0}
className={demosStyles.banner}
>
diff --git a/microsite/src/pages/getting-involved/index.tsx b/microsite/src/pages/getting-involved/index.tsx
new file mode 100644
index 0000000000..d838f5d25b
--- /dev/null
+++ b/microsite/src/pages/getting-involved/index.tsx
@@ -0,0 +1,6 @@
+import React from 'react';
+import { Redirect } from '@docusaurus/router';
+
+export default () => {
+ return ;
+};
diff --git a/microsite/src/pages/home/_home.tsx b/microsite/src/pages/home/_home.tsx
index ea22062d28..deb0d4cd6f 100644
--- a/microsite/src/pages/home/_home.tsx
+++ b/microsite/src/pages/home/_home.tsx
@@ -28,7 +28,7 @@ const HomePage = () => {
return (
-
+
{
-
+
{
-
+
{
-
+
Learn more about the software catalog
@@ -196,7 +196,7 @@ const HomePage = () => {
-
+
{
-
+
Build your own software templates
@@ -260,7 +260,7 @@ const HomePage = () => {
-
+
{
-
+
Learn more about TechDocs
@@ -320,7 +320,7 @@ const HomePage = () => {
-
+
{
-
+
Learn more about Backstage Search
@@ -381,7 +381,7 @@ const HomePage = () => {
-
+
{
-
+
Learn more about the K8s plugin
@@ -437,7 +437,7 @@ const HomePage = () => {
-
+
{
-
+
Build a plugin
diff --git a/microsite/src/pages/home/home.module.scss b/microsite/src/pages/home/home.module.scss
index 57f2b9acde..5877f7b5f5 100644
--- a/microsite/src/pages/home/home.module.scss
+++ b/microsite/src/pages/home/home.module.scss
@@ -1,4 +1,4 @@
-$desktopUpBreakpoint: 997px;
+@use '../../theme/variables.scss';
.homePage {
font-size: 1.25rem;
@@ -70,7 +70,7 @@ $desktopUpBreakpoint: 997px;
}
.catalogContainer {
- @media (min-width: $desktopUpBreakpoint) {
+ @media (min-width: variables.$desktopUpBreakpoint) {
grid-template-columns: repeat(4, 1fr);
picture {
@@ -85,7 +85,7 @@ $desktopUpBreakpoint: 997px;
}
.softwareTemplatesContainer {
- @media (min-width: $desktopUpBreakpoint) {
+ @media (min-width: variables.$desktopUpBreakpoint) {
grid: repeat(2, auto) / repeat(4, 1fr);
picture {
diff --git a/microsite/src/pages/plugins/_pluginCard.tsx b/microsite/src/pages/plugins/_pluginCard.tsx
index 99f27b865d..d6b4017db5 100644
--- a/microsite/src/pages/plugins/_pluginCard.tsx
+++ b/microsite/src/pages/plugins/_pluginCard.tsx
@@ -35,9 +35,7 @@ export const PluginCard = ({
by
{author}
-
- {category}
-
+
{category}
>
}
body={
{description}
}
diff --git a/microsite/src/pages/plugins/plugins.module.scss b/microsite/src/pages/plugins/plugins.module.scss
index d21444583a..bb08c2fd33 100644
--- a/microsite/src/pages/plugins/plugins.module.scss
+++ b/microsite/src/pages/plugins/plugins.module.scss
@@ -30,4 +30,8 @@
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
+
+ :global(.fit-content) {
+ width: fit-content;
+ }
}
diff --git a/microsite/src/css/customTheme.css b/microsite/src/theme/customTheme.scss
similarity index 100%
rename from microsite/src/css/customTheme.css
rename to microsite/src/theme/customTheme.scss
diff --git a/microsite/src/theme/variables.scss b/microsite/src/theme/variables.scss
new file mode 100644
index 0000000000..3d74e59c9c
--- /dev/null
+++ b/microsite/src/theme/variables.scss
@@ -0,0 +1,2 @@
+$xlUpBreakpoint: 1441px;
+$desktopUpBreakpoint: 997px;
diff --git a/microsite/static/img/github-statusneo.png b/microsite/static/img/github-statusneo.png
new file mode 100644
index 0000000000..927ace351a
Binary files /dev/null and b/microsite/static/img/github-statusneo.png differ
diff --git a/microsite/static/img/outlook-statusneo.png b/microsite/static/img/outlook-statusneo.png
new file mode 100644
index 0000000000..99e3b6a0bc
Binary files /dev/null and b/microsite/static/img/outlook-statusneo.png differ
diff --git a/microsite/yarn.lock b/microsite/yarn.lock
index a6393e7386..49958eddb4 100644
--- a/microsite/yarn.lock
+++ b/microsite/yarn.lock
@@ -2623,90 +2623,90 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-arm64@npm:1.3.38"
+"@swc/core-darwin-arm64@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-darwin-arm64@npm:1.3.41"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-darwin-x64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-x64@npm:1.3.38"
+"@swc/core-darwin-x64@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-darwin-x64@npm:1.3.41"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@swc/core-linux-arm-gnueabihf@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.38"
+"@swc/core-linux-arm-gnueabihf@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.41"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@swc/core-linux-arm64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.38"
+"@swc/core-linux-arm64-gnu@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm64-gnu@npm:1.3.41"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-arm64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.38"
+"@swc/core-linux-arm64-musl@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm64-musl@npm:1.3.41"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-linux-x64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.38"
+"@swc/core-linux-x64-gnu@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-x64-gnu@npm:1.3.41"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-x64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-musl@npm:1.3.38"
+"@swc/core-linux-x64-musl@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-x64-musl@npm:1.3.41"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-win32-arm64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.38"
+"@swc/core-win32-arm64-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-arm64-msvc@npm:1.3.41"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-win32-ia32-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.38"
+"@swc/core-win32-ia32-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-ia32-msvc@npm:1.3.41"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@swc/core-win32-x64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.38"
+"@swc/core-win32-x64-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-x64-msvc@npm:1.3.41"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.36":
- version: 1.3.38
- resolution: "@swc/core@npm:1.3.38"
+ version: 1.3.41
+ resolution: "@swc/core@npm:1.3.41"
dependencies:
- "@swc/core-darwin-arm64": 1.3.38
- "@swc/core-darwin-x64": 1.3.38
- "@swc/core-linux-arm-gnueabihf": 1.3.38
- "@swc/core-linux-arm64-gnu": 1.3.38
- "@swc/core-linux-arm64-musl": 1.3.38
- "@swc/core-linux-x64-gnu": 1.3.38
- "@swc/core-linux-x64-musl": 1.3.38
- "@swc/core-win32-arm64-msvc": 1.3.38
- "@swc/core-win32-ia32-msvc": 1.3.38
- "@swc/core-win32-x64-msvc": 1.3.38
+ "@swc/core-darwin-arm64": 1.3.41
+ "@swc/core-darwin-x64": 1.3.41
+ "@swc/core-linux-arm-gnueabihf": 1.3.41
+ "@swc/core-linux-arm64-gnu": 1.3.41
+ "@swc/core-linux-arm64-musl": 1.3.41
+ "@swc/core-linux-x64-gnu": 1.3.41
+ "@swc/core-linux-x64-musl": 1.3.41
+ "@swc/core-win32-arm64-msvc": 1.3.41
+ "@swc/core-win32-ia32-msvc": 1.3.41
+ "@swc/core-win32-x64-msvc": 1.3.41
dependenciesMeta:
"@swc/core-darwin-arm64":
optional: true
@@ -2728,7 +2728,7 @@ __metadata:
optional: true
"@swc/core-win32-x64-msvc":
optional: true
- checksum: c55d30e57638bcd21f788add8490c3f3e71bfe027aa5a8b153e1b1b9686ecddd6deeaaa6a6b17717c7eab4c1e2a232b465b6755b6c891506fc0d03139badfbf7
+ checksum: e2d2bd2d1821608bfafab66f7b94d31b4ae3f486ad6d18aa30abca961299431a26ab2dfc04a7e614f8b8f6680d9790f0596f43e18d0b794e2802136c1d5e3376
languageName: node
linkType: hard
@@ -2756,9 +2756,9 @@ __metadata:
linkType: hard
"@tsconfig/docusaurus@npm:^1.0.6":
- version: 1.0.6
- resolution: "@tsconfig/docusaurus@npm:1.0.6"
- checksum: fb0d7965c01fe64fc6369a72695b903d654bd5fb145f373d707c2bae3c2d828703517d812cef1c041ae44b108f44e52778b9d9837a54fdf782e68e6619a90a4d
+ version: 1.0.7
+ resolution: "@tsconfig/docusaurus@npm:1.0.7"
+ checksum: 8f5b14005d90b2008f10daf03a5edec86d2a7603e5641c579ea936a5c2d165a8c3007a72254fc4c2adb0554d73062f52bb97b30ff818f01c9215957822f3c4db
languageName: node
linkType: hard
@@ -10890,8 +10890,8 @@ __metadata:
linkType: hard
"webpack@npm:^5.73.0":
- version: 5.75.0
- resolution: "webpack@npm:5.75.0"
+ version: 5.76.2
+ resolution: "webpack@npm:5.76.2"
dependencies:
"@types/eslint-scope": ^3.7.3
"@types/estree": ^0.0.51
@@ -10922,7 +10922,7 @@ __metadata:
optional: true
bin:
webpack: bin/webpack.js
- checksum: 2bcc5f3c195f375944e8af2f00bf2feea39cb9fda5f763b0d1b00077f1c51783db25c94d3fae96a07dead9fa085e6ae7474417e5ab31719c9776ea5969ceb83a
+ checksum: 86db98299a175c371031449c26077e87b33acd8f45de7f7945ed4b9b37c8ca11bc5169af9c44743efccd4d55e08042a3aa3a3bc42aff831309a0821ffbcd395e
languageName: node
linkType: hard
diff --git a/package.json b/package.json
index 43a146e0a1..e4cb3ef1d3 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,7 @@
"@types/react": "^17",
"@types/react-dom": "^17"
},
- "version": "1.12.0-next.2",
+ "version": "1.12.0",
"dependencies": {
"@backstage/errors": "workspace:^",
"@manypkg/get-packages": "^1.1.3"
diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md
index 0b2b813d14..e388b3e4ad 100644
--- a/packages/app-defaults/CHANGELOG.md
+++ b/packages/app-defaults/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/app-defaults
+## 1.2.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/core-app-api@1.6.0
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-permission-react@0.4.11
+
## 1.2.1-next.2
### Patch Changes
diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json
index 873a2fa28f..31fb64a079 100644
--- a/packages/app-defaults/package.json
+++ b/packages/app-defaults/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/app-defaults",
"description": "Provides the default wiring of a Backstage App",
- "version": "1.2.1-next.2",
+ "version": "1.2.1",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md
index ac21cbad07..4b24b827b4 100644
--- a/packages/app/CHANGELOG.md
+++ b/packages/app/CHANGELOG.md
@@ -1,5 +1,74 @@
# example-app
+## 0.2.81
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-scaffolder-react@1.2.0
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-tech-insights@0.3.8
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/plugin-scaffolder@1.12.0
+ - @backstage/plugin-techdocs@1.6.0
+ - @backstage/plugin-explore@0.4.1
+ - @backstage/plugin-search@1.1.1
+ - @backstage/cli@0.22.4
+ - @backstage/plugin-kubernetes@0.7.9
+ - @backstage/plugin-tech-radar@0.6.2
+ - @backstage/plugin-microsoft-calendar@0.1.1
+ - @backstage/plugin-newrelic-dashboard@0.2.9
+ - @backstage/plugin-code-coverage@0.2.9
+ - @backstage/plugin-azure-sites@0.1.5
+ - @backstage/plugin-gcalendar@0.3.12
+ - @backstage/plugin-shortcuts@0.3.8
+ - @backstage/plugin-org@0.6.6
+ - @backstage/plugin-api-docs@0.9.1
+ - @backstage/plugin-stackstorm@0.1.0
+ - @backstage/plugin-circleci@0.3.16
+ - @backstage/plugin-playlist@0.1.7
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-cost-insights@0.12.5
+ - @backstage/plugin-jenkins@0.7.15
+ - @backstage/core-app-api@1.6.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/plugin-airbrake@0.3.16
+ - @backstage/plugin-apache-airflow@0.2.9
+ - @backstage/plugin-azure-devops@0.2.7
+ - @backstage/plugin-badges@0.2.40
+ - @backstage/plugin-catalog-import@0.9.6
+ - @backstage/plugin-cloudbuild@0.3.16
+ - @backstage/plugin-dynatrace@3.0.0
+ - @backstage/plugin-entity-feedback@0.1.1
+ - @backstage/plugin-gcp-projects@0.3.35
+ - @backstage/plugin-github-actions@0.5.16
+ - @backstage/plugin-gocd@0.1.22
+ - @backstage/plugin-graphiql@0.2.48
+ - @backstage/plugin-home@0.4.32
+ - @backstage/plugin-kafka@0.3.16
+ - @backstage/plugin-lighthouse@0.4.1
+ - @backstage/plugin-linguist@0.1.1
+ - @backstage/plugin-newrelic@0.3.34
+ - @backstage/plugin-pagerduty@0.5.9
+ - @backstage/plugin-rollbar@0.4.16
+ - @backstage/plugin-sentry@0.5.1
+ - @backstage/plugin-stack-overflow@0.1.12
+ - @backstage/plugin-techdocs-module-addons-contrib@1.0.11
+ - @backstage/plugin-todo@0.2.18
+ - @backstage/plugin-user-settings@0.7.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @internal/plugin-catalog-customized@0.0.8
+ - @backstage/plugin-catalog-graph@0.2.28
+ - @backstage/app-defaults@1.2.1
+ - @backstage/plugin-linguist-common@0.1.0
+ - @backstage/plugin-permission-react@0.4.11
+ - @backstage/plugin-search-common@1.2.2
+
## 0.2.81-next.2
### Patch Changes
diff --git a/packages/app/package.json b/packages/app/package.json
index c51f8be911..a5a420c621 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -1,6 +1,6 @@
{
"name": "example-app",
- "version": "0.2.81-next.2",
+ "version": "0.2.81",
"private": true,
"backstage": {
"role": "frontend"
diff --git a/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx b/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx
index 638fe8bc29..9cf2e8ab35 100644
--- a/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx
+++ b/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx
@@ -19,7 +19,7 @@ import {
HomePageCompanyLogo,
HomePageStarredEntities,
TemplateBackstageLogo,
- TemplateBackstageLogoIcon
+ TemplateBackstageLogoIcon,
} from '@backstage/plugin-home';
import { wrapInTestApp, TestApiProvider } from '@backstage/test-utils';
import { Content, Page, InfoCard } from '@backstage/core-components';
@@ -31,12 +31,12 @@ import {
} from '@backstage/plugin-catalog-react';
import { configApiRef } from '@backstage/core-plugin-api';
import { ConfigReader } from '@backstage/config';
+import { HomePageSearchBar, searchPlugin } from '@backstage/plugin-search';
import {
- HomePageSearchBar,
- searchPlugin,
-} from '@backstage/plugin-search';
-import { searchApiRef, SearchContextProvider } from '@backstage/plugin-search-react';
-import { HomePageStackOverflowQuestions } from '@backstage/plugin-stack-overflow';
+ searchApiRef,
+ SearchContextProvider,
+} from '@backstage/plugin-search-react';
+import { stackOverflowApiRef, HomePageStackOverflowQuestions } from '@backstage/plugin-stack-overflow';
import { Grid, makeStyles } from '@material-ui/core';
import React, { ComponentType } from 'react';
@@ -79,6 +79,25 @@ const mockCatalogApi = {
getEntities: async () => ({ items: entities }),
};
+const mockStackOverflowApi = {
+ listQuestions: async () => [
+ {
+ title: 'Customizing Spotify backstage UI',
+ link: 'stackoverflow.question/1',
+ answer_count: 0,
+ tags: ['backstage'],
+ owner: { 'some owner': 'name' },
+ },
+ {
+ title: 'Customizing Spotify backstage UI',
+ link: 'stackoverflow.question/1',
+ answer_count: 0,
+ tags: ['backstage'],
+ owner: { 'some owner': 'name' },
+ },
+ ],
+};
+
const starredEntitiesApi = new MockStarredEntitiesApi();
starredEntitiesApi.toggleStarred('component:default/example-starred-entity');
starredEntitiesApi.toggleStarred('component:default/example-starred-entity-2');
@@ -93,6 +112,7 @@ export default {
<>
Promise.resolve({ results: [] }) }],
diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md
index 6ea78e983f..1e587b94a3 100644
--- a/packages/backend-app-api/CHANGELOG.md
+++ b/packages/backend-app-api/CHANGELOG.md
@@ -1,5 +1,24 @@
# @backstage/backend-app-api
+## 0.4.1
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 482dae5de1c: Updated link to docs.
+- 915e46622cf: Add support for `NotImplementedError`, properly returning 501 as status code.
+- Updated dependencies
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config-loader@1.1.9
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.4.1-next.2
### Patch Changes
diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json
index f59e39ef09..8ed273b451 100644
--- a/packages/backend-app-api/package.json
+++ b/packages/backend-app-api/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-app-api",
"description": "Core API used by Backstage backend apps",
- "version": "0.4.1-next.2",
+ "version": "0.4.1",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md
index 06968a3c8a..8d73268bc1 100644
--- a/packages/backend-common/CHANGELOG.md
+++ b/packages/backend-common/CHANGELOG.md
@@ -1,5 +1,42 @@
# @backstage/backend-common
+## 0.18.3
+
+### Patch Changes
+
+- f75097868a7: Adds config option `backend.database.role` to set ownership for newly created schemas and tables in Postgres
+
+ The example config below connects to the database as user `v-backstage-123` but sets the ownership of
+ the create schemas and tables to `backstage`
+
+ ```yaml
+ backend:
+ database:
+ client: pg
+ pluginDivisionMode: schema
+ role: backstage
+ connection:
+ user: v-backstage-123
+ ...
+ ```
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 87f0bbec175: AwsS3UrlReader upgraded to use aws-sdk v3
+- c1ee073a82b: Added `lastModifiedAt` field on `UrlReaderService` responses and a `lastModifiedAfter` option to `UrlReaderService.readUrl`.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/backend-app-api@0.4.1
+ - @backstage/config-loader@1.1.9
+ - @backstage/integration@1.4.3
+ - @backstage/backend-dev-utils@0.1.1
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+ - @backstage/integration-aws-node@0.1.2
+ - @backstage/types@1.0.2
+
## 0.18.3-next.2
### Patch Changes
diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md
index ebdd7315c9..f1d8a74dbe 100644
--- a/packages/backend-common/api-report.md
+++ b/packages/backend-common/api-report.md
@@ -301,6 +301,7 @@ export class FetchUrlReader implements UrlReader {
export type FromReadableArrayOptions = Array<{
data: Readable;
path: string;
+ lastModifiedAt?: Date;
}>;
// @public
@@ -635,6 +636,7 @@ export class ReadUrlResponseFactory {
// @public
export type ReadUrlResponseFactoryFromStreamOptions = {
etag?: string;
+ lastModifiedAt?: Date;
};
// @public
diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json
index beee72c860..5d54e5ae12 100644
--- a/packages/backend-common/package.json
+++ b/packages/backend-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-common",
"description": "Common functionality library for Backstage backends",
- "version": "0.18.3-next.2",
+ "version": "0.18.3",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
index 0bd4d2636f..b37a052c1d 100644
--- a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
+++ b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts
@@ -297,23 +297,26 @@ describe('AwsS3UrlReader', () => {
),
),
ETag: '123abc',
+ LastModified: new Date('2020-01-01T00:00:00Z'),
});
});
it('returns contents of an object in a bucket via buffer', async () => {
- const { buffer, etag } = await reader.readUrl(
+ const { buffer, etag, lastModifiedAt } = await reader.readUrl(
'https://test-bucket.s3.us-east-2.amazonaws.com/awsS3-mock-object.yaml',
);
expect(etag).toBe('123abc');
+ expect(lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
const response = await buffer();
expect(response.toString().trim()).toBe('site_name: Test');
});
it('returns contents of an object in a bucket via stream', async () => {
- const { buffer, etag } = await reader.readUrl(
+ const { buffer, etag, lastModifiedAt } = await reader.readUrl(
'https://test-bucket.s3.us-east-2.amazonaws.com/awsS3-mock-object.yaml',
);
expect(etag).toBe('123abc');
+ expect(lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
const response = await buffer();
expect(response.toString().trim()).toBe('site_name: Test');
});
@@ -403,6 +406,41 @@ describe('AwsS3UrlReader', () => {
});
});
+ describe('readUrl with lastModifiedAfter', () => {
+ const [{ reader }] = createReader({
+ integrations: {
+ awsS3: [
+ {
+ host: 'amazonaws.com',
+ accessKeyId: 'fake-access-key',
+ secretAccessKey: 'fake-secret-key',
+ },
+ ],
+ },
+ });
+
+ beforeEach(() => {
+ s3Client.reset();
+ const t = new S3ServiceException({
+ name: '304',
+ $fault: 'client',
+ $metadata: { httpStatusCode: 304 },
+ });
+ s3Client.on(GetObjectCommand).rejects(t);
+ });
+
+ it('returns contents of an object in a bucket', async () => {
+ await expect(
+ reader.readUrl!(
+ 'https://test-bucket.s3.us-east-2.amazonaws.com/awsS3-mock-object.yaml',
+ {
+ lastModifiedAfter: new Date('2020-01-01T00:00:00Z'),
+ },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+ });
+
describe('readTree', () => {
let awsS3UrlReader: AwsS3UrlReader;
diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.ts b/packages/backend-common/src/reading/AwsS3UrlReader.ts
index d06e2d0ad6..4d4c28071f 100644
--- a/packages/backend-common/src/reading/AwsS3UrlReader.ts
+++ b/packages/backend-common/src/reading/AwsS3UrlReader.ts
@@ -41,6 +41,7 @@ import {
ListObjectsV2Command,
ListObjectsV2CommandOutput,
GetObjectCommand,
+ GetObjectCommandInput,
} from '@aws-sdk/client-s3';
import { AbortController } from '@aws-sdk/abort-controller';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
@@ -253,6 +254,8 @@ export class AwsS3UrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
+ const { etag, lastModifiedAfter } = options ?? {};
+
try {
const { path, bucket, region } = parseUrl(url, this.integration.config);
const s3Client = await this.buildS3Client(
@@ -262,19 +265,15 @@ export class AwsS3UrlReader implements UrlReader {
);
const abortController = new AbortController();
- let params;
- if (options?.etag) {
- params = {
- Bucket: bucket,
- Key: path,
- IfNoneMatch: options.etag,
- };
- } else {
- params = {
- Bucket: bucket,
- Key: path,
- };
- }
+ const params: GetObjectCommandInput = {
+ Bucket: bucket,
+ Key: path,
+ ...(etag && { IfNoneMatch: etag }),
+ ...(lastModifiedAfter && {
+ IfModifiedSince: lastModifiedAfter,
+ }),
+ };
+
options?.signal?.addEventListener('abort', () => abortController.abort());
const getObjectCommand = new GetObjectCommand(params);
const response = await s3Client.send(getObjectCommand, {
@@ -284,10 +283,10 @@ export class AwsS3UrlReader implements UrlReader {
const s3ObjectData = await this.retrieveS3ObjectData(
response.Body as Readable,
);
- const etag = response.ETag;
return ReadUrlResponseFactory.fromReadable(s3ObjectData, {
- etag: etag,
+ etag: response.ETag,
+ lastModifiedAt: response.LastModified,
});
} catch (e) {
if (e.$metadata && e.$metadata.httpStatusCode === 304) {
@@ -347,6 +346,7 @@ export class AwsS3UrlReader implements UrlReader {
responses.push({
data: s3ObjectData,
path: String(allObjects[i]),
+ lastModifiedAt: response?.LastModified ?? undefined,
});
}
diff --git a/packages/backend-common/src/reading/AzureUrlReader.ts b/packages/backend-common/src/reading/AzureUrlReader.ts
index 08e3917b38..90cf8f29bd 100644
--- a/packages/backend-common/src/reading/AzureUrlReader.ts
+++ b/packages/backend-common/src/reading/AzureUrlReader.ts
@@ -192,6 +192,7 @@ export class AzureUrlReader implements UrlReader {
base: url,
}),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts b/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts
index ca6e15a005..c00aeba124 100644
--- a/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts
+++ b/packages/backend-common/src/reading/BitbucketCloudUrlReader.test.ts
@@ -156,6 +156,83 @@ describe('BitbucketCloudUrlReader', () => {
expect(buffer.toString()).toBe('foo');
expect(result.etag).toBe('new-etag-value');
});
+
+ it('should be able to readUrl via buffer without If-Modified-Since', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-None-Match')).toBeNull();
+ return res(
+ ctx.status(200),
+ ctx.body('foo'),
+ ctx.set('ETag', 'etag-value'),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ );
+ },
+ ),
+ );
+
+ const result = await reader.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ );
+ const buffer = await result.buffer();
+ expect(result.lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
+ expect(buffer.toString()).toBe('foo');
+ });
+
+ it('should be throw not modified when If-Modified-Since returns a 304', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('1999 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(ctx.status(304));
+ },
+ ),
+ );
+
+ await expect(
+ reader.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ { lastModifiedAfter: new Date('1999 12 31 23:59:59 GMT') },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
+ it('should be able to readUrl when If-Modified-Since is before Last-Modified', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('1999 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(
+ ctx.status(200),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ ctx.body('foo'),
+ );
+ },
+ ),
+ );
+
+ const result = await reader.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ { lastModifiedAfter: new Date('1999 12 31 23:59:59 GMT') },
+ );
+ const buffer = await result.buffer();
+ expect(buffer.toString()).toBe('foo');
+ expect(result.lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
+ });
});
describe('read', () => {
diff --git a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts b/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts
index b83e012423..1522b7678d 100644
--- a/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts
+++ b/packages/backend-common/src/reading/BitbucketCloudUrlReader.ts
@@ -40,6 +40,7 @@ import {
UrlReader,
} from './types';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket Cloud.
@@ -80,7 +81,7 @@ export class BitbucketCloudUrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
- const { etag, signal } = options ?? {};
+ const { etag, lastModifiedAfter, signal } = options ?? {};
const bitbucketUrl = getBitbucketCloudFileFetchUrl(
url,
this.integration.config,
@@ -95,6 +96,9 @@ export class BitbucketCloudUrlReader implements UrlReader {
headers: {
...requestOptions.headers,
...(etag && { 'If-None-Match': etag }),
+ ...(lastModifiedAfter && {
+ 'If-Modified-Since': lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -115,6 +119,9 @@ export class BitbucketCloudUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -184,6 +191,7 @@ export class BitbucketCloudUrlReader implements UrlReader {
base: url,
}),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts
index a97c3b39bb..2b6b5a1f8f 100644
--- a/packages/backend-common/src/reading/BitbucketServerUrlReader.ts
+++ b/packages/backend-common/src/reading/BitbucketServerUrlReader.ts
@@ -39,6 +39,7 @@ import {
UrlReader,
} from './types';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket Server APIs.
@@ -71,7 +72,7 @@ export class BitbucketServerUrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
- const { etag, signal } = options ?? {};
+ const { etag, lastModifiedAfter, signal } = options ?? {};
const bitbucketUrl = getBitbucketServerFileFetchUrl(
url,
this.integration.config,
@@ -86,6 +87,9 @@ export class BitbucketServerUrlReader implements UrlReader {
headers: {
...requestOptions.headers,
...(etag && { 'If-None-Match': etag }),
+ ...(lastModifiedAfter && {
+ 'If-Modified-Since': lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -106,6 +110,9 @@ export class BitbucketServerUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -175,6 +182,7 @@ export class BitbucketServerUrlReader implements UrlReader {
base: url,
}),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.test.ts b/packages/backend-common/src/reading/BitbucketUrlReader.test.ts
index 922480f8e7..15e007d516 100644
--- a/packages/backend-common/src/reading/BitbucketUrlReader.test.ts
+++ b/packages/backend-common/src/reading/BitbucketUrlReader.test.ts
@@ -204,6 +204,83 @@ describe('BitbucketUrlReader', () => {
expect(buffer.toString()).toBe('foo');
expect(result.etag).toBe('new-etag-value');
});
+
+ it('should be able to readUrl via buffer without If-Modified-Since', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-None-Match')).toBeNull();
+ return res(
+ ctx.status(200),
+ ctx.body('foo'),
+ ctx.set('ETag', 'etag-value'),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ );
+ },
+ ),
+ );
+
+ const result = await bitbucketProcessor.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ );
+ const buffer = await result.buffer();
+ expect(result.lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
+ expect(buffer.toString()).toBe('foo');
+ });
+
+ it('should be throw not modified when If-Modified-Since returns a 304', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('1999 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(ctx.status(304));
+ },
+ ),
+ );
+
+ await expect(
+ bitbucketProcessor.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ { lastModifiedAfter: new Date('1999 12 31 23:59:59 GMT') },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
+ it('should be able to readUrl when If-Modified-Since is before Last-Modified', async () => {
+ worker.use(
+ rest.get(
+ 'https://api.bitbucket.org/2.0/repositories/backstage-verification/test-template/src/master/template.yaml',
+ (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('1999 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(
+ ctx.status(200),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ ctx.body('foo'),
+ );
+ },
+ ),
+ );
+
+ const result = await bitbucketProcessor.readUrl(
+ 'https://bitbucket.org/backstage-verification/test-template/src/master/template.yaml',
+ { lastModifiedAfter: new Date('1999 12 31 23:59:59 GMT') },
+ );
+ const buffer = await result.buffer();
+ expect(buffer.toString()).toBe('foo');
+ expect(result.lastModifiedAt).toEqual(new Date('2020-01-01T00:00:00Z'));
+ });
});
describe('read', () => {
diff --git a/packages/backend-common/src/reading/BitbucketUrlReader.ts b/packages/backend-common/src/reading/BitbucketUrlReader.ts
index 01539594dd..3a34c725c6 100644
--- a/packages/backend-common/src/reading/BitbucketUrlReader.ts
+++ b/packages/backend-common/src/reading/BitbucketUrlReader.ts
@@ -41,6 +41,7 @@ import {
UrlReader,
} from './types';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files from Bitbucket v1 and v2 APIs, such
@@ -96,7 +97,7 @@ export class BitbucketUrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
- const { etag, signal } = options ?? {};
+ const { etag, lastModifiedAfter, signal } = options ?? {};
const bitbucketUrl = getBitbucketFileFetchUrl(url, this.integration.config);
const requestOptions = getBitbucketRequestOptions(this.integration.config);
@@ -106,6 +107,9 @@ export class BitbucketUrlReader implements UrlReader {
headers: {
...requestOptions.headers,
...(etag && { 'If-None-Match': etag }),
+ ...(lastModifiedAfter && {
+ 'If-Modified-Since': lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -126,6 +130,9 @@ export class BitbucketUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -195,6 +202,7 @@ export class BitbucketUrlReader implements UrlReader {
base: url,
}),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/FetchUrlReader.test.ts b/packages/backend-common/src/reading/FetchUrlReader.test.ts
index e45117a106..ad834c64ef 100644
--- a/packages/backend-common/src/reading/FetchUrlReader.test.ts
+++ b/packages/backend-common/src/reading/FetchUrlReader.test.ts
@@ -45,6 +45,21 @@ describe('FetchUrlReader', () => {
);
}
+ if (
+ req.headers.get('if-modified-since') &&
+ new Date(req.headers.get('if-modified-since') ?? '') <
+ new Date('2021-01-01T00:00:00Z')
+ ) {
+ return res(
+ ctx.status(304),
+ ctx.set('Content-Type', 'text/plain'),
+ ctx.set(
+ 'last-modified',
+ new Date('2021-01-01T00:00:00Z').toUTCString(),
+ ),
+ );
+ }
+
return res(
ctx.status(200),
ctx.set('Content-Type', 'text/plain'),
@@ -192,7 +207,7 @@ describe('FetchUrlReader', () => {
});
describe('readUrl', () => {
- it('should throw NotModified if server responds with 304', async () => {
+ it('should throw NotModified if server responds with 304 from etag', async () => {
await expect(
fetchUrlReader.readUrl('https://backstage.io/some-resource', {
etag: 'foo',
@@ -200,6 +215,14 @@ describe('FetchUrlReader', () => {
).rejects.toThrow(NotModifiedError);
});
+ it('should throw NotModified if server responds with 304 from lastModifiedAfter', async () => {
+ await expect(
+ fetchUrlReader.readUrl('https://backstage.io/some-resource', {
+ lastModifiedAfter: new Date('2020-01-01T00:00:00Z'),
+ }),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
it('should return etag from the response', async () => {
const response = await fetchUrlReader.readUrl(
'https://backstage.io/some-resource',
diff --git a/packages/backend-common/src/reading/FetchUrlReader.ts b/packages/backend-common/src/reading/FetchUrlReader.ts
index 20b78d63c3..90c1cf6c26 100644
--- a/packages/backend-common/src/reading/FetchUrlReader.ts
+++ b/packages/backend-common/src/reading/FetchUrlReader.ts
@@ -26,6 +26,7 @@ import {
} from './types';
import path from 'path';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
const isInRange = (num: number, [start, end]: [number, number]) => {
return num >= start && num <= end;
@@ -127,6 +128,9 @@ export class FetchUrlReader implements UrlReader {
response = await fetch(url, {
headers: {
...(options?.etag && { 'If-None-Match': options.etag }),
+ ...(options?.lastModifiedAfter && {
+ 'If-Modified-Since': options.lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -147,6 +151,9 @@ export class FetchUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
diff --git a/packages/backend-common/src/reading/GiteaUrlReader.test.ts b/packages/backend-common/src/reading/GiteaUrlReader.test.ts
index 6c8722d2e5..1860d9f461 100644
--- a/packages/backend-common/src/reading/GiteaUrlReader.test.ts
+++ b/packages/backend-common/src/reading/GiteaUrlReader.test.ts
@@ -25,7 +25,7 @@ import { UrlReaderPredicateTuple } from './types';
import { DefaultReadTreeResponseFactory } from './tree';
import getRawBody from 'raw-body';
import { GiteaUrlReader } from './GiteaUrlReader';
-import { NotFoundError } from '@backstage/errors';
+import { NotFoundError, NotModifiedError } from '@backstage/errors';
const treeResponseFactory = DefaultReadTreeResponseFactory.create({
config: new ConfigReader({}),
@@ -200,5 +200,51 @@ describe('GiteaUrlReader', () => {
'https://gitea.com/owner/project/src/branch/branch2/LICENSE could not be read as https://gitea.com/api/v1/repos/owner/project/contents/LICENSE?ref=branch2, 500 Error!!!',
);
});
+
+ it('should throw NotModified if server responds with 304 from etag', async () => {
+ worker.use(
+ rest.get(
+ 'https://gitea.com/api/v1/repos/owner/project/contents/LICENSE',
+ (_, res, ctx) => {
+ return res(ctx.set('ETag', 'foo'), ctx.status(304, 'Error!!!'));
+ },
+ ),
+ );
+
+ await expect(
+ giteaProcessor.readUrl(
+ 'https://gitea.com/owner/project/src/branch/branch2/LICENSE',
+ {
+ etag: 'foo',
+ },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
+ it('should throw NotModified if server responds with 304 from lastModifiedAfter', async () => {
+ worker.use(
+ rest.get(
+ 'https://gitea.com/api/v1/repos/owner/project/contents/LICENSE',
+ (_, res, ctx) => {
+ return res(
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020-01-01T00:00:00Z').toUTCString(),
+ ),
+ ctx.status(304, 'Error!!!'),
+ );
+ },
+ ),
+ );
+
+ await expect(
+ giteaProcessor.readUrl(
+ 'https://gitea.com/owner/project/src/branch/branch2/LICENSE',
+ {
+ lastModifiedAfter: new Date('2020-01-01T00:00:00Z'),
+ },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
});
});
diff --git a/packages/backend-common/src/reading/GiteaUrlReader.ts b/packages/backend-common/src/reading/GiteaUrlReader.ts
index 1471bab608..34542e878e 100644
--- a/packages/backend-common/src/reading/GiteaUrlReader.ts
+++ b/packages/backend-common/src/reading/GiteaUrlReader.ts
@@ -34,6 +34,7 @@ import {
NotModifiedError,
} from '@backstage/errors';
import { Readable } from 'stream';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for the Gitea v1 api.
@@ -86,6 +87,9 @@ export class GiteaUrlReader implements UrlReader {
Readable.from(Buffer.from(content, 'base64')),
{
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
},
);
}
diff --git a/packages/backend-common/src/reading/GithubUrlReader.test.ts b/packages/backend-common/src/reading/GithubUrlReader.test.ts
index 2315d1f9e8..1ee25920f2 100644
--- a/packages/backend-common/src/reading/GithubUrlReader.test.ts
+++ b/packages/backend-common/src/reading/GithubUrlReader.test.ts
@@ -247,7 +247,7 @@ describe('GithubUrlReader', () => {
).rejects.toThrow(/rate limit exceeded/);
});
- it('should return etag from the response', async () => {
+ it('should return etag and last-modified from the response', async () => {
(mockCredentialsProvider.getCredentials as jest.Mock).mockResolvedValue({
headers: {
Authorization: 'bearer blah',
@@ -261,6 +261,11 @@ describe('GithubUrlReader', () => {
return res(
ctx.status(200),
ctx.set('Etag', 'foo'),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2021-01-01T00:00:00Z').toUTCString(),
+ ),
+
ctx.body('bar'),
);
},
@@ -271,6 +276,7 @@ describe('GithubUrlReader', () => {
'https://github.com/backstage/mock/tree/blob/main',
);
expect(response.etag).toBe('foo');
+ expect(response.lastModifiedAt).toEqual(new Date('2021-01-01T00:00:00Z'));
});
});
diff --git a/packages/backend-common/src/reading/GithubUrlReader.ts b/packages/backend-common/src/reading/GithubUrlReader.ts
index d91c35621d..ee781daf0b 100644
--- a/packages/backend-common/src/reading/GithubUrlReader.ts
+++ b/packages/backend-common/src/reading/GithubUrlReader.ts
@@ -40,6 +40,7 @@ import {
ReadUrlResponse,
} from './types';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
export type GhRepoResponse =
RestEndpointMethodTypes['repos']['get']['response']['data'];
@@ -109,6 +110,9 @@ export class GithubUrlReader implements UrlReader {
headers: {
...credentials?.headers,
...(options?.etag && { 'If-None-Match': options.etag }),
+ ...(options?.lastModifiedAfter && {
+ 'If-Modified-Since': options.lastModifiedAfter.toUTCString(),
+ }),
Accept: 'application/vnd.github.v3.raw',
},
// TODO(freben): The signal cast is there because pre-3.x versions of
@@ -130,6 +134,9 @@ export class GithubUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -290,6 +297,7 @@ export class GithubUrlReader implements UrlReader {
return files.map(file => ({
url: pathToUrl(file.path),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
}));
}
diff --git a/packages/backend-common/src/reading/GitlabUrlReader.test.ts b/packages/backend-common/src/reading/GitlabUrlReader.test.ts
index 3751ee868e..d926b2be9b 100644
--- a/packages/backend-common/src/reading/GitlabUrlReader.test.ts
+++ b/packages/backend-common/src/reading/GitlabUrlReader.test.ts
@@ -184,7 +184,7 @@ describe('GitlabUrlReader', () => {
treeResponseFactory,
});
- it('should throw NotModified on HTTP 304', async () => {
+ it('should throw NotModified on HTTP 304 from etag', async () => {
worker.use(
rest.get('*/api/v4/projects/:name', (_, res, ctx) =>
res(ctx.status(200), ctx.json({ id: 12345 })),
@@ -205,13 +205,44 @@ describe('GitlabUrlReader', () => {
).rejects.toThrow(NotModifiedError);
});
- it('should return etag in response', async () => {
+ it('should throw NotModified on HTTP 304 from lastModifiedAt', async () => {
+ worker.use(
+ rest.get('*/api/v4/projects/:name', (_, res, ctx) =>
+ res(ctx.status(200), ctx.json({ id: 12345 })),
+ ),
+ rest.get('*', (req, res, ctx) => {
+ expect(req.headers.get('If-Modified-Since')).toBe(
+ new Date('2019 12 31 23:59:59 GMT').toUTCString(),
+ );
+ return res(ctx.status(304));
+ }),
+ );
+
+ await expect(
+ reader.readUrl!(
+ 'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml',
+ {
+ lastModifiedAfter: new Date('2019 12 31 23:59:59 GMT'),
+ },
+ ),
+ ).rejects.toThrow(NotModifiedError);
+ });
+
+ it('should return etag and last-modified in response', async () => {
worker.use(
rest.get('*/api/v4/projects/:name', (_, res, ctx) =>
res(ctx.status(200), ctx.json({ id: 12345 })),
),
rest.get('*', (_req, res, ctx) => {
- return res(ctx.status(200), ctx.set('ETag', '999'), ctx.body('foo'));
+ return res(
+ ctx.status(200),
+ ctx.set('ETag', '999'),
+ ctx.set(
+ 'Last-Modified',
+ new Date('2020 01 01 00:0:00 GMT').toUTCString(),
+ ),
+ ctx.body('foo'),
+ );
}),
);
@@ -219,6 +250,7 @@ describe('GitlabUrlReader', () => {
'https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/my/path/to/file.yaml',
);
expect(result.etag).toBe('999');
+ expect(result.lastModifiedAt).toEqual(new Date('2020 01 01 00:0:00 GMT'));
const content = await result.buffer();
expect(content.toString()).toBe('foo');
});
diff --git a/packages/backend-common/src/reading/GitlabUrlReader.ts b/packages/backend-common/src/reading/GitlabUrlReader.ts
index bebc7453d0..df8441c1f7 100644
--- a/packages/backend-common/src/reading/GitlabUrlReader.ts
+++ b/packages/backend-common/src/reading/GitlabUrlReader.ts
@@ -40,6 +40,7 @@ import {
} from './types';
import { trimEnd, trimStart } from 'lodash';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
+import { parseLastModified } from './util';
/**
* Implements a {@link @backstage/backend-plugin-api#UrlReaderService} for files on GitLab.
@@ -72,7 +73,7 @@ export class GitlabUrlReader implements UrlReader {
url: string,
options?: ReadUrlOptions,
): Promise {
- const { etag, signal } = options ?? {};
+ const { etag, lastModifiedAfter, signal } = options ?? {};
const builtUrl = await this.getGitlabFetchUrl(url);
let response: Response;
@@ -81,6 +82,9 @@ export class GitlabUrlReader implements UrlReader {
headers: {
...getGitLabRequestOptions(this.integration.config).headers,
...(etag && { 'If-None-Match': etag }),
+ ...(lastModifiedAfter && {
+ 'If-Modified-Since': lastModifiedAfter.toUTCString(),
+ }),
},
// TODO(freben): The signal cast is there because pre-3.x versions of
// node-fetch have a very slightly deviating AbortSignal type signature.
@@ -101,6 +105,9 @@ export class GitlabUrlReader implements UrlReader {
if (response.ok) {
return ReadUrlResponseFactory.fromNodeJSReadable(response.body, {
etag: response.headers.get('ETag') ?? undefined,
+ lastModifiedAt: parseLastModified(
+ response.headers.get('Last-Modified'),
+ ),
});
}
@@ -247,6 +254,7 @@ export class GitlabUrlReader implements UrlReader {
files: files.map(file => ({
url: this.integration.resolveUrl({ url: `/${file.path}`, base: url }),
content: file.content,
+ lastModifiedAt: file.lastModifiedAt,
})),
};
}
diff --git a/packages/backend-common/src/reading/ReadUrlResponseFactory.ts b/packages/backend-common/src/reading/ReadUrlResponseFactory.ts
index 91d1939c24..69b9c6c16a 100644
--- a/packages/backend-common/src/reading/ReadUrlResponseFactory.ts
+++ b/packages/backend-common/src/reading/ReadUrlResponseFactory.ts
@@ -61,6 +61,7 @@ export class ReadUrlResponseFactory {
return stream;
},
etag: options?.etag,
+ lastModifiedAt: options?.lastModifiedAt,
};
}
diff --git a/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts b/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts
index eabaa3bc56..1429931142 100644
--- a/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts
+++ b/packages/backend-common/src/reading/tree/ReadableArrayResponse.ts
@@ -63,6 +63,7 @@ export class ReadableArrayResponse implements ReadTreeResponse {
files.push({
path: this.stream[i].path,
content: () => getRawBody(this.stream[i].data),
+ lastModifiedAt: this.stream[i]?.lastModifiedAt,
});
}
}
diff --git a/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts b/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts
index f0cbc6a612..1765a41156 100644
--- a/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts
+++ b/packages/backend-common/src/reading/tree/TarArchiveResponse.test.ts
@@ -45,10 +45,12 @@ describe('TarArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
{
path: 'docs/index.md',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
]);
const contents = await Promise.all(files.map(f => f.content()));
@@ -70,6 +72,7 @@ describe('TarArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
]);
const content = await files[0].content();
@@ -93,10 +96,12 @@ describe('TarArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
{
path: 'docs/index.md',
content: expect.any(Function),
+ lastModifiedAt: undefined,
},
]);
const contents = await Promise.all(files.map(f => f.content()));
diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts b/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts
index e45a25db66..0b010565dd 100644
--- a/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts
+++ b/packages/backend-common/src/reading/tree/ZipArchiveResponse.test.ts
@@ -59,10 +59,12 @@ describe('ZipArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
{
path: 'docs/index.md',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
]);
@@ -85,6 +87,7 @@ describe('ZipArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
]);
const content = await files[0].content();
@@ -108,10 +111,12 @@ describe('ZipArchiveResponse', () => {
{
path: 'mkdocs.yml',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
{
path: 'docs/index.md',
content: expect.any(Function),
+ lastModifiedAt: expect.any(Date),
},
]);
const contents = await Promise.all(files.map(f => f.content()));
diff --git a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts
index 5a1c5f9688..1e55150310 100644
--- a/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts
+++ b/packages/backend-common/src/reading/tree/ZipArchiveResponse.ts
@@ -146,6 +146,9 @@ export class ZipArchiveResponse implements ReadTreeResponse {
files.push({
path: this.getInnerPath(entry.fileName),
content: async () => await streamToBuffer(content),
+ lastModifiedAt: entry.lastModFileTime
+ ? new Date(entry.lastModFileTime)
+ : undefined,
});
});
diff --git a/packages/backend-common/src/reading/types.ts b/packages/backend-common/src/reading/types.ts
index 35380029e2..7f4d407fd0 100644
--- a/packages/backend-common/src/reading/types.ts
+++ b/packages/backend-common/src/reading/types.ts
@@ -65,6 +65,7 @@ export type ReaderFactory = (options: {
*/
export type ReadUrlResponseFactoryFromStreamOptions = {
etag?: string;
+ lastModifiedAt?: Date;
};
/**
@@ -95,10 +96,16 @@ export type FromReadableArrayOptions = Array<{
* The raw data itself.
*/
data: Readable;
+
/**
* The filepath of the data.
*/
path: string;
+
+ /**
+ * Last modified date of the file contents.
+ */
+ lastModifiedAt?: Date;
}>;
/**
diff --git a/packages/backend-common/src/reading/util.ts b/packages/backend-common/src/reading/util.ts
new file mode 100644
index 0000000000..3d65c2c527
--- /dev/null
+++ b/packages/backend-common/src/reading/util.ts
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2022 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export function parseLastModified(value: string | null | undefined) {
+ if (!value) {
+ return undefined;
+ }
+
+ return new Date(value);
+}
diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md
index 7283ae89e2..edfc39bd91 100644
--- a/packages/backend-defaults/CHANGELOG.md
+++ b/packages/backend-defaults/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/backend-defaults
+## 0.1.8
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 482dae5de1c: Updated link to docs.
+- 5d0693edc09: Added a workaround for the cyclic dependency bug across `@backstage/backend-common` and `@backstage/backend-app-api`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/backend-app-api@0.4.1
+
## 0.1.8-next.2
### Patch Changes
diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json
index 2ae0074849..2759c3c089 100644
--- a/packages/backend-defaults/package.json
+++ b/packages/backend-defaults/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-defaults",
"description": "Backend defaults used by Backstage backend apps",
- "version": "0.1.8-next.2",
+ "version": "0.1.8",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-dev-utils/CHANGELOG.md b/packages/backend-dev-utils/CHANGELOG.md
index 84a1cbc3f1..6b505e917e 100644
--- a/packages/backend-dev-utils/CHANGELOG.md
+++ b/packages/backend-dev-utils/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/backend-dev-utils
+## 0.1.1
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+
## 0.1.1-next.0
### Patch Changes
diff --git a/packages/backend-dev-utils/package.json b/packages/backend-dev-utils/package.json
index 9fea6a34cf..0928032977 100644
--- a/packages/backend-dev-utils/package.json
+++ b/packages/backend-dev-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/backend-dev-utils",
- "version": "0.1.1-next.0",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md
index 91ded2391f..e51c65963d 100644
--- a/packages/backend-next/CHANGELOG.md
+++ b/packages/backend-next/CHANGELOG.md
@@ -1,5 +1,17 @@
# example-backend-next
+## 0.0.9
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/plugin-todo-backend@0.1.40
+ - @backstage/plugin-techdocs-backend@1.6.0
+ - @backstage/backend-defaults@0.1.8
+ - @backstage/plugin-app-backend@0.3.43
+
## 0.0.9-next.2
### Patch Changes
diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json
index 9f7ec8306a..14ec71f352 100644
--- a/packages/backend-next/package.json
+++ b/packages/backend-next/package.json
@@ -1,6 +1,6 @@
{
"name": "example-backend-next",
- "version": "0.0.9-next.2",
+ "version": "0.0.9",
"main": "dist/index.cjs.js",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -29,6 +29,7 @@
"@backstage/plugin-app-backend": "workspace:^",
"@backstage/plugin-catalog-backend": "workspace:^",
"@backstage/plugin-scaffolder-backend": "workspace:^",
+ "@backstage/plugin-techdocs-backend": "workspace:^",
"@backstage/plugin-todo-backend": "workspace:^"
},
"devDependencies": {
diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts
index 8e29244ebf..8f8984b192 100644
--- a/packages/backend-next/src/index.ts
+++ b/packages/backend-next/src/index.ts
@@ -19,6 +19,7 @@ import { catalogModuleTemplateKind } from '@backstage/plugin-scaffolder-backend/
import { createBackend } from '@backstage/backend-defaults';
import { appPlugin } from '@backstage/plugin-app-backend/alpha';
import { todoPlugin } from '@backstage/plugin-todo-backend';
+import { techdocsPlugin } from '@backstage/plugin-techdocs-backend/alpha';
const backend = createBackend();
@@ -26,4 +27,5 @@ backend.add(catalogPlugin());
backend.add(catalogModuleTemplateKind());
backend.add(appPlugin({ appPackageName: 'example-app' }));
backend.add(todoPlugin());
+backend.add(techdocsPlugin());
backend.start();
diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md
index 5125411eb6..dd78ffaca1 100644
--- a/packages/backend-plugin-api/CHANGELOG.md
+++ b/packages/backend-plugin-api/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/backend-plugin-api
+## 0.5.0
+
+### Minor Changes
+
+- c1ee073a82b: Added `lastModifiedAt` field on `UrlReaderService` responses and a `lastModifiedAfter` option to `UrlReaderService.readUrl`.
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.4.1-next.2
### Patch Changes
diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md
index 5e64502b78..7dc6ae97b3 100644
--- a/packages/backend-plugin-api/api-report.md
+++ b/packages/backend-plugin-api/api-report.md
@@ -359,11 +359,13 @@ export type ReadTreeResponseDirOptions = {
export type ReadTreeResponseFile = {
path: string;
content(): Promise;
+ lastModifiedAt?: Date;
};
// @public
export type ReadUrlOptions = {
etag?: string;
+ lastModifiedAfter?: Date;
signal?: AbortSignal;
};
@@ -372,6 +374,7 @@ export type ReadUrlResponse = {
buffer(): Promise;
stream?(): Readable;
etag?: string;
+ lastModifiedAt?: Date;
};
// @public (undocumented)
@@ -420,6 +423,7 @@ export type SearchResponse = {
export type SearchResponseFile = {
url: string;
content(): Promise;
+ lastModifiedAt?: Date;
};
// @public (undocumented)
diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json
index 4d97fdcd74..cc155fe546 100644
--- a/packages/backend-plugin-api/package.json
+++ b/packages/backend-plugin-api/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-plugin-api",
"description": "Core API used by Backstage backend plugins",
- "version": "0.4.1-next.2",
+ "version": "0.5.0",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts b/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts
index ef825a7fcd..c189b4a339 100644
--- a/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts
+++ b/packages/backend-plugin-api/src/services/definitions/UrlReaderService.ts
@@ -64,6 +64,26 @@ export type ReadUrlOptions = {
*/
etag?: string;
+ /**
+ * A date which can be provided to check whether a
+ * {@link UrlReaderService.readUrl} response has changed since the lastModifiedAt.
+ *
+ * @remarks
+ *
+ * In the {@link UrlReaderService.readUrl} response, an lastModifiedAt is returned
+ * along with data. The lastModifiedAt date represents the last time the data
+ * was modified.
+ *
+ * When an lastModifiedAfter is given in ReadUrlOptions, {@link UrlReaderService.readUrl}
+ * will compare the lastModifiedAfter against the lastModifiedAt of the target. If
+ * the data has not been modified since this date, the {@link UrlReaderService.readUrl}
+ * will throw a {@link @backstage/errors#NotModifiedError} indicating that the
+ * response does not contain any new data. If they do not match,
+ * {@link UrlReaderService.readUrl} will return the rest of the response along with new
+ * lastModifiedAt date.
+ */
+ lastModifiedAfter?: Date;
+
/**
* An abort signal to pass down to the underlying request.
*
@@ -102,6 +122,11 @@ export type ReadUrlResponse = {
* Can be used to compare and cache responses when doing subsequent calls.
*/
etag?: string;
+
+ /**
+ * Last modified date of the file contents.
+ */
+ lastModifiedAt?: Date;
};
/**
@@ -213,8 +238,20 @@ export type ReadTreeResponse = {
* @public
*/
export type ReadTreeResponseFile = {
+ /**
+ * The filepath of the data.
+ */
path: string;
+
+ /**
+ * The binary contents of the file.
+ */
content(): Promise;
+
+ /**
+ * The last modified timestamp of the data.
+ */
+ lastModifiedAt?: Date;
};
/**
@@ -278,4 +315,9 @@ export type SearchResponseFile = {
* The binary contents of the file.
*/
content(): Promise;
+
+ /**
+ * The last modified timestamp of the data.
+ */
+ lastModifiedAt?: Date;
};
diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md
index 7eb43c4677..dea40d399b 100644
--- a/packages/backend-tasks/CHANGELOG.md
+++ b/packages/backend-tasks/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/backend-tasks
+## 0.5.0
+
+### Minor Changes
+
+- 1578276708a: add functionality to get descriptions from the scheduler for triggering
+
+### Patch Changes
+
+- f0685193efa: Added the adapted query to mysql and sqlite3 databases to not returning warning on logs
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.5.0-next.2
### Minor Changes
diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json
index fa826067c8..5042ff735a 100644
--- a/packages/backend-tasks/package.json
+++ b/packages/backend-tasks/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-tasks",
"description": "Common distributed task management library for Backstage backends",
- "version": "0.5.0-next.2",
+ "version": "0.5.0",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md
index 3b20fe92d5..529c92d423 100644
--- a/packages/backend-test-utils/CHANGELOG.md
+++ b/packages/backend-test-utils/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/backend-test-utils
+## 0.1.35
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/backend-app-api@0.4.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.1.35-next.2
### Patch Changes
diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json
index e797e346ff..80135ad4a9 100644
--- a/packages/backend-test-utils/package.json
+++ b/packages/backend-test-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/backend-test-utils",
"description": "Test helpers library for Backstage backends",
- "version": "0.1.35-next.2",
+ "version": "0.1.35",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md
index 933d9688b9..7ead0abeb6 100644
--- a/packages/backend/CHANGELOG.md
+++ b/packages/backend/CHANGELOG.md
@@ -1,5 +1,56 @@
# example-backend
+## 0.2.81
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-todo-backend@0.1.40
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-search-backend-module-elasticsearch@1.1.4
+ - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.27
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/plugin-techdocs-backend@1.6.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/plugin-tech-insights-backend@0.5.9
+ - @backstage/plugin-adr-backend@0.3.1
+ - @backstage/plugin-auth-backend@0.18.1
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-linguist-backend@0.2.0
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-events-backend@0.2.4
+ - @backstage/plugin-app-backend@0.3.43
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-azure-devops-backend@0.3.22
+ - @backstage/plugin-azure-sites-backend@0.1.5
+ - @backstage/plugin-code-coverage-backend@0.2.9
+ - @backstage/plugin-entity-feedback-backend@0.1.1
+ - @backstage/plugin-explore-backend@0.0.5
+ - @backstage/plugin-graphql-backend@0.1.33
+ - @backstage/plugin-jenkins-backend@0.1.33
+ - @backstage/plugin-kubernetes-backend@0.9.4
+ - @backstage/plugin-permission-backend@0.5.18
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/plugin-playlist-backend@0.2.6
+ - @backstage/plugin-proxy-backend@0.2.37
+ - @backstage/plugin-rollbar-backend@0.1.40
+ - @backstage/plugin-lighthouse-backend@0.1.1
+ - @backstage/config@1.0.7
+ - @backstage/plugin-scaffolder-backend-module-rails@0.4.11
+ - @backstage/plugin-badges-backend@0.1.37
+ - example-app@0.2.81
+ - @backstage/plugin-search-backend@1.2.4
+ - @backstage/plugin-kafka-backend@0.2.36
+ - @backstage/plugin-search-backend-module-pg@0.5.4
+ - @backstage/plugin-search-backend-node@1.1.4
+ - @backstage/plugin-search-common@1.2.2
+ - @backstage/plugin-tech-insights-node@0.4.1
+
## 0.2.81-next.2
### Patch Changes
diff --git a/packages/backend/package.json b/packages/backend/package.json
index 107a1147f1..54dbe640df 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -1,6 +1,6 @@
{
"name": "example-backend",
- "version": "0.2.81-next.2",
+ "version": "0.2.81",
"main": "dist/index.cjs.js",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/catalog-client/CHANGELOG.md b/packages/catalog-client/CHANGELOG.md
index 52eef0291e..edd3811ef8 100644
--- a/packages/catalog-client/CHANGELOG.md
+++ b/packages/catalog-client/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/catalog-client
+## 1.4.0
+
+### Minor Changes
+
+- 8c030b1826c: Add `queryEntities` method to `CatalogApi`.
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- c630360631f: Ensure that `getEntitiesByRefs` returns `undefined` instead of `null` for missing items
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+
## 1.4.0-next.1
### Patch Changes
diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json
index f72ce4464a..07709d8c65 100644
--- a/packages/catalog-client/package.json
+++ b/packages/catalog-client/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/catalog-client",
"description": "An isomorphic client for the catalog backend",
- "version": "1.4.0-next.1",
+ "version": "1.4.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/catalog-client/src/CatalogClient.test.ts b/packages/catalog-client/src/CatalogClient.test.ts
index c235ff1592..53bb55b95f 100644
--- a/packages/catalog-client/src/CatalogClient.test.ts
+++ b/packages/catalog-client/src/CatalogClient.test.ts
@@ -249,7 +249,7 @@ describe('CatalogClient', () => {
{ token },
);
- expect(response).toEqual({ items: [entity, null] });
+ expect(response).toEqual({ items: [entity, undefined] });
});
});
diff --git a/packages/catalog-client/src/CatalogClient.ts b/packages/catalog-client/src/CatalogClient.ts
index 4984d394d4..be4ae6289d 100644
--- a/packages/catalog-client/src/CatalogClient.ts
+++ b/packages/catalog-client/src/CatalogClient.ts
@@ -199,9 +199,11 @@ export class CatalogClient implements CatalogApi {
throw await ResponseError.fromResponse(response);
}
- const { items } = await response.json();
+ const { items } = (await response.json()) as {
+ items: Array;
+ };
- return { items };
+ return { items: items.map(i => i ?? undefined) };
}
/**
diff --git a/packages/catalog-model/CHANGELOG.md b/packages/catalog-model/CHANGELOG.md
index 08560cbec7..fa20368b86 100644
--- a/packages/catalog-model/CHANGELOG.md
+++ b/packages/catalog-model/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/catalog-model
+## 1.2.1
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 1.2.1-next.1
### Patch Changes
diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json
index f6355bd74b..e23d399a37 100644
--- a/packages/catalog-model/package.json
+++ b/packages/catalog-model/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/catalog-model",
"description": "Types and validators that help describe the model of a Backstage Catalog",
- "version": "1.2.1-next.1",
+ "version": "1.2.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/cli-common/CHANGELOG.md b/packages/cli-common/CHANGELOG.md
index 030b743fca..bb6e2756a0 100644
--- a/packages/cli-common/CHANGELOG.md
+++ b/packages/cli-common/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/cli-common
+## 0.1.12
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+
## 0.1.12-next.0
### Patch Changes
diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json
index ad7ed92e98..38779eba07 100644
--- a/packages/cli-common/package.json
+++ b/packages/cli-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/cli-common",
"description": "Common functionality used by cli, backend, and create-app",
- "version": "0.1.12-next.0",
+ "version": "0.1.12",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md
index 4db4e1afa1..6903e61425 100644
--- a/packages/cli/CHANGELOG.md
+++ b/packages/cli/CHANGELOG.md
@@ -1,5 +1,29 @@
# @backstage/cli
+## 0.22.4
+
+### Patch Changes
+
+- 1ad8d885d30: Fixed a bug where additional backend package entry points where not properly marked as internal during local development.
+- 2011b86052c: Added templates for new plugin Web and Node.js libraries.
+- 867f4752ca1: Updated the ESLint plugin configuration that is enabled through `yarn start --check` to only pick up valid source files.
+- b4cd145b574: Added a new `migrate package-exports` command that synchronizes package exports fields in all `package.json`s.
+- 9bf50a36674: Bumped the `msw` version in templates to 1.0.0
+- 8bf24946c66: Adjust express dependencies to be the same as the rest of the project
+- 17271841de8: Updated frontend plugin template to use some more recent features
+- 4b4998466b4: Updated dependency `del` to `^7.0.0`.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- a11b9a23f5a: Keep custom exports entry points in package.json
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/eslint-plugin@0.1.2
+ - @backstage/errors@1.1.5
+ - @backstage/config-loader@1.1.9
+ - @backstage/release-manifests@0.0.9
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.22.4-next.1
### Patch Changes
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 8c76c7888b..140f94b0ca 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/cli",
"description": "CLI for developing Backstage plugins and apps",
- "version": "0.22.4-next.1",
+ "version": "0.22.4",
"publishConfig": {
"access": "public"
},
@@ -39,6 +39,7 @@
"@backstage/types": "workspace:^",
"@esbuild-kit/cjs-loader": "^2.4.1",
"@manypkg/get-packages": "^1.1.3",
+ "@octokit/oauth-app": "^4.2.0",
"@octokit/request": "^6.0.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
"@rollup/plugin-commonjs": "^23.0.0",
diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts
index ddec5c6a4a..ba11a53cfd 100644
--- a/packages/cli/src/commands/index.ts
+++ b/packages/cli/src/commands/index.ts
@@ -25,6 +25,13 @@ const configOption = [
Array(),
] as const;
+export function registerOnboardCommand(program: Command) {
+ program
+ .command('onboard', { hidden: true })
+ .description('Get help setting up your Backstage App.')
+ .action(lazy(() => import('./onboard').then(m => m.command)));
+}
+
export function registerRepoCommand(program: Command) {
const command = program
.command('repo [command]')
@@ -360,6 +367,7 @@ export function registerCommands(program: Command) {
registerRepoCommand(program);
registerScriptCommand(program);
registerMigrateCommand(program);
+ registerOnboardCommand(program);
program
.command('versions:bump')
diff --git a/packages/cli/src/commands/onboard/README.md b/packages/cli/src/commands/onboard/README.md
new file mode 100644
index 0000000000..0fb4d22666
--- /dev/null
+++ b/packages/cli/src/commands/onboard/README.md
@@ -0,0 +1,22 @@
+# onboard
+
+## Local dev
+
+# Create a new app
+
+```bash
+cd ..
+npx @backstage/create-app
+cd new-backstage-app
+
+# Run the modded cli in the new app
+
+../RELATIVE_PATH_TO_PROJECT/backstage/packages/cli/bin/backstage-cli onboard
+? Do you want to set up Authentication for this project? (Y/n)
+...
+
+# Try the app with the new changes
+
+yarn dev
+
+```
diff --git a/packages/cli/src/commands/onboard/auth/index.ts b/packages/cli/src/commands/onboard/auth/index.ts
new file mode 100644
index 0000000000..0f4537b110
--- /dev/null
+++ b/packages/cli/src/commands/onboard/auth/index.ts
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import inquirer from 'inquirer';
+import { Task } from '../../../lib/tasks';
+import { github, Answers as GitHubAnswers } from './providers/github';
+import { gitlab, Answers as GitLabAnswers } from './providers/gitlab';
+
+export { type GitHubAnswers, type GitLabAnswers };
+
+export async function auth(): Promise<{
+ provider: string;
+ answers: GitHubAnswers | GitLabAnswers;
+}> {
+ const answers = await inquirer.prompt<{
+ provider: string;
+ }>([
+ {
+ type: 'list',
+ name: 'provider',
+ message: 'Please select an authentication provider:',
+ choices: ['GitHub', 'GitLab'],
+ },
+ ]);
+
+ const { provider } = answers;
+
+ let providerAnswers;
+ switch (provider) {
+ case 'GitHub': {
+ providerAnswers = await github();
+ break;
+ }
+ case 'GitLab': {
+ providerAnswers = await gitlab();
+ break;
+ }
+ default:
+ throw new Error(`Provider ${provider} not implemented yet.`);
+ }
+
+ Task.log();
+ Task.log(`Done setting up ${provider} Authentication!`);
+ Task.log();
+
+ return {
+ provider,
+ answers: providerAnswers,
+ };
+}
diff --git a/packages/cli/src/commands/onboard/auth/patch.ts b/packages/cli/src/commands/onboard/auth/patch.ts
new file mode 100644
index 0000000000..d004eeb157
--- /dev/null
+++ b/packages/cli/src/commands/onboard/auth/patch.ts
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as fs from 'fs-extra';
+import * as path from 'path';
+import * as differ from 'diff';
+import { PATCH_FOLDER } from '../files';
+import { findPaths } from '@backstage/cli-common';
+
+/* eslint-disable-next-line no-restricted-syntax */
+const { targetRoot } = findPaths(__dirname);
+
+export const patch = async (patchFile: string) => {
+ const patchContent = await fs.readFile(
+ path.join(PATCH_FOLDER, patchFile),
+ 'utf8',
+ );
+ const targetName = patchContent.split('\n')[0].replace('--- a', '');
+ const targetFile = path.join(targetRoot, targetName);
+ const oldContent = await fs.readFile(targetFile, 'utf8');
+ const newContent = differ.applyPatch(oldContent, patchContent);
+ if (!newContent) {
+ throw new Error(
+ `Patch ${patchFile} was not applied correctly.
+ Did you change ${targetName} manually before running this command?`,
+ );
+ }
+
+ return await fs.writeFile(targetFile, newContent, 'utf8');
+};
diff --git a/packages/cli/src/commands/onboard/auth/patches/01-github.Add-SignInPage.patch b/packages/cli/src/commands/onboard/auth/patches/01-github.Add-SignInPage.patch
new file mode 100644
index 0000000000..db9f5228e8
--- /dev/null
+++ b/packages/cli/src/commands/onboard/auth/patches/01-github.Add-SignInPage.patch
@@ -0,0 +1,25 @@
+--- a/packages/app/src/App.tsx
++++ b/packages/app/src/App.tsx
+@@ -30 +30,5 @@ import { Root } from './components/Root';
+-import { AlertDisplay, OAuthRequestDialog } from '@backstage/core-components';
++import {
++ AlertDisplay,
++ OAuthRequestDialog,
++ SignInPage,
++} from '@backstage/core-components';
+@@ -35,0 +40 @@ import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/
++import { githubAuthApiRef } from '@backstage/core-plugin-api';
+@@ -38,0 +44,14 @@ const app = createApp({
++ components: {
++ SignInPage: props => (
++
++ ),
++ },
\ No newline at end of file
diff --git a/packages/cli/src/commands/onboard/auth/patches/02-gitlab.Add-SignInPage.patch b/packages/cli/src/commands/onboard/auth/patches/02-gitlab.Add-SignInPage.patch
new file mode 100644
index 0000000000..da849220b8
--- /dev/null
+++ b/packages/cli/src/commands/onboard/auth/patches/02-gitlab.Add-SignInPage.patch
@@ -0,0 +1,25 @@
+--- a/packages/app/src/App.tsx
++++ b/packages/app/src/App.tsx
+@@ -30 +30,5 @@ import { Root } from './components/Root';
+-import { AlertDisplay, OAuthRequestDialog } from '@backstage/core-components';
++import {
++ AlertDisplay,
++ OAuthRequestDialog,
++ SignInPage,
++} from '@backstage/core-components';
+@@ -35,0 +40 @@ import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/
++import { gitlabAuthApiRef } from '@backstage/core-plugin-api';
+@@ -38,0 +44,14 @@ const app = createApp({
++ components: {
++ SignInPage: props => (
++
++ ),
++ },
\ No newline at end of file
diff --git a/packages/cli/src/commands/onboard/auth/patches/03-gitlab.Change-signIn-resolver.patch b/packages/cli/src/commands/onboard/auth/patches/03-gitlab.Change-signIn-resolver.patch
new file mode 100644
index 0000000000..7a69669674
--- /dev/null
+++ b/packages/cli/src/commands/onboard/auth/patches/03-gitlab.Change-signIn-resolver.patch
@@ -0,0 +1,5 @@
+--- a/packages/backend/src/plugins/auth.ts
++++ b/packages/backend/src/plugins/auth.ts
+@@ -38 +38 @@ export default async function createPlugin(
+- github: providers.github.create({
++ gitlab: providers.gitlab.create({
\ No newline at end of file
diff --git a/packages/cli/src/commands/onboard/auth/providers/github.ts b/packages/cli/src/commands/onboard/auth/providers/github.ts
new file mode 100644
index 0000000000..36c6b02038
--- /dev/null
+++ b/packages/cli/src/commands/onboard/auth/providers/github.ts
@@ -0,0 +1,147 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { OAuthApp } from '@octokit/oauth-app';
+import chalk from 'chalk';
+import * as fs from 'fs-extra';
+import inquirer from 'inquirer';
+import { Task } from '../../../../lib/tasks';
+import { updateConfigFile } from '../../config';
+import { APP_CONFIG_FILE, PATCH_FOLDER } from '../../files';
+import { patch } from '../patch';
+
+export type Answers = {
+ clientSecret: string;
+ clientId: string;
+ hasEnterprise: boolean;
+ enterpriseInstanceUrl?: string;
+};
+
+const validateCredentials = async (clientId: string, clientSecret: string) => {
+ try {
+ const app = new OAuthApp({
+ clientId,
+ clientSecret,
+ });
+ await app.createToken({
+ code: '%NOT-VALID-CODE%',
+ });
+ } catch (error) {
+ // @octokit/request returns a error.response object when a request is rejected.
+ // We can check it to see what kind of error we received.
+
+ // If error.response is successful we can double-check that the error itself was due to the bad code.
+ // If that's the case then we can assume that the client id and secret exists as we otherwise would
+ // have gotten a 400/404.
+ if (
+ error.response.status !== 200 &&
+ error.response.data.error !== 'bad_verification_code'
+ ) {
+ throw new Error(`Validating GitHub Credentials failed.`);
+ }
+ }
+};
+
+const getConfig = (answers: Answers) => {
+ const { clientId, clientSecret, hasEnterprise, enterpriseInstanceUrl } =
+ answers;
+
+ return {
+ auth: {
+ providers: {
+ github: {
+ development: {
+ clientId,
+ clientSecret,
+ ...(hasEnterprise && {
+ enterpriseInstanceUrl,
+ }),
+ },
+ },
+ },
+ },
+ };
+};
+
+export const github = async (): Promise => {
+ Task.log(`
+ To add GitHub authentication, you must create an OAuth App from the GitHub developer settings: ${chalk.blue(
+ 'https://github.com/settings/developers',
+ )}
+ The Homepage URL should point to Backstage's frontend, while the Authorization callback URL will point to the auth backend.
+
+ Settings for local development:
+ ${chalk.cyan(`
+ Homepage URL: http://localhost:3000
+ Authorization callback URL: http://localhost:7007/api/auth/github/handler/frame`)}
+
+ You can find the full documentation page here: ${chalk.blue(
+ 'https://backstage.io/docs/auth/github/provider',
+ )}
+ `);
+
+ const answers = await inquirer.prompt([
+ {
+ type: 'input',
+ name: 'clientId',
+ message: 'What is your Client Id?',
+ validate: (input: string) => (input.length ? true : false),
+ },
+ {
+ type: 'input',
+ name: 'clientSecret',
+ message: 'What is your Client Secret?',
+ validate: (input: string) => (input.length ? true : false),
+ },
+ {
+ type: 'confirm',
+ name: 'hasEnterprise',
+ message: 'Are you using GitHub Enterprise?',
+ },
+ {
+ type: 'input',
+ name: 'enterpriseInstanceUrl',
+ message: 'What is your URL for GitHub Enterprise?',
+ when: ({ hasEnterprise }) => hasEnterprise,
+ validate: (input: string) => Boolean(new URL(input)),
+ },
+ ]);
+
+ const { clientId, clientSecret } = answers;
+ const config = getConfig(answers);
+
+ Task.log('Setting up GitHub Authentication for you...');
+
+ await Task.forItem(
+ 'Validating',
+ 'credentials',
+ async () => await validateCredentials(clientId, clientSecret),
+ );
+ await Task.forItem(
+ 'Updating',
+ APP_CONFIG_FILE,
+ async () => await updateConfigFile(APP_CONFIG_FILE, config),
+ );
+
+ const patches = await fs.readdir(PATCH_FOLDER);
+ for (const patchFile of patches.filter(p => p.includes('github'))) {
+ await Task.forItem('Patching', patchFile, async () => {
+ await patch(patchFile);
+ });
+ }
+
+ return answers;
+};
diff --git a/packages/cli/src/commands/onboard/auth/providers/gitlab.ts b/packages/cli/src/commands/onboard/auth/providers/gitlab.ts
new file mode 100644
index 0000000000..bc5491111c
--- /dev/null
+++ b/packages/cli/src/commands/onboard/auth/providers/gitlab.ts
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import chalk from 'chalk';
+import * as fs from 'fs-extra';
+import inquirer from 'inquirer';
+import { Task } from '../../../../lib/tasks';
+import { updateConfigFile } from '../../config';
+import { APP_CONFIG_FILE, PATCH_FOLDER } from '../../files';
+import { patch } from '../patch';
+
+const getConfig = (answers: Answers) => {
+ const { clientId, clientSecret, hasAudience, audience } = answers;
+
+ return {
+ auth: {
+ providers: {
+ gitlab: {
+ development: {
+ clientId,
+ clientSecret,
+ ...(hasAudience && {
+ audience,
+ }),
+ },
+ },
+ },
+ },
+ };
+};
+
+export type Answers = {
+ clientSecret: string;
+ clientId: string;
+ hasAudience: boolean;
+ audience?: string;
+};
+
+export const gitlab = async (): Promise => {
+ Task.log(`
+ To add GitLab authentication, you must create an Application from the GitLab Settings: ${chalk.blue(
+ 'https://gitlab.com/-/profile/applications',
+ )}
+ The Redirect URI should point to your Backstage backend auth handler.
+
+ Settings for local development:
+ ${chalk.cyan(`
+ Name: Backstage (or your custom app name)
+ Redirect URI: http://localhost:7007/api/auth/gitlab/handler/frame
+ Scopes: read_api and read_user`)}
+
+ You can find the full documentation page here: ${chalk.blue(
+ 'https://backstage.io/docs/auth/gitlab/provider',
+ )}
+ `);
+
+ const answers = await inquirer.prompt([
+ {
+ type: 'input',
+ name: 'clientId',
+ message: 'What is your Application Id?',
+ validate: (input: string) => (input.length ? true : false),
+ },
+ {
+ type: 'input',
+ name: 'clientSecret',
+ message: 'What is your Application Secret?',
+ validate: (input: string) => (input.length ? true : false),
+ },
+ {
+ type: 'confirm',
+ name: 'hasAudience',
+ message: 'Do you have a self-hosted instance of GitLab?',
+ },
+ {
+ type: 'input',
+ name: 'audience',
+ message: 'What is the URL for your GitLab instance?',
+ when: ({ hasAudience }) => hasAudience,
+ validate: (input: string) => Boolean(new URL(input)),
+ },
+ ]);
+
+ const config = getConfig(answers);
+
+ Task.log('Setting up GitLab Authentication for you...');
+
+ await Task.forItem(
+ 'Updating',
+ APP_CONFIG_FILE,
+ async () => await updateConfigFile(APP_CONFIG_FILE, config),
+ );
+
+ const patches = await fs.readdir(PATCH_FOLDER);
+ for (const patchFile of patches.filter(p => p.includes('gitlab'))) {
+ await Task.forItem('Patching', patchFile, async () => {
+ await patch(patchFile);
+ });
+ }
+
+ return answers;
+};
diff --git a/packages/cli/src/commands/onboard/command.ts b/packages/cli/src/commands/onboard/command.ts
new file mode 100644
index 0000000000..5cf25953ab
--- /dev/null
+++ b/packages/cli/src/commands/onboard/command.ts
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import chalk from 'chalk';
+import inquirer from 'inquirer';
+import { Task } from '../../lib/tasks';
+import { auth } from './auth';
+import { integrations } from './integrations';
+
+export async function command(): Promise {
+ const answers = await inquirer.prompt<{
+ shouldSetupAuth: boolean;
+ shouldSetupScaffolder: boolean;
+ }>([
+ {
+ type: 'confirm',
+ name: 'shouldSetupAuth',
+ message: 'Do you want to set up Authentication for this project?',
+ default: true,
+ },
+ {
+ type: 'confirm',
+ name: 'shouldSetupScaffolder',
+ message: 'Do you want to use Software Templates in this project?',
+ default: true,
+ },
+ ]);
+
+ const { shouldSetupAuth, shouldSetupScaffolder } = answers;
+
+ let providerInfo;
+ if (shouldSetupAuth) {
+ providerInfo = await auth();
+ }
+
+ if (shouldSetupScaffolder) {
+ await integrations(providerInfo);
+ }
+
+ if (!shouldSetupAuth && !shouldSetupScaffolder) {
+ Task.log(
+ chalk.yellow(
+ 'If you change your mind, feel free to re-run this command.',
+ ),
+ );
+ return;
+ }
+
+ Task.log();
+ Task.log(
+ `You can now start your app with ${chalk.inverse(
+ chalk.italic('yarn dev'),
+ )}`,
+ );
+ Task.log();
+}
diff --git a/packages/cli/src/commands/onboard/config.ts b/packages/cli/src/commands/onboard/config.ts
new file mode 100644
index 0000000000..cce3119fcc
--- /dev/null
+++ b/packages/cli/src/commands/onboard/config.ts
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import * as fs from 'fs-extra';
+import yaml from 'yaml';
+
+const readYaml = async (file: string) => {
+ return yaml.parse(await fs.readFile(file, 'utf8'));
+};
+
+export const updateConfigFile = async (file: string, config: T) => {
+ const staticContent =
+ '# Backstage override configuration for your local development environment \n';
+
+ const content = fs.existsSync(file)
+ ? yaml.stringify(
+ { ...(await readYaml(file)), ...config },
+ {
+ indent: 2,
+ },
+ )
+ : staticContent.concat(
+ yaml.stringify(
+ { ...config },
+ {
+ indent: 2,
+ },
+ ),
+ );
+
+ return await fs.writeFile(file, content, 'utf8');
+};
diff --git a/packages/cli/src/commands/onboard/files.ts b/packages/cli/src/commands/onboard/files.ts
new file mode 100644
index 0000000000..17f8a0f85e
--- /dev/null
+++ b/packages/cli/src/commands/onboard/files.ts
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { findPaths } from '@backstage/cli-common';
+import * as path from 'path';
+
+/* eslint-disable-next-line no-restricted-syntax */
+const { targetRoot, ownDir } = findPaths(__dirname);
+export const APP_CONFIG_FILE = path.join(targetRoot, 'app-config.local.yaml');
+export const PATCH_FOLDER = path.join(
+ ownDir,
+ 'src',
+ 'commands',
+ 'onboard',
+ 'auth',
+ 'patches',
+);
diff --git a/packages/cli/src/commands/onboard/index.ts b/packages/cli/src/commands/onboard/index.ts
new file mode 100644
index 0000000000..4c23ea6e48
--- /dev/null
+++ b/packages/cli/src/commands/onboard/index.ts
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export { command } from './command';
diff --git a/packages/cli/src/commands/onboard/integrations/github.ts b/packages/cli/src/commands/onboard/integrations/github.ts
new file mode 100644
index 0000000000..a0538c7ace
--- /dev/null
+++ b/packages/cli/src/commands/onboard/integrations/github.ts
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import chalk from 'chalk';
+import inquirer from 'inquirer';
+import { Task } from '../../../lib/tasks';
+import { updateConfigFile } from '../config';
+import { APP_CONFIG_FILE } from '../files';
+import { GitHubAnswers } from '../auth';
+
+type Answers = {
+ hasEnterprise: boolean;
+ enterpriseInstanceUrl: string;
+ apiBaseUrl: string;
+};
+
+const getConfig = ({
+ hasEnterprise,
+ apiBaseUrl,
+ host,
+ token,
+}: {
+ hasEnterprise: boolean;
+ apiBaseUrl: string;
+ host: string;
+ token: string;
+}) => ({
+ integrations: {
+ github: [
+ {
+ host,
+ token,
+ ...(hasEnterprise && {
+ apiBaseUrl,
+ }),
+ },
+ ],
+ },
+});
+
+export const github = async (providerAnswers?: GitHubAnswers) => {
+ // TODO(tudi2d): Is GitHub Enterprise a valid setup if there is no Authentication?
+ const answers = await inquirer.prompt([
+ {
+ type: 'confirm',
+ name: 'hasEnterprise',
+ message: 'Are you using GitHub Enterprise?',
+ when: () => typeof providerAnswers === 'undefined',
+ },
+ {
+ type: 'input',
+ name: 'enterpriseInstanceUrl',
+ message: 'What is your URL for GitHub Enterprise?',
+ when: ({ hasEnterprise }) => hasEnterprise,
+ validate: (input: string) => Boolean(new URL(input)),
+ },
+ {
+ type: 'input',
+ name: 'apiBaseUrl',
+ message: 'What is your GitHub Enterprise API path?',
+ default: '/api/v3',
+ when: ({ hasEnterprise }) =>
+ hasEnterprise || providerAnswers?.hasEnterprise,
+ // TODO(tudi2d): Fetch API using OAuth Token if Auth was set up
+ },
+ ]);
+
+ const host = new URL(
+ providerAnswers?.enterpriseInstanceUrl ??
+ answers?.enterpriseInstanceUrl ??
+ 'http://github.com',
+ );
+
+ Task.log(`
+ To create new repositories in GitHub using Software Templates you first need to create a personal access token: ${chalk.blue(
+ `${host.origin}/settings/tokens/new`,
+ )}
+
+ Select the following scopes:
+
+ Reading software components:${chalk.cyan(`
+ - "repo"`)}
+
+ Reading organization data:${chalk.cyan(`
+ - "read:org"
+ - "read:user"
+ - "user:email"`)}
+
+ Publishing software templates:${chalk.cyan(`
+ - "repo"
+ - "workflow" (if templates include GitHub workflows)
+ `)}
+
+ You can find the full documentation page here: ${chalk.blue(
+ 'https://backstage.io/docs/integrations/github/locations',
+ )}
+ `);
+
+ const { token } = await inquirer.prompt<{ token: string }>([
+ {
+ type: 'input',
+ name: 'token',
+ message:
+ 'Please insert your personal access token to setup the GitHub Integration',
+ // TODO(tudi2d): validate
+ },
+ ]);
+
+ const config = getConfig({
+ hasEnterprise: providerAnswers?.hasEnterprise ?? answers.hasEnterprise,
+ apiBaseUrl: host.origin + answers.apiBaseUrl,
+ host: host.hostname,
+ token,
+ });
+
+ Task.log('Setting up Software Templates using GitHub integration for you...');
+
+ await Task.forItem(
+ 'Updating',
+ APP_CONFIG_FILE,
+ async () => await updateConfigFile(APP_CONFIG_FILE, config),
+ );
+};
diff --git a/packages/cli/src/commands/onboard/integrations/index.ts b/packages/cli/src/commands/onboard/integrations/index.ts
new file mode 100644
index 0000000000..5cb2f95b38
--- /dev/null
+++ b/packages/cli/src/commands/onboard/integrations/index.ts
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import inquirer from 'inquirer';
+import { Task } from '../../../lib/tasks';
+import { GitHubAnswers, GitLabAnswers } from '../auth';
+import { github } from './github';
+
+enum Integration {
+ GITHUB = 'GitHub',
+}
+
+const Integrations: Integration[] = [Integration.GITHUB];
+
+export async function integrations(providerInfo?: {
+ provider: string;
+ answers: GitHubAnswers | GitLabAnswers;
+}): Promise {
+ const answers = await inquirer.prompt<{
+ integration?: Integration;
+ shouldUsePreviousProvider: boolean;
+ }>([
+ {
+ type: 'confirm',
+ name: 'shouldUsePreviousProvider',
+ message: `Do you want to keep using ${providerInfo?.provider} as your provider when setting up Software Templates?`,
+ when: () =>
+ providerInfo?.provider &&
+ Object.values(Integrations).includes(
+ providerInfo!.provider as Integration,
+ ),
+ },
+ {
+ // TODO(tudi2d): Let's start with one, but it should be multiple choice in the future
+ type: 'list',
+ name: 'integration',
+ message: 'Please select an integration provider:',
+ choices: Integrations,
+ when: ({ shouldUsePreviousProvider }) => !shouldUsePreviousProvider,
+ },
+ ]);
+
+ if (answers.shouldUsePreviousProvider) {
+ answers.integration = providerInfo!.provider as Integration;
+ }
+
+ switch (answers.integration) {
+ case Integration.GITHUB: {
+ const providerAnswers =
+ providerInfo?.provider === 'GitHub'
+ ? (providerInfo!.answers as GitHubAnswers)
+ : undefined;
+ await github(providerAnswers);
+ break;
+ }
+ default:
+ }
+
+ Task.log();
+ Task.log(`Done setting up ${answers.integration} Integration!`);
+ Task.log();
+}
diff --git a/packages/codemods/CHANGELOG.md b/packages/codemods/CHANGELOG.md
index 7104ce9cf4..d19c01a7d5 100644
--- a/packages/codemods/CHANGELOG.md
+++ b/packages/codemods/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/codemods
+## 0.1.44
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/cli-common@0.1.12
+
## 0.1.44-next.0
### Patch Changes
diff --git a/packages/codemods/package.json b/packages/codemods/package.json
index 8f4ab51a98..acb0f10dd1 100644
--- a/packages/codemods/package.json
+++ b/packages/codemods/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/codemods",
"description": "A collection of codemods for Backstage projects",
- "version": "0.1.44-next.0",
+ "version": "0.1.44",
"publishConfig": {
"access": "public",
"main": "dist/index.cjs.js"
diff --git a/packages/config-loader/CHANGELOG.md b/packages/config-loader/CHANGELOG.md
index 5dbed6c46d..d1eb56d9af 100644
--- a/packages/config-loader/CHANGELOG.md
+++ b/packages/config-loader/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/config-loader
+## 1.1.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 1.1.9-next.0
### Patch Changes
diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json
index f842f77809..1ef8d41955 100644
--- a/packages/config-loader/package.json
+++ b/packages/config-loader/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/config-loader",
"description": "Config loading functionality used by Backstage backend, and CLI",
- "version": "1.1.9-next.0",
+ "version": "1.1.9",
"publishConfig": {
"access": "public",
"main": "dist/index.cjs.js",
diff --git a/packages/config/CHANGELOG.md b/packages/config/CHANGELOG.md
index c809e158b7..8b20f72905 100644
--- a/packages/config/CHANGELOG.md
+++ b/packages/config/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/config
+## 1.0.7
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/types@1.0.2
+
## 1.0.7-next.0
### Patch Changes
diff --git a/packages/config/package.json b/packages/config/package.json
index 5b8ac4279b..c90b7d4c5f 100644
--- a/packages/config/package.json
+++ b/packages/config/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/config",
"description": "Config API used by Backstage core, backend, and CLI",
- "version": "1.0.7-next.0",
+ "version": "1.0.7",
"publishConfig": {
"access": "public",
"main": "dist/index.cjs.js",
diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md
index d91fa44f05..2f54b5d041 100644
--- a/packages/core-app-api/CHANGELOG.md
+++ b/packages/core-app-api/CHANGELOG.md
@@ -1,5 +1,34 @@
# @backstage/core-app-api
+## 1.6.0
+
+### Minor Changes
+
+- 456eaa8cf83: `OAuth2` now gets ID tokens from a session with the `openid` scope explicitly
+ requested.
+
+ This should not be considered a breaking change, because spec-compliant OIDC
+ providers will already be returning ID tokens if and only if the `openid` scope
+ is granted.
+
+ This change makes the dependence explicit, and removes the burden on
+ OAuth2-based providers which require an ID token (e.g. this is done by various
+ default [auth
+ handlers](https://backstage.io/docs/auth/identity-resolver/#authhandler)) to add
+ `openid` to their default scopes. _That_ could carry another indirect benefit:
+ by removing `openid` from the default scopes for a provider, grants for
+ resource-specific access tokens can avoid requesting excess ID token-related
+ scopes.
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+
## 1.6.0-next.2
### Minor Changes
diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json
index 073a5a22b2..c9ae2abc25 100644
--- a/packages/core-app-api/package.json
+++ b/packages/core-app-api/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-app-api",
"description": "Core app API used by Backstage apps",
- "version": "1.6.0-next.2",
+ "version": "1.6.0",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md
index 0eac19716d..a7ca828bb3 100644
--- a/packages/core-components/CHANGELOG.md
+++ b/packages/core-components/CHANGELOG.md
@@ -1,5 +1,25 @@
# @backstage/core-components
+## 0.12.5
+
+### Patch Changes
+
+- 8bbf95b5507: Button labels in the sidebar (previously displayed in uppercase) will be displayed in the case that is provided without any transformations.
+ For example, a sidebar button with the label "Search" will appear as Search, "search" will appear as search, "SEARCH" will appear as SEARCH etc.
+ This can potentially affect any overriding styles previously applied to change the appearance of Button labels in the Sidebar.
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- e1aae2f5a0c: Updated the `aria-label` of the `HeaderTabs` component.
+- 6a51a49a810: Fix bug where `` component would not take into account header styles defined in `columns[*].headerStyle`.
+- fa004f66871: Use media queries to change layout instead of `isMobile` prop in `BackstagePage` component
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/version-bridge@1.0.3
+
## 0.12.5-next.2
### Patch Changes
diff --git a/packages/core-components/package.json b/packages/core-components/package.json
index 9630d7d706..77e91aa751 100644
--- a/packages/core-components/package.json
+++ b/packages/core-components/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-components",
"description": "Core components used by Backstage plugins and apps",
- "version": "0.12.5-next.2",
+ "version": "0.12.5",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/core-components/src/layout/HeaderLabel/HeaderLabel.tsx b/packages/core-components/src/layout/HeaderLabel/HeaderLabel.tsx
index e3b6299f85..757aca688a 100644
--- a/packages/core-components/src/layout/HeaderLabel/HeaderLabel.tsx
+++ b/packages/core-components/src/layout/HeaderLabel/HeaderLabel.tsx
@@ -14,8 +14,9 @@
* limitations under the License.
*/
+import { BackstageTheme } from '@backstage/theme';
import Grid from '@material-ui/core/Grid';
-import { makeStyles } from '@material-ui/core/styles';
+import { alpha, makeStyles } from '@material-ui/core/styles';
import Typography from '@material-ui/core/Typography';
import React from 'react';
import { Link } from '../../components/Link';
@@ -23,13 +24,13 @@ import { Link } from '../../components/Link';
/** @public */
export type HeaderLabelClassKey = 'root' | 'label' | 'value';
-const useStyles = makeStyles(
+const useStyles = makeStyles(
theme => ({
root: {
textAlign: 'left',
},
label: {
- color: theme.palette.common.white,
+ color: theme.page.fontColor,
fontWeight: theme.typography.fontWeightBold,
letterSpacing: 0,
fontSize: theme.typography.fontSize,
@@ -37,7 +38,7 @@ const useStyles = makeStyles(
lineHeight: 1,
},
value: {
- color: 'rgba(255, 255, 255, 0.8)',
+ color: alpha(theme.page.fontColor, 0.8),
fontSize: theme.typography.fontSize,
lineHeight: 1,
},
diff --git a/packages/core-plugin-api/CHANGELOG.md b/packages/core-plugin-api/CHANGELOG.md
index 1001c01e52..9292367463 100644
--- a/packages/core-plugin-api/CHANGELOG.md
+++ b/packages/core-plugin-api/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/core-plugin-api
+## 1.5.0
+
+### Minor Changes
+
+- ab750ddc4f2: The GitLab auth provider can now be used to get OpenID tokens.
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+
## 1.5.0-next.2
### Minor Changes
diff --git a/packages/core-plugin-api/package.json b/packages/core-plugin-api/package.json
index 335f0f0efd..283e2b7e34 100644
--- a/packages/core-plugin-api/package.json
+++ b/packages/core-plugin-api/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/core-plugin-api",
"description": "Core API used by Backstage plugins",
- "version": "1.5.0-next.2",
+ "version": "1.5.0",
"publishConfig": {
"access": "public"
},
diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md
index b17da7ba7b..2639ba9a59 100644
--- a/packages/create-app/CHANGELOG.md
+++ b/packages/create-app/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/create-app
+## 0.4.38
+
+### Patch Changes
+
+- b4627f23b28: Bumped create-app version.
+- 0eceadb9502: Bumped create-app version.
+- 482dae5de1c: Updated link to docs.
+- 6ace2dd2c58: Added to the template `packages/app/.eslintignore` file to packages to ignore the contents of `packages/app/public`.
+- Updated dependencies
+ - @backstage/cli-common@0.1.12
+
## 0.4.38-next.2
### Patch Changes
diff --git a/packages/create-app/package.json b/packages/create-app/package.json
index 4097e3bd57..9f797f5d8c 100644
--- a/packages/create-app/package.json
+++ b/packages/create-app/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/create-app",
"description": "A CLI that helps you create your own Backstage app",
- "version": "0.4.38-next.2",
+ "version": "0.4.38",
"publishConfig": {
"access": "public"
},
diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md
index 85a0c81ee7..3c6fbaefd5 100644
--- a/packages/dev-utils/CHANGELOG.md
+++ b/packages/dev-utils/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/dev-utils
+## 1.0.13
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/test-utils@1.2.6
+ - @backstage/core-app-api@1.6.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/theme@0.2.18
+ - @backstage/app-defaults@1.2.1
+
## 1.0.13-next.2
### Patch Changes
diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json
index d4f120b359..d8559535d8 100644
--- a/packages/dev-utils/package.json
+++ b/packages/dev-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/dev-utils",
"description": "Utilities for developing Backstage plugins.",
- "version": "1.0.13-next.2",
+ "version": "1.0.13",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md
index 7c3dcdbc36..2f7c5d0704 100644
--- a/packages/e2e-test/CHANGELOG.md
+++ b/packages/e2e-test/CHANGELOG.md
@@ -1,5 +1,14 @@
# e2e-test
+## 0.2.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/create-app@0.4.38
+ - @backstage/errors@1.1.5
+ - @backstage/cli-common@0.1.12
+
## 0.2.1-next.2
### Patch Changes
diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json
index f8c6f815e8..d2c11a7e15 100644
--- a/packages/e2e-test/package.json
+++ b/packages/e2e-test/package.json
@@ -1,7 +1,7 @@
{
"name": "e2e-test",
"description": "E2E test for verifying Backstage packages",
- "version": "0.2.1-next.2",
+ "version": "0.2.1",
"private": true,
"backstage": {
"role": "cli"
diff --git a/packages/errors/CHANGELOG.md b/packages/errors/CHANGELOG.md
index 88b0c4b8d1..398b058bbb 100644
--- a/packages/errors/CHANGELOG.md
+++ b/packages/errors/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/errors
+## 1.1.5
+
+### Patch Changes
+
+- 3bf83a2aabf: Added `NotImplementedError`, which can be used when the server does not recognize the request method and is incapable of supporting it for any resource.
+- Updated dependencies
+ - @backstage/types@1.0.2
+
## 1.1.5-next.0
### Patch Changes
diff --git a/packages/errors/package.json b/packages/errors/package.json
index 7eeacb0e81..1f4da3b2b2 100644
--- a/packages/errors/package.json
+++ b/packages/errors/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/errors",
"description": "Common utilities for error handling within Backstage",
- "version": "1.1.5-next.0",
+ "version": "1.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md
index 7e5a3efbae..49cf9b5df5 100644
--- a/packages/eslint-plugin/CHANGELOG.md
+++ b/packages/eslint-plugin/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/eslint-plugin
+## 0.1.2
+
+### Patch Changes
+
+- a061c466d66: Fixing a bug that we should check internal dependencies too
+
## 0.1.2-next.0
### Patch Changes
diff --git a/packages/eslint-plugin/lib/getPackages.js b/packages/eslint-plugin/lib/getPackages.js
index f5f2c63cc1..8f4ccfacf3 100644
--- a/packages/eslint-plugin/lib/getPackages.js
+++ b/packages/eslint-plugin/lib/getPackages.js
@@ -31,6 +31,7 @@ const manypkg = require('@manypkg/get-packages');
* @property {ExtendedPackage} root
* @property {ExtendedPackage[]} list
* @property {Map} map
+ * @property {() => void} clearCache
* @property {(path: string) => ExtendedPackage | undefined} byPath
*/
@@ -64,6 +65,9 @@ module.exports = (function () {
pkg => !path.relative(pkg.dir, filePath).startsWith('..'),
);
},
+ clearCache() {
+ result = undefined;
+ },
};
lastLoadAt = Date.now();
return result;
diff --git a/packages/eslint-plugin/lib/visitImports.js b/packages/eslint-plugin/lib/visitImports.js
index 1a344c1101..376c37575f 100644
--- a/packages/eslint-plugin/lib/visitImports.js
+++ b/packages/eslint-plugin/lib/visitImports.js
@@ -24,6 +24,16 @@ const getPackages = require('./getPackages');
* @type {object}
* @property {'local'} type
* @property {'value' | 'type'} kind
+ * @property {import('estree').Node} node
+ * @property {string} path
+ */
+
+/**
+ * @typedef ImportDirective
+ * @type {object}
+ * @property {'directive'} type
+ * @property {'value' | 'type'} kind
+ * @property {import('estree').Node} node
* @property {string} path
*/
@@ -32,6 +42,7 @@ const getPackages = require('./getPackages');
* @type {object}
* @property {'internal'} type
* @property {'value' | 'type'} kind
+ * @property {import('estree').Node} node
* @property {string} path
* @property {import('./getPackages').ExtendedPackage} package
* @property {string} packageName
@@ -42,6 +53,7 @@ const getPackages = require('./getPackages');
* @type {object}
* @property {'external'} type
* @property {'value' | 'type'} kind
+ * @property {import('estree').Node} node
* @property {string} path
* @property {string} packageName
*/
@@ -51,6 +63,7 @@ const getPackages = require('./getPackages');
* @type {object}
* @property {'builtin'} type
* @property {'value' | 'type'} kind
+ * @property {import('estree').Literal} node
* @property {string} path
* @property {string} packageName
*/
@@ -58,7 +71,7 @@ const getPackages = require('./getPackages');
/**
* @callback ImportVisitor
* @param {ConsideredNode} node
- * @param {LocalImport | InternalImport | ExternalImport | BuiltinImport} import
+ * @param {ImportDirective | LocalImport | InternalImport | ExternalImport | BuiltinImport} import
*/
/**
@@ -68,7 +81,7 @@ const getPackages = require('./getPackages');
/**
* @param {ConsideredNode} node
- * @returns {undefined | {path: string, kind: 'type' | 'value'}}
+ * @returns {undefined | {path: string, node: import('estree').Literal, kind: 'type' | 'value'}}
*/
function getImportInfo(node) {
/** @type {import('estree').Expression | import('estree').SpreadElement | undefined | null} */
@@ -95,7 +108,11 @@ function getImportInfo(node) {
/** @type {any} */
const anyNode = node;
- return { path: pathNode.value, kind: anyNode.importKind ?? 'value' };
+ return {
+ path: pathNode.value,
+ node: pathNode,
+ kind: anyNode.importKind ?? 'value',
+ };
}
/**
@@ -122,6 +139,10 @@ module.exports = function visitImports(context, visitor) {
return visitor(node, { type: 'local', ...info });
}
+ if (info.path.startsWith('directive:')) {
+ return visitor(node, { type: 'directive', ...info });
+ }
+
const pathParts = info.path.split('/');
// Check for match with plain name, then namespaced name
@@ -143,6 +164,7 @@ module.exports = function visitImports(context, visitor) {
return visitor(node, {
type: 'builtin',
kind: info.kind,
+ node: info.node,
path: subPath,
packageName,
});
@@ -151,6 +173,7 @@ module.exports = function visitImports(context, visitor) {
return visitor(node, {
type: 'external',
kind: info.kind,
+ node: info.node,
path: subPath,
packageName,
});
@@ -159,6 +182,7 @@ module.exports = function visitImports(context, visitor) {
return visitor(node, {
type: 'internal',
kind: info.kind,
+ node: info.node,
path: subPath,
package: pkg,
packageName,
diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index fcc038cdbf..feb03921fd 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/eslint-plugin",
"description": "Backstage ESLint plugin",
- "version": "0.1.2-next.0",
+ "version": "0.1.2",
"publishConfig": {
"access": "public"
},
diff --git a/packages/eslint-plugin/rules/no-undeclared-imports.js b/packages/eslint-plugin/rules/no-undeclared-imports.js
index b1e11d1b97..06f0afed46 100644
--- a/packages/eslint-plugin/rules/no-undeclared-imports.js
+++ b/packages/eslint-plugin/rules/no-undeclared-imports.js
@@ -20,6 +20,7 @@ const path = require('path');
const getPackageMap = require('../lib/getPackages');
const visitImports = require('../lib/visitImports');
const minimatch = require('minimatch');
+const { execFileSync } = require('child_process');
const depFields = {
dep: 'dependencies',
@@ -124,11 +125,13 @@ function getAddFlagForDepsField(depsField) {
module.exports = {
meta: {
type: 'problem',
+ fixable: 'code',
messages: {
undeclared:
"{{ packageName }} must be declared in {{ depsField }} of {{ packageJsonPath }}, run 'yarn --cwd {{ packagePath }} add{{ addFlag }} {{ packageName }}' from the project root.",
switch:
'{{ packageName }} is declared in {{ oldDepsField }}, but should be moved to {{ depsField }} in {{ packageJsonPath }}.',
+ switchBack: 'Switch back to import declaration',
},
docs: {
description:
@@ -150,63 +153,150 @@ module.exports = {
return {};
}
- return visitImports(context, (node, imp) => {
- // We leave checking of type imports to the repo-tools check,
- // and we skip builtins and local imports
- if (
- imp.kind === 'type' ||
- imp.type === 'builtin' ||
- imp.type === 'local'
- ) {
- return;
- }
+ /** @type Array<{name: string, flag: string, node: import('estree').Node}> */
+ const importsToAdd = [];
- // We skip imports for the package itself
- if (imp.packageName === localPkg.packageJson.name) {
- return;
- }
+ return {
+ // All missing imports that we detect are collected as we traverse, and then we use
+ // the program exit to execute all install directives that have been found.
+ ['Program:exit']() {
+ /** @type Record> */
+ const byFlag = {};
- const modulePath = path.relative(localPkg.dir, filePath);
- const expectedType = getExpectedDepType(
- localPkg.packageJson,
- imp.packageName,
- modulePath,
- );
+ for (const { name, flag } of importsToAdd) {
+ byFlag[flag] = byFlag[flag] ?? new Set();
+ byFlag[flag].add(name);
+ }
- const conflict = findConflict(
- localPkg.packageJson,
- imp.packageName,
- expectedType,
- );
+ for (const name of byFlag[''] ?? []) {
+ byFlag['--dev']?.delete(name);
+ }
+ for (const name of byFlag['--peer'] ?? []) {
+ byFlag['']?.delete(name);
+ byFlag['--dev']?.delete(name);
+ }
- if (conflict) {
- try {
- const fullImport = imp.path
- ? `${imp.packageName}/${imp.path}`
- : imp.packageName;
- require.resolve(fullImport, {
- paths: [localPkg.dir],
+ for (const [flag, names] of Object.entries(byFlag)) {
+ // The security implication of this is a bit interesting, as crafted add-import
+ // directives could be used to install malicious packages. However, the same is true
+ // for adding malicious packages to package.json, so there's significant difference.
+ execFileSync('yarn', ['add', ...(flag || []), ...names], {
+ cwd: localPkg.dir,
+ stdio: 'inherit',
});
- } catch {
- // If the dependency doesn't resolve then it's likely a type import, ignore
+ }
+
+ // This switches all import directives back to the original import.
+ for (const added of importsToAdd) {
+ context.report({
+ node: added.node,
+ messageId: 'switchBack',
+ fix(fixer) {
+ return fixer.replaceText(added.node, `'${added.name}'`);
+ },
+ });
+ }
+
+ importsToAdd.length = 0;
+ packages.clearCache();
+ },
+ ...visitImports(context, (node, imp) => {
+ // We leave checking of type imports to the repo-tools check,
+ // and we skip builtins and local imports
+ if (
+ imp.kind === 'type' ||
+ imp.type === 'builtin' ||
+ imp.type === 'local'
+ ) {
return;
}
- const packagePath = path.relative(packages.root.dir, localPkg.dir);
- const packageJsonPath = path.join(packagePath, 'package.json');
+ // Any import directive that is found is collected for processing later
+ if (imp.type === 'directive') {
+ const parts = imp.path.split(':');
+ if (parts[1] !== 'add-import') {
+ return;
+ }
+ const [type, name] = parts.slice(2);
+ if (!name.match(/^(@[-\w\.~]+\/)?[-\w\.~]*$/i)) {
+ throw new Error(
+ `Invalid package name to add as dependency: '${name}'`,
+ );
+ }
- context.report({
- node,
- messageId: conflict.oldDepsField ? 'switch' : 'undeclared',
- data: {
- ...conflict,
- packagePath,
- addFlag: getAddFlagForDepsField(conflict.depsField),
- packageName: imp.packageName,
- packageJsonPath: packageJsonPath,
- },
- });
- }
- });
+ importsToAdd.push({
+ flag: getAddFlagForDepsField(type).trim(),
+ name,
+ node: imp.node,
+ });
+ return;
+ }
+
+ // We skip imports for the package itself
+ if (imp.packageName === localPkg.packageJson.name) {
+ return;
+ }
+
+ const modulePath = path.relative(localPkg.dir, filePath);
+ const expectedType = getExpectedDepType(
+ localPkg.packageJson,
+ imp.packageName,
+ modulePath,
+ );
+
+ const conflict = findConflict(
+ localPkg.packageJson,
+ imp.packageName,
+ expectedType,
+ );
+
+ if (conflict) {
+ try {
+ const fullImport = imp.path
+ ? `${imp.packageName}/${imp.path}`
+ : imp.packageName;
+ require.resolve(fullImport, {
+ paths: [localPkg.dir],
+ });
+ } catch {
+ // If the dependency doesn't resolve then it's likely a type import, ignore
+ return;
+ }
+
+ const packagePath = path.relative(packages.root.dir, localPkg.dir);
+ const packageJsonPath = path.join(packagePath, 'package.json');
+
+ context.report({
+ node,
+ messageId: conflict.oldDepsField ? 'switch' : 'undeclared',
+ data: {
+ ...conflict,
+ packagePath,
+ addFlag: getAddFlagForDepsField(conflict.depsField),
+ packageName: imp.packageName,
+ packageJsonPath: packageJsonPath,
+ },
+ // This fix callback is always executed, regardless of whether linting is run with
+ // fixes enabled or not. There is no way to determine if fixes are being applied, so
+ // instead our fix will replace the import with a directive that will be picked up
+ // on the next run. When ESLint applies fixes all rules are re-run to make sure the fixes
+ // applied correctly, which means that these directives will be picked up, executed,
+ // and switched back to the original import immediately.
+ // This is not true for all editor integrations. For example, VSCode translates there fixes
+ // to native editor commands, and does not re-run ESLint. This means that the import directive
+ // will end up in source code, and the import directive fix needs to be applied manually too.
+ // There is to my knowledge no way around this that doesn't get very hacky, so it will do for now.
+ fix: conflict.oldDepsField
+ ? undefined
+ : fixer => {
+ return fixer.replaceText(
+ imp.node,
+ `'directive:add-import:${conflict.depsField}:${imp.packageName}'`,
+ );
+ },
+ });
+ }
+ }),
+ };
},
};
diff --git a/packages/eslint-plugin/src/no-undeclared-imports.test.ts b/packages/eslint-plugin/src/no-undeclared-imports.test.ts
index 78844899ba..e92d422057 100644
--- a/packages/eslint-plugin/src/no-undeclared-imports.test.ts
+++ b/packages/eslint-plugin/src/no-undeclared-imports.test.ts
@@ -18,6 +18,10 @@ import { RuleTester } from 'eslint';
import { join as joinPath } from 'path';
import rule from '../rules/no-undeclared-imports';
+jest.mock('child_process', () => ({
+ execFileSync: jest.fn(),
+}));
+
const RULE = 'no-undeclared-imports';
const FIXTURE = joinPath(__dirname, '__fixtures__/monorepo');
@@ -45,6 +49,9 @@ const ERR_SWITCHED = (
'package.json',
)}.`,
});
+const ERR_SWITCH_BACK = () => ({
+ message: 'Switch back to import declaration',
+});
process.chdir(FIXTURE);
@@ -130,6 +137,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'lodash'`,
+ output: `import 'directive:add-import:dependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -137,6 +145,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import { debounce } from 'lodash'`,
+ output: `import { debounce } from 'directive:add-import:dependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -144,6 +153,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import * as _ from 'lodash'`,
+ output: `import * as _ from 'directive:add-import:dependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -151,6 +161,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import _ from 'lodash'`,
+ output: `import _ from 'directive:add-import:dependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -158,6 +169,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import('lodash')`,
+ output: `import('directive:add-import:dependencies:lodash')`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -165,6 +177,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `require('lodash')`,
+ output: `require('directive:add-import:dependencies:lodash')`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
@@ -172,13 +185,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'lodash'`,
- filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
- errors: [
- ERR_UNDECLARED('lodash', 'dependencies', joinPath('packages', 'bar')),
- ],
- },
- {
- code: `import 'lodash'`,
+ output: `import 'directive:add-import:devDependencies:lodash'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.test.ts'),
errors: [
ERR_UNDECLARED(
@@ -191,6 +198,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'react'`,
+ output: `import 'directive:add-import:peerDependencies:react'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED(
@@ -203,6 +211,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'react'`,
+ output: `import 'directive:add-import:peerDependencies:react'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.test.ts'),
errors: [
ERR_UNDECLARED(
@@ -215,6 +224,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'react-dom'`,
+ output: `import 'directive:add-import:dependencies:react-dom'`,
filename: joinPath(FIXTURE, 'packages/foo/src/index.ts'),
errors: [
ERR_UNDECLARED(
@@ -226,6 +236,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import 'react-dom'`,
+ output: `import 'directive:add-import:devDependencies:react-dom'`,
filename: joinPath(FIXTURE, 'packages/foo/src/index.test.ts'),
errors: [
ERR_UNDECLARED(
@@ -238,6 +249,7 @@ ruleTester.run(RULE, rule, {
},
{
code: `import '@internal/foo'`,
+ output: `import 'directive:add-import:dependencies:@internal/foo'`,
filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
errors: [
ERR_UNDECLARED(
@@ -247,5 +259,43 @@ ruleTester.run(RULE, rule, {
),
],
},
+
+ // Switching back to original import declarations
+ {
+ code: `import 'directive:add-import:dependencies:lodash'`,
+ output: `import 'lodash'`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `import { debounce } from 'directive:add-import:dependencies:lodash'`,
+ output: `import { debounce } from 'lodash'`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `import * as _ from 'directive:add-import:dependencies:lodash'`,
+ output: `import * as _ from 'lodash'`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `import _ from 'directive:add-import:dependencies:lodash'`,
+ output: `import _ from 'lodash'`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `import('directive:add-import:dependencies:lodash')`,
+ output: `import('lodash')`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
+ {
+ code: `require('directive:add-import:dependencies:lodash')`,
+ output: `require('lodash')`,
+ filename: joinPath(FIXTURE, 'packages/bar/src/index.ts'),
+ errors: [ERR_SWITCH_BACK()],
+ },
],
});
diff --git a/packages/integration-aws-node/CHANGELOG.md b/packages/integration-aws-node/CHANGELOG.md
index e5ac2a8532..40192bdfaf 100644
--- a/packages/integration-aws-node/CHANGELOG.md
+++ b/packages/integration-aws-node/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/integration-aws-node
+## 0.1.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
## 0.1.2-next.0
### Patch Changes
diff --git a/packages/integration-aws-node/package.json b/packages/integration-aws-node/package.json
index a45cb03e14..7afc31cc47 100644
--- a/packages/integration-aws-node/package.json
+++ b/packages/integration-aws-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/integration-aws-node",
"description": "Helpers for fetching AWS account credentials",
- "version": "0.1.2-next.0",
+ "version": "0.1.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md
index 028c939822..06568497df 100644
--- a/packages/integration-react/CHANGELOG.md
+++ b/packages/integration-react/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/integration-react
+## 1.1.11
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
## 1.1.11-next.2
### Patch Changes
diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json
index 119a8683d6..681542a313 100644
--- a/packages/integration-react/package.json
+++ b/packages/integration-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/integration-react",
"description": "Frontend package for managing integrations towards external systems",
- "version": "1.1.11-next.2",
+ "version": "1.1.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/integration/CHANGELOG.md b/packages/integration/CHANGELOG.md
index 3a84452505..f81b1824fe 100644
--- a/packages/integration/CHANGELOG.md
+++ b/packages/integration/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/integration
+## 1.4.3
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
## 1.4.3-next.0
### Patch Changes
diff --git a/packages/integration/package.json b/packages/integration/package.json
index 02c19e1b1d..25e6ba8bf7 100644
--- a/packages/integration/package.json
+++ b/packages/integration/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/integration",
"description": "Helpers for managing integrations towards external systems",
- "version": "1.4.3-next.0",
+ "version": "1.4.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/packages/release-manifests/CHANGELOG.md b/packages/release-manifests/CHANGELOG.md
index fa15839a35..f59447666f 100644
--- a/packages/release-manifests/CHANGELOG.md
+++ b/packages/release-manifests/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/release-manifests
+## 0.0.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+
## 0.0.9-next.0
### Patch Changes
diff --git a/packages/release-manifests/package.json b/packages/release-manifests/package.json
index 65d1026ca6..0c6ad64446 100644
--- a/packages/release-manifests/package.json
+++ b/packages/release-manifests/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/release-manifests",
"description": "Helper library for receiving release manifests",
- "version": "0.0.9-next.0",
+ "version": "0.0.9",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md
index 996377c198..c7577cb711 100644
--- a/packages/repo-tools/CHANGELOG.md
+++ b/packages/repo-tools/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/repo-tools
+## 0.1.3
+
+### Patch Changes
+
+- 32a4a05838c: Tweaked type dependency check to trim wildcard type imports.
+- 6ba8faf22ac: The API report generation process is now able to detect and generate reports for additional entry points declared in the package `"exports"` field.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/cli-common@0.1.12
+
## 0.1.3-next.1
### Patch Changes
diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json
index 9d24bfad2c..35ea6165d3 100644
--- a/packages/repo-tools/package.json
+++ b/packages/repo-tools/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/repo-tools",
"description": "CLI for Backstage repo tooling ",
- "version": "0.1.3-next.1",
+ "version": "0.1.3",
"publishConfig": {
"access": "public"
},
diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md
index 2d2b669e38..4b74967ddf 100644
--- a/packages/techdocs-cli-embedded-app/CHANGELOG.md
+++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md
@@ -1,5 +1,24 @@
# techdocs-cli-embedded-app
+## 0.2.80
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/plugin-techdocs@1.6.0
+ - @backstage/cli@0.22.4
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/test-utils@1.2.6
+ - @backstage/core-app-api@1.6.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/app-defaults@1.2.1
+
## 0.2.80-next.2
### Patch Changes
diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json
index 2cbb1aabc8..4400ff082d 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.80-next.2",
+ "version": "0.2.80",
"private": true,
"backstage": {
"role": "frontend"
diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md
index facd967e90..3467fe86a5 100644
--- a/packages/techdocs-cli/CHANGELOG.md
+++ b/packages/techdocs-cli/CHANGELOG.md
@@ -1,5 +1,21 @@
# @techdocs/cli
+## 1.4.0
+
+### Minor Changes
+
+- 8e465ce52e2: Running `@techdocs/cli generate` with the `--verbose` flag will now print the mkdocs output.
+- ea2bbef1b16: Added support for an HTTPS proxy for techdocs AWS S3 requests
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-techdocs-node@1.6.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/catalog-model@1.2.1
+ - @backstage/cli-common@0.1.12
+ - @backstage/config@1.0.7
+
## 1.4.0-next.2
### Patch Changes
diff --git a/packages/techdocs-cli/README.md b/packages/techdocs-cli/README.md
index ae296d2c26..85c0075946 100644
--- a/packages/techdocs-cli/README.md
+++ b/packages/techdocs-cli/README.md
@@ -40,6 +40,14 @@ yarn start
yarn techdocs-cli:dev [...options]
```
+### Connecting behind a proxy
+
+```sh
+# Prior to executing the techdocs-cli command
+export GLOBAL_AGENT_HTTPS_PROXY=${HTTP_PROXY}
+export GLOBAL_AGENT_NO_PROXY=${NO_PROXY}
+```
+
### Using an example docs project
For the purpose of local development, we have created an example documentation project. You are of course also free to create your own local test site - all it takes is a `docs/index.md` and an `mkdocs.yml` in a directory.
diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json
index e8d9277871..678c73e783 100644
--- a/packages/techdocs-cli/package.json
+++ b/packages/techdocs-cli/package.json
@@ -1,7 +1,7 @@
{
"name": "@techdocs/cli",
"description": "Utility CLI for managing TechDocs sites in Backstage.",
- "version": "1.4.0-next.2",
+ "version": "1.4.0",
"publishConfig": {
"access": "public"
},
@@ -69,6 +69,7 @@
"commander": "^9.1.0",
"dockerode": "^3.3.1",
"fs-extra": "^10.0.1",
+ "global-agent": "^3.0.0",
"http-proxy": "^1.18.1",
"react-dev-utils": "^12.0.0-next.60",
"serve-handler": "^6.1.3",
diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md
index e521e9af91..2d0f57cf12 100644
--- a/packages/test-utils/CHANGELOG.md
+++ b/packages/test-utils/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/test-utils
+## 1.2.6
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 482dae5de1c: Updated link to docs.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/core-app-api@1.6.0
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/plugin-permission-react@0.4.11
+
## 1.2.6-next.2
### Patch Changes
diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json
index 59ec2ce989..7bd93443e9 100644
--- a/packages/test-utils/package.json
+++ b/packages/test-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/test-utils",
"description": "Utilities to test Backstage plugins and apps.",
- "version": "1.2.6-next.2",
+ "version": "1.2.6",
"publishConfig": {
"access": "public"
},
diff --git a/packages/theme/CHANGELOG.md b/packages/theme/CHANGELOG.md
index 2950839e68..5f25f513d4 100644
--- a/packages/theme/CHANGELOG.md
+++ b/packages/theme/CHANGELOG.md
@@ -1,5 +1,11 @@
# @backstage/theme
+## 0.2.18
+
+### Patch Changes
+
+- 482dae5de1c: Updated link to docs.
+
## 0.2.18-next.0
### Patch Changes
diff --git a/packages/theme/package.json b/packages/theme/package.json
index d24a43abdb..999fb02dac 100644
--- a/packages/theme/package.json
+++ b/packages/theme/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/theme",
"description": "material-ui theme for use with Backstage.",
- "version": "0.2.18-next.0",
+ "version": "0.2.18",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md
index 58b37f1731..c74dbd116a 100644
--- a/plugins/adr-backend/CHANGELOG.md
+++ b/plugins/adr-backend/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-adr-backend
+## 0.3.1
+
+### Patch Changes
+
+- 2a73ded3861: Support MADR v3 format
+- 8bf24946c66: Adjust express dependencies to be the same as the rest of the project
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-adr-common@0.2.7
+ - @backstage/plugin-search-common@1.2.2
+
## 0.3.1-next.2
### Patch Changes
diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json
index f73bf159b0..e759373e6c 100644
--- a/plugins/adr-backend/package.json
+++ b/plugins/adr-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-adr-backend",
- "version": "0.3.1-next.2",
+ "version": "0.3.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md
index 5040e0955c..6b5a58da2a 100644
--- a/plugins/adr-common/CHANGELOG.md
+++ b/plugins/adr-common/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-adr-common
+## 0.2.7
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-search-common@1.2.2
+
## 0.2.7-next.1
### Patch Changes
diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json
index 9eeeeb2803..e6364f7915 100644
--- a/plugins/adr-common/package.json
+++ b/plugins/adr-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-adr-common",
"description": "Common functionalities for the adr plugin",
- "version": "0.2.7-next.1",
+ "version": "0.2.7",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md
index a50f1a60d3..b5942d88a4 100644
--- a/plugins/adr/CHANGELOG.md
+++ b/plugins/adr/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-adr
+## 0.4.1
+
+### Patch Changes
+
+- d293f4aaf83: Updated readme instructions
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration-react@1.1.11
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-adr-common@0.2.7
+ - @backstage/plugin-search-common@1.2.2
+
## 0.4.1-next.2
### Patch Changes
diff --git a/plugins/adr/package.json b/plugins/adr/package.json
index 5e56c39638..7b636f4b1a 100644
--- a/plugins/adr/package.json
+++ b/plugins/adr/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-adr",
- "version": "0.4.1-next.2",
+ "version": "0.4.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md
index bcbd88a755..df44bfa651 100644
--- a/plugins/airbrake-backend/CHANGELOG.md
+++ b/plugins/airbrake-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-airbrake-backend
+## 0.2.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+
## 0.2.16-next.2
### Patch Changes
diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json
index 52bd89e909..a292f05a14 100644
--- a/plugins/airbrake-backend/package.json
+++ b/plugins/airbrake-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-airbrake-backend",
- "version": "0.2.16-next.2",
+ "version": "0.2.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md
index 088bfbdcf9..3efe9aabcd 100644
--- a/plugins/airbrake/CHANGELOG.md
+++ b/plugins/airbrake/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-airbrake
+## 0.3.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/test-utils@1.2.6
+ - @backstage/dev-utils@1.0.13
+ - @backstage/theme@0.2.18
+
## 0.3.16-next.2
### Patch Changes
diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json
index e577ee8862..6fb594951b 100644
--- a/plugins/airbrake/package.json
+++ b/plugins/airbrake/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-airbrake",
- "version": "0.3.16-next.2",
+ "version": "0.3.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md
index efde01c0b5..2e4346de7d 100644
--- a/plugins/allure/CHANGELOG.md
+++ b/plugins/allure/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-allure
+## 0.1.32
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.32-next.2
### Patch Changes
diff --git a/plugins/allure/package.json b/plugins/allure/package.json
index 18bf52feab..d76a4d455b 100644
--- a/plugins/allure/package.json
+++ b/plugins/allure/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-allure",
"description": "A Backstage plugin that integrates with Allure",
- "version": "0.1.32-next.2",
+ "version": "0.1.32",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/analytics-module-ga/CHANGELOG.md b/plugins/analytics-module-ga/CHANGELOG.md
index e457b76bf8..6a896c5447 100644
--- a/plugins/analytics-module-ga/CHANGELOG.md
+++ b/plugins/analytics-module-ga/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-analytics-module-ga
+## 0.1.27
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
## 0.1.27-next.2
### Patch Changes
diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json
index b7152b1f69..fa5ee74367 100644
--- a/plugins/analytics-module-ga/package.json
+++ b/plugins/analytics-module-ga/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-analytics-module-ga",
- "version": "0.1.27-next.2",
+ "version": "0.1.27",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/apache-airflow/CHANGELOG.md b/plugins/apache-airflow/CHANGELOG.md
index acc474e6e3..58348fbc56 100644
--- a/plugins/apache-airflow/CHANGELOG.md
+++ b/plugins/apache-airflow/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-apache-airflow
+## 0.2.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+
## 0.2.9-next.2
### Patch Changes
diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json
index 070cbc4136..9856b4608a 100644
--- a/plugins/apache-airflow/package.json
+++ b/plugins/apache-airflow/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-apache-airflow",
- "version": "0.2.9-next.2",
+ "version": "0.2.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/api-docs/CHANGELOG.md b/plugins/api-docs/CHANGELOG.md
index 56644c2322..8735ac91f8 100644
--- a/plugins/api-docs/CHANGELOG.md
+++ b/plugins/api-docs/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-api-docs
+## 0.9.1
+
+### Patch Changes
+
+- 095e755d9b5: Add ApiDefinitionDialog component for fast access to the API definition in ProvidedApiCards and ConsumedApiCards.
+- 8bc7dcec820: Fix dark theme Swagger's clear button font color.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 9820eb5d24f: Add a `columns` prop to certain components that use the `EntityTable` for easier extensibility.
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.9.1-next.2
### Patch Changes
diff --git a/plugins/api-docs/dev/asyncapi-example-api.yaml b/plugins/api-docs/dev/asyncapi-example-api.yaml
index 725811d0cc..3895006979 100644
--- a/plugins/api-docs/dev/asyncapi-example-api.yaml
+++ b/plugins/api-docs/dev/asyncapi-example-api.yaml
@@ -133,6 +133,8 @@ spec:
description: Light intensity measured in lumens.
sentAt:
$ref: "#/components/schemas/sentAt"
+ sentBy:
+ $ref: "#/components/schemas/sentBy"
turnOnOffPayload:
type: object
properties:
@@ -144,6 +146,8 @@ spec:
description: Whether to turn on or off the light.
sentAt:
$ref: "#/components/schemas/sentAt"
+ sentBy:
+ $ref: "#/components/schemas/sentBy"
dimLightPayload:
type: object
properties:
@@ -154,10 +158,25 @@ spec:
maximum: 100
sentAt:
$ref: "#/components/schemas/sentAt"
+ sentBy:
+ $ref: "#/components/schemas/sentBy"
sentAt:
type: string
format: date-time
description: Date and time when the message was sent.
+ sentBy:
+ type: object
+ description: Description of the message sender.
+ properties:
+ name:
+ type: string
+ description: Name of the sender.
+ type:
+ type: string
+ description: Type of the sender.
+ enum:
+ - user
+ - machine
securitySchemes:
apiKey:
diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json
index d7db6566f9..3e1fa380c3 100644
--- a/plugins/api-docs/package.json
+++ b/plugins/api-docs/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-api-docs",
"description": "A Backstage plugin that helps represent API entities in the frontend",
- "version": "0.9.1-next.2",
+ "version": "0.9.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx
index fd8948828c..64452b7191 100644
--- a/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx
+++ b/plugins/api-docs/src/components/AsyncApiDefinitionWidget/AsyncApiDefinition.tsx
@@ -76,6 +76,8 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({
...theme.typography.button,
borderRadius: theme.shape.borderRadius,
color: theme.palette.primary.main,
+ // override whatever may be in the theme's typography to ensure consistency with asyncapi
+ textTransform: 'inherit',
},
'& a': {
color: theme.palette.link,
diff --git a/plugins/apollo-explorer/CHANGELOG.md b/plugins/apollo-explorer/CHANGELOG.md
index 8e48be2ab8..8771768cc1 100644
--- a/plugins/apollo-explorer/CHANGELOG.md
+++ b/plugins/apollo-explorer/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-apollo-explorer
+## 0.1.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.1.9-next.2
### Patch Changes
diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json
index 0fcc315797..746f29d393 100644
--- a/plugins/apollo-explorer/package.json
+++ b/plugins/apollo-explorer/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-apollo-explorer",
- "version": "0.1.9-next.2",
+ "version": "0.1.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/app-backend/CHANGELOG.md b/plugins/app-backend/CHANGELOG.md
index 79c8276eeb..6de2196bb6 100644
--- a/plugins/app-backend/CHANGELOG.md
+++ b/plugins/app-backend/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-app-backend
+## 0.3.43
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config-loader@1.1.9
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.3.43-next.2
### Patch Changes
diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json
index 77804372d1..2c24657363 100644
--- a/plugins/app-backend/package.json
+++ b/plugins/app-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-app-backend",
"description": "A Backstage backend plugin that serves the Backstage frontend app",
- "version": "0.3.43-next.2",
+ "version": "0.3.43",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/auth-backend/CHANGELOG.md b/plugins/auth-backend/CHANGELOG.md
index a22b2e40ee..69fe145e82 100644
--- a/plugins/auth-backend/CHANGELOG.md
+++ b/plugins/auth-backend/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-auth-backend
+## 0.18.1
+
+### Patch Changes
+
+- e262738b8a0: Handle difference in expiration time between Microsoft session and Backstage session which caused the Backstage token to be invalid during a time frame.
+- 86cece2c1fb: Updated dependency `@types/passport-microsoft` to `^1.0.0`.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 529de8c4211: Added authentication provider for Azure Easy Authentication.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.18.1-next.2
### Patch Changes
diff --git a/plugins/auth-backend/config.d.ts b/plugins/auth-backend/config.d.ts
index 5aff9df90a..8d76ca8bf5 100644
--- a/plugins/auth-backend/config.d.ts
+++ b/plugins/auth-backend/config.d.ts
@@ -62,30 +62,72 @@ export interface Config {
*/
providers?: {
google?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ callbackUrl?: string;
+ };
};
github?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ callbackUrl?: string;
+ enterpriseInstanceUrl?: string;
+ };
};
gitlab?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ audience?: string;
+ callbackUrl?: string;
+ };
};
saml?: {
entryPoint: string;
logoutUrl?: string;
issuer: string;
+ /**
+ * @visibility secret
+ */
cert: string;
audience?: string;
+ /**
+ * @visibility secret
+ */
privateKey?: string;
authnContext?: string[];
identifierFormat?: string;
+ /**
+ * @visibility secret
+ */
decryptionPvk?: string;
signatureAlgorithm?: 'sha256' | 'sha512';
digestAlgorithm?: string;
acceptedClockSkewMs?: number;
};
okta?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ audience: string;
+ authServerId?: string;
+ idp?: string;
+ callbackUrl?: string;
+ };
};
oauth2?: {
[authEnv: string]: {
@@ -101,19 +143,56 @@ export interface Config {
};
};
oidc?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ callbackUrl?: string;
+ metadataUrl: string;
+ scope?: string;
+ prompt?: string;
+ };
};
auth0?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ domain: string;
+ callbackUrl?: string;
+ audience?: string;
+ connection?: string;
+ connectionScope?: string;
+ };
};
microsoft?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ tenantId: string;
+ callbackUrl?: string;
+ };
};
onelogin?: {
- [authEnv: string]: { [key: string]: string };
+ [authEnv: string]: {
+ clientId: string;
+ /**
+ * @visibility secret
+ */
+ clientSecret: string;
+ issuer: string;
+ callbackUrl?: string;
+ };
};
awsalb?: {
- issuer?: string;
+ iss?: string;
region: string;
};
cfaccess?: {
diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json
index bcc62814ed..3c0fe10a5b 100644
--- a/plugins/auth-backend/package.json
+++ b/plugins/auth-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-auth-backend",
"description": "A Backstage backend plugin that handles authentication",
- "version": "0.18.1-next.2",
+ "version": "0.18.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts
index fd2a1529a7..9b14a3c91b 100644
--- a/plugins/auth-backend/src/providers/microsoft/provider.ts
+++ b/plugins/auth-backend/src/providers/microsoft/provider.ts
@@ -50,6 +50,8 @@ import {
import { Logger } from 'winston';
import fetch from 'node-fetch';
+const BACKSTAGE_SESSION_EXPIRATION = 3600;
+
type PrivateInfo = {
refreshToken: string;
};
@@ -145,12 +147,17 @@ export class MicrosoftAuthProvider implements OAuthHandlers {
const { profile } = await this.authHandler(result, this.resolverContext);
+ const expiresInSeconds =
+ result.params.expires_in === undefined
+ ? BACKSTAGE_SESSION_EXPIRATION
+ : Math.min(result.params.expires_in, BACKSTAGE_SESSION_EXPIRATION);
+
const response: OAuthResponse = {
providerInfo: {
idToken: result.params.id_token,
accessToken: result.accessToken,
scope: result.params.scope,
- expiresInSeconds: result.params.expires_in,
+ expiresInSeconds,
},
profile,
};
diff --git a/plugins/auth-node/CHANGELOG.md b/plugins/auth-node/CHANGELOG.md
index 0e7bcefae2..6c629ad208 100644
--- a/plugins/auth-node/CHANGELOG.md
+++ b/plugins/auth-node/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-auth-node
+## 0.2.12
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
## 0.2.12-next.2
### Patch Changes
diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json
index 093b23add9..690f67b868 100644
--- a/plugins/auth-node/package.json
+++ b/plugins/auth-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-auth-node",
- "version": "0.2.12-next.2",
+ "version": "0.2.12",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/azure-devops-backend/CHANGELOG.md b/plugins/azure-devops-backend/CHANGELOG.md
index a4a7492ffc..a59697c5b0 100644
--- a/plugins/azure-devops-backend/CHANGELOG.md
+++ b/plugins/azure-devops-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-azure-devops-backend
+## 0.3.22
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-azure-devops-common@0.3.0
+
## 0.3.22-next.2
### Patch Changes
diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json
index 1d921a468a..8b2e3caf57 100644
--- a/plugins/azure-devops-backend/package.json
+++ b/plugins/azure-devops-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops-backend",
- "version": "0.3.22-next.2",
+ "version": "0.3.22",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/azure-devops/CHANGELOG.md b/plugins/azure-devops/CHANGELOG.md
index b9fcc646b7..9682fe8de8 100644
--- a/plugins/azure-devops/CHANGELOG.md
+++ b/plugins/azure-devops/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-azure-devops
+## 0.2.7
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-azure-devops-common@0.3.0
+
## 0.2.7-next.2
### Patch Changes
diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json
index f8bc46f422..01e898978f 100644
--- a/plugins/azure-devops/package.json
+++ b/plugins/azure-devops/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops",
- "version": "0.2.7-next.2",
+ "version": "0.2.7",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/azure-sites-backend/CHANGELOG.md b/plugins/azure-sites-backend/CHANGELOG.md
index 9bc9b99388..d09e308269 100644
--- a/plugins/azure-sites-backend/CHANGELOG.md
+++ b/plugins/azure-sites-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-azure-sites-backend
+## 0.1.5
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-azure-sites-common@0.1.0
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json
index 3cb7023933..0289ed01bd 100644
--- a/plugins/azure-sites-backend/package.json
+++ b/plugins/azure-sites-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-sites-backend",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/azure-sites/CHANGELOG.md b/plugins/azure-sites/CHANGELOG.md
index 1de9e7a804..99f3c57cda 100644
--- a/plugins/azure-sites/CHANGELOG.md
+++ b/plugins/azure-sites/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-azure-sites
+## 0.1.5
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-azure-sites-common@0.1.0
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json
index 6daadf199a..418d4ff578 100644
--- a/plugins/azure-sites/package.json
+++ b/plugins/azure-sites/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-sites",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/badges-backend/CHANGELOG.md b/plugins/badges-backend/CHANGELOG.md
index 837e71bcce..4d3242f09d 100644
--- a/plugins/badges-backend/CHANGELOG.md
+++ b/plugins/badges-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-badges-backend
+## 0.1.37
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+
## 0.1.37-next.2
### Patch Changes
diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json
index f570a47874..88dac005e0 100644
--- a/plugins/badges-backend/package.json
+++ b/plugins/badges-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-badges-backend",
"description": "A Backstage backend plugin that generates README badges for your entities",
- "version": "0.1.37-next.2",
+ "version": "0.1.37",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/badges/CHANGELOG.md b/plugins/badges/CHANGELOG.md
index 567c3e81d6..6f3aaa3897 100644
--- a/plugins/badges/CHANGELOG.md
+++ b/plugins/badges/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-badges
+## 0.2.40
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.2.40-next.2
### Patch Changes
diff --git a/plugins/badges/package.json b/plugins/badges/package.json
index 7e817c024d..337d36c6cf 100644
--- a/plugins/badges/package.json
+++ b/plugins/badges/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-badges",
"description": "A Backstage plugin that generates README badges for your entities",
- "version": "0.2.40-next.2",
+ "version": "0.2.40",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/bazaar-backend/CHANGELOG.md b/plugins/bazaar-backend/CHANGELOG.md
index 203c1ef67f..29aaf96358 100644
--- a/plugins/bazaar-backend/CHANGELOG.md
+++ b/plugins/bazaar-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-bazaar-backend
+## 0.2.6
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config@1.0.7
+
## 0.2.6-next.2
### Patch Changes
diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json
index c9221e5c69..97c61156d4 100644
--- a/plugins/bazaar-backend/package.json
+++ b/plugins/bazaar-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bazaar-backend",
- "version": "0.2.6-next.2",
+ "version": "0.2.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/bazaar/CHANGELOG.md b/plugins/bazaar/CHANGELOG.md
index 57ba471000..ff9fe6e97e 100644
--- a/plugins/bazaar/CHANGELOG.md
+++ b/plugins/bazaar/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-bazaar
+## 0.2.6
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/cli@0.22.4
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.2.6-next.2
### Patch Changes
diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json
index 6a2311004b..e1cf6a81b7 100644
--- a/plugins/bazaar/package.json
+++ b/plugins/bazaar/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bazaar",
- "version": "0.2.6-next.2",
+ "version": "0.2.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/bitbucket-cloud-common/CHANGELOG.md b/plugins/bitbucket-cloud-common/CHANGELOG.md
index 0902619c92..faeeca7d48 100644
--- a/plugins/bitbucket-cloud-common/CHANGELOG.md
+++ b/plugins/bitbucket-cloud-common/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-bitbucket-cloud-common
+## 0.2.4
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/integration@1.4.3
+
## 0.2.4-next.0
### Patch Changes
diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json
index 1290d9c8b8..c5cf434a60 100644
--- a/plugins/bitbucket-cloud-common/package.json
+++ b/plugins/bitbucket-cloud-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-bitbucket-cloud-common",
"description": "Common functionalities for bitbucket-cloud plugins",
- "version": "0.2.4-next.0",
+ "version": "0.2.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/bitrise/CHANGELOG.md b/plugins/bitrise/CHANGELOG.md
index 1a9d86268d..cd4b948675 100644
--- a/plugins/bitrise/CHANGELOG.md
+++ b/plugins/bitrise/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-bitrise
+## 0.1.43
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.43-next.2
### Patch Changes
diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json
index 41cb8562b5..17f7faf835 100644
--- a/plugins/bitrise/package.json
+++ b/plugins/bitrise/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-bitrise",
"description": "A Backstage plugin that integrates towards Bitrise",
- "version": "0.1.43-next.2",
+ "version": "0.1.43",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-aws/CHANGELOG.md b/plugins/catalog-backend-module-aws/CHANGELOG.md
index f4e268aae7..7b556b2d53 100644
--- a/plugins/catalog-backend-module-aws/CHANGELOG.md
+++ b/plugins/catalog-backend-module-aws/CHANGELOG.md
@@ -1,5 +1,27 @@
# @backstage/plugin-catalog-backend-module-aws
+## 0.1.17
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `awsS3EntityProviderCatalogModule` to `catalogModuleAwsS3EntityProviders` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 87f0bbec175: AwsS3UrlReader upgraded to use aws-sdk v3
+- bf611cf019a: Fix missing `dependencies` in `package.json`
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-kubernetes-common@0.6.1
+
## 0.1.17-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json
index 79271cf4de..c0e2463cfd 100644
--- a/plugins/catalog-backend-module-aws/package.json
+++ b/plugins/catalog-backend-module-aws/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-aws",
"description": "A Backstage catalog backend module that helps integrate towards AWS",
- "version": "0.1.17-next.2",
+ "version": "0.1.17",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-azure/CHANGELOG.md b/plugins/catalog-backend-module-azure/CHANGELOG.md
index 86566d383f..30ccea2776 100644
--- a/plugins/catalog-backend-module-azure/CHANGELOG.md
+++ b/plugins/catalog-backend-module-azure/CHANGELOG.md
@@ -1,5 +1,26 @@
# @backstage/plugin-catalog-backend-module-azure
+## 0.1.14
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `azureDevOpsEntityProviderCatalogModule` to `catalogModuleAzureDevOpsEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- c17fa101825: Add branch filter support
+ https://backstage.io/docs/integrations/azure/discovery
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.1.14-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json
index afe85243db..4015eb07f2 100644
--- a/plugins/catalog-backend-module-azure/package.json
+++ b/plugins/catalog-backend-module-azure/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-azure",
"description": "A Backstage catalog backend module that helps integrate towards Azure",
- "version": "0.1.14-next.2",
+ "version": "0.1.14",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
index b1de810710..90d939638c 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md
@@ -1,5 +1,26 @@
# @backstage/plugin-catalog-backend-module-bitbucket-cloud
+## 0.1.10
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `bitbucketCloudEntityProviderCatalogModule` to `catalogModuleBitbucketCloudEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-bitbucket-cloud-common@0.2.4
+ - @backstage/config@1.0.7
+
## 0.1.10-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json
index 8ed58f0333..af3b21d2d0 100644
--- a/plugins/catalog-backend-module-bitbucket-cloud/package.json
+++ b/plugins/catalog-backend-module-bitbucket-cloud/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud",
"description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud",
- "version": "0.1.10-next.2",
+ "version": "0.1.10",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
index 00341a3870..216b7f6a9a 100644
--- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md
@@ -1,5 +1,23 @@
# @backstage/plugin-catalog-backend-module-bitbucket-server
+## 0.1.8
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `bitbucketServerEntityProviderCatalogModule` to `catalogModuleBitbucketServerEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
## 0.1.8-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 433d4bc907..6cf06b432e 100644
--- a/plugins/catalog-backend-module-bitbucket-server/package.json
+++ b/plugins/catalog-backend-module-bitbucket-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-backend-module-bitbucket-server",
- "version": "0.1.8-next.2",
+ "version": "0.1.8",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
index eef6da4c0e..936303e285 100644
--- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
+++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-catalog-backend-module-bitbucket
+## 0.2.10
+
+### Patch Changes
+
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-bitbucket-cloud-common@0.2.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.2.10-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json
index 79fbbe08c4..48fad40034 100644
--- a/plugins/catalog-backend-module-bitbucket/package.json
+++ b/plugins/catalog-backend-module-bitbucket/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-bitbucket",
"description": "A Backstage catalog backend module that helps integrate towards Bitbucket",
- "version": "0.2.10-next.2",
+ "version": "0.2.10",
"deprecated": true,
"main": "src/index.ts",
"types": "src/index.ts",
diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md
index 07ab61c8c4..35913b542f 100644
--- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md
+++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md
@@ -1,5 +1,23 @@
# @backstage/plugin-catalog-backend-module-gerrit
+## 0.1.11
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `gerritEntityProviderCatalogModule` to `catalogModuleGerritEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
## 0.1.11-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json
index af9727cbf9..244bcdf1ed 100644
--- a/plugins/catalog-backend-module-gerrit/package.json
+++ b/plugins/catalog-backend-module-gerrit/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-backend-module-gerrit",
- "version": "0.1.11-next.2",
+ "version": "0.1.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-github/CHANGELOG.md b/plugins/catalog-backend-module-github/CHANGELOG.md
index 1e0c455391..22d4e10583 100644
--- a/plugins/catalog-backend-module-github/CHANGELOG.md
+++ b/plugins/catalog-backend-module-github/CHANGELOG.md
@@ -1,5 +1,29 @@
# @backstage/plugin-catalog-backend-module-github
+## 0.2.6
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 90469c02c8c: Renamed `githubEntityProviderCatalogModule` to `catalogModuleGithubEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.2.6-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json
index fe9183917e..5c9f7f67e1 100644
--- a/plugins/catalog-backend-module-github/package.json
+++ b/plugins/catalog-backend-module-github/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-github",
"description": "A Backstage catalog backend module that helps integrate towards GitHub",
- "version": "0.2.6-next.2",
+ "version": "0.2.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-gitlab/CHANGELOG.md b/plugins/catalog-backend-module-gitlab/CHANGELOG.md
index 491d972754..2bde8b2635 100644
--- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md
+++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md
@@ -1,5 +1,28 @@
# @backstage/plugin-catalog-backend-module-gitlab
+## 0.1.14
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `gitlabDiscoveryEntityProviderCatalogModule` to `catalogModuleGitlabDiscoveryEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- af1095f1e11: The configuration key `branch` of the `GitlabDiscoveryEntityProvider` has been deprecated in favor of the configuration key `fallbackBranch`.
+ It will be reused in future release to enforce a concrete branch to be used in catalog file discovery.
+ To migrate to the new configuration value, rename `branch` to `fallbackBranch`.
+- be129f8f3cd: filter gitlab groups by prefix
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.1.14-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json
index ed07ea842c..b6437cd46b 100644
--- a/plugins/catalog-backend-module-gitlab/package.json
+++ b/plugins/catalog-backend-module-gitlab/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-gitlab",
"description": "A Backstage catalog backend module that helps integrate towards GitLab",
- "version": "0.1.14-next.2",
+ "version": "0.1.14",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts b/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts
index 513a5b937f..a3bcd140ee 100644
--- a/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts
+++ b/plugins/catalog-backend-module-gitlab/src/lib/client.test.ts
@@ -18,9 +18,10 @@ import { ConfigReader } from '@backstage/config';
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { readGitLabIntegrationConfig } from '@backstage/integration';
import { getVoidLogger } from '@backstage/backend-common';
-import { rest } from 'msw';
+import { graphql, rest } from 'msw';
import { setupServer, SetupServerApi } from 'msw/node';
import { GitLabClient, paginated } from './client';
+import { GitLabGroup, GitLabUser } from './types';
const server = setupServer();
setupRequestMockHandlers(server);
@@ -30,6 +31,7 @@ const MOCK_CONFIG = readGitLabIntegrationConfig(
host: 'example.com',
token: 'test-token',
apiBaseUrl: 'https://example.com/api/v4',
+ baseUrl: 'https://example.com',
}),
);
const FAKE_PAGED_ENDPOINT = `/some-endpoint`;
@@ -259,6 +261,228 @@ describe('GitLabClient', () => {
expect(allProjects).toHaveLength(2);
});
});
+
+ it('listUsers gets all users in the instance', async () => {
+ server.use(
+ rest.get(`${MOCK_CONFIG.apiBaseUrl}/users`, (_, res, ctx) =>
+ res(
+ ctx.set('x-next-page', ''),
+ ctx.json([
+ {
+ id: 1,
+ username: 'test1',
+ name: 'Test Testit',
+ state: 'active',
+ avatar_url: 'https://secure.gravatar.com/',
+ web_url: 'https://gitlab.example/test1',
+ created_at: '2023-01-19T07:27:03.333Z',
+ bio: '',
+ location: null,
+ public_email: null,
+ skype: '',
+ linkedin: '',
+ twitter: '',
+ website_url: '',
+ organization: null,
+ job_title: '',
+ pronouns: null,
+ bot: false,
+ work_information: null,
+ followers: 0,
+ following: 0,
+ is_followed: false,
+ local_time: null,
+ last_sign_in_at: '2023-01-19T07:27:49.601Z',
+ confirmed_at: '2023-01-19T07:27:02.905Z',
+ last_activity_on: '2023-01-19',
+ email: 'test@example.com',
+ theme_id: 1,
+ color_scheme_id: 1,
+ projects_limit: 100000,
+ current_sign_in_at: '2023-01-19T09:09:10.676Z',
+ identities: [],
+ can_create_group: true,
+ can_create_project: true,
+ two_factor_enabled: false,
+ external: false,
+ private_profile: false,
+ commit_email: 'test@example.com',
+ is_admin: false,
+ note: '',
+ },
+ ]),
+ ),
+ ),
+ );
+ const client = new GitLabClient({
+ config: MOCK_CONFIG,
+ logger: getVoidLogger(),
+ });
+
+ const allUsers: GitLabUser[] = [];
+ for await (const user of paginated(
+ options => client.listUsers(options),
+ {},
+ )) {
+ allUsers.push(user);
+ }
+
+ expect(allUsers).toMatchObject([
+ {
+ id: 1,
+ username: 'test1',
+ email: 'test@example.com',
+ name: 'Test Testit',
+ state: 'active',
+ web_url: 'https://gitlab.example/test1',
+ avatar_url: 'https://secure.gravatar.com/',
+ },
+ ]);
+ });
+
+ it('listGroups gets all groups in the instance', async () => {
+ server.use(
+ rest.get(`${MOCK_CONFIG.apiBaseUrl}/groups`, (_, res, ctx) =>
+ res(
+ ctx.set('x-next-page', ''),
+ ctx.json([
+ {
+ id: 1,
+ web_url: 'https://gitlab.example/groups/group1',
+ name: 'group1',
+ path: 'group1',
+ description: '',
+ visibility: 'internal',
+ share_with_group_lock: false,
+ require_two_factor_authentication: false,
+ two_factor_grace_period: 48,
+ project_creation_level: 'developer',
+ auto_devops_enabled: null,
+ subgroup_creation_level: 'owner',
+ emails_disabled: null,
+ mentions_disabled: null,
+ lfs_enabled: true,
+ default_branch_protection: 2,
+ avatar_url: null,
+ request_access_enabled: false,
+ full_name: '8020',
+ full_path: '8020',
+ created_at: '2017-06-19T06:42:34.160Z',
+ parent_id: null,
+ },
+ ]),
+ ),
+ ),
+ );
+ const client = new GitLabClient({
+ config: MOCK_CONFIG,
+ logger: getVoidLogger(),
+ });
+
+ const allGroups: GitLabGroup[] = [];
+ for await (const group of paginated(
+ options => client.listGroups(options),
+ {},
+ )) {
+ allGroups.push(group);
+ }
+
+ expect(allGroups).toMatchObject([
+ {
+ id: 1,
+ name: 'group1',
+ full_path: '8020',
+ description: '',
+ parent_id: null,
+ },
+ ]);
+ });
+
+ describe('getGroupMembers', () => {
+ it('gets member IDs', async () => {
+ server.use(
+ graphql
+ .link(`${MOCK_CONFIG.baseUrl}/api/graphql`)
+ .operation((_, res, ctx) =>
+ res(
+ ctx.data({
+ group: {
+ groupMembers: {
+ nodes: [{ user: { id: 'gid://gitlab/User/1' } }],
+ pageInfo: {
+ endCursor: 'end',
+ hasNextPage: false,
+ },
+ },
+ },
+ }),
+ ),
+ ),
+ );
+ const client = new GitLabClient({
+ config: MOCK_CONFIG,
+ logger: getVoidLogger(),
+ });
+
+ const members = await client.getGroupMembers('group1');
+
+ expect(members).toEqual([1]);
+ });
+
+ it('rejects when GraphQL returns errors', async () => {
+ server.use(
+ graphql
+ .link(`${MOCK_CONFIG.baseUrl}/api/graphql`)
+ .operation((_, res, ctx) =>
+ res(
+ ctx.errors([
+ { message: 'Unexpected end of document', locations: [] },
+ ]),
+ ),
+ ),
+ );
+ const client = new GitLabClient({
+ config: MOCK_CONFIG,
+ logger: getVoidLogger(),
+ });
+
+ await expect(() => client.getGroupMembers('group1')).rejects.toThrow(
+ 'GraphQL errors: [{"message":"Unexpected end of document","locations":[]}]',
+ );
+ });
+
+ it('traverses multi-page results', async () => {
+ server.use(
+ graphql
+ .link(`${MOCK_CONFIG.baseUrl}/api/graphql`)
+ .operation((req, res, ctx) =>
+ res(
+ ctx.data({
+ group: {
+ groupMembers: {
+ nodes: req.variables.endCursor
+ ? [{ user: { id: 'gid://gitlab/User/2' } }]
+ : [{ user: { id: 'gid://gitlab/User/1' } }],
+ pageInfo: {
+ endCursor: req.variables.endCursor ? 'end' : 'next',
+ hasNextPage: !req.variables.endCursor,
+ },
+ },
+ },
+ }),
+ ),
+ ),
+ );
+ const client = new GitLabClient({
+ config: MOCK_CONFIG,
+ logger: getVoidLogger(),
+ });
+
+ const members = await client.getGroupMembers('group1');
+
+ expect(members).toEqual([1, 2]);
+ });
+ });
});
describe('paginated', () => {
diff --git a/plugins/catalog-backend-module-gitlab/src/lib/client.ts b/plugins/catalog-backend-module-gitlab/src/lib/client.ts
index bad0eb2a86..8f8c67895c 100644
--- a/plugins/catalog-backend-module-gitlab/src/lib/client.ts
+++ b/plugins/catalog-backend-module-gitlab/src/lib/client.ts
@@ -20,7 +20,7 @@ import {
GitLabIntegrationConfig,
} from '@backstage/integration';
import { Logger } from 'winston';
-import { GitLabGroup, GitLabMembership, GitLabUser } from './types';
+import { GitLabGroup, GitLabGroupMembersResponse, GitLabUser } from './types';
export type CommonListOptions = {
[key: string]: string | number | boolean | undefined;
@@ -78,16 +78,11 @@ export class GitLabClient {
async listUsers(
options?: UserListOptions,
): Promise> {
- let requestOptions = options;
-
- if (!requestOptions) {
- requestOptions = {};
- }
-
- requestOptions.without_project_bots = true;
- requestOptions.exclude_internal = true;
-
- return this.pagedRequest(`/users?`, requestOptions);
+ return this.pagedRequest(`/users?`, {
+ ...options,
+ without_project_bots: true,
+ exclude_internal: true,
+ });
}
async listGroups(
@@ -96,30 +91,51 @@ export class GitLabClient {
return this.pagedRequest(`/groups`, options);
}
- async getUserMemberships(userId: number): Promise {
- const endpoint: string = `/users/${encodeURIComponent(userId)}/memberships`;
- const request = new URL(`${this.config.apiBaseUrl}${endpoint}`);
- request.searchParams.append('per_page', '100');
-
- const response = await fetch(request.toString(), {
- headers: getGitLabRequestOptions(this.config).headers,
- method: 'GET',
- });
-
- if (!response.ok) {
- if (response.status >= 500) {
- this.logger.debug(
- `Unexpected response when fetching ${request.toString()}. Expected 200 but got ${
- response.status
- } - ${response.statusText}`,
- );
+ async getGroupMembers(groupPath: string): Promise {
+ const memberIds = [];
+ let hasNextPage: boolean = false;
+ let endCursor: string | null = null;
+ do {
+ const response: GitLabGroupMembersResponse = await fetch(
+ `${this.config.baseUrl}/api/graphql`,
+ {
+ method: 'POST',
+ headers: {
+ ...getGitLabRequestOptions(this.config).headers,
+ ['Content-Type']: 'application/json',
+ },
+ body: JSON.stringify({
+ variables: { group: groupPath, endCursor },
+ query: `query($group: ID!, $endCursor: String) {
+ group(fullPath: $group) {
+ groupMembers(first: 100, relations: [DIRECT], after: $endCursor) {
+ nodes {
+ user {
+ id
+ }
+ }
+ pageInfo {
+ endCursor
+ hasNextPage
+ }
+ }
+ }
+ }`,
+ }),
+ },
+ ).then(r => r.json());
+ if (response.errors) {
+ throw new Error(`GraphQL errors: ${JSON.stringify(response.errors)}`);
}
- return [];
- }
-
- return response.json().then(items => {
- return items as GitLabMembership[];
- });
+ memberIds.push(
+ ...response.data.group.groupMembers.nodes.map(
+ (node: { user: { id: string } }) =>
+ Number(node.user.id.replace(/^gid:\/\/gitlab\/User\//, '')),
+ ),
+ );
+ ({ hasNextPage, endCursor } = response.data.group.groupMembers.pageInfo);
+ } while (hasNextPage);
+ return memberIds;
}
/**
diff --git a/plugins/catalog-backend-module-gitlab/src/lib/types.ts b/plugins/catalog-backend-module-gitlab/src/lib/types.ts
index c3fc8a4ede..b4480efdc2 100644
--- a/plugins/catalog-backend-module-gitlab/src/lib/types.ts
+++ b/plugins/catalog-backend-module-gitlab/src/lib/types.ts
@@ -50,11 +50,19 @@ export type GitLabGroup = {
parent_id?: number;
};
-export type GitLabMembership = {
- source_id: number;
- source_name: string;
- source_type: string;
- access_level: number;
+export type GitLabGroupMembersResponse = {
+ errors: { message: string }[];
+ data: {
+ group: {
+ groupMembers: {
+ nodes: { user: { id: string } }[];
+ pageInfo: {
+ endCursor: string;
+ hasNextPage: boolean;
+ };
+ };
+ };
+ };
};
export type GitlabProviderConfig = {
diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts
index 5a323a8dec..3d6ff0a91a 100644
--- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts
+++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.test.ts
@@ -23,7 +23,7 @@ import {
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
-import { rest } from 'msw';
+import { graphql, rest } from 'msw';
import { setupServer } from 'msw/node';
import { GitlabOrgDiscoveryEntityProvider } from './GitlabOrgDiscoveryEntityProvider';
@@ -318,20 +318,26 @@ describe('GitlabOrgDiscoveryEntityProvider', () => {
];
return res(ctx.json(response));
}),
- rest.get(
- `https://api.gitlab.example/api/v4/users/1/memberships`,
- (_req, res, ctx) => {
- const response = [
- {
- source_id: 2,
- source_name: 'Group 2',
- source_type: 'Namespace',
- access_level: 50,
- },
- ];
- return res(ctx.json(response));
- },
- ),
+ graphql
+ .link('https://test-gitlab/api/graphql')
+ .operation(async (req, res, ctx) =>
+ res(
+ ctx.data({
+ group: {
+ groupMembers: {
+ nodes:
+ req.variables.group === 'group1/group2'
+ ? [{ user: { id: 'gid://gitlab/User/1' } }]
+ : [],
+ pageInfo: {
+ endCursor: 'end',
+ hasNextPage: false,
+ },
+ },
+ },
+ }),
+ ),
+ ),
);
await provider.connect(entityProviderConnection);
diff --git a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts
index acfa784c2e..12cdf40e0c 100644
--- a/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts
+++ b/plugins/catalog-backend-module-gitlab/src/providers/GitlabOrgDiscoveryEntityProvider.ts
@@ -185,7 +185,7 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
},
);
- const idMappedGroup: { [groupId: number]: GitLabGroup } = {};
+ const idMappedUser: { [userId: number]: GitLabUser } = {};
const res: Result = {
scanned: 0,
@@ -197,6 +197,21 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
matches: [],
};
+ for await (const user of users) {
+ if (!this.config.userPattern.test(user.email ?? user.username ?? '')) {
+ continue;
+ }
+
+ res.scanned++;
+
+ if (user.state !== 'active') {
+ continue;
+ }
+
+ idMappedUser[user.id] = user;
+ res.matches.push(user);
+ }
+
for await (const group of groups) {
if (!this.config.groupPattern.test(group.full_path ?? '')) {
continue;
@@ -212,35 +227,12 @@ export class GitlabOrgDiscoveryEntityProvider implements EntityProvider {
groupRes.scanned++;
groupRes.matches.push(group);
- idMappedGroup[group.id] = group;
- }
-
- for await (const user of users) {
- if (!this.config.userPattern.test(user.email ?? user.username ?? '')) {
- continue;
- }
-
- res.scanned++;
-
- if (user.state !== 'active') {
- continue;
- }
-
- const memberships = await client.getUserMemberships(user.id);
- const userGroups: GitLabGroup[] = [];
-
- for (const i of memberships) {
- if (
- i.source_type === 'Namespace' &&
- idMappedGroup.hasOwnProperty(i.source_id)
- ) {
- userGroups.push(idMappedGroup[i.source_id]);
+ for (const id of await client.getGroupMembers(group.full_path)) {
+ const user = idMappedUser[id];
+ if (user) {
+ user.groups = (user.groups ?? []).concat(group);
}
}
-
- user.groups = userGroups;
-
- res.matches.push(user);
}
const groupsWithUsers = groupRes.matches.filter(group => {
diff --git a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
index 11393c6db2..d411c63ed2 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
+++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md
@@ -1,5 +1,30 @@
# @backstage/plugin-catalog-backend-module-incremental-ingestion
+## 0.3.0
+
+### Minor Changes
+
+- a811bd246c4: Added endpoint to get a list of known incremental entity providers
+
+### Patch Changes
+
+- 90469c02c8c: Renamed `incrementalIngestionEntityProviderCatalogModule` to `catalogModuleIncrementalIngestionEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- bf611cf019a: Fix missing `dependencies` in `package.json`
+- 6e612b58577: Move `@backstage/backend-defaults` to `devDependencies`
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
## 0.3.0-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json
index 5b2a534fcb..df86610dce 100644
--- a/plugins/catalog-backend-module-incremental-ingestion/package.json
+++ b/plugins/catalog-backend-module-incremental-ingestion/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-incremental-ingestion",
"description": "An entity provider for streaming large asset sources into the catalog",
- "version": "0.3.0-next.2",
+ "version": "0.3.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend-module-ldap/CHANGELOG.md b/plugins/catalog-backend-module-ldap/CHANGELOG.md
index 5e176f09ba..99503f83bf 100644
--- a/plugins/catalog-backend-module-ldap/CHANGELOG.md
+++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-catalog-backend-module-ldap
+## 0.5.10
+
+### Patch Changes
+
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.5.10-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-ldap/api-report.md b/plugins/catalog-backend-module-ldap/api-report.md
index 088e34fc34..997ad55560 100644
--- a/plugins/catalog-backend-module-ldap/api-report.md
+++ b/plugins/catalog-backend-module-ldap/api-report.md
@@ -11,7 +11,7 @@ import { EntityProvider } from '@backstage/plugin-catalog-node';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { GroupEntity } from '@backstage/catalog-model';
import { JsonValue } from '@backstage/types';
-import { LocationSpec } from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
import { Logger } from 'winston';
import { SearchEntry } from 'ldapjs';
import { SearchOptions } from 'ldapjs';
diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json
index 06b33f1db2..84f5ea88d2 100644
--- a/plugins/catalog-backend-module-ldap/package.json
+++ b/plugins/catalog-backend-module-ldap/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-ldap",
"description": "A Backstage catalog backend module that helps integrate towards LDAP",
- "version": "0.5.10-next.2",
+ "version": "0.5.10",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -36,6 +36,7 @@
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/errors": "workspace:^",
+ "@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@backstage/types": "workspace:^",
"@types/ldapjs": "^2.2.0",
diff --git a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts
index 9c5442ca0c..00578ac3a4 100644
--- a/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts
+++ b/plugins/catalog-backend-module-ldap/src/processors/LdapOrgReaderProcessor.ts
@@ -27,9 +27,9 @@ import {
import {
CatalogProcessor,
CatalogProcessorEmit,
- LocationSpec,
processingResult,
} from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
/**
* Extracts teams and users out of an LDAP server.
diff --git a/plugins/catalog-backend-module-msgraph/CHANGELOG.md b/plugins/catalog-backend-module-msgraph/CHANGELOG.md
index dc1a32f25a..37393dfd7b 100644
--- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md
+++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md
@@ -1,5 +1,24 @@
# @backstage/plugin-catalog-backend-module-msgraph
+## 0.5.2
+
+### Patch Changes
+
+- a4ebd513527: Revert using `baseUrl` for MS Graph provider as it breaks token retrieval
+- 26eef93c547: Fixed msgraph catalog backend to use user.select option when fetching user from AzureAD
+- 90469c02c8c: Renamed `microsoftGraphOrgEntityProviderCatalogModule` to `catalogModuleMicrosoftGraphOrgEntityProvider` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 2c234a89325: properly support custom graph api URL
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+
## 0.5.2-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-msgraph/api-report.md b/plugins/catalog-backend-module-msgraph/api-report.md
index bde8c06fbb..3e4d8d99bc 100644
--- a/plugins/catalog-backend-module-msgraph/api-report.md
+++ b/plugins/catalog-backend-module-msgraph/api-report.md
@@ -9,7 +9,7 @@ import { Config } from '@backstage/config';
import { EntityProvider } from '@backstage/plugin-catalog-node';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { GroupEntity } from '@backstage/catalog-model';
-import { LocationSpec } from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
import { Logger } from 'winston';
import * as MicrosoftGraph from '@microsoft/microsoft-graph-types';
import { PluginTaskScheduler } from '@backstage/backend-tasks';
diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json
index f66151bbc4..9df7e8f361 100644
--- a/plugins/catalog-backend-module-msgraph/package.json
+++ b/plugins/catalog-backend-module-msgraph/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-msgraph",
"description": "A Backstage catalog backend module that helps integrate towards Microsoft Graph",
- "version": "0.5.2-next.2",
+ "version": "0.5.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -51,6 +51,7 @@
"@backstage/backend-tasks": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
+ "@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@microsoft/microsoft-graph-types": "^2.6.0",
"@types/node-fetch": "^2.5.12",
diff --git a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts
index 2beef51c31..d9119a3c4d 100644
--- a/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts
+++ b/plugins/catalog-backend-module-msgraph/src/processors/MicrosoftGraphOrgReaderProcessor.ts
@@ -18,9 +18,9 @@ import { Config } from '@backstage/config';
import {
CatalogProcessor,
CatalogProcessorEmit,
- LocationSpec,
processingResult,
} from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
import { Logger } from 'winston';
import {
GroupTransformer,
diff --git a/plugins/catalog-backend-module-openapi/CHANGELOG.md b/plugins/catalog-backend-module-openapi/CHANGELOG.md
index 8bf478947a..414f7960cd 100644
--- a/plugins/catalog-backend-module-openapi/CHANGELOG.md
+++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-catalog-backend-module-openapi
+## 0.1.9
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.1.9-next.2
### Patch Changes
diff --git a/plugins/catalog-backend-module-openapi/api-report.md b/plugins/catalog-backend-module-openapi/api-report.md
index c2af9cbe01..455816645a 100644
--- a/plugins/catalog-backend-module-openapi/api-report.md
+++ b/plugins/catalog-backend-module-openapi/api-report.md
@@ -3,11 +3,11 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
-import { CatalogProcessor } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
import { Entity } from '@backstage/catalog-model';
import { JsonValue } from '@backstage/types';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
import { Logger } from 'winston';
import { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend';
import { ScmIntegrations } from '@backstage/integration';
diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json
index fee080d1bf..948409a11c 100644
--- a/plugins/catalog-backend-module-openapi/package.json
+++ b/plugins/catalog-backend-module-openapi/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-openapi",
"description": "A Backstage catalog backend module that helps with OpenAPI specifications",
- "version": "0.1.9-next.2",
+ "version": "0.1.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -38,6 +38,7 @@
"@backstage/config": "workspace:^",
"@backstage/integration": "workspace:^",
"@backstage/plugin-catalog-backend": "workspace:^",
+ "@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@backstage/types": "workspace:^",
"winston": "^3.2.1",
diff --git a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts
index 9dcadad61d..6b00519b2f 100644
--- a/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts
+++ b/plugins/catalog-backend-module-openapi/src/OpenApiRefProcessor.ts
@@ -17,10 +17,8 @@ import { UrlReader } from '@backstage/backend-common';
import { Entity } from '@backstage/catalog-model';
import { Config } from '@backstage/config';
import { ScmIntegrations } from '@backstage/integration';
-import {
- CatalogProcessor,
- LocationSpec,
-} from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
import { bundleFileWithRefs } from './lib';
import { Logger } from 'winston';
diff --git a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md
index 5bc50ae148..d3ccdb6782 100644
--- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md
+++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md
@@ -1,5 +1,25 @@
# @backstage/plugin-catalog-backend-module-puppetdb
+## 0.1.0
+
+### Minor Changes
+
+- a1efcf9a658: Initial version of the plugin.
+
+### Patch Changes
+
+- 561ce41191d: Added a `catalogModulePuppetDbEntityProvider` alpha export for the new backend system
+- e675f902980: Make sure to not use deprecated exports from `@backstage/plugin-catalog-backend`
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.1.0-next.0
### Minor Changes
diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json
index 252fe21969..3334e3d204 100644
--- a/plugins/catalog-backend-module-puppetdb/package.json
+++ b/plugins/catalog-backend-module-puppetdb/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-puppetdb",
"description": "A Backstage catalog backend module that helps integrate towards PuppetDB",
- "version": "0.1.0-next.0",
+ "version": "0.1.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend/CHANGELOG.md b/plugins/catalog-backend/CHANGELOG.md
index 1cc3b3620a..0a3c5853e0 100644
--- a/plugins/catalog-backend/CHANGELOG.md
+++ b/plugins/catalog-backend/CHANGELOG.md
@@ -1,5 +1,59 @@
# @backstage/plugin-catalog-backend
+## 1.8.0
+
+### Minor Changes
+
+- 7f4ea3d3602: Add /entities/by-query endpoint returning paginated entities.
+
+ The endpoint supports cursor base pagination and server side sorting of the entities
+
+### Patch Changes
+
+- e675f902980: Add deprecations for symbols that were moved to `@backstage/plugin-catalog-node` a long time ago:
+
+ - `CatalogProcessor`
+ - `CatalogProcessorCache`
+ - `CatalogProcessorEmit`
+ - `CatalogProcessorEntityResult`
+ - `CatalogProcessorErrorResult`
+ - `CatalogProcessorLocationResult`
+ - `CatalogProcessorParser`
+ - `CatalogProcessorRefreshKeysResult`
+ - `CatalogProcessorRelationResult`
+ - `CatalogProcessorResult`
+ - `DeferredEntity`
+ - `EntityProvider`
+ - `EntityProviderConnection`
+ - `EntityProviderMutation`
+ - `EntityRelationSpec`
+ - `processingResult`
+
+ Also moved over and deprecated the following symbols:
+
+ - `locationSpecToLocationEntity`
+ - `locationSpecToMetadataName`
+
+- ac8929f2f31: Fix export of `defaultCatalogCollatorEntityTransformer`.
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- f093ce83d58: Fix a bug where the batch fetch by ref endpoint did not work in conjunction with filtering (e.g. if authorization was enabled).
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-common@1.2.6
+ - @backstage/plugin-search-common@1.2.2
+
## 1.8.0-next.2
### Patch Changes
diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json
index 35eac97cc1..1e837fd9ba 100644
--- a/plugins/catalog-backend/package.json
+++ b/plugins/catalog-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend",
"description": "The Backstage backend plugin that provides the Backstage catalog",
- "version": "1.8.0-next.2",
+ "version": "1.8.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-backend/src/modules/core/LocationEntityProcessor.test.ts b/plugins/catalog-backend/src/modules/core/LocationEntityProcessor.test.ts
index 68c073eb0a..5e000f87d6 100644
--- a/plugins/catalog-backend/src/modules/core/LocationEntityProcessor.test.ts
+++ b/plugins/catalog-backend/src/modules/core/LocationEntityProcessor.test.ts
@@ -21,7 +21,7 @@ import {
} from '@backstage/integration';
import path from 'path';
import { toAbsoluteUrl } from './LocationEntityProcessor';
-import { LocationSpec } from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
describe('LocationEntityProcessor', () => {
describe('toAbsoluteUrl', () => {
diff --git a/plugins/catalog-common/CHANGELOG.md b/plugins/catalog-common/CHANGELOG.md
index 813d888be2..37862d47bd 100644
--- a/plugins/catalog-common/CHANGELOG.md
+++ b/plugins/catalog-common/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-catalog-common
+## 1.0.12
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/plugin-search-common@1.2.2
+
## 1.0.12-next.1
### Patch Changes
diff --git a/plugins/catalog-common/package.json b/plugins/catalog-common/package.json
index e2423f834b..aa7f26f4df 100644
--- a/plugins/catalog-common/package.json
+++ b/plugins/catalog-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-common",
"description": "Common functionalities for the catalog plugin",
- "version": "1.0.12-next.1",
+ "version": "1.0.12",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-customized/CHANGELOG.md b/plugins/catalog-customized/CHANGELOG.md
index 654672a156..c155405317 100644
--- a/plugins/catalog-customized/CHANGELOG.md
+++ b/plugins/catalog-customized/CHANGELOG.md
@@ -1,5 +1,13 @@
# @internal/plugin-catalog-customized
+## 0.0.8
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/plugin-catalog-react@1.4.0
+
## 0.0.8-next.2
### Patch Changes
diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json
index 20ef38355b..59159bfe84 100644
--- a/plugins/catalog-customized/package.json
+++ b/plugins/catalog-customized/package.json
@@ -1,7 +1,7 @@
{
"name": "@internal/plugin-catalog-customized",
"description": "The internal Backstage Customizable plugin for browsing the Backstage catalog",
- "version": "0.0.8-next.2",
+ "version": "0.0.8",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-graph/CHANGELOG.md b/plugins/catalog-graph/CHANGELOG.md
index bd0a9d7c76..04d714d024 100644
--- a/plugins/catalog-graph/CHANGELOG.md
+++ b/plugins/catalog-graph/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-catalog-graph
+## 0.2.28
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.2.28-next.2
### Patch Changes
diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json
index ab7e7e78a9..1ae663f32c 100644
--- a/plugins/catalog-graph/package.json
+++ b/plugins/catalog-graph/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-graph",
- "version": "0.2.28-next.2",
+ "version": "0.2.28",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-graphql/CHANGELOG.md b/plugins/catalog-graphql/CHANGELOG.md
index 64721ef98e..740ed8905a 100644
--- a/plugins/catalog-graphql/CHANGELOG.md
+++ b/plugins/catalog-graphql/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-catalog-graphql
+## 0.3.19
+
+### Patch Changes
+
+- b990021ddeb: Updated dependency `@graphql-codegen/cli` to `^3.0.0`.
+ Updated dependency `@graphql-codegen/graphql-modules-preset` to `^3.0.0`.
+ Updated dependency `@graphql-codegen/typescript` to `^3.0.0`.
+ Updated dependency `@graphql-codegen/typescript-resolvers` to `^3.0.0`.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.3.19-next.1
### Patch Changes
diff --git a/plugins/catalog-graphql/package.json b/plugins/catalog-graphql/package.json
index 0c6fc28c09..ba7641febe 100644
--- a/plugins/catalog-graphql/package.json
+++ b/plugins/catalog-graphql/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-graphql",
"description": "An experimental Backstage catalog GraphQL module",
- "version": "0.3.19-next.1",
+ "version": "0.3.19",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -34,10 +34,11 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
+ "@apollo/client": "^3.0.0",
+ "@apollo/server": "^4.0.0",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/types": "workspace:^",
- "apollo-server": "^3.0.0",
"graphql": "^16.0.0",
"graphql-modules": "^2.0.0",
"graphql-tag": "^2.11.0",
diff --git a/plugins/catalog-graphql/src/graphql/module.test.ts b/plugins/catalog-graphql/src/graphql/module.test.ts
index 5490c2030a..d4589a2625 100644
--- a/plugins/catalog-graphql/src/graphql/module.test.ts
+++ b/plugins/catalog-graphql/src/graphql/module.test.ts
@@ -22,7 +22,7 @@ import { ConfigReader } from '@backstage/config';
import { ReaderEntity } from '../service/client';
import { createLogger } from 'winston';
import { setupRequestMockHandlers } from '@backstage/test-utils';
-import { gql } from 'apollo-server';
+import { gql } from '@apollo/client';
import { Module, createApplication, testkit } from 'graphql-modules';
describe('Catalog Module', () => {
diff --git a/plugins/catalog-import/CHANGELOG.md b/plugins/catalog-import/CHANGELOG.md
index 0451769b82..d29890d836 100644
--- a/plugins/catalog-import/CHANGELOG.md
+++ b/plugins/catalog-import/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-catalog-import
+## 0.9.6
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
## 0.9.6-next.2
### Patch Changes
diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json
index baddab4656..a9e38367b9 100644
--- a/plugins/catalog-import/package.json
+++ b/plugins/catalog-import/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-import",
"description": "A Backstage plugin the helps you import entities into your catalog",
- "version": "0.9.6-next.2",
+ "version": "0.9.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-node/CHANGELOG.md b/plugins/catalog-node/CHANGELOG.md
index 8ed02981ca..71333f339c 100644
--- a/plugins/catalog-node/CHANGELOG.md
+++ b/plugins/catalog-node/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-catalog-node
+## 1.3.4
+
+### Patch Changes
+
+- e675f902980: Added `locationSpecToMetadataName` and `locationSpecToLocationEntity` as their new home, moved over from the backend package where they now are marked as deprecated.
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/types@1.0.2
+
## 1.3.4-next.2
### Patch Changes
diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json
index d5ad3b86ea..e95258f59b 100644
--- a/plugins/catalog-node/package.json
+++ b/plugins/catalog-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-node",
"description": "The plugin-catalog-node module for @backstage/plugin-catalog-backend",
- "version": "1.3.4-next.2",
+ "version": "1.3.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog-react/CHANGELOG.md b/plugins/catalog-react/CHANGELOG.md
index 4d8acf0936..1436ea2b2f 100644
--- a/plugins/catalog-react/CHANGELOG.md
+++ b/plugins/catalog-react/CHANGELOG.md
@@ -1,5 +1,30 @@
# @backstage/plugin-catalog-react
+## 1.4.0
+
+### Minor Changes
+
+- 0a5b73b2926: Add possibility to re-use EntityPicker for filters with multiple select.
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 24916d23494: Do not close `Autocomplete` powered multiple-selection filters when checking boxes
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+ - @backstage/plugin-permission-react@0.4.11
+
## 1.4.0-next.2
### Patch Changes
diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json
index 8f0b9627c7..a905dea1f6 100644
--- a/plugins/catalog-react/package.json
+++ b/plugins/catalog-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-react",
"description": "A frontend library that helps other Backstage plugins interact with the catalog",
- "version": "1.4.0-next.2",
+ "version": "1.4.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog/CHANGELOG.md b/plugins/catalog/CHANGELOG.md
index 873c90de07..239a7e6057 100644
--- a/plugins/catalog/CHANGELOG.md
+++ b/plugins/catalog/CHANGELOG.md
@@ -1,5 +1,54 @@
# @backstage/plugin-catalog
+## 1.9.0
+
+### Minor Changes
+
+- 23cc40039c0: Allow `EntitySwitch` to render all cases that match the condition.
+
+ This change introduces a new parameter for the `EntitySwitch` component
+ `renderMultipleMatches`. In case the parameter value is `all`, the `EntitySwitch`
+ will render all `EntitySwitch.Case` that contain `if` parameter, and it
+ evaluates to true. In case none of the cases match, the default case will be
+ rendered, if any.
+
+ This means for example in the CI/CD page you can now do the following:
+
+ ```tsx
+
+ Jenkins
+ CodeBuild
+ No CI/CD
+
+ ```
+
+ This allows the component to have multiple CI/CD systems and all of those are
+ rendered on the same page.
+
+- 3f75b7607ca: Add ability to pass icon as function to have ability to customize it by search item
+- c9a9f3c834f: Add a `columns` prop to certain components that use the `EntityTable` for easier extensibility.
+
+### Patch Changes
+
+- 3fa41696820: Make the "Copied!" message disappear automatically after some time
+- 7e8930ae1c6: Fix icon alignment in `CatalogSearchResultListItem`
+- dbbde6ed353: fix entity switch rendering when there is no default case
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration-react@1.1.11
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/plugin-search-common@1.2.2
+
## 1.9.0-next.2
### Minor Changes
diff --git a/plugins/catalog/api-report.md b/plugins/catalog/api-report.md
index d891ebb7c8..c678ce1d3d 100644
--- a/plugins/catalog/api-report.md
+++ b/plugins/catalog/api-report.md
@@ -444,6 +444,11 @@ export function isNamespace(
// @public
export function isOrphan(entity: Entity): boolean;
+// @public
+export function isResourceType(
+ types: string | string[],
+): (entity: Entity) => boolean;
+
// @public (undocumented)
export type PluginCatalogComponentsNameToClassKey = {
PluginCatalogEntityLinksEmptyState: EntityLinksEmptyStateClassKey;
diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json
index c66ae8fb5e..782ab6051a 100644
--- a/plugins/catalog/package.json
+++ b/plugins/catalog/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog",
"description": "The Backstage plugin for browsing the Backstage catalog",
- "version": "1.9.0-next.2",
+ "version": "1.9.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx
index 675f74fa8d..1961fe6cac 100644
--- a/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx
+++ b/plugins/catalog/src/components/EntityContextMenu/EntityContextMenu.tsx
@@ -90,9 +90,13 @@ export function EntityContextMenu(props: EntityContextMenuProps) {
const alertApi = useApi(alertApiRef);
const copyToClipboard = useCallback(() => {
- window.navigator.clipboard
- .writeText(window.location.toString())
- .then(() => alertApi.post({ message: 'Copied!', severity: 'info' }));
+ window.navigator.clipboard.writeText(window.location.toString()).then(() =>
+ alertApi.post({
+ message: 'Copied!',
+ severity: 'info',
+ display: 'transient',
+ }),
+ );
}, [alertApi]);
const extraItems = UNSTABLE_extraContextMenuItems && [
diff --git a/plugins/catalog/src/components/EntitySwitch/conditions.test.ts b/plugins/catalog/src/components/EntitySwitch/conditions.test.ts
index dfed546fd8..5d8c7c8898 100644
--- a/plugins/catalog/src/components/EntitySwitch/conditions.test.ts
+++ b/plugins/catalog/src/components/EntitySwitch/conditions.test.ts
@@ -15,7 +15,33 @@
*/
import { Entity } from '@backstage/catalog-model';
-import { isComponentType, isKind, isNamespace } from './conditions';
+import {
+ isComponentType,
+ isKind,
+ isNamespace,
+ isResourceType,
+} from './conditions';
+
+const kubernetesClusterResource: Entity = {
+ apiVersion: '',
+ kind: 'Resource',
+ metadata: { name: 'aKubernetesCluster' },
+ spec: { type: 'kubernetes-cluster' },
+};
+
+const databaseResource: Entity = {
+ apiVersion: '',
+ kind: 'Resource',
+ metadata: { name: 'aDatabase' },
+ spec: { type: 'database' },
+};
+
+const notResource: Entity = {
+ apiVersion: '',
+ kind: 'not-Resource',
+ metadata: { name: 'aService' },
+ spec: { type: 'service' },
+};
const serviceComponent: Entity = {
apiVersion: '',
@@ -59,6 +85,26 @@ const bNamespace: Entity = {
spec: { type: 'service' },
};
+describe('isResourceType', () => {
+ it('should false on non resource kinds', () => {
+ const checkEntity = isResourceType('kubernetes-cluster');
+
+ expect(checkEntity(notResource)).not.toBeTruthy();
+ });
+ it('should check for the intended type', () => {
+ const checkEntity = isResourceType('kubernetes-cluster');
+
+ expect(checkEntity(databaseResource)).not.toBeTruthy();
+ expect(checkEntity(kubernetesClusterResource)).toBeTruthy();
+ });
+ it('should check for multiple types', () => {
+ const checkEntity = isResourceType(['database', 'kubernetes-cluster']);
+
+ expect(checkEntity(databaseResource)).toBeTruthy();
+ expect(checkEntity(kubernetesClusterResource)).toBeTruthy();
+ });
+});
+
describe('isComponentType', () => {
it('should false on non component kinds', () => {
const checkEntity = isComponentType('service');
diff --git a/plugins/catalog/src/components/EntitySwitch/conditions.ts b/plugins/catalog/src/components/EntitySwitch/conditions.ts
index 86fd38a900..222a76b0a9 100644
--- a/plugins/catalog/src/components/EntitySwitch/conditions.ts
+++ b/plugins/catalog/src/components/EntitySwitch/conditions.ts
@@ -14,7 +14,11 @@
* limitations under the License.
*/
-import { ComponentEntity, Entity } from '@backstage/catalog-model';
+import {
+ ComponentEntity,
+ ResourceEntity,
+ Entity,
+} from '@backstage/catalog-model';
function strCmp(a: string | undefined, b: string | undefined): boolean {
return Boolean(
@@ -50,6 +54,20 @@ export function isComponentType(types: string | string[]) {
};
}
+/**
+ * For use in EntitySwitch.Case. Matches if the entity is a Resource of a given spec.type.
+ * @public
+ */
+export function isResourceType(types: string | string[]) {
+ return (entity: Entity) => {
+ if (!strCmp(entity.kind, 'resource')) {
+ return false;
+ }
+ const resourceEntity = entity as ResourceEntity;
+ return strCmpAll(resourceEntity.spec.type, types);
+ };
+}
+
/**
* For use in EntitySwitch.Case. Matches if the entity is in a given namespace.
* @public
diff --git a/plugins/catalog/src/components/EntitySwitch/index.ts b/plugins/catalog/src/components/EntitySwitch/index.ts
index 6cccf4be6e..0cb85ae6eb 100644
--- a/plugins/catalog/src/components/EntitySwitch/index.ts
+++ b/plugins/catalog/src/components/EntitySwitch/index.ts
@@ -16,4 +16,9 @@
export { EntitySwitch } from './EntitySwitch';
export type { EntitySwitchProps, EntitySwitchCaseProps } from './EntitySwitch';
-export { isKind, isNamespace, isComponentType } from './conditions';
+export {
+ isKind,
+ isNamespace,
+ isComponentType,
+ isResourceType,
+} from './conditions';
diff --git a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
index 55ec192258..a8519377a6 100644
--- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
+++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-cicd-statistics-module-gitlab
+## 0.1.12
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-cicd-statistics@0.1.18
+
## 0.1.12-next.2
### Patch Changes
diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json
index 38de7c6799..8144319eaa 100644
--- a/plugins/cicd-statistics-module-gitlab/package.json
+++ b/plugins/cicd-statistics-module-gitlab/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-cicd-statistics-module-gitlab",
"description": "CI/CD Statistics plugin module; Gitlab CICD",
- "version": "0.1.12-next.2",
+ "version": "0.1.12",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/cicd-statistics/CHANGELOG.md b/plugins/cicd-statistics/CHANGELOG.md
index 97434f99c7..bc91b2611b 100644
--- a/plugins/cicd-statistics/CHANGELOG.md
+++ b/plugins/cicd-statistics/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-cicd-statistics
+## 0.1.18
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+
## 0.1.18-next.2
### Patch Changes
diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json
index 8262235489..967aa89f7c 100644
--- a/plugins/cicd-statistics/package.json
+++ b/plugins/cicd-statistics/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-cicd-statistics",
"description": "A frontend plugin visualizing CI/CD pipeline statistics (build time)",
- "version": "0.1.18-next.2",
+ "version": "0.1.18",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/circleci/CHANGELOG.md b/plugins/circleci/CHANGELOG.md
index c43162fe14..93dd50f6be 100644
--- a/plugins/circleci/CHANGELOG.md
+++ b/plugins/circleci/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-circleci
+## 0.3.16
+
+### Patch Changes
+
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.3.16-next.2
### Patch Changes
diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json
index 55d02ce8bd..6f093a24b3 100644
--- a/plugins/circleci/package.json
+++ b/plugins/circleci/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-circleci",
"description": "A Backstage plugin that integrates towards Circle CI",
- "version": "0.3.16-next.2",
+ "version": "0.3.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/cloudbuild/CHANGELOG.md b/plugins/cloudbuild/CHANGELOG.md
index bc5f71d8e1..935cb3e7bb 100644
--- a/plugins/cloudbuild/CHANGELOG.md
+++ b/plugins/cloudbuild/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-cloudbuild
+## 0.3.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.3.16-next.2
### Patch Changes
diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json
index 04fa511cb6..153c0a69b6 100644
--- a/plugins/cloudbuild/package.json
+++ b/plugins/cloudbuild/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-cloudbuild",
"description": "A Backstage plugin that integrates towards Google Cloud Build",
- "version": "0.3.16-next.2",
+ "version": "0.3.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/code-climate/CHANGELOG.md b/plugins/code-climate/CHANGELOG.md
index e98be293b8..59599c528e 100644
--- a/plugins/code-climate/CHANGELOG.md
+++ b/plugins/code-climate/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-code-climate
+## 0.1.16
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.16-next.2
### Patch Changes
diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json
index 9890f8b95e..9ba3f290cf 100644
--- a/plugins/code-climate/package.json
+++ b/plugins/code-climate/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-code-climate",
- "version": "0.1.16-next.2",
+ "version": "0.1.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/code-coverage-backend/CHANGELOG.md b/plugins/code-coverage-backend/CHANGELOG.md
index 74336f32c8..65a9ce5a60 100644
--- a/plugins/code-coverage-backend/CHANGELOG.md
+++ b/plugins/code-coverage-backend/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-code-coverage-backend
+## 0.2.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+
## 0.2.9-next.2
### Patch Changes
diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json
index fca52bdebc..affbfb79b9 100644
--- a/plugins/code-coverage-backend/package.json
+++ b/plugins/code-coverage-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-code-coverage-backend",
"description": "A Backstage backend plugin that helps you keep track of your code coverage",
- "version": "0.2.9-next.2",
+ "version": "0.2.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/code-coverage/CHANGELOG.md b/plugins/code-coverage/CHANGELOG.md
index 914768f638..8782089171 100644
--- a/plugins/code-coverage/CHANGELOG.md
+++ b/plugins/code-coverage/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-code-coverage
+## 0.2.9
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
## 0.2.9-next.2
### Patch Changes
diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json
index cfdddfc6af..b51862702c 100644
--- a/plugins/code-coverage/package.json
+++ b/plugins/code-coverage/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-code-coverage",
"description": "A Backstage plugin that helps you keep track of your code coverage",
- "version": "0.2.9-next.2",
+ "version": "0.2.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/codescene/CHANGELOG.md b/plugins/codescene/CHANGELOG.md
index 7390729c48..b6f69daacb 100644
--- a/plugins/codescene/CHANGELOG.md
+++ b/plugins/codescene/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-codescene
+## 0.1.11
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
## 0.1.11-next.2
### Patch Changes
diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json
index 49cedd3bc4..f7d132affa 100644
--- a/plugins/codescene/package.json
+++ b/plugins/codescene/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-codescene",
- "version": "0.1.11-next.2",
+ "version": "0.1.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/config-schema/CHANGELOG.md b/plugins/config-schema/CHANGELOG.md
index 5e0de80621..e78a82a633 100644
--- a/plugins/config-schema/CHANGELOG.md
+++ b/plugins/config-schema/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-config-schema
+## 0.1.39
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+
## 0.1.39-next.2
### Patch Changes
diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json
index 730265cbea..cb543cd3a2 100644
--- a/plugins/config-schema/package.json
+++ b/plugins/config-schema/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-config-schema",
"description": "A Backstage plugin that lets you browse the configuration schema of your app",
- "version": "0.1.39-next.2",
+ "version": "0.1.39",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/cost-insights/CHANGELOG.md b/plugins/cost-insights/CHANGELOG.md
index f108804cb6..2cf77c9aa9 100644
--- a/plugins/cost-insights/CHANGELOG.md
+++ b/plugins/cost-insights/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-cost-insights
+## 0.12.5
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-cost-insights-common@0.1.1
+
## 0.12.5-next.2
### Patch Changes
diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json
index aabd4d340d..6d35d006a9 100644
--- a/plugins/cost-insights/package.json
+++ b/plugins/cost-insights/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-cost-insights",
"description": "A Backstage plugin that helps you keep track of your cloud spend",
- "version": "0.12.5-next.2",
+ "version": "0.12.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/dynatrace/CHANGELOG.md b/plugins/dynatrace/CHANGELOG.md
index 402ee43c1e..451da29bf0 100644
--- a/plugins/dynatrace/CHANGELOG.md
+++ b/plugins/dynatrace/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-dynatrace
+## 3.0.0
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 3.0.0-next.2
### Patch Changes
diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json
index c66ef32c7b..b4a9e76c59 100644
--- a/plugins/dynatrace/package.json
+++ b/plugins/dynatrace/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-dynatrace",
- "version": "3.0.0-next.2",
+ "version": "3.0.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/entity-feedback-backend/CHANGELOG.md b/plugins/entity-feedback-backend/CHANGELOG.md
index cac724d7ef..2bf4189393 100644
--- a/plugins/entity-feedback-backend/CHANGELOG.md
+++ b/plugins/entity-feedback-backend/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-entity-feedback-backend
+## 0.1.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/plugin-entity-feedback-common@0.1.0
+
## 0.1.1-next.2
### Patch Changes
diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json
index b482fdb212..48ab43af9f 100644
--- a/plugins/entity-feedback-backend/package.json
+++ b/plugins/entity-feedback-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-entity-feedback-backend",
- "version": "0.1.1-next.2",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/entity-feedback-backend/src/service/router.test.ts b/plugins/entity-feedback-backend/src/service/router.test.ts
index 74fae8248b..5df0c5cf9d 100644
--- a/plugins/entity-feedback-backend/src/service/router.test.ts
+++ b/plugins/entity-feedback-backend/src/service/router.test.ts
@@ -258,6 +258,22 @@ describe('createRouter', () => {
});
});
+ describe('GET /ratings/:entityRef/aggregate', () => {
+ it('should get aggregated ratings for an entity correctly', async () => {
+ const response = await request(app)
+ .get('/ratings/component%3Adefault%2Fservice/aggregate')
+ .send();
+ expect(mockDbHandler.getRatings).toHaveBeenCalledWith(
+ 'component:default/service',
+ );
+ expect(response.status).toEqual(200);
+ expect(response.body).toEqual({
+ DISLIKE: 1,
+ LIKE: 2,
+ });
+ });
+ });
+
describe('POST /responses/:entityRef', () => {
it('should record a response correctly', async () => {
const body = { response: 'blah', comments: 'feedback', consent: true };
diff --git a/plugins/entity-feedback-backend/src/service/router.ts b/plugins/entity-feedback-backend/src/service/router.ts
index e1243cedaf..ea759c1639 100644
--- a/plugins/entity-feedback-backend/src/service/router.ts
+++ b/plugins/entity-feedback-backend/src/service/router.ts
@@ -25,7 +25,10 @@ import {
getBearerTokenFromAuthorizationHeader,
IdentityApi,
} from '@backstage/plugin-auth-node';
-import { EntityRatingsData } from '@backstage/plugin-entity-feedback-common';
+import {
+ EntityRatingsData,
+ Ratings,
+} from '@backstage/plugin-entity-feedback-common';
import express from 'express';
import Router from 'express-promise-router';
import { Logger } from 'winston';
@@ -167,6 +170,19 @@ export async function createRouter(
res.json(ratings.filter(r => accessibleEntityRefs.includes(r.userRef)));
});
+ router.get('/ratings/:entityRef/aggregate', async (req, res) => {
+ const entityRatings = (
+ await dbHandler.getRatings(req.params.entityRef)
+ ).reduce((ratings: Ratings, { rating }) => {
+ ratings[rating] = ratings[rating] ?? 0;
+ ratings[rating]++;
+
+ return ratings;
+ }, {});
+
+ res.json(entityRatings);
+ });
+
router.post('/responses/:entityRef', async (req, res) => {
const user = await identity.getIdentity({ request: req });
const { response, comments, consent } = req.body;
diff --git a/plugins/entity-feedback-common/api-report.md b/plugins/entity-feedback-common/api-report.md
index 118e6c78f2..f31bb0d041 100644
--- a/plugins/entity-feedback-common/api-report.md
+++ b/plugins/entity-feedback-common/api-report.md
@@ -10,9 +10,7 @@ export interface EntityRatingsData {
// (undocumented)
entityTitle?: string;
// (undocumented)
- ratings: {
- [ratingValue: string]: number;
- };
+ ratings: Ratings;
}
// @public (undocumented)
@@ -38,4 +36,10 @@ export interface Rating {
// (undocumented)
userRef: string;
}
+
+// @public (undocumented)
+export interface Ratings {
+ // (undocumented)
+ [ratingValue: string]: number;
+}
```
diff --git a/plugins/entity-feedback-common/src/index.ts b/plugins/entity-feedback-common/src/index.ts
index eea289a899..247a5a5d54 100644
--- a/plugins/entity-feedback-common/src/index.ts
+++ b/plugins/entity-feedback-common/src/index.ts
@@ -40,13 +40,18 @@ export interface FeedbackResponse {
userRef: string;
}
+/**
+ * @public
+ */
+export interface Ratings {
+ [ratingValue: string]: number;
+}
+
/**
* @public
*/
export interface EntityRatingsData {
entityRef: string;
entityTitle?: string;
- ratings: {
- [ratingValue: string]: number;
- };
+ ratings: Ratings;
}
diff --git a/plugins/entity-feedback/CHANGELOG.md b/plugins/entity-feedback/CHANGELOG.md
index 72cb7b272a..e19b5e17b1 100644
--- a/plugins/entity-feedback/CHANGELOG.md
+++ b/plugins/entity-feedback/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-entity-feedback
+## 0.1.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-entity-feedback-common@0.1.0
+
## 0.1.1-next.2
### Patch Changes
diff --git a/plugins/entity-feedback/api-report.md b/plugins/entity-feedback/api-report.md
index 06b0166b0d..696536aef4 100644
--- a/plugins/entity-feedback/api-report.md
+++ b/plugins/entity-feedback/api-report.md
@@ -13,6 +13,7 @@ import { EntityRatingsData } from '@backstage/plugin-entity-feedback-common';
import { FeedbackResponse } from '@backstage/plugin-entity-feedback-common';
import { FetchApi } from '@backstage/core-plugin-api';
import { Rating } from '@backstage/plugin-entity-feedback-common';
+import { Ratings } from '@backstage/plugin-entity-feedback-common';
import { ReactNode } from 'react';
import { RouteRef } from '@backstage/core-plugin-api';
@@ -22,6 +23,7 @@ export interface EntityFeedbackApi {
getAllRatings(): Promise;
// (undocumented)
getOwnedRatings(ownerRef: string): Promise;
+ getRatingAggregates(entityRef: string): Promise;
// (undocumented)
getRatings(entityRef: string): Promise[]>;
// (undocumented)
@@ -48,6 +50,8 @@ export class EntityFeedbackClient implements EntityFeedbackApi {
// (undocumented)
getOwnedRatings(ownerRef: string): Promise;
// (undocumented)
+ getRatingAggregates(entityRef: string): Promise;
+ // (undocumented)
getRatings(entityRef: string): Promise[]>;
// (undocumented)
getResponses(
diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json
index 760b192440..ba88e02b70 100644
--- a/plugins/entity-feedback/package.json
+++ b/plugins/entity-feedback/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-entity-feedback",
- "version": "0.1.1-next.2",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/entity-feedback/src/api/EntityFeedbackApi.ts b/plugins/entity-feedback/src/api/EntityFeedbackApi.ts
index d2f1a46f55..7ec6a447f0 100644
--- a/plugins/entity-feedback/src/api/EntityFeedbackApi.ts
+++ b/plugins/entity-feedback/src/api/EntityFeedbackApi.ts
@@ -19,6 +19,7 @@ import {
EntityRatingsData,
FeedbackResponse,
Rating,
+ Ratings,
} from '@backstage/plugin-entity-feedback-common';
/**
@@ -40,6 +41,11 @@ export interface EntityFeedbackApi {
getRatings(entityRef: string): Promise[]>;
+ /**
+ * Returns anonymized aggregated results for one entityRef
+ */
+ getRatingAggregates(entityRef: string): Promise;
+
recordResponse(
entityRef: string,
response: Omit,
diff --git a/plugins/entity-feedback/src/api/EntityFeedbackClient.test.ts b/plugins/entity-feedback/src/api/EntityFeedbackClient.test.ts
index 694fd66b06..8ef6810115 100644
--- a/plugins/entity-feedback/src/api/EntityFeedbackClient.test.ts
+++ b/plugins/entity-feedback/src/api/EntityFeedbackClient.test.ts
@@ -121,6 +121,24 @@ describe('EntityFeedbackClient', () => {
expect(response).toEqual(ratings);
});
+ it('getRatingAggregates', async () => {
+ const ratings = { LIKE: 3, DISLIKE: 5 };
+
+ server.use(
+ rest.get(
+ `${mockBaseUrl}/ratings/${encodeURIComponent(
+ 'component:default/service',
+ )}/aggregate`,
+ (_, res, ctx) => res(ctx.json(ratings)),
+ ),
+ );
+
+ const response = await client.getRatingAggregates(
+ 'component:default/service',
+ );
+ expect(response).toEqual(ratings);
+ });
+
it('recordResponse', async () => {
expect.assertions(1);
const response = {
diff --git a/plugins/entity-feedback/src/api/EntityFeedbackClient.ts b/plugins/entity-feedback/src/api/EntityFeedbackClient.ts
index 34856473c8..f911cdc7f8 100644
--- a/plugins/entity-feedback/src/api/EntityFeedbackClient.ts
+++ b/plugins/entity-feedback/src/api/EntityFeedbackClient.ts
@@ -20,6 +20,7 @@ import {
EntityRatingsData,
FeedbackResponse,
Rating,
+ Ratings,
} from '@backstage/plugin-entity-feedback-common';
import { EntityFeedbackApi } from './EntityFeedbackApi';
@@ -97,6 +98,22 @@ export class EntityFeedbackClient implements EntityFeedbackApi {
return resp.json();
}
+ async getRatingAggregates(entityRef: string): Promise {
+ const baseUrl = await this.discoveryApi.getBaseUrl('entity-feedback');
+ const resp = await this.fetchApi.fetch(
+ `${baseUrl}/ratings/${encodeURIComponent(entityRef)}/aggregate`,
+ {
+ method: 'GET',
+ },
+ );
+
+ if (!resp.ok) {
+ throw await ResponseError.fromResponse(resp);
+ }
+
+ return resp.json();
+ }
+
async recordResponse(
entityRef: string,
response: Omit,
diff --git a/plugins/entity-validation/CHANGELOG.md b/plugins/entity-validation/CHANGELOG.md
index 43ecb6527d..a714918b45 100644
--- a/plugins/entity-validation/CHANGELOG.md
+++ b/plugins/entity-validation/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-entity-validation
+## 0.1.1
+
+### Patch Changes
+
+- 47d246691ac: Fixed bug in EntityVaidation plugin where string in text box was unable to be updated.
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/theme@0.2.18
+
## 0.1.1-next.2
### Patch Changes
diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json
index 81c13cc46b..c7cd754547 100644
--- a/plugins/entity-validation/package.json
+++ b/plugins/entity-validation/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-entity-validation",
- "version": "0.1.1-next.2",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-aws-sqs/CHANGELOG.md b/plugins/events-backend-module-aws-sqs/CHANGELOG.md
index 0e5659c538..ac076e463b 100644
--- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md
+++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-events-backend-module-aws-sqs
+## 0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `awsSqsConsumingEventPublisherEventsModule` to `eventsModuleAwsSqsConsumingEventPublisher` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json
index 9278099801..046d3363d2 100644
--- a/plugins/events-backend-module-aws-sqs/package.json
+++ b/plugins/events-backend-module-aws-sqs/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-aws-sqs",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-azure/CHANGELOG.md b/plugins/events-backend-module-azure/CHANGELOG.md
index 159603d965..cf3de9b750 100644
--- a/plugins/events-backend-module-azure/CHANGELOG.md
+++ b/plugins/events-backend-module-azure/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-events-backend-module-azure
+## 0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `azureDevOpsEventRouterEventsModule` to `eventsModuleAzureDevOpsEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json
index ef00f0f3b9..6ac861253a 100644
--- a/plugins/events-backend-module-azure/package.json
+++ b/plugins/events-backend-module-azure/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-azure",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md
index 9cf0d0a70e..be247852e9 100644
--- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md
+++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-events-backend-module-bitbucket-cloud
+## 0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `bitbucketCloudEventRouterEventsModule` to `eventsModuleBitbucketCloudEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json
index fa7dba892e..5a908876cb 100644
--- a/plugins/events-backend-module-bitbucket-cloud/package.json
+++ b/plugins/events-backend-module-bitbucket-cloud/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-bitbucket-cloud",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-gerrit/CHANGELOG.md b/plugins/events-backend-module-gerrit/CHANGELOG.md
index accd659217..7388fe6c96 100644
--- a/plugins/events-backend-module-gerrit/CHANGELOG.md
+++ b/plugins/events-backend-module-gerrit/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-events-backend-module-gerrit
+## 0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `gerritEventRouterEventsModule` to `eventsModuleGerritEventRouter` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json
index de5d104781..3666179cd1 100644
--- a/plugins/events-backend-module-gerrit/package.json
+++ b/plugins/events-backend-module-gerrit/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-gerrit",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-github/CHANGELOG.md b/plugins/events-backend-module-github/CHANGELOG.md
index b531c5db52..f20041f8d8 100644
--- a/plugins/events-backend-module-github/CHANGELOG.md
+++ b/plugins/events-backend-module-github/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-events-backend-module-github
+## 0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `githubEventRouterEventsModule` to `eventsModuleGithubEventRouter` and `githubWebhookEventsModule` to `eventsModuleGithubWebhook`, to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/config@1.0.7
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json
index 4a010f5841..cbe8713836 100644
--- a/plugins/events-backend-module-github/package.json
+++ b/plugins/events-backend-module-github/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-github",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-module-gitlab/CHANGELOG.md b/plugins/events-backend-module-gitlab/CHANGELOG.md
index f992585219..6d9895360d 100644
--- a/plugins/events-backend-module-gitlab/CHANGELOG.md
+++ b/plugins/events-backend-module-gitlab/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-events-backend-module-gitlab
+## 0.1.5
+
+### Patch Changes
+
+- a5de745ac17: Renamed `gitlabEventRouterEventsModule` to `eventsModuleGitlabEventRouter` and `gitlabWebhookEventsModule` to `eventsModuleGitlabWebhook` to match the [recommended naming patterns](https://backstage.io/docs/backend-system/architecture/naming-patterns).
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/config@1.0.7
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json
index 917f9fdb89..420bbb782e 100644
--- a/plugins/events-backend-module-gitlab/package.json
+++ b/plugins/events-backend-module-gitlab/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend-module-gitlab",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend-test-utils/CHANGELOG.md b/plugins/events-backend-test-utils/CHANGELOG.md
index aaf14aa68b..dad7faf979 100644
--- a/plugins/events-backend-test-utils/CHANGELOG.md
+++ b/plugins/events-backend-test-utils/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-events-backend-test-utils
+## 0.1.5
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-events-node@0.2.4
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json
index 67d6671497..77cecd0219 100644
--- a/plugins/events-backend-test-utils/package.json
+++ b/plugins/events-backend-test-utils/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-events-backend-test-utils",
"description": "The plugin-events-backend-test-utils for @backstage/plugin-events-node",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-backend/CHANGELOG.md b/plugins/events-backend/CHANGELOG.md
index 82fb0c6fc1..0b72628ccf 100644
--- a/plugins/events-backend/CHANGELOG.md
+++ b/plugins/events-backend/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-events-backend
+## 0.2.4
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- a5de745ac17: Updated README instructions
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/plugin-events-node@0.2.4
+ - @backstage/config@1.0.7
+
## 0.2.4-next.2
### Patch Changes
diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json
index 4a51e56b6a..d2abad4cb8 100644
--- a/plugins/events-backend/package.json
+++ b/plugins/events-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-events-backend",
- "version": "0.2.4-next.2",
+ "version": "0.2.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/events-node/CHANGELOG.md b/plugins/events-node/CHANGELOG.md
index a19d9badc2..9b1599c25a 100644
--- a/plugins/events-node/CHANGELOG.md
+++ b/plugins/events-node/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-events-node
+## 0.2.4
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+
## 0.2.4-next.2
### Patch Changes
diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json
index 76eb1b2bf3..22c64dd012 100644
--- a/plugins/events-node/package.json
+++ b/plugins/events-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-events-node",
"description": "The plugin-events-node module for @backstage/plugin-events-backend",
- "version": "0.2.4-next.2",
+ "version": "0.2.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/example-todo-list-backend/CHANGELOG.md b/plugins/example-todo-list-backend/CHANGELOG.md
index edde9b9d54..65488cd80e 100644
--- a/plugins/example-todo-list-backend/CHANGELOG.md
+++ b/plugins/example-todo-list-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @internal/plugin-todo-list-backend
+## 1.0.11
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config@1.0.7
+
## 1.0.11-next.2
### Patch Changes
diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json
index 5579f748b2..8baa490b31 100644
--- a/plugins/example-todo-list-backend/package.json
+++ b/plugins/example-todo-list-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@internal/plugin-todo-list-backend",
- "version": "1.0.11-next.2",
+ "version": "1.0.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/example-todo-list-common/CHANGELOG.md b/plugins/example-todo-list-common/CHANGELOG.md
index 2596387d2d..40909ff841 100644
--- a/plugins/example-todo-list-common/CHANGELOG.md
+++ b/plugins/example-todo-list-common/CHANGELOG.md
@@ -1,5 +1,12 @@
# @internal/plugin-todo-list-common
+## 1.0.9
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-permission-common@0.7.4
+
## 1.0.9-next.0
### Patch Changes
diff --git a/plugins/example-todo-list-common/package.json b/plugins/example-todo-list-common/package.json
index 5463a19348..7c48939e8b 100644
--- a/plugins/example-todo-list-common/package.json
+++ b/plugins/example-todo-list-common/package.json
@@ -1,6 +1,6 @@
{
"name": "@internal/plugin-todo-list-common",
- "version": "1.0.9-next.0",
+ "version": "1.0.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/example-todo-list/CHANGELOG.md b/plugins/example-todo-list/CHANGELOG.md
index 4739ab303e..022a8e8fb3 100644
--- a/plugins/example-todo-list/CHANGELOG.md
+++ b/plugins/example-todo-list/CHANGELOG.md
@@ -1,5 +1,14 @@
# @internal/plugin-todo-list
+## 1.0.11
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 1.0.11-next.2
### Patch Changes
diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json
index a7366ce36f..9c90b71b52 100644
--- a/plugins/example-todo-list/package.json
+++ b/plugins/example-todo-list/package.json
@@ -1,6 +1,6 @@
{
"name": "@internal/plugin-todo-list",
- "version": "1.0.11-next.2",
+ "version": "1.0.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/explore-backend/CHANGELOG.md b/plugins/explore-backend/CHANGELOG.md
index 7874062954..be73174a06 100644
--- a/plugins/explore-backend/CHANGELOG.md
+++ b/plugins/explore-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-explore-backend
+## 0.0.5
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-explore-common@0.0.1
+ - @backstage/plugin-search-common@1.2.2
+
## 0.0.5-next.2
### Patch Changes
diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json
index dbdab19329..00629c8da4 100644
--- a/plugins/explore-backend/package.json
+++ b/plugins/explore-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-explore-backend",
- "version": "0.0.5-next.2",
+ "version": "0.0.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/explore-react/CHANGELOG.md b/plugins/explore-react/CHANGELOG.md
index 1f68752e6e..954492e81e 100644
--- a/plugins/explore-react/CHANGELOG.md
+++ b/plugins/explore-react/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-explore-react
+## 0.0.27
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/plugin-explore-common@0.0.1
+
## 0.0.27-next.2
### Patch Changes
diff --git a/plugins/explore-react/package.json b/plugins/explore-react/package.json
index 6bb7ad5f0a..fbbde21b0f 100644
--- a/plugins/explore-react/package.json
+++ b/plugins/explore-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-explore-react",
"description": "A frontend library for Backstage plugins that want to interact with the explore plugin",
- "version": "0.0.27-next.2",
+ "version": "0.0.27",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/explore/CHANGELOG.md b/plugins/explore/CHANGELOG.md
index 72d93cf927..46cf23bc90 100644
--- a/plugins/explore/CHANGELOG.md
+++ b/plugins/explore/CHANGELOG.md
@@ -1,5 +1,26 @@
# @backstage/plugin-explore
+## 0.4.1
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 3f75b7607ca: Add ability to pass icon as function to have ability to customize it by search item
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-explore-react@0.0.27
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-explore-common@0.0.1
+ - @backstage/plugin-search-common@1.2.2
+
## 0.4.1-next.2
### Patch Changes
diff --git a/plugins/explore/package.json b/plugins/explore/package.json
index c91671c816..d14a276ecc 100644
--- a/plugins/explore/package.json
+++ b/plugins/explore/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-explore",
"description": "A Backstage plugin for building an exploration page of your software ecosystem",
- "version": "0.4.1-next.2",
+ "version": "0.4.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/firehydrant/CHANGELOG.md b/plugins/firehydrant/CHANGELOG.md
index 1fbf09d8d4..2987daa5ff 100644
--- a/plugins/firehydrant/CHANGELOG.md
+++ b/plugins/firehydrant/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-firehydrant
+## 0.2.0
+
+### Minor Changes
+
+- e2e3dd08a54: Allow firehydrant to use component annotation
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.33-next.2
### Patch Changes
diff --git a/plugins/firehydrant/README.md b/plugins/firehydrant/README.md
index d7169e08f0..4472536245 100644
--- a/plugins/firehydrant/README.md
+++ b/plugins/firehydrant/README.md
@@ -56,3 +56,11 @@ proxy:
# Supply the token you generated from https://app.firehydrant.io/organizations/bots
Authorization: Bearer fhb-e4911b22bcd788c4a4afeb0c111ffbfa
```
+
+4. Optionally add an annotation to the yaml config file of a component
+
+```yaml
+metadata:
+ annotations:
+ firehydrant.com/service-name:
+```
diff --git a/plugins/firehydrant/api-report.md b/plugins/firehydrant/api-report.md
index 2e3bcf6385..0ff5bbc62a 100644
--- a/plugins/firehydrant/api-report.md
+++ b/plugins/firehydrant/api-report.md
@@ -6,6 +6,7 @@
///
import { BackstagePlugin } from '@backstage/core-plugin-api';
+import { Entity } from '@backstage/catalog-model';
import { RouteRef } from '@backstage/core-plugin-api';
// @public (undocumented)
@@ -19,4 +20,7 @@ export const firehydrantPlugin: BackstagePlugin<
{},
{}
>;
+
+// @public (undocumented)
+export const isFireHydrantAvailable: (entity: Entity) => boolean;
```
diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json
index 293679c2ea..0aacc34906 100644
--- a/plugins/firehydrant/package.json
+++ b/plugins/firehydrant/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-firehydrant",
"description": "A Backstage plugin that integrates towards FireHydrant",
- "version": "0.1.33-next.2",
+ "version": "0.2.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -23,6 +23,7 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
+ "@backstage/catalog-model": "workspace:^",
"@backstage/core-components": "workspace:^",
"@backstage/core-plugin-api": "workspace:^",
"@backstage/plugin-catalog-react": "workspace:^",
diff --git a/plugins/firehydrant/src/api/index.ts b/plugins/firehydrant/src/api/index.ts
index 7101b5dc62..1cbf10ec9b 100644
--- a/plugins/firehydrant/src/api/index.ts
+++ b/plugins/firehydrant/src/api/index.ts
@@ -30,6 +30,7 @@ export interface FireHydrantAPI {
getServiceDetails(options: {
serviceName: string;
+ lookupByName: boolean;
}): Promise;
getServiceIncidents(options: {
@@ -77,11 +78,13 @@ export class FireHydrantAPIClient implements FireHydrantAPI {
async getServiceDetails(options: {
serviceName: string;
+ lookupByName: boolean;
}): Promise {
+ const queryOpt = options.lookupByName ? 'name' : 'query';
+ const query = new URLSearchParams();
+ query.set(queryOpt, options.serviceName);
const proxyUrl = await this.getApiUrl();
- const response = await fetch(
- `${proxyUrl}/services?query=${options.serviceName}`,
- );
+ const response = await fetch(`${proxyUrl}/services?${query}`);
if (!response.ok) {
throw new Error(
diff --git a/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.test.tsx b/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.test.tsx
index 20dbb77e86..ce2b1f5391 100644
--- a/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.test.tsx
+++ b/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.test.tsx
@@ -30,7 +30,9 @@ const apis = TestApiRegistry.from([fireHydrantApiRef, mockFireHydrantApi]);
jest.mock('@backstage/plugin-catalog-react', () => ({
useEntity: () => {
- return { entity: { metadata: { name: 'service-example' } } };
+ return {
+ entity: { kind: 'Component', metadata: { name: 'service-example' } },
+ };
},
}));
diff --git a/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.tsx b/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.tsx
index bc2dd46fef..b6bfbcc13b 100644
--- a/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.tsx
+++ b/plugins/firehydrant/src/components/ServiceDetailsCard/ServiceDetailsCard.tsx
@@ -39,6 +39,7 @@ import {
ResponseErrorPanel,
} from '@backstage/core-components';
import { configApiRef, useApi } from '@backstage/core-plugin-api';
+import { isFireHydrantAvailable, getFireHydrantServiceName } from '../hooks';
const useStyles = makeStyles(theme => ({
button: {
@@ -149,14 +150,14 @@ export const ServiceDetailsCard = () => {
const startDate = DateTime.now().minus({ days: 30 }).toUTC();
const endDate = DateTime.now().toUTC();
+ // The service name is provided by an annotation or a Backstage generated service name.
// The Backstage service name in FireHydrant is a unique formatted string
// that requires the entity's kind, name, and namespace.
- const fireHydrantServiceName = `${entity?.kind}:${
- entity?.metadata?.namespace ?? 'default'
- }/${entity?.metadata?.name}`;
+ const fireHydrantServiceName = getFireHydrantServiceName(entity);
const { loading, value, error } = useServiceDetails({
serviceName: fireHydrantServiceName,
+ lookupByName: isFireHydrantAvailable(entity),
});
const activeIncidents: string[] = value?.service?.active_incidents ?? [];
diff --git a/plugins/firehydrant/src/components/hooks.test.ts b/plugins/firehydrant/src/components/hooks.test.ts
new file mode 100644
index 0000000000..f35d6774ce
--- /dev/null
+++ b/plugins/firehydrant/src/components/hooks.test.ts
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2021 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 { Entity } from '@backstage/catalog-model';
+import { isFireHydrantAvailable, getFireHydrantServiceName } from './hooks';
+
+describe('firehydrant-hooks-isFireHydrantAvailable', () => {
+ it('should find an annotation', () => {
+ const e: Entity = {
+ apiVersion: 'backstage.io/v1alpha1',
+ kind: 'Component',
+ metadata: {
+ namespace: 'default',
+ name: 'test-fh-name',
+ annotations: {
+ 'firehydrant.com/service-name': 'test-fh-name',
+ },
+ },
+ };
+ expect(isFireHydrantAvailable(e)).toEqual(true);
+ });
+
+ it('should not find an annotation', () => {
+ const e: Entity = {
+ apiVersion: 'backstage.io/v1alpha1',
+ kind: 'Component',
+ metadata: {
+ namespace: 'default',
+ name: 'test-fh-name',
+ },
+ };
+ expect(isFireHydrantAvailable(e)).toEqual(false);
+ });
+});
+
+describe('firehydrant-hooks-getFireHydrantServiceName', () => {
+ it('should return annotation service name', () => {
+ const expected = 'test-fh-name';
+ const e: Entity = {
+ apiVersion: 'backstage.io/v1alpha1',
+ kind: 'Component',
+ metadata: {
+ namespace: 'default',
+ name: 'test-fh-name',
+ annotations: {
+ 'firehydrant.com/service-name': expected,
+ },
+ },
+ };
+ expect(getFireHydrantServiceName(e)).toEqual(expected);
+ });
+
+ it('should return generated service name', () => {
+ const expected = 'component:default/test-fh-name';
+ const e: Entity = {
+ apiVersion: 'backstage.io/v1alpha1',
+ kind: 'Component',
+ metadata: {
+ namespace: 'default',
+ name: 'test-fh-name',
+ annotations: {},
+ },
+ };
+ expect(getFireHydrantServiceName(e)).toEqual(expected);
+ });
+});
diff --git a/plugins/firehydrant/src/components/hooks.ts b/plugins/firehydrant/src/components/hooks.ts
new file mode 100644
index 0000000000..c4055b1724
--- /dev/null
+++ b/plugins/firehydrant/src/components/hooks.ts
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Entity, stringifyEntityRef } from '@backstage/catalog-model';
+
+export const FIREHYDRANT_SERVICE_NAME_ANNOTATION =
+ 'firehydrant.com/service-name';
+/** @public */
+export const isFireHydrantAvailable = (entity: Entity) =>
+ Boolean(entity.metadata.annotations?.[FIREHYDRANT_SERVICE_NAME_ANNOTATION]);
+export const getFireHydrantServiceName = (entity: Entity) =>
+ entity?.metadata.annotations?.[FIREHYDRANT_SERVICE_NAME_ANNOTATION] ??
+ stringifyEntityRef(entity);
diff --git a/plugins/firehydrant/src/components/serviceDetails.ts b/plugins/firehydrant/src/components/serviceDetails.ts
index 9c12677577..f0ea325419 100644
--- a/plugins/firehydrant/src/components/serviceDetails.ts
+++ b/plugins/firehydrant/src/components/serviceDetails.ts
@@ -17,13 +17,22 @@ import useAsyncRetry from 'react-use/lib/useAsyncRetry';
import { fireHydrantApiRef } from '../api';
import { errorApiRef, useApi } from '@backstage/core-plugin-api';
-export const useServiceDetails = ({ serviceName }: { serviceName: string }) => {
+export const useServiceDetails = ({
+ serviceName,
+ lookupByName,
+}: {
+ serviceName: string;
+ lookupByName: boolean;
+}) => {
const api = useApi(fireHydrantApiRef);
const errorApi = useApi(errorApiRef);
const { loading, value, error, retry } = useAsyncRetry(async () => {
try {
- return await api.getServiceDetails({ serviceName: serviceName });
+ return await api.getServiceDetails({
+ serviceName: serviceName,
+ lookupByName: lookupByName,
+ });
} catch (e) {
errorApi.post(e);
return Promise.reject(e);
diff --git a/plugins/firehydrant/src/index.ts b/plugins/firehydrant/src/index.ts
index f1ef66fd3e..218b944244 100644
--- a/plugins/firehydrant/src/index.ts
+++ b/plugins/firehydrant/src/index.ts
@@ -20,4 +20,8 @@
* @packageDocumentation
*/
-export { firehydrantPlugin, FirehydrantCard } from './plugin';
+export {
+ firehydrantPlugin,
+ FirehydrantCard,
+ isFireHydrantAvailable,
+} from './plugin';
diff --git a/plugins/firehydrant/src/plugin.ts b/plugins/firehydrant/src/plugin.ts
index 6deefe4fce..14a8c53c66 100644
--- a/plugins/firehydrant/src/plugin.ts
+++ b/plugins/firehydrant/src/plugin.ts
@@ -50,3 +50,6 @@ export const FirehydrantCard = firehydrantPlugin.provide(
},
}),
);
+
+/** @public */
+export { isFireHydrantAvailable } from './components/hooks';
diff --git a/plugins/fossa/CHANGELOG.md b/plugins/fossa/CHANGELOG.md
index af439b6fd0..7c713d6730 100644
--- a/plugins/fossa/CHANGELOG.md
+++ b/plugins/fossa/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-fossa
+## 0.2.48
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.2.48-next.2
### Patch Changes
diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json
index 1135c76bb1..8d4b8bb7aa 100644
--- a/plugins/fossa/package.json
+++ b/plugins/fossa/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-fossa",
"description": "A Backstage plugin that integrates towards FOSSA",
- "version": "0.2.48-next.2",
+ "version": "0.2.48",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/gcalendar/CHANGELOG.md b/plugins/gcalendar/CHANGELOG.md
index 2460deb73c..d9d1021f02 100644
--- a/plugins/gcalendar/CHANGELOG.md
+++ b/plugins/gcalendar/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-gcalendar
+## 0.3.12
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.3.12-next.2
### Patch Changes
diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json
index 83471340b8..603936d75a 100644
--- a/plugins/gcalendar/package.json
+++ b/plugins/gcalendar/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-gcalendar",
- "version": "0.3.12-next.2",
+ "version": "0.3.12",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/gcp-projects/CHANGELOG.md b/plugins/gcp-projects/CHANGELOG.md
index ecb3ec60fc..b501db40d7 100644
--- a/plugins/gcp-projects/CHANGELOG.md
+++ b/plugins/gcp-projects/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-gcp-projects
+## 0.3.35
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.3.35-next.2
### Patch Changes
diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json
index 1029b37cd0..162aff640c 100644
--- a/plugins/gcp-projects/package.json
+++ b/plugins/gcp-projects/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-gcp-projects",
"description": "A Backstage plugin that helps you manage projects in GCP",
- "version": "0.3.35-next.2",
+ "version": "0.3.35",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/git-release-manager/CHANGELOG.md b/plugins/git-release-manager/CHANGELOG.md
index c97568b076..cec4a630bc 100644
--- a/plugins/git-release-manager/CHANGELOG.md
+++ b/plugins/git-release-manager/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-git-release-manager
+## 0.3.29
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
## 0.3.29-next.2
### Patch Changes
diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json
index 0c9507bc24..53fca75a4f 100644
--- a/plugins/git-release-manager/package.json
+++ b/plugins/git-release-manager/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-git-release-manager",
"description": "A Backstage plugin that helps you manage releases in git",
- "version": "0.3.29-next.2",
+ "version": "0.3.29",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/github-actions/CHANGELOG.md b/plugins/github-actions/CHANGELOG.md
index ffec353673..a8cf2cd18f 100644
--- a/plugins/github-actions/CHANGELOG.md
+++ b/plugins/github-actions/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-github-actions
+## 0.5.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
## 0.5.16-next.2
### Patch Changes
diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json
index d26249218e..48f20a6722 100644
--- a/plugins/github-actions/package.json
+++ b/plugins/github-actions/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-github-actions",
"description": "A Backstage plugin that integrates towards GitHub Actions",
- "version": "0.5.16-next.2",
+ "version": "0.5.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/github-deployments/CHANGELOG.md b/plugins/github-deployments/CHANGELOG.md
index cc8c6a838e..a66a149b8b 100644
--- a/plugins/github-deployments/CHANGELOG.md
+++ b/plugins/github-deployments/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-github-deployments
+## 0.1.47
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
## 0.1.47-next.2
### Patch Changes
diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json
index f9019b5029..0d56c6bb1b 100644
--- a/plugins/github-deployments/package.json
+++ b/plugins/github-deployments/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-github-deployments",
"description": "A Backstage plugin that integrates towards GitHub Deployments",
- "version": "0.1.47-next.2",
+ "version": "0.1.47",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/github-issues/CHANGELOG.md b/plugins/github-issues/CHANGELOG.md
index 5a440a28f3..46352a55d2 100644
--- a/plugins/github-issues/CHANGELOG.md
+++ b/plugins/github-issues/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-github-issues
+## 0.2.5
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
## 0.2.5-next.2
### Patch Changes
diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json
index 83e457a606..419a5babcb 100644
--- a/plugins/github-issues/package.json
+++ b/plugins/github-issues/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-github-issues",
- "version": "0.2.5-next.2",
+ "version": "0.2.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/github-pull-requests-board/CHANGELOG.md b/plugins/github-pull-requests-board/CHANGELOG.md
index ae15428eed..3480ae5f6e 100644
--- a/plugins/github-pull-requests-board/CHANGELOG.md
+++ b/plugins/github-pull-requests-board/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-github-pull-requests-board
+## 0.1.10
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
## 0.1.10-next.2
### Patch Changes
diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json
index ff5393988b..689359ba1a 100644
--- a/plugins/github-pull-requests-board/package.json
+++ b/plugins/github-pull-requests-board/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-github-pull-requests-board",
"description": "A Backstage plugin that allows you to see all open Pull Requests for all the repositories owned by your team",
- "version": "0.1.10-next.2",
+ "version": "0.1.10",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/gitops-profiles/CHANGELOG.md b/plugins/gitops-profiles/CHANGELOG.md
index 8522e1e16c..5c7f777ddc 100644
--- a/plugins/gitops-profiles/CHANGELOG.md
+++ b/plugins/gitops-profiles/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-gitops-profiles
+## 0.3.34
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.3.34-next.2
### Patch Changes
diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json
index 291b73b308..d61efb7706 100644
--- a/plugins/gitops-profiles/package.json
+++ b/plugins/gitops-profiles/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-gitops-profiles",
"description": "A Backstage plugin that helps you manage GitOps profiles",
- "version": "0.3.34-next.2",
+ "version": "0.3.34",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/gocd/CHANGELOG.md b/plugins/gocd/CHANGELOG.md
index 71d7aa3af0..544bb848dc 100644
--- a/plugins/gocd/CHANGELOG.md
+++ b/plugins/gocd/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-gocd
+## 0.1.22
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.22-next.2
### Patch Changes
diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json
index f9789ffde4..e5727302f6 100644
--- a/plugins/gocd/package.json
+++ b/plugins/gocd/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-gocd",
"description": "A Backstage plugin that integrates towards GoCD",
- "version": "0.1.22-next.2",
+ "version": "0.1.22",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/graphiql/CHANGELOG.md b/plugins/graphiql/CHANGELOG.md
index f110d7b813..35d00a5080 100644
--- a/plugins/graphiql/CHANGELOG.md
+++ b/plugins/graphiql/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-graphiql
+## 0.2.48
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.2.48-next.2
### Patch Changes
diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json
index a608ecb8db..a91f8647ec 100644
--- a/plugins/graphiql/package.json
+++ b/plugins/graphiql/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-graphiql",
"description": "Backstage plugin for browsing GraphQL APIs",
- "version": "0.2.48-next.2",
+ "version": "0.2.48",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md
index 0ab0918031..87f2fe54e0 100644
--- a/plugins/graphql-backend/CHANGELOG.md
+++ b/plugins/graphql-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-graphql-backend
+## 0.1.33
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/plugin-catalog-graphql@0.3.19
+ - @backstage/config@1.0.7
+
## 0.1.33-next.2
### Patch Changes
diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json
index 401119b052..2cef4a7298 100644
--- a/plugins/graphql-backend/package.json
+++ b/plugins/graphql-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-graphql-backend",
"description": "An experimental Backstage backend plugin for GraphQL",
- "version": "0.1.33-next.2",
+ "version": "0.1.33",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,13 +33,12 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
+ "@apollo/server": "^4.0.0",
"@backstage/backend-common": "workspace:^",
"@backstage/config": "workspace:^",
"@backstage/plugin-catalog-graphql": "workspace:^",
"@graphql-tools/schema": "^9.0.0",
"@types/express": "^4.17.6",
- "apollo-server": "^3.0.0",
- "apollo-server-express": "^3.0.0",
"express": "^4.17.1",
"express-promise-router": "^4.1.0",
"graphql": "^16.0.0",
diff --git a/plugins/graphql-backend/src/service/router.ts b/plugins/graphql-backend/src/service/router.ts
index aa83b51beb..fbddee435f 100644
--- a/plugins/graphql-backend/src/service/router.ts
+++ b/plugins/graphql-backend/src/service/router.ts
@@ -19,7 +19,8 @@ import express from 'express';
import Router from 'express-promise-router';
import { Logger } from 'winston';
import { createApplication } from 'graphql-modules';
-import { ApolloServer } from 'apollo-server-express';
+import { ApolloServer } from '@apollo/server';
+import { expressMiddleware } from '@apollo/server/express4';
import { createModule as createCatalogModule } from '@backstage/plugin-catalog-graphql';
import { Config } from '@backstage/config';
import helmet from 'helmet';
@@ -61,8 +62,6 @@ export async function createRouter(
response.json({ status: 'ok' });
});
- const apolloMiddleware = server.getMiddleware({ path: '/' });
-
if (process.env.NODE_ENV === 'development')
router.use(
helmet.contentSecurityPolicy({
@@ -72,7 +71,7 @@ export async function createRouter(
}),
);
- router.use(apolloMiddleware);
+ router.use(expressMiddleware(server));
router.use(errorHandler());
return router;
diff --git a/plugins/graphql-voyager/CHANGELOG.md b/plugins/graphql-voyager/CHANGELOG.md
index 982dfec9dc..43d2b66fd8 100644
--- a/plugins/graphql-voyager/CHANGELOG.md
+++ b/plugins/graphql-voyager/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-graphql-voyager
+## 0.1.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.1.1-next.2
### Patch Changes
diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json
index 5d2b809bb3..25f947e455 100644
--- a/plugins/graphql-voyager/package.json
+++ b/plugins/graphql-voyager/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-graphql-voyager",
"description": "Backstage plugin for GraphQL Voyager",
- "version": "0.1.1-next.2",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/home/CHANGELOG.md b/plugins/home/CHANGELOG.md
index 51552a0135..1deba56290 100644
--- a/plugins/home/CHANGELOG.md
+++ b/plugins/home/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-home
+## 0.4.32
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
## 0.4.32-next.2
### Patch Changes
diff --git a/plugins/home/package.json b/plugins/home/package.json
index 2957625478..1896a15006 100644
--- a/plugins/home/package.json
+++ b/plugins/home/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-home",
"description": "A Backstage plugin that helps you build a home page",
- "version": "0.4.32-next.2",
+ "version": "0.4.32",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/ilert/CHANGELOG.md b/plugins/ilert/CHANGELOG.md
index e3d63efd71..ff0683d4a8 100644
--- a/plugins/ilert/CHANGELOG.md
+++ b/plugins/ilert/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-ilert
+## 0.2.5
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.2.5-next.2
### Patch Changes
diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json
index cc8183d6cb..903b69523e 100644
--- a/plugins/ilert/package.json
+++ b/plugins/ilert/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-ilert",
"description": "A Backstage plugin that integrates towards iLert",
- "version": "0.2.5-next.2",
+ "version": "0.2.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/jenkins-backend/CHANGELOG.md b/plugins/jenkins-backend/CHANGELOG.md
index f18f75d0a4..a9f6bcaac4 100644
--- a/plugins/jenkins-backend/CHANGELOG.md
+++ b/plugins/jenkins-backend/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-jenkins-backend
+## 0.1.33
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-jenkins-common@0.1.14
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
## 0.1.33-next.2
### Patch Changes
diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json
index daf5073792..9f85185900 100644
--- a/plugins/jenkins-backend/package.json
+++ b/plugins/jenkins-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-jenkins-backend",
"description": "A Backstage backend plugin that integrates towards Jenkins",
- "version": "0.1.33-next.2",
+ "version": "0.1.33",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/jenkins-common/CHANGELOG.md b/plugins/jenkins-common/CHANGELOG.md
index 820a600fc1..73be4b306c 100644
--- a/plugins/jenkins-common/CHANGELOG.md
+++ b/plugins/jenkins-common/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-jenkins-common
+## 0.1.14
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- Updated dependencies
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-permission-common@0.7.4
+
## 0.1.14-next.1
### Patch Changes
diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json
index 8786afd22c..04cc34b48d 100644
--- a/plugins/jenkins-common/package.json
+++ b/plugins/jenkins-common/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-jenkins-common",
- "version": "0.1.14-next.1",
+ "version": "0.1.14",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/jenkins/CHANGELOG.md b/plugins/jenkins/CHANGELOG.md
index fe8f1e2d13..19c41d8931 100644
--- a/plugins/jenkins/CHANGELOG.md
+++ b/plugins/jenkins/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-jenkins
+## 0.7.15
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-jenkins-common@0.1.14
+ - @backstage/theme@0.2.18
+
## 0.7.15-next.2
### Patch Changes
diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json
index 204d88db60..fbb95c8303 100644
--- a/plugins/jenkins/package.json
+++ b/plugins/jenkins/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-jenkins",
"description": "A Backstage plugin that integrates towards Jenkins",
- "version": "0.7.15-next.2",
+ "version": "0.7.15",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kafka-backend/CHANGELOG.md b/plugins/kafka-backend/CHANGELOG.md
index 92bcf3de3f..a21c47dd96 100644
--- a/plugins/kafka-backend/CHANGELOG.md
+++ b/plugins/kafka-backend/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-kafka-backend
+## 0.2.36
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+
## 0.2.36-next.2
### Patch Changes
diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json
index 38b1f60fcb..3f43fac671 100644
--- a/plugins/kafka-backend/package.json
+++ b/plugins/kafka-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kafka-backend",
"description": "A Backstage backend plugin that integrates towards Kafka",
- "version": "0.2.36-next.2",
+ "version": "0.2.36",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kafka/CHANGELOG.md b/plugins/kafka/CHANGELOG.md
index 1706f206e7..0ed581fc62 100644
--- a/plugins/kafka/CHANGELOG.md
+++ b/plugins/kafka/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-kafka
+## 0.3.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+
## 0.3.16-next.2
### Patch Changes
diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json
index 017c14881a..d3eab939e6 100644
--- a/plugins/kafka/package.json
+++ b/plugins/kafka/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kafka",
"description": "A Backstage plugin that integrates towards Kafka",
- "version": "0.3.16-next.2",
+ "version": "0.3.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kubernetes-backend/CHANGELOG.md b/plugins/kubernetes-backend/CHANGELOG.md
index ac1287f8aa..617a9d16f9 100644
--- a/plugins/kubernetes-backend/CHANGELOG.md
+++ b/plugins/kubernetes-backend/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-kubernetes-backend
+## 0.9.4
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/plugin-kubernetes-common@0.6.1
+
## 0.9.4-next.2
### Patch Changes
diff --git a/plugins/kubernetes-backend/examples/dice-roller/metrics-server.yaml b/plugins/kubernetes-backend/examples/dice-roller/metrics-server.yaml
index 673064aaf2..06875a5cf1 100644
--- a/plugins/kubernetes-backend/examples/dice-roller/metrics-server.yaml
+++ b/plugins/kubernetes-backend/examples/dice-roller/metrics-server.yaml
@@ -82,7 +82,7 @@ spec:
emptyDir: {}
containers:
- name: metrics-server
- image: k8s.gcr.io/metrics-server-amd64:v0.3.1
+ image: registry.k8s.io/metrics-server-amd64:v0.3.1
args:
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json
index ee7844c76e..850f3c67f4 100644
--- a/plugins/kubernetes-backend/package.json
+++ b/plugins/kubernetes-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kubernetes-backend",
"description": "A Backstage backend plugin that integrates towards Kubernetes",
- "version": "0.9.4-next.2",
+ "version": "0.9.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts
index 2696587e69..1f8d525ea8 100644
--- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts
+++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts
@@ -17,6 +17,13 @@ import AWS from 'aws-sdk';
import AWSMock from 'aws-sdk-mock';
import { AwsIamKubernetesAuthTranslator } from './AwsIamKubernetesAuthTranslator';
+const awsError: AWS.AWSError = {
+ code: '123',
+ message: 'no way',
+ name: 'nope',
+ time: new Date(),
+};
+
describe('AwsIamKubernetesAuthTranslator tests', () => {
let role: any = undefined;
const credentials: any = {
@@ -84,6 +91,25 @@ describe('AwsIamKubernetesAuthTranslator tests', () => {
expect(response.serviceAccountToken).toBeDefined();
});
+ describe('When the credentials is failing', () => {
+ beforeEach(() => {
+ jest.spyOn(AWS.config, 'getCredentials').mockImplementation(cb => {
+ cb(awsError, null);
+ });
+ });
+ it('throws the right error', async () => {
+ const authTranslator = new AwsIamKubernetesAuthTranslator();
+ await expect(
+ authTranslator.decorateClusterDetailsWithAuth({
+ assumeRole: role,
+ name: 'test-cluster',
+ url: '',
+ authProvider: 'aws',
+ }),
+ ).rejects.toEqual(awsError);
+ });
+ });
+
describe('When the role is assumed', () => {
// These credentials are not real.
// Pulled from example in docs: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html
diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts
index b89945902d..84e60c9c69 100644
--- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts
+++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts
@@ -55,46 +55,44 @@ export class AwsIamKubernetesAuthTranslator
assumeRole?: string,
externalId?: string,
): Promise {
- return new Promise(async (resolve, reject) => {
- const awsCreds = await this.awsGetCredentials();
+ const awsCreds = await this.awsGetCredentials();
- if (!(awsCreds instanceof Credentials))
- return reject(Error('No AWS credentials found.'));
+ if (!(awsCreds instanceof Credentials))
+ throw new Error('No AWS credentials found.');
- let creds: SigningCreds = {
- accessKeyId: awsCreds.accessKeyId,
- secretAccessKey: awsCreds.secretAccessKey,
- sessionToken: awsCreds.sessionToken,
+ let creds: SigningCreds = {
+ accessKeyId: awsCreds.accessKeyId,
+ secretAccessKey: awsCreds.secretAccessKey,
+ sessionToken: awsCreds.sessionToken,
+ };
+
+ if (!this.validCredentials(creds))
+ throw new Error('Invalid AWS credentials found.');
+ if (!assumeRole) return creds;
+
+ try {
+ const params: AWS.STS.Types.AssumeRoleRequest = {
+ RoleArn: assumeRole,
+ RoleSessionName: 'backstage-login',
};
+ if (externalId) params.ExternalId = externalId;
- if (!this.validCredentials(creds))
- return reject(Error('Invalid AWS credentials found.'));
- if (!assumeRole) return resolve(creds);
+ const assumedRole = await new AWS.STS().assumeRole(params).promise();
- try {
- const params: AWS.STS.Types.AssumeRoleRequest = {
- RoleArn: assumeRole,
- RoleSessionName: 'backstage-login',
- };
- if (externalId) params.ExternalId = externalId;
-
- const assumedRole = await new AWS.STS().assumeRole(params).promise();
-
- if (!assumedRole.Credentials) {
- throw new Error(`No credentials returned for role ${assumeRole}`);
- }
-
- creds = {
- accessKeyId: assumedRole.Credentials.AccessKeyId,
- secretAccessKey: assumedRole.Credentials.SecretAccessKey,
- sessionToken: assumedRole.Credentials.SessionToken,
- };
- } catch (e) {
- console.warn(`There was an error assuming the role: ${e}`);
- return reject(Error(`Unable to assume role: ${e}`));
+ if (!assumedRole.Credentials) {
+ throw new Error(`No credentials returned for role ${assumeRole}`);
}
- return resolve(creds);
- });
+
+ creds = {
+ accessKeyId: assumedRole.Credentials.AccessKeyId,
+ secretAccessKey: assumedRole.Credentials.SecretAccessKey,
+ sessionToken: assumedRole.Credentials.SessionToken,
+ };
+ } catch (e) {
+ console.warn(`There was an error assuming the role: ${e}`);
+ throw new Error(`Unable to assume role: ${e}`);
+ }
+ return creds;
}
async getBearerToken(
clusterName: string,
diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts
index 17a86eb30d..53aaa1ad3a 100644
--- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts
+++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.test.ts
@@ -502,6 +502,47 @@ describe('getKubernetesObjectsByEntity', () => {
});
});
+ it('pods api is returning garbage', async () => {
+ getClustersByEntity.mockImplementation(() =>
+ Promise.resolve({
+ clusters: [
+ {
+ name: 'test-cluster',
+ authProvider: 'serviceAccount',
+ },
+ ],
+ }),
+ );
+
+ fetchObjectsForService.mockImplementation((_: ObjectFetchParams) =>
+ Promise.resolve({
+ errors: [],
+ responses: [
+ {
+ garbage: ['thrash', 'rubbish'],
+ },
+ ],
+ }),
+ );
+
+ mockMetrics(fetchPodMetricsByNamespaces);
+
+ const sut = getKubernetesFanOutHandler([]);
+
+ const result = await sut.getKubernetesObjectsByEntity({
+ entity,
+ auth: {},
+ });
+
+ expect(getClustersByEntity.mock.calls.length).toBe(1);
+ expect(fetchObjectsForService.mock.calls.length).toBe(1);
+ expect(fetchPodMetricsByNamespaces.mock.calls.length).toBe(0);
+
+ expect(result).toStrictEqual({
+ items: [],
+ });
+ });
+
it('retrieve objects for two clusters', async () => {
getClustersByEntity.mockImplementation(() =>
Promise.resolve({
diff --git a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts
index 63e46a44e3..f71c6506bd 100644
--- a/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts
+++ b/plugins/kubernetes-backend/src/service/KubernetesFanOutHandler.ts
@@ -49,6 +49,14 @@ import {
PodStatus,
} from '@kubernetes/client-node';
+const isRejected = (
+ input: PromiseSettledResult,
+): input is PromiseRejectedResult => input.status === 'rejected';
+
+const isFulfilled = (
+ input: PromiseSettledResult,
+): input is PromiseFulfilledResult => input.status === 'fulfilled';
+
/**
*
* @public
@@ -298,12 +306,12 @@ export class KubernetesFanOutHandler {
auth: KubernetesRequestAuth,
requestContext: ServiceLocatorRequestContext,
) {
- const clusterDetails: ClusterDetails[] = await (
+ const clusterDetails: ClusterDetails[] = (
await this.serviceLocator.getClustersByEntity(entity, requestContext)
).clusters;
// Execute all of these async actions simultaneously/without blocking sequentially as no common object is modified by them
- return await Promise.all(
+ const promiseResults = await Promise.allSettled(
clusterDetails.map(cd => {
const kubernetesAuthTranslator: KubernetesAuthTranslator =
this.getAuthTranslator(cd.authProvider);
@@ -313,6 +321,11 @@ export class KubernetesFanOutHandler {
);
}),
);
+
+ promiseResults.filter(isRejected).map(item => {
+ this.logger.info(`Failed to decorate cluster details: ${item.reason}`);
+ });
+ return promiseResults.filter(isFulfilled).map(item => item.value);
}
toObjectsByEntityResponse(
@@ -324,7 +337,7 @@ export class KubernetesFanOutHandler {
(item.errors !== undefined && item.errors.length >= 1) ||
(item.resources !== undefined &&
item.resources.length >= 1 &&
- item.resources.some(fr => fr.resources.length >= 1)),
+ item.resources.some(fr => fr.resources?.length >= 1)),
),
};
}
diff --git a/plugins/kubernetes-common/CHANGELOG.md b/plugins/kubernetes-common/CHANGELOG.md
index 35044f7576..d12719a9f2 100644
--- a/plugins/kubernetes-common/CHANGELOG.md
+++ b/plugins/kubernetes-common/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-kubernetes-common
+## 0.6.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+
## 0.6.1-next.1
### Patch Changes
diff --git a/plugins/kubernetes-common/package.json b/plugins/kubernetes-common/package.json
index e100b64500..2d83db84d4 100644
--- a/plugins/kubernetes-common/package.json
+++ b/plugins/kubernetes-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kubernetes-common",
"description": "Common functionalities for kubernetes, to be shared between kubernetes and kubernetes-backend plugin",
- "version": "0.6.1-next.1",
+ "version": "0.6.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/kubernetes/CHANGELOG.md b/plugins/kubernetes/CHANGELOG.md
index 05929a7d46..02dbba634d 100644
--- a/plugins/kubernetes/CHANGELOG.md
+++ b/plugins/kubernetes/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-kubernetes
+## 0.7.9
+
+### Patch Changes
+
+- 8adeb19b37d: GitLab can now be used as an `oidcTokenProvider` for Kubernetes clusters
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-kubernetes-common@0.6.1
+
## 0.7.9-next.2
### Patch Changes
diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json
index ed806ee521..b22d50681d 100644
--- a/plugins/kubernetes/package.json
+++ b/plugins/kubernetes/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-kubernetes",
"description": "A Backstage plugin that integrates towards Kubernetes",
- "version": "0.7.9-next.2",
+ "version": "0.7.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/lighthouse-backend/CHANGELOG.md b/plugins/lighthouse-backend/CHANGELOG.md
index 0caf949bd6..860493f57b 100644
--- a/plugins/lighthouse-backend/CHANGELOG.md
+++ b/plugins/lighthouse-backend/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-lighthouse-backend
+## 0.1.1
+
+### Patch Changes
+
+- 46829bc2f0e: Update README.md; typo with plugin name & removed unneeded "import { Router } from 'express';"
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-lighthouse-common@0.1.1
+
## 0.1.1-next.2
### Patch Changes
diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json
index 7fa51b3446..d13e1487e9 100644
--- a/plugins/lighthouse-backend/package.json
+++ b/plugins/lighthouse-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-lighthouse-backend",
"description": "Backend functionalities for lighthouse",
- "version": "0.1.1-next.2",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/lighthouse-common/CHANGELOG.md b/plugins/lighthouse-common/CHANGELOG.md
index 001182cf98..a44c2b52a6 100644
--- a/plugins/lighthouse-common/CHANGELOG.md
+++ b/plugins/lighthouse-common/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-lighthouse-common
+## 0.1.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/config@1.0.7
+
## 0.1.1-next.0
### Patch Changes
diff --git a/plugins/lighthouse-common/package.json b/plugins/lighthouse-common/package.json
index cf7a598ce8..9cd13e7510 100644
--- a/plugins/lighthouse-common/package.json
+++ b/plugins/lighthouse-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-lighthouse-common",
"description": "Common functionalities for lighthouse, to be shared between lighthouse and lighthouse-backend plugin",
- "version": "0.1.1-next.0",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/lighthouse/CHANGELOG.md b/plugins/lighthouse/CHANGELOG.md
index f326707dfa..df404fb220 100644
--- a/plugins/lighthouse/CHANGELOG.md
+++ b/plugins/lighthouse/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-lighthouse
+## 0.4.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-lighthouse-common@0.1.1
+
## 0.4.1-next.2
### Patch Changes
diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json
index 3fcb24986d..e9c70378e5 100644
--- a/plugins/lighthouse/package.json
+++ b/plugins/lighthouse/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-lighthouse",
"description": "A Backstage plugin that integrates towards Lighthouse",
- "version": "0.4.1-next.2",
+ "version": "0.4.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/linguist-backend/CHANGELOG.md b/plugins/linguist-backend/CHANGELOG.md
index ac922c735b..e94a176158 100644
--- a/plugins/linguist-backend/CHANGELOG.md
+++ b/plugins/linguist-backend/CHANGELOG.md
@@ -1,5 +1,33 @@
# @backstage/plugin-linguist-backend
+## 0.2.0
+
+### Minor Changes
+
+- 4a1c318853d: **BREAKING** The linguist-backend `createRouter` now requires that the `tokenManger` is passed to the router.
+
+### Patch Changes
+
+- 8a298b47240: Added support for linguist-js options using the linguistJSOptions in the plugin, the available config can be found [here](https://www.npmjs.com/package/linguist-js#API).
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 2ea57821629: Fixed bug in LinguistBackendApi that caused initial batch of entities to be skipped.
+- b271d5ca052: Allow kind to be configurable
+
+ ```ts
+ return createRouter({ schedule: schedule, kind: ['Component'] }, { ...env });
+ ```
+
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-linguist-common@0.1.0
+
## 0.2.0-next.2
### Patch Changes
diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json
index 01c4f12afa..755b1b959a 100644
--- a/plugins/linguist-backend/package.json
+++ b/plugins/linguist-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-linguist-backend",
- "version": "0.2.0-next.2",
+ "version": "0.2.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/linguist/CHANGELOG.md b/plugins/linguist/CHANGELOG.md
index 3d83855122..d289a06299 100644
--- a/plugins/linguist/CHANGELOG.md
+++ b/plugins/linguist/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-linguist
+## 0.1.1
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- ab997ce243f: Updated `README.md` to removed images with refresh button as this feature was not implemented in the current version
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-linguist-common@0.1.0
+
## 0.1.1-next.2
### Patch Changes
diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json
index 276bb81574..f589b26bd3 100644
--- a/plugins/linguist/package.json
+++ b/plugins/linguist/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-linguist",
- "version": "0.1.1-next.2",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/microsoft-calendar/CHANGELOG.md b/plugins/microsoft-calendar/CHANGELOG.md
index 69a93bc320..93d51a338c 100644
--- a/plugins/microsoft-calendar/CHANGELOG.md
+++ b/plugins/microsoft-calendar/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-microsoft-calendar
+## 0.1.1
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.1.1-next.2
### Patch Changes
diff --git a/plugins/microsoft-calendar/README.md b/plugins/microsoft-calendar/README.md
index 219a7cf2dc..92421046e2 100644
--- a/plugins/microsoft-calendar/README.md
+++ b/plugins/microsoft-calendar/README.md
@@ -1,7 +1,6 @@
# Microsoft-Calendar Plugin
-Welcome to the Microsoft calendar plugin!
-_This plugin was created through the Backstage CLI_
+This plugin is contributed by [StatusNeo](https://statusneo.com/)
## Features
diff --git a/plugins/microsoft-calendar/package.json b/plugins/microsoft-calendar/package.json
index 8d20a5de70..dd9329a8c8 100644
--- a/plugins/microsoft-calendar/package.json
+++ b/plugins/microsoft-calendar/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-microsoft-calendar",
- "version": "0.1.1-next.2",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -13,10 +13,24 @@
"role": "frontend-plugin"
},
"author": {
- "name": "Abhay Soni",
- "email": "abhaysoni.developer@gmail.com",
- "url": "https://github.com/Abhay-soni-developer"
+ "name": "Statusneo",
+ "email": "reach@statusneo.com",
+ "url": "https://statusneo.com/"
},
+ "contributors": [
+ {
+ "email": "abhaysoni.developer@gmail.com",
+ "url": "https://github.com/Abhay-soni-developer",
+ "name": "abhaysoni"
+ }
+ ],
+ "maintainers": [
+ {
+ "email": "abhaysoni.developer@gmail.com",
+ "url": "https://github.com/Abhay-soni-developer",
+ "name": "abhaysoni"
+ }
+ ],
"scripts": {
"start": "backstage-cli package start",
"build": "backstage-cli package build",
diff --git a/plugins/newrelic-dashboard/CHANGELOG.md b/plugins/newrelic-dashboard/CHANGELOG.md
index 93b27ba385..44122710e5 100644
--- a/plugins/newrelic-dashboard/CHANGELOG.md
+++ b/plugins/newrelic-dashboard/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-newrelic-dashboard
+## 0.2.9
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+
## 0.2.9-next.2
### Patch Changes
diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json
index 9958741b5f..83aa0811b6 100644
--- a/plugins/newrelic-dashboard/package.json
+++ b/plugins/newrelic-dashboard/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-newrelic-dashboard",
- "version": "0.2.9-next.2",
+ "version": "0.2.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/newrelic/CHANGELOG.md b/plugins/newrelic/CHANGELOG.md
index bd0ef0d06f..d241da2d28 100644
--- a/plugins/newrelic/CHANGELOG.md
+++ b/plugins/newrelic/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-newrelic
+## 0.3.34
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 66fdf05a1ef: Updated installation instructions
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.3.34-next.2
### Patch Changes
diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json
index 3ad74b3949..08d4ad0970 100644
--- a/plugins/newrelic/package.json
+++ b/plugins/newrelic/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-newrelic",
"description": "A Backstage plugin that integrates towards New Relic",
- "version": "0.3.34-next.2",
+ "version": "0.3.34",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/octopus-deploy/CHANGELOG.md b/plugins/octopus-deploy/CHANGELOG.md
index a3743722b8..8ab8d174db 100644
--- a/plugins/octopus-deploy/CHANGELOG.md
+++ b/plugins/octopus-deploy/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-octopus-deploy
+## 0.1.0
+
+### Minor Changes
+
+- b7fff1171f0: Initial version
+
+### Patch Changes
+
+- cb0fc15a992: Added Octopus Deploy logo
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.0-next.2
### Patch Changes
diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json
index 9ba86f1587..4cbe40b006 100644
--- a/plugins/octopus-deploy/package.json
+++ b/plugins/octopus-deploy/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-octopus-deploy",
- "version": "0.1.0-next.2",
+ "version": "0.1.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/org-react/CHANGELOG.md b/plugins/org-react/CHANGELOG.md
index cb59276110..a8b59a4bc1 100644
--- a/plugins/org-react/CHANGELOG.md
+++ b/plugins/org-react/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-org-react
+## 0.1.5
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.5-next.2
### Patch Changes
diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json
index a2e6623523..027e34c391 100644
--- a/plugins/org-react/package.json
+++ b/plugins/org-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-org-react",
- "version": "0.1.5-next.2",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/org/CHANGELOG.md b/plugins/org/CHANGELOG.md
index 4728f8be20..4251195733 100644
--- a/plugins/org/CHANGELOG.md
+++ b/plugins/org/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-org
+## 0.6.6
+
+### Patch Changes
+
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 36bccb5252f: Fix small UI-glitch in MemberListCard
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- a06fcac4040: Add styling to the `MembersListCard` and `ComponentsGrid` to handle overflow text.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.6.6-next.2
### Patch Changes
diff --git a/plugins/org/package.json b/plugins/org/package.json
index bd7ea9a344..1e948703c5 100644
--- a/plugins/org/package.json
+++ b/plugins/org/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-org",
"description": "A Backstage plugin that helps you create entity pages for your organization",
- "version": "0.6.6-next.2",
+ "version": "0.6.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/pagerduty/CHANGELOG.md b/plugins/pagerduty/CHANGELOG.md
index 37189de162..2e0529fa8b 100644
--- a/plugins/pagerduty/CHANGELOG.md
+++ b/plugins/pagerduty/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-pagerduty
+## 0.5.9
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 9c08ecbaa4b: Update readme link for discord channel
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.5.9-next.2
### Patch Changes
diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json
index 0ae7623240..31caf51e33 100644
--- a/plugins/pagerduty/package.json
+++ b/plugins/pagerduty/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-pagerduty",
"description": "A Backstage plugin that integrates towards PagerDuty",
- "version": "0.5.9-next.2",
+ "version": "0.5.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/periskop-backend/CHANGELOG.md b/plugins/periskop-backend/CHANGELOG.md
index aa43870b1d..b2690caf40 100644
--- a/plugins/periskop-backend/CHANGELOG.md
+++ b/plugins/periskop-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-periskop-backend
+## 0.1.14
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config@1.0.7
+
## 0.1.14-next.2
### Patch Changes
diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json
index 11e38bcd36..5c101dbf29 100644
--- a/plugins/periskop-backend/package.json
+++ b/plugins/periskop-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-periskop-backend",
- "version": "0.1.14-next.2",
+ "version": "0.1.14",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/periskop/CHANGELOG.md b/plugins/periskop/CHANGELOG.md
index d41640b55c..f5cc2e9b3d 100644
--- a/plugins/periskop/CHANGELOG.md
+++ b/plugins/periskop/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-periskop
+## 0.1.14
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.14-next.2
### Patch Changes
diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json
index 1e7ca292d1..f3cd97b1ff 100644
--- a/plugins/periskop/package.json
+++ b/plugins/periskop/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-periskop",
- "version": "0.1.14-next.2",
+ "version": "0.1.14",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/permission-backend/CHANGELOG.md b/plugins/permission-backend/CHANGELOG.md
index a55c711386..8e2f0c2987 100644
--- a/plugins/permission-backend/CHANGELOG.md
+++ b/plugins/permission-backend/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-permission-backend
+## 0.5.18
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
## 0.5.18-next.2
### Patch Changes
diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json
index a7202c9672..f7778bf7b2 100644
--- a/plugins/permission-backend/package.json
+++ b/plugins/permission-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-permission-backend",
- "version": "0.5.18-next.2",
+ "version": "0.5.18",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/permission-common/CHANGELOG.md b/plugins/permission-common/CHANGELOG.md
index e193c4f8e6..be9d35ef6a 100644
--- a/plugins/permission-common/CHANGELOG.md
+++ b/plugins/permission-common/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-permission-common
+## 0.7.4
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+
## 0.7.4-next.0
### Patch Changes
diff --git a/plugins/permission-common/package.json b/plugins/permission-common/package.json
index 5b1abb5d94..4d45347f7a 100644
--- a/plugins/permission-common/package.json
+++ b/plugins/permission-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-permission-common",
"description": "Isomorphic types and client for Backstage permissions and authorization",
- "version": "0.7.4-next.0",
+ "version": "0.7.4",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md
index 59052c2184..472fa004a1 100644
--- a/plugins/permission-node/CHANGELOG.md
+++ b/plugins/permission-node/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-permission-node
+## 0.7.6
+
+### Patch Changes
+
+- 27a103ca07b: Changed the `createPermissionIntegrationRouter` API to allow `getResources`, `resourceType` and `rules` to be optional
+- 37e9215c793: Update the service-to-service auth docs URL in error message.
+ ``
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
## 0.7.6-next.2
### Patch Changes
diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json
index 92c0a7685a..1473de80b2 100644
--- a/plugins/permission-node/package.json
+++ b/plugins/permission-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-permission-node",
"description": "Common permission and authorization utilities for backend plugins",
- "version": "0.7.6-next.2",
+ "version": "0.7.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/permission-react/CHANGELOG.md b/plugins/permission-react/CHANGELOG.md
index 31832e9a83..9da20a2875 100644
--- a/plugins/permission-react/CHANGELOG.md
+++ b/plugins/permission-react/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-permission-react
+## 0.4.11
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+
## 0.4.11-next.2
### Patch Changes
diff --git a/plugins/permission-react/package.json b/plugins/permission-react/package.json
index 1d5d0713b7..afa4a4768e 100644
--- a/plugins/permission-react/package.json
+++ b/plugins/permission-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-permission-react",
- "version": "0.4.11-next.2",
+ "version": "0.4.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/playlist-backend/CHANGELOG.md b/plugins/playlist-backend/CHANGELOG.md
index da2697188a..195cdb1f50 100644
--- a/plugins/playlist-backend/CHANGELOG.md
+++ b/plugins/playlist-backend/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-playlist-backend
+## 0.2.6
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/plugin-playlist-common@0.1.5
+
## 0.2.6-next.2
### Patch Changes
diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json
index 2d868b950a..90e5813247 100644
--- a/plugins/playlist-backend/package.json
+++ b/plugins/playlist-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-playlist-backend",
- "version": "0.2.6-next.2",
+ "version": "0.2.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/playlist-common/CHANGELOG.md b/plugins/playlist-common/CHANGELOG.md
index 13e19e9204..15eebfc59b 100644
--- a/plugins/playlist-common/CHANGELOG.md
+++ b/plugins/playlist-common/CHANGELOG.md
@@ -1,5 +1,12 @@
# @backstage/plugin-playlist-common
+## 0.1.5
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-permission-common@0.7.4
+
## 0.1.5-next.0
### Patch Changes
diff --git a/plugins/playlist-common/package.json b/plugins/playlist-common/package.json
index 1bf0b8be27..440e46713d 100644
--- a/plugins/playlist-common/package.json
+++ b/plugins/playlist-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-playlist-common",
"description": "Common functionalities for the playlist plugin",
- "version": "0.1.5-next.0",
+ "version": "0.1.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/playlist/CHANGELOG.md b/plugins/playlist/CHANGELOG.md
index bc0263fd00..43a7ff4e4d 100644
--- a/plugins/playlist/CHANGELOG.md
+++ b/plugins/playlist/CHANGELOG.md
@@ -1,5 +1,25 @@
# @backstage/plugin-playlist
+## 0.1.7
+
+### Patch Changes
+
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 122a37a880e: Internal update to work with newer versions of react-router
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-permission-react@0.4.11
+ - @backstage/plugin-playlist-common@0.1.5
+
## 0.1.7-next.2
### Patch Changes
diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json
index 445171f9b8..59cde3f246 100644
--- a/plugins/playlist/package.json
+++ b/plugins/playlist/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-playlist",
- "version": "0.1.7-next.2",
+ "version": "0.1.7",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/proxy-backend/CHANGELOG.md b/plugins/proxy-backend/CHANGELOG.md
index 8b649c44de..8c4ef92ea5 100644
--- a/plugins/proxy-backend/CHANGELOG.md
+++ b/plugins/proxy-backend/CHANGELOG.md
@@ -1,5 +1,29 @@
# @backstage/plugin-proxy-backend
+## 0.2.37
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 3e3eea4bc7e: The proxy-backend plugin now supports reviving request bodies that have previously been consumed by an express middleware (e.g. `express.json()`). This is done by setting `reviveConsumedRequestBodies: true` on the proxy `RouterOptions`. In order to preserve the current behavior, the proxy will **not** revive request bodies by default.
+
+ The following is an example of a proxy `createRouter` invocation that revives request bodies:
+
+ ```diff
+ const router = await createRouter({
+ config,
+ logger,
+ discovery,
+ + reviveConsumedRequestBodies: true,
+ });
+ ```
+
+- 4acd93dae1d: Ensure that `@backstage/plugin-proxy-backend` logs the requests that it proxies when log level is set to `debug`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/config@1.0.7
+
## 0.2.37-next.2
### Patch Changes
diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json
index a7d320c37c..6b9c115dbb 100644
--- a/plugins/proxy-backend/package.json
+++ b/plugins/proxy-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-proxy-backend",
"description": "A Backstage backend plugin that helps you set up proxy endpoints in the backend",
- "version": "0.2.37-next.2",
+ "version": "0.2.37",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/rollbar-backend/CHANGELOG.md b/plugins/rollbar-backend/CHANGELOG.md
index edda54dcd1..f69c395c83 100644
--- a/plugins/rollbar-backend/CHANGELOG.md
+++ b/plugins/rollbar-backend/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-rollbar-backend
+## 0.1.40
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+
## 0.1.40-next.2
### Patch Changes
diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json
index 31d802dece..0bba2d3888 100644
--- a/plugins/rollbar-backend/package.json
+++ b/plugins/rollbar-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-rollbar-backend",
"description": "A Backstage backend plugin that integrates towards Rollbar",
- "version": "0.1.40-next.2",
+ "version": "0.1.40",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/rollbar/CHANGELOG.md b/plugins/rollbar/CHANGELOG.md
index 943db21cce..2693bf4b5b 100644
--- a/plugins/rollbar/CHANGELOG.md
+++ b/plugins/rollbar/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-rollbar
+## 0.4.16
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.4.16-next.2
### Patch Changes
diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json
index a3189c147d..9b46d91db6 100644
--- a/plugins/rollbar/package.json
+++ b/plugins/rollbar/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-rollbar",
"description": "A Backstage plugin that integrates towards Rollbar",
- "version": "0.4.16-next.2",
+ "version": "0.4.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md
index 2dcb0eb279..284e381553 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-scaffolder-backend-module-cookiecutter
+## 0.2.18
+
+### Patch Changes
+
+- 62414770ead: allow container runner to be undefined in cookiecutter plugin
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-node@0.1.1
+
## 0.2.18-next.2
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json
index 373320191a..da8f92da5c 100644
--- a/plugins/scaffolder-backend-module-cookiecutter/package.json
+++ b/plugins/scaffolder-backend-module-cookiecutter/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-cookiecutter",
"description": "A module for the scaffolder backend that lets you template projects using cookiecutter",
- "version": "0.2.18-next.2",
+ "version": "0.2.18",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-rails/CHANGELOG.md b/plugins/scaffolder-backend-module-rails/CHANGELOG.md
index 5c7fb1dc2d..457cef36bb 100644
--- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-scaffolder-backend-module-rails
+## 0.4.11
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-scaffolder-backend@1.12.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-node@0.1.1
+
## 0.4.11-next.2
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json
index be9d053340..96da1120e8 100644
--- a/plugins/scaffolder-backend-module-rails/package.json
+++ b/plugins/scaffolder-backend-module-rails/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-rails",
"description": "A module for the scaffolder backend that lets you template projects using Rails",
- "version": "0.4.11-next.2",
+ "version": "0.4.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
index ae6d8734c9..5207cdec38 100644
--- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-scaffolder-backend-module-sentry
+## 0.1.3
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/plugin-scaffolder-node@0.1.1
+
## 0.1.3-next.2
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json
index 36f5139b28..bff7043171 100644
--- a/plugins/scaffolder-backend-module-sentry/package.json
+++ b/plugins/scaffolder-backend-module-sentry/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-sentry",
- "version": "0.1.3-next.2",
+ "version": "0.1.3",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
index e87cf64167..36e965218d 100644
--- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
+++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md
@@ -1,5 +1,14 @@
# @backstage/plugin-scaffolder-backend-module-yeoman
+## 0.2.16
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-node@0.1.1
+
## 0.2.16-next.2
### Patch Changes
diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json
index 01ba3f5eea..9aeee3ec51 100644
--- a/plugins/scaffolder-backend-module-yeoman/package.json
+++ b/plugins/scaffolder-backend-module-yeoman/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-scaffolder-backend-module-yeoman",
- "version": "0.2.16-next.2",
+ "version": "0.2.16",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-backend/CHANGELOG.md b/plugins/scaffolder-backend/CHANGELOG.md
index 65a827797f..0cd0e43f9d 100644
--- a/plugins/scaffolder-backend/CHANGELOG.md
+++ b/plugins/scaffolder-backend/CHANGELOG.md
@@ -1,5 +1,36 @@
# @backstage/plugin-scaffolder-backend
+## 1.12.0
+
+### Minor Changes
+
+- 7d724d8ef56: Added the ability to be able to define an actions `input` and `output` schema using `zod` instead of hand writing types and `jsonschema`
+
+### Patch Changes
+
+- 860de10fa67: Make identity valid if subject of token is a backstage server-2-server auth token
+- 65454876fb2: Minor API report tweaks
+- c6c78b4acbe: throw error from catalog:fetch scaffolder action when entity is null and optional is false
+- 9968f455921: catalog write action should allow any shape of object
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 7af12854970: Extended scaffolder action `catalog:fetch` to fetch multiple catalog entities by entity references.
+- Updated dependencies
+ - @backstage/plugin-catalog-backend@1.8.0
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-catalog-node@1.3.4
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-common@1.2.6
+ - @backstage/plugin-scaffolder-node@0.1.1
+
## 1.12.0-next.2
### Patch Changes
diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md
index ca9b3543af..f0eb714ab3 100644
--- a/plugins/scaffolder-backend/api-report.md
+++ b/plugins/scaffolder-backend/api-report.md
@@ -7,18 +7,20 @@
import { ActionContext as ActionContext_2 } from '@backstage/plugin-scaffolder-node';
import { CatalogApi } from '@backstage/catalog-client';
-import { CatalogProcessor } from '@backstage/plugin-catalog-backend';
-import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
+import { CatalogProcessor } from '@backstage/plugin-catalog-node';
+import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
import { Config } from '@backstage/config';
import { createPullRequest } from 'octokit-plugin-create-pull-request';
+import { Duration } from 'luxon';
import { Entity } from '@backstage/catalog-model';
import express from 'express';
import { GithubCredentialsProvider } from '@backstage/integration';
+import { HumanDuration } from '@backstage/types';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { JsonObject } from '@backstage/types';
import { JsonValue } from '@backstage/types';
import { Knex } from 'knex';
-import { LocationSpec } from '@backstage/plugin-catalog-backend';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
import { Logger } from 'winston';
import { Observable } from '@backstage/types';
import { Octokit } from 'octokit';
@@ -89,7 +91,8 @@ export function createDebugLogAction(): TemplateAction_2<{
export function createFetchCatalogEntityAction(options: {
catalogClient: CatalogApi;
}): TemplateAction_2<{
- entityRef: string;
+ entityRef?: string | undefined;
+ entityRefs?: string[] | undefined;
optional?: boolean | undefined;
}>;
@@ -527,6 +530,11 @@ export const createTemplateAction: <
action: TemplateActionOptions,
) => TemplateAction_2;
+// @public
+export function createWaitAction(options?: {
+ maxWaitTime?: Duration | HumanDuration;
+}): TemplateAction_2;
+
// @public
export type CreateWorkerOptions = {
taskBroker: TaskBroker;
@@ -549,6 +557,14 @@ export interface CurrentClaimedTask {
// @public
export class DatabaseTaskStore implements TaskStore {
+ // (undocumented)
+ cancelTask(
+ options: TaskStoreEmitOptions<
+ {
+ message: string;
+ } & JsonObject
+ >,
+ ): Promise;
// (undocumented)
claimTask(): Promise;
// (undocumented)
@@ -693,6 +709,8 @@ export type SerializedTaskEvent = {
// @public
export interface TaskBroker {
+ // (undocumented)
+ cancel?(taskId: string): Promise;
// (undocumented)
claim(): Promise;
// (undocumented)
@@ -730,6 +748,8 @@ export type TaskCompletionState = 'failed' | 'completed';
// @public
export interface TaskContext {
+ // (undocumented)
+ cancelSignal: AbortSignal;
// (undocumented)
complete(result: TaskCompletionState, metadata?: JsonObject): Promise;
// (undocumented)
@@ -749,16 +769,19 @@ export interface TaskContext {
}
// @public
-export type TaskEventType = 'completion' | 'log';
+export type TaskEventType = 'completion' | 'log' | 'cancelled';
// @public
export class TaskManager implements TaskContext {
+ // (undocumented)
+ get cancelSignal(): AbortSignal;
// (undocumented)
complete(result: TaskCompletionState, metadata?: JsonObject): Promise;
// (undocumented)
static create(
task: CurrentClaimedTask,
storage: TaskStore,
+ abortSignal: AbortSignal,
logger: Logger,
): TaskManager;
// (undocumented)
@@ -780,14 +803,16 @@ export type TaskSecrets = TaskSecrets_2;
// @public
export type TaskStatus =
- | 'open'
- | 'processing'
- | 'failed'
| 'cancelled'
- | 'completed';
+ | 'completed'
+ | 'failed'
+ | 'open'
+ | 'processing';
// @public
export interface TaskStore {
+ // (undocumented)
+ cancelTask?(options: TaskStoreEmitOptions): Promise;
// (undocumented)
claimTask(): Promise;
// (undocumented)
diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json
index 03f813b036..336f5d1286 100644
--- a/plugins/scaffolder-backend/package.json
+++ b/plugins/scaffolder-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-backend",
"description": "The Backstage backend plugin that helps you create new things",
- "version": "1.12.0-next.2",
+ "version": "1.12.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -56,6 +56,7 @@
"@backstage/integration": "workspace:^",
"@backstage/plugin-auth-node": "workspace:^",
"@backstage/plugin-catalog-backend": "workspace:^",
+ "@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-catalog-node": "workspace:^",
"@backstage/plugin-scaffolder-common": "workspace:^",
"@backstage/plugin-scaffolder-node": "workspace:^",
@@ -64,6 +65,7 @@
"@gitbeaker/node": "^35.1.0",
"@octokit/webhooks": "^10.0.0",
"@types/express": "^4.17.6",
+ "@types/luxon": "^3.0.0",
"azure-devops-node-api": "^11.0.1",
"command-exists": "^1.2.9",
"compression": "^1.7.4",
@@ -109,6 +111,7 @@
"mock-fs": "^5.1.0",
"msw": "^1.0.0",
"supertest": "^6.1.3",
+ "wait-for-expect": "^3.0.2",
"yaml": "^2.0.0"
},
"files": [
diff --git a/plugins/scaffolder-backend/src/processor/ScaffolderEntitiesProcessor.ts b/plugins/scaffolder-backend/src/processor/ScaffolderEntitiesProcessor.ts
index d095b77b4c..1de381a8ff 100644
--- a/plugins/scaffolder-backend/src/processor/ScaffolderEntitiesProcessor.ts
+++ b/plugins/scaffolder-backend/src/processor/ScaffolderEntitiesProcessor.ts
@@ -24,9 +24,9 @@ import {
import {
CatalogProcessor,
CatalogProcessorEmit,
- LocationSpec,
processingResult,
-} from '@backstage/plugin-catalog-backend';
+} from '@backstage/plugin-catalog-node';
+import { LocationSpec } from '@backstage/plugin-catalog-common';
import {
TemplateEntityV1beta3,
templateEntityV1beta3Validator,
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.test.ts
index 52c76c8769..1cce7d66cb 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.test.ts
@@ -23,8 +23,11 @@ import { createFetchCatalogEntityAction } from './fetch';
describe('catalog:fetch', () => {
const getEntityByRef = jest.fn();
+ const getEntitiesByRefs = jest.fn();
+
const catalogClient = {
getEntityByRef: getEntityByRef,
+ getEntitiesByRefs: getEntitiesByRefs,
};
const action = createFetchCatalogEntityAction({
@@ -71,25 +74,6 @@ describe('catalog:fetch', () => {
});
});
- it('should return null if entity not in catalog and optional is true', async () => {
- getEntityByRef.mockImplementationOnce(() => {
- throw new Error('Not found');
- });
-
- await action.handler({
- ...mockContext,
- input: {
- entityRef: 'component:default/test',
- optional: true,
- },
- });
-
- expect(getEntityByRef).toHaveBeenCalledWith('component:default/test', {
- token: 'secret',
- });
- expect(mockContext.output).toHaveBeenCalledWith('entity', null);
- });
-
it('should throw error if entity fetch fails from catalog and optional is false', async () => {
getEntityByRef.mockImplementationOnce(() => {
throw new Error('Not found');
@@ -127,4 +111,114 @@ describe('catalog:fetch', () => {
});
expect(mockContext.output).not.toHaveBeenCalled();
});
+
+ it('should return entities from catalog', async () => {
+ getEntitiesByRefs.mockReturnValueOnce({
+ items: [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ } as Entity,
+ ],
+ });
+
+ await action.handler({
+ ...mockContext,
+ input: {
+ entityRefs: ['component:default/test'],
+ },
+ });
+
+ expect(getEntitiesByRefs).toHaveBeenCalledWith(
+ { entityRefs: ['component:default/test'] },
+ {
+ token: 'secret',
+ },
+ );
+ expect(mockContext.output).toHaveBeenCalledWith('entities', [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ },
+ ]);
+ });
+
+ it('should throw error if undefined is returned for some entity', async () => {
+ getEntitiesByRefs.mockReturnValueOnce({
+ items: [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ } as Entity,
+ undefined,
+ ],
+ });
+
+ await expect(
+ action.handler({
+ ...mockContext,
+ input: {
+ entityRefs: ['component:default/test', 'component:default/test2'],
+ optional: false,
+ },
+ }),
+ ).rejects.toThrow('Entity component:default/test2 not found');
+
+ expect(getEntitiesByRefs).toHaveBeenCalledWith(
+ { entityRefs: ['component:default/test', 'component:default/test2'] },
+ {
+ token: 'secret',
+ },
+ );
+ expect(mockContext.output).not.toHaveBeenCalled();
+ });
+
+ it('should return null in case some of the entities not found and optional is true', async () => {
+ getEntitiesByRefs.mockReturnValueOnce({
+ items: [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ } as Entity,
+ undefined,
+ ],
+ });
+
+ await action.handler({
+ ...mockContext,
+ input: {
+ entityRefs: ['component:default/test', 'component:default/test2'],
+ optional: true,
+ },
+ });
+
+ expect(getEntitiesByRefs).toHaveBeenCalledWith(
+ { entityRefs: ['component:default/test', 'component:default/test2'] },
+ {
+ token: 'secret',
+ },
+ );
+ expect(mockContext.output).toHaveBeenCalledWith('entities', [
+ {
+ metadata: {
+ namespace: 'default',
+ name: 'test',
+ },
+ kind: 'Component',
+ },
+ null,
+ ]);
+ });
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
index 17e510ce64..1bcbfa0006 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/catalog/fetch.ts
@@ -36,10 +36,26 @@ const examples = [
],
}),
},
+ {
+ description: 'Fetch multiple entities by referencse',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: id,
+ id: 'fetchMultiple',
+ name: 'Fetch catalog entities',
+ input: {
+ entityRefs: ['component:default/name'],
+ },
+ },
+ ],
+ }),
+ },
];
/**
- * Returns entity from the catalog by entity reference.
+ * Returns entity or entities from the catalog by entity reference(s).
+ *
* @public
*/
export function createFetchCatalogEntityAction(options: {
@@ -47,13 +63,17 @@ export function createFetchCatalogEntityAction(options: {
}) {
const { catalogClient } = options;
- return createTemplateAction<{ entityRef: string; optional?: boolean }>({
+ return createTemplateAction<{
+ entityRef?: string;
+ entityRefs?: string[];
+ optional?: boolean;
+ }>({
id,
- description: 'Returns entity from the catalog by entity reference',
+ description:
+ 'Returns entity or entities from the catalog by entity reference(s)',
examples,
schema: {
input: {
- required: ['entityRef'],
type: 'object',
properties: {
entityRef: {
@@ -61,10 +81,15 @@ export function createFetchCatalogEntityAction(options: {
title: 'Entity reference',
description: 'Entity reference of the entity to get',
},
+ entityRefs: {
+ type: 'array',
+ title: 'Entity references',
+ description: 'Entity references of the entities to get',
+ },
optional: {
title: 'Optional',
description:
- 'Permit the entity to optionally exist. Default: false',
+ 'Allow the entity or entities to optionally exist. Default: false',
type: 'boolean',
},
},
@@ -76,29 +101,55 @@ export function createFetchCatalogEntityAction(options: {
title: 'Entity found by the entity reference',
type: 'object',
description:
- 'Object containing same values used in the Entity schema.',
+ 'Object containing same values used in the Entity schema. Only when used with `entityRef` parameter.',
+ },
+ entities: {
+ title: 'Entities found by the entity references',
+ type: 'array',
+ items: { type: 'object' },
+ description:
+ 'Array containing objects with same values used in the Entity schema. Only when used with `entityRefs` parameter.',
},
},
},
},
async handler(ctx) {
- const { entityRef, optional } = ctx.input;
- let entity;
- try {
- entity = await catalogClient.getEntityByRef(entityRef, {
+ const { entityRef, entityRefs, optional } = ctx.input;
+ if (!entityRef && !entityRefs) {
+ if (optional) {
+ return;
+ }
+ throw new Error('Missing entity reference or references');
+ }
+
+ if (entityRef) {
+ const entity = await catalogClient.getEntityByRef(entityRef, {
token: ctx.secrets?.backstageToken,
});
- } catch (e) {
- if (!optional) {
- throw e;
+
+ if (!entity && !optional) {
+ throw new Error(`Entity ${entityRef} not found`);
}
+ ctx.output('entity', entity ?? null);
}
- if (!entity && !optional) {
- throw new Error(`Entity ${entityRef} not found`);
- }
+ if (entityRefs) {
+ const entities = await catalogClient.getEntitiesByRefs(
+ { entityRefs },
+ {
+ token: ctx.secrets?.backstageToken,
+ },
+ );
- ctx.output('entity', entity ?? null);
+ const finalEntities = entities.items.map((e, i) => {
+ if (!e && !optional) {
+ throw new Error(`Entity ${entityRefs[i]} not found`);
+ }
+ return e ?? null;
+ });
+
+ ctx.output('entities', finalEntities);
+ }
},
});
}
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
index 9ba4a27b1a..d4c8de3604 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/createBuiltinActions.ts
@@ -30,7 +30,7 @@ import {
} from './catalog';
import { TemplateFilter, TemplateGlobal } from '../../../lib';
-import { createDebugLogAction } from './debug';
+import { createDebugLogAction, createWaitAction } from './debug';
import { createFetchPlainAction, createFetchTemplateAction } from './fetch';
import {
createFilesystemDeleteAction,
@@ -159,6 +159,7 @@ export const createBuiltinActions = (
config,
}),
createDebugLogAction(),
+ createWaitAction(),
createCatalogRegisterAction({ catalogClient, integrations }),
createFetchCatalogEntityAction({ catalogClient }),
createCatalogWriteAction(),
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/index.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/index.ts
index 8cc50a7eba..3776ce7f03 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/index.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/index.ts
@@ -15,3 +15,4 @@
*/
export { createDebugLogAction } from './log';
+export { createWaitAction } from './wait';
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.test.ts
new file mode 100644
index 0000000000..0d4cdaba4b
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.test.ts
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2021 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 { getVoidLogger } from '@backstage/backend-common';
+import mockFs from 'mock-fs';
+import { createWaitAction } from './wait';
+import { Writable } from 'stream';
+import os from 'os';
+
+describe('debug:wait', () => {
+ const action = createWaitAction();
+
+ const logStream = {
+ write: jest.fn(),
+ } as jest.Mocked> as jest.Mocked;
+
+ const mockTmpDir = os.tmpdir();
+ const mockContext = {
+ input: {},
+ baseUrl: 'somebase',
+ workspacePath: mockTmpDir,
+ logger: getVoidLogger(),
+ logStream,
+ output: jest.fn(),
+ createTemporaryDirectory: jest.fn().mockResolvedValue(mockTmpDir),
+ };
+
+ beforeEach(() => {
+ jest.resetAllMocks();
+ });
+
+ afterEach(() => {
+ mockFs.restore();
+ });
+
+ it('should wait for specified period of time', async () => {
+ const context = {
+ ...mockContext,
+ input: {
+ milliseconds: 50,
+ },
+ };
+ const start = new Date().getTime();
+ await action.handler(context);
+ const end = new Date().getTime();
+ expect(end - start).toBeGreaterThanOrEqual(50);
+ });
+
+ it('should not allow to set waiting time longer than the max waiting time', async () => {
+ const context = {
+ ...mockContext,
+ input: {
+ minutes: 11,
+ },
+ };
+
+ await expect(async () => {
+ await action.handler(context);
+ }).rejects.toThrow(
+ 'Waiting duration is longer than the maximum threshold of 0 hours, 0 minutes, 30 seconds',
+ );
+ });
+});
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.ts
new file mode 100644
index 0000000000..02cab239cb
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/debug/wait.ts
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2021 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 { createTemplateAction } from '@backstage/plugin-scaffolder-node';
+import { HumanDuration } from '@backstage/types';
+import yaml from 'yaml';
+import { Duration } from 'luxon';
+
+const id = 'debug:wait';
+
+const MAX_WAIT_TIME_IN_ISO = 'T00:00:30';
+
+const examples = [
+ {
+ description: 'Waiting for 5 seconds',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: id,
+ id: 'wait-5sec',
+ name: 'Waiting for 5 seconds',
+ input: {
+ seconds: 5,
+ },
+ },
+ ],
+ }),
+ },
+ {
+ description: 'Waiting for 5 minutes',
+ example: yaml.stringify({
+ steps: [
+ {
+ action: id,
+ id: 'wait-5min',
+ name: 'Waiting for 5 minutes',
+ input: {
+ minutes: 5,
+ },
+ },
+ ],
+ }),
+ },
+];
+
+/**
+ * Waits for a certain period of time.
+ *
+ * @remarks
+ *
+ * This task is useful to give some waiting time for manual intervention.
+ * Has to be used in a combination with other actions.
+ *
+ * @public
+ */
+export function createWaitAction(options?: {
+ maxWaitTime?: Duration | HumanDuration;
+}) {
+ const toDuration = (
+ maxWaitTime: Duration | HumanDuration | undefined,
+ ): Duration => {
+ if (maxWaitTime) {
+ if (maxWaitTime instanceof Duration) {
+ return maxWaitTime;
+ }
+ return Duration.fromObject(maxWaitTime);
+ }
+ return Duration.fromISOTime(MAX_WAIT_TIME_IN_ISO);
+ };
+
+ return createTemplateAction({
+ id,
+ description: 'Waits for a certain period of time.',
+ examples,
+ schema: {
+ input: {
+ type: 'object',
+ properties: {
+ minutes: {
+ title: 'Waiting period in minutes.',
+ type: 'number',
+ },
+ seconds: {
+ title: 'Waiting period in seconds.',
+ type: 'number',
+ },
+ milliseconds: {
+ title: 'Waiting period in milliseconds.',
+ type: 'number',
+ },
+ },
+ },
+ },
+ async handler(ctx) {
+ const delayTime = Duration.fromObject(ctx.input);
+ const maxWait = toDuration(options?.maxWaitTime);
+
+ if (delayTime.minus(maxWait).toMillis() > 0) {
+ throw new Error(
+ `Waiting duration is longer than the maximum threshold of ${maxWait.toHuman()}`,
+ );
+ }
+
+ await new Promise(resolve => {
+ const controller = new AbortController();
+ const timeoutHandle = setTimeout(abort, delayTime.toMillis());
+ ctx.signal?.addEventListener('abort', abort);
+
+ function abort() {
+ ctx.signal?.removeEventListener('abort', abort);
+ clearTimeout(timeoutHandle!);
+ controller.abort();
+ resolve('finished');
+ }
+ });
+ },
+ });
+}
diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.ts
index bb27410402..06e056cda3 100644
--- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlabMergeRequest.ts
@@ -127,7 +127,7 @@ export const createPublishGitlabMergeRequestAction = (options: {
title: 'Gitlab Project path',
type: 'string',
},
- mergeRequestURL: {
+ mergeRequestUrl: {
title: 'MergeRequest(MR) URL',
type: 'string',
description: 'Link to the merge request in GitLab',
diff --git a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
index 1929e3b8ac..d9302f4d74 100644
--- a/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/dryrun/createDryRunner.ts
@@ -25,7 +25,7 @@ import {
SerializedFile,
serializeDirectoryContents,
} from '../../lib/files';
-import { TemplateFilter, TemplateGlobal } from '../../lib/templating';
+import { TemplateFilter, TemplateGlobal } from '../../lib';
import { TemplateActionRegistry } from '../actions';
import { NunjucksWorkflowRunner } from '../tasks/NunjucksWorkflowRunner';
import { DecoratedActionsRegistry } from './DecoratedActionsRegistry';
@@ -94,6 +94,8 @@ export function createDryRunner(options: TemplateTesterCreateOptions) {
try {
await deserializeDirectoryContents(contentsPath, input.directoryContents);
+ const abortSignal = new AbortController().signal;
+
const result = await workflowRunner.execute({
spec: {
...input.spec,
@@ -117,6 +119,7 @@ export function createDryRunner(options: TemplateTesterCreateOptions) {
done: false,
isDryRun: true,
getWorkspaceName: async () => `dry-run-${dryRunId}`,
+ cancelSignal: abortSignal,
async emitLog(message: string, logMetadata?: JsonObject) {
if (logMetadata?.stepId === dryRunId) {
return;
@@ -128,7 +131,7 @@ export function createDryRunner(options: TemplateTesterCreateOptions) {
},
});
},
- async complete() {
+ complete: async () => {
throw new Error('Not implemented');
},
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.test.ts
new file mode 100644
index 0000000000..4c0eb94c82
--- /dev/null
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.test.ts
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2021 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 { DatabaseManager } from '@backstage/backend-common';
+import { ConfigReader } from '@backstage/config';
+import { DatabaseTaskStore } from './DatabaseTaskStore';
+import { TaskSpec } from '@backstage/plugin-scaffolder-common';
+import { ConflictError } from '@backstage/errors';
+
+const createStore = async () => {
+ const manager = DatabaseManager.fromConfig(
+ new ConfigReader({
+ backend: {
+ database: {
+ client: 'better-sqlite3',
+ connection: ':memory:',
+ },
+ },
+ }),
+ ).forPlugin('scaffolder');
+ const store = await DatabaseTaskStore.create({
+ database: manager,
+ });
+ return { store, manager };
+};
+
+describe('DatabaseTaskStore', () => {
+ it('should create the database store and run migration', async () => {
+ const { store, manager } = await createStore();
+ expect(store).toBeDefined();
+
+ const client = await manager.getClient();
+ expect(client.schema.hasTable('tasks')).toBeTruthy();
+ expect(client.schema.hasTable('task_events')).toBeTruthy();
+ });
+
+ it('should list all created tasks', async () => {
+ const { store } = await createStore();
+ await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+
+ const { tasks } = await store.list({});
+ expect(tasks.length).toBe(1);
+ expect(tasks[0].createdBy).toBe('me');
+ expect(tasks[0].status).toBe('open');
+ expect(tasks[0].id).toBeDefined();
+ });
+
+ it('should list filtered created tasks by createdBy', async () => {
+ const { store } = await createStore();
+
+ await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+
+ await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'him',
+ });
+
+ const { tasks } = await store.list({ createdBy: 'him' });
+ expect(tasks.length).toBe(1);
+ expect(tasks[0].createdBy).toBe('him');
+ expect(tasks[0].status).toBe('open');
+ expect(tasks[0].id).toBeDefined();
+ });
+
+ it('should sent an event to start cancelling the task', async () => {
+ const { store } = await createStore();
+
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+
+ await store.cancelTask({
+ taskId,
+ body: {
+ message: `Step 2 has been cancelled.`,
+ stepId: 2,
+ status: 'cancelled',
+ },
+ });
+
+ const { events } = await store.listEvents({ taskId });
+ const event = events[0];
+ expect(event.taskId).toBe(taskId);
+ expect(event.body.status).toBe('cancelled');
+ });
+
+ it('should emit a log event', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ await store.emitLogEvent({
+ taskId,
+ body: {
+ message: 'Step #2 failed',
+ stepId: 2,
+ status: 'failed',
+ },
+ });
+ const { events } = await store.listEvents({ taskId });
+ const event = events[0];
+ expect(event.taskId).toBe(taskId);
+ expect(event.body.status).toBe('failed');
+ expect(event.type).toBe('log');
+ });
+
+ it('should complete the task', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+
+ const message = `This task was marked as stale as it exceeded its timeout`;
+ await store.completeTask({
+ taskId,
+ status: 'cancelled',
+ eventBody: { message },
+ });
+
+ const taskAfterCompletion = await store.getTask(taskId);
+ expect(taskAfterCompletion.status).toBe('cancelled');
+ });
+
+ it('should claim a new task', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+ await store.claimTask();
+
+ const claimedTask = await store.getTask(taskId);
+ expect(claimedTask.status).toBe('processing');
+ });
+
+ it('should shutdown the running task', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+ await store.claimTask();
+ await store.shutdownTask({ taskId });
+
+ const claimedTask = await store.getTask(taskId);
+ expect(claimedTask.status).toBe('failed');
+ });
+
+ it('should be not possible to shutdown not running task', async () => {
+ const { store } = await createStore();
+ const { taskId } = await store.createTask({
+ spec: {} as TaskSpec,
+ createdBy: 'me',
+ });
+ const task = await store.getTask(taskId);
+ expect(task.status).toBe('open');
+ await expect(async () => {
+ await store.shutdownTask({ taskId });
+ }).rejects.toThrow(ConflictError);
+ });
+});
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts
index 879b457544..f3cb9b645e 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts
@@ -220,7 +220,7 @@ export class DatabaseTaskStore implements TaskStore {
.update({
status: 'processing',
last_heartbeat_at: this.db.fn.now(),
- // remove the secrets when moving moving to processing state.
+ // remove the secrets when moving to processing state.
secrets: null,
});
@@ -287,13 +287,14 @@ export class DatabaseTaskStore implements TaskStore {
const { taskId, status, eventBody } = options;
let oldStatus: string;
- if (status === 'failed' || status === 'completed') {
+ if (['failed', 'completed', 'cancelled'].includes(status)) {
oldStatus = 'processing';
} else {
throw new Error(
`Invalid status update of run '${taskId}' to status '${status}'`,
);
}
+
await this.db.transaction(async tx => {
const [task] = await tx('tasks')
.where({
@@ -302,6 +303,40 @@ export class DatabaseTaskStore implements TaskStore {
.limit(1)
.select();
+ const updateTask = async (criteria: {
+ id: string;
+ status?: TaskStatus;
+ }) => {
+ const updateCount = await tx('tasks')
+ .where(criteria)
+ .update({
+ status,
+ });
+
+ if (updateCount !== 1) {
+ throw new ConflictError(
+ `Failed to update status to '${status}' for taskId ${taskId}`,
+ );
+ }
+
+ await tx('task_events').insert({
+ task_id: taskId,
+ event_type: 'completion',
+ body: JSON.stringify(eventBody),
+ });
+ };
+
+ if (status === 'cancelled') {
+ await updateTask({
+ id: taskId,
+ });
+ return;
+ }
+
+ if (task.status === 'cancelled') {
+ return;
+ }
+
if (!task) {
throw new Error(`No task with taskId ${taskId} found`);
}
@@ -311,25 +346,10 @@ export class DatabaseTaskStore implements TaskStore {
`as it is currently '${task.status}', expected '${oldStatus}'`,
);
}
- const updateCount = await tx('tasks')
- .where({
- id: taskId,
- status: oldStatus,
- })
- .update({
- status,
- });
- if (updateCount !== 1) {
- throw new ConflictError(
- `Failed to update status to '${status}' for taskId ${taskId}`,
- );
- }
-
- await tx('task_events').insert({
- task_id: taskId,
- event_type: 'completion',
- body: JSON.stringify(eventBody),
+ await updateTask({
+ id: taskId,
+ status: oldStatus,
});
});
}
@@ -419,4 +439,16 @@ export class DatabaseTaskStore implements TaskStore {
},
});
}
+
+ async cancelTask(
+ options: TaskStoreEmitOptions<{ message: string } & JsonObject>,
+ ): Promise {
+ const { taskId, body } = options;
+ const serializedBody = JSON.stringify(body);
+ await this.db('task_events').insert({
+ task_id: taskId,
+ event_type: 'cancelled',
+ body: serializedBody,
+ });
+ }
}
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
index 0d2246ed36..3b6ec54249 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts
@@ -70,6 +70,7 @@ describe('DefaultWorkflowRunner', () => {
complete: async () => {},
done: false,
emitLog: async () => {},
+ cancelSignal: new AbortController().signal,
getWorkspaceName: () => Promise.resolve('test-workspace'),
});
@@ -166,7 +167,7 @@ describe('DefaultWorkflowRunner', () => {
});
await expect(runner.execute(task)).rejects.toThrow(
- /Invalid input passed to action jest-validated-action, instance requires property \"foo\"/,
+ /Invalid input passed to action jest-validated-action, instance requires property "foo"/,
);
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
index 88abe05cad..629c730d48 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts
@@ -15,7 +15,12 @@
*/
import { ScmIntegrations } from '@backstage/integration';
-import { TaskContext, WorkflowResponse, WorkflowRunner } from './types';
+import {
+ TaskContext,
+ TaskTrackType,
+ WorkflowResponse,
+ WorkflowRunner,
+} from './types';
import * as winston from 'winston';
import fs from 'fs-extra';
import path from 'path';
@@ -99,6 +104,7 @@ const createStepLogger = ({
export class NunjucksWorkflowRunner implements WorkflowRunner {
constructor(private readonly options: NunjucksWorkflowRunnerOptions) {}
+
private readonly tracker = scaffoldingTracker();
private isSingleTemplateString(input: string) {
@@ -180,6 +186,138 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
});
}
+ async executeStep(
+ task: TaskContext,
+ step: TaskStep,
+ context: TemplateContext,
+ renderTemplate: (template: string, values: unknown) => string,
+ taskTrack: TaskTrackType,
+ workspacePath: string,
+ ) {
+ const stepTrack = await this.tracker.stepStart(task, step);
+
+ if (task.cancelSignal.aborted) {
+ throw new Error(`Step ${step.name} has been cancelled.`);
+ }
+
+ try {
+ if (step.if) {
+ const ifResult = await this.render(step.if, context, renderTemplate);
+ if (!isTruthy(ifResult)) {
+ await stepTrack.skipFalsy();
+ return;
+ }
+ }
+
+ const action: TemplateAction =
+ this.options.actionRegistry.get(step.action);
+ const { taskLogger, streamLogger } = createStepLogger({ task, step });
+
+ if (task.isDryRun) {
+ const redactedSecrets = Object.fromEntries(
+ Object.entries(task.secrets ?? {}).map(secret => [
+ secret[0],
+ '[REDACTED]',
+ ]),
+ );
+ const debugInput =
+ (step.input &&
+ this.render(
+ step.input,
+ {
+ ...context,
+ secrets: redactedSecrets,
+ },
+ renderTemplate,
+ )) ??
+ {};
+ taskLogger.info(
+ `Running ${
+ action.id
+ } in dry-run mode with inputs (secrets redacted): ${JSON.stringify(
+ debugInput,
+ undefined,
+ 2,
+ )}`,
+ );
+ if (!action.supportsDryRun) {
+ await taskTrack.skipDryRun(step, action);
+ const outputSchema = action.schema?.output;
+ if (outputSchema) {
+ context.steps[step.id] = {
+ output: generateExampleOutput(outputSchema) as {
+ [name in string]: JsonValue;
+ },
+ };
+ } else {
+ context.steps[step.id] = { output: {} };
+ }
+ return;
+ }
+ }
+
+ // Secrets are only passed when templating the input to actions for security reasons
+ const input =
+ (step.input &&
+ this.render(
+ step.input,
+ { ...context, secrets: task.secrets ?? {} },
+ renderTemplate,
+ )) ??
+ {};
+
+ if (action.schema?.input) {
+ const validateResult = validateJsonSchema(input, action.schema.input);
+ if (!validateResult.valid) {
+ const errors = validateResult.errors.join(', ');
+ throw new InputError(
+ `Invalid input passed to action ${action.id}, ${errors}`,
+ );
+ }
+ }
+
+ const tmpDirs = new Array();
+ const stepOutput: { [outputName: string]: JsonValue } = {};
+
+ await action.handler({
+ input,
+ secrets: task.secrets ?? {},
+ logger: taskLogger,
+ logStream: streamLogger,
+ workspacePath,
+ createTemporaryDirectory: async () => {
+ const tmpDir = await fs.mkdtemp(`${workspacePath}_step-${step.id}-`);
+ tmpDirs.push(tmpDir);
+ return tmpDir;
+ },
+ output(name: string, value: JsonValue) {
+ stepOutput[name] = value;
+ },
+ templateInfo: task.spec.templateInfo,
+ user: task.spec.user,
+ isDryRun: task.isDryRun,
+ signal: task.cancelSignal,
+ });
+
+ // Remove all temporary directories that were created when executing the action
+ for (const tmpDir of tmpDirs) {
+ await fs.remove(tmpDir);
+ }
+
+ context.steps[step.id] = { output: stepOutput };
+
+ if (task.cancelSignal.aborted) {
+ throw new Error(`Step ${step.name} has been cancelled.`);
+ }
+
+ await stepTrack.markSuccessful();
+ } catch (err) {
+ await taskTrack.markFailed(step, err);
+ await stepTrack.markFailed();
+ throw err;
+ }
+ }
+
async execute(task: TaskContext): Promise {
if (!isValidTaskSpec(task.spec)) {
throw new InputError(
@@ -191,7 +329,12 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
await task.getWorkspaceName(),
);
- const { integrations } = this.options;
+ const {
+ additionalTemplateFilters,
+ additionalTemplateGlobals,
+ integrations,
+ } = this.options;
+
const renderTemplate = await SecureTemplater.loadRenderer({
// TODO(blam): let's work out how we can deprecate this.
// We shouldn't really need to be exposing these now we can deal with
@@ -200,8 +343,8 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
parseRepoUrl(url: string) {
return parseRepoUrl(url, integrations);
},
- additionalTemplateFilters: this.options.additionalTemplateFilters,
- additionalTemplateGlobals: this.options.additionalTemplateGlobals,
+ additionalTemplateFilters,
+ additionalTemplateGlobals,
});
try {
@@ -215,126 +358,14 @@ export class NunjucksWorkflowRunner implements WorkflowRunner {
};
for (const step of task.spec.steps) {
- const stepTrack = await this.tracker.stepStart(task, step);
- try {
- if (step.if) {
- const ifResult = await this.render(
- step.if,
- context,
- renderTemplate,
- );
- if (!isTruthy(ifResult)) {
- await stepTrack.skipFalsy();
- continue;
- }
- }
-
- const action = this.options.actionRegistry.get(step.action);
- const { taskLogger, streamLogger } = createStepLogger({ task, step });
-
- if (task.isDryRun) {
- const redactedSecrets = Object.fromEntries(
- Object.entries(task.secrets ?? {}).map(secret => [
- secret[0],
- '[REDACTED]',
- ]),
- );
- const debugInput =
- (step.input &&
- this.render(
- step.input,
- {
- ...context,
- secrets: redactedSecrets,
- },
- renderTemplate,
- )) ??
- {};
- taskLogger.info(
- `Running ${
- action.id
- } in dry-run mode with inputs (secrets redacted): ${JSON.stringify(
- debugInput,
- undefined,
- 2,
- )}`,
- );
- if (!action.supportsDryRun) {
- await taskTrack.skipDryRun(step, action);
- const outputSchema = action.schema?.output;
- if (outputSchema) {
- context.steps[step.id] = {
- output: generateExampleOutput(outputSchema) as {
- [name in string]: JsonValue;
- },
- };
- } else {
- context.steps[step.id] = { output: {} };
- }
- continue;
- }
- }
-
- // Secrets are only passed when templating the input to actions for security reasons
- const input =
- (step.input &&
- this.render(
- step.input,
- { ...context, secrets: task.secrets ?? {} },
- renderTemplate,
- )) ??
- {};
-
- if (action.schema?.input) {
- const validateResult = validateJsonSchema(
- input,
- action.schema.input,
- );
- if (!validateResult.valid) {
- const errors = validateResult.errors.join(', ');
- throw new InputError(
- `Invalid input passed to action ${action.id}, ${errors}`,
- );
- }
- }
-
- const tmpDirs = new Array();
- const stepOutput: { [outputName: string]: JsonValue } = {};
-
- await action.handler({
- input,
- secrets: task.secrets ?? {},
- logger: taskLogger,
- logStream: streamLogger,
- workspacePath,
- createTemporaryDirectory: async () => {
- const tmpDir = await fs.mkdtemp(
- `${workspacePath}_step-${step.id}-`,
- );
- tmpDirs.push(tmpDir);
- return tmpDir;
- },
- output(name: string, value: JsonValue) {
- stepOutput[name] = value;
- },
- templateInfo: task.spec.templateInfo,
- user: task.spec.user,
- isDryRun: task.isDryRun,
- });
-
- // Remove all temporary directories that were created when executing the action
- for (const tmpDir of tmpDirs) {
- await fs.remove(tmpDir);
- }
-
- context.steps[step.id] = { output: stepOutput };
-
- await stepTrack.markSuccessful();
- } catch (err) {
- await taskTrack.markFailed(step, err);
- await stepTrack.markFailed();
- throw err;
- }
+ await this.executeStep(
+ task,
+ step,
+ context,
+ renderTemplate,
+ taskTrack,
+ workspacePath,
+ );
}
const output = this.render(task.spec.output, context, renderTemplate);
@@ -380,7 +411,10 @@ function scaffoldingTracker() {
template,
});
- async function skipDryRun(step: TaskStep, action: TemplateAction) {
+ async function skipDryRun(
+ step: TaskStep,
+ action: TemplateAction,
+ ) {
task.emitLog(`Skipping because ${action.id} does not support dry-run`, {
stepId: step.id,
status: 'skipped',
@@ -409,8 +443,22 @@ function scaffoldingTracker() {
taskTimer({ result: 'failed' });
}
+ async function markCancelled(step: TaskStep) {
+ await task.emitLog(`Step ${step.id} has been cancelled.`, {
+ stepId: step.id,
+ status: 'cancelled',
+ });
+ taskCount.inc({
+ template,
+ user,
+ result: 'cancelled',
+ });
+ taskTimer({ result: 'cancelled' });
+ }
+
return {
skipDryRun,
+ markCancelled,
markSuccessful,
markFailed,
};
@@ -441,6 +489,15 @@ function scaffoldingTracker() {
stepTimer({ result: 'ok' });
}
+ async function markCancelled() {
+ stepCount.inc({
+ template,
+ step: step.name,
+ result: 'cancelled',
+ });
+ stepTimer({ result: 'cancelled' });
+ }
+
async function markFailed() {
stepCount.inc({
template,
@@ -459,8 +516,9 @@ function scaffoldingTracker() {
}
return {
- markSuccessful,
+ markCancelled,
markFailed,
+ markSuccessful,
skipFalsy,
};
}
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
index d01351d8ae..fc5a724e47 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/StorageTaskBroker.ts
@@ -39,8 +39,13 @@ export class TaskManager implements TaskContext {
private heartbeatTimeoutId?: ReturnType;
- static create(task: CurrentClaimedTask, storage: TaskStore, logger: Logger) {
- const agent = new TaskManager(task, storage, logger);
+ static create(
+ task: CurrentClaimedTask,
+ storage: TaskStore,
+ abortSignal: AbortSignal,
+ logger: Logger,
+ ) {
+ const agent = new TaskManager(task, storage, abortSignal, logger);
agent.startTimeout();
return agent;
}
@@ -49,6 +54,7 @@ export class TaskManager implements TaskContext {
private constructor(
private readonly task: CurrentClaimedTask,
private readonly storage: TaskStore,
+ private readonly signal: AbortSignal,
private readonly logger: Logger,
) {}
@@ -56,6 +62,10 @@ export class TaskManager implements TaskContext {
return this.task.spec;
}
+ get cancelSignal() {
+ return this.signal;
+ }
+
get secrets() {
return this.task.secrets;
}
@@ -165,6 +175,33 @@ export class StorageTaskBroker implements TaskBroker {
private deferredDispatch = defer();
+ private async registerCancellable(
+ taskId: string,
+ abortController: AbortController,
+ ) {
+ let shouldUnsubscribe = false;
+ const subscription = this.event$({ taskId, after: undefined }).subscribe({
+ error: _ => {
+ subscription.unsubscribe();
+ },
+ next: ({ events }) => {
+ for (const event of events) {
+ if (event.type === 'cancelled') {
+ abortController.abort();
+ shouldUnsubscribe = true;
+ }
+
+ if (event.type === 'completion') {
+ shouldUnsubscribe = true;
+ }
+ }
+ if (shouldUnsubscribe) {
+ subscription.unsubscribe();
+ }
+ },
+ });
+ }
+
/**
* {@inheritdoc TaskBroker.claim}
*/
@@ -172,6 +209,8 @@ export class StorageTaskBroker implements TaskBroker {
for (;;) {
const pendingTask = await this.storage.claimTask();
if (pendingTask) {
+ const abortController = new AbortController();
+ await this.registerCancellable(pendingTask.id, abortController);
return TaskManager.create(
{
taskId: pendingTask.id,
@@ -180,6 +219,7 @@ export class StorageTaskBroker implements TaskBroker {
createdBy: pendingTask.createdBy,
},
this.storage,
+ abortController.signal,
this.logger,
);
}
@@ -271,4 +311,24 @@ export class StorageTaskBroker implements TaskBroker {
this.deferredDispatch.resolve();
this.deferredDispatch = defer();
}
+
+ async cancel(taskId: string) {
+ const { events } = await this.storage.listEvents({ taskId });
+ const currentStepId =
+ events.length > 0
+ ? events
+ .filter(({ body }) => body?.stepId)
+ .reduce((prev, curr) => (prev.id > curr.id ? prev : curr)).body
+ .stepId
+ : 0;
+
+ await this.storage.cancelTask?.({
+ taskId,
+ body: {
+ message: `Step ${currentStepId} has been cancelled.`,
+ stepId: currentStepId,
+ status: 'cancelled',
+ },
+ });
+ }
}
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts
index d39671cb67..e886b31369 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.test.ts
@@ -15,7 +15,7 @@
*/
import os from 'os';
-import { getVoidLogger, DatabaseManager } from '@backstage/backend-common';
+import { DatabaseManager, getVoidLogger } from '@backstage/backend-common';
import { ConfigReader } from '@backstage/config';
import { DatabaseTaskStore } from './DatabaseTaskStore';
import { StorageTaskBroker } from './StorageTaskBroker';
@@ -23,7 +23,14 @@ import { TaskWorker, TaskWorkerOptions } from './TaskWorker';
import { ScmIntegrations } from '@backstage/integration';
import { TemplateActionRegistry } from '../actions';
import { NunjucksWorkflowRunner } from './NunjucksWorkflowRunner';
-import { TaskBroker, TaskContext, WorkflowRunner } from './types';
+import {
+ SerializedTaskEvent,
+ TaskBroker,
+ TaskContext,
+ WorkflowRunner,
+} from './types';
+import ObservableImpl from 'zen-observable';
+import waitForExpect from 'wait-for-expect';
jest.mock('./NunjucksWorkflowRunner');
const MockedNunjucksWorkflowRunner =
@@ -198,6 +205,67 @@ describe('Concurrent TaskWorker', () => {
});
});
+describe('Cancellable TaskWorker', () => {
+ let storage: DatabaseTaskStore;
+ const integrations: ScmIntegrations = {} as ScmIntegrations;
+ const actionRegistry: TemplateActionRegistry = {} as TemplateActionRegistry;
+ const workingDirectory = os.tmpdir();
+
+ let myTask: TaskContext | undefined = undefined;
+
+ const workflowRunner: NunjucksWorkflowRunner = {
+ execute: (task: TaskContext) => {
+ myTask = task;
+ },
+ } as unknown as NunjucksWorkflowRunner;
+
+ beforeAll(async () => {
+ storage = await createStore();
+ });
+
+ beforeEach(() => {
+ jest.resetAllMocks();
+ MockedNunjucksWorkflowRunner.mockImplementation(() => workflowRunner);
+ });
+
+ const logger = getVoidLogger();
+
+ it('should be able to cancel the running task', async () => {
+ const taskBroker = new StorageTaskBroker(storage, logger);
+ const taskWorker = await TaskWorker.create({
+ logger,
+ workingDirectory,
+ integrations,
+ taskBroker,
+ actionRegistry,
+ });
+
+ const steps = [...Array(10)].map(n => ({
+ id: `test${n}`,
+ name: `test${n}`,
+ action: 'not-found-action',
+ }));
+
+ const { taskId } = await taskBroker.dispatch({
+ spec: {
+ apiVersion: 'scaffolder.backstage.io/v1beta3',
+ steps,
+ output: {
+ result: '{{ steps.test.output.testOutput }}',
+ },
+ parameters: {},
+ },
+ });
+
+ await taskWorker.start();
+ await taskBroker.cancel(taskId);
+
+ await waitForExpect(() => {
+ expect(myTask?.cancelSignal.aborted).toBeTruthy();
+ });
+ });
+});
+
describe('TaskWorker internals', () => {
const TaskWorkerConstructor = TaskWorker as unknown as {
new (options: TaskWorkerOptions): TaskWorker;
@@ -219,10 +287,24 @@ describe('TaskWorker internals', () => {
},
};
+ const subscribers = new Set<
+ ZenObservable.SubscriptionObserver<{ events: SerializedTaskEvent[] }>
+ >();
+
let claimedTaskCount = 0;
const taskWorker = new TaskWorkerConstructor({
runners: { workflowRunner },
taskBroker: {
+ event$() {
+ return new ObservableImpl<{ events: SerializedTaskEvent[] }>(
+ subscriber => {
+ subscribers.add(subscriber);
+ return () => {
+ subscribers.delete(subscriber);
+ };
+ },
+ );
+ },
async claim() {
claimedTaskCount++;
return {
@@ -233,7 +315,7 @@ describe('TaskWorker internals', () => {
async complete(_result, _metadata) {},
} as TaskContext;
},
- } as TaskBroker,
+ } as unknown as TaskBroker,
concurrentTasksLimit: 2,
});
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts
index 82829665a3..5723e7136f 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/TaskWorker.ts
@@ -21,10 +21,7 @@ import { Logger } from 'winston';
import { TemplateActionRegistry } from '../actions';
import { ScmIntegrations } from '@backstage/integration';
import { assertError } from '@backstage/errors';
-import {
- TemplateFilter,
- TemplateGlobal,
-} from '../../lib/templating/SecureTemplater';
+import { TemplateFilter, TemplateGlobal } from '../../lib';
/**
* TaskWorkerOptions
diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
index 5a91802f3e..112276b9dd 100644
--- a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
+++ b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts
@@ -15,8 +15,9 @@
*/
import { JsonValue, JsonObject, Observable } from '@backstage/types';
-import { TaskSpec } from '@backstage/plugin-scaffolder-common';
+import { TaskSpec, TaskStep } from '@backstage/plugin-scaffolder-common';
import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
+import { TemplateAction } from '@backstage/plugin-scaffolder-node';
/**
* The status of each step of the Task
@@ -24,11 +25,11 @@ import { TaskSecrets } from '@backstage/plugin-scaffolder-node';
* @public
*/
export type TaskStatus =
- | 'open'
- | 'processing'
- | 'failed'
| 'cancelled'
- | 'completed';
+ | 'completed'
+ | 'failed'
+ | 'open'
+ | 'processing';
/**
* The state of a completed task.
@@ -57,7 +58,7 @@ export type SerializedTask = {
*
* @public
*/
-export type TaskEventType = 'completion' | 'log';
+export type TaskEventType = 'completion' | 'log' | 'cancelled';
/**
* SerializedTaskEvent
@@ -99,13 +100,17 @@ export type TaskBrokerDispatchOptions = {
* @public
*/
export interface TaskContext {
+ cancelSignal: AbortSignal;
spec: TaskSpec;
secrets?: TaskSecrets;
createdBy?: string;
done: boolean;
isDryRun?: boolean;
- emitLog(message: string, logMetadata?: JsonObject): Promise;
+
complete(result: TaskCompletionState, metadata?: JsonObject): Promise;
+
+ emitLog(message: string, logMetadata?: JsonObject): Promise;
+
getWorkspaceName(): Promise;
}
@@ -115,16 +120,23 @@ export interface TaskContext {
* @public
*/
export interface TaskBroker {
+ cancel?(taskId: string): Promise;
+
claim(): Promise;
+
dispatch(
options: TaskBrokerDispatchOptions,
): Promise;
+
vacuumTasks(options: { timeoutS: number }): Promise;
+
event$(options: {
taskId: string;
after: number | undefined;
}): Observable<{ events: SerializedTaskEvent[] }>;
+
get(taskId: string): Promise;
+
list?(options?: { createdBy?: string }): Promise<{ tasks: SerializedTask[] }>;
}
@@ -181,30 +193,51 @@ export type TaskStoreCreateTaskResult = {
* @public
*/
export interface TaskStore {
+ cancelTask?(options: TaskStoreEmitOptions): Promise;
+
createTask(
options: TaskStoreCreateTaskOptions,
): Promise;
+
getTask(taskId: string): Promise;
+
claimTask(): Promise;
+
completeTask(options: {
taskId: string;
status: TaskStatus;
eventBody: JsonObject;
}): Promise;
+
heartbeatTask(taskId: string): Promise;
+
listStaleTasks(options: { timeoutS: number }): Promise<{
tasks: { taskId: string }[];
}>;
+
list?(options: { createdBy?: string }): Promise<{ tasks: SerializedTask[] }>;
emitLogEvent(options: TaskStoreEmitOptions): Promise;
+
listEvents(
options: TaskStoreListEventsOptions,
): Promise<{ events: SerializedTaskEvent[] }>;
+
shutdownTask?(options: TaskStoreShutDownTaskOptions): Promise;
}
export type WorkflowResponse = { output: { [key: string]: JsonValue } };
+
export interface WorkflowRunner {
execute(task: TaskContext): Promise;
}
+
+export type TaskTrackType = {
+ markCancelled: (step: TaskStep) => Promise;
+ markFailed: (step: TaskStep, err: Error) => Promise;
+ markSuccessful: () => Promise;
+ skipDryRun: (
+ step: TaskStep,
+ action: TemplateAction,
+ ) => Promise;
+};
diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts
index dfccc4dc43..b2be3e2749 100644
--- a/plugins/scaffolder-backend/src/service/router.ts
+++ b/plugins/scaffolder-backend/src/service/router.ts
@@ -414,6 +414,11 @@ export async function createRouter(
delete task.secrets;
res.status(200).json(task);
})
+ .post('/v2/tasks/:taskId/cancel', async (req, res) => {
+ const { taskId } = req.params;
+ await taskBroker.cancel?.(taskId);
+ res.status(200).json({ status: 'cancelled' });
+ })
.get('/v2/tasks/:taskId/eventstream', async (req, res) => {
const { taskId } = req.params;
const after =
diff --git a/plugins/scaffolder-common/CHANGELOG.md b/plugins/scaffolder-common/CHANGELOG.md
index 8b50ec85a9..4f76c33e36 100644
--- a/plugins/scaffolder-common/CHANGELOG.md
+++ b/plugins/scaffolder-common/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-scaffolder-common
+## 1.2.6
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/catalog-model@1.2.1
+ - @backstage/types@1.0.2
+
## 1.2.6-next.1
### Patch Changes
diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json
index a64185d681..c08763d98b 100644
--- a/plugins/scaffolder-common/package.json
+++ b/plugins/scaffolder-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-common",
"description": "Common functionalities for the scaffolder, to be shared between scaffolder and scaffolder-backend plugin",
- "version": "1.2.6-next.1",
+ "version": "1.2.6",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-node/CHANGELOG.md b/plugins/scaffolder-node/CHANGELOG.md
index 37b9613524..663d7b1c39 100644
--- a/plugins/scaffolder-node/CHANGELOG.md
+++ b/plugins/scaffolder-node/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-scaffolder-node
+## 0.1.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/types@1.0.2
+ - @backstage/plugin-scaffolder-common@1.2.6
+
## 0.1.1-next.2
### Patch Changes
diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md
index 89b7171ef9..d5b9b73767 100644
--- a/plugins/scaffolder-node/api-report.md
+++ b/plugins/scaffolder-node/api-report.md
@@ -30,6 +30,7 @@ export type ActionContext = {
entity?: UserEntity;
ref?: string;
};
+ signal?: AbortSignal;
};
// @public
diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json
index 8978c155bf..d349e41ec4 100644
--- a/plugins/scaffolder-node/package.json
+++ b/plugins/scaffolder-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-node",
"description": "The plugin-scaffolder-node module for @backstage/plugin-scaffolder-backend",
- "version": "0.1.1-next.2",
+ "version": "0.1.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/scaffolder-node/src/actions/types.ts b/plugins/scaffolder-node/src/actions/types.ts
index cce149adbe..8827aaf98c 100644
--- a/plugins/scaffolder-node/src/actions/types.ts
+++ b/plugins/scaffolder-node/src/actions/types.ts
@@ -60,6 +60,11 @@ export type ActionContext = {
*/
ref?: string;
};
+
+ /**
+ * Implement the signal to make your custom step abortable https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
+ */
+ signal?: AbortSignal;
};
/** @public */
diff --git a/plugins/scaffolder-react/CHANGELOG.md b/plugins/scaffolder-react/CHANGELOG.md
index 25385e4816..744d687349 100644
--- a/plugins/scaffolder-react/CHANGELOG.md
+++ b/plugins/scaffolder-react/CHANGELOG.md
@@ -1,5 +1,34 @@
# @backstage/plugin-scaffolder-react
+## 1.2.0
+
+### Minor Changes
+
+- 8f4d13f21cf: Move `useTaskStream`, `TaskBorder`, `TaskLogStream` and `TaskSteps` into `scaffolder-react`.
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 3c96e77b513: Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
+- c8d78b9ae9d: fix bug with `hasErrors` returning false when dealing with empty objects
+- 9b8c374ace5: Remove timer for skipped steps in Scaffolder Next's TaskSteps
+- 44941fc97eb: scaffolder/next: Move the `uiSchema` to its own property in the validation `context` to align with component development and access of `ui:options`
+- d9893263ba9: scaffolder/next: Fix for steps without properties
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- cc418d652a7: scaffolder/next: Added the ability to get the fields definition in the schema in the validation function
+- d4100d0ec42: Fix alignment bug for owners on `TemplateCard`
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+ - @backstage/plugin-scaffolder-common@1.2.6
+
## 1.2.0-next.2
### Patch Changes
diff --git a/plugins/scaffolder-react/api-report.md b/plugins/scaffolder-react/api-report.md
index 0fbc8d0eed..da8309d5ec 100644
--- a/plugins/scaffolder-react/api-report.md
+++ b/plugins/scaffolder-react/api-report.md
@@ -113,7 +113,7 @@ export type ListActionsResponse = Array;
// @public
export type LogEvent = {
- type: 'log' | 'completion';
+ type: 'log' | 'completion' | 'cancelled';
body: {
message: string;
stepId?: string;
@@ -126,6 +126,7 @@ export type LogEvent = {
// @public
export interface ScaffolderApi {
+ cancelTask(taskId: string): Promise;
// (undocumented)
dryRun?(options: ScaffolderDryRunOptions): Promise;
// (undocumented)
@@ -266,10 +267,11 @@ export type ScaffolderTaskOutput = {
// @public
export type ScaffolderTaskStatus =
+ | 'cancelled'
+ | 'completed'
+ | 'failed'
| 'open'
| 'processing'
- | 'failed'
- | 'completed'
| 'skipped';
// @public
@@ -287,6 +289,7 @@ export const SecretsContextProvider: (
// @public
export type TaskStream = {
+ cancelled: boolean;
loading: boolean;
error?: Error;
stepLogs: {
diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json
index 4e0cb590e4..f744bb6423 100644
--- a/plugins/scaffolder-react/package.json
+++ b/plugins/scaffolder-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder-react",
"description": "A frontend library that helps other Backstage plugins interact with the Scaffolder",
- "version": "1.2.0-next.2",
+ "version": "1.2.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -64,7 +64,7 @@
"@rjsf/material-ui": "^3.2.1",
"@rjsf/material-ui-v5": "npm:@rjsf/material-ui@5.1.0",
"@rjsf/utils": "5.1.0",
- "@rjsf/validator-ajv8": "5.1.0",
+ "@rjsf/validator-ajv8": "5.3.0",
"@types/json-schema": "^7.0.9",
"classnames": "^2.2.6",
"humanize-duration": "^3.25.1",
diff --git a/plugins/scaffolder-react/src/api/types.ts b/plugins/scaffolder-react/src/api/types.ts
index 0a517e7bff..b39555c14f 100644
--- a/plugins/scaffolder-react/src/api/types.ts
+++ b/plugins/scaffolder-react/src/api/types.ts
@@ -24,10 +24,11 @@ import { TemplateParameterSchema } from '../types';
* @public
*/
export type ScaffolderTaskStatus =
+ | 'cancelled'
+ | 'completed'
+ | 'failed'
| 'open'
| 'processing'
- | 'failed'
- | 'completed'
| 'skipped';
/**
@@ -96,7 +97,7 @@ export type ScaffolderTaskOutput = {
* @public
*/
export type LogEvent = {
- type: 'log' | 'completion';
+ type: 'log' | 'completion' | 'cancelled';
body: {
message: string;
stepId?: string;
@@ -196,6 +197,13 @@ export interface ScaffolderApi {
getTask(taskId: string): Promise;
+ /**
+ * Sends a signal to a task broker to cancel the running task by taskId.
+ *
+ * @param taskId - the id of the task
+ */
+ cancelTask(taskId: string): Promise;
+
listTasks?(options: {
filterByOwnership: 'owned' | 'all';
}): Promise<{ tasks: ScaffolderTask[] }>;
diff --git a/plugins/scaffolder-react/src/hooks/useEventStream.ts b/plugins/scaffolder-react/src/hooks/useEventStream.ts
index d8c9cf4c1f..ec49911471 100644
--- a/plugins/scaffolder-react/src/hooks/useEventStream.ts
+++ b/plugins/scaffolder-react/src/hooks/useEventStream.ts
@@ -44,6 +44,7 @@ export type ScaffolderStep = {
* @public
*/
export type TaskStream = {
+ cancelled: boolean;
loading: boolean;
error?: Error;
stepLogs: { [stepId in string]: string[] };
@@ -66,6 +67,7 @@ type ReducerLogEntry = {
type ReducerAction =
| { type: 'INIT'; data: ScaffolderTask }
+ | { type: 'CANCELLED' }
| { type: 'LOGS'; data: ReducerLogEntry[] }
| { type: 'COMPLETED'; data: ReducerLogEntry }
| { type: 'ERROR'; data: Error };
@@ -111,7 +113,7 @@ function reducer(draft: TaskStream, action: ReducerAction) {
}
if (
- ['cancelled', 'failed', 'completed'].includes(currentStep.status)
+ ['cancelled', 'completed', 'failed'].includes(currentStep.status)
) {
currentStep.endedAt = entry.createdAt;
}
@@ -131,6 +133,11 @@ function reducer(draft: TaskStream, action: ReducerAction) {
return;
}
+ case 'CANCELLED': {
+ draft.cancelled = true;
+ return;
+ }
+
case 'ERROR': {
draft.error = action.data;
draft.loading = false;
@@ -151,6 +158,7 @@ function reducer(draft: TaskStream, action: ReducerAction) {
export const useTaskEventStream = (taskId: string): TaskStream => {
const scaffolderApi = useApi(scaffolderApiRef);
const [state, dispatch] = useImmerReducer(reducer, {
+ cancelled: false,
loading: true,
completed: false,
stepLogs: {} as { [stepId in string]: string[] },
@@ -196,6 +204,9 @@ export const useTaskEventStream = (taskId: string): TaskStream => {
switch (event.type) {
case 'log':
return collectedLogEvents.push(event);
+ case 'cancelled':
+ dispatch({ type: 'CANCELLED' });
+ return undefined;
case 'completion':
emitLogs();
dispatch({ type: 'COMPLETED', data: event });
diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx
index 0945843961..cbc87c2d53 100644
--- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx
+++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.test.tsx
@@ -61,4 +61,55 @@ describe('TaskSteps', () => {
expect(getByText(step.name)).toBeInTheDocument();
}
});
+ it('should only show timer for in progress, failed, and completed steps', async () => {
+ const steps = [
+ {
+ id: '1',
+ name: 'Fail',
+ status: 'failed' as ScaffolderTaskStatus,
+
+ startedAt: Date.now().toLocaleString(),
+ endedAt: Date.now().toLocaleString(),
+ action: 'action1',
+ },
+ {
+ id: '2',
+ name: 'Process',
+ status: 'processing' as ScaffolderTaskStatus,
+ startedAt: Date.now().toLocaleString(),
+ action: 'action2',
+ },
+ {
+ id: '3',
+ name: 'Complete',
+ status: 'completed' as ScaffolderTaskStatus,
+ startedAt: Date.now().toLocaleString(),
+ endedAt: Date.now().toLocaleString(),
+ action: 'action3',
+ },
+ {
+ id: '4',
+ name: 'Skip',
+ status: 'skipped' as ScaffolderTaskStatus,
+ startedAt: Date.now().toLocaleString(),
+ action: 'action4',
+ },
+ {
+ id: '5',
+ name: 'Not Started',
+ status: 'open' as ScaffolderTaskStatus,
+ action: 'action5',
+ },
+ ];
+
+ const screen = await renderInTestApp( );
+ const stepLabels = await screen.findAllByTestId('step-label');
+ expect(stepLabels.length).toBe(steps.length);
+ for (let i = 0; i < steps.length; i++) {
+ expect(stepLabels[i].textContent?.startsWith(steps[i].name)).toBe(true);
+ expect(stepLabels[i].textContent?.endsWith('seconds')).toBe(
+ steps[i].status !== 'skipped' && !!steps[i].startedAt,
+ );
+ }
+ });
});
diff --git a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
index 632500f07e..d783351eca 100644
--- a/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
+++ b/plugins/scaffolder-react/src/next/components/TaskSteps/TaskSteps.tsx
@@ -78,9 +78,10 @@ export const TaskSteps = (props: TaskStepsProps) => {
{step.name}
-
+ {!isSkipped && }
diff --git a/plugins/scaffolder-react/src/next/components/Workflow/Workflow.test.tsx b/plugins/scaffolder-react/src/next/components/Workflow/Workflow.test.tsx
index 03604881d2..81c5a697e0 100644
--- a/plugins/scaffolder-react/src/next/components/Workflow/Workflow.test.tsx
+++ b/plugins/scaffolder-react/src/next/components/Workflow/Workflow.test.tsx
@@ -24,10 +24,10 @@ import { act, fireEvent } from '@testing-library/react';
import React from 'react';
import { Workflow } from './Workflow';
import { analyticsApiRef } from '@backstage/core-plugin-api';
-import { ScaffolderApi } from '../../../api/types';
-import { scaffolderApiRef } from '../../../api/ref';
+import { ScaffolderApi, scaffolderApiRef } from '../../../api';
const scaffolderApiMock: jest.Mocked = {
+ cancelTask: jest.fn(),
scaffold: jest.fn(),
getTemplateParameterSchema: jest.fn(),
getIntegrationsList: jest.fn(),
diff --git a/plugins/scaffolder/CHANGELOG.md b/plugins/scaffolder/CHANGELOG.md
index d3c377154e..f304d7b621 100644
--- a/plugins/scaffolder/CHANGELOG.md
+++ b/plugins/scaffolder/CHANGELOG.md
@@ -1,5 +1,40 @@
# @backstage/plugin-scaffolder
+## 1.12.0
+
+### Minor Changes
+
+- 0d61fcca9c3: Update `EntityPicker` to use the fully qualified entity ref instead of the humanized version.
+- 8f4d13f21cf: Move `useTaskStream`, `TaskBorder`, `TaskLogStream` and `TaskSteps` into `scaffolder-react`.
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 3c96e77b513: Make scaffolder adhere to page themes by using page `fontColor` consistently. If your theme overwrites template list or card headers, review those styles.
+- be3cddaab5f: Getting credentials in the RepoUrlPicker now also works for targets without owner (e.g. Bitbucket Server).
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- eb877bad736: Create an "Other Templates" group when groups are given to scaffolder/next.
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 0aae4596296: Fix the scaffolder validator for arrays when the item is a field in the object
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-scaffolder-react@1.2.0
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/plugin-permission-react@0.4.11
+ - @backstage/plugin-scaffolder-common@1.2.6
+
## 1.12.0-next.2
### Minor Changes
diff --git a/plugins/scaffolder/alpha-api-report.md b/plugins/scaffolder/alpha-api-report.md
index bf37acafc3..1fc77322bd 100644
--- a/plugins/scaffolder/alpha-api-report.md
+++ b/plugins/scaffolder/alpha-api-report.md
@@ -8,12 +8,9 @@
import { Entity } from '@backstage/catalog-model';
import { FormProps as FormProps_2 } from '@backstage/plugin-scaffolder-react/alpha';
import type { FormProps as FormProps_3 } from '@rjsf/core-v5';
-import { PathParams } from '@backstage/core-plugin-api';
import { PropsWithChildren } from 'react';
import { default as React_2 } from 'react';
-import { RouteRef } from '@backstage/core-plugin-api';
import { ScaffolderTaskOutput } from '@backstage/plugin-scaffolder-react';
-import { SubRouteRef } from '@backstage/core-plugin-api';
import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';
// @alpha @deprecated
@@ -22,9 +19,6 @@ export type FormProps = Pick<
'transformErrors' | 'noHtml5Validate'
>;
-// @alpha (undocumented)
-export const nextRouteRef: RouteRef;
-
// @alpha
export type NextRouterProps = {
components?: {
@@ -50,16 +44,6 @@ export const NextScaffolderPage: (
props: PropsWithChildren,
) => JSX.Element;
-// @alpha (undocumented)
-export const nextScaffolderTaskRouteRef: SubRouteRef<
- PathParams<'/tasks/:taskId'>
->;
-
-// @alpha (undocumented)
-export const nextSelectedTemplateRouteRef: SubRouteRef<
- PathParams<'/templates/:namespace/:templateName'>
->;
-
// @alpha (undocumented)
export type TemplateGroupFilter = {
title?: React_2.ReactNode;
diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md
index 6b8d6d345f..9b39d14db4 100644
--- a/plugins/scaffolder/api-report.md
+++ b/plugins/scaffolder/api-report.md
@@ -360,6 +360,8 @@ export class ScaffolderClient implements ScaffolderApi_2 {
useLongPollingLogs?: boolean;
});
// (undocumented)
+ cancelTask(taskId: string): Promise;
+ // (undocumented)
dryRun(
options: ScaffolderDryRunOptions_2,
): Promise;
@@ -423,6 +425,9 @@ export const scaffolderPlugin: BackstagePlugin<
PathParams<'/templates/:namespace/:templateName'>
>;
ongoingTask: SubRouteRef>;
+ actions: SubRouteRef;
+ listTasks: SubRouteRef;
+ edit: SubRouteRef;
},
{
registerComponent: ExternalRouteRef;
diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json
index 7d939a3d1e..dac8713fed 100644
--- a/plugins/scaffolder/package.json
+++ b/plugins/scaffolder/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-scaffolder",
"description": "The Backstage plugin that helps you create new things",
- "version": "1.12.0-next.2",
+ "version": "1.12.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -70,7 +70,7 @@
"@rjsf/core": "^3.2.1",
"@rjsf/material-ui": "^3.2.1",
"@rjsf/utils": "5.1.0",
- "@rjsf/validator-ajv8": "5.1.0",
+ "@rjsf/validator-ajv8": "5.3.0",
"@uiw/react-codemirror": "^4.9.3",
"classnames": "^2.2.6",
"git-url-parse": "^13.0.0",
diff --git a/plugins/scaffolder/src/alpha.ts b/plugins/scaffolder/src/alpha.ts
index a460b0d7cc..72eb073fba 100644
--- a/plugins/scaffolder/src/alpha.ts
+++ b/plugins/scaffolder/src/alpha.ts
@@ -16,9 +16,6 @@
export { NextScaffolderPage } from './plugin';
export {
- nextRouteRef,
- nextScaffolderTaskRouteRef,
- nextSelectedTemplateRouteRef,
type TemplateGroupFilter,
type NextRouterProps,
type FormProps,
diff --git a/plugins/scaffolder/src/api.ts b/plugins/scaffolder/src/api.ts
index 15bd1925b3..7a3f6c14bb 100644
--- a/plugins/scaffolder/src/api.ts
+++ b/plugins/scaffolder/src/api.ts
@@ -229,24 +229,22 @@ export class ScaffolderClient implements ScaffolderApi {
const url = `${baseUrl}/v2/tasks/${encodeURIComponent(
taskId,
)}/eventstream`;
+
+ const processEvent = (event: any) => {
+ if (event.data) {
+ try {
+ subscriber.next(JSON.parse(event.data));
+ } catch (ex) {
+ subscriber.error(ex);
+ }
+ }
+ };
+
const eventSource = new EventSource(url, { withCredentials: true });
- eventSource.addEventListener('log', (event: any) => {
- if (event.data) {
- try {
- subscriber.next(JSON.parse(event.data));
- } catch (ex) {
- subscriber.error(ex);
- }
- }
- });
+ eventSource.addEventListener('log', processEvent);
+ eventSource.addEventListener('cancelled', processEvent);
eventSource.addEventListener('completion', (event: any) => {
- if (event.data) {
- try {
- subscriber.next(JSON.parse(event.data));
- } catch (ex) {
- subscriber.error(ex);
- }
- }
+ processEvent(event);
eventSource.close();
subscriber.complete();
});
@@ -310,4 +308,19 @@ export class ScaffolderClient implements ScaffolderApi {
return await response.json();
}
+
+ async cancelTask(taskId: string): Promise {
+ const baseUrl = await this.discoveryApi.getBaseUrl('scaffolder');
+ const url = `${baseUrl}/v2/tasks/${encodeURIComponent(taskId)}/cancel`;
+
+ const response = await this.fetchApi.fetch(url, {
+ method: 'POST',
+ });
+
+ if (!response.ok) {
+ throw await ResponseError.fromResponse(response);
+ }
+
+ return await response.json();
+ }
}
diff --git a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
index 552d0cea6a..90f6f9b393 100644
--- a/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
+++ b/plugins/scaffolder/src/components/ActionsPage/ActionsPage.test.tsx
@@ -25,6 +25,7 @@ import { rootRouteRef } from '../../routes';
const scaffolderApiMock: jest.Mocked = {
scaffold: jest.fn(),
+ cancelTask: jest.fn(),
getTemplateParameterSchema: jest.fn(),
getIntegrationsList: jest.fn(),
getTask: jest.fn(),
diff --git a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
index f78d48e686..78cdc5d935 100644
--- a/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
+++ b/plugins/scaffolder/src/components/TaskPage/TaskPage.tsx
@@ -19,11 +19,15 @@ import {
Content,
ErrorPage,
Header,
- Page,
LogViewer,
+ Page,
Progress,
} from '@backstage/core-components';
-import { useRouteRef, useRouteRefParams } from '@backstage/core-plugin-api';
+import {
+ useApi,
+ useRouteRef,
+ useRouteRefParams,
+} from '@backstage/core-plugin-api';
import { BackstageTheme } from '@backstage/theme';
import {
Button,
@@ -59,6 +63,7 @@ import {
scaffolderTaskRouteRef,
selectedTemplateRouteRef,
} from '../../routes';
+import { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';
// typings are wrong for this library, so fallback to not parsing types.
const humanizeDuration = require('humanize-duration');
@@ -188,9 +193,10 @@ export const TaskStatusStepper = memo(
nonLinear
>
{steps.map((step, index) => {
+ const isCancelled = step.status === 'cancelled';
+ const isActive = step.status === 'processing';
const isCompleted = step.status === 'completed';
const isFailed = step.status === 'failed';
- const isActive = step.status === 'processing';
const isSkipped = step.status === 'skipped';
return (
@@ -199,7 +205,7 @@ export const TaskStatusStepper = memo(
{
const { loadingText } = props;
-
const classes = useStyles();
const navigate = useNavigate();
const rootPath = useRouteRef(rootRouteRef);
+ const scaffolderApi = useApi(scaffolderApiRef);
const templateRoute = useRouteRef(selectedTemplateRouteRef);
const [userSelectedStepId, setUserSelectedStepId] = useState<
string | undefined
>(undefined);
+ const [clickedToCancel, setClickedToCancel] = useState(false);
const [lastActiveStepId, setLastActiveStepId] = useState(
undefined,
);
const { taskId } = useRouteRefParams(scaffolderTaskRouteRef);
const taskStream = useTaskEventStream(taskId);
const completed = taskStream.completed;
+ const taskCancelled = taskStream.cancelled;
const steps = useMemo(
() =>
taskStream.task?.spec.steps.map(step => ({
@@ -295,9 +302,7 @@ export const TaskPage = (props: TaskPageProps) => {
}, [taskStream.stepLogs, currentStepId, loadingText]);
const taskNotFound =
- taskStream.completed === true &&
- taskStream.loading === false &&
- !taskStream.task;
+ taskStream.completed && !taskStream.loading && !taskStream.task;
const { output } = taskStream;
@@ -320,6 +325,11 @@ export const TaskPage = (props: TaskPageProps) => {
);
};
+ const handleCancel = async () => {
+ setClickedToCancel(true);
+ await scaffolderApi.cancelTask(taskId);
+ };
+
return (
{
>
Start Over
+
+ {(taskCancelled || clickedToCancel) && !completed
+ ? 'Cancelling...'
+ : 'Cancel'}
+
diff --git a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.test.tsx b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.test.tsx
index b4358146fd..344929fa43 100644
--- a/plugins/scaffolder/src/components/TemplatePage/TemplatePage.test.tsx
+++ b/plugins/scaffolder/src/components/TemplatePage/TemplatePage.test.tsx
@@ -47,6 +47,7 @@ jest.mock('react-router-dom', () => {
});
const scaffolderApiMock: jest.Mocked = {
+ cancelTask: jest.fn(),
scaffold: jest.fn(),
getTemplateParameterSchema: jest.fn(),
getIntegrationsList: jest.fn(),
@@ -338,10 +339,7 @@ describe('TemplatePage', () => {
it('should display a section or property based on a feature flag', async () => {
featureFlagsApiMock.isActive.mockImplementation(flag => {
- if (flag === 'experimental-feature') {
- return true;
- }
- return false;
+ return flag === 'experimental-feature';
});
scaffolderApiMock.getTemplateParameterSchema.mockResolvedValue(
schemaMockValue,
diff --git a/plugins/scaffolder/src/next/OngoingTask/ContextMenu.tsx b/plugins/scaffolder/src/next/OngoingTask/ContextMenu.tsx
index d4c771a9f8..985dd98903 100644
--- a/plugins/scaffolder/src/next/OngoingTask/ContextMenu.tsx
+++ b/plugins/scaffolder/src/next/OngoingTask/ContextMenu.tsx
@@ -23,15 +23,21 @@ import {
MenuList,
Popover,
} from '@material-ui/core';
+import { useAsync } from '@react-hookz/web';
+import Cancel from '@material-ui/icons/Cancel';
import Retry from '@material-ui/icons/Repeat';
import Toc from '@material-ui/icons/Toc';
import MoreVert from '@material-ui/icons/MoreVert';
import React, { useState } from 'react';
+import { useApi } from '@backstage/core-plugin-api';
+import { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';
type ContextMenuProps = {
+ cancelEnabled?: boolean;
logsVisible?: boolean;
- onToggleLogs?: (state: boolean) => void;
onStartOver?: () => void;
+ onToggleLogs?: (state: boolean) => void;
+ taskId?: string;
};
const useStyles = makeStyles((theme: BackstageTheme) => ({
@@ -41,10 +47,18 @@ const useStyles = makeStyles((theme: BackstageTheme) => ({
}));
export const ContextMenu = (props: ContextMenuProps) => {
- const { logsVisible, onToggleLogs, onStartOver } = props;
+ const { cancelEnabled, logsVisible, onStartOver, onToggleLogs, taskId } =
+ props;
const classes = useStyles();
+ const scaffolderApi = useApi(scaffolderApiRef);
const [anchorEl, setAnchorEl] = useState();
+ const [{ status: cancelStatus }, { execute: cancel }] = useAsync(async () => {
+ if (taskId) {
+ await scaffolderApi.cancelTask(taskId);
+ }
+ });
+
return (
<>
{
+
+
+
+
+
+
>
diff --git a/plugins/scaffolder/src/next/OngoingTask/OngoingTask.test.tsx b/plugins/scaffolder/src/next/OngoingTask/OngoingTask.test.tsx
new file mode 100644
index 0000000000..c31322a9eb
--- /dev/null
+++ b/plugins/scaffolder/src/next/OngoingTask/OngoingTask.test.tsx
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2022 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { OngoingTask } from './OngoingTask';
+import React from 'react';
+import { renderInTestApp, TestApiProvider } from '@backstage/test-utils';
+import { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';
+import { act, fireEvent, waitFor } from '@testing-library/react';
+import { rootRouteRef } from '../../routes';
+
+jest.mock('react-router-dom', () => ({
+ ...jest.requireActual('react-router-dom'),
+ useParams: () => ({ taskId: 'my-task' }),
+}));
+
+jest.mock('@backstage/plugin-scaffolder-react', () => ({
+ ...jest.requireActual('@backstage/plugin-scaffolder-react'),
+ useTaskEventStream: () => ({
+ cancelled: false,
+ loading: true,
+ stepLogs: {},
+ completed: false,
+ steps: {},
+ task: {
+ spec: {
+ steps: [],
+ templateInfo: { entity: { metadata: { name: 'my-template' } } },
+ },
+ },
+ }),
+}));
+
+describe('OngoingTask', () => {
+ const mockScaffolderApi = {
+ cancelTask: jest.fn(),
+ getTask: jest.fn().mockImplementation(async () => {}),
+ };
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ });
+
+ it('should trigger cancel api on "Cancel" click in context menu', async () => {
+ const cancelOptionLabel = 'Cancel';
+ const rendered = await renderInTestApp(
+
+
+ ,
+ { mountedRoutes: { '/': rootRouteRef } },
+ );
+ const { getByText, getByTestId } = rendered;
+
+ await act(async () => {
+ fireEvent.click(getByTestId('menu-button'));
+ });
+ expect(getByTestId('cancel-task')).not.toHaveClass('Mui-disabled');
+
+ await act(async () => {
+ fireEvent.click(getByText(cancelOptionLabel));
+ });
+
+ expect(mockScaffolderApi.cancelTask).toHaveBeenCalled();
+ await act(async () => {
+ fireEvent.click(getByTestId('menu-button'));
+ });
+
+ await waitFor(() => {
+ expect(getByTestId('cancel-task')).toHaveClass('Mui-disabled');
+ });
+ });
+});
diff --git a/plugins/scaffolder/src/next/OngoingTask/OngoingTask.tsx b/plugins/scaffolder/src/next/OngoingTask/OngoingTask.tsx
index fc1c1a7413..f8026cf073 100644
--- a/plugins/scaffolder/src/next/OngoingTask/OngoingTask.tsx
+++ b/plugins/scaffolder/src/next/OngoingTask/OngoingTask.tsx
@@ -13,15 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import React, { useEffect, useMemo, useState, useCallback } from 'react';
-import { Page, Header, Content, ErrorPanel } from '@backstage/core-components';
+import React, { useCallback, useEffect, useMemo, useState } from 'react';
+import { Content, ErrorPanel, Header, Page } from '@backstage/core-components';
import { useNavigate, useParams } from 'react-router-dom';
import { Box, makeStyles, Paper } from '@material-ui/core';
import {
ScaffolderTaskOutput,
useTaskEventStream,
} from '@backstage/plugin-scaffolder-react';
-import { nextSelectedTemplateRouteRef } from '../routes';
+import { selectedTemplateRouteRef } from '../../routes';
import { useRouteRef } from '@backstage/core-plugin-api';
import qs from 'qs';
import { ContextMenu } from './ContextMenu';
@@ -45,7 +45,7 @@ export const OngoingTask = (props: {
}) => {
// todo(blam): check that task Id actually exists, and that it's valid. otherwise redirect to something more useful.
const { taskId } = useParams();
- const templateRouteRef = useRouteRef(nextSelectedTemplateRouteRef);
+ const templateRouteRef = useRouteRef(selectedTemplateRouteRef);
const navigate = useNavigate();
const taskStream = useTaskEventStream(taskId!);
const classes = useStyles();
@@ -105,6 +105,8 @@ export const OngoingTask = (props: {
const templateName =
taskStream.task?.spec.templateInfo?.entity?.metadata.name;
+ const cancelEnabled = !(taskStream.cancelled || taskStream.completed);
+
return (
diff --git a/plugins/scaffolder/src/next/Router/Router.tsx b/plugins/scaffolder/src/next/Router/Router.tsx
index 5e199cae9b..5066e96d6c 100644
--- a/plugins/scaffolder/src/next/Router/Router.tsx
+++ b/plugins/scaffolder/src/next/Router/Router.tsx
@@ -33,12 +33,12 @@ import { TemplateGroupFilter } from '../TemplateListPage/TemplateGroups';
import { DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS } from '../../extensions/default';
import {
- nextActionsRouteRef,
- nextEditRouteRef,
- nextScaffolderListTaskRouteRef,
- nextScaffolderTaskRouteRef,
- nextSelectedTemplateRouteRef,
-} from '../routes';
+ actionsRouteRef,
+ editRouteRef,
+ scaffolderListTaskRouteRef,
+ scaffolderTaskRouteRef,
+ selectedTemplateRouteRef,
+} from '../../routes';
import { ErrorPage } from '@backstage/core-components';
import { OngoingTask } from '../OngoingTask';
import { ActionsPage } from '../../components/ActionsPage';
@@ -115,7 +115,7 @@ export const Router = (props: PropsWithChildren) => {
}
/>
) => {
}
/>
) => {
}
/>
) => {
}
/>
- } />
+ } />
}
/>
({
button: {
@@ -50,9 +50,9 @@ export type ScaffolderPageContextMenuProps = {
export function ContextMenu(props: ScaffolderPageContextMenuProps) {
const classes = useStyles();
const [anchorEl, setAnchorEl] = useState();
- const editLink = useRouteRef(nextEditRouteRef);
- const actionsLink = useRouteRef(nextActionsRouteRef);
- const tasksLink = useRouteRef(nextScaffolderListTaskRouteRef);
+ const editLink = useRouteRef(editRouteRef);
+ const actionsLink = useRouteRef(actionsRouteRef);
+ const tasksLink = useRouteRef(scaffolderListTaskRouteRef);
const navigate = useNavigate();
diff --git a/plugins/scaffolder/src/next/TemplateListPage/TemplateGroups.test.tsx b/plugins/scaffolder/src/next/TemplateListPage/TemplateGroups.test.tsx
index 6fe2d6beb9..2b66f294fa 100644
--- a/plugins/scaffolder/src/next/TemplateListPage/TemplateGroups.test.tsx
+++ b/plugins/scaffolder/src/next/TemplateListPage/TemplateGroups.test.tsx
@@ -28,7 +28,7 @@ import { TemplateGroups } from './TemplateGroups';
import { renderInTestApp, TestApiProvider } from '@backstage/test-utils';
import { errorApiRef } from '@backstage/core-plugin-api';
import { TemplateGroup } from '@backstage/plugin-scaffolder-react/alpha';
-import { nextRouteRef } from '../routes';
+import { rootRouteRef } from '../../routes';
describe('TemplateGroups', () => {
beforeEach(() => jest.clearAllMocks());
@@ -42,7 +42,7 @@ describe('TemplateGroups', () => {
,
{
mountedRoutes: {
- '/next': nextRouteRef,
+ '/create': rootRouteRef,
},
},
);
@@ -64,7 +64,7 @@ describe('TemplateGroups', () => {
,
{
mountedRoutes: {
- '/next': nextRouteRef,
+ '/create': rootRouteRef,
},
},
);
@@ -85,7 +85,7 @@ describe('TemplateGroups', () => {
,
{
mountedRoutes: {
- '/next': nextRouteRef,
+ '/create': rootRouteRef,
},
},
);
@@ -106,7 +106,7 @@ describe('TemplateGroups', () => {
,
{
mountedRoutes: {
- '/next': nextRouteRef,
+ '/create': rootRouteRef,
},
},
);
@@ -146,7 +146,7 @@ describe('TemplateGroups', () => {
,
{
mountedRoutes: {
- '/next': nextRouteRef,
+ '/create': rootRouteRef,
},
},
);
@@ -195,7 +195,7 @@ describe('TemplateGroups', () => {
,
{
mountedRoutes: {
- '/next': nextRouteRef,
+ '/create': rootRouteRef,
},
},
);
diff --git a/plugins/scaffolder/src/next/TemplateListPage/TemplateGroups.tsx b/plugins/scaffolder/src/next/TemplateListPage/TemplateGroups.tsx
index 590ef802bd..6f32bf38e5 100644
--- a/plugins/scaffolder/src/next/TemplateListPage/TemplateGroups.tsx
+++ b/plugins/scaffolder/src/next/TemplateListPage/TemplateGroups.tsx
@@ -31,8 +31,7 @@ import {
useRouteRef,
} from '@backstage/core-plugin-api';
import { TemplateGroup } from '@backstage/plugin-scaffolder-react/alpha';
-import { viewTechDocRouteRef } from '../../routes';
-import { nextSelectedTemplateRouteRef } from '../routes';
+import { viewTechDocRouteRef, selectedTemplateRouteRef } from '../../routes';
import { useNavigate } from 'react-router-dom';
/**
@@ -56,7 +55,7 @@ export const TemplateGroups = (props: TemplateGroupsProps) => {
const errorApi = useApi(errorApiRef);
const app = useApp();
const viewTechDocsLink = useRouteRef(viewTechDocRouteRef);
- const templateRoute = useRouteRef(nextSelectedTemplateRouteRef);
+ const templateRoute = useRouteRef(selectedTemplateRouteRef);
const navigate = useNavigate();
const onSelected = useCallback(
(template: TemplateEntityV1beta3) => {
diff --git a/plugins/scaffolder/src/next/TemplateListPage/TemplateListPage.test.tsx b/plugins/scaffolder/src/next/TemplateListPage/TemplateListPage.test.tsx
index 41e7897819..d5a76d2a47 100644
--- a/plugins/scaffolder/src/next/TemplateListPage/TemplateListPage.test.tsx
+++ b/plugins/scaffolder/src/next/TemplateListPage/TemplateListPage.test.tsx
@@ -25,7 +25,7 @@ import {
TestApiProvider,
} from '@backstage/test-utils';
import React from 'react';
-import { nextRouteRef } from '../routes';
+import { rootRouteRef } from '../../routes';
import { TemplateListPage } from './TemplateListPage';
describe('TemplateListPage', () => {
@@ -63,7 +63,7 @@ describe('TemplateListPage', () => {
>
,
- { mountedRoutes: { '/': nextRouteRef } },
+ { mountedRoutes: { '/': rootRouteRef } },
);
expect(getByPlaceholderText('Search')).toBeInTheDocument();
@@ -85,7 +85,7 @@ describe('TemplateListPage', () => {
>
,
- { mountedRoutes: { '/': nextRouteRef } },
+ { mountedRoutes: { '/': rootRouteRef } },
);
expect(getByRole('menuitem', { name: /All/ })).toBeInTheDocument();
@@ -108,7 +108,7 @@ describe('TemplateListPage', () => {
>
,
- { mountedRoutes: { '/': nextRouteRef } },
+ { mountedRoutes: { '/': rootRouteRef } },
);
expect(getByText('Categories')).toBeInTheDocument();
diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.test.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.test.tsx
index c4f9c75ceb..26a9dd946c 100644
--- a/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.test.tsx
+++ b/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.test.tsx
@@ -29,7 +29,6 @@ import {
} from '@backstage/plugin-scaffolder-react';
import { TemplateWizardPage } from './TemplateWizardPage';
import { rootRouteRef } from '../../routes';
-import { nextRouteRef } from '../routes';
jest.mock('react-router-dom', () => {
return {
@@ -41,6 +40,7 @@ jest.mock('react-router-dom', () => {
});
const scaffolderApiMock: jest.Mocked
= {
+ cancelTask: jest.fn(),
scaffold: jest.fn(),
getTemplateParameterSchema: jest.fn(),
getIntegrationsList: jest.fn(),
@@ -83,8 +83,7 @@ describe('TemplateWizardPage', () => {
,
{
mountedRoutes: {
- '/create': nextRouteRef,
- '/create-legacy': rootRouteRef,
+ '/create': rootRouteRef,
},
},
);
diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.tsx
index 4825715fcb..99f4a3b52d 100644
--- a/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.tsx
+++ b/plugins/scaffolder/src/next/TemplateWizardPage/TemplateWizardPage.tsx
@@ -34,11 +34,12 @@ import {
} from '@backstage/plugin-scaffolder-react/alpha';
import { JsonValue } from '@backstage/types';
import { Header, Page } from '@backstage/core-components';
+
import {
- nextRouteRef,
- nextScaffolderTaskRouteRef,
- nextSelectedTemplateRouteRef,
-} from '../routes';
+ rootRouteRef,
+ scaffolderTaskRouteRef,
+ selectedTemplateRouteRef,
+} from '../../routes';
export type TemplateWizardPageProps = {
customFieldExtensions: NextFieldExtensionOptions[];
@@ -47,13 +48,13 @@ export type TemplateWizardPageProps = {
};
export const TemplateWizardPage = (props: TemplateWizardPageProps) => {
- const rootRef = useRouteRef(nextRouteRef);
- const taskRoute = useRouteRef(nextScaffolderTaskRouteRef);
+ const rootRef = useRouteRef(rootRouteRef);
+ const taskRoute = useRouteRef(scaffolderTaskRouteRef);
const { secrets } = useTemplateSecrets();
const scaffolderApi = useApi(scaffolderApiRef);
const navigate = useNavigate();
const { templateName, namespace } = useRouteRefParams(
- nextSelectedTemplateRouteRef,
+ selectedTemplateRouteRef,
);
const templateRef = stringifyEntityRef({
diff --git a/plugins/scaffolder/src/next/index.ts b/plugins/scaffolder/src/next/index.ts
index 1ca9096459..6cef3eaa03 100644
--- a/plugins/scaffolder/src/next/index.ts
+++ b/plugins/scaffolder/src/next/index.ts
@@ -17,4 +17,3 @@ export * from './Router';
export * from './TemplateListPage';
export * from './TemplateWizardPage';
export * from './types';
-export * from './routes';
diff --git a/plugins/scaffolder/src/next/routes.ts b/plugins/scaffolder/src/next/routes.ts
deleted file mode 100644
index 12fad4210a..0000000000
--- a/plugins/scaffolder/src/next/routes.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2022 The Backstage Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';
-
-/** @alpha */
-export const nextRouteRef = createRouteRef({
- id: 'scaffolder/next',
-});
-
-/** @alpha */
-export const nextSelectedTemplateRouteRef = createSubRouteRef({
- id: 'scaffolder/next/selected-template',
- parent: nextRouteRef,
- path: '/templates/:namespace/:templateName',
-});
-
-/** @alpha */
-export const nextScaffolderTaskRouteRef = createSubRouteRef({
- id: 'scaffolder/next/task',
- parent: nextRouteRef,
- path: '/tasks/:taskId',
-});
-
-/** @alpha */
-export const nextScaffolderListTaskRouteRef = createSubRouteRef({
- id: 'scaffolder/next/list-tasks',
- parent: nextRouteRef,
- path: '/tasks',
-});
-
-/** @alpha */
-export const nextActionsRouteRef = createSubRouteRef({
- id: 'scaffolder/next/actions',
- parent: nextRouteRef,
- path: '/actions',
-});
-
-/** @alpha */
-export const nextEditRouteRef = createSubRouteRef({
- id: 'scaffolder/next/edit',
- parent: nextRouteRef,
- path: '/edit',
-});
diff --git a/plugins/scaffolder/src/plugin.tsx b/plugins/scaffolder/src/plugin.tsx
index f6801c6371..dfe87a3780 100644
--- a/plugins/scaffolder/src/plugin.tsx
+++ b/plugins/scaffolder/src/plugin.tsx
@@ -60,8 +60,10 @@ import {
viewTechDocRouteRef,
selectedTemplateRouteRef,
scaffolderTaskRouteRef,
+ scaffolderListTaskRouteRef,
+ actionsRouteRef,
+ editRouteRef,
} from './routes';
-import { nextRouteRef } from './next';
/**
* The main plugin export for the scaffolder.
@@ -91,6 +93,9 @@ export const scaffolderPlugin = createPlugin({
root: rootRouteRef,
selectedTemplate: selectedTemplateRouteRef,
ongoingTask: scaffolderTaskRouteRef,
+ actions: actionsRouteRef,
+ listTasks: scaffolderListTaskRouteRef,
+ edit: editRouteRef,
},
externalRoutes: {
registerComponent: registerComponentRouteRef,
@@ -199,6 +204,6 @@ export const NextScaffolderPage = scaffolderPlugin.provide(
createRoutableExtension({
name: 'NextScaffolderPage',
component: () => import('./next/Router').then(m => m.Router),
- mountPoint: nextRouteRef,
+ mountPoint: rootRouteRef,
}),
);
diff --git a/plugins/search-backend-module-elasticsearch/CHANGELOG.md b/plugins/search-backend-module-elasticsearch/CHANGELOG.md
index 8576e6602c..b72c36dec2 100644
--- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md
+++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-search-backend-module-elasticsearch
+## 1.1.4
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-backend-node@1.1.4
+ - @backstage/plugin-search-common@1.2.2
+
## 1.1.4-next.2
### Patch Changes
diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json
index 6520571ec6..e854687360 100644
--- a/plugins/search-backend-module-elasticsearch/package.json
+++ b/plugins/search-backend-module-elasticsearch/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-module-elasticsearch",
"description": "A module for the search backend that implements search using ElasticSearch",
- "version": "1.1.4-next.2",
+ "version": "1.1.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend-module-pg/CHANGELOG.md b/plugins/search-backend-module-pg/CHANGELOG.md
index db32c01817..50a9fc9d91 100644
--- a/plugins/search-backend-module-pg/CHANGELOG.md
+++ b/plugins/search-backend-module-pg/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-search-backend-module-pg
+## 0.5.4
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-backend-node@1.1.4
+ - @backstage/plugin-search-common@1.2.2
+
## 0.5.4-next.2
### Patch Changes
diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json
index c6513c8e27..b284557369 100644
--- a/plugins/search-backend-module-pg/package.json
+++ b/plugins/search-backend-module-pg/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-module-pg",
"description": "A module for the search backend that implements search using PostgreSQL",
- "version": "0.5.4-next.2",
+ "version": "0.5.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend-node/CHANGELOG.md b/plugins/search-backend-node/CHANGELOG.md
index 5fcd3bd0fa..69cc5ac718 100644
--- a/plugins/search-backend-node/CHANGELOG.md
+++ b/plugins/search-backend-node/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-search-backend-node
+## 1.1.4
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-common@1.2.2
+
## 1.1.4-next.2
### Patch Changes
diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json
index d86be92e92..2abc0a8ef0 100644
--- a/plugins/search-backend-node/package.json
+++ b/plugins/search-backend-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend-node",
"description": "A library for Backstage backend plugins that want to interact with the search backend plugin",
- "version": "1.1.4-next.2",
+ "version": "1.1.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-backend/CHANGELOG.md b/plugins/search-backend/CHANGELOG.md
index 513ee4536a..72d9e53c08 100644
--- a/plugins/search-backend/CHANGELOG.md
+++ b/plugins/search-backend/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-search-backend
+## 1.2.4
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-permission-node@0.7.6
+ - @backstage/plugin-auth-node@0.2.12
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-search-backend-node@1.1.4
+ - @backstage/plugin-search-common@1.2.2
+
## 1.2.4-next.2
### Patch Changes
diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json
index 0baecca0a9..02d4d53a92 100644
--- a/plugins/search-backend/package.json
+++ b/plugins/search-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-backend",
"description": "The Backstage backend plugin that provides your backstage app with search",
- "version": "1.2.4-next.2",
+ "version": "1.2.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-common/CHANGELOG.md b/plugins/search-common/CHANGELOG.md
index b0a0479ed3..893e6cc89d 100644
--- a/plugins/search-common/CHANGELOG.md
+++ b/plugins/search-common/CHANGELOG.md
@@ -1,5 +1,13 @@
# @backstage/plugin-search-common
+## 1.2.2
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/types@1.0.2
+
## 1.2.2-next.0
### Patch Changes
diff --git a/plugins/search-common/package.json b/plugins/search-common/package.json
index ba767f7019..a7c8de1c9f 100644
--- a/plugins/search-common/package.json
+++ b/plugins/search-common/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-search-common",
"description": "Common functionalities for Search, to be shared between various search-enabled plugins",
- "version": "1.2.2-next.0",
+ "version": "1.2.2",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md
index 9fc158de5d..cf6138956c 100644
--- a/plugins/search-react/CHANGELOG.md
+++ b/plugins/search-react/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-search-react
+## 1.5.1
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 553f3c95011: Correctly disable next button in `SearchPagination` on last page
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/version-bridge@1.0.3
+ - @backstage/plugin-search-common@1.2.2
+
## 1.5.1-next.2
### Patch Changes
diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json
index 355191cb47..f14a62ccea 100644
--- a/plugins/search-react/package.json
+++ b/plugins/search-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-search-react",
- "version": "1.5.1-next.2",
+ "version": "1.5.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/search-react/src/components/DefaultResultListItem/DefaultResultListItem.tsx b/plugins/search-react/src/components/DefaultResultListItem/DefaultResultListItem.tsx
index cf89b6a9cd..0d2c59e173 100644
--- a/plugins/search-react/src/components/DefaultResultListItem/DefaultResultListItem.tsx
+++ b/plugins/search-react/src/components/DefaultResultListItem/DefaultResultListItem.tsx
@@ -81,6 +81,8 @@ export const DefaultResultListItemComponent = ({
WebkitLineClamp: lineClamp,
overflow: 'hidden',
}}
+ color="textSecondary"
+ variant="body2"
>
{highlight?.fields.text ? (
): Promise;
+ add(shortcut: Omit): Promise;
// (undocumented)
- get(): Shortcut[];
+ get(): Shortcut_2[];
// (undocumented)
getColor(url: string): string;
// (undocumented)
remove(id: string): Promise;
// (undocumented)
- shortcut$(): Observable_2;
+ shortcut$(): Observable;
// (undocumented)
- update(shortcut: Shortcut): Promise;
+ update(shortcut: Shortcut_2): Promise;
}
// @public (undocumented)
diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json
index eb48088934..1901198b80 100644
--- a/plugins/shortcuts/package.json
+++ b/plugins/shortcuts/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-shortcuts",
"description": "A Backstage plugin that provides a shortcuts feature to the sidebar",
- "version": "0.3.8-next.2",
+ "version": "0.3.8",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,7 +30,6 @@
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
- "@types/zen-observable": "^0.8.2",
"react-hook-form": "^7.12.2",
"react-use": "^17.2.4",
"uuid": "^8.3.2",
@@ -49,6 +48,7 @@
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/node": "^16.11.26",
+ "@types/zen-observable": "^0.8.2",
"cross-fetch": "^3.1.5",
"msw": "^1.0.0"
},
diff --git a/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts b/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts
index dbea91863c..86890fc75b 100644
--- a/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts
+++ b/plugins/shortcuts/src/api/LocalStoredShortcuts.test.ts
@@ -36,8 +36,9 @@ describe('LocalStoredShortcuts', () => {
resolve();
},
});
- shortcutApi.add(shortcut);
});
+ observerNextHandler.mockClear(); // handler is called with current state to start
+ await shortcutApi.add(shortcut);
expect(observerNextHandler).toHaveBeenCalledTimes(1);
expect(observerNextHandler).toHaveBeenCalledWith(
diff --git a/plugins/shortcuts/src/api/LocalStoredShortcuts.ts b/plugins/shortcuts/src/api/LocalStoredShortcuts.ts
index 65aeb86e3f..44f7364f69 100644
--- a/plugins/shortcuts/src/api/LocalStoredShortcuts.ts
+++ b/plugins/shortcuts/src/api/LocalStoredShortcuts.ts
@@ -16,10 +16,10 @@
import { pageTheme } from '@backstage/theme';
import { v4 as uuid } from 'uuid';
-import { ShortcutApi } from './ShortcutApi';
-import { Shortcut } from '../types';
-import { StorageApi } from '@backstage/core-plugin-api';
-import Observable from 'zen-observable';
+import { ShortcutApi, type Shortcut } from '@backstage/plugin-shortcuts';
+import type { StorageApi } from '@backstage/core-plugin-api';
+import type { Observable } from '@backstage/types';
+import ObservableImpl from 'zen-observable';
/**
* Implementation of the ShortcutApi that uses the StorageApi to store shortcuts.
@@ -27,27 +27,41 @@ import Observable from 'zen-observable';
* @public
*/
export class LocalStoredShortcuts implements ShortcutApi {
- private readonly shortcuts: Observable;
+ private shortcuts: Shortcut[];
+ private readonly subscribers = new Set<
+ ZenObservable.SubscriptionObserver
+ >();
+
+ private readonly observable = new ObservableImpl(subscriber => {
+ // forward the the latest value
+ subscriber.next(this.shortcuts);
+
+ this.subscribers.add(subscriber);
+ return () => {
+ this.subscribers.delete(subscriber);
+ };
+ });
constructor(private readonly storageApi: StorageApi) {
- this.shortcuts = Observable.from(
- this.storageApi.observe$('items'),
- ).map(snapshot => snapshot.value ?? []);
+ this.shortcuts = this.storageApi.snapshot('items').value ?? [];
+ this.storageApi.observe$('items').subscribe({
+ next: next => {
+ this.shortcuts = next.value ?? [];
+ this.notifyChanges();
+ },
+ });
}
- shortcut$() {
- return this.shortcuts;
+ shortcut$(): Observable {
+ return this.observable;
}
get() {
- return Array.from(
- this.storageApi.snapshot('items').value ?? [],
- ).sort((a, b) => (a.title >= b.title ? 1 : -1));
+ return this.shortcuts;
}
async add(shortcut: Omit) {
- const shortcuts = this.get();
- shortcuts.push({ ...shortcut, id: uuid() });
+ const shortcuts = this.sort([...this.get(), { ...shortcut, id: uuid() }]);
await this.storageApi.set('items', shortcuts);
}
@@ -78,4 +92,14 @@ export class LocalStoredShortcuts implements ShortcutApi {
catalog: 'home',
docs: 'documentation',
};
+
+ private sort(shortcuts: Shortcut[]): Shortcut[] {
+ return shortcuts.slice().sort((a, b) => (a.title >= b.title ? 1 : -1));
+ }
+
+ private notifyChanges() {
+ for (const subscription of this.subscribers) {
+ subscription.next(this.shortcuts);
+ }
+ }
}
diff --git a/plugins/sonarqube-backend/CHANGELOG.md b/plugins/sonarqube-backend/CHANGELOG.md
index f60f7bf047..0f2ff1d996 100644
--- a/plugins/sonarqube-backend/CHANGELOG.md
+++ b/plugins/sonarqube-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-sonarqube-backend
+## 0.1.8
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+
## 0.1.8-next.2
### Patch Changes
diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json
index d7de98d307..a3f3b42f43 100644
--- a/plugins/sonarqube-backend/package.json
+++ b/plugins/sonarqube-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-sonarqube-backend",
- "version": "0.1.8-next.2",
+ "version": "0.1.8",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/sonarqube-react/CHANGELOG.md b/plugins/sonarqube-react/CHANGELOG.md
index 6c7d5d41f2..ae337f220e 100644
--- a/plugins/sonarqube-react/CHANGELOG.md
+++ b/plugins/sonarqube-react/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-sonarqube-react
+## 0.1.4
+
+### Patch Changes
+
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 8ae65a0bc1d: Moved imports from `/alpha` to main public exports.
+- Updated dependencies
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+
## 0.1.4-next.2
### Patch Changes
diff --git a/plugins/sonarqube-react/package.json b/plugins/sonarqube-react/package.json
index d5266cd220..442a747717 100644
--- a/plugins/sonarqube-react/package.json
+++ b/plugins/sonarqube-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-sonarqube-react",
- "version": "0.1.4-next.2",
+ "version": "0.1.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/sonarqube/CHANGELOG.md b/plugins/sonarqube/CHANGELOG.md
index 6c6f69aaf8..6eeea22725 100644
--- a/plugins/sonarqube/CHANGELOG.md
+++ b/plugins/sonarqube/CHANGELOG.md
@@ -1,5 +1,22 @@
# @backstage/plugin-sonarqube
+## 0.6.5
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 8ae65a0bc1d: Moved imports from `/alpha` to main public exports.
+- d3d624e8e8d: Show a more appropriate icon if there are no code smells and/or vulnerabilities.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/plugin-sonarqube-react@0.1.4
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.6.5-next.2
### Patch Changes
diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json
index 48d221e508..5815032f6a 100644
--- a/plugins/sonarqube/package.json
+++ b/plugins/sonarqube/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-sonarqube",
"description": "",
- "version": "0.6.5-next.2",
+ "version": "0.6.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/splunk-on-call/CHANGELOG.md b/plugins/splunk-on-call/CHANGELOG.md
index 830c918ced..011e513852 100644
--- a/plugins/splunk-on-call/CHANGELOG.md
+++ b/plugins/splunk-on-call/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-splunk-on-call
+## 0.4.5
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.4.5-next.2
### Patch Changes
diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json
index 97a5357bd0..98a6291791 100644
--- a/plugins/splunk-on-call/package.json
+++ b/plugins/splunk-on-call/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-splunk-on-call",
"description": "A Backstage plugin that integrates towards Splunk On-Call",
- "version": "0.4.5-next.2",
+ "version": "0.4.5",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/stack-overflow-backend/CHANGELOG.md b/plugins/stack-overflow-backend/CHANGELOG.md
index fab1416363..ba743be981 100644
--- a/plugins/stack-overflow-backend/CHANGELOG.md
+++ b/plugins/stack-overflow-backend/CHANGELOG.md
@@ -1,5 +1,15 @@
# @backstage/plugin-stack-overflow-backend
+## 0.1.12
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-common@1.2.2
+
## 0.1.12-next.2
### Patch Changes
diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json
index 2dd405dc3b..8d1203577d 100644
--- a/plugins/stack-overflow-backend/package.json
+++ b/plugins/stack-overflow-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-stack-overflow-backend",
- "version": "0.1.12-next.2",
+ "version": "0.1.12",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/stack-overflow/CHANGELOG.md b/plugins/stack-overflow/CHANGELOG.md
index 050900554d..c8641592a6 100644
--- a/plugins/stack-overflow/CHANGELOG.md
+++ b/plugins/stack-overflow/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-stack-overflow
+## 0.1.12
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 3ef5fb09ca5: Export api ref and StackOverflowApi type
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/plugin-home@0.4.32
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-search-common@1.2.2
+
## 0.1.12-next.2
### Patch Changes
diff --git a/plugins/stack-overflow/api-report.md b/plugins/stack-overflow/api-report.md
index fe2a970c13..598bd06a04 100644
--- a/plugins/stack-overflow/api-report.md
+++ b/plugins/stack-overflow/api-report.md
@@ -5,6 +5,7 @@
```ts
///
+import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { CardExtensionProps } from '@backstage/plugin-home';
import { ReactNode } from 'react';
@@ -15,6 +16,16 @@ export const HomePageStackOverflowQuestions: (
props: CardExtensionProps,
) => JSX.Element;
+// @public (undocumented)
+export type StackOverflowApi = {
+ listQuestions(options?: {
+ requestParams: StackOverflowQuestionsRequestParams;
+ }): Promise;
+};
+
+// @public (undocumented)
+export const stackOverflowApiRef: ApiRef;
+
// @public
export const StackOverflowIcon: () => JSX.Element;
diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json
index 3675593181..952471fd50 100644
--- a/plugins/stack-overflow/package.json
+++ b/plugins/stack-overflow/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-stack-overflow",
- "version": "0.1.12-next.2",
+ "version": "0.1.12",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/stack-overflow/src/api/StackOverflowApi.ts b/plugins/stack-overflow/src/api/StackOverflowApi.ts
index 6e76f51409..d470e879e7 100644
--- a/plugins/stack-overflow/src/api/StackOverflowApi.ts
+++ b/plugins/stack-overflow/src/api/StackOverflowApi.ts
@@ -20,10 +20,16 @@ import {
StackOverflowQuestionsRequestParams,
} from '../types';
+/**
+ * @public
+ */
export const stackOverflowApiRef = createApiRef({
id: 'plugin.stackoverflow.service',
});
+/**
+ * @public
+ */
export type StackOverflowApi = {
listQuestions(options?: {
requestParams: StackOverflowQuestionsRequestParams;
diff --git a/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx b/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx
index 35ace44c14..aed1ed25aa 100644
--- a/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx
+++ b/plugins/stack-overflow/src/home/StackOverflowQuestions/StackOverflowQuestions.stories.tsx
@@ -21,6 +21,26 @@ import { ConfigReader } from '@backstage/config';
import { Grid } from '@material-ui/core';
import React, { ComponentType } from 'react';
import { StackOverflowIcon } from '../../icons';
+import { stackOverflowApiRef } from '../../api';
+
+const mockStackOverflowApi = {
+ listQuestions: async () => [
+ {
+ title: 'Customizing Spotify backstage UI',
+ link: 'stackoverflow.question/1',
+ answer_count: 0,
+ tags: ['backstage'],
+ owner: { 'some owner': 'name' },
+ },
+ {
+ title: 'Customizing Spotify backstage UI',
+ link: 'stackoverflow.question/1',
+ answer_count: 0,
+ tags: ['backstage'],
+ owner: { 'some owner': 'name' },
+ },
+ ],
+};
export default {
title: 'Plugins/Home/Components/StackOverflow',
@@ -39,6 +59,7 @@ export default {
},
}),
],
+ [stackOverflowApiRef, mockStackOverflowApi],
]}
>
diff --git a/plugins/stack-overflow/src/index.ts b/plugins/stack-overflow/src/index.ts
index 5965d66983..a796f563eb 100644
--- a/plugins/stack-overflow/src/index.ts
+++ b/plugins/stack-overflow/src/index.ts
@@ -30,3 +30,5 @@ export type {
StackOverflowQuestionsContentProps,
StackOverflowQuestionsRequestParams,
} from './types';
+export { stackOverflowApiRef } from './api';
+export type { StackOverflowApi } from './api';
diff --git a/plugins/stackstorm/CHANGELOG.md b/plugins/stackstorm/CHANGELOG.md
index f68c853b7b..3af84cd8a6 100644
--- a/plugins/stackstorm/CHANGELOG.md
+++ b/plugins/stackstorm/CHANGELOG.md
@@ -1,5 +1,20 @@
# @backstage/plugin-stackstorm
+## 0.1.0
+
+### Minor Changes
+
+- f3a15259e91: Add StackStorm plugin to Backstage which is interfacing with StackStorm API. It allows users to view workflow executions, packs and actions. For installation and configuration instructions please view [README.md](https://github.com/backstage/backstage/tree/master/plugins/stackstorm/README.md)
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.1.0-next.2
### Patch Changes
diff --git a/plugins/stackstorm/package.json b/plugins/stackstorm/package.json
index a1ba109d76..2819fc0e33 100644
--- a/plugins/stackstorm/package.json
+++ b/plugins/stackstorm/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-stackstorm",
"description": "A Backstage plugin that integrates towards StackStorm",
- "version": "0.1.0-next.2",
+ "version": "0.1.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md
index 12e6693589..17334e90b7 100644
--- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md
+++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-tech-insights-backend-module-jsonfc
+## 0.1.27
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/config@1.0.7
+ - @backstage/plugin-tech-insights-common@0.2.10
+ - @backstage/plugin-tech-insights-node@0.4.1
+
## 0.1.27-next.2
### Patch Changes
diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json
index 7d60ec0cdc..a6bc32a990 100644
--- a/plugins/tech-insights-backend-module-jsonfc/package.json
+++ b/plugins/tech-insights-backend-module-jsonfc/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-insights-backend-module-jsonfc",
- "version": "0.1.27-next.2",
+ "version": "0.1.27",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights-backend/CHANGELOG.md b/plugins/tech-insights-backend/CHANGELOG.md
index c4e8061f05..8071740295 100644
--- a/plugins/tech-insights-backend/CHANGELOG.md
+++ b/plugins/tech-insights-backend/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-tech-insights-backend
+## 0.5.9
+
+### Patch Changes
+
+- f244b589163: Add DB index to improve latency of latest fact query
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-tech-insights-common@0.2.10
+ - @backstage/plugin-tech-insights-node@0.4.1
+
## 0.5.9-next.2
### Patch Changes
diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json
index e11bf60e0d..c1887906e9 100644
--- a/plugins/tech-insights-backend/package.json
+++ b/plugins/tech-insights-backend/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-insights-backend",
- "version": "0.5.9-next.2",
+ "version": "0.5.9",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights-node/CHANGELOG.md b/plugins/tech-insights-node/CHANGELOG.md
index ed9f3667f0..71eb372214 100644
--- a/plugins/tech-insights-node/CHANGELOG.md
+++ b/plugins/tech-insights-node/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-tech-insights-node
+## 0.4.1
+
+### Patch Changes
+
+- Updated dependencies
+ - @backstage/backend-tasks@0.5.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/config@1.0.7
+ - @backstage/types@1.0.2
+ - @backstage/plugin-tech-insights-common@0.2.10
+
## 0.4.1-next.2
### Patch Changes
diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json
index 6a546f86c1..bfa4d893c0 100644
--- a/plugins/tech-insights-node/package.json
+++ b/plugins/tech-insights-node/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-insights-node",
- "version": "0.4.1-next.2",
+ "version": "0.4.1",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights/CHANGELOG.md b/plugins/tech-insights/CHANGELOG.md
index e8d57b056f..056b15cb8b 100644
--- a/plugins/tech-insights/CHANGELOG.md
+++ b/plugins/tech-insights/CHANGELOG.md
@@ -1,5 +1,21 @@
# @backstage/plugin-tech-insights
+## 0.3.8
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+ - @backstage/types@1.0.2
+ - @backstage/plugin-tech-insights-common@0.2.10
+
## 0.3.8-next.2
### Patch Changes
diff --git a/plugins/tech-insights/api-report.md b/plugins/tech-insights/api-report.md
index 83509e1673..47aa8bbbea 100644
--- a/plugins/tech-insights/api-report.md
+++ b/plugins/tech-insights/api-report.md
@@ -27,6 +27,8 @@ export type Check = {
name: string;
description: string;
factIds: string[];
+ successMetadata?: Record;
+ failureMetadata?: Record;
};
// @public
diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json
index 680641b1b0..1c912083fd 100644
--- a/plugins/tech-insights/package.json
+++ b/plugins/tech-insights/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-tech-insights",
- "version": "0.3.8-next.2",
+ "version": "0.3.8",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/tech-insights/src/api/types.ts b/plugins/tech-insights/src/api/types.ts
index ac1f2e44ee..b08f63ecc2 100644
--- a/plugins/tech-insights/src/api/types.ts
+++ b/plugins/tech-insights/src/api/types.ts
@@ -22,11 +22,48 @@ import { JsonValue } from '@backstage/types';
* @public
*/
export type Check = {
+ /**
+ * Unique identifier of the check
+ *
+ * Used to identify which checks to use when running checks.
+ */
id: string;
+
+ /**
+ * Type identifier for the check.
+ * Can be used to determine storage options, logical routing to correct FactChecker implementation
+ * or to help frontend render correct component types based on this
+ */
type: string;
+
+ /**
+ * Human readable name of the check, may be displayed in the UI
+ */
name: string;
+
+ /**
+ * Human readable description of the check, may be displayed in the UI
+ */
description: string;
+
+ /**
+ * A collection of string referencing fact rows that a check will be run against.
+ *
+ * References the fact container, aka fact retriever itself which may or may not contain multiple individual facts and values
+ */
factIds: string[];
+
+ /**
+ * Metadata to be returned in case a check has been successfully evaluated
+ * Can contain links, description texts or other actionable items
+ */
+ successMetadata?: Record;
+
+ /**
+ * Metadata to be returned in case a check evaluation has ended in failure
+ * Can contain links, description texts or other actionable items
+ */
+ failureMetadata?: Record;
};
/**
diff --git a/plugins/tech-radar/CHANGELOG.md b/plugins/tech-radar/CHANGELOG.md
index 4ad21662bd..694e07eeac 100644
--- a/plugins/tech-radar/CHANGELOG.md
+++ b/plugins/tech-radar/CHANGELOG.md
@@ -1,5 +1,17 @@
# @backstage/plugin-tech-radar
+## 0.6.2
+
+### Patch Changes
+
+- e14dcfa4994: Update colors to match Zalando's tech radar, also add coloring on title and legend to match ring color.
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.6.2-next.2
### Patch Changes
diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json
index 273bd79255..f47e2a80c7 100644
--- a/plugins/tech-radar/package.json
+++ b/plugins/tech-radar/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-tech-radar",
"description": "A Backstage plugin that lets you display a Tech Radar for your organization",
- "version": "0.6.2-next.2",
+ "version": "0.6.2",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/techdocs-addons-test-utils/CHANGELOG.md b/plugins/techdocs-addons-test-utils/CHANGELOG.md
index 35dedb8a0b..6aad4ffd2d 100644
--- a/plugins/techdocs-addons-test-utils/CHANGELOG.md
+++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md
@@ -1,5 +1,23 @@
# @backstage/plugin-techdocs-addons-test-utils
+## 1.0.11
+
+### Patch Changes
+
+- 2b00d8a225c: Fix bug/problem with test helper
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/plugin-catalog@1.9.0
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/plugin-techdocs@1.6.0
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/test-utils@1.2.6
+ - @backstage/core-app-api@1.6.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/theme@0.2.18
+
## 1.0.11-next.2
### Patch Changes
diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json
index 8dc81b2cf7..d8c6242adc 100644
--- a/plugins/techdocs-addons-test-utils/package.json
+++ b/plugins/techdocs-addons-test-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-techdocs-addons-test-utils",
- "version": "1.0.11-next.2",
+ "version": "1.0.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/techdocs-backend/CHANGELOG.md b/plugins/techdocs-backend/CHANGELOG.md
index 8e4be204db..e39e58589d 100644
--- a/plugins/techdocs-backend/CHANGELOG.md
+++ b/plugins/techdocs-backend/CHANGELOG.md
@@ -1,5 +1,29 @@
# @backstage/plugin-techdocs-backend
+## 1.6.0
+
+### Minor Changes
+
+- 92b495328bd: Introduced alpha export of the `techdocsPlugin` using the new backend system.
+
+### Patch Changes
+
+- 40298b02778: Techdocs backend explains a bit more about what might have caused the docs not being found when building techdocs.
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/catalog-client@1.4.0
+ - @backstage/plugin-techdocs-node@1.6.0
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/backend-plugin-api@0.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/plugin-catalog-common@1.0.12
+ - @backstage/integration@1.4.3
+ - @backstage/plugin-permission-common@0.7.4
+ - @backstage/config@1.0.7
+ - @backstage/plugin-search-common@1.2.2
+
## 1.5.4-next.2
### Patch Changes
diff --git a/plugins/techdocs-backend/alpha-api-report.md b/plugins/techdocs-backend/alpha-api-report.md
new file mode 100644
index 0000000000..16db84c216
--- /dev/null
+++ b/plugins/techdocs-backend/alpha-api-report.md
@@ -0,0 +1,12 @@
+## API Report File for "@backstage/plugin-techdocs-backend"
+
+> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
+
+```ts
+import { BackendFeature } from '@backstage/backend-plugin-api';
+
+// @alpha
+export const techdocsPlugin: () => BackendFeature;
+
+// (No @packageDocumentation comment for this package)
+```
diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json
index c9fff25b70..1d6ca8931e 100644
--- a/plugins/techdocs-backend/package.json
+++ b/plugins/techdocs-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs-backend",
"description": "The Backstage backend plugin that renders technical documentation for your components",
- "version": "1.5.4-next.2",
+ "version": "1.6.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -10,6 +10,21 @@
"main": "dist/index.cjs.js",
"types": "dist/index.d.ts"
},
+ "exports": {
+ ".": "./src/index.ts",
+ "./alpha": "./src/alpha.ts",
+ "./package.json": "./package.json"
+ },
+ "typesVersions": {
+ "*": {
+ "alpha": [
+ "src/alpha.ts"
+ ],
+ "package.json": [
+ "package.json"
+ ]
+ }
+ },
"backstage": {
"role": "backend-plugin"
},
@@ -34,6 +49,7 @@
},
"dependencies": {
"@backstage/backend-common": "workspace:^",
+ "@backstage/backend-plugin-api": "workspace:^",
"@backstage/catalog-client": "workspace:^",
"@backstage/catalog-model": "workspace:^",
"@backstage/config": "workspace:^",
diff --git a/plugins/techdocs-backend/src/alpha.ts b/plugins/techdocs-backend/src/alpha.ts
new file mode 100644
index 0000000000..1a36c5a1f5
--- /dev/null
+++ b/plugins/techdocs-backend/src/alpha.ts
@@ -0,0 +1,16 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export { techdocsPlugin } from './plugin';
diff --git a/plugins/techdocs-backend/src/plugin.ts b/plugins/techdocs-backend/src/plugin.ts
new file mode 100644
index 0000000000..134de2bba6
--- /dev/null
+++ b/plugins/techdocs-backend/src/plugin.ts
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2023 The Backstage Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {
+ DockerContainerRunner,
+ loggerToWinstonLogger,
+ cacheToPluginCacheManager,
+} from '@backstage/backend-common';
+import {
+ coreServices,
+ createBackendPlugin,
+} from '@backstage/backend-plugin-api';
+
+import {
+ Preparers,
+ Generators,
+ Publisher,
+} from '@backstage/plugin-techdocs-node';
+import Docker from 'dockerode';
+import { createRouter } from '@backstage/plugin-techdocs-backend';
+
+/**
+ * The TechDocs plugin is responsible for serving and building documentation for any entity.
+ * @alpha
+ */
+export const techdocsPlugin = createBackendPlugin({
+ pluginId: 'techdocs',
+ register(env) {
+ env.registerInit({
+ deps: {
+ config: coreServices.config,
+ logger: coreServices.logger,
+ urlReader: coreServices.urlReader,
+ http: coreServices.httpRouter,
+ discovery: coreServices.discovery,
+ cache: coreServices.cache,
+ },
+ async init({ config, logger, urlReader, http, discovery, cache }) {
+ const winstonLogger = loggerToWinstonLogger(logger);
+ // Preparers are responsible for fetching source files for documentation.
+ const preparers = await Preparers.fromConfig(config, {
+ reader: urlReader,
+ logger: winstonLogger,
+ });
+
+ // Docker client (conditionally) used by the generators, based on techdocs.generators config.
+ const dockerClient = new Docker();
+ const containerRunner = new DockerContainerRunner({ dockerClient });
+
+ // Generators are used for generating documentation sites.
+ const generators = await Generators.fromConfig(config, {
+ logger: winstonLogger,
+ containerRunner,
+ });
+
+ // Publisher is used for
+ // 1. Publishing generated files to storage
+ // 2. Fetching files from storage and passing them to TechDocs frontend.
+ const publisher = await Publisher.fromConfig(config, {
+ logger: winstonLogger,
+ discovery: discovery,
+ });
+
+ // checks if the publisher is working and logs the result
+ await publisher.getReadiness();
+
+ const cacheManager = cacheToPluginCacheManager(cache);
+ http.use(
+ await createRouter({
+ logger: winstonLogger,
+ cache: cacheManager,
+ preparers,
+ generators,
+ publisher,
+ config,
+ discovery,
+ }),
+ );
+ },
+ });
+ },
+});
diff --git a/plugins/techdocs-module-addons-contrib/CHANGELOG.md b/plugins/techdocs-module-addons-contrib/CHANGELOG.md
index 69fa5d8cfd..005c38f64c 100644
--- a/plugins/techdocs-module-addons-contrib/CHANGELOG.md
+++ b/plugins/techdocs-module-addons-contrib/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-techdocs-module-addons-contrib
+## 1.0.11
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 37cf85fb85c: Fixed bug in IssueLink component where the URL was not generated properly when the repository was located inside a Gitlab subgroup
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/theme@0.2.18
+
## 1.0.11-next.2
### Patch Changes
diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json
index b5aebb262c..12b30d3cc2 100644
--- a/plugins/techdocs-module-addons-contrib/package.json
+++ b/plugins/techdocs-module-addons-contrib/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs-module-addons-contrib",
"description": "Plugin module for contributed TechDocs Addons",
- "version": "1.0.11-next.2",
+ "version": "1.0.11",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/techdocs-node/CHANGELOG.md b/plugins/techdocs-node/CHANGELOG.md
index 28a11e4b57..f4221afc3a 100644
--- a/plugins/techdocs-node/CHANGELOG.md
+++ b/plugins/techdocs-node/CHANGELOG.md
@@ -1,5 +1,25 @@
# @backstage/plugin-techdocs-node
+## 1.6.0
+
+### Minor Changes
+
+- ea2bbef1b16: Added support for an HTTPS proxy for techdocs AWS S3 requests
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- bf493710f50: Update to a newer version of `@trendyol-js/openstack-swift-sdk`
+- bfe350ef4ce: Fixed bug that prevented deletion of stale files when non-empty directories where tried to be deleted as well.
+- Updated dependencies
+ - @backstage/backend-common@0.18.3
+ - @backstage/errors@1.1.5
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/integration-aws-node@0.1.2
+ - @backstage/plugin-search-common@1.2.2
+
## 1.6.0-next.2
### Patch Changes
diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json
index a247ef483e..fe23c88367 100644
--- a/plugins/techdocs-node/package.json
+++ b/plugins/techdocs-node/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs-node",
"description": "Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli",
- "version": "1.6.0-next.2",
+ "version": "1.6.0",
"main": "src/index.ts",
"types": "src/index.ts",
"publishConfig": {
diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md
index cbc52cf570..b0f163836a 100644
--- a/plugins/techdocs-react/CHANGELOG.md
+++ b/plugins/techdocs-react/CHANGELOG.md
@@ -1,5 +1,19 @@
# @backstage/plugin-techdocs-react
+## 1.1.4
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 928a12a9b3e: Internal refactor of `/alpha` exports.
+- 8adfda60ae1: Updated dependency `jss` to `~10.10.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/config@1.0.7
+ - @backstage/version-bridge@1.0.3
+
## 1.1.4-next.2
### Patch Changes
diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json
index ae8d7e21ae..c605838215 100644
--- a/plugins/techdocs-react/package.json
+++ b/plugins/techdocs-react/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs-react",
"description": "Shared frontend utilities for TechDocs and Addons",
- "version": "1.1.4-next.2",
+ "version": "1.1.4",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
diff --git a/plugins/techdocs-react/src/context.tsx b/plugins/techdocs-react/src/context.tsx
index 4f427e0031..608dbc59b3 100644
--- a/plugins/techdocs-react/src/context.tsx
+++ b/plugins/techdocs-react/src/context.tsx
@@ -21,8 +21,10 @@ import React, {
useState,
memo,
ReactNode,
+ useEffect,
} from 'react';
import useAsync, { AsyncState } from 'react-use/lib/useAsync';
+import useAsyncRetry from 'react-use/lib/useAsyncRetry';
import {
CompoundEntityRef,
@@ -117,14 +119,14 @@ export const TechDocsReaderPageProvider = memo(
const techdocsApi = useApi(techdocsApiRef);
const config = useApi(configApiRef);
- const metadata = useAsync(async () => {
- return techdocsApi.getTechDocsMetadata(entityRef);
- }, [entityRef]);
-
const entityMetadata = useAsync(async () => {
return techdocsApi.getEntityMetadata(entityRef);
}, [entityRef]);
+ const metadata = useAsyncRetry(async () => {
+ return techdocsApi.getTechDocsMetadata(entityRef);
+ }, [entityRef]);
+
const [title, setTitle] = useState(defaultTechDocsReaderPageValue.title);
const [subtitle, setSubtitle] = useState(
defaultTechDocsReaderPageValue.subtitle,
@@ -133,7 +135,19 @@ export const TechDocsReaderPageProvider = memo(
defaultTechDocsReaderPageValue.shadowRoot,
);
- const value = {
+ useEffect(() => {
+ if (shadowRoot && !metadata.value && !metadata.loading) {
+ metadata.retry();
+ }
+ }, [
+ metadata.value,
+ metadata.loading,
+ shadowRoot,
+ metadata.retry,
+ metadata,
+ ]);
+
+ const value: TechDocsReaderPageValue = {
metadata,
entityRef: toLowercaseEntityRefMaybe(entityRef, config),
entityMetadata,
diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md
index 7ce9542731..f66e0fa3a4 100644
--- a/plugins/techdocs/CHANGELOG.md
+++ b/plugins/techdocs/CHANGELOG.md
@@ -1,5 +1,35 @@
# @backstage/plugin-techdocs
+## 1.6.0
+
+### Minor Changes
+
+- 3f75b7607ca: Add ability to pass icon as function to have ability to customize it by search item
+
+### Patch Changes
+
+- 65454876fb2: Minor API report tweaks
+- 54a1e133b56: Fix bug that caused next and previous links not to work with certain versions of mkdocs-material
+- f320c299c67: The HTML tag attributes in the documentation content inserted to shadow DOM is preserved to improve accessibility
+- cb8ec97cdeb: Change black & white colors to be theme aware
+- c10384a9235: Switch to using `LinkButton` instead of the deprecated `Button`
+- 8adfda60ae1: Updated dependency `jss` to `~10.10.0`.
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- 238cf657c09: Copy to clipboard now works in a not secure context.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-techdocs-react@1.1.4
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/plugin-search-react@1.5.1
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/integration-react@1.1.11
+ - @backstage/integration@1.4.3
+ - @backstage/config@1.0.7
+ - @backstage/theme@0.2.18
+ - @backstage/plugin-search-common@1.2.2
+
## 1.6.0-next.2
### Patch Changes
diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json
index 88ebb91c1b..ae0a31ab4d 100644
--- a/plugins/techdocs/package.json
+++ b/plugins/techdocs/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-techdocs",
"description": "The Backstage plugin that renders technical documentation for your components",
- "version": "1.6.0-next.2",
+ "version": "1.6.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/techdocs/src/search/components/TechDocsSearchResultListItem.tsx b/plugins/techdocs/src/search/components/TechDocsSearchResultListItem.tsx
index 3c0d2314e2..eae4ee7ce9 100644
--- a/plugins/techdocs/src/search/components/TechDocsSearchResultListItem.tsx
+++ b/plugins/techdocs/src/search/components/TechDocsSearchResultListItem.tsx
@@ -132,6 +132,8 @@ export const TechDocsSearchResultListItem = (
WebkitLineClamp: lineClamp,
overflow: 'hidden',
}}
+ color="textSecondary"
+ variant="body2"
>
{highlight?.fields.text ? (
;
- // (undocumented)
- protected readonly env: VaultEnvironment;
- setVaultClient(vaultClient: VaultClient): this;
+ setVaultClient(vaultApi: VaultApi): this;
}
// @public
diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json
index 336363e9ad..41c9bef499 100644
--- a/plugins/vault-backend/package.json
+++ b/plugins/vault-backend/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-vault-backend",
"description": "A Backstage backend plugin that integrates towards Vault",
- "version": "0.2.10-next.2",
+ "version": "0.2.10",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/vault-backend/src/service/VaultBuilder.ts b/plugins/vault-backend/src/service/VaultBuilder.ts
index 788b90ff01..a61d99ac70 100644
--- a/plugins/vault-backend/src/service/VaultBuilder.ts
+++ b/plugins/vault-backend/src/service/VaultBuilder.ts
@@ -19,7 +19,7 @@ import { InputError } from '@backstage/errors';
import { Logger } from 'winston';
import express from 'express';
import Router from 'express-promise-router';
-import { VaultClient } from './vaultApi';
+import { VaultApi, VaultClient } from './vaultApi';
import { TaskRunner, PluginTaskScheduler } from '@backstage/backend-tasks';
import { errorHandler } from '@backstage/backend-common';
@@ -47,7 +47,7 @@ export type VaultBuilderReturn = {
* @public
*/
export class VaultBuilder {
- private vaultClient?: VaultClient;
+ private vaultApi?: VaultApi;
/**
* Creates a new instance of the VaultBuilder.
@@ -58,7 +58,8 @@ export class VaultBuilder {
static createBuilder(env: VaultEnvironment) {
return new VaultBuilder(env);
}
- constructor(protected readonly env: VaultEnvironment) {}
+
+ constructor(private readonly env: VaultEnvironment) {}
/**
* Builds the routes for Vault.
@@ -79,9 +80,9 @@ export class VaultBuilder {
};
}
- this.vaultClient = this.vaultClient ?? new VaultClient(this.env);
+ this.vaultApi = this.vaultApi ?? new VaultClient(this.env);
- const router = this.buildRouter(this.vaultClient);
+ const router = this.buildRouter(this.vaultApi);
return {
router: router,
@@ -91,11 +92,11 @@ export class VaultBuilder {
/**
* Overwrites the current vault client.
*
- * @param vaultClient - The new Vault client
+ * @param vaultApi - The new Vault client
* @returns
*/
- public setVaultClient(vaultClient: VaultClient) {
- this.vaultClient = vaultClient;
+ public setVaultClient(vaultApi: VaultApi) {
+ this.vaultApi = vaultApi;
return this;
}
@@ -116,8 +117,8 @@ export class VaultBuilder {
id: 'refresh-vault-token',
fn: async () => {
this.env.logger.info('Renewing Vault token');
- const vaultClient = this.vaultClient ?? new VaultClient(this.env);
- await vaultClient.renewToken();
+ const vaultApi = this.vaultApi ?? new VaultClient(this.env);
+ await vaultApi.renewToken?.();
},
});
return this;
@@ -126,10 +127,10 @@ export class VaultBuilder {
/**
* Builds the backend routes for Vault.
*
- * @param vaultClient - The Vault client used to list the secrets.
+ * @param vaultApi - The Vault client used to list the secrets.
* @returns The generated backend router
*/
- protected buildRouter(vaultClient: VaultClient): express.Router {
+ private buildRouter(vaultApi: VaultApi): express.Router {
const router = Router();
router.use(express.json());
@@ -143,7 +144,7 @@ export class VaultBuilder {
throw new InputError(`Invalid path: ${path}`);
}
- const secrets = await vaultClient.listSecrets(path);
+ const secrets = await vaultApi.listSecrets(path);
res.json({ items: secrets });
});
diff --git a/plugins/vault-backend/src/service/vaultApi.ts b/plugins/vault-backend/src/service/vaultApi.ts
index 7510ff218e..b75ea76368 100644
--- a/plugins/vault-backend/src/service/vaultApi.ts
+++ b/plugins/vault-backend/src/service/vaultApi.ts
@@ -56,7 +56,7 @@ type RenewTokenResponse = {
*/
export interface VaultApi {
/**
- * Returns the URL to acces the Vault UI with the defined config.
+ * Returns the URL to access the Vault UI with the defined config.
*/
getFrontendSecretsUrl(): string;
/**
diff --git a/plugins/vault/CHANGELOG.md b/plugins/vault/CHANGELOG.md
index 1f6d8446bd..4cb3473c9f 100644
--- a/plugins/vault/CHANGELOG.md
+++ b/plugins/vault/CHANGELOG.md
@@ -1,5 +1,18 @@
# @backstage/plugin-vault
+## 0.1.10
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/plugin-catalog-react@1.4.0
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/catalog-model@1.2.1
+ - @backstage/theme@0.2.18
+
## 0.1.10-next.2
### Patch Changes
diff --git a/plugins/vault/package.json b/plugins/vault/package.json
index 127c9cf753..b5835661cd 100644
--- a/plugins/vault/package.json
+++ b/plugins/vault/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-vault",
"description": "A Backstage plugin that integrates towards Vault",
- "version": "0.1.10-next.2",
+ "version": "0.1.10",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/plugins/xcmetrics/CHANGELOG.md b/plugins/xcmetrics/CHANGELOG.md
index e9a2023939..617cb08281 100644
--- a/plugins/xcmetrics/CHANGELOG.md
+++ b/plugins/xcmetrics/CHANGELOG.md
@@ -1,5 +1,16 @@
# @backstage/plugin-xcmetrics
+## 0.2.36
+
+### Patch Changes
+
+- 52b0022dab7: Updated dependency `msw` to `^1.0.0`.
+- Updated dependencies
+ - @backstage/core-components@0.12.5
+ - @backstage/errors@1.1.5
+ - @backstage/core-plugin-api@1.5.0
+ - @backstage/theme@0.2.18
+
## 0.2.36-next.2
### Patch Changes
diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json
index fb7695e090..2d549c7b84 100644
--- a/plugins/xcmetrics/package.json
+++ b/plugins/xcmetrics/package.json
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-xcmetrics",
"description": "A Backstage plugin that shows XCode build metrics for your components",
- "version": "0.2.36-next.2",
+ "version": "0.2.36",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
diff --git a/storybook/yarn.lock b/storybook/yarn.lock
index 9c05864306..359707312e 100644
--- a/storybook/yarn.lock
+++ b/storybook/yarn.lock
@@ -2966,90 +2966,90 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-arm64@npm:1.3.38"
+"@swc/core-darwin-arm64@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-darwin-arm64@npm:1.3.41"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-darwin-x64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-x64@npm:1.3.38"
+"@swc/core-darwin-x64@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-darwin-x64@npm:1.3.41"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@swc/core-linux-arm-gnueabihf@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.38"
+"@swc/core-linux-arm-gnueabihf@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.41"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@swc/core-linux-arm64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.38"
+"@swc/core-linux-arm64-gnu@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm64-gnu@npm:1.3.41"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-arm64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.38"
+"@swc/core-linux-arm64-musl@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm64-musl@npm:1.3.41"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-linux-x64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.38"
+"@swc/core-linux-x64-gnu@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-x64-gnu@npm:1.3.41"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-x64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-musl@npm:1.3.38"
+"@swc/core-linux-x64-musl@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-x64-musl@npm:1.3.41"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-win32-arm64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.38"
+"@swc/core-win32-arm64-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-arm64-msvc@npm:1.3.41"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-win32-ia32-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.38"
+"@swc/core-win32-ia32-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-ia32-msvc@npm:1.3.41"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@swc/core-win32-x64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.38"
+"@swc/core-win32-x64-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-x64-msvc@npm:1.3.41"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.9":
- version: 1.3.38
- resolution: "@swc/core@npm:1.3.38"
+ version: 1.3.41
+ resolution: "@swc/core@npm:1.3.41"
dependencies:
- "@swc/core-darwin-arm64": 1.3.38
- "@swc/core-darwin-x64": 1.3.38
- "@swc/core-linux-arm-gnueabihf": 1.3.38
- "@swc/core-linux-arm64-gnu": 1.3.38
- "@swc/core-linux-arm64-musl": 1.3.38
- "@swc/core-linux-x64-gnu": 1.3.38
- "@swc/core-linux-x64-musl": 1.3.38
- "@swc/core-win32-arm64-msvc": 1.3.38
- "@swc/core-win32-ia32-msvc": 1.3.38
- "@swc/core-win32-x64-msvc": 1.3.38
+ "@swc/core-darwin-arm64": 1.3.41
+ "@swc/core-darwin-x64": 1.3.41
+ "@swc/core-linux-arm-gnueabihf": 1.3.41
+ "@swc/core-linux-arm64-gnu": 1.3.41
+ "@swc/core-linux-arm64-musl": 1.3.41
+ "@swc/core-linux-x64-gnu": 1.3.41
+ "@swc/core-linux-x64-musl": 1.3.41
+ "@swc/core-win32-arm64-msvc": 1.3.41
+ "@swc/core-win32-ia32-msvc": 1.3.41
+ "@swc/core-win32-x64-msvc": 1.3.41
dependenciesMeta:
"@swc/core-darwin-arm64":
optional: true
@@ -3071,7 +3071,7 @@ __metadata:
optional: true
"@swc/core-win32-x64-msvc":
optional: true
- checksum: c55d30e57638bcd21f788add8490c3f3e71bfe027aa5a8b153e1b1b9686ecddd6deeaaa6a6b17717c7eab4c1e2a232b465b6755b6c891506fc0d03139badfbf7
+ checksum: e2d2bd2d1821608bfafab66f7b94d31b4ae3f486ad6d18aa30abca961299431a26ab2dfc04a7e614f8b8f6680d9790f0596f43e18d0b794e2802136c1d5e3376
languageName: node
linkType: hard
diff --git a/yarn.lock b/yarn.lock
index b1b60ba15e..3cf7b49696 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -33,6 +33,51 @@ __metadata:
languageName: node
linkType: hard
+"@apollo/cache-control-types@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "@apollo/cache-control-types@npm:1.0.2"
+ peerDependencies:
+ graphql: 14.x || 15.x || 16.x
+ checksum: 1e00c57b45fbd8656c96cdcd254658f332c1955bd8db9274c665e1c6ef8ac881a6b6a3f953b60638ae5f59fdfce6b005adb9a5b945b694903579a9665499e823
+ languageName: node
+ linkType: hard
+
+"@apollo/client@npm:^3.0.0":
+ version: 3.7.10
+ resolution: "@apollo/client@npm:3.7.10"
+ dependencies:
+ "@graphql-typed-document-node/core": ^3.1.1
+ "@wry/context": ^0.7.0
+ "@wry/equality": ^0.5.0
+ "@wry/trie": ^0.3.0
+ graphql-tag: ^2.12.6
+ hoist-non-react-statics: ^3.3.2
+ optimism: ^0.16.1
+ prop-types: ^15.7.2
+ response-iterator: ^0.2.6
+ symbol-observable: ^4.0.0
+ ts-invariant: ^0.10.3
+ tslib: ^2.3.0
+ zen-observable-ts: ^1.2.5
+ peerDependencies:
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
+ graphql-ws: ^5.5.5
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ subscriptions-transport-ws: ^0.9.0 || ^0.11.0
+ peerDependenciesMeta:
+ graphql-ws:
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+ subscriptions-transport-ws:
+ optional: true
+ checksum: d74a68f8042e76e3a81990c79a89aefc07c8899d354f3b469591356508001005106bba0fa953652c3ec19756d44bdec6730ac98f62fa836bd76acbcb7eff42ce
+ languageName: node
+ linkType: hard
+
"@apollo/explorer@npm:^2.0.0":
version: 2.0.2
resolution: "@apollo/explorer@npm:2.0.2"
@@ -57,9 +102,9 @@ __metadata:
languageName: node
linkType: hard
-"@apollo/protobufjs@npm:1.2.6":
- version: 1.2.6
- resolution: "@apollo/protobufjs@npm:1.2.6"
+"@apollo/protobufjs@npm:1.2.7":
+ version: 1.2.7
+ resolution: "@apollo/protobufjs@npm:1.2.7"
dependencies:
"@protobufjs/aspromise": ^1.1.2
"@protobufjs/base64": ^1.1.2
@@ -72,110 +117,181 @@ __metadata:
"@protobufjs/pool": ^1.1.0
"@protobufjs/utf8": ^1.1.0
"@types/long": ^4.0.0
- "@types/node": ^10.1.0
long: ^4.0.0
bin:
apollo-pbjs: bin/pbjs
apollo-pbts: bin/pbts
- checksum: 1410e94f87f7ce202491f2c45633ddea0590f5279bd3eaaeb25aa114345d09a5041f15d79b75e5915b23813dc71ec52e71fc1fda858fee21dead890dcb768416
+ checksum: e01a33984ae06d6679f6796bb44e55260112ddd090ebc9f87d3f952c45153dd5df5c91ac4bf91ba60fb72ff8c1218059ce4bf8bb2eb08c5049c783de0098eec0
languageName: node
linkType: hard
-"@apollo/utils.dropunuseddefinitions@npm:^1.1.0":
+"@apollo/server-gateway-interface@npm:^1.1.0":
version: 1.1.0
- resolution: "@apollo/utils.dropunuseddefinitions@npm:1.1.0"
- peerDependencies:
- graphql: 14.x || 15.x || 16.x
- checksum: b66e07086ea65bcb94d84cfd5e6d90d0406c4e7f602c9a5e793c2001273380a4f61c287f60ee1d81d47d49d3a62ef3f0afb8049243540d3021ff445869124094
- languageName: node
- linkType: hard
-
-"@apollo/utils.keyvaluecache@npm:^1.0.1":
- version: 1.0.1
- resolution: "@apollo/utils.keyvaluecache@npm:1.0.1"
+ resolution: "@apollo/server-gateway-interface@npm:1.1.0"
dependencies:
- "@apollo/utils.logger": ^1.0.0
+ "@apollo/usage-reporting-protobuf": ^4.0.0
+ "@apollo/utils.fetcher": ^2.0.0
+ "@apollo/utils.keyvaluecache": ^2.1.0
+ "@apollo/utils.logger": ^2.0.0
+ peerDependencies:
+ graphql: 14.x || 15.x || 16.x
+ checksum: 0ad0b3b9dfb53cc664245acac638b3a3db0d56c496c8bf6c56928a92c21e9b3062bec47bd42c2c0f85a4469443467b245c772bb558c2733c1c0dde194722c82b
+ languageName: node
+ linkType: hard
+
+"@apollo/server@npm:^4.0.0":
+ version: 4.5.0
+ resolution: "@apollo/server@npm:4.5.0"
+ dependencies:
+ "@apollo/cache-control-types": ^1.0.2
+ "@apollo/server-gateway-interface": ^1.1.0
+ "@apollo/usage-reporting-protobuf": ^4.1.0
+ "@apollo/utils.createhash": ^2.0.0
+ "@apollo/utils.fetcher": ^2.0.0
+ "@apollo/utils.isnodelike": ^2.0.0
+ "@apollo/utils.keyvaluecache": ^2.1.0
+ "@apollo/utils.logger": ^2.0.0
+ "@apollo/utils.usagereporting": ^2.0.0
+ "@apollo/utils.withrequired": ^2.0.0
+ "@graphql-tools/schema": ^9.0.0
+ "@josephg/resolvable": ^1.0.0
+ "@types/express": ^4.17.13
+ "@types/express-serve-static-core": ^4.17.30
+ "@types/node-fetch": ^2.6.1
+ async-retry: ^1.2.1
+ body-parser: ^1.20.0
+ cors: ^2.8.5
+ express: ^4.17.1
+ loglevel: ^1.6.8
lru-cache: ^7.10.1
- checksum: 1a5dbd2eae0575905e25d471430d431d145b767ee6f5e8efe3ba64ed44208db131f437e36cf17df6623ae6de97a87c4c8691b4a274510b52ab49f6afe9627a3b
+ negotiator: ^0.6.3
+ node-abort-controller: ^3.1.1
+ node-fetch: ^2.6.7
+ uuid: ^9.0.0
+ whatwg-mimetype: ^3.0.0
+ peerDependencies:
+ graphql: ^16.6.0
+ checksum: 193b5f6913c945aafb8fc6b5b75fcfff250e5b84dc2727f6a0472b304da08a6cd90a21ae45591e6408e9413e8bee323bbf4c9586b511a4f426b562da5328e4d0
languageName: node
linkType: hard
-"@apollo/utils.logger@npm:^1.0.0":
- version: 1.0.0
- resolution: "@apollo/utils.logger@npm:1.0.0"
- checksum: 9be2b269d6d1cf2235c7b49a5edbb36c87589facf79516521df66d0c782709b7301a1365693b6e15d77f482d231bbb0fea4c2ae42faac7068cc4e014ce338c68
+"@apollo/usage-reporting-protobuf@npm:^4.0.0, @apollo/usage-reporting-protobuf@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "@apollo/usage-reporting-protobuf@npm:4.1.0"
+ dependencies:
+ "@apollo/protobufjs": 1.2.7
+ checksum: 442532d7077a728a499de6c2c2340d106b26f14695446361f947a14d3092e4109239a86cfb99e4bb795d913523c1f61a05bb799b45fc72615560693bbd62e645
languageName: node
linkType: hard
-"@apollo/utils.printwithreducedwhitespace@npm:^1.1.0":
- version: 1.1.0
- resolution: "@apollo/utils.printwithreducedwhitespace@npm:1.1.0"
+"@apollo/utils.createhash@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.createhash@npm:2.0.0"
+ dependencies:
+ "@apollo/utils.isnodelike": ^2.0.0
+ sha.js: ^2.4.11
+ checksum: 467558891f22b05293ca2d9c04fb4815d8b13e9e03cac6f6f5eb752d06f00eb46a3f237c93250d83d53753326c289899b177f3147cd368079b7e74098392b1b7
+ languageName: node
+ linkType: hard
+
+"@apollo/utils.dropunuseddefinitions@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.dropunuseddefinitions@npm:2.0.0"
peerDependencies:
graphql: 14.x || 15.x || 16.x
- checksum: 86536751681c64f35a2d37b0c2f69a39d91ea0e4f0c3c993d9f76fa109f85e9d306e6994bd6e38eef1e4e5b83245125aaa125ecc94e185d90b3255f06a538503
+ checksum: aaabd487ce25b56488f6bbf6606aecdc2b1f57805ec1b7fa16e21510947d4d5b4b1d557ebaa499dfecb8dfaef4058b696812feed6896bac5d7fb52e9bb1e1b2c
languageName: node
linkType: hard
-"@apollo/utils.removealiases@npm:1.0.0":
- version: 1.0.0
- resolution: "@apollo/utils.removealiases@npm:1.0.0"
+"@apollo/utils.fetcher@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.fetcher@npm:2.0.0"
+ checksum: e9f4b696f496751d1b781836f394608115ae1fab673cb30ede223748d04eb983384b5c9e01f8350bb0530d841fd0ccb41be3a3a4bcae0a141b2478862add29cc
+ languageName: node
+ linkType: hard
+
+"@apollo/utils.isnodelike@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.isnodelike@npm:2.0.0"
+ checksum: 436853000037c955e7112d19b60ca82e6d453e7bc715f3360ab23384fe1153039b06f9329e85e1adb030a1b22f0b9e960b28a5ccd92f7c61a1af57e58401a1aa
+ languageName: node
+ linkType: hard
+
+"@apollo/utils.keyvaluecache@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "@apollo/utils.keyvaluecache@npm:2.1.0"
+ dependencies:
+ "@apollo/utils.logger": ^2.0.0
+ lru-cache: ^7.14.1
+ checksum: 1e1c9cdea98384c01864250bd8e39cffaa822adbd60f9387ecf5c6565f69c2fd23b3ebdc499990b39535d4df0e3991fe73ec2d59a2798631ede04d8834d8c384
+ languageName: node
+ linkType: hard
+
+"@apollo/utils.logger@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.logger@npm:2.0.0"
+ checksum: bfe87036382adaf1b5f05acc8e926b6316a8b37dc0c0b20ae0c2010b61085d018620203eda9cb6884e650f3d971a4dfdbc30980deedba99d219ba2abd9bd8ffa
+ languageName: node
+ linkType: hard
+
+"@apollo/utils.printwithreducedwhitespace@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.printwithreducedwhitespace@npm:2.0.0"
peerDependencies:
graphql: 14.x || 15.x || 16.x
- checksum: fda30ad4ee1fbf012e4289b9963b8b75a102eadbdfa5e558dc923cfc68df42eff6e232dc20c34b7e7563e5aac7ae3781d17919cd8f5eccb90c4225a274b2af93
+ checksum: 0e1d374f2e0afd2d0fd31ff1c6717476b4ddeb642981d8f731a44420137f4991a28c1f9e278abf4229bb3174ae68037736e8cd8e13de5e316bf384dc32246518
languageName: node
linkType: hard
-"@apollo/utils.sortast@npm:^1.1.0":
- version: 1.1.0
- resolution: "@apollo/utils.sortast@npm:1.1.0"
+"@apollo/utils.removealiases@npm:2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.removealiases@npm:2.0.0"
+ peerDependencies:
+ graphql: 14.x || 15.x || 16.x
+ checksum: 4f97e5864353386b8326eb62dd923be19c7e1f6b7ddc0935ceac1e34462aa471908d015f223f47a9cdd819e2d844f9dbdd27800bb451f5ffb4f376c4da8d2c41
+ languageName: node
+ linkType: hard
+
+"@apollo/utils.sortast@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.sortast@npm:2.0.0"
dependencies:
lodash.sortby: ^4.7.0
peerDependencies:
graphql: 14.x || 15.x || 16.x
- checksum: 5ec695d8c91efd82ad75cb3e27662644c71e22be71793908135b38965be6fe1f229c24fd2f4fed1bc1829b84bec2a1f6470817a83c633d95292db7635a625471
+ checksum: 50cfbdb6b8af735e9786af225edd6d4350e7530f5109bc330ae7f32edf38f15eed7711184d133a0801c5673fbc9a988a6521c7f69f3dc27910f2bd9fb6fbbb22
languageName: node
linkType: hard
-"@apollo/utils.stripsensitiveliterals@npm:^1.2.0":
- version: 1.2.0
- resolution: "@apollo/utils.stripsensitiveliterals@npm:1.2.0"
+"@apollo/utils.stripsensitiveliterals@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.stripsensitiveliterals@npm:2.0.0"
peerDependencies:
graphql: 14.x || 15.x || 16.x
- checksum: 5910186a30be23fac59652d350e83a8a7a53adb9146ed545906f6893ad9c8d380752e679348ee210ae01fa39cc0487692b632e960003dcedc2282bd28de2aa01
+ checksum: d0a740a6d1e525b72c7d7066fa87a4ee273b3ce7401f3578542278121819bf90c97d32227270e07c923ab205afee2b52afb03261865175ba0040666a8988d479
languageName: node
linkType: hard
-"@apollo/utils.usagereporting@npm:^1.0.0":
- version: 1.0.0
- resolution: "@apollo/utils.usagereporting@npm:1.0.0"
+"@apollo/utils.usagereporting@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.usagereporting@npm:2.0.0"
dependencies:
- "@apollo/utils.dropunuseddefinitions": ^1.1.0
- "@apollo/utils.printwithreducedwhitespace": ^1.1.0
- "@apollo/utils.removealiases": 1.0.0
- "@apollo/utils.sortast": ^1.1.0
- "@apollo/utils.stripsensitiveliterals": ^1.2.0
- apollo-reporting-protobuf: ^3.3.1
+ "@apollo/usage-reporting-protobuf": ^4.0.0
+ "@apollo/utils.dropunuseddefinitions": ^2.0.0
+ "@apollo/utils.printwithreducedwhitespace": ^2.0.0
+ "@apollo/utils.removealiases": 2.0.0
+ "@apollo/utils.sortast": ^2.0.0
+ "@apollo/utils.stripsensitiveliterals": ^2.0.0
peerDependencies:
graphql: 14.x || 15.x || 16.x
- checksum: 9f4d1b8381fc7930619c51ce96580e61e604455e01701de9c822245d3a7583553a0cc4c050450ddf80d8e556682b2ac79ed784c58a8b98b52cf097d344c5d1d8
+ checksum: 599e44d236728d6e57953c6fb9372cc35bc5e8e0d572b951907c94683228c134662efef4e97e456e7655d2871215319b912cabc3662c799111b5265de7873880
languageName: node
linkType: hard
-"@apollographql/apollo-tools@npm:^0.5.3":
- version: 0.5.3
- resolution: "@apollographql/apollo-tools@npm:0.5.3"
- peerDependencies:
- graphql: ^14.2.1 || ^15.0.0 || ^16.0.0
- checksum: 652f16f8ae4afb65a2cb62a47e46882f49368f8f2c115f421773c3f8aa47b466ab9a6758fc18138495bd010baea5fda05d3c313edd11c4f4b3e8f8783b54d5a2
- languageName: node
- linkType: hard
-
-"@apollographql/graphql-playground-html@npm:1.6.29":
- version: 1.6.29
- resolution: "@apollographql/graphql-playground-html@npm:1.6.29"
- dependencies:
- xss: ^1.0.8
- checksum: 32984ae225de572f3fe286409553884e4d252a35019abfd5bd6ef40f52173ba810fd0a4d23915e727425cd993fd178115e6a2557315789085e235114228dfe4a
+"@apollo/utils.withrequired@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "@apollo/utils.withrequired@npm:2.0.0"
+ checksum: 144cef2859318879b3478693eb891c31afa75f30e807bdfbef98ec3aa93c74cb0a3f76d245dbdedd4954f52c1b9ec8bebbccc69eb5d8bb8109c88c4352225e24
languageName: node
linkType: hard
@@ -373,595 +489,582 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/abort-controller@npm:3.272.0, @aws-sdk/abort-controller@npm:^3.208.0":
- version: 3.272.0
- resolution: "@aws-sdk/abort-controller@npm:3.272.0"
+"@aws-sdk/abort-controller@npm:3.292.0, @aws-sdk/abort-controller@npm:^3.208.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/abort-controller@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 298974b97641732c74272dd645b55c15aaefd891b5a868c279ae2abe3c3e0753e7e6f218e8c3712196ca2d4f19796623cb48f9e9816b5bbbc4eb38247d07d0fe
+ checksum: dc290c1191de6026a5a0b5a4c5b57b7e2b9373d5d47934e32ea458c48dc513fa1a06c5a796ee65ca42fcc9d12e168b7fbbde82979b58ce8e224bba19797de5d4
languageName: node
linkType: hard
-"@aws-sdk/chunked-blob-reader-native@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/chunked-blob-reader-native@npm:3.208.0"
+"@aws-sdk/chunked-blob-reader-native@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/chunked-blob-reader-native@npm:3.292.0"
dependencies:
- "@aws-sdk/util-base64": 3.208.0
+ "@aws-sdk/util-base64": 3.292.0
tslib: ^2.3.1
- checksum: 6df294c66d6acaa3de2c5f3444a62577d0effa451a65b6a1606df538cfc865d257f01c74e711b36741a2c59f43385bd393c07c8562fe5101d6069b8c2646da53
+ checksum: ffafa1f23a848fbdf95740557c99462556f5996be0ef05a1d7dd652661fce686d6789d6cd7781d8c2e41903702e5ff75359c5255c97ce9982c4a6dd1e9a30902
languageName: node
linkType: hard
-"@aws-sdk/chunked-blob-reader@npm:3.188.0":
- version: 3.188.0
- resolution: "@aws-sdk/chunked-blob-reader@npm:3.188.0"
+"@aws-sdk/chunked-blob-reader@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/chunked-blob-reader@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: d6becebc6d77a63dd84601806c5f04bc9d0e418368fb2d593d786738119091e4d2e40721751be66260063fe7bb1c7ee2a5e075fa731eb8307722b90f6ce809dc
+ checksum: d35547620814071dd5f89448b8d54b17c97e743ca441423fcba20ad794ab830d023a0c921d43e3b02f7b114444e6ea795afd24f6c51d411be68b808b3c422812
languageName: node
linkType: hard
-"@aws-sdk/client-cognito-identity@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/client-cognito-identity@npm:3.282.0"
+"@aws-sdk/client-cognito-identity@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/client-cognito-identity@npm:3.293.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.282.0
- "@aws-sdk/config-resolver": 3.282.0
- "@aws-sdk/credential-provider-node": 3.282.0
- "@aws-sdk/fetch-http-handler": 3.282.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/middleware-content-length": 3.282.0
- "@aws-sdk/middleware-endpoint": 3.282.0
- "@aws-sdk/middleware-host-header": 3.282.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.282.0
- "@aws-sdk/middleware-retry": 3.282.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-signing": 3.282.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.282.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.282.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/smithy-client": 3.279.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.279.0
- "@aws-sdk/util-defaults-mode-node": 3.282.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.282.0
- "@aws-sdk/util-user-agent-node": 3.282.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/client-sts": 3.293.0
+ "@aws-sdk/config-resolver": 3.292.0
+ "@aws-sdk/credential-provider-node": 3.293.0
+ "@aws-sdk/fetch-http-handler": 3.292.0
+ "@aws-sdk/hash-node": 3.292.0
+ "@aws-sdk/invalid-dependency": 3.292.0
+ "@aws-sdk/middleware-content-length": 3.292.0
+ "@aws-sdk/middleware-endpoint": 3.292.0
+ "@aws-sdk/middleware-host-header": 3.292.0
+ "@aws-sdk/middleware-logger": 3.292.0
+ "@aws-sdk/middleware-recursion-detection": 3.292.0
+ "@aws-sdk/middleware-retry": 3.293.0
+ "@aws-sdk/middleware-serde": 3.292.0
+ "@aws-sdk/middleware-signing": 3.292.0
+ "@aws-sdk/middleware-stack": 3.292.0
+ "@aws-sdk/middleware-user-agent": 3.293.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/node-http-handler": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/smithy-client": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/url-parser": 3.292.0
+ "@aws-sdk/util-base64": 3.292.0
+ "@aws-sdk/util-body-length-browser": 3.292.0
+ "@aws-sdk/util-body-length-node": 3.292.0
+ "@aws-sdk/util-defaults-mode-browser": 3.292.0
+ "@aws-sdk/util-defaults-mode-node": 3.292.0
+ "@aws-sdk/util-endpoints": 3.293.0
+ "@aws-sdk/util-retry": 3.292.0
+ "@aws-sdk/util-user-agent-browser": 3.292.0
+ "@aws-sdk/util-user-agent-node": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: 9f7790e26dd3d7b0316105dd40092736526f1f6a11b814fcc95736ade3fe40058fb93f1dc2558f1b54b7871908247852e314cb1a892109e6294958eeff1d4439
+ checksum: 1902b344dec5807817583bf76df60d13eb62b663b73a3587aad513046f775222644859c5e146ddfc443486436d9912881aa8e00715f8ff26d5e497cf75aea22b
languageName: node
linkType: hard
"@aws-sdk/client-s3@npm:^3.208.0":
- version: 3.282.0
- resolution: "@aws-sdk/client-s3@npm:3.282.0"
+ version: 3.293.0
+ resolution: "@aws-sdk/client-s3@npm:3.293.0"
dependencies:
"@aws-crypto/sha1-browser": 3.0.0
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.282.0
- "@aws-sdk/config-resolver": 3.282.0
- "@aws-sdk/credential-provider-node": 3.282.0
- "@aws-sdk/eventstream-serde-browser": 3.272.0
- "@aws-sdk/eventstream-serde-config-resolver": 3.272.0
- "@aws-sdk/eventstream-serde-node": 3.272.0
- "@aws-sdk/fetch-http-handler": 3.282.0
- "@aws-sdk/hash-blob-browser": 3.272.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/hash-stream-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/md5-js": 3.272.0
- "@aws-sdk/middleware-bucket-endpoint": 3.282.0
- "@aws-sdk/middleware-content-length": 3.282.0
- "@aws-sdk/middleware-endpoint": 3.282.0
- "@aws-sdk/middleware-expect-continue": 3.282.0
- "@aws-sdk/middleware-flexible-checksums": 3.282.0
- "@aws-sdk/middleware-host-header": 3.282.0
- "@aws-sdk/middleware-location-constraint": 3.272.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.282.0
- "@aws-sdk/middleware-retry": 3.282.0
- "@aws-sdk/middleware-sdk-s3": 3.282.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-signing": 3.282.0
- "@aws-sdk/middleware-ssec": 3.272.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.282.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.282.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/signature-v4-multi-region": 3.282.0
- "@aws-sdk/smithy-client": 3.279.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.279.0
- "@aws-sdk/util-defaults-mode-node": 3.282.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-stream-browser": 3.282.0
- "@aws-sdk/util-stream-node": 3.282.0
- "@aws-sdk/util-user-agent-browser": 3.282.0
- "@aws-sdk/util-user-agent-node": 3.282.0
- "@aws-sdk/util-utf8": 3.254.0
- "@aws-sdk/util-waiter": 3.272.0
- "@aws-sdk/xml-builder": 3.201.0
+ "@aws-sdk/client-sts": 3.293.0
+ "@aws-sdk/config-resolver": 3.292.0
+ "@aws-sdk/credential-provider-node": 3.293.0
+ "@aws-sdk/eventstream-serde-browser": 3.292.0
+ "@aws-sdk/eventstream-serde-config-resolver": 3.292.0
+ "@aws-sdk/eventstream-serde-node": 3.292.0
+ "@aws-sdk/fetch-http-handler": 3.292.0
+ "@aws-sdk/hash-blob-browser": 3.292.0
+ "@aws-sdk/hash-node": 3.292.0
+ "@aws-sdk/hash-stream-node": 3.292.0
+ "@aws-sdk/invalid-dependency": 3.292.0
+ "@aws-sdk/md5-js": 3.292.0
+ "@aws-sdk/middleware-bucket-endpoint": 3.292.0
+ "@aws-sdk/middleware-content-length": 3.292.0
+ "@aws-sdk/middleware-endpoint": 3.292.0
+ "@aws-sdk/middleware-expect-continue": 3.292.0
+ "@aws-sdk/middleware-flexible-checksums": 3.292.0
+ "@aws-sdk/middleware-host-header": 3.292.0
+ "@aws-sdk/middleware-location-constraint": 3.292.0
+ "@aws-sdk/middleware-logger": 3.292.0
+ "@aws-sdk/middleware-recursion-detection": 3.292.0
+ "@aws-sdk/middleware-retry": 3.293.0
+ "@aws-sdk/middleware-sdk-s3": 3.292.0
+ "@aws-sdk/middleware-serde": 3.292.0
+ "@aws-sdk/middleware-signing": 3.292.0
+ "@aws-sdk/middleware-ssec": 3.292.0
+ "@aws-sdk/middleware-stack": 3.292.0
+ "@aws-sdk/middleware-user-agent": 3.293.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/node-http-handler": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/signature-v4-multi-region": 3.292.0
+ "@aws-sdk/smithy-client": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/url-parser": 3.292.0
+ "@aws-sdk/util-base64": 3.292.0
+ "@aws-sdk/util-body-length-browser": 3.292.0
+ "@aws-sdk/util-body-length-node": 3.292.0
+ "@aws-sdk/util-defaults-mode-browser": 3.292.0
+ "@aws-sdk/util-defaults-mode-node": 3.292.0
+ "@aws-sdk/util-endpoints": 3.293.0
+ "@aws-sdk/util-retry": 3.292.0
+ "@aws-sdk/util-stream-browser": 3.292.0
+ "@aws-sdk/util-stream-node": 3.292.0
+ "@aws-sdk/util-user-agent-browser": 3.292.0
+ "@aws-sdk/util-user-agent-node": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
+ "@aws-sdk/util-waiter": 3.292.0
+ "@aws-sdk/xml-builder": 3.292.0
fast-xml-parser: 4.1.2
tslib: ^2.3.1
- checksum: 4f0a1d9ddad89eb71da6f39c210c451461d570d11bc394c6b3d7af139e3ea077bed88fee56fae8318182e7a26464d31119620f191f0d552b51125b9f6ddffe0b
+ checksum: c049bbd40964ebfc189f8a72aed2e5dafcfbc949b4c06a2e811eb0fb58ab34ac681aa039fe7f3473310a9efe226feed889268ff0f44c9eb71805aea3018b5bc7
languageName: node
linkType: hard
"@aws-sdk/client-sqs@npm:^3.208.0":
- version: 3.282.0
- resolution: "@aws-sdk/client-sqs@npm:3.282.0"
+ version: 3.293.0
+ resolution: "@aws-sdk/client-sqs@npm:3.293.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/client-sts": 3.282.0
- "@aws-sdk/config-resolver": 3.282.0
- "@aws-sdk/credential-provider-node": 3.282.0
- "@aws-sdk/fetch-http-handler": 3.282.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/md5-js": 3.272.0
- "@aws-sdk/middleware-content-length": 3.282.0
- "@aws-sdk/middleware-endpoint": 3.282.0
- "@aws-sdk/middleware-host-header": 3.282.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.282.0
- "@aws-sdk/middleware-retry": 3.282.0
- "@aws-sdk/middleware-sdk-sqs": 3.272.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-signing": 3.282.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.282.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.282.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/smithy-client": 3.279.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.279.0
- "@aws-sdk/util-defaults-mode-node": 3.282.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.282.0
- "@aws-sdk/util-user-agent-node": 3.282.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/client-sts": 3.293.0
+ "@aws-sdk/config-resolver": 3.292.0
+ "@aws-sdk/credential-provider-node": 3.293.0
+ "@aws-sdk/fetch-http-handler": 3.292.0
+ "@aws-sdk/hash-node": 3.292.0
+ "@aws-sdk/invalid-dependency": 3.292.0
+ "@aws-sdk/md5-js": 3.292.0
+ "@aws-sdk/middleware-content-length": 3.292.0
+ "@aws-sdk/middleware-endpoint": 3.292.0
+ "@aws-sdk/middleware-host-header": 3.292.0
+ "@aws-sdk/middleware-logger": 3.292.0
+ "@aws-sdk/middleware-recursion-detection": 3.292.0
+ "@aws-sdk/middleware-retry": 3.293.0
+ "@aws-sdk/middleware-sdk-sqs": 3.292.0
+ "@aws-sdk/middleware-serde": 3.292.0
+ "@aws-sdk/middleware-signing": 3.292.0
+ "@aws-sdk/middleware-stack": 3.292.0
+ "@aws-sdk/middleware-user-agent": 3.293.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/node-http-handler": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/smithy-client": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/url-parser": 3.292.0
+ "@aws-sdk/util-base64": 3.292.0
+ "@aws-sdk/util-body-length-browser": 3.292.0
+ "@aws-sdk/util-body-length-node": 3.292.0
+ "@aws-sdk/util-defaults-mode-browser": 3.292.0
+ "@aws-sdk/util-defaults-mode-node": 3.292.0
+ "@aws-sdk/util-endpoints": 3.293.0
+ "@aws-sdk/util-retry": 3.292.0
+ "@aws-sdk/util-user-agent-browser": 3.292.0
+ "@aws-sdk/util-user-agent-node": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
fast-xml-parser: 4.1.2
tslib: ^2.3.1
- checksum: d3a2a2abb27313666aa8c9842c91a098b2570878a9853d59bf07d480669723d77b74ad2ca8e5297dc593d8e76578c78c2634f81e4eed84b84b020b06af04c423
+ checksum: d07b9729ac138e71c789851d146a7632fdf1a50cb8d23a85af14b957bc23d18dbd42d291e04ee1df52844f75168e71818a3d2d962dc47a530350d760fefd8300
languageName: node
linkType: hard
-"@aws-sdk/client-sso-oidc@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/client-sso-oidc@npm:3.282.0"
+"@aws-sdk/client-sso-oidc@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/client-sso-oidc@npm:3.293.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/config-resolver": 3.282.0
- "@aws-sdk/fetch-http-handler": 3.282.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/middleware-content-length": 3.282.0
- "@aws-sdk/middleware-endpoint": 3.282.0
- "@aws-sdk/middleware-host-header": 3.282.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.282.0
- "@aws-sdk/middleware-retry": 3.282.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.282.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.282.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/smithy-client": 3.279.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.279.0
- "@aws-sdk/util-defaults-mode-node": 3.282.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.282.0
- "@aws-sdk/util-user-agent-node": 3.282.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/config-resolver": 3.292.0
+ "@aws-sdk/fetch-http-handler": 3.292.0
+ "@aws-sdk/hash-node": 3.292.0
+ "@aws-sdk/invalid-dependency": 3.292.0
+ "@aws-sdk/middleware-content-length": 3.292.0
+ "@aws-sdk/middleware-endpoint": 3.292.0
+ "@aws-sdk/middleware-host-header": 3.292.0
+ "@aws-sdk/middleware-logger": 3.292.0
+ "@aws-sdk/middleware-recursion-detection": 3.292.0
+ "@aws-sdk/middleware-retry": 3.293.0
+ "@aws-sdk/middleware-serde": 3.292.0
+ "@aws-sdk/middleware-stack": 3.292.0
+ "@aws-sdk/middleware-user-agent": 3.293.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/node-http-handler": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/smithy-client": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/url-parser": 3.292.0
+ "@aws-sdk/util-base64": 3.292.0
+ "@aws-sdk/util-body-length-browser": 3.292.0
+ "@aws-sdk/util-body-length-node": 3.292.0
+ "@aws-sdk/util-defaults-mode-browser": 3.292.0
+ "@aws-sdk/util-defaults-mode-node": 3.292.0
+ "@aws-sdk/util-endpoints": 3.293.0
+ "@aws-sdk/util-retry": 3.292.0
+ "@aws-sdk/util-user-agent-browser": 3.292.0
+ "@aws-sdk/util-user-agent-node": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: 4b7d40614d5379e30ce800acd60d6c04751f2a1e347474925d74fc4b9bdf9529132fd2e40933ae2fba5ef65569d55387ea80ca5312d810a868826276296b18a4
+ checksum: 4137f631355f75f7eea083b3e172dcbd67b1e7701cfe02fb21c922a39aa0d4f80171458473833d72150341f2320fc21fef74bb5cffdd15b4723f719c8caa4bce
languageName: node
linkType: hard
-"@aws-sdk/client-sso@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/client-sso@npm:3.282.0"
+"@aws-sdk/client-sso@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/client-sso@npm:3.293.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/config-resolver": 3.282.0
- "@aws-sdk/fetch-http-handler": 3.282.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/middleware-content-length": 3.282.0
- "@aws-sdk/middleware-endpoint": 3.282.0
- "@aws-sdk/middleware-host-header": 3.282.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.282.0
- "@aws-sdk/middleware-retry": 3.282.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.282.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.282.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/smithy-client": 3.279.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.279.0
- "@aws-sdk/util-defaults-mode-node": 3.282.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.282.0
- "@aws-sdk/util-user-agent-node": 3.282.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/config-resolver": 3.292.0
+ "@aws-sdk/fetch-http-handler": 3.292.0
+ "@aws-sdk/hash-node": 3.292.0
+ "@aws-sdk/invalid-dependency": 3.292.0
+ "@aws-sdk/middleware-content-length": 3.292.0
+ "@aws-sdk/middleware-endpoint": 3.292.0
+ "@aws-sdk/middleware-host-header": 3.292.0
+ "@aws-sdk/middleware-logger": 3.292.0
+ "@aws-sdk/middleware-recursion-detection": 3.292.0
+ "@aws-sdk/middleware-retry": 3.293.0
+ "@aws-sdk/middleware-serde": 3.292.0
+ "@aws-sdk/middleware-stack": 3.292.0
+ "@aws-sdk/middleware-user-agent": 3.293.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/node-http-handler": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/smithy-client": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/url-parser": 3.292.0
+ "@aws-sdk/util-base64": 3.292.0
+ "@aws-sdk/util-body-length-browser": 3.292.0
+ "@aws-sdk/util-body-length-node": 3.292.0
+ "@aws-sdk/util-defaults-mode-browser": 3.292.0
+ "@aws-sdk/util-defaults-mode-node": 3.292.0
+ "@aws-sdk/util-endpoints": 3.293.0
+ "@aws-sdk/util-retry": 3.292.0
+ "@aws-sdk/util-user-agent-browser": 3.292.0
+ "@aws-sdk/util-user-agent-node": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: e227d6c3dfcb4c0ec8c2a42ba281bca82dc6134ec69e6af6901892567d729be7f4b361cd0b70e18d85117e29f52aa75affc8e91fef1eb8c024f577897480085f
+ checksum: a502dddebf8905b765f1bf126435d7948ac32e857f0127ac68e3fb1328cacaa660eed026d264853c7a6da39126cbcfedd5b022a1073525ea8ee66c409157b9a4
languageName: node
linkType: hard
-"@aws-sdk/client-sts@npm:3.282.0, @aws-sdk/client-sts@npm:^3.208.0":
- version: 3.282.0
- resolution: "@aws-sdk/client-sts@npm:3.282.0"
+"@aws-sdk/client-sts@npm:3.293.0, @aws-sdk/client-sts@npm:^3.208.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/client-sts@npm:3.293.0"
dependencies:
"@aws-crypto/sha256-browser": 3.0.0
"@aws-crypto/sha256-js": 3.0.0
- "@aws-sdk/config-resolver": 3.282.0
- "@aws-sdk/credential-provider-node": 3.282.0
- "@aws-sdk/fetch-http-handler": 3.282.0
- "@aws-sdk/hash-node": 3.272.0
- "@aws-sdk/invalid-dependency": 3.272.0
- "@aws-sdk/middleware-content-length": 3.282.0
- "@aws-sdk/middleware-endpoint": 3.282.0
- "@aws-sdk/middleware-host-header": 3.282.0
- "@aws-sdk/middleware-logger": 3.272.0
- "@aws-sdk/middleware-recursion-detection": 3.282.0
- "@aws-sdk/middleware-retry": 3.282.0
- "@aws-sdk/middleware-sdk-sts": 3.282.0
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/middleware-signing": 3.282.0
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/middleware-user-agent": 3.282.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/node-http-handler": 3.282.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/smithy-client": 3.279.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-body-length-browser": 3.188.0
- "@aws-sdk/util-body-length-node": 3.208.0
- "@aws-sdk/util-defaults-mode-browser": 3.279.0
- "@aws-sdk/util-defaults-mode-node": 3.282.0
- "@aws-sdk/util-endpoints": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
- "@aws-sdk/util-user-agent-browser": 3.282.0
- "@aws-sdk/util-user-agent-node": 3.282.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/config-resolver": 3.292.0
+ "@aws-sdk/credential-provider-node": 3.293.0
+ "@aws-sdk/fetch-http-handler": 3.292.0
+ "@aws-sdk/hash-node": 3.292.0
+ "@aws-sdk/invalid-dependency": 3.292.0
+ "@aws-sdk/middleware-content-length": 3.292.0
+ "@aws-sdk/middleware-endpoint": 3.292.0
+ "@aws-sdk/middleware-host-header": 3.292.0
+ "@aws-sdk/middleware-logger": 3.292.0
+ "@aws-sdk/middleware-recursion-detection": 3.292.0
+ "@aws-sdk/middleware-retry": 3.293.0
+ "@aws-sdk/middleware-sdk-sts": 3.292.0
+ "@aws-sdk/middleware-serde": 3.292.0
+ "@aws-sdk/middleware-signing": 3.292.0
+ "@aws-sdk/middleware-stack": 3.292.0
+ "@aws-sdk/middleware-user-agent": 3.293.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/node-http-handler": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/smithy-client": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/url-parser": 3.292.0
+ "@aws-sdk/util-base64": 3.292.0
+ "@aws-sdk/util-body-length-browser": 3.292.0
+ "@aws-sdk/util-body-length-node": 3.292.0
+ "@aws-sdk/util-defaults-mode-browser": 3.292.0
+ "@aws-sdk/util-defaults-mode-node": 3.292.0
+ "@aws-sdk/util-endpoints": 3.293.0
+ "@aws-sdk/util-retry": 3.292.0
+ "@aws-sdk/util-user-agent-browser": 3.292.0
+ "@aws-sdk/util-user-agent-node": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
fast-xml-parser: 4.1.2
tslib: ^2.3.1
- checksum: 5af24417f7ef2dbebe6b0c0aa545eeb809e92136bce2b1e7dd07de1159f2308c2d673c3b136440e4137ce7524cbdabe50e80d7ca6f8635a3d9dcd2983532a9e7
+ checksum: c99efc08e494098436fef2ba1321fa8362008d9190fcafff0694490f09f7bed76cc16c24b0d938c0d143255149efa6bffd8a568ecca5eab5fb103eba57f61966
languageName: node
linkType: hard
-"@aws-sdk/config-resolver@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/config-resolver@npm:3.282.0"
+"@aws-sdk/config-resolver@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/config-resolver@npm:3.292.0"
dependencies:
- "@aws-sdk/signature-v4": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-config-provider": 3.208.0
- "@aws-sdk/util-middleware": 3.272.0
+ "@aws-sdk/signature-v4": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-config-provider": 3.292.0
+ "@aws-sdk/util-middleware": 3.292.0
tslib: ^2.3.1
- checksum: 47628c4c66d93f2fb109039a55f206f1d9360fd3440ba2354489b5ddf05aab5322791a7e688cb02012342b3ecc7c5a61030838e6b94be76461f7f86d10a3c120
+ checksum: 990aa47171b9ab7ee5eaf0d5367b7ad5487dc4ecafb776eb120aa98d0c5081e5ef685263fb3a316267d86be4a737ee26e306f1be68b29bcf86179a5b4fefbd9c
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-cognito-identity@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.282.0"
+"@aws-sdk/credential-provider-cognito-identity@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.293.0"
dependencies:
- "@aws-sdk/client-cognito-identity": 3.282.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/client-cognito-identity": 3.293.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: c78e08a43e5611d6fbf15871720b38d76168ffbf75e24394ad10550b636d454c97bc6caaf70b0a3b960406b85874c7e45406167e6d38ae18acadfcaac16b2d73
+ checksum: e23bcc010cf8002e4264b3074af6734f9fb81a8d556d453f19196765174ff313173749e2c17a76f9e7c4a485b82cb5f91a7d55e7742f5262fde5c7b93e279b9d
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-env@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/credential-provider-env@npm:3.272.0"
+"@aws-sdk/credential-provider-env@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/credential-provider-env@npm:3.292.0"
dependencies:
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 74195ecb608e3e6dedfc40e052bd7d0ef3a9e531ecf404f40d05869e23328bd156e458e9770d30458137438de92efd3dcb9fc3ff5f1319c49b55e057323f3ea6
+ checksum: 86f28ecc0834848bbf60b32a939d090d66f1996d8db4f3128d56c308cb624c4b1dd1b720c1a111e2f6d863b710f533f4b1e6e863dad402cd02d9cfb732f7767c
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-imds@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/credential-provider-imds@npm:3.272.0"
+"@aws-sdk/credential-provider-imds@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/credential-provider-imds@npm:3.292.0"
dependencies:
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/url-parser": 3.292.0
tslib: ^2.3.1
- checksum: c6adfcaa8dada3f99bbbd241aee3e568474c93df97e9b3f5e4feb9b000a91e5b3f0491556f712ebbd4d67de9c77c1072e6d444ac63ad9c6be31cf26acb2bc72c
+ checksum: 421c72fe36e6f7c9dc7ff53d226fe5a8986ba99033ac79bdc4699c5c5bfed7d45096a3f5f3088d39dd68ff4895bfc914a14eb8909728111e0c411302102a3c48
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-ini@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/credential-provider-ini@npm:3.282.0"
+"@aws-sdk/credential-provider-ini@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/credential-provider-ini@npm:3.293.0"
dependencies:
- "@aws-sdk/credential-provider-env": 3.272.0
- "@aws-sdk/credential-provider-imds": 3.272.0
- "@aws-sdk/credential-provider-process": 3.272.0
- "@aws-sdk/credential-provider-sso": 3.282.0
- "@aws-sdk/credential-provider-web-identity": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/credential-provider-env": 3.292.0
+ "@aws-sdk/credential-provider-imds": 3.292.0
+ "@aws-sdk/credential-provider-process": 3.292.0
+ "@aws-sdk/credential-provider-sso": 3.293.0
+ "@aws-sdk/credential-provider-web-identity": 3.292.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/shared-ini-file-loader": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: e5281422c8e060dbfca271ccb2f80f23fac11d513d2f97954a7070ca3fdfa0293aed55d8bb0e65cc50dbb60c624755436892a9dd41a659dd3ab8f91d1d9ba74e
+ checksum: 7fafb9ada9e0eec303b46bb02f392c0ff63861214df9345f6e4678d158d573cc2d5f941e25e8bad1491fc67f6913053e72cf6327ac4432fe4f7e70b68cdaeef3
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-node@npm:3.282.0, @aws-sdk/credential-provider-node@npm:^3.208.0":
- version: 3.282.0
- resolution: "@aws-sdk/credential-provider-node@npm:3.282.0"
+"@aws-sdk/credential-provider-node@npm:3.293.0, @aws-sdk/credential-provider-node@npm:^3.208.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/credential-provider-node@npm:3.293.0"
dependencies:
- "@aws-sdk/credential-provider-env": 3.272.0
- "@aws-sdk/credential-provider-imds": 3.272.0
- "@aws-sdk/credential-provider-ini": 3.282.0
- "@aws-sdk/credential-provider-process": 3.272.0
- "@aws-sdk/credential-provider-sso": 3.282.0
- "@aws-sdk/credential-provider-web-identity": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/credential-provider-env": 3.292.0
+ "@aws-sdk/credential-provider-imds": 3.292.0
+ "@aws-sdk/credential-provider-ini": 3.293.0
+ "@aws-sdk/credential-provider-process": 3.292.0
+ "@aws-sdk/credential-provider-sso": 3.293.0
+ "@aws-sdk/credential-provider-web-identity": 3.292.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/shared-ini-file-loader": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: dc76e67a635bb8807e2e80f4095beaa9d19a07cb5ed7e86080dd9ccff9fc23d6a84af88b74994233742032766efaebc2fd621cd3f8462d8ff041fdf5604a0ee4
+ checksum: c0ff0ef0f4983ed6b56d73e910fb2a1f9ad43faf9cd9067fb6f276dd384e23ef7035016ff339273c9a2dfba1e4d0a27887f22acc86fb0d65018c85c5e1f6b1ab
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-process@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/credential-provider-process@npm:3.272.0"
+"@aws-sdk/credential-provider-process@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/credential-provider-process@npm:3.292.0"
dependencies:
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/shared-ini-file-loader": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: fda290aea2417137f333c8ad0a94d7789054b464bdf5f9a7eef06341f88d4bd0c96ca02b84b58e0af2a9c490cee4febf6ee84254dfbff192bfccccbb0c8c1876
+ checksum: 2cad4d73e2f07ad5cd613f053e5fb7c146c33020dd13a8cc664d6705a9f33f257a4d3e2fbbfe7c34fc8582593eaa1b0ded67dcf2022842d421a465de760420b0
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-sso@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/credential-provider-sso@npm:3.282.0"
+"@aws-sdk/credential-provider-sso@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/credential-provider-sso@npm:3.293.0"
dependencies:
- "@aws-sdk/client-sso": 3.282.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/token-providers": 3.282.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/client-sso": 3.293.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/shared-ini-file-loader": 3.292.0
+ "@aws-sdk/token-providers": 3.293.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 7888c5fbb0be701a8b6ad0a853959f5de0549e0c54dd475767395cfd9337e429056c948ee332da3b447751899635886955a8cc30e0ffbb1b86b6d887712ac0e4
+ checksum: 75fa91c622d526ebfee18d83e1eeeeac12f2069abae5d7921a1df21b85dd241da2d67b9976522f2efdfc319d53334e89b3715df4c4a857bf3978d38a3326dd00
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-web-identity@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/credential-provider-web-identity@npm:3.272.0"
+"@aws-sdk/credential-provider-web-identity@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/credential-provider-web-identity@npm:3.292.0"
dependencies:
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: aad84e2bfd90495ed4eb76b83940729bd2fb652398f7e477cfd8053f9c986132b4ff8682854a91e3f23c7daaab66e1c31320188561104fea710cd87be1221e9d
+ checksum: 02e0e30df966c6b623d68517ae360bc4efa7a04fcfba17baf48e4398e899e225c507d5280d682e222ba9f48a484e912de3946b9dde8512baefc5493d28f7b486
languageName: node
linkType: hard
"@aws-sdk/credential-providers@npm:^3.208.0":
- version: 3.282.0
- resolution: "@aws-sdk/credential-providers@npm:3.282.0"
+ version: 3.293.0
+ resolution: "@aws-sdk/credential-providers@npm:3.293.0"
dependencies:
- "@aws-sdk/client-cognito-identity": 3.282.0
- "@aws-sdk/client-sso": 3.282.0
- "@aws-sdk/client-sts": 3.282.0
- "@aws-sdk/credential-provider-cognito-identity": 3.282.0
- "@aws-sdk/credential-provider-env": 3.272.0
- "@aws-sdk/credential-provider-imds": 3.272.0
- "@aws-sdk/credential-provider-ini": 3.282.0
- "@aws-sdk/credential-provider-node": 3.282.0
- "@aws-sdk/credential-provider-process": 3.272.0
- "@aws-sdk/credential-provider-sso": 3.282.0
- "@aws-sdk/credential-provider-web-identity": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/client-cognito-identity": 3.293.0
+ "@aws-sdk/client-sso": 3.293.0
+ "@aws-sdk/client-sts": 3.293.0
+ "@aws-sdk/credential-provider-cognito-identity": 3.293.0
+ "@aws-sdk/credential-provider-env": 3.292.0
+ "@aws-sdk/credential-provider-imds": 3.292.0
+ "@aws-sdk/credential-provider-ini": 3.293.0
+ "@aws-sdk/credential-provider-node": 3.293.0
+ "@aws-sdk/credential-provider-process": 3.292.0
+ "@aws-sdk/credential-provider-sso": 3.293.0
+ "@aws-sdk/credential-provider-web-identity": 3.292.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/shared-ini-file-loader": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: ec707176eba558fc5bfc45b2917d624a83995c75bfc38a121d3a3fe6c0be541c25815d4892fc33fd0f1de5f892232014724b0d5c62c19a2d6d3f839258b25840
+ checksum: cca87d8518e353612c610e8c81944452d4461733d317f68fa29b819eac4741fe7438bc90261c67bd4284721158ce710c1ca7130e5e09eb3ad4f6174f2c14d34b
languageName: node
linkType: hard
-"@aws-sdk/eventstream-codec@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/eventstream-codec@npm:3.272.0"
+"@aws-sdk/eventstream-codec@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/eventstream-codec@npm:3.292.0"
dependencies:
"@aws-crypto/crc32": 3.0.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-hex-encoding": 3.201.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-hex-encoding": 3.292.0
tslib: ^2.3.1
- checksum: bea8599a72657d698de169643950031624e0b61179240c8d8eb3c17f01bfc4579c507a861be6c703f318fcdff4217a4cb4279223cad93fb21e69f4b5d10d6102
+ checksum: 6a246d7944074d4a5332ccc7b848f9e3f4b928161c0c31f9ef6306a989c012d92bae606910179f6f44be26cb530308ca0f1d4cd3656a9247a6c9f6ed2446a952
languageName: node
linkType: hard
-"@aws-sdk/eventstream-serde-browser@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/eventstream-serde-browser@npm:3.272.0"
+"@aws-sdk/eventstream-serde-browser@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/eventstream-serde-browser@npm:3.292.0"
dependencies:
- "@aws-sdk/eventstream-serde-universal": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/eventstream-serde-universal": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: a4fa42e1a8658eca191f567046741192e6e04f5c58744655ec0112a1d46b57d5ce04432e2fec0e6fe16d486c30abdc58b734ed67879c10e0fcc4820530eaff35
+ checksum: 53ae27259d1c117b0acb84e07f6258b76970cfc221f5c531b17c4c04ef262bd799e6157831c480a6a0861847b5500d389af83cee7021abbbc4f5c983c69a3948
languageName: node
linkType: hard
-"@aws-sdk/eventstream-serde-config-resolver@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/eventstream-serde-config-resolver@npm:3.272.0"
+"@aws-sdk/eventstream-serde-config-resolver@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/eventstream-serde-config-resolver@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: feee058288bbf5a97d78dfee5084c2dc224d771499848dcaedbfd671c8889f52329f96ce87c291d29e66b46c8e25923bd55f64d8ed744089fc40723296eb003c
+ checksum: 6f7d25386ddf86dd90fc7a5b83fe0bab3789a2ddad8017c8bb07a74cd2d7fb0fa9ea2216e66237a492cc25a8525df2b09485fbfa9f3ec9029981a830a89f0c81
languageName: node
linkType: hard
-"@aws-sdk/eventstream-serde-node@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/eventstream-serde-node@npm:3.272.0"
+"@aws-sdk/eventstream-serde-node@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/eventstream-serde-node@npm:3.292.0"
dependencies:
- "@aws-sdk/eventstream-serde-universal": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/eventstream-serde-universal": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 02fa0c5f992df253713bbe19515bf898e332e3bc51da28da28bdf2cde584df90689bb9b54afa57354798c8b01e4b592d63fb575d7652fd5df2c00bf1e45e689a
+ checksum: 981f007ab42bd2cfc781e26ee3d2b9f1ac81656a519bc9fbceefd68c31b5a1d6c55594b7001de68a354cdcf29e92820fe063ac6877c84035b320ccfeaafdc038
languageName: node
linkType: hard
-"@aws-sdk/eventstream-serde-universal@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/eventstream-serde-universal@npm:3.272.0"
+"@aws-sdk/eventstream-serde-universal@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/eventstream-serde-universal@npm:3.292.0"
dependencies:
- "@aws-sdk/eventstream-codec": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/eventstream-codec": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 3d8031e84af1a0cdf5f22f98aee868cd62b6fa87e432231bbe32a400874dc44b030cffdf9dce3194281bf04a1669b23bf8ce16759123ba10980676fe9388e63b
+ checksum: 9c2c8ea67a81ef95753af8c16e14134df7f642b61fc83ec58a147d417718c64a750a2c5410efec09e37af847e290660395e1e261fe5e931e06d06c52110983cb
languageName: node
linkType: hard
-"@aws-sdk/fetch-http-handler@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/fetch-http-handler@npm:3.208.0"
+"@aws-sdk/fetch-http-handler@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/fetch-http-handler@npm:3.292.0"
dependencies:
- "@aws-sdk/protocol-http": 3.208.0
- "@aws-sdk/querystring-builder": 3.208.0
- "@aws-sdk/types": 3.208.0
- "@aws-sdk/util-base64": 3.208.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/querystring-builder": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-base64": 3.292.0
tslib: ^2.3.1
- checksum: a0016ec854d247e28ba7a86e72d6915854b33d489e88e5d26c8e3843704a3978129b4b52619c9810acd19c47dbf9b4359be17ad939e0be676b4af9cb21952abf
+ checksum: d779d52bd0d3d2ad5ab5232f5e08c1f9489f83c50a5d8df899c1ad25ae14f97fdf8c28c4465e0fb6f2b7554db89f78afa65fddb24cbbe7983bbd7efdd455934e
languageName: node
linkType: hard
-"@aws-sdk/fetch-http-handler@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/fetch-http-handler@npm:3.282.0"
+"@aws-sdk/hash-blob-browser@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/hash-blob-browser@npm:3.292.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/querystring-builder": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
+ "@aws-sdk/chunked-blob-reader": 3.292.0
+ "@aws-sdk/chunked-blob-reader-native": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 20823143bfed12dd25dc77abb8f869b4f013506f5a028477add87213ec184649dd799f4c6db5d25699a050763ef4a24c6363c06ff096e3a9b7413e2e865a10f6
+ checksum: d560e6de563019d55fe4ef8b385dec52da9b7a76ffa3d5ab4e5d87986c675a7cc2e468088408316ee13aa78f43d1d5393cf19000bb037c385341dddb35c7765c
languageName: node
linkType: hard
-"@aws-sdk/hash-blob-browser@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/hash-blob-browser@npm:3.272.0"
+"@aws-sdk/hash-node@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/hash-node@npm:3.292.0"
dependencies:
- "@aws-sdk/chunked-blob-reader": 3.188.0
- "@aws-sdk/chunked-blob-reader-native": 3.208.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-buffer-from": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: ab0564672606760b934973ef33a8a8d567d52d3fa4be2a7a8919daa1b9ac1c3afaaee975ae7ad20940f51e1057e3321c39f5dcd2246ca85aad03e1f7aed68669
+ checksum: 4b7e77be7331951fd4a894a629f52d5ffc0ed19565f9e5a64934fd1b3741a0a30aed90cded058e6d4981cf51e3e8bc9849cd7b0bff8f80d7e5269665abd25713
languageName: node
linkType: hard
-"@aws-sdk/hash-node@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/hash-node@npm:3.272.0"
+"@aws-sdk/hash-stream-node@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/hash-stream-node@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-buffer-from": 3.208.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: 1b3d5b288133af9294df36cec2377589f45c82f61cb824b14ac38955541357826cf5a8f95d7906cbf284ed9ffbd928a37b2f94581f7281715879aa4c0e7c7b24
+ checksum: af7cbdddc17801cd50bca24aa80d3ee837b1eda505290725c853847682451497249b018411e723acfee0004723b10a54517c314a8d69cfd6e67fa901fe530184
languageName: node
linkType: hard
-"@aws-sdk/hash-stream-node@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/hash-stream-node@npm:3.272.0"
+"@aws-sdk/invalid-dependency@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/invalid-dependency@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 4cb90a9ae442e0722d651d7e7558a8b0abcbc1b45670e194d51d0a9b2ea6cad6e3a02433d506a8d96ac94a26cd8e5746514c09f05f0da2acb2dc06c60218d3c5
+ checksum: 90b78b9b2a0458b3c473f5d9921dd697aa6923a934a1bd40f4a3bc600366923302d8202827509436ba5f9baddac88ef851344a22bbe7de972a746226823abe82
languageName: node
linkType: hard
-"@aws-sdk/invalid-dependency@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/invalid-dependency@npm:3.272.0"
- dependencies:
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: 4ef63ed9a9275e20bdcec551ee92a9d60a6a688c120f968fd51af235d357d39ec522752592075dad752be9a8439d93b4d1848e12fa9a88cda595920d78b008d2
- languageName: node
- linkType: hard
-
-"@aws-sdk/is-array-buffer@npm:3.201.0":
- version: 3.201.0
- resolution: "@aws-sdk/is-array-buffer@npm:3.201.0"
+"@aws-sdk/is-array-buffer@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/is-array-buffer@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: 295450b417a9ab0b734050afff6c53aaed8a33dccd3ede60bf67fdec21f675d14ab8edc24f4e1d12aa4e99f9ccaf794aaaaff270c296c1ee38f73ea7ba7f59ce
+ checksum: 31d425754071a50f90a8011a76776d2bee76ddc75d41378b539ccf7982245999a3711d444d0247021a5174064069d6e543c39bc95bd14fd37da4b26a62440cac
languageName: node
linkType: hard
"@aws-sdk/lib-storage@npm:^3.208.0":
- version: 3.282.0
- resolution: "@aws-sdk/lib-storage@npm:3.282.0"
+ version: 3.293.0
+ resolution: "@aws-sdk/lib-storage@npm:3.293.0"
dependencies:
- "@aws-sdk/middleware-endpoint": 3.282.0
- "@aws-sdk/smithy-client": 3.279.0
+ "@aws-sdk/middleware-endpoint": 3.292.0
+ "@aws-sdk/smithy-client": 3.292.0
buffer: 5.6.0
events: 3.3.0
stream-browserify: 3.0.0
@@ -969,522 +1072,495 @@ __metadata:
peerDependencies:
"@aws-sdk/abort-controller": ^3.0.0
"@aws-sdk/client-s3": ^3.0.0
- checksum: 14f1f21a653d239721ca488b6d7951511576a2e2652d240f3561ac0255cd4af321bc41531c15c3c6fae4095da062f5e841c6c9b58afd80be9bf105b63a256f72
+ checksum: 99742e84bc4c4c18e0d9863cfd5d84dfcad2c57d83b1766973f5440840b0185264a069e172b504e212f5d8c9d0e38cd11ed2d5a06ecfcb93edb11ea44cc2cf92
languageName: node
linkType: hard
-"@aws-sdk/md5-js@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/md5-js@npm:3.272.0"
+"@aws-sdk/md5-js@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/md5-js@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: d59010c1b48ba1992298ed23b605e7395a4aa964430d41012492faac24c7fa50856b565a523b0262b2c8b667904fdc57748d98475ba8c2e24b4550e17211e5ab
+ checksum: 130f1f3cf4f4bb1365f2beafbd760d9c651af2cf4eecf8829cf9c68fb0909f9722c01e0e1fcd016b36c060662090257955e3c16a7fe7139cfa824179142635eb
languageName: node
linkType: hard
-"@aws-sdk/middleware-bucket-endpoint@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.282.0"
+"@aws-sdk/middleware-bucket-endpoint@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.292.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-arn-parser": 3.208.0
- "@aws-sdk/util-config-provider": 3.208.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-arn-parser": 3.292.0
+ "@aws-sdk/util-config-provider": 3.292.0
tslib: ^2.3.1
- checksum: 1b2f2dfcbf808b8f6e24173f05bdec21c8c6d5ea4eda6b01b3d3812e51e69fd39fe4880922f0f8f6ecbf35bf8410622458882b754d24a67eae59871c1273a2d4
+ checksum: b57e3674a826d503fa28e7eac0813b54f6c2ad246f7b14746394aa7bf79808c61dd058e8ebb8657edef05d4d6d2ff8accc96a44e8d06afc86ba8005c1147419d
languageName: node
linkType: hard
-"@aws-sdk/middleware-content-length@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-content-length@npm:3.282.0"
+"@aws-sdk/middleware-content-length@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-content-length@npm:3.292.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: ebe0f4f55c30cd8ea3711a412e8f0c216c863b7b313ebd12de35b2c8e857cc38b5638c8acdfeca62307911b1092a516d5eaac60493dbeb76806012cda96f46d5
+ checksum: 83f8a92ebcd680bc05d859fd40b68278f32f89d6af2617dbc08857afd0e42853bbea00b97bb9b834dcf431742ccbb0b1ce441977c702f4fa81ea48f36923081c
languageName: node
linkType: hard
-"@aws-sdk/middleware-endpoint@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-endpoint@npm:3.282.0"
+"@aws-sdk/middleware-endpoint@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-endpoint@npm:3.292.0"
dependencies:
- "@aws-sdk/middleware-serde": 3.272.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/signature-v4": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/url-parser": 3.272.0
- "@aws-sdk/util-config-provider": 3.208.0
- "@aws-sdk/util-middleware": 3.272.0
+ "@aws-sdk/middleware-serde": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/signature-v4": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/url-parser": 3.292.0
+ "@aws-sdk/util-config-provider": 3.292.0
+ "@aws-sdk/util-middleware": 3.292.0
tslib: ^2.3.1
- checksum: 84a9f3d6d5f904e9728c20444f3e2fc369b8a57e9dbc01cf3c3f5a6b6062b2ba470774bddd60a095845bba62ce153590c69a10211f61609d4eebf173338299e7
+ checksum: f2ac4d63acceb34f377176f3aa98f18f572c064adbf6a0652c7d5a7b1fd85e249723bab2aae0c19d702aaee0d5f56300c256c93f1b8775aee4ab727cd461ab62
languageName: node
linkType: hard
-"@aws-sdk/middleware-expect-continue@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-expect-continue@npm:3.282.0"
+"@aws-sdk/middleware-expect-continue@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-expect-continue@npm:3.292.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 9b940175d545140608f17d7d5aefd798ea36640acfca95923320eab087bdd2edd25986a68f950a1ecfdf3c922bf91c0cae5b1bc4ce32d51c2f3e1915acc3939a
+ checksum: 950f154018f2e9e165538edc732f133e89df17e95df0300ddd725e79c3b031834c58bf9891aa89ce988a800e847e23e6a4f8010941b0e338850c606ab8f68191
languageName: node
linkType: hard
-"@aws-sdk/middleware-flexible-checksums@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.282.0"
+"@aws-sdk/middleware-flexible-checksums@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.292.0"
dependencies:
"@aws-crypto/crc32": 3.0.0
"@aws-crypto/crc32c": 3.0.0
- "@aws-sdk/is-array-buffer": 3.201.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/is-array-buffer": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: 7575ebdf82e62b0a03813acc18dab4c070c019b0e723ffb7be41d36955d29d87603689351ecb612a44ff9b70fd83fe6977c5a36f1d7c9cb80b104e28f19ddf23
+ checksum: 33b29ada23851e227a1af6e70f22b548f2e137fdd1c9cd5d356b01343f95afb319023f491bf51330f6e2640b243cb6fbb5ac71b319a033fe6ec1ad61293d4889
languageName: node
linkType: hard
-"@aws-sdk/middleware-host-header@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-host-header@npm:3.282.0"
+"@aws-sdk/middleware-host-header@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-host-header@npm:3.292.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 19b5c9284ec5df8732301d5853007613d62ec43657d8793be14bd1dc4b64700748b37d09dbae835750be440faae0105be6d14caaa55f1309842873a701007b72
+ checksum: 3f760a3641c07432f3247a07b86ae82d9e4f29ba3b266685e8adac64dc1a5ef510eff467329a514a5ed7a673173869acb88ef7b467ea8b91573841a4028afafa
languageName: node
linkType: hard
-"@aws-sdk/middleware-location-constraint@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-location-constraint@npm:3.272.0"
+"@aws-sdk/middleware-location-constraint@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-location-constraint@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 42cb878c4a2b4e1c0884277a9cacc4611111e1d6de649c4fb41f770e60ddceef27de433667c4e4d29882f6c9ad746859e53e0724fbfc5aff23720496a4007a0b
+ checksum: 1322eb31b0e49093a19c8e62ec324cde79a74a71cf0de9f59856c2dc87b40a1e26f91ea06cd9e2d817bad2dac36a5098aaeacca3cbe3692489413bb7d153c8c1
languageName: node
linkType: hard
-"@aws-sdk/middleware-logger@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-logger@npm:3.272.0"
+"@aws-sdk/middleware-logger@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-logger@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 128163d39522017ffb0099334f283ba82806b0c5b82965b47fff8b3b8648ae2b542b1733c69934bbca65fded9d26b8b93fa587547eeb8db2a3f5249841848f96
+ checksum: ad60ad1efefb4c47dc1a3a488cfc959ec1f0a5cf4bb5a4da00fff006e796a8b57a02eca64304048624c4a4757e86834ddc9d2ad25e3539391a694d970b565fb9
languageName: node
linkType: hard
-"@aws-sdk/middleware-recursion-detection@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-recursion-detection@npm:3.282.0"
+"@aws-sdk/middleware-recursion-detection@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-recursion-detection@npm:3.292.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 3e2b43e4e3f8ebb4f02a5bf33b15d95b559e5a35a872a94ca254497fdc896508baa8c316f3bec660d6fad2154041d81a5295be8ed245943dcdb3abc2dd75ef27
+ checksum: abbe68e6ef40b4a7541f2398dceeaa4604566f70215ba2884ed1a652cf49991b286270f9983255003d26ca3e62ef8c353c250feccdd796cc45abec2fc3b70bc3
languageName: node
linkType: hard
-"@aws-sdk/middleware-retry@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-retry@npm:3.282.0"
+"@aws-sdk/middleware-retry@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/middleware-retry@npm:3.293.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/service-error-classification": 3.272.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-middleware": 3.272.0
- "@aws-sdk/util-retry": 3.272.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/service-error-classification": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-middleware": 3.292.0
+ "@aws-sdk/util-retry": 3.292.0
tslib: ^2.3.1
uuid: ^8.3.2
- checksum: fca7a6c8bac2f52df9987a66f7be5891e85fda0f6eff678ed78bc545ee45e159026d30cc8a136293e731ca69f9e5edc4f9f4895fea73bf28634426d9db0021f6
+ checksum: 249094515c4353142846b8dbdf9365f6cccdad69cad8f8028fd03ffeb533fade46be1a781feb60089a9321eda720959ef2f1f25329defa1affc40a889a8ed5d3
languageName: node
linkType: hard
-"@aws-sdk/middleware-sdk-s3@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-sdk-s3@npm:3.282.0"
+"@aws-sdk/middleware-sdk-s3@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-sdk-s3@npm:3.292.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-arn-parser": 3.208.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-arn-parser": 3.292.0
tslib: ^2.3.1
- checksum: c373dcb455450897075adb943e454da84eae66e6b223a30a80599e2d8a33b61cf1a5e46ec8f7595adfd9059132ce444316f9e376eff6ca121f05b1bb67e99b2b
+ checksum: 22a118e51c8c0fda76d85794c5b017bc8c8a5a156b72614f05151d9e2b2e2b730fdb35b72a08b227474218fdf5c6b2c9019304baba2dc4761498dd95a3de9ea5
languageName: node
linkType: hard
-"@aws-sdk/middleware-sdk-sqs@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.272.0"
+"@aws-sdk/middleware-sdk-sqs@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-hex-encoding": 3.201.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-hex-encoding": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: 2338c5865fb797f5e9f0963cf0045e991a9aa816c4fefb86943e129be68ff3b94a662741692999c2a212e4491db299241453d9b432c3eee63781850f22772a29
+ checksum: c05ec7552e9f72062208566f1fd9383e7b40caff07a543091ea82b74bb099945c28776957d030e7f7d317cfd3a6fff255d5932c14149971f335008bd1915d994
languageName: node
linkType: hard
-"@aws-sdk/middleware-sdk-sts@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-sdk-sts@npm:3.282.0"
+"@aws-sdk/middleware-sdk-sts@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-sdk-sts@npm:3.292.0"
dependencies:
- "@aws-sdk/middleware-signing": 3.282.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/signature-v4": 3.282.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/middleware-signing": 3.292.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/signature-v4": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: bcd2ee00d30191262da5caf5fda4d6c12a9a4aa1ae76693b5e49dc562c89294b4bd133e7036b3811d69806d3d6277848731a3ff8eb919644c33d58909f6ce42e
+ checksum: bcd719d306befe814111cc4e4a89e08c81c5a28dce18e8b856838f8bd19d336ecfaa3a5a733066fc375ab630421a2156a804df0b1255fb470ea07c2eb5360ace
languageName: node
linkType: hard
-"@aws-sdk/middleware-serde@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-serde@npm:3.272.0"
+"@aws-sdk/middleware-serde@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-serde@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: d33c07ff8c7fb9682115220ae035de5414124fd81319d7490ed3f2c235b3c0b536634a5939b311dbd735050deca4702503ee26d9e17b97ba8a1ff9e46093573e
+ checksum: f8d4e246c4fbd86c8071fb69a55721c8641709d0696fc9e4bbaac4de546f402f641f331a16bb5c3b7b28b57ffc84be3cd1e203c7d378438b9cde31104dc7e453
languageName: node
linkType: hard
-"@aws-sdk/middleware-signing@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-signing@npm:3.282.0"
+"@aws-sdk/middleware-signing@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-signing@npm:3.292.0"
dependencies:
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/signature-v4": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-middleware": 3.272.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/signature-v4": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-middleware": 3.292.0
tslib: ^2.3.1
- checksum: bf3040f3939430d2d32ccc893103f34a7ffd3d979021a124d6f03e6dbbe3b1537fe8736143ddee20f13170a46e545ed5774dd08bdc0be2d8d9b610dd90949246
+ checksum: deb453f7e5d99270780fa3ee5285b5956fd90b9a5b4b37e221d97620df9bb2e30bd84e47f8168cb24849577ec30cf6991d9e57a9ae1b21ffb75d9fd3a4f196e8
languageName: node
linkType: hard
-"@aws-sdk/middleware-ssec@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-ssec@npm:3.272.0"
+"@aws-sdk/middleware-ssec@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-ssec@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 81836fd3235f455d79d7cdc0bc193b321024dab2f6443f16e013c5eb4b3e06c3ca283152cb560f7f2bd2e2accf81f773f95278e8c9094806c1ddb54b5af0db8f
+ checksum: 4f8cdec2dc55d395575e7265ec1f20d82427298eb887936f8dea3d9d704ba761619a518ae9d130b3e861d7d1f558122b38c5b218ee433dcc9fea17ce2057af8f
languageName: node
linkType: hard
-"@aws-sdk/middleware-stack@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/middleware-stack@npm:3.272.0"
+"@aws-sdk/middleware-stack@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/middleware-stack@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: 7006c4168c2e5c7b15edd4e87001a6e4edbd2f549908ac0e68bb61f12c232048ac1d351b0714e7a79115aeaf251838877b2ef9ac829a6b1ab04913015a3c87a3
+ checksum: 8be745177d96cc2f72b02f0b3c9374f0ee08b5c261715a9e86feeaf4bb6bdeacfa9b7dbd7e054145ca3dde9001d38096a311eca2ca02e8432b8266482e6645f2
languageName: node
linkType: hard
-"@aws-sdk/middleware-user-agent@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/middleware-user-agent@npm:3.282.0"
+"@aws-sdk/middleware-user-agent@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/middleware-user-agent@npm:3.293.0"
dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-endpoints": 3.293.0
tslib: ^2.3.1
- checksum: 6ad66ec8517deccb6dbbc1c3241d2afc2fa73d9a3bbaf56f3c1e8adbfd0791391f43058f79f2e2ace40090be481b5bbe8db8a42c0f444fc7cc56666c5ca07c72
+ checksum: 315c11feb58e99625380a4f1274bcdd54a275dc323bab789a809911d66e86cde15d2a9fc536e31cef6621325aed80fb0cb7cb524dd707bcb5fb8b1a1284e87e3
languageName: node
linkType: hard
-"@aws-sdk/node-config-provider@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/node-config-provider@npm:3.272.0"
+"@aws-sdk/node-config-provider@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/node-config-provider@npm:3.292.0"
dependencies:
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/shared-ini-file-loader": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 57f1f107ae4e213ffedf648d46fe0e026af83b13eeb8c13bd8f812cbbb226a0b2c2793afec0e29165ee64cc948182499ad44fe62f63ac58b06d0dd2cab7f1461
+ checksum: 3af6a0f0566acdd834aa5f3125bb0837a4fee54930f15621970ea66d1643b75d222ef17a0e8f12a2d191b355f3b10430dfa0bc773a3c59b8a23ad463316d503e
languageName: node
linkType: hard
-"@aws-sdk/node-http-handler@npm:3.282.0, @aws-sdk/node-http-handler@npm:^3.208.0":
- version: 3.282.0
- resolution: "@aws-sdk/node-http-handler@npm:3.282.0"
+"@aws-sdk/node-http-handler@npm:3.292.0, @aws-sdk/node-http-handler@npm:^3.208.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/node-http-handler@npm:3.292.0"
dependencies:
- "@aws-sdk/abort-controller": 3.272.0
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/querystring-builder": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/abort-controller": 3.292.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/querystring-builder": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 22bbb8cae68c3405f3695de2a4be4d08ade5ffaad5367badcc40dc06ef08ec634fb95953deed58641775265d852f7afb095675d353cd7c82b7cb21881f5cc549
+ checksum: b842943bb517b4c9cfb5aa13636463ea3415f0ad87960f0c7e3d6a8165ee722f40aa73d8d1806c5b462a0b26e2003a83f4e00e62e4c266cdbc909b4fa726a603
languageName: node
linkType: hard
-"@aws-sdk/property-provider@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/property-provider@npm:3.272.0"
+"@aws-sdk/property-provider@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/property-provider@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 7f01794e93276e13339034dac816b2b5da2370fbc1ff304d451e2d0344957e94ba53f5c54de44eca4cb53e2847c7be820db25d6164ca9e489a4a39787fb6c8b3
+ checksum: 1c15501edb5eda72a99bcebf8f5c2a7c9d9c60b3708d1b42faefc2a931c08a6c8010733ae88587266eebb70949ab2cb13e5c7f8335af6290c5f33ef288921828
languageName: node
linkType: hard
-"@aws-sdk/protocol-http@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/protocol-http@npm:3.208.0"
+"@aws-sdk/protocol-http@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/protocol-http@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.208.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 6cf57f264a4ef393fbe5fac71f22eaba47bc421646063dac004919ec7185979ed91a3e03c71373749150249f6be4ae41294a4c068d7c22a5990dcd2f5cf8347c
+ checksum: 4983aa6ae1bdf5dccab71331ae001009c84b5c1d99d05b0f5e5f1c65f56c1295411fd73be4ec88adc1d5f494dce67516c92932e86290879c4a3ca8f0c6f66256
languageName: node
linkType: hard
-"@aws-sdk/protocol-http@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/protocol-http@npm:3.282.0"
+"@aws-sdk/querystring-builder@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/querystring-builder@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-uri-escape": 3.292.0
tslib: ^2.3.1
- checksum: 5f9d927a69cc1d51767df86d5bfa76f280866e3ef7bcfb8b7b8dab7fc11638ca92d20e3a8a2708a251748c15c0582ad032dfd89aada8ce6068c58605b193e555
+ checksum: 134810b9c8a248a13faad270592e75ff5afc6ce0df2598a5f319774b29a5a0cc7a05334e62eb04eda9ce0dc921a4407223e96ed6b6345c0c487814d31d1fdcac
languageName: node
linkType: hard
-"@aws-sdk/querystring-builder@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/querystring-builder@npm:3.208.0"
+"@aws-sdk/querystring-parser@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/querystring-parser@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.208.0
- "@aws-sdk/util-uri-escape": 3.201.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 69ff07e2a05ae0979da4e5b12ffb223f0eb037fab079f1f4c245101fdb2d9244454a543dcc829120b882a99a63ecfc950f209ba5a1aaacf94432a35a214c2521
+ checksum: 921b15ecc46751b9b0b59b2093f2159ac3fcaecf31a22c34ecb77c8157667cc89528ad0ca3f2298839cff65642f2ec1829510652d334c87f86d9205394256093
languageName: node
linkType: hard
-"@aws-sdk/querystring-builder@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/querystring-builder@npm:3.272.0"
+"@aws-sdk/service-error-classification@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/service-error-classification@npm:3.292.0"
+ checksum: 38b154832b32c9e84a68f77ea7d0da1fc23331cb6f83a774ca9c9ecd577ede506f6245b0e0844f7556d14879219f16dbd8f141d948cc8d19f375008f1800d22b
+ languageName: node
+ linkType: hard
+
+"@aws-sdk/shared-ini-file-loader@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/shared-ini-file-loader@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-uri-escape": 3.201.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 8164bb5547c556a2b3933b0a93d55d9f205ebe096f2dbcea6d3be4aa23bb0b4e7996ba24363b9ac3f80b4026903b267b759efdf9f72379f1eea9250c182238b9
+ checksum: da14f79fcdabde68d2c103d61e477f7f90f43d6f41e3cfba7ae1a30b2d06c64121f70e0046f1797a5b8a785ccb8ca1969188a4f8e330a1fb9dac93794e5336f0
languageName: node
linkType: hard
-"@aws-sdk/querystring-parser@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/querystring-parser@npm:3.272.0"
+"@aws-sdk/signature-v4-multi-region@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/signature-v4-multi-region@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: fe5a29a265f48ad02b3161e888a66e4ac08fe07d52a67e811ac1da1734bfa9ac87ead637b595efcbc163f64f2280c8b56c867a8399f4c816b3683b6308837f93
- languageName: node
- linkType: hard
-
-"@aws-sdk/service-error-classification@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/service-error-classification@npm:3.272.0"
- checksum: 9507f74c909a968aa9bf835a05a9cfc93a0892e7c685de37da485e74a61b4fff271621d7c841aa0c9aedbcc57b19f171e6bc74925a82007be6c6750b3c7d0198
- languageName: node
- linkType: hard
-
-"@aws-sdk/shared-ini-file-loader@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/shared-ini-file-loader@npm:3.272.0"
- dependencies:
- "@aws-sdk/types": 3.272.0
- tslib: ^2.3.1
- checksum: 1245658ad6efbeda0181aca64b00259749abc76d6200ac8fb481fe627eb88932a5cf2e9c366583ccba9fa540706a08b611552fff5233d66835c0e525c51f97c4
- languageName: node
- linkType: hard
-
-"@aws-sdk/signature-v4-multi-region@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/signature-v4-multi-region@npm:3.282.0"
- dependencies:
- "@aws-sdk/protocol-http": 3.282.0
- "@aws-sdk/signature-v4": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-arn-parser": 3.208.0
+ "@aws-sdk/protocol-http": 3.292.0
+ "@aws-sdk/signature-v4": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-arn-parser": 3.292.0
tslib: ^2.3.1
peerDependencies:
"@aws-sdk/signature-v4-crt": ^3.118.0
peerDependenciesMeta:
"@aws-sdk/signature-v4-crt":
optional: true
- checksum: 3f25ba04145d9e274f5bea5ac34de77021c2a06d68085e29cd9bae3b0803aef53a0ab8b184034c67019b7b730730374a9e5a216859ee8f01c11032417ca84f7c
+ checksum: 27e5a1ddaaffc0fafcb19e75976206c53912c3605924c254abda8d566f43d62f1f7d42d3180d94f1288c32a0dd065aa983ae065e4c5860394073c88b23fc33ca
languageName: node
linkType: hard
-"@aws-sdk/signature-v4@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/signature-v4@npm:3.282.0"
+"@aws-sdk/signature-v4@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/signature-v4@npm:3.292.0"
dependencies:
- "@aws-sdk/is-array-buffer": 3.201.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-hex-encoding": 3.201.0
- "@aws-sdk/util-middleware": 3.272.0
- "@aws-sdk/util-uri-escape": 3.201.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/is-array-buffer": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-hex-encoding": 3.292.0
+ "@aws-sdk/util-middleware": 3.292.0
+ "@aws-sdk/util-uri-escape": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: ef5a5f32c7671979c173cded5ca4749f3d4d156c67b7de11eac881a0141b2f43cc6ac5f29facd3e6af2a3883775de64d0c2789b2f7ccb1c6d14f0da5e22a58f0
+ checksum: b45d1a69f2b5ffa266dd0e7abf08740bb08ac10435e558cc3786a5a5b174ceae8868b9892ccaf7039b84c6c0346ac4cf531ddeba1f5dfa97e5c69ad79f4779fd
languageName: node
linkType: hard
-"@aws-sdk/smithy-client@npm:3.279.0":
- version: 3.279.0
- resolution: "@aws-sdk/smithy-client@npm:3.279.0"
+"@aws-sdk/smithy-client@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/smithy-client@npm:3.292.0"
dependencies:
- "@aws-sdk/middleware-stack": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/middleware-stack": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 43d933b714ba7249d7f9f007e6e107d88d34e76db2cf934c43f38b6039699da450227f25bf559a3a6f12f9f62c4dec6dd5c4dda2205e6889e7d530521b879d61
+ checksum: ffee8a9d3b569fa44bf48440df3abce7fd73204004262728af83a8a74764331205b42927f62ac13e68c6d3c23085ffa93ea62a948af2c8936e19b52d225109d1
languageName: node
linkType: hard
-"@aws-sdk/token-providers@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/token-providers@npm:3.282.0"
+"@aws-sdk/token-providers@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/token-providers@npm:3.293.0"
dependencies:
- "@aws-sdk/client-sso-oidc": 3.282.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/shared-ini-file-loader": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/client-sso-oidc": 3.293.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/shared-ini-file-loader": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 064425ec0373269ccc7c4eeb583dd31e79b02af5e4c4ade25258cec59986dd3f8d4d80770d4802b26882dba9a61f66ca9d49d9ade70002417f73bdd46c64bace
+ checksum: 3a12f7f190e34e7341bff58d273706176538662bc1435637f866444233035ac142aabdb9fb7529d75b4d224fd3c739878ebd6a19f5fefb0ee054f63627cc3d2f
languageName: node
linkType: hard
-"@aws-sdk/types@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/types@npm:3.208.0"
- checksum: 3d4eb51720bd20b6811dece5e096ba3b59da842d1c8b2a8e2785e9931d916f41197651da689aa415083e1259e03507b7703ecbbac001b4cdbe68dde2ed94b5cf
- languageName: node
- linkType: hard
-
-"@aws-sdk/types@npm:3.272.0, @aws-sdk/types@npm:^3.208.0, @aws-sdk/types@npm:^3.222.0":
- version: 3.272.0
- resolution: "@aws-sdk/types@npm:3.272.0"
+"@aws-sdk/types@npm:3.292.0, @aws-sdk/types@npm:^3.208.0, @aws-sdk/types@npm:^3.222.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/types@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: c4e4f09dd2672eab4fc15b08006c730c1d07d4b54ae35e03167d99f6110751e36b5332165e03c71c28724037f623f8da87a45a018eb631a1ce86d406f9d08da6
+ checksum: 0c3c62092f3b400da57cd817d73c7e54bf193f649a508fed550bd927e0307b4f2b873036f8df9977e9f7bf2bcfc4a1233c6f662dcaeea4e049586bea93003cb7
languageName: node
linkType: hard
-"@aws-sdk/url-parser@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/url-parser@npm:3.272.0"
+"@aws-sdk/url-parser@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/url-parser@npm:3.292.0"
dependencies:
- "@aws-sdk/querystring-parser": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/querystring-parser": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 4a66e733b336b0e28eceef89271f255dcd7079cfa8ba1c854e6c147ced211242e00016e3f22752e5ea3e49b35457568c5ae8df574f729d6e60cd1f5054f5a57d
+ checksum: 16ce1861c6afe5fe3085f8a9a85fe0b83f870af30b8f75e69a6eccac7f66978461d4753e1ebdc6b3ce34d84bb2df10c4775843a9817d86af521ac350c19f6a30
languageName: node
linkType: hard
-"@aws-sdk/util-arn-parser@npm:3.208.0, @aws-sdk/util-arn-parser@npm:^3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/util-arn-parser@npm:3.208.0"
+"@aws-sdk/util-arn-parser@npm:3.292.0, @aws-sdk/util-arn-parser@npm:^3.208.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-arn-parser@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: 1e1793adc0c53801b9fd7ccb7e94169dcd984047533c28897aea2af4c4fa02cbc2cd1b5d9b6f34eaf6b9aaa0aba27f927c8e2a58a6b4bb06888cfa68d66b6b2d
+ checksum: 50bd76e561b035ae1af22a396a665cf9db82c46177e23a8d023a197560365a1e33763782401f454c3de58f0ae9dfc2b88599389f20084da8c046993b7171e2a9
languageName: node
linkType: hard
-"@aws-sdk/util-base64@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/util-base64@npm:3.208.0"
+"@aws-sdk/util-base64@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-base64@npm:3.292.0"
dependencies:
- "@aws-sdk/util-buffer-from": 3.208.0
+ "@aws-sdk/util-buffer-from": 3.292.0
tslib: ^2.3.1
- checksum: 2ccab3453a3a3636f3f1397441574b3adb984e1ba3865030393108327ed7304cf80c9b31d69691e6aba85cfe6a611a881bbb724e544324240763bb4e96630ed9
+ checksum: 4ee530ff15b667963e00fd59202b210a3427f91ab7d88b700bd378b6fa9c9738f4cc106aae9bcf7bf2e9447c84946c73e6ae06d0f42d7bea094954b8c45f3c84
languageName: node
linkType: hard
-"@aws-sdk/util-body-length-browser@npm:3.188.0":
- version: 3.188.0
- resolution: "@aws-sdk/util-body-length-browser@npm:3.188.0"
+"@aws-sdk/util-body-length-browser@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-body-length-browser@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: 1b08bd1e63ec843ee336f51d894c49bf3c4c2f96e50d1711a12f7d0c5b6f7a15b490e366fec55b63e77036002994bac12927b29de2eb9ac91e4f152b1af78e58
+ checksum: 769f8782b0de412a070f13c45885af83b4ee9c1a43051ae26bef236ffb7295ea1aed47fe5494fb820ea603198bf009c7c3b6029d37a4a946b17d248d415811f3
languageName: node
linkType: hard
-"@aws-sdk/util-body-length-node@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/util-body-length-node@npm:3.208.0"
+"@aws-sdk/util-body-length-node@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-body-length-node@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: 986b42b358656dec4e75c231213331c4f01785f9ab17c8b87b6e268b6880818a96117f1785cef9786e6c0f7e2c1332c80e8388a43bfd83e8c7224ad059a72733
+ checksum: c0066444c0734b1207e344b95ff71b9859f1ef3f70749fc813d9d1a1da06a46bdfa364809aebbad69fdb5371f038f06b11e9ec54d534870714869dae88facf4a
languageName: node
linkType: hard
-"@aws-sdk/util-buffer-from@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/util-buffer-from@npm:3.208.0"
+"@aws-sdk/util-buffer-from@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-buffer-from@npm:3.292.0"
dependencies:
- "@aws-sdk/is-array-buffer": 3.201.0
+ "@aws-sdk/is-array-buffer": 3.292.0
tslib: ^2.3.1
- checksum: 00bfa4d4494d3a1eb128e19104994d1aca8b3802e9aa218cecafb1ed3ff2ecf5c946485e06aa97ae312458842b0f31a6484dc945232f7cb0e357ba341cb2e53e
+ checksum: 08e59c3e88bf76ae0149f63101a7a65bed7998f62db4851dfb4cb39b060937c46d6d9a281c4504ce6b816dba33ef64c459e8ffe351388dae3298a661632cf8ea
languageName: node
linkType: hard
-"@aws-sdk/util-config-provider@npm:3.208.0":
- version: 3.208.0
- resolution: "@aws-sdk/util-config-provider@npm:3.208.0"
+"@aws-sdk/util-config-provider@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-config-provider@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: 97b0414b120b4eb53001f3ab2135ee94937e47bd7bd0d0de7c6a7e00a282eaa78cd84be2bfd3e389340f0c0b2f7ba60da9a403f084721970ee55b779ecf7a451
+ checksum: d554881b8690ae2a5b594f276528ede52d02719e2d6bcf13fa9f2eba91d7c711e1fc0822db32f0069b4435c8488cb2d3b009385ca932fcb5f9bebc41a6c40c7e
languageName: node
linkType: hard
-"@aws-sdk/util-defaults-mode-browser@npm:3.279.0":
- version: 3.279.0
- resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.279.0"
+"@aws-sdk/util-defaults-mode-browser@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.292.0"
dependencies:
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/types": 3.292.0
bowser: ^2.11.0
tslib: ^2.3.1
- checksum: 727700ae9c741a24cb8d30991344d778ca5e9ec3ad30364a63f22af8889f03a5fedecad87c76b7022118ab2c6a3dfc48abd530502b7e1f0926bf467081189645
+ checksum: 0f372e3425d81cabafe2dde0e51b4373b05da91f2015108779f50206eb7b758f95aaf6f8fcee64090d3940fbd9d4e8c09c83e040ab1618551069dd3e433a122e
languageName: node
linkType: hard
-"@aws-sdk/util-defaults-mode-node@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/util-defaults-mode-node@npm:3.282.0"
+"@aws-sdk/util-defaults-mode-node@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-defaults-mode-node@npm:3.292.0"
dependencies:
- "@aws-sdk/config-resolver": 3.282.0
- "@aws-sdk/credential-provider-imds": 3.272.0
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/property-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/config-resolver": 3.292.0
+ "@aws-sdk/credential-provider-imds": 3.292.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/property-provider": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: 56086b64a65f9999923bbba56c87ecdb886cc729d32683107ae3dd8c9077b6aceecdf2acfc934220522883282f03dd6e37690d242a2d63fee3ec7f3db39cecb7
+ checksum: c808df5777e0c0ae2e6941ef63bc3b54bba4ff70c58a6b0f2438f668c3b6e15be0576cdb9f63a093e781ab42232b151eb4ea5375025aa841d34315680b11c0df
languageName: node
linkType: hard
-"@aws-sdk/util-endpoints@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/util-endpoints@npm:3.272.0"
+"@aws-sdk/util-endpoints@npm:3.293.0":
+ version: 3.293.0
+ resolution: "@aws-sdk/util-endpoints@npm:3.293.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: d701e0245930df2000974f9d7c8398fde65924fe5aaa72f2c314fa40a8842e1868a6e285aa78479f741e40b8be54060a4607c9b5b3ac0386839a45df8df238f2
+ checksum: 801602e9b4317cb1250e626167525dfe354a790bf243a63de3325f255c5d53a759bd6bd5aa1c35837be2a1960025d02070038747dac7a6909579c33c0bd1cb1f
languageName: node
linkType: hard
-"@aws-sdk/util-hex-encoding@npm:3.201.0":
- version: 3.201.0
- resolution: "@aws-sdk/util-hex-encoding@npm:3.201.0"
+"@aws-sdk/util-hex-encoding@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-hex-encoding@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: a27f3365dfb1e6ece79ea34fd6e2c4540eb0084536d7300ff0ff42a7334ddf07f21958c6cfd0bbeb71361ee408e16deae2c82b7c7378b048b8e81a52c75f190a
+ checksum: 5940aa80509395957c08dc59da57727af09bec93f609a7083da4f2469353bc67a52823f9c13d5f9affd4eac59a38e3d24c1d79893fb46db4b9d7c3008e2a9f76
languageName: node
linkType: hard
@@ -1497,93 +1573,88 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-middleware@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/util-middleware@npm:3.272.0"
+"@aws-sdk/util-middleware@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-middleware@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: e9a0b55317c474d3eecd65765443eff68f5130ac6f982a41450e0cb949169ff2cf13273282337f2067dfdb5cc7d25137b3bd2fa5f5228cfe541003cf387a6101
+ checksum: b49ee36c77d0996f3a7636bdec6685033eebf6385b546d867bd2503747334a67e7d9adc59842f492c269ab8838c38812d0d7d5b7ececc19988c268f33a3bd072
languageName: node
linkType: hard
-"@aws-sdk/util-retry@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/util-retry@npm:3.272.0"
+"@aws-sdk/util-retry@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-retry@npm:3.292.0"
dependencies:
- "@aws-sdk/service-error-classification": 3.272.0
+ "@aws-sdk/service-error-classification": 3.292.0
tslib: ^2.3.1
- checksum: 7449d9b5daef1244a1601c9892bdd57abeb71ee87357e9dac71d53a77b80648b8cd0db1e99749a76e241ab01fce71a753360d0c8e130f6ae6e71a94b462242f0
+ checksum: 6f5d0df53eab52ac9ec8d661ae7c38c7e9b4d57ddaca79524726d6ee98b4e739bd6d0b810c0d3d8aa77ac60ca775d4f803cb5b15d6a262204c18f26ec2924b3c
languageName: node
linkType: hard
-"@aws-sdk/util-stream-browser@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/util-stream-browser@npm:3.282.0"
+"@aws-sdk/util-stream-browser@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-stream-browser@npm:3.292.0"
dependencies:
- "@aws-sdk/fetch-http-handler": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-hex-encoding": 3.201.0
- "@aws-sdk/util-utf8": 3.254.0
+ "@aws-sdk/fetch-http-handler": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-base64": 3.292.0
+ "@aws-sdk/util-hex-encoding": 3.292.0
+ "@aws-sdk/util-utf8": 3.292.0
tslib: ^2.3.1
- checksum: 30dda128249c30052cc7d92fbc08c423d03938c202bd95ffcbeb0b72804da19defe742ca702062fd96803381bb508cedc27b4b4bf4d418175f905849352fdf71
+ checksum: 8525867445ccd5bfc7da0c8728c13ee902184d675a9a85f46d57bec3d26cceced7576b137db4b0ce164133d64c42867092f8961e4ce52ef1ac47b915b019e0ba
languageName: node
linkType: hard
-"@aws-sdk/util-stream-node@npm:3.282.0, @aws-sdk/util-stream-node@npm:^3.208.0":
- version: 3.282.0
- resolution: "@aws-sdk/util-stream-node@npm:3.282.0"
+"@aws-sdk/util-stream-node@npm:3.292.0, @aws-sdk/util-stream-node@npm:^3.208.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-stream-node@npm:3.292.0"
dependencies:
- "@aws-sdk/node-http-handler": 3.282.0
- "@aws-sdk/types": 3.272.0
- "@aws-sdk/util-buffer-from": 3.208.0
+ "@aws-sdk/node-http-handler": 3.292.0
+ "@aws-sdk/types": 3.292.0
+ "@aws-sdk/util-buffer-from": 3.292.0
tslib: ^2.3.1
- checksum: 0b19609d0c2608c120e317b6127a49016c90f746e38c300893ee16e276951c294fd4fef8dbee42978e655f34c2c56676e8def637fdb5a3f9284c475c73a67f62
+ checksum: d185622ec8a804235ec3f9c25ad275d0c38077427fa1b36cc9702b777d7da71b54b12235cbcdfd014e2d1f6cbb315370ac32480a9ed8dc1efcd6ee27ed577def
languageName: node
linkType: hard
-"@aws-sdk/util-uri-escape@npm:3.201.0":
- version: 3.201.0
- resolution: "@aws-sdk/util-uri-escape@npm:3.201.0"
+"@aws-sdk/util-uri-escape@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-uri-escape@npm:3.292.0"
dependencies:
- "@aws-sdk/fetch-http-handler": 3.208.0
- "@aws-sdk/types": 3.208.0
- "@aws-sdk/util-base64": 3.208.0
- "@aws-sdk/util-hex-encoding": 3.201.0
- "@aws-sdk/util-utf8-browser": 3.188.0
tslib: ^2.3.1
- checksum: 8bd751459eaab75a9b61801f3484cfa5c4e0133381ace6ec901cb9b92b1fee99beb4ef9c0f87ade59425a882ed3a280255d9b2fd8da6a6286e49efb9af8f0d55
+ checksum: 34cbe5ba5cc2678cfa9d88adb1adab2810f1a7879a105c4a2827a95af8903505190a8fc4d73cfeb3548ae024caf50420e7377120e59bb62018b0c783a9e4fb71
languageName: node
linkType: hard
-"@aws-sdk/util-user-agent-browser@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/util-user-agent-browser@npm:3.282.0"
+"@aws-sdk/util-user-agent-browser@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-user-agent-browser@npm:3.292.0"
dependencies:
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/types": 3.292.0
bowser: ^2.11.0
tslib: ^2.3.1
- checksum: cf751b285e57c4d7a00584ac4eab4c27c5fc6d73dc9d6ed8082d297885b262a27bc0a51b882e57779eb807149c27b4d083e07596b99ae145c9acb46f64edf587
+ checksum: ececf366f8d40101ea0a72d2791ba0ac6cf4c820263567eb074f4dc7aafc03c8e2152bc05ccf9b0a7c10a50578366d8ec2c42987f9b565f0fb14b33d7dd792a9
languageName: node
linkType: hard
-"@aws-sdk/util-user-agent-node@npm:3.282.0":
- version: 3.282.0
- resolution: "@aws-sdk/util-user-agent-node@npm:3.282.0"
+"@aws-sdk/util-user-agent-node@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-user-agent-node@npm:3.292.0"
dependencies:
- "@aws-sdk/node-config-provider": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/node-config-provider": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
peerDependencies:
aws-crt: ">=1.0.0"
peerDependenciesMeta:
aws-crt:
optional: true
- checksum: b13d7e114610c15d0d4d6137e6b6e2ce2d9b696aec1f3ba60515228b9c59068260fb976a0af2d9166705e00c99408c603abf4ebc65384bcd76abfa9003a4afa4
+ checksum: 7aa660de99967d33527dec9fc11fa5b311ca0121450627b5f96e6be0bc6db1501694f5fbc036773fecd9b107228f615a239628213b9ab9cde3dc28f49ed92b8a
languageName: node
linkType: hard
-"@aws-sdk/util-utf8-browser@npm:3.188.0, @aws-sdk/util-utf8-browser@npm:^3.0.0":
+"@aws-sdk/util-utf8-browser@npm:^3.0.0":
version: 3.188.0
resolution: "@aws-sdk/util-utf8-browser@npm:3.188.0"
dependencies:
@@ -1592,33 +1663,33 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-utf8@npm:3.254.0":
- version: 3.254.0
- resolution: "@aws-sdk/util-utf8@npm:3.254.0"
+"@aws-sdk/util-utf8@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-utf8@npm:3.292.0"
dependencies:
- "@aws-sdk/util-buffer-from": 3.208.0
+ "@aws-sdk/util-buffer-from": 3.292.0
tslib: ^2.3.1
- checksum: e5dfe7565f2de32245a544d1d715d803025bc5522538c0206fa61377f747804d95fc2e5e25976144bb63a6857e360b4286d101e730ab5d39866c60383a47e7d5
+ checksum: 7b0177e9e49bf52f95049ea7bc50e3b3552a1785d5511941ce29239fb35c54fcface18d0f1e859c98275e174efb3ad8d00d151224ebfdd39170dc1ace32236a8
languageName: node
linkType: hard
-"@aws-sdk/util-waiter@npm:3.272.0":
- version: 3.272.0
- resolution: "@aws-sdk/util-waiter@npm:3.272.0"
+"@aws-sdk/util-waiter@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/util-waiter@npm:3.292.0"
dependencies:
- "@aws-sdk/abort-controller": 3.272.0
- "@aws-sdk/types": 3.272.0
+ "@aws-sdk/abort-controller": 3.292.0
+ "@aws-sdk/types": 3.292.0
tslib: ^2.3.1
- checksum: e931a9359dc582db9e5dcd62539572aecff5320ce424e5462c2f8d4a2d83acde07f87fe9ffc83850aaf70eaf17b06b6ffd4554350bab0f0f3a4427d1b7e776c6
+ checksum: eb863d7ceb88830fafc8c76b698912174526a0de42ee3f1b12d5a619a0df9bb00fd7e8d5dfdcc78a6b1deb546d56dc7ca198a9af11e4ad3997c67c622ccde852
languageName: node
linkType: hard
-"@aws-sdk/xml-builder@npm:3.201.0":
- version: 3.201.0
- resolution: "@aws-sdk/xml-builder@npm:3.201.0"
+"@aws-sdk/xml-builder@npm:3.292.0":
+ version: 3.292.0
+ resolution: "@aws-sdk/xml-builder@npm:3.292.0"
dependencies:
tslib: ^2.3.1
- checksum: fd250c2edcf062e79af576fa39d555f624c155540f7bb27da05a400540f3c2ceb89f33841157eda5f4558a0b6c58d2686a105d26f79eeab5790e6b6bfbe18d4a
+ checksum: b3f9a07b7f33eab08b1a1a3c5df5c9c294903171e721ffbbd524580846991ee3a8de0e7b205ef3b2b17696984eb50e0abb576119c125a762a1d86f43f55e383e
languageName: node
linkType: hard
@@ -3593,17 +3664,6 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/catalog-client@npm:^1.3.1":
- version: 1.3.1
- resolution: "@backstage/catalog-client@npm:1.3.1"
- dependencies:
- "@backstage/catalog-model": ^1.2.0
- "@backstage/errors": ^1.1.4
- cross-fetch: ^3.1.5
- checksum: e2e0050d93f509fbaed40d89228ce9af7c9f32372c721d5faea29ef312e488cbfc1426959f39d61790d41406fbd6bc895bed2c3427bbdf6cab6a412f449c2efe
- languageName: node
- linkType: hard
-
"@backstage/catalog-client@workspace:^, @backstage/catalog-client@workspace:packages/catalog-client":
version: 0.0.0-use.local
resolution: "@backstage/catalog-client@workspace:packages/catalog-client"
@@ -3616,22 +3676,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/catalog-model@npm:^1.1.3, @backstage/catalog-model@npm:^1.1.5, @backstage/catalog-model@npm:^1.2.0":
- version: 1.2.0
- resolution: "@backstage/catalog-model@npm:1.2.0"
- dependencies:
- "@backstage/config": ^1.0.6
- "@backstage/errors": ^1.1.4
- "@backstage/types": ^1.0.2
- ajv: ^8.10.0
- json-schema: ^0.4.0
- lodash: ^4.17.21
- uuid: ^8.0.0
- checksum: d4e07e91e501b4ecbc9d0b754518277dd2ed93f22f801740cc539dbcbd905ba8111b1651d20fb725e44d7cd99a96faec6fd56cd51fdf8e1d7f39a6e177f31efa
- languageName: node
- linkType: hard
-
-"@backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model":
+"@backstage/catalog-model@^1.1.5, @backstage/catalog-model@^1.2.0, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model":
version: 0.0.0-use.local
resolution: "@backstage/catalog-model@workspace:packages/catalog-model"
dependencies:
@@ -3678,6 +3723,7 @@ __metadata:
"@backstage/types": "workspace:^"
"@esbuild-kit/cjs-loader": ^2.4.1
"@manypkg/get-packages": ^1.1.3
+ "@octokit/oauth-app": ^4.2.0
"@octokit/request": ^6.0.0
"@pmmmwh/react-refresh-webpack-plugin": ^0.5.7
"@rollup/plugin-commonjs": ^23.0.0
@@ -3846,17 +3892,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/config@npm:^1.0.4, @backstage/config@npm:^1.0.6":
- version: 1.0.6
- resolution: "@backstage/config@npm:1.0.6"
- dependencies:
- "@backstage/types": ^1.0.2
- lodash: ^4.17.21
- checksum: 5cd2b409237091eb523a61c11df49c183ad1548dce90df343c9b0204eec7147508f41c832f931f82783c458ccdcc9d9fb73511cdd373fdb023db67bc738fcc67
- languageName: node
- linkType: hard
-
-"@backstage/config@workspace:^, @backstage/config@workspace:packages/config":
+"@backstage/config@^1.0.6, @backstage/config@workspace:^, @backstage/config@workspace:packages/config":
version: 0.0.0-use.local
resolution: "@backstage/config@workspace:packages/config"
dependencies:
@@ -3902,57 +3938,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/core-components@npm:^0.12.0, @backstage/core-components@npm:^0.12.3, @backstage/core-components@npm:^0.12.4":
- version: 0.12.4
- resolution: "@backstage/core-components@npm:0.12.4"
- dependencies:
- "@backstage/config": ^1.0.6
- "@backstage/core-plugin-api": ^1.4.0
- "@backstage/errors": ^1.1.4
- "@backstage/theme": ^0.2.17
- "@backstage/version-bridge": ^1.0.3
- "@material-table/core": ^3.1.0
- "@material-ui/core": ^4.12.2
- "@material-ui/icons": ^4.9.1
- "@material-ui/lab": 4.0.0-alpha.57
- "@react-hookz/web": ^20.0.0
- "@types/react-sparklines": ^1.7.0
- "@types/react-text-truncate": ^0.14.0
- ansi-regex: ^6.0.1
- classnames: ^2.2.6
- d3-selection: ^3.0.0
- d3-shape: ^3.0.0
- d3-zoom: ^3.0.0
- dagre: ^0.8.5
- history: ^5.0.0
- immer: ^9.0.1
- lodash: ^4.17.21
- pluralize: ^8.0.0
- prop-types: ^15.7.2
- qs: ^6.9.4
- rc-progress: 3.4.1
- react-helmet: 6.1.0
- react-hook-form: ^7.12.2
- react-markdown: ^8.0.0
- react-sparklines: ^1.7.0
- react-syntax-highlighter: ^15.4.5
- react-text-truncate: ^0.19.0
- react-use: ^17.3.2
- react-virtualized-auto-sizer: ^1.0.6
- react-window: ^1.8.6
- remark-gfm: ^3.0.1
- zen-observable: ^0.10.0
- zod: ~3.18.0
- peerDependencies:
- "@types/react": ^16.13.1 || ^17.0.0
- react: ^16.13.1 || ^17.0.0
- react-dom: ^16.13.1 || ^17.0.0
- react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 476160ad54a399e7393bb70fc34fc01b69519431606797fdecc974d5e826315527d8ab71af5dd4d1c8d88bfe797aa37e781fd5fd31d8293c19982704e4f7cfdc
- languageName: node
- linkType: hard
-
-"@backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components":
+"@backstage/core-components@^0.12.3, @backstage/core-components@^0.12.4, @backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components":
version: 0.0.0-use.local
resolution: "@backstage/core-components@workspace:packages/core-components"
dependencies:
@@ -4023,25 +4009,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/core-plugin-api@npm:^1.1.0, @backstage/core-plugin-api@npm:^1.3.0, @backstage/core-plugin-api@npm:^1.4.0":
- version: 1.4.0
- resolution: "@backstage/core-plugin-api@npm:1.4.0"
- dependencies:
- "@backstage/config": ^1.0.6
- "@backstage/types": ^1.0.2
- "@backstage/version-bridge": ^1.0.3
- history: ^5.0.0
- prop-types: ^15.7.2
- zen-observable: ^0.10.0
- peerDependencies:
- "@types/react": ^16.13.1 || ^17.0.0
- react: ^16.13.1 || ^17.0.0
- react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 046d0fcb52b3110d6a926eeaf766486c753c2eeca70f7897f4ded45e0cf7da8591ec7df337433427bc50de7193e7a6d875356a027a8d1733fa07d87509e561a1
- languageName: node
- linkType: hard
-
-"@backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api":
+"@backstage/core-plugin-api@^1.3.0, @backstage/core-plugin-api@^1.4.0, @backstage/core-plugin-api@workspace:^, @backstage/core-plugin-api@workspace:packages/core-plugin-api":
version: 0.0.0-use.local
resolution: "@backstage/core-plugin-api@workspace:packages/core-plugin-api"
dependencies:
@@ -4126,17 +4094,6 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/errors@npm:^1.1.4":
- version: 1.1.4
- resolution: "@backstage/errors@npm:1.1.4"
- dependencies:
- "@backstage/types": ^1.0.2
- cross-fetch: ^3.1.5
- serialize-error: ^8.0.1
- checksum: 1f0915a29fbeeff0e7fb82f1b4858248d99e9fa6a1aec65d617a241fab812f7939ec418ef0751370833753a2ee2c989463c5e26b40d7ea6aa297e5b6aee96584
- languageName: node
- linkType: hard
-
"@backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors":
version: 0.0.0-use.local
resolution: "@backstage/errors@workspace:packages/errors"
@@ -4178,26 +4135,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/integration-react@npm:^1.1.10":
- version: 1.1.10
- resolution: "@backstage/integration-react@npm:1.1.10"
- dependencies:
- "@backstage/config": ^1.0.6
- "@backstage/core-components": ^0.12.4
- "@backstage/core-plugin-api": ^1.4.0
- "@backstage/integration": ^1.4.2
- "@backstage/theme": ^0.2.17
- "@material-ui/core": ^4.12.2
- "@material-ui/icons": ^4.9.1
- "@material-ui/lab": 4.0.0-alpha.57
- react-use: ^17.2.4
- peerDependencies:
- react: ^16.13.1 || ^17.0.0
- checksum: 248e11c74fed7fb6d5fcc9cf7f7d7baffe94a6a4091aff60afc46c797b08a63486baaffe32812c237e29e3cb295d429b1cd740ca704b43b7dc4704a910184716
- languageName: node
- linkType: hard
-
-"@backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react":
+"@backstage/integration-react@^1.1.10, @backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react":
version: 0.0.0-use.local
resolution: "@backstage/integration-react@workspace:packages/integration-react"
dependencies:
@@ -4224,22 +4162,6 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/integration@npm:^1.4.2":
- version: 1.4.2
- resolution: "@backstage/integration@npm:1.4.2"
- dependencies:
- "@backstage/config": ^1.0.6
- "@backstage/errors": ^1.1.4
- "@octokit/auth-app": ^4.0.0
- "@octokit/rest": ^19.0.3
- cross-fetch: ^3.1.5
- git-url-parse: ^13.0.0
- lodash: ^4.17.21
- luxon: ^3.0.0
- checksum: b1fceb1c7d08d1db29529d1ba1d661019e9829dec8a004414fedc5ceec13b7087a1bdc7f4839e8e818f3386dc93aa94d74e8b65f9be75330a28b34305374126c
- languageName: node
- linkType: hard
-
"@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration":
version: 0.0.0-use.local
resolution: "@backstage/integration@workspace:packages/integration"
@@ -5182,6 +5104,7 @@ __metadata:
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
"@backstage/errors": "workspace:^"
+ "@backstage/plugin-catalog-common": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@backstage/types": "workspace:^"
"@types/ldapjs": ^2.2.0
@@ -5205,6 +5128,7 @@ __metadata:
"@backstage/catalog-model": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
+ "@backstage/plugin-catalog-common": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@microsoft/microsoft-graph-types": ^2.6.0
"@types/lodash": ^4.14.151
@@ -5232,6 +5156,7 @@ __metadata:
"@backstage/config": "workspace:^"
"@backstage/integration": "workspace:^"
"@backstage/plugin-catalog-backend": "workspace:^"
+ "@backstage/plugin-catalog-common": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@backstage/types": "workspace:^"
openapi-types: ^12.0.0
@@ -5319,18 +5244,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-catalog-common@npm:^1.0.11, @backstage/plugin-catalog-common@npm:^1.0.8":
- version: 1.0.11
- resolution: "@backstage/plugin-catalog-common@npm:1.0.11"
- dependencies:
- "@backstage/catalog-model": ^1.2.0
- "@backstage/plugin-permission-common": ^0.7.3
- "@backstage/plugin-search-common": ^1.2.1
- checksum: e0e37a96b4d97230c590fc4f1e17f252167a3cbbc79533c7e29a26d3480e82435c57ae6f7952aaf694bd8dc22245410c9fd29853249b1b73ed3a009dd49bce6b
- languageName: node
- linkType: hard
-
-"@backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common":
+"@backstage/plugin-catalog-common@^1.0.10, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common":
version: 0.0.0-use.local
resolution: "@backstage/plugin-catalog-common@workspace:plugins/catalog-common"
dependencies:
@@ -5380,6 +5294,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "@backstage/plugin-catalog-graphql@workspace:plugins/catalog-graphql"
dependencies:
+ "@apollo/client": ^3.0.0
+ "@apollo/server": ^4.0.0
"@backstage/catalog-model": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
@@ -5390,7 +5306,6 @@ __metadata:
"@graphql-codegen/typescript": ^3.0.0
"@graphql-codegen/typescript-resolvers": ^3.0.0
"@graphql-tools/schema": ^9.0.0
- apollo-server: ^3.0.0
graphql: ^16.0.0
graphql-modules: ^2.0.0
graphql-tag: ^2.11.0
@@ -5458,42 +5373,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-catalog-react@npm:^1.2.1, @backstage/plugin-catalog-react@npm:^1.2.4, @backstage/plugin-catalog-react@npm:^1.3.0":
- version: 1.3.0
- resolution: "@backstage/plugin-catalog-react@npm:1.3.0"
- dependencies:
- "@backstage/catalog-client": ^1.3.1
- "@backstage/catalog-model": ^1.2.0
- "@backstage/core-components": ^0.12.4
- "@backstage/core-plugin-api": ^1.4.0
- "@backstage/errors": ^1.1.4
- "@backstage/integration": ^1.4.2
- "@backstage/plugin-catalog-common": ^1.0.11
- "@backstage/plugin-permission-common": ^0.7.3
- "@backstage/plugin-permission-react": ^0.4.10
- "@backstage/theme": ^0.2.17
- "@backstage/types": ^1.0.2
- "@backstage/version-bridge": ^1.0.3
- "@material-ui/core": ^4.12.2
- "@material-ui/icons": ^4.9.1
- "@material-ui/lab": 4.0.0-alpha.57
- classnames: ^2.2.6
- jwt-decode: ^3.1.0
- lodash: ^4.17.21
- material-ui-popup-state: ^1.9.3
- qs: ^6.9.4
- react-use: ^17.2.4
- yaml: ^2.0.0
- zen-observable: ^0.10.0
- peerDependencies:
- "@types/react": ^16.13.1 || ^17.0.0
- react: ^16.13.1 || ^17.0.0
- react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 03cd5a270154c0cde63bd33104d11ba5811690205c697441f207606d961935f5c45ad2a8e17f591c5ac8b294601c1855852bac35ccb30125e2ab6df13daf82d2
- languageName: node
- linkType: hard
-
-"@backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react":
+"@backstage/plugin-catalog-react@^1.2.4, @backstage/plugin-catalog-react@^1.3.0, @backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react":
version: 0.0.0-use.local
resolution: "@backstage/plugin-catalog-react@workspace:plugins/catalog-react"
dependencies:
@@ -6249,6 +6129,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@backstage/plugin-firehydrant@workspace:plugins/firehydrant"
dependencies:
+ "@backstage/catalog-model": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/core-app-api": "workspace:^"
"@backstage/core-components": "workspace:^"
@@ -6630,6 +6511,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@backstage/plugin-graphql-backend@workspace:plugins/graphql-backend"
dependencies:
+ "@apollo/server": ^4.0.0
"@backstage/backend-common": "workspace:^"
"@backstage/cli": "workspace:^"
"@backstage/config": "workspace:^"
@@ -6637,8 +6519,6 @@ __metadata:
"@graphql-tools/schema": ^9.0.0
"@types/express": ^4.17.6
"@types/supertest": ^2.0.8
- apollo-server: ^3.0.0
- apollo-server-express: ^3.0.0
express: ^4.17.1
express-promise-router: ^4.1.0
graphql: ^16.0.0
@@ -6679,30 +6559,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-home@npm:^0.4.30":
- version: 0.4.31
- resolution: "@backstage/plugin-home@npm:0.4.31"
- dependencies:
- "@backstage/catalog-model": ^1.2.0
- "@backstage/config": ^1.0.6
- "@backstage/core-components": ^0.12.4
- "@backstage/core-plugin-api": ^1.4.0
- "@backstage/plugin-catalog-react": ^1.3.0
- "@backstage/theme": ^0.2.17
- "@material-ui/core": ^4.12.2
- "@material-ui/icons": ^4.9.1
- "@material-ui/lab": 4.0.0-alpha.57
- lodash: ^4.17.21
- react-use: ^17.2.4
- peerDependencies:
- "@types/react": ^16.13.1 || ^17.0.0
- react: ^16.13.1 || ^17.0.0
- react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: 2ba5d377713540a4f9ab7083bc1595361678b59c80d57f26f2fe0bd660ec77926a6bfdeb52a2c6179e809e5186360333ae1bb41f51e741c4bdb7fc3edfda60c3
- languageName: node
- linkType: hard
-
-"@backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home":
+"@backstage/plugin-home@^0.4.30, @backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home":
version: 0.0.0-use.local
resolution: "@backstage/plugin-home@workspace:plugins/home"
dependencies:
@@ -7396,20 +7253,6 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-permission-common@npm:^0.7.3":
- version: 0.7.3
- resolution: "@backstage/plugin-permission-common@npm:0.7.3"
- dependencies:
- "@backstage/config": ^1.0.6
- "@backstage/errors": ^1.1.4
- "@backstage/types": ^1.0.2
- cross-fetch: ^3.1.5
- uuid: ^8.0.0
- zod: ~3.18.0
- checksum: b3aa1e4a487ec7c4edd20c60bc216ee54841431e8e932fa9778c72f13dfa369044186f9afbf44316a9017e9bca0ffa774bbec7847711f04557981fb7cd6af080
- languageName: node
- linkType: hard
-
"@backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common":
version: 0.0.0-use.local
resolution: "@backstage/plugin-permission-common@workspace:plugins/permission-common"
@@ -7447,24 +7290,6 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-permission-react@npm:^0.4.10":
- version: 0.4.10
- resolution: "@backstage/plugin-permission-react@npm:0.4.10"
- dependencies:
- "@backstage/config": ^1.0.6
- "@backstage/core-plugin-api": ^1.4.0
- "@backstage/plugin-permission-common": ^0.7.3
- cross-fetch: ^3.1.5
- react-use: ^17.2.4
- swr: ^2.0.0
- peerDependencies:
- "@types/react": ^16.13.1 || ^17.0.0
- react: ^16.13.1 || ^17.0.0
- react-router-dom: 6.0.0-beta.0 || ^6.3.0
- checksum: f7a82648a31a8fe9873492abdbcc524549205e3fd11fe144ab225e6263ce2b2e46abd642e6c370d692d424c51e7c55b9259d8178500f9bfbfc9267d09596843c
- languageName: node
- linkType: hard
-
"@backstage/plugin-permission-react@workspace:^, @backstage/plugin-permission-react@workspace:plugins/permission-react":
version: 0.0.0-use.local
resolution: "@backstage/plugin-permission-react@workspace:plugins/permission-react"
@@ -7739,6 +7564,7 @@ __metadata:
"@backstage/integration": "workspace:^"
"@backstage/plugin-auth-node": "workspace:^"
"@backstage/plugin-catalog-backend": "workspace:^"
+ "@backstage/plugin-catalog-common": "workspace:^"
"@backstage/plugin-catalog-node": "workspace:^"
"@backstage/plugin-scaffolder-common": "workspace:^"
"@backstage/plugin-scaffolder-node": "workspace:^"
@@ -7750,6 +7576,7 @@ __metadata:
"@types/express": ^4.17.6
"@types/fs-extra": ^9.0.1
"@types/git-url-parse": ^9.0.0
+ "@types/luxon": ^3.0.0
"@types/mock-fs": ^4.13.0
"@types/nunjucks": ^3.1.4
"@types/supertest": ^2.0.8
@@ -7784,6 +7611,7 @@ __metadata:
supertest: ^6.1.3
uuid: ^8.2.0
vm2: ^3.9.11
+ wait-for-expect: ^3.0.2
winston: ^3.2.1
yaml: ^2.0.0
zen-observable: ^0.10.0
@@ -7845,7 +7673,7 @@ __metadata:
"@rjsf/material-ui": ^3.2.1
"@rjsf/material-ui-v5": "npm:@rjsf/material-ui@5.1.0"
"@rjsf/utils": 5.1.0
- "@rjsf/validator-ajv8": 5.1.0
+ "@rjsf/validator-ajv8": 5.3.0
"@testing-library/jest-dom": ^5.10.1
"@testing-library/react": ^12.1.3
"@testing-library/react-hooks": ^8.0.0
@@ -7907,7 +7735,7 @@ __metadata:
"@rjsf/core": ^3.2.1
"@rjsf/material-ui": ^3.2.1
"@rjsf/utils": 5.1.0
- "@rjsf/validator-ajv8": 5.1.0
+ "@rjsf/validator-ajv8": 5.3.0
"@testing-library/jest-dom": ^5.10.1
"@testing-library/react": ^12.1.3
"@testing-library/react-hooks": ^8.0.0
@@ -8028,16 +7856,6 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/plugin-search-common@npm:^1.2.1":
- version: 1.2.1
- resolution: "@backstage/plugin-search-common@npm:1.2.1"
- dependencies:
- "@backstage/plugin-permission-common": ^0.7.3
- "@backstage/types": ^1.0.2
- checksum: ebeacfd26dccd906e1d72f8b2df4a585294e31c6759aaabe0de245f0d93dfc1e0f44b8359e951116c619a7700bf71d22dad901c9fbd6dfb79b9385832989fe00
- languageName: node
- linkType: hard
-
"@backstage/plugin-search-common@workspace:^, @backstage/plugin-search-common@workspace:plugins/search-common":
version: 0.0.0-use.local
resolution: "@backstage/plugin-search-common@workspace:plugins/search-common"
@@ -8538,6 +8356,7 @@ __metadata:
resolution: "@backstage/plugin-techdocs-backend@workspace:plugins/techdocs-backend"
dependencies:
"@backstage/backend-common": "workspace:^"
+ "@backstage/backend-plugin-api": "workspace:^"
"@backstage/backend-test-utils": "workspace:^"
"@backstage/catalog-client": "workspace:^"
"@backstage/catalog-model": "workspace:^"
@@ -8996,16 +8815,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/theme@npm:^0.2.16, @backstage/theme@npm:^0.2.17":
- version: 0.2.17
- resolution: "@backstage/theme@npm:0.2.17"
- dependencies:
- "@material-ui/core": ^4.12.2
- checksum: 4be1d9bf2c3fce611a75f3b5b80f91365dcb67b8e5a417f9c760ffbc9c6f3dd9c243082347278569ad343cf017b76ebaf2143eb9aebfa07a58513c38dbbca97e
- languageName: node
- linkType: hard
-
-"@backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme":
+"@backstage/theme@^0.2.16, @backstage/theme@^0.2.17, @backstage/theme@workspace:^, @backstage/theme@workspace:packages/theme":
version: 0.0.0-use.local
resolution: "@backstage/theme@workspace:packages/theme"
dependencies:
@@ -9014,7 +8824,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/types@^1.0.1, @backstage/types@^1.0.2, @backstage/types@workspace:^, @backstage/types@workspace:packages/types":
+"@backstage/types@^1.0.2, @backstage/types@workspace:^, @backstage/types@workspace:packages/types":
version: 0.0.0-use.local
resolution: "@backstage/types@workspace:packages/types"
dependencies:
@@ -9025,7 +8835,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@backstage/version-bridge@^1.0.2, @backstage/version-bridge@^1.0.3, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge":
+"@backstage/version-bridge@^1.0.3, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge":
version: 0.0.0-use.local
resolution: "@backstage/version-bridge@workspace:packages/version-bridge"
dependencies:
@@ -9598,9 +9408,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/android-arm64@npm:0.17.11"
+"@esbuild/android-arm64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/android-arm64@npm:0.17.12"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
@@ -9619,9 +9429,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-arm@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/android-arm@npm:0.17.11"
+"@esbuild/android-arm@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/android-arm@npm:0.17.12"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
@@ -9633,9 +9443,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/android-x64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/android-x64@npm:0.17.11"
+"@esbuild/android-x64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/android-x64@npm:0.17.12"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
@@ -9647,9 +9457,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-arm64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/darwin-arm64@npm:0.17.11"
+"@esbuild/darwin-arm64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/darwin-arm64@npm:0.17.12"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
@@ -9661,9 +9471,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/darwin-x64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/darwin-x64@npm:0.17.11"
+"@esbuild/darwin-x64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/darwin-x64@npm:0.17.12"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
@@ -9675,9 +9485,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-arm64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/freebsd-arm64@npm:0.17.11"
+"@esbuild/freebsd-arm64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/freebsd-arm64@npm:0.17.12"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
@@ -9689,9 +9499,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/freebsd-x64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/freebsd-x64@npm:0.17.11"
+"@esbuild/freebsd-x64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/freebsd-x64@npm:0.17.12"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
@@ -9703,9 +9513,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-arm64@npm:0.17.11"
+"@esbuild/linux-arm64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-arm64@npm:0.17.12"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
@@ -9717,9 +9527,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-arm@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-arm@npm:0.17.11"
+"@esbuild/linux-arm@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-arm@npm:0.17.12"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
@@ -9731,9 +9541,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ia32@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-ia32@npm:0.17.11"
+"@esbuild/linux-ia32@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-ia32@npm:0.17.12"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
@@ -9752,9 +9562,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-loong64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-loong64@npm:0.17.11"
+"@esbuild/linux-loong64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-loong64@npm:0.17.12"
conditions: os=linux & cpu=loong64
languageName: node
linkType: hard
@@ -9766,9 +9576,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-mips64el@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-mips64el@npm:0.17.11"
+"@esbuild/linux-mips64el@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-mips64el@npm:0.17.12"
conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
@@ -9780,9 +9590,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-ppc64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-ppc64@npm:0.17.11"
+"@esbuild/linux-ppc64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-ppc64@npm:0.17.12"
conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
@@ -9794,9 +9604,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-riscv64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-riscv64@npm:0.17.11"
+"@esbuild/linux-riscv64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-riscv64@npm:0.17.12"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
@@ -9808,9 +9618,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-s390x@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-s390x@npm:0.17.11"
+"@esbuild/linux-s390x@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-s390x@npm:0.17.12"
conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
@@ -9822,9 +9632,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/linux-x64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/linux-x64@npm:0.17.11"
+"@esbuild/linux-x64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/linux-x64@npm:0.17.12"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
@@ -9836,9 +9646,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/netbsd-x64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/netbsd-x64@npm:0.17.11"
+"@esbuild/netbsd-x64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/netbsd-x64@npm:0.17.12"
conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
@@ -9850,9 +9660,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/openbsd-x64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/openbsd-x64@npm:0.17.11"
+"@esbuild/openbsd-x64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/openbsd-x64@npm:0.17.12"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
@@ -9864,9 +9674,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/sunos-x64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/sunos-x64@npm:0.17.11"
+"@esbuild/sunos-x64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/sunos-x64@npm:0.17.12"
conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
@@ -9878,9 +9688,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-arm64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/win32-arm64@npm:0.17.11"
+"@esbuild/win32-arm64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/win32-arm64@npm:0.17.12"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
@@ -9892,9 +9702,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-ia32@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/win32-ia32@npm:0.17.11"
+"@esbuild/win32-ia32@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/win32-ia32@npm:0.17.12"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
@@ -9906,9 +9716,9 @@ __metadata:
languageName: node
linkType: hard
-"@esbuild/win32-x64@npm:0.17.11":
- version: 0.17.11
- resolution: "@esbuild/win32-x64@npm:0.17.11"
+"@esbuild/win32-x64@npm:0.17.12":
+ version: 0.17.12
+ resolution: "@esbuild/win32-x64@npm:0.17.12"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -10021,28 +9831,28 @@ __metadata:
linkType: hard
"@gitbeaker/browser@npm:^35.6.0":
- version: 35.8.0
- resolution: "@gitbeaker/browser@npm:35.8.0"
+ version: 35.8.1
+ resolution: "@gitbeaker/browser@npm:35.8.1"
dependencies:
- "@gitbeaker/core": ^35.8.0
- "@gitbeaker/requester-utils": ^35.8.0
+ "@gitbeaker/core": ^35.8.1
+ "@gitbeaker/requester-utils": ^35.8.1
delay: ^5.0.0
ky: 0.28.7
- checksum: 23fa14d64661108c03a5d141123037aebb68e257d84e26bd8f6241df65a0958eaa79b8b491e0f08159e325cdc3244f79b2426dedcc2354ad106316ea499415ac
+ checksum: 8a76322cfd19da3d691fb08c7ebc79971da02cfb950841578523f20de02cb5e2dcf9741eca048dfa17d6a9620eb4884c9a29d84a230ba9c8d18fc528deb830cd
languageName: node
linkType: hard
-"@gitbeaker/core@npm:^35.6.0, @gitbeaker/core@npm:^35.8.0":
- version: 35.8.0
- resolution: "@gitbeaker/core@npm:35.8.0"
+"@gitbeaker/core@npm:^35.6.0, @gitbeaker/core@npm:^35.8.0, @gitbeaker/core@npm:^35.8.1":
+ version: 35.8.1
+ resolution: "@gitbeaker/core@npm:35.8.1"
dependencies:
- "@gitbeaker/requester-utils": ^35.8.0
+ "@gitbeaker/requester-utils": ^35.8.1
form-data: ^4.0.0
li: ^1.3.0
mime: ^3.0.0
query-string: ^7.0.0
xcase: ^2.0.1
- checksum: b894e1ac86dc8ac85f2db51d83d392899c10bb555b2448900f502ffeb49d9f36c1063c7151128ca96951ac472c11be6320584c4bec873501e96607bd7c25a37b
+ checksum: 8fc7b8d32a2162b70fd8e8ec4e019a3654da3fd1bcb7204b5030e8c9b4af52f4e7addafcd5503042e31dd4e4e3bdd7f8245dd963c77427d4471ab2e331266cf7
languageName: node
linkType: hard
@@ -10059,14 +9869,14 @@ __metadata:
languageName: node
linkType: hard
-"@gitbeaker/requester-utils@npm:^35.8.0":
- version: 35.8.0
- resolution: "@gitbeaker/requester-utils@npm:35.8.0"
+"@gitbeaker/requester-utils@npm:^35.8.0, @gitbeaker/requester-utils@npm:^35.8.1":
+ version: 35.8.1
+ resolution: "@gitbeaker/requester-utils@npm:35.8.1"
dependencies:
form-data: ^4.0.0
qs: ^6.10.1
xcase: ^2.0.1
- checksum: 6bd49b821fb6f262c6306c06fc4812f41902c864a7d941b0d112381b352f680e50ebd6180840e21a89d761427cb1326d9829b74c98c95bf9fa2a5d53872a400a
+ checksum: c3c94ad90dab481887380f5bcff0416c1e1eee935fc3ca4f12d8db83d85c5f0d47f7f35cee6f2b05491bda99c03fb7eb88b849c986822eae3b1bfc26641ec899
languageName: node
linkType: hard
@@ -10174,8 +9984,8 @@ __metadata:
linkType: hard
"@graphql-codegen/cli@npm:^3.0.0":
- version: 3.2.1
- resolution: "@graphql-codegen/cli@npm:3.2.1"
+ version: 3.2.2
+ resolution: "@graphql-codegen/cli@npm:3.2.2"
dependencies:
"@babel/generator": ^7.18.13
"@babel/template": ^7.18.10
@@ -10196,12 +10006,12 @@ __metadata:
"@whatwg-node/fetch": ^0.8.0
chalk: ^4.1.0
cosmiconfig: ^7.0.0
- cosmiconfig-typescript-loader: ^4.3.0
debounce: ^1.2.0
detect-indent: ^6.0.0
- graphql-config: ^4.4.0
+ graphql-config: ^4.5.0
inquirer: ^8.0.0
is-glob: ^4.0.1
+ jiti: ^1.17.1
json-to-pretty-yaml: ^1.2.2
listr2: ^4.0.5
log-symbols: ^4.0.0
@@ -10209,7 +10019,6 @@ __metadata:
shell-quote: ^1.7.3
string-env-interpolation: ^1.0.1
ts-log: ^2.2.3
- ts-node: ^10.9.1
tslib: ^2.4.0
yaml: ^1.10.0
yargs: ^17.0.0
@@ -10220,7 +10029,7 @@ __metadata:
graphql-code-generator: cjs/bin.js
graphql-codegen: cjs/bin.js
graphql-codegen-esm: esm/bin.js
- checksum: b62e2a3cee866cb006163946272f25ba9cc59bb2d45b7b3df5d1b220096e79183929456a440e5c4980d6a5664d6b14d7870d7f1760eb250b9211f4743d2afad3
+ checksum: b94284ac538a3504f96c7d507c140b7cfee30042209c4230ffc3068f05b6b27c75e1922b31c696363ab43e34e472ed194cc72996bbb10f59991cd2a4a35ff36e
languageName: node
linkType: hard
@@ -10239,18 +10048,18 @@ __metadata:
linkType: hard
"@graphql-codegen/graphql-modules-preset@npm:^3.0.0":
- version: 3.1.0
- resolution: "@graphql-codegen/graphql-modules-preset@npm:3.1.0"
+ version: 3.1.1
+ resolution: "@graphql-codegen/graphql-modules-preset@npm:3.1.1"
dependencies:
"@graphql-codegen/plugin-helpers": ^4.1.0
- "@graphql-codegen/visitor-plugin-common": 3.0.1
+ "@graphql-codegen/visitor-plugin-common": 3.0.2
"@graphql-tools/utils": ^9.0.0
change-case-all: 1.0.15
parse-filepath: ^1.0.2
tslib: ~2.5.0
peerDependencies:
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: cee2e7f8afbc0b0d81592abfc8894422b791f0eca6e878a789de980bf1710a3c726786ade296e653cc83f920b2618aa9f5c9dbb6934ee9da0122b2d10ef5bdb5
+ checksum: f437590afa33ac308c075d214b501404ae2f99888cac8071d05cc2b8c7ceaea5aef8f86bb60e7a9a45902126dc99bd20d77e951c0beef665aaa31ac3c2217e26
languageName: node
linkType: hard
@@ -10284,39 +10093,39 @@ __metadata:
linkType: hard
"@graphql-codegen/typescript-resolvers@npm:^3.0.0":
- version: 3.1.0
- resolution: "@graphql-codegen/typescript-resolvers@npm:3.1.0"
+ version: 3.1.1
+ resolution: "@graphql-codegen/typescript-resolvers@npm:3.1.1"
dependencies:
"@graphql-codegen/plugin-helpers": ^4.1.0
- "@graphql-codegen/typescript": ^3.0.1
- "@graphql-codegen/visitor-plugin-common": 3.0.1
+ "@graphql-codegen/typescript": ^3.0.2
+ "@graphql-codegen/visitor-plugin-common": 3.0.2
"@graphql-tools/utils": ^9.0.0
auto-bind: ~4.0.0
tslib: ~2.5.0
peerDependencies:
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 05888a9dfd1556fe15465a524750c36881334c231297e2e89bccb536450bed61fde2ba182ba4e79e34be846ce2e2439f3f6b31a67e7437f03a4e4ace62e84dcd
+ checksum: 88faa1ca2335096aa9939101f3591007d9fa477836d969a3c622dbf67704505600387a2e9fbb416d61b5ef42dbd79a0d351003037c0756d8d0c7f32c7961e783
languageName: node
linkType: hard
-"@graphql-codegen/typescript@npm:^3.0.0, @graphql-codegen/typescript@npm:^3.0.1":
- version: 3.0.1
- resolution: "@graphql-codegen/typescript@npm:3.0.1"
+"@graphql-codegen/typescript@npm:^3.0.0, @graphql-codegen/typescript@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "@graphql-codegen/typescript@npm:3.0.2"
dependencies:
"@graphql-codegen/plugin-helpers": ^4.1.0
"@graphql-codegen/schema-ast": ^3.0.1
- "@graphql-codegen/visitor-plugin-common": 3.0.1
+ "@graphql-codegen/visitor-plugin-common": 3.0.2
auto-bind: ~4.0.0
tslib: ~2.5.0
peerDependencies:
graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 56a369237971cc4a5a4987628ec0fcceed66ec03a292b3d17b6ffb64279185cd085be351268c55be6b152634c430e885b9c584d816aaa25f067d91c6996c329a
+ checksum: e92dc54804b6ad45fb2499b91cb89743e455a984684e2b1df1b1a8f479a0bbffa5c625be97ccb55874ac8b7316a820b546e9e312b22eda78012acd5c27594a28
languageName: node
linkType: hard
-"@graphql-codegen/visitor-plugin-common@npm:3.0.1":
- version: 3.0.1
- resolution: "@graphql-codegen/visitor-plugin-common@npm:3.0.1"
+"@graphql-codegen/visitor-plugin-common@npm:3.0.2":
+ version: 3.0.2
+ resolution: "@graphql-codegen/visitor-plugin-common@npm:3.0.2"
dependencies:
"@graphql-codegen/plugin-helpers": ^4.1.0
"@graphql-tools/optimize": ^1.3.0
@@ -10330,7 +10139,7 @@ __metadata:
tslib: ~2.5.0
peerDependencies:
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 32bf553f73938581f634b1bbdf8616b1cb30cc85c73d7a8f6088d2a81a957e198c7c278edf6582c1eee7328a4463cea4725316b1743b87b26dc3e9fdd8318648
+ checksum: c8f941df7f8304b722b492ceaf15dddcf33e3a69bc29b54970908ffa12b14d92276958005bd307648e0cdc55f9e243d0fb390862f73a17a26bd50f6484ac42d6
languageName: node
linkType: hard
@@ -10348,20 +10157,6 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/batch-execute@npm:8.5.1":
- version: 8.5.1
- resolution: "@graphql-tools/batch-execute@npm:8.5.1"
- dependencies:
- "@graphql-tools/utils": 8.9.0
- dataloader: 2.1.0
- tslib: ^2.4.0
- value-or-promise: 1.0.11
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
- checksum: 56c3b9bbab7e3402710186df4de5ae716dc31caa16f3dc51434b5167f0a513881afc1cd835f3df8ff0536f80462394dbb12e5246cda999dcee043e9bf37bcbe2
- languageName: node
- linkType: hard
-
"@graphql-tools/batch-execute@npm:8.5.14":
version: 8.5.14
resolution: "@graphql-tools/batch-execute@npm:8.5.14"
@@ -10376,6 +10171,20 @@ __metadata:
languageName: node
linkType: hard
+"@graphql-tools/batch-execute@npm:^8.5.18":
+ version: 8.5.18
+ resolution: "@graphql-tools/batch-execute@npm:8.5.18"
+ dependencies:
+ "@graphql-tools/utils": 9.2.1
+ dataloader: 2.2.2
+ tslib: ^2.4.0
+ value-or-promise: 1.0.12
+ peerDependencies:
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+ checksum: 4a5b5dec502a91bd657a4ddad74965d050d3994c89f036225fac58657b5a275bb374224b20484e3ba773525e75a5552c4a5af7b6d52859ce3a3b32aec2412b6e
+ languageName: node
+ linkType: hard
+
"@graphql-tools/code-file-loader@npm:^7.3.17":
version: 7.3.21
resolution: "@graphql-tools/code-file-loader@npm:7.3.21"
@@ -10391,22 +10200,6 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/delegate@npm:8.8.1":
- version: 8.8.1
- resolution: "@graphql-tools/delegate@npm:8.8.1"
- dependencies:
- "@graphql-tools/batch-execute": 8.5.1
- "@graphql-tools/schema": 8.5.1
- "@graphql-tools/utils": 8.9.0
- dataloader: 2.1.0
- tslib: ~2.4.0
- value-or-promise: 1.0.11
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
- checksum: 5246c63fbb42a22f881a1857bc36fdc6092a4f8c4b0f82d4113eca75aeb676305c42319f65c564816b8c4f4eef2a7b93ee709ff548ff78e5fb3e6c0845ac6d7e
- languageName: node
- linkType: hard
-
"@graphql-tools/delegate@npm:9.0.21":
version: 9.0.21
resolution: "@graphql-tools/delegate@npm:9.0.21"
@@ -10424,6 +10217,23 @@ __metadata:
languageName: node
linkType: hard
+"@graphql-tools/delegate@npm:9.0.28":
+ version: 9.0.28
+ resolution: "@graphql-tools/delegate@npm:9.0.28"
+ dependencies:
+ "@graphql-tools/batch-execute": ^8.5.18
+ "@graphql-tools/executor": ^0.0.15
+ "@graphql-tools/schema": ^9.0.16
+ "@graphql-tools/utils": ^9.2.1
+ dataloader: ^2.2.2
+ tslib: ^2.5.0
+ value-or-promise: ^1.0.12
+ peerDependencies:
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+ checksum: e24c757ea15a2b654268194bbf76188fca6692486d1b019b0ad7d48c264f92b7b681a43c8a8355ace48a29f9dd566c20e8707b6cef281331a813f23ee1c94375
+ languageName: node
+ linkType: hard
+
"@graphql-tools/executor-graphql-ws@npm:0.0.5":
version: 0.0.5
resolution: "@graphql-tools/executor-graphql-ws@npm:0.0.5"
@@ -10489,6 +10299,21 @@ __metadata:
languageName: node
linkType: hard
+"@graphql-tools/executor@npm:^0.0.15":
+ version: 0.0.15
+ resolution: "@graphql-tools/executor@npm:0.0.15"
+ dependencies:
+ "@graphql-tools/utils": 9.2.1
+ "@graphql-typed-document-node/core": 3.1.2
+ "@repeaterjs/repeater": 3.0.4
+ tslib: ^2.4.0
+ value-or-promise: 1.0.12
+ peerDependencies:
+ graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+ checksum: 7a963d6fcd00bd9c2a42f35a33bc9178576a1eeac755ce69981aa1e2c61238953b7ab9c11ffcfc86e49fdcf4fc057698c6f7169d6be580298e286076276b1295
+ languageName: node
+ linkType: hard
+
"@graphql-tools/git-loader@npm:^7.2.13":
version: 7.2.13
resolution: "@graphql-tools/git-loader@npm:7.2.13"
@@ -10608,30 +10433,6 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/merge@npm:8.2.10":
- version: 8.2.10
- resolution: "@graphql-tools/merge@npm:8.2.10"
- dependencies:
- "@graphql-tools/utils": 8.6.9
- tslib: ~2.3.0
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 7059d9f68cfb9b7c04d6024f528e5638fab165e681b3307877a6bad0fc461686595d19375350875bb5f4f7572b21d10272a1e4b08a8af5b6a67950a4a950012b
- languageName: node
- linkType: hard
-
-"@graphql-tools/merge@npm:8.3.1":
- version: 8.3.1
- resolution: "@graphql-tools/merge@npm:8.3.1"
- dependencies:
- "@graphql-tools/utils": 8.9.0
- tslib: ^2.4.0
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
- checksum: 16af6be2249f4f500a4c2f5d3db2e0efd56ad69b5e10499649c6fc979c257af12e131112304a16699654b54daab37a80737e0538478bc45a0053b9bc859a7ac1
- languageName: node
- linkType: hard
-
"@graphql-tools/merge@npm:8.3.14":
version: 8.3.14
resolution: "@graphql-tools/merge@npm:8.3.14"
@@ -10668,20 +10469,6 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/mock@npm:^8.1.2":
- version: 8.6.8
- resolution: "@graphql-tools/mock@npm:8.6.8"
- dependencies:
- "@graphql-tools/schema": 8.3.10
- "@graphql-tools/utils": 8.6.9
- fast-json-stable-stringify: ^2.1.0
- tslib: ~2.3.0
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 594abfbb7766806e07910624d80e5c27cdf15e0b2d1a0eff4336b2d6c63bde3587ae6f7c889374217cb0893d8e9e87f696daf1cf1ce2fdae787dae22b8b4d228
- languageName: node
- linkType: hard
-
"@graphql-tools/optimize@npm:^1.3.0":
version: 1.3.0
resolution: "@graphql-tools/optimize@npm:1.3.0"
@@ -10735,34 +10522,6 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/schema@npm:8.3.10":
- version: 8.3.10
- resolution: "@graphql-tools/schema@npm:8.3.10"
- dependencies:
- "@graphql-tools/merge": 8.2.10
- "@graphql-tools/utils": 8.6.9
- tslib: ~2.3.0
- value-or-promise: 1.0.11
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 8b225f4ae87d3f1d8d9772df605a27dfde069a2372f2af0a1459859c4310c5fef8243c1276c1959e316420f1584d739b9f52c55dd230d2ad177cde1019155b81
- languageName: node
- linkType: hard
-
-"@graphql-tools/schema@npm:8.5.1, @graphql-tools/schema@npm:^8.0.0, @graphql-tools/schema@npm:^8.3.1":
- version: 8.5.1
- resolution: "@graphql-tools/schema@npm:8.5.1"
- dependencies:
- "@graphql-tools/merge": 8.3.1
- "@graphql-tools/utils": 8.9.0
- tslib: ^2.4.0
- value-or-promise: 1.0.11
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
- checksum: 91363cd4371e347af40ef66f7d903b5d4f5998bfaec9214768e6a795136ef6372f9f225e05e18daacd929e23695811f15e791c6cbe082bf5b5d03b16b1f874f8
- languageName: node
- linkType: hard
-
"@graphql-tools/schema@npm:9.0.12":
version: 9.0.12
resolution: "@graphql-tools/schema@npm:9.0.12"
@@ -10791,7 +10550,7 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/schema@npm:^9.0.0":
+"@graphql-tools/schema@npm:9.0.17, @graphql-tools/schema@npm:^9.0.0, @graphql-tools/schema@npm:^9.0.16":
version: 9.0.17
resolution: "@graphql-tools/schema@npm:9.0.17"
dependencies:
@@ -10828,17 +10587,6 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/utils@npm:8.6.9":
- version: 8.6.9
- resolution: "@graphql-tools/utils@npm:8.6.9"
- dependencies:
- tslib: ~2.3.0
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 73b9569a9c2409f86a6a9005f19026cfab6d136bf884dfbff436996a47fb0561ae24d3f6bb2abcfd600197aab85d6dfc177b9a0cbaba23905ba0c7591ef12110
- languageName: node
- linkType: hard
-
"@graphql-tools/utils@npm:8.8.0":
version: 8.8.0
resolution: "@graphql-tools/utils@npm:8.8.0"
@@ -10894,7 +10642,7 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/utils@npm:9.2.1, @graphql-tools/utils@npm:^9.0.0, @graphql-tools/utils@npm:^9.1.1":
+"@graphql-tools/utils@npm:9.2.1, @graphql-tools/utils@npm:^9.0.0, @graphql-tools/utils@npm:^9.1.1, @graphql-tools/utils@npm:^9.2.1":
version: 9.2.1
resolution: "@graphql-tools/utils@npm:9.2.1"
dependencies:
@@ -10921,22 +10669,22 @@ __metadata:
languageName: node
linkType: hard
-"@graphql-tools/wrap@npm:^8.3.1":
- version: 8.5.1
- resolution: "@graphql-tools/wrap@npm:8.5.1"
+"@graphql-tools/wrap@npm:^9.0.0":
+ version: 9.3.8
+ resolution: "@graphql-tools/wrap@npm:9.3.8"
dependencies:
- "@graphql-tools/delegate": 8.8.1
- "@graphql-tools/schema": 8.5.1
- "@graphql-tools/utils": 8.9.0
+ "@graphql-tools/delegate": 9.0.28
+ "@graphql-tools/schema": 9.0.17
+ "@graphql-tools/utils": 9.2.1
tslib: ^2.4.0
- value-or-promise: 1.0.11
+ value-or-promise: 1.0.12
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
- checksum: bc9350015adde545208709584cf1a3c5b4bc3bbfd82062b93b4da253481e366d9f9caad49d7f2f0aaa7fe070167d15b99da7ee76e431c0c6bee815923aafdb29
+ checksum: 1f280b939f1c8c33be8fbd92c0584e9125e30c59ce6f75f20657235d24e5a2c01eb3214eda9ae74d431d9da072cdfa6cedeafdc5b352dd33de439ba42402efcb
languageName: node
linkType: hard
-"@graphql-typed-document-node/core@npm:3.1.1, @graphql-typed-document-node/core@npm:^3.1.0, @graphql-typed-document-node/core@npm:^3.1.1":
+"@graphql-typed-document-node/core@npm:3.1.1":
version: 3.1.1
resolution: "@graphql-typed-document-node/core@npm:3.1.1"
peerDependencies:
@@ -10945,6 +10693,15 @@ __metadata:
languageName: node
linkType: hard
+"@graphql-typed-document-node/core@npm:3.1.2, @graphql-typed-document-node/core@npm:^3.1.0, @graphql-typed-document-node/core@npm:^3.1.1":
+ version: 3.1.2
+ resolution: "@graphql-typed-document-node/core@npm:3.1.2"
+ peerDependencies:
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+ checksum: a61afa025acdabd7833e4f654a5802fc1a526171f81e0c435c8e651050a5a0682499a2c7a51304ceb61fde36cd69fc7975ce5e1b16b9ba7ea474c649f33eea8b
+ languageName: node
+ linkType: hard
+
"@grpc/grpc-js@npm:~1.8.0":
version: 1.8.9
resolution: "@grpc/grpc-js@npm:1.8.9"
@@ -12533,9 +12290,9 @@ __metadata:
languageName: node
linkType: hard
-"@octokit/oauth-app@npm:^4.0.4, @octokit/oauth-app@npm:^4.0.6":
- version: 4.0.6
- resolution: "@octokit/oauth-app@npm:4.0.6"
+"@octokit/oauth-app@npm:^4.0.4, @octokit/oauth-app@npm:^4.0.6, @octokit/oauth-app@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "@octokit/oauth-app@npm:4.2.0"
dependencies:
"@octokit/auth-oauth-app": ^5.0.0
"@octokit/auth-oauth-user": ^2.0.0
@@ -12544,13 +12301,9 @@ __metadata:
"@octokit/oauth-authorization-url": ^5.0.0
"@octokit/oauth-methods": ^2.0.0
"@types/aws-lambda": ^8.10.83
- aws-lambda: ^1.0.7
fromentries: ^1.3.1
universal-user-agent: ^6.0.0
- dependenciesMeta:
- aws-lambda:
- optional: true
- checksum: 0d7ceadda4668748a436f52f6c4ae3160a4a5c81a92592c0a6cfc75b0a065ed480880d8861efcabc6ca41b3ccf753d1c1044782a6c8d5fb481d6e8a0acf6d32e
+ checksum: 6cf5638d27e589daa577653177f2b135c0c346c8f74cc420d9fd0dc0f559a84040073eee147bd555a55bb5756bd0940e6dc4c3a6b3a508a818e3d5bee3837095
languageName: node
linkType: hard
@@ -12934,25 +12687,25 @@ __metadata:
linkType: hard
"@opentelemetry/api@npm:^1.0.1, @opentelemetry/api@npm:^1.3.0":
- version: 1.4.0
- resolution: "@opentelemetry/api@npm:1.4.0"
- checksum: 8dc522194e20d2e8aa6cac155dbce19d3fc9cfac59e953ece1064158c6348ccd9560ee99d2f2381e82c2f8c9a129b57fa7b640027383315504de1fa712b6d7f1
+ version: 1.4.1
+ resolution: "@opentelemetry/api@npm:1.4.1"
+ checksum: e783c40d1a518abf9c4c5d65223237c1392cd9a6c53ac6e2c3ef0c05ff7266e3dfc4fd9874316dae0dcb7a97950878deb513bcbadfaad653d48f0215f2a0911b
languageName: node
linkType: hard
"@oriflame/backstage-plugin-score-card@npm:^0.6.0":
- version: 0.6.2
- resolution: "@oriflame/backstage-plugin-score-card@npm:0.6.2"
+ version: 0.6.3
+ resolution: "@oriflame/backstage-plugin-score-card@npm:0.6.3"
dependencies:
- "@backstage/catalog-model": ^1.1.3
- "@backstage/config": ^1.0.4
- "@backstage/core-components": ^0.12.0
- "@backstage/core-plugin-api": ^1.1.0
- "@backstage/plugin-catalog-common": ^1.0.8
- "@backstage/plugin-catalog-react": ^1.2.1
+ "@backstage/catalog-model": ^1.1.5
+ "@backstage/config": ^1.0.6
+ "@backstage/core-components": ^0.12.3
+ "@backstage/core-plugin-api": ^1.3.0
+ "@backstage/plugin-catalog-common": ^1.0.10
+ "@backstage/plugin-catalog-react": ^1.2.4
"@backstage/theme": ^0.2.16
- "@backstage/types": ^1.0.1
- "@backstage/version-bridge": ^1.0.2
+ "@backstage/types": ^1.0.2
+ "@backstage/version-bridge": ^1.0.3
"@material-ui/core": ^4.12.2
"@material-ui/icons": ^4.11.2
"@material-ui/lab": ^4.0.0-alpha.57
@@ -12960,7 +12713,7 @@ __metadata:
peerDependencies:
react: ^16.13.1 || ^17.0.0
react-dom: ^16.13.1 || ^17.0.0
- checksum: 6c8ca85981fde5af8e3951f0f5fc9c3873c890d286fd29067215246e9b8e9022ceea308c9caa8b0ccfe5380fe5640aaede48c9963a57c3c98f5c3b5feade9aae
+ checksum: cdf57bb0ea42b1ef3699b65e558c0d9f2483555fefd03bc3ff4e4d75524c904d723e4808987e8718eac63ab60da6257af82e7d45c70cd42fc00bb1a4c392578b
languageName: node
linkType: hard
@@ -13152,6 +12905,13 @@ __metadata:
languageName: node
linkType: hard
+"@remix-run/router@npm:1.4.0":
+ version: 1.4.0
+ resolution: "@remix-run/router@npm:1.4.0"
+ checksum: 707dce35a2b8138005cf19e63f6fd3c4da05b4b892e9e9118e8b727c3b95953efe27307ca2df35084044df30fa1fc367cf0bbc98d1ded9020c82e61e6242caaf
+ languageName: node
+ linkType: hard
+
"@repeaterjs/repeater@npm:3.0.4":
version: 3.0.4
resolution: "@repeaterjs/repeater@npm:3.0.4"
@@ -13233,9 +12993,9 @@ __metadata:
languageName: node
linkType: hard
-"@rjsf/validator-ajv8@npm:5.1.0":
- version: 5.1.0
- resolution: "@rjsf/validator-ajv8@npm:5.1.0"
+"@rjsf/validator-ajv8@npm:5.3.0":
+ version: 5.3.0
+ resolution: "@rjsf/validator-ajv8@npm:5.3.0"
dependencies:
ajv: ^8.12.0
ajv-formats: ^2.1.1
@@ -13243,7 +13003,7 @@ __metadata:
lodash-es: ^4.17.15
peerDependencies:
"@rjsf/utils": ^5.0.0
- checksum: 3430a0aea8235deedd306b535ea3a62a9bcdd4dcf0bf1d022fe036041dceb5ca7c147b17ae50a0d25bb7c953729e987d96c68f5220f8fde4b56a89cf3f106a49
+ checksum: 210c2d0066bfa40e523d453eb26dc4fad1f1d34a1efc632061c1c00e90b69697ee88a4ce5e130890dac79253ccf7e31e39c005f504acb3ee7e33962547b1db41
languageName: node
linkType: hard
@@ -13866,90 +13626,90 @@ __metadata:
languageName: node
linkType: hard
-"@swc/core-darwin-arm64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-arm64@npm:1.3.38"
+"@swc/core-darwin-arm64@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-darwin-arm64@npm:1.3.41"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-darwin-x64@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-darwin-x64@npm:1.3.38"
+"@swc/core-darwin-x64@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-darwin-x64@npm:1.3.41"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
-"@swc/core-linux-arm-gnueabihf@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.38"
+"@swc/core-linux-arm-gnueabihf@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.41"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
-"@swc/core-linux-arm64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-gnu@npm:1.3.38"
+"@swc/core-linux-arm64-gnu@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm64-gnu@npm:1.3.41"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-arm64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-arm64-musl@npm:1.3.38"
+"@swc/core-linux-arm64-musl@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-arm64-musl@npm:1.3.41"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-linux-x64-gnu@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-gnu@npm:1.3.38"
+"@swc/core-linux-x64-gnu@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-x64-gnu@npm:1.3.41"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
-"@swc/core-linux-x64-musl@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-linux-x64-musl@npm:1.3.38"
+"@swc/core-linux-x64-musl@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-linux-x64-musl@npm:1.3.41"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
-"@swc/core-win32-arm64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-arm64-msvc@npm:1.3.38"
+"@swc/core-win32-arm64-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-arm64-msvc@npm:1.3.41"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
-"@swc/core-win32-ia32-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-ia32-msvc@npm:1.3.38"
+"@swc/core-win32-ia32-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-ia32-msvc@npm:1.3.41"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
-"@swc/core-win32-x64-msvc@npm:1.3.38":
- version: 1.3.38
- resolution: "@swc/core-win32-x64-msvc@npm:1.3.38"
+"@swc/core-win32-x64-msvc@npm:1.3.41":
+ version: 1.3.41
+ resolution: "@swc/core-win32-x64-msvc@npm:1.3.41"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core@npm:^1.3.9":
- version: 1.3.38
- resolution: "@swc/core@npm:1.3.38"
+ version: 1.3.41
+ resolution: "@swc/core@npm:1.3.41"
dependencies:
- "@swc/core-darwin-arm64": 1.3.38
- "@swc/core-darwin-x64": 1.3.38
- "@swc/core-linux-arm-gnueabihf": 1.3.38
- "@swc/core-linux-arm64-gnu": 1.3.38
- "@swc/core-linux-arm64-musl": 1.3.38
- "@swc/core-linux-x64-gnu": 1.3.38
- "@swc/core-linux-x64-musl": 1.3.38
- "@swc/core-win32-arm64-msvc": 1.3.38
- "@swc/core-win32-ia32-msvc": 1.3.38
- "@swc/core-win32-x64-msvc": 1.3.38
+ "@swc/core-darwin-arm64": 1.3.41
+ "@swc/core-darwin-x64": 1.3.41
+ "@swc/core-linux-arm-gnueabihf": 1.3.41
+ "@swc/core-linux-arm64-gnu": 1.3.41
+ "@swc/core-linux-arm64-musl": 1.3.41
+ "@swc/core-linux-x64-gnu": 1.3.41
+ "@swc/core-linux-x64-musl": 1.3.41
+ "@swc/core-win32-arm64-msvc": 1.3.41
+ "@swc/core-win32-ia32-msvc": 1.3.41
+ "@swc/core-win32-x64-msvc": 1.3.41
dependenciesMeta:
"@swc/core-darwin-arm64":
optional: true
@@ -13971,7 +13731,7 @@ __metadata:
optional: true
"@swc/core-win32-x64-msvc":
optional: true
- checksum: c55d30e57638bcd21f788add8490c3f3e71bfe027aa5a8b153e1b1b9686ecddd6deeaaa6a6b17717c7eab4c1e2a232b465b6755b6c891506fc0d03139badfbf7
+ checksum: e2d2bd2d1821608bfafab66f7b94d31b4ae3f486ad6d18aa30abca961299431a26ab2dfc04a7e614f8b8f6680d9790f0596f43e18d0b794e2802136c1d5e3376
languageName: node
linkType: hard
@@ -14005,18 +13765,18 @@ __metadata:
languageName: node
linkType: hard
-"@tanstack/query-core@npm:4.24.10":
- version: 4.24.10
- resolution: "@tanstack/query-core@npm:4.24.10"
- checksum: 8268b9dca4a2ed39f8575976d8a3e2f839bb6f4fb821dc00ba8e2aeffffe2f73e23344bcc24b9cb6dae9dbfe3ba2b14c76a1e0a38b4064c83beb9aa607fd94bc
+"@tanstack/query-core@npm:4.26.1":
+ version: 4.26.1
+ resolution: "@tanstack/query-core@npm:4.26.1"
+ checksum: c7bc751d7d08ce27dd7262aa75a263808b128902b8f3a5dd1ff9b1dfda6511af965388bcdb7d8130bdf10756c1d583f527ead274b1d3e4f4db29c83260b416b0
languageName: node
linkType: hard
"@tanstack/react-query@npm:^4.1.3":
- version: 4.24.10
- resolution: "@tanstack/react-query@npm:4.24.10"
+ version: 4.26.1
+ resolution: "@tanstack/react-query@npm:4.26.1"
dependencies:
- "@tanstack/query-core": 4.24.10
+ "@tanstack/query-core": 4.26.1
use-sync-external-store: ^1.2.0
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -14027,7 +13787,7 @@ __metadata:
optional: true
react-native:
optional: true
- checksum: 576a2c73e98cf6a3c9584283989383d5ac63b01efe546cc7580ec7b1edf0c0cb8958a3071778cb0af908f5269d45c7516fa388e5f856e37f5b2d3c6110974cbe
+ checksum: 3b43a5acc84841364c08ed7c7d0f495008214f1f39b7fb073a95a53528ce40b4841dbc407070b4c0082d73990277bbcf9bc88df40217e70c226be4931efaa081
languageName: node
linkType: hard
@@ -14054,6 +13814,7 @@ __metadata:
dockerode: ^3.3.1
find-process: ^1.4.5
fs-extra: ^10.0.1
+ global-agent: ^3.0.0
http-proxy: ^1.18.1
nodemon: ^2.0.2
react-dev-utils: ^12.0.0-next.60
@@ -14236,15 +13997,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/accepts@npm:^1.3.5":
- version: 1.3.5
- resolution: "@types/accepts@npm:1.3.5"
- dependencies:
- "@types/node": "*"
- checksum: 590b7580570534a640510c071e09074cf63b5958b237a728f94322567350aea4d239f8a9d897a12b15c856b992ee4d7907e9812bb079886af2c00714e7fb3f60
- languageName: node
- linkType: hard
-
"@types/ansi-regex@npm:^5.0.0":
version: 5.0.0
resolution: "@types/ansi-regex@npm:5.0.0"
@@ -14255,11 +14007,11 @@ __metadata:
linkType: hard
"@types/archiver@npm:^5.1.0, @types/archiver@npm:^5.3.1":
- version: 5.3.1
- resolution: "@types/archiver@npm:5.3.1"
+ version: 5.3.2
+ resolution: "@types/archiver@npm:5.3.2"
dependencies:
- "@types/glob": "*"
- checksum: 1c6babc7f50acf5bf7fa3d5fa76bb68702e4463e6a412d259cdddff611dbbb9832ea4b2f41d675fd95ac1aa8b087daa882423073e41db9e296f14d41f2ea88e6
+ "@types/readdir-glob": "*"
+ checksum: 9db5b4fdc1740fa07d08340ed827598cc6eda97406ac18a06a158670c7124d4120650a3b9cd660e9e39b42f033cf8f052566da32681e8ad91163473df88a3c4c
languageName: node
linkType: hard
@@ -14343,7 +14095,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/body-parser@npm:*, @types/body-parser@npm:1.19.2, @types/body-parser@npm:^1.19.0":
+"@types/body-parser@npm:*, @types/body-parser@npm:^1.19.0":
version: 1.19.2
resolution: "@types/body-parser@npm:1.19.2"
dependencies:
@@ -14514,13 +14266,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/cors@npm:2.8.12":
- version: 2.8.12
- resolution: "@types/cors@npm:2.8.12"
- checksum: 8c45f112c7d1d2d831b4b266f2e6ed33a1887a35dcbfe2a18b28370751fababb7cd045e745ef84a523c33a25932678097bf79afaa367c6cb3fa0daa7a6438257
- languageName: node
- linkType: hard
-
"@types/cors@npm:^2.8.6":
version: 2.8.13
resolution: "@types/cors@npm:2.8.13"
@@ -14703,12 +14448,12 @@ __metadata:
linkType: hard
"@types/dockerode@npm:^3.3.0, @types/dockerode@npm:^3.3.8":
- version: 3.3.14
- resolution: "@types/dockerode@npm:3.3.14"
+ version: 3.3.15
+ resolution: "@types/dockerode@npm:3.3.15"
dependencies:
"@types/docker-modem": "*"
"@types/node": "*"
- checksum: 6a8472622861fb0c97908963a8236d6e439c9feefc845b866326272ad0e5c33f537206fb4633424c5e3c8ec63559cb14bc737e2f88f0fcdf11496a9162d5b139
+ checksum: b8fa13f86c761175a5813eb41fbd1e46d0646f008e5c84738b51c1aa82ce4f3758502efe8c3c583463e7cb7dc77e2faadfff91f4e6274e844e68a0ebf9deeae5
languageName: node
linkType: hard
@@ -14776,7 +14521,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.18, @types/express-serve-static-core@npm:^4.17.31, @types/express-serve-static-core@npm:^4.17.5":
+"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.30, @types/express-serve-static-core@npm:^4.17.31, @types/express-serve-static-core@npm:^4.17.5":
version: 4.17.33
resolution: "@types/express-serve-static-core@npm:4.17.33"
dependencies:
@@ -14787,17 +14532,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/express-serve-static-core@npm:4.17.31":
- version: 4.17.31
- resolution: "@types/express-serve-static-core@npm:4.17.31"
- dependencies:
- "@types/node": "*"
- "@types/qs": "*"
- "@types/range-parser": "*"
- checksum: 009bfbe1070837454a1056aa710d0390ee5fb8c05dfe5a1691cc3e2ca88dc256f80e1ca27cb51a978681631d2f6431bfc9ec352ea46dd0c6eb183d0170bde5df
- languageName: node
- linkType: hard
-
"@types/express-session@npm:^1.17.2":
version: 1.17.6
resolution: "@types/express-session@npm:1.17.6"
@@ -14829,18 +14563,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/express@npm:4.17.14":
- version: 4.17.14
- resolution: "@types/express@npm:4.17.14"
- dependencies:
- "@types/body-parser": "*"
- "@types/express-serve-static-core": ^4.17.18
- "@types/qs": "*"
- "@types/serve-static": "*"
- checksum: 15c1af46d02de834e4a225eccaa9d85c0370fdbb3ed4e1bc2d323d24872309961542b993ae236335aeb3e278630224a6ea002078d39e651d78a3b0356b1eaa79
- languageName: node
- linkType: hard
-
"@types/fs-extra@npm:^9.0.1, @types/fs-extra@npm:^9.0.3, @types/fs-extra@npm:^9.0.5, @types/fs-extra@npm:^9.0.6":
version: 9.0.13
resolution: "@types/fs-extra@npm:9.0.13"
@@ -15336,7 +15058,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/node-fetch@npm:^2.5.0, @types/node-fetch@npm:^2.5.12, @types/node-fetch@npm:^2.5.7":
+"@types/node-fetch@npm:^2.5.0, @types/node-fetch@npm:^2.5.12, @types/node-fetch@npm:^2.5.7, @types/node-fetch@npm:^2.6.1":
version: 2.6.2
resolution: "@types/node-fetch@npm:2.6.2"
dependencies:
@@ -15369,13 +15091,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/node@npm:^10.1.0":
- version: 10.17.60
- resolution: "@types/node@npm:10.17.60"
- checksum: 2cdb3a77d071ba8513e5e8306fa64bf50e3c3302390feeaeff1fd325dd25c8441369715dfc8e3701011a72fed5958c7dfa94eb9239a81b3c286caa4d97db6eef
- languageName: node
- linkType: hard
-
"@types/node@npm:^12.7.1":
version: 12.20.55
resolution: "@types/node@npm:12.20.55"
@@ -15681,6 +15396,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/readdir-glob@npm:*":
+ version: 1.1.0
+ resolution: "@types/readdir-glob@npm:1.1.0"
+ dependencies:
+ "@types/node": "*"
+ checksum: 98cabfac6beddd3aeb3624e05d57b8dd1354431e436e9e795aaf74ddf2f1c23342d7b8df7586cc3d1374ceeee0d7975638fae97cb1739572d8a4067ebebb91d9
+ languageName: node
+ linkType: hard
+
"@types/recharts@npm:^1.8.14, @types/recharts@npm:^1.8.15":
version: 1.8.23
resolution: "@types/recharts@npm:1.8.23"
@@ -15781,11 +15505,11 @@ __metadata:
linkType: hard
"@types/sanitize-html@npm:^2.6.2":
- version: 2.8.1
- resolution: "@types/sanitize-html@npm:2.8.1"
+ version: 2.9.0
+ resolution: "@types/sanitize-html@npm:2.9.0"
dependencies:
htmlparser2: ^8.0.0
- checksum: 9c07d3a9d925e291472f74b097fb179b32659ea01834f728887811e5fc75cf2b17d844e32e97c0e583eba993af86a3f8250c82c8fa3152abf9ff2a8582972906
+ checksum: b60f42b740bbfb1b1434ce8b43925a38ecc608b60aa654fd009d2e22e33f324b61d370768c55bd2fd98e03de08518ffa8911d61606c483526fb931bb8b59d1b0
languageName: node
linkType: hard
@@ -16611,6 +16335,33 @@ __metadata:
languageName: node
linkType: hard
+"@wry/context@npm:^0.7.0":
+ version: 0.7.0
+ resolution: "@wry/context@npm:0.7.0"
+ dependencies:
+ tslib: ^2.3.0
+ checksum: f4ff78023a0b949122037aae766232b7d2284dc415204d22d9ea6d7969ff8f5f29b18128bc9a40e68dc054c8a12b1bf5868a357fdb50c398c447290c3a5b0496
+ languageName: node
+ linkType: hard
+
+"@wry/equality@npm:^0.5.0":
+ version: 0.5.3
+ resolution: "@wry/equality@npm:0.5.3"
+ dependencies:
+ tslib: ^2.3.0
+ checksum: 7ea8ded51462911217183b93cc3ffbb4d18dc02a62d4a79e0d9983463739bf54106aaeb25649bf33168120bd044b61d135018bfcf4fefad8099c13eac9238aa6
+ languageName: node
+ linkType: hard
+
+"@wry/trie@npm:^0.3.0":
+ version: 0.3.2
+ resolution: "@wry/trie@npm:0.3.2"
+ dependencies:
+ tslib: ^2.3.0
+ checksum: 151d06b519e1ff1c3acf6ee6846161b1d7d50bbecd4c48e5cd1b05f9e37c30602aff02e88f20105f6e6c54ae4123f9c4eb7715044d7fd927d4ba4ec3e755cd36
+ languageName: node
+ linkType: hard
+
"@xmldom/xmldom@npm:^0.7.0, @xmldom/xmldom@npm:^0.7.5, @xmldom/xmldom@npm:^0.7.6":
version: 0.7.9
resolution: "@xmldom/xmldom@npm:0.7.9"
@@ -16700,7 +16451,7 @@ __metadata:
languageName: node
linkType: hard
-"accepts@npm:^1.3.5, accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8":
+"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8":
version: 1.3.8
resolution: "accepts@npm:1.3.8"
dependencies:
@@ -17000,137 +16751,6 @@ __metadata:
languageName: node
linkType: hard
-"apollo-datasource@npm:^3.3.2":
- version: 3.3.2
- resolution: "apollo-datasource@npm:3.3.2"
- dependencies:
- "@apollo/utils.keyvaluecache": ^1.0.1
- apollo-server-env: ^4.2.1
- checksum: 70244e792655b357213b92e9dd0e8ca553724857847c9bedb53a1dbf7a92fc0d8b05a60d77203d6c30331599b44c5d7cc5f4d94c934465fa05b146b681ed2293
- languageName: node
- linkType: hard
-
-"apollo-reporting-protobuf@npm:^3.3.1, apollo-reporting-protobuf@npm:^3.4.0":
- version: 3.4.0
- resolution: "apollo-reporting-protobuf@npm:3.4.0"
- dependencies:
- "@apollo/protobufjs": 1.2.6
- checksum: 5bf50e9cecd3c2334cd12e0ebe59be6c4d7b1b9ee443c7d913011ea1b84513f57561fb6c3ceb66083321acb6d1c56f72e2ab0edf378cf742693409eb8dcdc46b
- languageName: node
- linkType: hard
-
-"apollo-server-core@npm:^3.12.0":
- version: 3.12.0
- resolution: "apollo-server-core@npm:3.12.0"
- dependencies:
- "@apollo/utils.keyvaluecache": ^1.0.1
- "@apollo/utils.logger": ^1.0.0
- "@apollo/utils.usagereporting": ^1.0.0
- "@apollographql/apollo-tools": ^0.5.3
- "@apollographql/graphql-playground-html": 1.6.29
- "@graphql-tools/mock": ^8.1.2
- "@graphql-tools/schema": ^8.0.0
- "@josephg/resolvable": ^1.0.0
- apollo-datasource: ^3.3.2
- apollo-reporting-protobuf: ^3.4.0
- apollo-server-env: ^4.2.1
- apollo-server-errors: ^3.3.1
- apollo-server-plugin-base: ^3.7.2
- apollo-server-types: ^3.8.0
- async-retry: ^1.2.1
- fast-json-stable-stringify: ^2.1.0
- graphql-tag: ^2.11.0
- loglevel: ^1.6.8
- lru-cache: ^6.0.0
- node-abort-controller: ^3.0.1
- sha.js: ^2.4.11
- uuid: ^9.0.0
- whatwg-mimetype: ^3.0.0
- peerDependencies:
- graphql: ^15.3.0 || ^16.0.0
- checksum: b7a37a78901d38a330c9df8fe870da3dcf512f43ab60fdf9ab0ba37be03977db5d4b72eabf51a830d2a9dcfb2974d7bfbc5aa8719e3afac113c8bd7222740b8f
- languageName: node
- linkType: hard
-
-"apollo-server-env@npm:^4.2.1":
- version: 4.2.1
- resolution: "apollo-server-env@npm:4.2.1"
- dependencies:
- node-fetch: ^2.6.7
- checksum: 039c7eeed82aff072237f9943629ab24b7c62b97535d756a31178f9e7352187951ee654a377d49d775d2ac221fe024914d9989257ca8a7e65c8e5f438c044f18
- languageName: node
- linkType: hard
-
-"apollo-server-errors@npm:^3.3.1":
- version: 3.3.1
- resolution: "apollo-server-errors@npm:3.3.1"
- peerDependencies:
- graphql: ^15.3.0 || ^16.0.0
- checksum: d09b66e7ac3e2cbc60774280d30118ac4d98f945b5cc1013bb81b9970aae49c0717a550e161fe978d69d7039ec053aeba495890f6eebf452532a2c5e94071a80
- languageName: node
- linkType: hard
-
-"apollo-server-express@npm:^3.0.0, apollo-server-express@npm:^3.12.0":
- version: 3.12.0
- resolution: "apollo-server-express@npm:3.12.0"
- dependencies:
- "@types/accepts": ^1.3.5
- "@types/body-parser": 1.19.2
- "@types/cors": 2.8.12
- "@types/express": 4.17.14
- "@types/express-serve-static-core": 4.17.31
- accepts: ^1.3.5
- apollo-server-core: ^3.12.0
- apollo-server-types: ^3.8.0
- body-parser: ^1.19.0
- cors: ^2.8.5
- parseurl: ^1.3.3
- peerDependencies:
- express: ^4.17.1
- graphql: ^15.3.0 || ^16.0.0
- checksum: bd4bc213f506e2aeb2be961961de51e431f8774344b349e9b02f475714a623703eb62423ad968a8f8b6859919ae0d1912c40cf15a4df24e6f81b4f4c5653e70b
- languageName: node
- linkType: hard
-
-"apollo-server-plugin-base@npm:^3.7.2":
- version: 3.7.2
- resolution: "apollo-server-plugin-base@npm:3.7.2"
- dependencies:
- apollo-server-types: ^3.8.0
- peerDependencies:
- graphql: ^15.3.0 || ^16.0.0
- checksum: d6ea6dbfad8bb82959286eae89878ccccbd09743c3df2b76bf790f470cbf5441ba06dcb6835a25f0bf32f4df05722cce157ae983ce32db4b69de8a72c9949e2e
- languageName: node
- linkType: hard
-
-"apollo-server-types@npm:^3.8.0":
- version: 3.8.0
- resolution: "apollo-server-types@npm:3.8.0"
- dependencies:
- "@apollo/utils.keyvaluecache": ^1.0.1
- "@apollo/utils.logger": ^1.0.0
- apollo-reporting-protobuf: ^3.4.0
- apollo-server-env: ^4.2.1
- peerDependencies:
- graphql: ^15.3.0 || ^16.0.0
- checksum: 20accd42b65ceb95819a1610c410488fbe548ee309227d7fa22fd17dd1205e557091ba9c9a20efa532192098a4193e34eb58fc91d762b55fdf31229ac9fc7133
- languageName: node
- linkType: hard
-
-"apollo-server@npm:^3.0.0":
- version: 3.12.0
- resolution: "apollo-server@npm:3.12.0"
- dependencies:
- "@types/express": 4.17.14
- apollo-server-core: ^3.12.0
- apollo-server-express: ^3.12.0
- express: ^4.17.1
- peerDependencies:
- graphql: ^15.3.0 || ^16.0.0
- checksum: 6f3dade76f202f04a890b2385923a0319a859a0ab48121b1636e22d5eae83afe042d7a0a501aff3d8816e67de4f29f8efa598e350814a40f41d079610dee346e
- languageName: node
- linkType: hard
-
"aproba@npm:^1.0.3":
version: 1.2.0
resolution: "aproba@npm:1.2.0"
@@ -17519,20 +17139,6 @@ __metadata:
languageName: node
linkType: hard
-"aws-lambda@npm:^1.0.7":
- version: 1.0.7
- resolution: "aws-lambda@npm:1.0.7"
- dependencies:
- aws-sdk: ^2.814.0
- commander: ^3.0.2
- js-yaml: ^3.14.1
- watchpack: ^2.0.0-beta.10
- bin:
- lambda: bin/lambda
- checksum: 11316e87b5c4fc36e6bd0495742a3c0ed13befc9527a7b251a58180d141d9afd68b684f37aeb3b53d117d3c2f96747eace31826b683543f1edddc03f392865fd
- languageName: node
- linkType: hard
-
"aws-os-connection@npm:^0.2.0":
version: 0.2.0
resolution: "aws-os-connection@npm:0.2.0"
@@ -17546,25 +17152,25 @@ __metadata:
linkType: hard
"aws-sdk-client-mock-jest@npm:^2.0.0":
- version: 2.1.0
- resolution: "aws-sdk-client-mock-jest@npm:2.1.0"
+ version: 2.1.1
+ resolution: "aws-sdk-client-mock-jest@npm:2.1.1"
dependencies:
"@types/jest": ^28.1.3
tslib: ^2.1.0
peerDependencies:
- aws-sdk-client-mock: 2.1.0
- checksum: 567e2084d71c90f71e5bfa82f2a4b592fec5ea818cb4edf3586f922454cee4fec1403d4161d3d91a3db3ccebe1db5babe069754d76204c7f6986ab71bafb1084
+ aws-sdk-client-mock: 2.1.1
+ checksum: 4b5ca96bbcaa60ea3ea947821c7ff1f073c1342a12ce5c778b70832bdcc6106e10591e98e09b22c5b0d83dfc6fe554e8a08d5df5cf067a7eaadb804087b891ed
languageName: node
linkType: hard
"aws-sdk-client-mock@npm:^2.0.0":
- version: 2.1.0
- resolution: "aws-sdk-client-mock@npm:2.1.0"
+ version: 2.1.1
+ resolution: "aws-sdk-client-mock@npm:2.1.1"
dependencies:
"@types/sinon": ^10.0.10
sinon: ^14.0.2
tslib: ^2.1.0
- checksum: c6179c5528709ff1ad7e7308d03c74850fb5b973ca3d63836ca9973ca70de0c3dd7846fcbd3fd02bf4dabe6cae1095683b38c4202878458c8369e7e837962cd2
+ checksum: 8330b88cdaeae401390ece094344ed727db0b007369d862a88afc0a29249828b95cce809faa0c2289c1af99528af0e765b4aba8156b948d01a12299390195cea
languageName: node
linkType: hard
@@ -17579,7 +17185,7 @@ __metadata:
languageName: node
linkType: hard
-"aws-sdk@npm:^2.1231.0, aws-sdk@npm:^2.814.0, aws-sdk@npm:^2.840.0, aws-sdk@npm:^2.948.0":
+"aws-sdk@npm:^2.1231.0, aws-sdk@npm:^2.840.0, aws-sdk@npm:^2.948.0":
version: 2.1279.0
resolution: "aws-sdk@npm:2.1279.0"
dependencies:
@@ -18127,7 +17733,7 @@ __metadata:
languageName: node
linkType: hard
-"body-parser@npm:1.20.1, body-parser@npm:^1.19.0":
+"body-parser@npm:1.20.1":
version: 1.20.1
resolution: "body-parser@npm:1.20.1"
dependencies:
@@ -18147,6 +17753,26 @@ __metadata:
languageName: node
linkType: hard
+"body-parser@npm:^1.20.0":
+ version: 1.20.2
+ resolution: "body-parser@npm:1.20.2"
+ dependencies:
+ bytes: 3.1.2
+ content-type: ~1.0.5
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ on-finished: 2.4.1
+ qs: 6.11.0
+ raw-body: 2.5.2
+ type-is: ~1.6.18
+ unpipe: 1.0.0
+ checksum: 14d37ec638ab5c93f6099ecaed7f28f890d222c650c69306872e00b9efa081ff6c596cd9afb9930656aae4d6c4e1c17537bea12bb73c87a217cb3cfea8896737
+ languageName: node
+ linkType: hard
+
"bonjour-service@npm:^1.0.11":
version: 1.0.11
resolution: "bonjour-service@npm:1.0.11"
@@ -18749,6 +18375,13 @@ __metadata:
languageName: node
linkType: hard
+"chalk@npm:5.2.0":
+ version: 5.2.0
+ resolution: "chalk@npm:5.2.0"
+ checksum: 03d8060277de6cf2fd567dc25fcf770593eb5bb85f460ce443e49255a30ff1242edd0c90a06a03803b0466ff0687a939b41db1757bec987113e83de89a003caa
+ languageName: node
+ linkType: hard
+
"chalk@npm:^3.0.0":
version: 3.0.0
resolution: "chalk@npm:3.0.0"
@@ -19430,10 +19063,10 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:*, commander@npm:^9.1.0, commander@npm:^9.4.1, commander@npm:^9.5.0":
- version: 9.5.0
- resolution: "commander@npm:9.5.0"
- checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade
+"commander@npm:*, commander@npm:^10.0.0":
+ version: 10.0.0
+ resolution: "commander@npm:10.0.0"
+ checksum: 9f6495651f878213005ac744dd87a85fa3d9f2b8b90d1c19d0866d666bda7f735adfd7c2f10dfff345782e2f80ea258f98bb4efcef58e4e502f25f883940acfd
languageName: node
linkType: hard
@@ -19451,20 +19084,13 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:^2.20.0, commander@npm:^2.20.3, commander@npm:^2.7.1":
+"commander@npm:^2.20.0, commander@npm:^2.7.1":
version: 2.20.3
resolution: "commander@npm:2.20.3"
checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e
languageName: node
linkType: hard
-"commander@npm:^3.0.2":
- version: 3.0.2
- resolution: "commander@npm:3.0.2"
- checksum: 6d14ad030d1904428139487ed31febcb04c1604db2b8d9fae711f60ee6718828dc0e11602249e91c8a97b0e721e9c6d53edbc166bad3cde1596851d59a8f824d
- languageName: node
- linkType: hard
-
"commander@npm:^4.0.0":
version: 4.1.1
resolution: "commander@npm:4.1.1"
@@ -19486,6 +19112,13 @@ __metadata:
languageName: node
linkType: hard
+"commander@npm:^9.1.0, commander@npm:^9.5.0":
+ version: 9.5.0
+ resolution: "commander@npm:9.5.0"
+ checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade
+ languageName: node
+ linkType: hard
+
"common-ancestor-path@npm:^1.0.1":
version: 1.0.1
resolution: "common-ancestor-path@npm:1.0.1"
@@ -19738,10 +19371,10 @@ __metadata:
languageName: node
linkType: hard
-"content-type@npm:~1.0.4":
- version: 1.0.4
- resolution: "content-type@npm:1.0.4"
- checksum: 3d93585fda985d1554eca5ebd251994327608d2e200978fdbfba21c0c679914d5faf266d17027de44b34a72c7b0745b18584ecccaa7e1fdfb6a68ac7114f12e0
+"content-type@npm:~1.0.4, content-type@npm:~1.0.5":
+ version: 1.0.5
+ resolution: "content-type@npm:1.0.5"
+ checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766
languageName: node
linkType: hard
@@ -19847,9 +19480,9 @@ __metadata:
linkType: hard
"core-js@npm:^3.6.5":
- version: 3.28.0
- resolution: "core-js@npm:3.28.0"
- checksum: 3155fd0ec16d0089106b145e9595280a4ea4bde0d7ff26aa14364cd4f1c203baf6620c3025acd284f363d08b9f21104101692766ca9a36ffeee7307bdf3e1881
+ version: 3.29.1
+ resolution: "core-js@npm:3.29.1"
+ checksum: b38446dbfcfd3887b3d4922990da487e2c95044cb4c5717aaf95e786a4c6b218f05c056c7ed6c699169b9794a49fec890e402659d54661fc56965a0eb717e7bd
languageName: node
linkType: hard
@@ -19870,18 +19503,6 @@ __metadata:
languageName: node
linkType: hard
-"cosmiconfig-typescript-loader@npm:^4.3.0":
- version: 4.3.0
- resolution: "cosmiconfig-typescript-loader@npm:4.3.0"
- peerDependencies:
- "@types/node": "*"
- cosmiconfig: ">=7"
- ts-node: ">=10"
- typescript: ">=3"
- checksum: ea61dfd8e112cf2bb18df0ef89280bd3ae3dd5b997b4a9fc22bbabdc02513aadfbc6d4e15e922b6a9a5d987e9dad42286fa38caf77a9b8dcdbe7d4ce1c9db4fb
- languageName: node
- linkType: hard
-
"cosmiconfig@npm:8.0.0":
version: 8.0.0
resolution: "cosmiconfig@npm:8.0.0"
@@ -20004,11 +19625,11 @@ __metadata:
linkType: hard
"cron@npm:^2.0.0":
- version: 2.2.0
- resolution: "cron@npm:2.2.0"
+ version: 2.3.0
+ resolution: "cron@npm:2.3.0"
dependencies:
luxon: ^3.2.1
- checksum: 53905d0f55e052742cf4fed34598a4ebfc311f4f9143c90384225bb4376fa639cd12f485cbf5d3dca00db377bf5117f27a1cae405f15e4745d1f69808e4fb9ac
+ checksum: 70b220f3fc4b6bcd594f7f2c690bbf7a3a03b0e081eb0119f8e3ca21635f2da07d89e038d561d4c0742c8b0dd04977f25e307d0608455ef9f527a556b2da92fc
languageName: node
linkType: hard
@@ -20245,13 +19866,6 @@ __metadata:
languageName: node
linkType: hard
-"cssfilter@npm:0.0.10":
- version: 0.0.10
- resolution: "cssfilter@npm:0.0.10"
- checksum: bc2c52bbb3426c3f2e4832edb6f8573e6cfa65b40b540932762d1e018f0f0157725e2991b77344bbc8266c6bbf4daa2803b0707cfb1bd0877505bf83a68e4b04
- languageName: node
- linkType: hard
-
"cssnano-preset-default@npm:^5.1.7":
version: 5.1.7
resolution: "cssnano-preset-default@npm:5.1.7"
@@ -20702,7 +20316,7 @@ __metadata:
languageName: node
linkType: hard
-"dataloader@npm:^2.0.0":
+"dataloader@npm:2.2.2, dataloader@npm:^2.0.0, dataloader@npm:^2.2.2":
version: 2.2.2
resolution: "dataloader@npm:2.2.2"
checksum: 4dabd247089c29f194e94d5434d504f99156c5c214a03463c20f3f17f40398d7e179edee69a27c16e315519ac8739042a810090087ae26449a0e685156a02c65
@@ -21211,13 +20825,13 @@ __metadata:
linkType: hard
"dockerode@npm:^3.3.1":
- version: 3.3.4
- resolution: "dockerode@npm:3.3.4"
+ version: 3.3.5
+ resolution: "dockerode@npm:3.3.5"
dependencies:
"@balena/dockerignore": ^1.0.2
docker-modem: ^3.0.0
tar-fs: ~2.0.1
- checksum: 6cb4b9d1c42feb3acfa77daf103b070cc412351dc7dc0a1553cc774ccd1be1a1412a87f8aa13c3155c63ec5c61a7cadc833b4248c4d8342814bbf708f795b952
+ checksum: 7f6650422b07fa7ea9d5801f04b1a432634446b5fe37b995b8302b953b64e93abf1bb4596c2fb574ba47aafee685ef2ab959cc86c9654add5a26d09541bbbcc6
languageName: node
linkType: hard
@@ -21524,8 +21138,8 @@ __metadata:
linkType: hard
"elastic-builder@npm:^2.16.0":
- version: 2.17.3
- resolution: "elastic-builder@npm:2.17.3"
+ version: 2.18.1
+ resolution: "elastic-builder@npm:2.18.1"
dependencies:
lodash.has: ^4.5.2
lodash.hasin: ^4.5.2
@@ -21535,7 +21149,7 @@ __metadata:
lodash.isobject: ^3.0.2
lodash.isstring: ^4.0.1
lodash.omit: ^4.5.0
- checksum: b1e47ad4d36e9974a1075e9e4f455e2d120eebc16d9e5c7e7219e89fcb64bcacd3015afddeae479a79f6b4cd92c4528f3e8535c9c9ca8d644286b9bb49635cdc
+ checksum: 54093daadc1fc3666ac8eef0a268267761e92a3fbb524e51936cf944ceeaeb231a269fc8ae9fb902ca41c976c76c0c037da692a34577d705da301ed727bd8e07
languageName: node
linkType: hard
@@ -22037,31 +21651,31 @@ __metadata:
linkType: hard
"esbuild@npm:^0.17.0":
- version: 0.17.11
- resolution: "esbuild@npm:0.17.11"
+ version: 0.17.12
+ resolution: "esbuild@npm:0.17.12"
dependencies:
- "@esbuild/android-arm": 0.17.11
- "@esbuild/android-arm64": 0.17.11
- "@esbuild/android-x64": 0.17.11
- "@esbuild/darwin-arm64": 0.17.11
- "@esbuild/darwin-x64": 0.17.11
- "@esbuild/freebsd-arm64": 0.17.11
- "@esbuild/freebsd-x64": 0.17.11
- "@esbuild/linux-arm": 0.17.11
- "@esbuild/linux-arm64": 0.17.11
- "@esbuild/linux-ia32": 0.17.11
- "@esbuild/linux-loong64": 0.17.11
- "@esbuild/linux-mips64el": 0.17.11
- "@esbuild/linux-ppc64": 0.17.11
- "@esbuild/linux-riscv64": 0.17.11
- "@esbuild/linux-s390x": 0.17.11
- "@esbuild/linux-x64": 0.17.11
- "@esbuild/netbsd-x64": 0.17.11
- "@esbuild/openbsd-x64": 0.17.11
- "@esbuild/sunos-x64": 0.17.11
- "@esbuild/win32-arm64": 0.17.11
- "@esbuild/win32-ia32": 0.17.11
- "@esbuild/win32-x64": 0.17.11
+ "@esbuild/android-arm": 0.17.12
+ "@esbuild/android-arm64": 0.17.12
+ "@esbuild/android-x64": 0.17.12
+ "@esbuild/darwin-arm64": 0.17.12
+ "@esbuild/darwin-x64": 0.17.12
+ "@esbuild/freebsd-arm64": 0.17.12
+ "@esbuild/freebsd-x64": 0.17.12
+ "@esbuild/linux-arm": 0.17.12
+ "@esbuild/linux-arm64": 0.17.12
+ "@esbuild/linux-ia32": 0.17.12
+ "@esbuild/linux-loong64": 0.17.12
+ "@esbuild/linux-mips64el": 0.17.12
+ "@esbuild/linux-ppc64": 0.17.12
+ "@esbuild/linux-riscv64": 0.17.12
+ "@esbuild/linux-s390x": 0.17.12
+ "@esbuild/linux-x64": 0.17.12
+ "@esbuild/netbsd-x64": 0.17.12
+ "@esbuild/openbsd-x64": 0.17.12
+ "@esbuild/sunos-x64": 0.17.12
+ "@esbuild/win32-arm64": 0.17.12
+ "@esbuild/win32-ia32": 0.17.12
+ "@esbuild/win32-x64": 0.17.12
dependenciesMeta:
"@esbuild/android-arm":
optional: true
@@ -22109,7 +21723,7 @@ __metadata:
optional: true
bin:
esbuild: bin/esbuild
- checksum: febf218155513bb9c9c970508c03ec58e0aacfdc23394f425836a09f1da0dae0afa12949274adfd382782eef097f86b2d6b3032293062291f2f471de204f77ec
+ checksum: ea6d33eb1bc6c9e00dcee5e253c7e935251b4801d376661fd9f19a9dcffc27f970078a6f7116d6c78ee825ceff9b974594b0b616bd560ce4d875a951aa92977b
languageName: node
linkType: hard
@@ -22271,13 +21885,13 @@ __metadata:
linkType: hard
"eslint-config-prettier@npm:^8.3.0":
- version: 8.6.0
- resolution: "eslint-config-prettier@npm:8.6.0"
+ version: 8.7.0
+ resolution: "eslint-config-prettier@npm:8.7.0"
peerDependencies:
eslint: ">=7.0.0"
bin:
eslint-config-prettier: bin/cli.js
- checksum: ff0d0dfc839a556355422293428637e8d35693de58dabf8638bf0b6529131a109d0b2ade77521aa6e54573bb842d7d9d322e465dd73dd61c7590fa3834c3fa81
+ checksum: b05bc7f2296ce3e0925c14147849706544870e0382d38af2352d709a6cf8521bdaff2bd8e5021f1780e570775a8ffa1d2bac28b8065d90d43a3f1f98fd26ce52
languageName: node
linkType: hard
@@ -22870,6 +22484,7 @@ __metadata:
"@backstage/plugin-app-backend": "workspace:^"
"@backstage/plugin-catalog-backend": "workspace:^"
"@backstage/plugin-scaffolder-backend": "workspace:^"
+ "@backstage/plugin-techdocs-backend": "workspace:^"
"@backstage/plugin-todo-backend": "workspace:^"
languageName: unknown
linkType: soft
@@ -22978,20 +22593,20 @@ __metadata:
languageName: node
linkType: hard
-"execa@npm:^6.1.0":
- version: 6.1.0
- resolution: "execa@npm:6.1.0"
+"execa@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "execa@npm:7.0.0"
dependencies:
cross-spawn: ^7.0.3
get-stream: ^6.0.1
- human-signals: ^3.0.1
+ human-signals: ^4.3.0
is-stream: ^3.0.0
merge-stream: ^2.0.0
npm-run-path: ^5.1.0
onetime: ^6.0.0
signal-exit: ^3.0.7
strip-final-newline: ^3.0.0
- checksum: 1a4af799839134f5c72eb63d525b87304c1114a63aa71676c91d57ccef2e26f2f53e14c11384ab11c4ec479be1efa83d11c8190e00040355c2c5c3364327fa8e
+ checksum: be7c7b6d1e5473f628e46888b0cf8279da483c1a6000dd494a2059cc26591ded57ba46be1c9bdde1ec895e7eb8b18911174aba425cd971d41d140a9405da9a02
languageName: node
linkType: hard
@@ -24556,9 +24171,9 @@ __metadata:
languageName: node
linkType: hard
-"graphql-config@npm:^4.4.0":
- version: 4.4.0
- resolution: "graphql-config@npm:4.4.0"
+"graphql-config@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "graphql-config@npm:4.5.0"
dependencies:
"@graphql-tools/graphql-file-loader": ^7.3.7
"@graphql-tools/json-file-loader": ^7.3.7
@@ -24567,14 +24182,17 @@ __metadata:
"@graphql-tools/url-loader": ^7.9.7
"@graphql-tools/utils": ^9.0.0
cosmiconfig: 8.0.0
- minimatch: 4.2.1
+ jiti: 1.17.1
+ minimatch: 4.2.3
string-env-interpolation: 1.0.1
tslib: ^2.4.0
peerDependencies:
cosmiconfig-toml-loader: ^1.0.0
- cosmiconfig-typescript-loader: ^4.0.0
graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: 2f8cbb4710a7c0a411074eb843317bc66e5602fdab7eefa9765812d986d4b04fc2d285d3c0811ed0efaef12ea58351676561d704e79880f5848ed970badab500
+ peerDependenciesMeta:
+ cosmiconfig-toml-loader:
+ optional: true
+ checksum: 8ab1a3ce3534598ddac2df213b6af2eecd9ebcca2268d39cc3e87a6e55749483389a6df222e9e0acd638dd2479378a5c8e8d90f980e6a54e700c4c4ae3522123
languageName: node
linkType: hard
@@ -24593,16 +24211,16 @@ __metadata:
linkType: hard
"graphql-modules@npm:^2.0.0":
- version: 2.1.0
- resolution: "graphql-modules@npm:2.1.0"
+ version: 2.1.1
+ resolution: "graphql-modules@npm:2.1.1"
dependencies:
- "@graphql-tools/schema": ^8.3.1
- "@graphql-tools/wrap": ^8.3.1
+ "@graphql-tools/schema": ^9.0.0
+ "@graphql-tools/wrap": ^9.0.0
"@graphql-typed-document-node/core": ^3.1.0
ramda: ^0.28.0
peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
- checksum: a57b63007815a8958ec49ecc14a640d559f8fd164968c123ffc3efdbcf35778d1c99f3570660a1dac4a523c986eeaf0c8834dfe0ed721de5111cedbce0ed6790
+ checksum: 1e916eb85a4bc0ff25040adf35a95caa25001b23e43d5608eb304186041e145893e995f82815e9b4e71322a60bd7f7968583ceb22a5e566ed15b3876c6224448
languageName: node
linkType: hard
@@ -24620,7 +24238,7 @@ __metadata:
languageName: node
linkType: hard
-"graphql-tag@npm:^2.11.0":
+"graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.6":
version: 2.12.6
resolution: "graphql-tag@npm:2.12.6"
dependencies:
@@ -24661,7 +24279,7 @@ __metadata:
languageName: node
linkType: hard
-"graphql-ws@npm:5.11.2, graphql-ws@npm:^5.4.1, graphql-ws@npm:^5.9.0":
+"graphql-ws@npm:5.11.2":
version: 5.11.2
resolution: "graphql-ws@npm:5.11.2"
peerDependencies:
@@ -24670,6 +24288,15 @@ __metadata:
languageName: node
linkType: hard
+"graphql-ws@npm:^5.4.1, graphql-ws@npm:^5.9.0":
+ version: 5.12.0
+ resolution: "graphql-ws@npm:5.12.0"
+ peerDependencies:
+ graphql: ">=0.11 <=16"
+ checksum: 5c683e2d5bdadfcfec0639eda69b8a66ef275e68e64f662bd75da6779a87b34395cbce8e37cb66830a9febca1871f7dc2575e6814f6f6e899904fe72e245f216
+ languageName: node
+ linkType: hard
+
"graphql@npm:^15.0.0 || ^16.0.0, graphql@npm:^16.0.0":
version: 16.6.0
resolution: "graphql@npm:16.6.0"
@@ -25287,10 +24914,10 @@ __metadata:
languageName: node
linkType: hard
-"human-signals@npm:^3.0.1":
- version: 3.0.1
- resolution: "human-signals@npm:3.0.1"
- checksum: f252a7769c8094a5c9dc6772816bdb417b188820b04c8b42d0fc468e03a0ba905b1dd07afabe9385cc83504af1ccc2b985cd1e4aeeeb8e0029896c5af2e6f354
+"human-signals@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "human-signals@npm:4.3.0"
+ checksum: 662b976b1063a8afb8fd7fa50bde6975997e17ea6ceba2aad54aacf1dc239a2cd7d14d27b3ceca0c6288627f4b45c56c2c89618455ff52cd9377c02d6328cd7c
languageName: node
linkType: hard
@@ -26511,8 +26138,8 @@ __metadata:
linkType: hard
"isomorphic-git@npm:^1.8.0":
- version: 1.21.0
- resolution: "isomorphic-git@npm:1.21.0"
+ version: 1.22.0
+ resolution: "isomorphic-git@npm:1.22.0"
dependencies:
async-lock: ^1.1.0
clean-git-ref: ^2.0.1
@@ -26527,7 +26154,7 @@ __metadata:
simple-get: ^4.0.1
bin:
isogit: cli.cjs
- checksum: afbdf98000c586fdcb96f84c054d6ada392b0d2422a7b7baad89e5f5881a79426f8555bdadeebe25202be18bb8eaee3881f8c04b6a289d04b916790bdd5dd5df
+ checksum: 59f1bf6a6f3e3fad2d43ffa992c20fea41c41e041e11422caea2da252e6cb712e6c18bb2878ed5c7e6b37336d4dc967fb54f7335d28a365c062b7c23e4ba07a9
languageName: node
linkType: hard
@@ -27201,6 +26828,24 @@ __metadata:
languageName: node
linkType: hard
+"jiti@npm:1.17.1":
+ version: 1.17.1
+ resolution: "jiti@npm:1.17.1"
+ bin:
+ jiti: bin/jiti.js
+ checksum: 56c6d8488e7e9cc6ee66a0f0d5e18db6669cb12b2e93364f393442289a9bc75a8e8c796249f59015e01c3ebdf9478e2ca8b76c30e29072c678ee00d39de757c7
+ languageName: node
+ linkType: hard
+
+"jiti@npm:^1.17.1":
+ version: 1.17.2
+ resolution: "jiti@npm:1.17.2"
+ bin:
+ jiti: bin/jiti.js
+ checksum: 51941fea3622d1ff80d914ec6ec95ae463ede598a4a2317f1e8ff018823212eba6b9ea1c638c97c18f681870b1c2b9f49fbb13021b7c2415c46c8a3b1910f1e3
+ languageName: node
+ linkType: hard
+
"jju@npm:~1.4.0":
version: 1.4.0
resolution: "jju@npm:1.4.0"
@@ -27302,7 +26947,7 @@ __metadata:
languageName: node
linkType: hard
-"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.1, js-yaml@npm:^3.6.1, js-yaml@npm:^3.8.3":
+"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.6.1, js-yaml@npm:^3.8.3":
version: 3.14.1
resolution: "js-yaml@npm:3.14.1"
dependencies:
@@ -28065,9 +27710,9 @@ __metadata:
linkType: hard
"kafkajs@npm:^2.0.0":
- version: 2.2.3
- resolution: "kafkajs@npm:2.2.3"
- checksum: 30f17de75da852942334b6069c5c515e2531a7b610997f0e4c6088281f16588df45ac920218411d9ae995c09af1f69186ed4d73cbe0e5f1247ec756dd9c7678e
+ version: 2.2.4
+ resolution: "kafkajs@npm:2.2.4"
+ checksum: 83e9e8bc50a09b142f4ff79f6a2bd88ecc21b83bcefe6621ab1716118d624886befb7371731274f67812ce35dd50b53140ff3b49a06e5d9169fe6b164d72fea5
languageName: node
linkType: hard
@@ -28301,10 +27946,10 @@ __metadata:
languageName: node
linkType: hard
-"lilconfig@npm:2.0.6, lilconfig@npm:^2.0.3":
- version: 2.0.6
- resolution: "lilconfig@npm:2.0.6"
- checksum: 40a3cd72f103b1be5975f2ac1850810b61d4053e20ab09be8d3aeddfe042187e1ba70b4651a7e70f95efa1642e7dc8b2ae395b317b7d7753b241b43cef7c0f7d
+"lilconfig@npm:2.1.0, lilconfig@npm:^2.0.3":
+ version: 2.1.0
+ resolution: "lilconfig@npm:2.1.0"
+ checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117
languageName: node
linkType: hard
@@ -28344,25 +27989,25 @@ __metadata:
linkType: hard
"lint-staged@npm:^13.0.0":
- version: 13.1.2
- resolution: "lint-staged@npm:13.1.2"
+ version: 13.2.0
+ resolution: "lint-staged@npm:13.2.0"
dependencies:
+ chalk: 5.2.0
cli-truncate: ^3.1.0
- colorette: ^2.0.19
- commander: ^9.4.1
+ commander: ^10.0.0
debug: ^4.3.4
- execa: ^6.1.0
- lilconfig: 2.0.6
- listr2: ^5.0.5
+ execa: ^7.0.0
+ lilconfig: 2.1.0
+ listr2: ^5.0.7
micromatch: ^4.0.5
normalize-path: ^3.0.0
- object-inspect: ^1.12.2
+ object-inspect: ^1.12.3
pidtree: ^0.6.0
string-argv: ^0.3.1
- yaml: ^2.1.3
+ yaml: ^2.2.1
bin:
lint-staged: bin/lint-staged.js
- checksum: f854ad5c88542b8f06e27f3b4046927a4f3d4a451a04e079526559d819a325762268f65bd2df7156bcc0cb5f531f621c42cdb824b403f537c78305adc9e56a54
+ checksum: dcaa8fbbde567eb8ac27230a18b3a22f30c278c524c0e27cf7d4110d662d5d33ed68a585a2e1b05075ef1c262e853f557a5ae046188b723603246d63e6b9f07b
languageName: node
linkType: hard
@@ -28408,16 +28053,16 @@ __metadata:
languageName: node
linkType: hard
-"listr2@npm:^5.0.5":
- version: 5.0.5
- resolution: "listr2@npm:5.0.5"
+"listr2@npm:^5.0.7":
+ version: 5.0.7
+ resolution: "listr2@npm:5.0.7"
dependencies:
cli-truncate: ^2.1.0
colorette: ^2.0.19
log-update: ^4.0.0
p-map: ^4.0.0
rfdc: ^1.3.0
- rxjs: ^7.5.6
+ rxjs: ^7.8.0
through: ^2.3.8
wrap-ansi: ^7.0.0
peerDependencies:
@@ -28425,7 +28070,7 @@ __metadata:
peerDependenciesMeta:
enquirer:
optional: true
- checksum: 71c44eb648405d2725f248747ef8d5e192dd16938ec81df854c4a7e74ff1b3f4c3149461b1cff31c761bfbdf110f7f2603c9957c908294a1c6db299c9168608c
+ checksum: 5c2cb6ba3f7a5cfd548f89405febe73dc937acb6060227198c05da0ed5d5285a8107c61fcc4e33884e3bbdd447411aff7580af396bd22b6a11047ceab4950fab
languageName: node
linkType: hard
@@ -28866,10 +28511,10 @@ __metadata:
languageName: node
linkType: hard
-"lru-cache@npm:^7.10.1, lru-cache@npm:^7.7.1":
- version: 7.10.1
- resolution: "lru-cache@npm:7.10.1"
- checksum: e8b190d71ed0fcd7b29c71a3e9b01f851c92d1ef8865ff06b5581ca991db1e5e006920ed4da8b56da1910664ed51abfd76c46fb55e82ac252ff6c970ff910d72
+"lru-cache@npm:^7.10.1, lru-cache@npm:^7.14.1, lru-cache@npm:^7.7.1":
+ version: 7.18.3
+ resolution: "lru-cache@npm:7.18.3"
+ checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356
languageName: node
linkType: hard
@@ -29909,12 +29554,12 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:4.2.1":
- version: 4.2.1
- resolution: "minimatch@npm:4.2.1"
+"minimatch@npm:4.2.3":
+ version: 4.2.3
+ resolution: "minimatch@npm:4.2.3"
dependencies:
brace-expansion: ^1.1.7
- checksum: 2b1514e3d0f29a549912f0db7ae7b82c5cab4a8f2dd0369f1c6451a325b3f12b2cf473c95873b6157bb8df183d6cf6db82ff03614b6adaaf1d7e055beccdfd01
+ checksum: 3392388e3ef7de7ae9a3a48d48a27a323934452f4af81b925dfbe85ce2dc07da855e3dbcc69229888be4e5118f6c0b79847d30f3e7c0e0017b25e423c11c0409
languageName: node
linkType: hard
@@ -30432,10 +30077,10 @@ __metadata:
languageName: node
linkType: hard
-"node-abort-controller@npm:^3.0.1":
- version: 3.0.1
- resolution: "node-abort-controller@npm:3.0.1"
- checksum: 2b3d75c65249fea99e8ba22da3a8bc553f034f44dd12f5f4b38b520f718b01c88718c978f0c24c2a460fc01de9a80b567028f547b94440cb47adeacfeb82c2ee
+"node-abort-controller@npm:^3.0.1, node-abort-controller@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "node-abort-controller@npm:3.1.1"
+ checksum: 2c340916af9710328b11c0828223fc65ba320e0d082214a211311bf64c2891028e42ef276b9799188c4ada9e6e1c54cf7a0b7c05dd9d59fcdc8cd633304c8047
languageName: node
linkType: hard
@@ -30981,10 +30626,10 @@ __metadata:
languageName: node
linkType: hard
-"object-inspect@npm:^1.12.2, object-inspect@npm:^1.9.0":
- version: 1.12.2
- resolution: "object-inspect@npm:1.12.2"
- checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2
+"object-inspect@npm:^1.12.2, object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0":
+ version: 1.12.3
+ resolution: "object-inspect@npm:1.12.3"
+ checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db
languageName: node
linkType: hard
@@ -31210,6 +30855,16 @@ __metadata:
languageName: node
linkType: hard
+"optimism@npm:^0.16.1":
+ version: 0.16.2
+ resolution: "optimism@npm:0.16.2"
+ dependencies:
+ "@wry/context": ^0.7.0
+ "@wry/trie": ^0.3.0
+ checksum: a98ed9a0b8ee2b031010222099b60860d52860bf8182889f2695a7cf2185f21aca59020f78e2b47c0ae7697843caa576798d792967314ff59f6aa7c5d9de7f3a
+ languageName: node
+ linkType: hard
+
"optionator@npm:^0.8.1":
version: 0.8.3
resolution: "optionator@npm:0.8.3"
@@ -31642,7 +31297,7 @@ __metadata:
languageName: node
linkType: hard
-"parseurl@npm:^1.3.3, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
+"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3":
version: 1.3.3
resolution: "parseurl@npm:1.3.3"
checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2
@@ -31728,7 +31383,7 @@ __metadata:
languageName: node
linkType: hard
-"passport-oauth2@npm:1.6.1, passport-oauth2@npm:1.x.x, passport-oauth2@npm:^1.1.2, passport-oauth2@npm:^1.4.0, passport-oauth2@npm:^1.6.0, passport-oauth2@npm:^1.6.1":
+"passport-oauth2@npm:1.6.1":
version: 1.6.1
resolution: "passport-oauth2@npm:1.6.1"
dependencies:
@@ -31741,6 +31396,19 @@ __metadata:
languageName: node
linkType: hard
+"passport-oauth2@npm:1.x.x, passport-oauth2@npm:^1.1.2, passport-oauth2@npm:^1.4.0, passport-oauth2@npm:^1.6.0, passport-oauth2@npm:^1.6.1":
+ version: 1.7.0
+ resolution: "passport-oauth2@npm:1.7.0"
+ dependencies:
+ base64url: 3.x.x
+ oauth: 0.9.x
+ passport-strategy: 1.x.x
+ uid2: 0.0.x
+ utils-merge: 1.x.x
+ checksum: 9e93f1f47ad5c22ef119932e03f383b503f692012352f27d2a416cc45ca5448c5a97f726da51753fff9a2ec2b6255ac27f1e68c4b44538530d2a8de682f17d42
+ languageName: node
+ linkType: hard
+
"passport-oauth@npm:1.0.0, passport-oauth@npm:^1.0.0":
version: 1.0.0
resolution: "passport-oauth@npm:1.0.0"
@@ -32050,12 +31718,12 @@ __metadata:
languageName: node
linkType: hard
-"pg-pool@npm:^3.5.2":
- version: 3.5.2
- resolution: "pg-pool@npm:3.5.2"
+"pg-pool@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "pg-pool@npm:3.6.0"
peerDependencies:
pg: ">=8.0"
- checksum: a5d029200257671f0c17ca54b9ab6213e2060e64e5cc792b78edd50ab471a26cd364890d05d546d9296949e079e943821cf2ceb4d488f4e6a6789fb781a628bf
+ checksum: f3fe050fbfe27406369340c4c26efcbe21a388ace085a876453de0ea496a315c38b2dc739ac97d4767a359e911da2ec4810467f72601eeec8ad540e58b27987c
languageName: node
linkType: hard
@@ -32080,13 +31748,13 @@ __metadata:
linkType: hard
"pg@npm:^8.3.0, pg@npm:^8.4.0":
- version: 8.9.0
- resolution: "pg@npm:8.9.0"
+ version: 8.10.0
+ resolution: "pg@npm:8.10.0"
dependencies:
buffer-writer: 2.0.0
packet-reader: 1.0.0
pg-connection-string: ^2.5.0
- pg-pool: ^3.5.2
+ pg-pool: ^3.6.0
pg-protocol: ^1.6.0
pg-types: ^2.1.0
pgpass: 1.x
@@ -32095,7 +31763,7 @@ __metadata:
peerDependenciesMeta:
pg-native:
optional: true
- checksum: dfd158955318f9ffb9428eaada29f3ee98b9eb07e87ed4b56589a19984d109f23bb8f88db78b7d7f870553e5b75ca0d58d0ed55755a8c6aed5df44e038c1d529
+ checksum: c6be78f2e823f2ae3c618c8e54a6622592dd71b556fb665d7eaedcbcc2fa5d210a8bcf519401e72526a65b9d797f19b772f48f29b9d9f31e98dd526fd27d61e0
languageName: node
linkType: hard
@@ -32928,11 +32596,11 @@ __metadata:
linkType: hard
"prom-client@npm:^14.0.1":
- version: 14.1.1
- resolution: "prom-client@npm:14.1.1"
+ version: 14.2.0
+ resolution: "prom-client@npm:14.2.0"
dependencies:
tdigest: ^0.1.1
- checksum: 7ff3e85636b1f0ca590b38ad7c7c5f9998b985c06a1c572ffffc69f052d5b4baf84c9124923e3824c63f78b5e8400081c6472173d04382ca296ebdf36d774a88
+ checksum: d4c04e57616c72643dd02862d0d4bde09cf8869a19d0aef5e7b785e6e27d02439b66cdc165e3492f62d579fa91579183820870cc757a09b99399d2d02f46b9f1
languageName: node
linkType: hard
@@ -33401,7 +33069,7 @@ __metadata:
languageName: node
linkType: hard
-"raw-body@npm:^2.4.1":
+"raw-body@npm:2.5.2, raw-body@npm:^2.4.1":
version: 2.5.2
resolution: "raw-body@npm:2.5.2"
dependencies:
@@ -33789,7 +33457,7 @@ __metadata:
languageName: node
linkType: hard
-"react-router-dom-stable@npm:react-router-dom@^6.3.0, react-router-dom@npm:^6.3.0":
+"react-router-dom-stable@npm:react-router-dom@^6.3.0":
version: 6.8.1
resolution: "react-router-dom@npm:6.8.1"
dependencies:
@@ -33802,6 +33470,19 @@ __metadata:
languageName: node
linkType: hard
+"react-router-dom@npm:^6.3.0":
+ version: 6.9.0
+ resolution: "react-router-dom@npm:6.9.0"
+ dependencies:
+ "@remix-run/router": 1.4.0
+ react-router: 6.9.0
+ peerDependencies:
+ react: ">=16.8"
+ react-dom: ">=16.8"
+ checksum: 4d593491ab8db5611feda70002c62902baebb84d5c1c5e5b6172496f31f91130deee132bf4240dea634a88cb86c76d6da348f15b9cd5e5197be455efd88edf72
+ languageName: node
+ linkType: hard
+
"react-router-stable@npm:react-router@^6.3.0, react-router@npm:6.8.1":
version: 6.8.1
resolution: "react-router@npm:6.8.1"
@@ -33813,6 +33494,17 @@ __metadata:
languageName: node
linkType: hard
+"react-router@npm:6.9.0":
+ version: 6.9.0
+ resolution: "react-router@npm:6.9.0"
+ dependencies:
+ "@remix-run/router": 1.4.0
+ peerDependencies:
+ react: ">=16.8"
+ checksum: b2a5f42e042bee7a7f116ca7817b0e58359e5353d84887c9fe7a633d7490c03b1e0ae37cd01830c2a381e3d1e7d501bb4751e53cc3d491e25f36582d3f6e0546
+ languageName: node
+ linkType: hard
+
"react-side-effect@npm:^2.1.0":
version: 2.1.0
resolution: "react-side-effect@npm:2.1.0"
@@ -34749,6 +34441,13 @@ __metadata:
languageName: node
linkType: hard
+"response-iterator@npm:^0.2.6":
+ version: 0.2.6
+ resolution: "response-iterator@npm:0.2.6"
+ checksum: b0db3c0665a0d698d65512951de9623c086b9c84ce015a76076d4bd0bf733779601d0b41f0931d16ae38132fba29e1ce291c1f8e6550fc32daaa2dc3ab4f338d
+ languageName: node
+ linkType: hard
+
"responselike@npm:^2.0.0":
version: 2.0.0
resolution: "responselike@npm:2.0.0"
@@ -35093,7 +34792,7 @@ __metadata:
languageName: node
linkType: hard
-"rxjs@npm:^7.0.0, rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.5, rxjs@npm:^7.5.6, rxjs@npm:^7.8.0":
+"rxjs@npm:^7.0.0, rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0":
version: 7.8.0
resolution: "rxjs@npm:7.8.0"
dependencies:
@@ -36641,11 +36340,11 @@ __metadata:
linkType: hard
"style-loader@npm:^3.3.1":
- version: 3.3.1
- resolution: "style-loader@npm:3.3.1"
+ version: 3.3.2
+ resolution: "style-loader@npm:3.3.2"
peerDependencies:
webpack: ^5.0.0
- checksum: 470feef680f59e2fce4d6601b5c55b88c01ad8d1dd693c528ffd591ff5fd7c01a4eff3bdbe62f26f847d6bd2430c9ab594be23307cfe7a3446ab236683f0d066
+ checksum: 5ee5ce2dc885369eccb55d429376e83d02570d473ac5edeb69fd65ee894847f1e51429cf078351f617bd04516ece8a1dd967f9f40464bd8fa76d903c6b2a6f08
languageName: node
linkType: hard
@@ -36935,6 +36634,13 @@ __metadata:
languageName: node
linkType: hard
+"symbol-observable@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "symbol-observable@npm:4.0.0"
+ checksum: 212c7edce6186634d671336a88c0e0bbd626c2ab51ed57498dc90698cce541839a261b969c2a1e8dd43762133d47672e8b62e0b1ce9cf4157934ba45fd172ba8
+ languageName: node
+ linkType: hard
+
"symbol-tree@npm:^3.2.4":
version: 3.2.4
resolution: "symbol-tree@npm:3.2.4"
@@ -37532,6 +37238,15 @@ __metadata:
languageName: node
linkType: hard
+"ts-invariant@npm:^0.10.3":
+ version: 0.10.3
+ resolution: "ts-invariant@npm:0.10.3"
+ dependencies:
+ tslib: ^2.1.0
+ checksum: bb07d56fe4aae69d8860e0301dfdee2d375281159054bc24bf1e49e513fb0835bf7f70a11351344d213a79199c5e695f37ebbf5a447188a377ce0cd81d91ddb5
+ languageName: node
+ linkType: hard
+
"ts-log@npm:^2.2.3":
version: 2.2.3
resolution: "ts-log@npm:2.2.3"
@@ -37606,7 +37321,7 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:2.3.1, tslib@npm:~2.3.0":
+"tslib@npm:2.3.1":
version: 2.3.1
resolution: "tslib@npm:2.3.1"
checksum: de17a98d4614481f7fcb5cd53ffc1aaf8654313be0291e1bfaee4b4bb31a20494b7d218ff2e15017883e8ea9626599b3b0e0229c18383ba9dce89da2adf15cb9
@@ -37620,7 +37335,7 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:~2.5.0":
+"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:~2.5.0":
version: 2.5.0
resolution: "tslib@npm:2.5.0"
checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1
@@ -38488,7 +38203,7 @@ __metadata:
languageName: node
linkType: hard
-"value-or-promise@npm:1.0.12, value-or-promise@npm:^1.0.11":
+"value-or-promise@npm:1.0.12, value-or-promise@npm:^1.0.11, value-or-promise@npm:^1.0.12":
version: 1.0.12
resolution: "value-or-promise@npm:1.0.12"
checksum: f53a66c75b7447c90bbaf946a757ca09c094629cb80ba742f59c980ec3a69be0a385a0e75505dedb4e757862f1a994ca4beaf083a831f24d3ffb3d4bb18cd1e1
@@ -38694,7 +38409,7 @@ __metadata:
languageName: node
linkType: hard
-"watchpack@npm:^2.0.0-beta.10, watchpack@npm:^2.4.0":
+"watchpack@npm:^2.4.0":
version: 2.4.0
resolution: "watchpack@npm:2.4.0"
dependencies:
@@ -38874,8 +38589,8 @@ __metadata:
linkType: hard
"webpack@npm:^5, webpack@npm:^5.70.0":
- version: 5.74.0
- resolution: "webpack@npm:5.74.0"
+ version: 5.76.2
+ resolution: "webpack@npm:5.76.2"
dependencies:
"@types/eslint-scope": ^3.7.3
"@types/estree": ^0.0.51
@@ -38906,7 +38621,7 @@ __metadata:
optional: true
bin:
webpack: bin/webpack.js
- checksum: 320c41369a75051b19e18c63f408b3dcc481852e992f83d311771c5ec0f05f2946385e8ebef62030cf3587f0a3d2f12779ffdb191569a966847289ba7313f946
+ checksum: 86db98299a175c371031449c26077e87b33acd8f45de7f7945ed4b9b37c8ca11bc5169af9c44743efccd4d55e08042a3aa3a3bc42aff831309a0821ffbcd395e
languageName: node
linkType: hard
@@ -39385,18 +39100,6 @@ __metadata:
languageName: node
linkType: hard
-"xss@npm:^1.0.8":
- version: 1.0.10
- resolution: "xss@npm:1.0.10"
- dependencies:
- commander: ^2.20.3
- cssfilter: 0.0.10
- bin:
- xss: bin/xss
- checksum: 0dbc70a716020d854569610d5bc949ba9d3b7f530b7af5508ffe84edaea228c34a4e1227f71cb3a4741373b1c49c3cb691f69dddefda45a594a31f112ae6a738
- languageName: node
- linkType: hard
-
"xtend@npm:^4.0.0":
version: 4.0.2
resolution: "xtend@npm:4.0.2"
@@ -39460,10 +39163,10 @@ __metadata:
languageName: node
linkType: hard
-"yaml@npm:^2.0.0, yaml@npm:^2.1.1, yaml@npm:^2.1.3":
- version: 2.1.3
- resolution: "yaml@npm:2.1.3"
- checksum: 91316062324a93f9cb547469092392e7d004ff8f70c40fecb420f042a4870b2181557350da56c92f07bd44b8f7a252b0be26e6ade1f548e1f4351bdd01c9d3c7
+"yaml@npm:^2.0.0, yaml@npm:^2.1.1, yaml@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "yaml@npm:2.2.1"
+ checksum: 84f68cbe462d5da4e7ded4a8bded949ffa912bc264472e5a684c3d45b22d8f73a3019963a32164023bdf3d83cfb6f5b58ff7b2b10ef5b717c630f40bd6369a23
languageName: node
linkType: hard
@@ -39708,7 +39411,7 @@ __metadata:
languageName: node
linkType: hard
-"zen-observable-ts@npm:^1.1.0":
+"zen-observable-ts@npm:^1.1.0, zen-observable-ts@npm:^1.2.5":
version: 1.2.5
resolution: "zen-observable-ts@npm:1.2.5"
dependencies: