diff --git a/.changeset/afraid-needles-divide.md b/.changeset/afraid-needles-divide.md new file mode 100644 index 0000000000..6db7f449b0 --- /dev/null +++ b/.changeset/afraid-needles-divide.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Removed `packages/backend/src/types.ts` from the template as it is unused. It was mistakenly left in after moving the template to the new backend system. diff --git a/.changeset/bright-pumpkins-rule.md b/.changeset/bright-pumpkins-rule.md new file mode 100644 index 0000000000..07de4f313c --- /dev/null +++ b/.changeset/bright-pumpkins-rule.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Allow overriding `NotificationsPage` page properties diff --git a/.changeset/chatty-cycles-unite.md b/.changeset/chatty-cycles-unite.md new file mode 100644 index 0000000000..93dffbb143 --- /dev/null +++ b/.changeset/chatty-cycles-unite.md @@ -0,0 +1,9 @@ +--- +'@backstage/plugin-scaffolder-backend-module-github': patch +'@backstage/core-compat-api': patch +'@backstage/create-app': patch +'@backstage/plugin-api-docs': patch +'@backstage/plugin-catalog': patch +--- + +Update local development dependencies. diff --git a/.changeset/chilled-phones-unite.md b/.changeset/chilled-phones-unite.md deleted file mode 100644 index 43eae219bc..0000000000 --- a/.changeset/chilled-phones-unite.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-pagerduty': patch ---- - -This plugin has been deprecated, consider using [@pagerduty/backstage-plugin](https://github.com/pagerduty/backstage-plugin) instead diff --git a/.changeset/chilly-adults-sing.md b/.changeset/chilly-adults-sing.md new file mode 100644 index 0000000000..82f4cb88b2 --- /dev/null +++ b/.changeset/chilly-adults-sing.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Add lifecycle monitoring for the catalog processing diff --git a/.changeset/chilly-shoes-doubt.md b/.changeset/chilly-shoes-doubt.md new file mode 100644 index 0000000000..978600f5b4 --- /dev/null +++ b/.changeset/chilly-shoes-doubt.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-msgraph': patch +--- + +Fixed disabling of user photo fetching. Previously, the config value wasn't propagated properly, so user photos was still being fetched despite disabled by config. diff --git a/.changeset/cold-rats-leave.md b/.changeset/cold-rats-leave.md new file mode 100644 index 0000000000..6fe28d6371 --- /dev/null +++ b/.changeset/cold-rats-leave.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Fix issue with the log format not being respected when logging from actions diff --git a/.changeset/cool-elephants-march.md b/.changeset/cool-elephants-march.md new file mode 100644 index 0000000000..2396f9553d --- /dev/null +++ b/.changeset/cool-elephants-march.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-gitea': patch +--- + +Allow defining `repoVisibility` field for the action `publish:gitea` diff --git a/.changeset/cuddly-chairs-kick.md b/.changeset/cuddly-chairs-kick.md new file mode 100644 index 0000000000..ebb53b8e26 --- /dev/null +++ b/.changeset/cuddly-chairs-kick.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Add ability to configure the Node.js HTTP Server when configuring the root HTTP Router service diff --git a/.changeset/curly-shirts-flow.md b/.changeset/curly-shirts-flow.md new file mode 100644 index 0000000000..b9a73809ba --- /dev/null +++ b/.changeset/curly-shirts-flow.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Update the paths logic in the api reports command to support complex subpaths diff --git a/.changeset/curvy-planes-flash.md b/.changeset/curvy-planes-flash.md new file mode 100644 index 0000000000..0d3368e53d --- /dev/null +++ b/.changeset/curvy-planes-flash.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-bitbucket-server': patch +--- + +Allow skipping archived repositories (`skipArchivedRepos` flag) on Bitbucket. diff --git a/.changeset/dry-sloths-impress.md b/.changeset/dry-sloths-impress.md new file mode 100644 index 0000000000..6bd5ba4156 --- /dev/null +++ b/.changeset/dry-sloths-impress.md @@ -0,0 +1,5 @@ +--- +'@backstage/catalog-model': minor +--- + +Introduce a domain attribute to the domain entity to allow a hierarchy of domains to exist. diff --git a/.changeset/eighty-apricots-kneel.md b/.changeset/eighty-apricots-kneel.md new file mode 100644 index 0000000000..a9cabaf378 --- /dev/null +++ b/.changeset/eighty-apricots-kneel.md @@ -0,0 +1,5 @@ +--- +'@techdocs/cli': patch +--- + +Fix cookie endpoint mock for `serve` diff --git a/.changeset/eighty-bats-stare.md b/.changeset/eighty-bats-stare.md new file mode 100644 index 0000000000..6ebb2e9265 --- /dev/null +++ b/.changeset/eighty-bats-stare.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Update path in Readme for Plugin Techdocs to show the correct setup information. diff --git a/.changeset/eleven-pandas-divide.md b/.changeset/eleven-pandas-divide.md new file mode 100644 index 0000000000..912d34570a --- /dev/null +++ b/.changeset/eleven-pandas-divide.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-gitlab': patch +--- + +Added events support for `GitlabDiscoveryEntityProvider` and `GitlabOrgDiscoveryEntityProvider`. diff --git a/.changeset/fix-stackoverflow.md b/.changeset/fix-stackoverflow.md new file mode 100644 index 0000000000..6ce9f15737 --- /dev/null +++ b/.changeset/fix-stackoverflow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch +--- + +Fix plugin/incremental-ingestion 'Maximum call stack size exceeded' error when ingest large entities. diff --git a/.changeset/four-cooks-serve.md b/.changeset/four-cooks-serve.md new file mode 100644 index 0000000000..864807cc49 --- /dev/null +++ b/.changeset/four-cooks-serve.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-notifications-backend': patch +'@backstage/plugin-notifications-node': patch +--- + +Support for filtering entities from notification recipients after resolving them from the recipients diff --git a/.changeset/funny-bees-taste.md b/.changeset/funny-bees-taste.md new file mode 100644 index 0000000000..a9b2d84997 --- /dev/null +++ b/.changeset/funny-bees-taste.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +The user can newly mark all unread messages as read at one click. diff --git a/.changeset/fuzzy-seahorses-tell.md b/.changeset/fuzzy-seahorses-tell.md new file mode 100644 index 0000000000..f184e9ce95 --- /dev/null +++ b/.changeset/fuzzy-seahorses-tell.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Fixed an internal circular import that broke Jest mocks. diff --git a/.changeset/green-boxes-rescue.md b/.changeset/green-boxes-rescue.md new file mode 100644 index 0000000000..146695a320 --- /dev/null +++ b/.changeset/green-boxes-rescue.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications-backend-module-email': patch +--- + +Allow sending notifications by email with the new notifications module diff --git a/.changeset/hip-carrots-drive.md b/.changeset/hip-carrots-drive.md new file mode 100644 index 0000000000..5852916b74 --- /dev/null +++ b/.changeset/hip-carrots-drive.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +The default `TokenManager` implementation no longer requires keys to be configured in production, but it will throw an errors when generating or authenticating tokens. The default `AuthService` implementation will now also provide additional context if such an error is throw when falling back to using the `TokenManager` service to generate tokens for outgoing requests. diff --git a/.changeset/hot-forks-train.md b/.changeset/hot-forks-train.md new file mode 100644 index 0000000000..a5300085b6 --- /dev/null +++ b/.changeset/hot-forks-train.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Allow showing notifications as snackbars in the UI diff --git a/.changeset/itchy-gorillas-hope.md b/.changeset/itchy-gorillas-hope.md new file mode 100644 index 0000000000..cd285161ff --- /dev/null +++ b/.changeset/itchy-gorillas-hope.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Removed the Tech Radar and GitHub Actions plugins from the template, which have been moved to the community plugins repository. diff --git a/.changeset/itchy-keys-wonder.md b/.changeset/itchy-keys-wonder.md new file mode 100644 index 0000000000..879dc096a4 --- /dev/null +++ b/.changeset/itchy-keys-wonder.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +'@backstage/backend-app-api': patch +--- + +Redact `meta` fields too with the logger diff --git a/.changeset/late-planes-fix.md b/.changeset/late-planes-fix.md new file mode 100644 index 0000000000..a57d7ec1d4 --- /dev/null +++ b/.changeset/late-planes-fix.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-search-backend-node': patch +'@backstage/plugin-search-backend': patch +--- + +Add lifecycle monitoring for the search index registry diff --git a/.changeset/loud-frogs-eat.md b/.changeset/loud-frogs-eat.md new file mode 100644 index 0000000000..dd1ab978f1 --- /dev/null +++ b/.changeset/loud-frogs-eat.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-gitlab': patch +--- + +Add examples for `gitlab:repo:push` scaffolder action & improve related tests diff --git a/.changeset/loud-vans-greet.md b/.changeset/loud-vans-greet.md new file mode 100644 index 0000000000..732413174b --- /dev/null +++ b/.changeset/loud-vans-greet.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Internal refactor to only create one external token handler diff --git a/.changeset/lovely-games-cry.md b/.changeset/lovely-games-cry.md new file mode 100644 index 0000000000..5209b93496 --- /dev/null +++ b/.changeset/lovely-games-cry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-react': patch +--- + +When using `CookieAuthRefreshProvider` or `useCookieAuthRefresh`, a 404 response from the cookie endpoint will now be treated as if cookie auth is disabled and is not needed. diff --git a/.changeset/lucky-news-guess.md b/.changeset/lucky-news-guess.md new file mode 100644 index 0000000000..9c2cc4e8b0 --- /dev/null +++ b/.changeset/lucky-news-guess.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch +--- + +Add examples for `publish:bitbucketServer:pull-request` scaffolder action & improve related tests diff --git a/.changeset/migrate-1713426449436.md b/.changeset/migrate-1713426449436.md deleted file mode 100644 index cd37254fb7..0000000000 --- a/.changeset/migrate-1713426449436.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-todo': patch -'@backstage/plugin-todo-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465834005.md b/.changeset/migrate-1713465834005.md deleted file mode 100644 index 29c186cd48..0000000000 --- a/.changeset/migrate-1713465834005.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-adr': patch -'@backstage/plugin-adr-backend': patch -'@backstage/plugin-adr-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465844082.md b/.changeset/migrate-1713465844082.md deleted file mode 100644 index 5aaa3fed55..0000000000 --- a/.changeset/migrate-1713465844082.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-airbrake': patch -'@backstage/plugin-airbrake-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465852581.md b/.changeset/migrate-1713465852581.md deleted file mode 100644 index 40e1e19c85..0000000000 --- a/.changeset/migrate-1713465852581.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-allure': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465859342.md b/.changeset/migrate-1713465859342.md deleted file mode 100644 index ece5389dad..0000000000 --- a/.changeset/migrate-1713465859342.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-analytics-module-ga': patch -'@backstage/plugin-analytics-module-ga4': patch -'@backstage/plugin-analytics-module-newrelic-browser': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465866151.md b/.changeset/migrate-1713465866151.md deleted file mode 100644 index 28658f826e..0000000000 --- a/.changeset/migrate-1713465866151.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-apache-airflow': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465873342.md b/.changeset/migrate-1713465873342.md deleted file mode 100644 index eb6d1ae355..0000000000 --- a/.changeset/migrate-1713465873342.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-apollo-explorer': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465880342.md b/.changeset/migrate-1713465880342.md deleted file mode 100644 index ecf9bfaaa2..0000000000 --- a/.changeset/migrate-1713465880342.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-azure-devops': patch -'@backstage/plugin-azure-devops-backend': patch -'@backstage/plugin-azure-devops-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465887317.md b/.changeset/migrate-1713465887317.md deleted file mode 100644 index 0d70481132..0000000000 --- a/.changeset/migrate-1713465887317.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-azure-sites': patch -'@backstage/plugin-azure-sites-backend': patch -'@backstage/plugin-azure-sites-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465894126.md b/.changeset/migrate-1713465894126.md deleted file mode 100644 index 007b191096..0000000000 --- a/.changeset/migrate-1713465894126.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-badges': patch -'@backstage/plugin-badges-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465901227.md b/.changeset/migrate-1713465901227.md deleted file mode 100644 index 85eb7e41c3..0000000000 --- a/.changeset/migrate-1713465901227.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-bazaar': patch -'@backstage/plugin-bazaar-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465908023.md b/.changeset/migrate-1713465908023.md deleted file mode 100644 index 2d7824d401..0000000000 --- a/.changeset/migrate-1713465908023.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-bitrise': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465915010.md b/.changeset/migrate-1713465915010.md deleted file mode 100644 index ad30bc1ff8..0000000000 --- a/.changeset/migrate-1713465915010.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-cicd-statistics': patch -'@backstage/plugin-cicd-statistics-module-gitlab': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465921873.md b/.changeset/migrate-1713465921873.md deleted file mode 100644 index 82e9e426aa..0000000000 --- a/.changeset/migrate-1713465921873.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-circleci': patch ---- - -This package has been deprecated in favour of the [Circle-CI](https://github.com/CircleCI-Public/backstage-plugin) plugin. Please migrate to that plugin instead. diff --git a/.changeset/migrate-1713465928821.md b/.changeset/migrate-1713465928821.md deleted file mode 100644 index 6b184fed58..0000000000 --- a/.changeset/migrate-1713465928821.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-cloudbuild': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465935674.md b/.changeset/migrate-1713465935674.md deleted file mode 100644 index 7d1db8520e..0000000000 --- a/.changeset/migrate-1713465935674.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-code-climate': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465942505.md b/.changeset/migrate-1713465942505.md deleted file mode 100644 index 1917c61025..0000000000 --- a/.changeset/migrate-1713465942505.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-code-coverage': patch -'@backstage/plugin-code-coverage-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465949447.md b/.changeset/migrate-1713465949447.md deleted file mode 100644 index 577faf7f65..0000000000 --- a/.changeset/migrate-1713465949447.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-codescene': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465957264.md b/.changeset/migrate-1713465957264.md deleted file mode 100644 index a7ddeffccf..0000000000 --- a/.changeset/migrate-1713465957264.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-cost-insights': patch -'@backstage/plugin-cost-insights-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465964371.md b/.changeset/migrate-1713465964371.md deleted file mode 100644 index 1084c6d243..0000000000 --- a/.changeset/migrate-1713465964371.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-dynatrace': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465971344.md b/.changeset/migrate-1713465971344.md deleted file mode 100644 index c91a500e00..0000000000 --- a/.changeset/migrate-1713465971344.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-entity-feedback': patch -'@backstage/plugin-entity-feedback-backend': patch -'@backstage/plugin-entity-feedback-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465978303.md b/.changeset/migrate-1713465978303.md deleted file mode 100644 index 2e3bde1cae..0000000000 --- a/.changeset/migrate-1713465978303.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-entity-validation': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465986035.md b/.changeset/migrate-1713465986035.md deleted file mode 100644 index 945d05a3d2..0000000000 --- a/.changeset/migrate-1713465986035.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/plugin-explore': patch -'@backstage/plugin-explore-backend': patch -'@backstage/plugin-explore-common': patch -'@backstage/plugin-explore-react': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713465993760.md b/.changeset/migrate-1713465993760.md deleted file mode 100644 index 1b308ecbbd..0000000000 --- a/.changeset/migrate-1713465993760.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-firehydrant': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466000828.md b/.changeset/migrate-1713466000828.md deleted file mode 100644 index ec790f3687..0000000000 --- a/.changeset/migrate-1713466000828.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-fossa': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466008519.md b/.changeset/migrate-1713466008519.md deleted file mode 100644 index cefa04ca8a..0000000000 --- a/.changeset/migrate-1713466008519.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-gcalendar': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466015470.md b/.changeset/migrate-1713466015470.md deleted file mode 100644 index 1b3e470279..0000000000 --- a/.changeset/migrate-1713466015470.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-gcp-projects': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466022480.md b/.changeset/migrate-1713466022480.md deleted file mode 100644 index da0c9b0240..0000000000 --- a/.changeset/migrate-1713466022480.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-git-release-manager': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466030755.md b/.changeset/migrate-1713466030755.md deleted file mode 100644 index e031e92f6a..0000000000 --- a/.changeset/migrate-1713466030755.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-github-actions': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466038274.md b/.changeset/migrate-1713466038274.md deleted file mode 100644 index 4578c2a15d..0000000000 --- a/.changeset/migrate-1713466038274.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-github-deployments': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466045590.md b/.changeset/migrate-1713466045590.md deleted file mode 100644 index b12d7e4617..0000000000 --- a/.changeset/migrate-1713466045590.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-github-issues': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466052584.md b/.changeset/migrate-1713466052584.md deleted file mode 100644 index 444c4936ec..0000000000 --- a/.changeset/migrate-1713466052584.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-github-pull-requests-board': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466060269.md b/.changeset/migrate-1713466060269.md deleted file mode 100644 index 12e2a388c3..0000000000 --- a/.changeset/migrate-1713466060269.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-gitops-profiles': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466067342.md b/.changeset/migrate-1713466067342.md deleted file mode 100644 index ea922660a4..0000000000 --- a/.changeset/migrate-1713466067342.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-gocd': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466074733.md b/.changeset/migrate-1713466074733.md deleted file mode 100644 index a74fa7ec53..0000000000 --- a/.changeset/migrate-1713466074733.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-graphiql': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466081822.md b/.changeset/migrate-1713466081822.md deleted file mode 100644 index e2a9481158..0000000000 --- a/.changeset/migrate-1713466081822.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-graphql-voyager': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466088770.md b/.changeset/migrate-1713466088770.md deleted file mode 100644 index ad09feb31f..0000000000 --- a/.changeset/migrate-1713466088770.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-ilert': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466095837.md b/.changeset/migrate-1713466095837.md deleted file mode 100644 index a79280d503..0000000000 --- a/.changeset/migrate-1713466095837.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-jenkins': patch -'@backstage/plugin-jenkins-backend': patch -'@backstage/plugin-jenkins-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466103067.md b/.changeset/migrate-1713466103067.md deleted file mode 100644 index abfada39d6..0000000000 --- a/.changeset/migrate-1713466103067.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-kafka': patch -'@backstage/plugin-kafka-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466110116.md b/.changeset/migrate-1713466110116.md deleted file mode 100644 index fcd43006e0..0000000000 --- a/.changeset/migrate-1713466110116.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-lighthouse': patch -'@backstage/plugin-lighthouse-backend': patch -'@backstage/plugin-lighthouse-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466117436.md b/.changeset/migrate-1713466117436.md deleted file mode 100644 index d29e71be3f..0000000000 --- a/.changeset/migrate-1713466117436.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-microsoft-calendar': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466129151.md b/.changeset/migrate-1713466129151.md deleted file mode 100644 index bf130e6b8e..0000000000 --- a/.changeset/migrate-1713466129151.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-newrelic': patch -'@backstage/plugin-newrelic-dashboard': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466146663.md b/.changeset/migrate-1713466146663.md deleted file mode 100644 index 8f83f146a1..0000000000 --- a/.changeset/migrate-1713466146663.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-octopus-deploy': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466155177.md b/.changeset/migrate-1713466155177.md deleted file mode 100644 index ae85338d4b..0000000000 --- a/.changeset/migrate-1713466155177.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-opencost': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466169253.md b/.changeset/migrate-1713466169253.md deleted file mode 100644 index 06de197773..0000000000 --- a/.changeset/migrate-1713466169253.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-periskop': patch -'@backstage/plugin-periskop-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466176492.md b/.changeset/migrate-1713466176492.md deleted file mode 100644 index bf9103a530..0000000000 --- a/.changeset/migrate-1713466176492.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-playlist': patch -'@backstage/plugin-playlist-backend': patch -'@backstage/plugin-playlist-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466183571.md b/.changeset/migrate-1713466183571.md deleted file mode 100644 index eab8ace070..0000000000 --- a/.changeset/migrate-1713466183571.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-puppetdb': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466190774.md b/.changeset/migrate-1713466190774.md deleted file mode 100644 index 4f95905cf2..0000000000 --- a/.changeset/migrate-1713466190774.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-rollbar': patch -'@backstage/plugin-rollbar-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466197726.md b/.changeset/migrate-1713466197726.md deleted file mode 100644 index ab70d3e27c..0000000000 --- a/.changeset/migrate-1713466197726.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-sentry': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466204983.md b/.changeset/migrate-1713466204983.md deleted file mode 100644 index b2c8f467ea..0000000000 --- a/.changeset/migrate-1713466204983.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-shortcuts': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466212008.md b/.changeset/migrate-1713466212008.md deleted file mode 100644 index bd0cc9e76a..0000000000 --- a/.changeset/migrate-1713466212008.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-sonarqube': patch -'@backstage/plugin-sonarqube-backend': patch -'@backstage/plugin-sonarqube-react': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466219338.md b/.changeset/migrate-1713466219338.md deleted file mode 100644 index df513ee739..0000000000 --- a/.changeset/migrate-1713466219338.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-splunk-on-call': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466226880.md b/.changeset/migrate-1713466226880.md deleted file mode 100644 index 263fd06e4e..0000000000 --- a/.changeset/migrate-1713466226880.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-stack-overflow': patch -'@backstage/plugin-stack-overflow-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466234510.md b/.changeset/migrate-1713466234510.md deleted file mode 100644 index 42eed581f0..0000000000 --- a/.changeset/migrate-1713466234510.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-stackstorm': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466242003.md b/.changeset/migrate-1713466242003.md deleted file mode 100644 index f9dcca2ad2..0000000000 --- a/.changeset/migrate-1713466242003.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/plugin-tech-insights': patch -'@backstage/plugin-tech-insights-backend': patch -'@backstage/plugin-tech-insights-backend-module-jsonfc': patch -'@backstage/plugin-tech-insights-common': patch -'@backstage/plugin-tech-insights-node': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466249417.md b/.changeset/migrate-1713466249417.md deleted file mode 100644 index 9f62804b00..0000000000 --- a/.changeset/migrate-1713466249417.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-vault': patch -'@backstage/plugin-vault-backend': patch -'@backstage/plugin-vault-node': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713466257285.md b/.changeset/migrate-1713466257285.md deleted file mode 100644 index a7e9b68136..0000000000 --- a/.changeset/migrate-1713466257285.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-xcmetrics': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713519093920.md b/.changeset/migrate-1713519093920.md deleted file mode 100644 index 50e4c680b6..0000000000 --- a/.changeset/migrate-1713519093920.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-tech-radar': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713531195788.md b/.changeset/migrate-1713531195788.md deleted file mode 100644 index dc2617ded9..0000000000 --- a/.changeset/migrate-1713531195788.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-nomad': patch -'@backstage/plugin-nomad-backend': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/migrate-1713531212279.md b/.changeset/migrate-1713531212279.md deleted file mode 100644 index 85f4f11d8b..0000000000 --- a/.changeset/migrate-1713531212279.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-linguist': patch -'@backstage/plugin-linguist-backend': patch -'@backstage/plugin-linguist-common': patch ---- - -These packages have been migrated to the [backstage/community-plugins](https://github.com/backstage/community-plugins) repository. diff --git a/.changeset/orange-numbers-think.md b/.changeset/orange-numbers-think.md new file mode 100644 index 0000000000..21dc7ce76b --- /dev/null +++ b/.changeset/orange-numbers-think.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-catalog': patch +--- + +Fix wiring of the module exported at the `/alpha` path, which was causing authentication failures. diff --git a/.changeset/perfect-points-hope.md b/.changeset/perfect-points-hope.md new file mode 100644 index 0000000000..cfc42f77a3 --- /dev/null +++ b/.changeset/perfect-points-hope.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-oidc-provider': patch +--- + +Add nonce to authorize request to be added in ID token diff --git a/.changeset/pre.json b/.changeset/pre.json index 87adddcad3..809cd51567 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -281,7 +281,57 @@ "@backstage/plugin-vault": "0.1.29", "@backstage/plugin-vault-backend": "0.4.10", "@backstage/plugin-vault-node": "0.1.10", - "@backstage/plugin-xcmetrics": "0.2.52" + "@backstage/plugin-xcmetrics": "0.2.52", + "@backstage/plugin-catalog-backend-module-gitlab-org": "0.0.0" }, - "changesets": [] + "changesets": [ + "afraid-needles-divide", + "bright-pumpkins-rule", + "chatty-cycles-unite", + "chilly-adults-sing", + "chilly-fireants-roll", + "cold-rats-leave", + "cool-elephants-march", + "cuddly-chairs-kick", + "curvy-planes-flash", + "dry-sloths-impress", + "eighty-apricots-kneel", + "eighty-bats-stare", + "eleven-pandas-divide", + "fix-stackoverflow", + "fluffy-hotels-wait", + "fresh-crews-impress", + "gold-waves-bake", + "gorgeous-cameras-cross", + "green-adults-push", + "hip-carrots-drive", + "itchy-gorillas-hope", + "itchy-keys-wonder", + "late-planes-fix", + "loud-frogs-eat", + "loud-vans-greet", + "lovely-games-cry", + "lucky-news-guess", + "orange-numbers-think", + "perfect-points-hope", + "proud-doors-cheat", + "purple-parents-sin", + "purple-waves-smile", + "rare-fireants-tickle", + "real-crabs-obey", + "renovate-0d0bd5c", + "selfish-pigs-glow", + "shy-students-clap", + "smart-avocados-invent", + "smooth-garlics-behave", + "sour-socks-approve", + "stupid-onions-know", + "tasty-apes-learn", + "thick-llamas-itch", + "tricky-cougars-shout", + "unlucky-days-play", + "unlucky-rivers-collect", + "warm-fans-promise", + "young-olives-drop" + ] } diff --git a/.changeset/proud-doors-cheat.md b/.changeset/proud-doors-cheat.md new file mode 100644 index 0000000000..55ab7878d4 --- /dev/null +++ b/.changeset/proud-doors-cheat.md @@ -0,0 +1,5 @@ +--- +'@backstage/theme': patch +--- + +Fixed bug where scrollbars don't pick up the theme when in dark mode diff --git a/.changeset/purple-waves-smile.md b/.changeset/purple-waves-smile.md new file mode 100644 index 0000000000..44da72ea70 --- /dev/null +++ b/.changeset/purple-waves-smile.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-guest-provider': patch +--- + +Error if used outside of a development environment without explicit allowance diff --git a/.changeset/rare-fireants-tickle.md b/.changeset/rare-fireants-tickle.md new file mode 100644 index 0000000000..8668d4c287 --- /dev/null +++ b/.changeset/rare-fireants-tickle.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Added optional `initialShowDropDown` prop to `SidebarSubmenuItem` to internally manage the initial display state of the dropdown items. diff --git a/.changeset/real-crabs-obey.md b/.changeset/real-crabs-obey.md new file mode 100644 index 0000000000..9a52f0e5a6 --- /dev/null +++ b/.changeset/real-crabs-obey.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-explore': patch +--- + +Migrate search collator to use the new auth services. diff --git a/.changeset/renovate-0d0bd5c.md b/.changeset/renovate-0d0bd5c.md new file mode 100644 index 0000000000..ac3fe697f9 --- /dev/null +++ b/.changeset/renovate-0d0bd5c.md @@ -0,0 +1,11 @@ +--- +'@backstage/plugin-home-react': patch +'@backstage/plugin-home': patch +'@backstage/plugin-scaffolder-react': patch +'@backstage/plugin-scaffolder': patch +--- + +Updated dependency `@rjsf/utils` to `5.18.2`. +Updated dependency `@rjsf/core` to `5.18.2`. +Updated dependency `@rjsf/material-ui` to `5.18.2`. +Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. diff --git a/.changeset/selfish-pigs-glow.md b/.changeset/selfish-pigs-glow.md new file mode 100644 index 0000000000..c7808c0283 --- /dev/null +++ b/.changeset/selfish-pigs-glow.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-auth-backend': patch +'@backstage/plugin-auth-node': patch +--- + +Allow overriding default ownership resolving with the new `AuthOwnershipResolutionExtensionPoint` diff --git a/.changeset/shy-students-clap.md b/.changeset/shy-students-clap.md new file mode 100644 index 0000000000..0e6244f21d --- /dev/null +++ b/.changeset/shy-students-clap.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-gitlab-org': patch +--- + +Added a new `catalog-backend-module-gitlab-org` module which adds the `GitlabOrgDiscoveryEntityProvider` to the catalog's providers using the new backend system. diff --git a/.changeset/silent-wombats-hang.md b/.changeset/silent-wombats-hang.md new file mode 100644 index 0000000000..85bda32007 --- /dev/null +++ b/.changeset/silent-wombats-hang.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-msgraph': patch +--- + +Handle fetching huge amounts of users from Azure without crashing diff --git a/.changeset/six-scissors-smile.md b/.changeset/six-scissors-smile.md new file mode 100644 index 0000000000..7680edbba6 --- /dev/null +++ b/.changeset/six-scissors-smile.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +The `SignInPage` guest provider will now fall back to legacy guest auth if the backend request fails, allowing guest auth without a running backend. diff --git a/.changeset/smart-avocados-invent.md b/.changeset/smart-avocados-invent.md new file mode 100644 index 0000000000..c71b6fef37 --- /dev/null +++ b/.changeset/smart-avocados-invent.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-dynamic-feature-service': patch +--- + +Updates the `scanRoot` method in the `PluginScanner` class to specifically ignore the `lost+found` directory, which is a system-generated directory used for file recovery on Unix-like systems. Skipping this directory avoids unnecessary errors. diff --git a/.changeset/smooth-garlics-behave.md b/.changeset/smooth-garlics-behave.md new file mode 100644 index 0000000000..ed972ae164 --- /dev/null +++ b/.changeset/smooth-garlics-behave.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Added option to `ServerTokenManager.fromConfig` that allows it to be instantiated in production without any configured keys. diff --git a/.changeset/sour-socks-approve.md b/.changeset/sour-socks-approve.md new file mode 100644 index 0000000000..db40806280 --- /dev/null +++ b/.changeset/sour-socks-approve.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': minor +--- + +Emit well known relationships for the Domain entity kind. diff --git a/.changeset/stupid-onions-know.md b/.changeset/stupid-onions-know.md new file mode 100644 index 0000000000..3d028557be --- /dev/null +++ b/.changeset/stupid-onions-know.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Empty descriptions are not rendered to improve the look&feel. diff --git a/.changeset/tall-ads-shave.md b/.changeset/tall-ads-shave.md new file mode 100644 index 0000000000..17d58452eb --- /dev/null +++ b/.changeset/tall-ads-shave.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications-backend': patch +--- + +Add possibility to generate random notifications on the fly in local development diff --git a/.changeset/tasty-apes-learn.md b/.changeset/tasty-apes-learn.md new file mode 100644 index 0000000000..7a4545cf10 --- /dev/null +++ b/.changeset/tasty-apes-learn.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Fix to show web notifications even when browser is on foreground. Fix duplicate notifications with multiple tabs. diff --git a/.changeset/thick-llamas-itch.md b/.changeset/thick-llamas-itch.md new file mode 100644 index 0000000000..17d4fb23b6 --- /dev/null +++ b/.changeset/thick-llamas-itch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Allow defining `className` and additional properties for `NotificationsSideBarItem` diff --git a/.changeset/tricky-cougars-shout.md b/.changeset/tricky-cougars-shout.md new file mode 100644 index 0000000000..eed14c9eb8 --- /dev/null +++ b/.changeset/tricky-cougars-shout.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-explore': patch +--- + +Update README.md to point to explore plugin in community-plugins repository. diff --git a/.changeset/unlucky-days-play.md b/.changeset/unlucky-days-play.md new file mode 100644 index 0000000000..b847ebd2fc --- /dev/null +++ b/.changeset/unlucky-days-play.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +Fix infinite loop in the notification title counter diff --git a/.changeset/unlucky-rivers-collect.md b/.changeset/unlucky-rivers-collect.md new file mode 100644 index 0000000000..c5ec865658 --- /dev/null +++ b/.changeset/unlucky-rivers-collect.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications-backend': patch +--- + +Updated documentation for sending messages by external services. diff --git a/.changeset/warm-fans-promise.md b/.changeset/warm-fans-promise.md new file mode 100644 index 0000000000..a8a8f8a2c7 --- /dev/null +++ b/.changeset/warm-fans-promise.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-notifications': patch +--- + +The rendered size of a notification is limited for very long descriptions. diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4d18392945..9fc63fbd04 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -45,15 +45,7 @@ yarn.lock @backstage/maintainers @backst /plugins/devtools-common @backstage/maintainers @backstage/reviewers @awanlin /plugins/entity-feedback @backstage/maintainers @backstage/reviewers @kuangp /plugins/entity-feedback-* @backstage/maintainers @backstage/reviewers @kuangp -/plugins/events-backend @backstage/maintainers @backstage/reviewers @pjungermann -/plugins/events-backend-module-aws-sqs @backstage/maintainers @backstage/reviewers @pjungermann -/plugins/events-backend-module-azure @backstage/maintainers @backstage/reviewers @pjungermann -/plugins/events-backend-module-bitbucket-cloud @backstage/maintainers @backstage/reviewers @pjungermann -/plugins/events-backend-module-gerrit @backstage/maintainers @backstage/reviewers @pjungermann -/plugins/events-backend-module-github @backstage/maintainers @backstage/reviewers @pjungermann -/plugins/events-backend-module-gitlab @backstage/maintainers @backstage/reviewers @pjungermann -/plugins/events-backend-test-utils @backstage/maintainers @backstage/reviewers @pjungermann -/plugins/events-node @backstage/maintainers @backstage/reviewers @pjungermann +/plugins/events-* @backstage/maintainers @backstage/reviewers @backstage/events-maintainers /plugins/explore @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers /plugins/explore-react @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers /plugins/fossa @backstage/maintainers @backstage/reviewers @backstage/sda-se-reviewers diff --git a/.github/ISSUE_TEMPLATE/plugin.yaml b/.github/ISSUE_TEMPLATE/plugin.yaml deleted file mode 100644 index a7f5216631..0000000000 --- a/.github/ISSUE_TEMPLATE/plugin.yaml +++ /dev/null @@ -1,52 +0,0 @@ -name: 🔌 Plugin -description: 'Submit a proposal for a new Plugin' -title: '🔌 Plugin: ' -labels: [plugin] -body: - - type: markdown - attributes: - value: | - We value your time and efforts to submit this Plugin request form. 🙏 - - type: textarea - id: plugin-summary - validations: - required: true - attributes: - label: '🔖 Summary' - description: 'Provide a general summary of the plugin and how it should work' - placeholder: 'You should add ...' - - type: textarea - id: website - attributes: - label: '🌐 Project website (if applicable)' - description: 'Add a link to the open source project or product this plugin will integrate with, if existing' - placeholder: 'Website Link is ...' - - type: textarea - id: context - attributes: - label: '✌️ Context' - description: 'A clear and concise description about the Plugin.' - placeholder: 'Providing additional context' - - type: checkboxes - id: no-duplicate-issues - attributes: - label: '👀 Have you spent some time to check if this plugin request has been raised before?' - options: - - label: "I checked and didn't find similar issue" - required: true - - type: checkboxes - id: read-code-of-conduct - attributes: - label: '🏢 Have you read the Code of Conduct?' - options: - - label: 'I have read the [Code of Conduct](https://github.com/backstage/backstage/blob/master/CODE_OF_CONDUCT.md)' - required: true - - type: dropdown - id: willing-to-submit-pr - attributes: - label: Are you willing to submit PR? - description: This is absolutely not required, but we are happy to guide you in the contribution process. - options: - - Yes I am willing to submit a PR! - - No, but I'm happy to collaborate on a PR with someone else - - No, I don't have time to work on this right now diff --git a/.github/issue-labeler.yml b/.github/issue-labeler.yml index c86279d411..6d74ce8902 100644 --- a/.github/issue-labeler.yml +++ b/.github/issue-labeler.yml @@ -2,6 +2,8 @@ area:techdocs: - '/(techdocs|tech-docs|tech docs)/i' area:discoverability: - '/search/i' +area:events: + - '/events/i' area:catalog: - '/catalog/i' area:scaffolder: diff --git a/.github/labeler.yml b/.github/labeler.yml index cb28d955b4..a58da1d2f7 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -11,6 +11,10 @@ area:discoverability: # search + home - plugins/search-*/**/* - packages/search-*/**/* - plugins/home/**/* +area:events: + - changed-files: + - any-glob-to-any-file: + - plugins/events-*/**/* area:kubernetes: - changed-files: - any-glob-to-any-file: diff --git a/.github/vale/config/vocabularies/Backstage/accept.txt b/.github/vale/config/vocabularies/Backstage/accept.txt index b525d7e48e..026e5a9b18 100644 --- a/.github/vale/config/vocabularies/Backstage/accept.txt +++ b/.github/vale/config/vocabularies/Backstage/accept.txt @@ -362,6 +362,8 @@ SIG SIGs siloed Sinon +snackbars +snackbar Snyk Sonarqube sourcemaps diff --git a/.github/workflows/automate_changeset_feedback.yml b/.github/workflows/automate_changeset_feedback.yml index 095dfcd4f2..4d965499d2 100644 --- a/.github/workflows/automate_changeset_feedback.yml +++ b/.github/workflows/automate_changeset_feedback.yml @@ -27,14 +27,14 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: # Fetch the commit that's merged into the base rather than the target ref # This will let us diff only the contents of the PR, without fetching more history ref: 'refs/pull/${{ github.event.pull_request.number }}/merge' - name: fetch base run: git fetch --depth 1 origin ${{ github.base_ref }} - - uses: backstage/actions/changeset-feedback@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + - uses: backstage/actions/changeset-feedback@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 name: Generate feedback with: diff-ref: 'origin/master' diff --git a/.github/workflows/automate_merge_message.yml b/.github/workflows/automate_merge_message.yml index 0c6dacde69..38243ee0ac 100644 --- a/.github/workflows/automate_merge_message.yml +++ b/.github/workflows/automate_merge_message.yml @@ -28,7 +28,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: ref: '${{ github.event.pull_request.merge_commit_sha }}' diff --git a/.github/workflows/automate_stale.yml b/.github/workflows/automate_stale.yml index 691066fb61..c7674e853d 100644 --- a/.github/workflows/automate_stale.yml +++ b/.github/workflows/automate_stale.yml @@ -28,7 +28,7 @@ jobs: for your contributions. days-before-issue-stale: 60 days-before-issue-close: 7 - exempt-issue-labels: plugin,after-vacations,will-fix + exempt-issue-labels: plugin,after-vacations,will-fix,bep stale-issue-label: stale stale-pr-message: > This PR has been automatically marked as stale because it has not had diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b8be6488c1..fdd31b2d57 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -41,7 +41,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -68,7 +68,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -77,7 +77,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -197,7 +197,7 @@ jobs: INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: fetch master branch run: git fetch origin master @@ -213,7 +213,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml index da5867bcd7..c32d50ced5 100644 --- a/.github/workflows/cron.yml +++ b/.github/workflows/cron.yml @@ -13,7 +13,7 @@ jobs: with: egress-policy: audit - - uses: backstage/actions/cron@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + - uses: backstage/actions/cron@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }} diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml index 5ccc2215d9..020254c872 100644 --- a/.github/workflows/deploy_docker-image.yml +++ b/.github/workflows/deploy_docker-image.yml @@ -25,7 +25,7 @@ jobs: egress-policy: audit - name: checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: path: backstage ref: ${{ github.event.client_payload.version && env.RELEASE_VERSION || github.ref }} @@ -37,7 +37,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/deploy_microsite.yml b/.github/workflows/deploy_microsite.yml index e9abba59a3..6864ec67dc 100644 --- a/.github/workflows/deploy_microsite.yml +++ b/.github/workflows/deploy_microsite.yml @@ -28,7 +28,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -66,7 +66,7 @@ jobs: run: ls microsite/build && ls microsite/build/storybook - name: Deploy both microsite and storybook to gh-pages - uses: JamesIves/github-pages-deploy-action@65b5dfd4f5bcd3a7403bbc2959c144256167464e # v4.5.0 + uses: JamesIves/github-pages-deploy-action@ec9c88baef04b842ca6f0a132fd61c762aa6c1b0 # v4.6.0 with: branch: gh-pages folder: microsite/build diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml index f9d3353e9b..07c3db0f11 100644 --- a/.github/workflows/deploy_nightly.yml +++ b/.github/workflows/deploy_nightly.yml @@ -19,7 +19,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -27,7 +27,7 @@ jobs: node-version: 18.x registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v18.x diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 8861d03ddf..775d8d00f8 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -65,7 +65,7 @@ jobs: INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -73,7 +73,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} @@ -148,7 +148,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -156,7 +156,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/issue.yaml b/.github/workflows/issue.yaml index 1a275eeb93..f8f5efacc4 100644 --- a/.github/workflows/issue.yaml +++ b/.github/workflows/issue.yaml @@ -19,6 +19,7 @@ jobs: with: include-title: 1 include-body: 0 - configuration-path: .github/labeler.yml + configuration-path: .github/issue-labeler.yml + enable-versioned-regex: 0 not-before: 2024-04-19T15:03:51Z repo-token: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/pr-review-comment.yaml b/.github/workflows/pr-review-comment.yaml index 0768b6355e..72256a8c6e 100644 --- a/.github/workflows/pr-review-comment.yaml +++ b/.github/workflows/pr-review-comment.yaml @@ -40,7 +40,7 @@ jobs: const prNumber = artifact.name.slice('pr_number-'.length) core.setOutput('pr-number', prNumber); - - uses: backstage/actions/re-review@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + - uses: backstage/actions/re-review@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} private-key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index e9750f1018..3aa20b1c96 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -23,7 +23,7 @@ jobs: egress-policy: audit - name: PR sync - uses: backstage/actions/pr-sync@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/pr-sync@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }} app-id: ${{ secrets.BACKSTAGE_GOALIE_APPLICATION_ID }} diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 19052d6bc8..91f1b02fee 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -34,7 +34,7 @@ jobs: egress-policy: audit - name: 'Checkout code' - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: persist-credentials: false @@ -66,6 +66,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: 'Upload to code-scanning' - uses: github/codeql-action/upload-sarif@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 + uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 with: sarif_file: results.sarif diff --git a/.github/workflows/sync_code-formatting.yml b/.github/workflows/sync_code-formatting.yml index 9e0ed5bccd..5dbd0361c1 100644 --- a/.github/workflows/sync_code-formatting.yml +++ b/.github/workflows/sync_code-formatting.yml @@ -14,7 +14,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: # Fetch changes to previous commit - required for 'only_changed' in Prettier action fetch-depth: 0 @@ -25,7 +25,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/sync_dependabot-changesets.yml b/.github/workflows/sync_dependabot-changesets.yml index c2a447e369..8b3be335ed 100644 --- a/.github/workflows/sync_dependabot-changesets.yml +++ b/.github/workflows/sync_dependabot-changesets.yml @@ -16,7 +16,7 @@ jobs: egress-policy: audit - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: fetch-depth: 2 ref: ${{ github.head_ref }} diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml index 64dec1905a..b0a2499d43 100644 --- a/.github/workflows/sync_release-manifest.yml +++ b/.github/workflows/sync_release-manifest.yml @@ -21,7 +21,7 @@ jobs: run: npm install semver@7.3.5 fs-extra@10.0.0 @manypkg/get-packages@1.1.1 - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: path: backstage # 'v' prefix is added here for the tag, we keep it out of the manifest logic @@ -29,7 +29,7 @@ jobs: # Checkout backstage/versions into /backstage/versions, which is where store the output - name: Checkout versions - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: repository: backstage/versions path: backstage/versions diff --git a/.github/workflows/sync_renovate-changesets.yml b/.github/workflows/sync_renovate-changesets.yml index 83b9f8f574..d02e35483c 100644 --- a/.github/workflows/sync_renovate-changesets.yml +++ b/.github/workflows/sync_renovate-changesets.yml @@ -16,7 +16,7 @@ jobs: egress-policy: audit - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: fetch-depth: 2 ref: ${{ github.head_ref }} diff --git a/.github/workflows/sync_snyk-github-issues.yml b/.github/workflows/sync_snyk-github-issues.yml index f7663562e4..d5a4048044 100644 --- a/.github/workflows/sync_snyk-github-issues.yml +++ b/.github/workflows/sync_snyk-github-issues.yml @@ -16,7 +16,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -24,7 +24,7 @@ jobs: node-version: 18.x registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v18.x diff --git a/.github/workflows/sync_snyk-monitor.yml b/.github/workflows/sync_snyk-monitor.yml index 08f333d3fc..70fb8a44d9 100644 --- a/.github/workflows/sync_snyk-monitor.yml +++ b/.github/workflows/sync_snyk-monitor.yml @@ -29,7 +29,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Monitor and Synchronize Snyk Policies uses: snyk/actions/node@8349f9043a8b7f0f3ee8885bf28f0b388d2446e8 # master with: @@ -58,6 +58,6 @@ jobs: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} NODE_OPTIONS: --max-old-space-size=7168 - name: Upload Snyk report - uses: github/codeql-action/upload-sarif@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 + uses: github/codeql-action/upload-sarif@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 with: sarif_file: snyk.sarif diff --git a/.github/workflows/sync_version-packages.yml b/.github/workflows/sync_version-packages.yml index 3164e471d2..b2ad80b6da 100644 --- a/.github/workflows/sync_version-packages.yml +++ b/.github/workflows/sync_version-packages.yml @@ -18,7 +18,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: fetch-depth: 20000 fetch-tags: true @@ -26,7 +26,7 @@ jobs: - name: Install Dependencies run: yarn --immutable - name: Create Release Pull Request - uses: backstage/changesets-action@99063c276a7f12e024cb310e7a05a3a5b89449f8 # v2.1.0 + uses: backstage/changesets-action@291bfc1f76d1dcfbf967f5810dc0423592eae09a # v2.3.1 with: # Calls out to `changeset version`, but also runs prettier version: yarn release diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml index 1b94c37b75..4a52af21bc 100644 --- a/.github/workflows/uffizzi-build.yml +++ b/.github/workflows/uffizzi-build.yml @@ -31,7 +31,7 @@ jobs: egress-policy: audit - name: checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: setup-node uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -40,7 +40,7 @@ jobs: registry-url: https://registry.npmjs.org/ - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: linux-v18 @@ -89,7 +89,7 @@ jobs: egress-policy: audit - name: Checkout git repo - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Render Compose File run: | # update image after the build above diff --git a/.github/workflows/verify_accessibility.yml b/.github/workflows/verify_accessibility.yml index 90e2fea52e..1c25d709cb 100644 --- a/.github/workflows/verify_accessibility.yml +++ b/.github/workflows/verify_accessibility.yml @@ -24,13 +24,13 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Use Node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: node-version: 18.x - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v18.x - name: run Lighthouse CI diff --git a/.github/workflows/verify_codeql.yml b/.github/workflows/verify_codeql.yml index 1e4c5a2066..e82577763e 100644 --- a/.github/workflows/verify_codeql.yml +++ b/.github/workflows/verify_codeql.yml @@ -47,7 +47,7 @@ jobs: egress-policy: audit - name: Checkout repository - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can checkout the head. @@ -55,7 +55,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 + uses: github/codeql-action/init@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -66,7 +66,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 + uses: github/codeql-action/autobuild@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -80,4 +80,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@4355270be187e1b672a7a1c7c7bae5afdc1ab94a # v3.24.10 + uses: github/codeql-action/analyze@c7f9125735019aa87cfc361530512d50ea439c71 # v3.25.1 diff --git a/.github/workflows/verify_docs-quality.yml b/.github/workflows/verify_docs-quality.yml index 2065af00fb..3550df6fc0 100644 --- a/.github/workflows/verify_docs-quality.yml +++ b/.github/workflows/verify_docs-quality.yml @@ -16,7 +16,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 # Vale does not support file excludes, so we use the script to generate a list of files instead # The action also does not allow args or a local config file to be passed in, so the files array diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml index 2dd09f1070..6ff41c8b74 100644 --- a/.github/workflows/verify_e2e-kubernetes.yml +++ b/.github/workflows/verify_e2e-kubernetes.yml @@ -26,7 +26,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 @@ -35,7 +35,7 @@ jobs: registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml index 4942ae8d2f..a750dfea3b 100644 --- a/.github/workflows/verify_e2e-linux.yml +++ b/.github/workflows/verify_e2e-linux.yml @@ -45,7 +45,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Configure Git run: | @@ -58,7 +58,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml index b2c3c79c78..3bcda5f2b6 100644 --- a/.github/workflows/verify_e2e-techdocs.yml +++ b/.github/workflows/verify_e2e-techdocs.yml @@ -34,7 +34,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 with: python-version: '3.9' diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index 84e50744da..078ddd6855 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -42,7 +42,7 @@ jobs: git config --global core.autocrlf false git config --global core.eol lf - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Configure Git run: | @@ -78,7 +78,7 @@ jobs: uses: browser-actions/setup-chrome@803ef6dfb4fdf22089c9563225d95e4a515820a0 # latest - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} diff --git a/.github/workflows/verify_fossa.yml b/.github/workflows/verify_fossa.yml index fd555159b1..801c5fbd28 100644 --- a/.github/workflows/verify_fossa.yml +++ b/.github/workflows/verify_fossa.yml @@ -19,7 +19,7 @@ jobs: egress-policy: audit - name: Checkout - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Install Fossa run: "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | bash" diff --git a/.github/workflows/verify_microsite.yml b/.github/workflows/verify_microsite.yml index cee89a8ba2..68378aa086 100644 --- a/.github/workflows/verify_microsite.yml +++ b/.github/workflows/verify_microsite.yml @@ -28,12 +28,18 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: node-version: 18.x + - uses: actions/setup-python@v5 + with: + python-version: '3.9' + + - name: Install MkDocs dependencies + run: pip install mkdocs mkdocs-techdocs-core # Skip caching of microsite dependencies, it keeps the global cache size # smaller, which make Windows builds a lot faster for the rest of the project. @@ -47,9 +53,6 @@ jobs: - name: build API reference run: yarn build:api-docs - - name: Install MkDocs dependencies - run: pip3 install mkdocs mkdocs-techdocs-core - - name: Build MkDocs for TechDocs run: mkdocs build --strict diff --git a/.github/workflows/verify_microsite_accessibility.yml b/.github/workflows/verify_microsite_accessibility.yml index fa5e54905f..e0fea1a72c 100644 --- a/.github/workflows/verify_microsite_accessibility.yml +++ b/.github/workflows/verify_microsite_accessibility.yml @@ -19,7 +19,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: Use Node.js 18.x uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml index b0dc4a2445..940c136797 100644 --- a/.github/workflows/verify_storybook.yml +++ b/.github/workflows/verify_storybook.yml @@ -32,7 +32,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: fetch-depth: 0 # Required to retrieve git history @@ -42,7 +42,7 @@ jobs: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ # Needed for auth - name: yarn install - uses: backstage/actions/yarn-install@caa4901322ee3b5af18814ffc837bd052f150073 # v0.6.6 + uses: backstage/actions/yarn-install@af61233abb88019335b07ab855873d991f43d25a # v0.6.7 with: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} - name: storybook yarn install diff --git a/.github/workflows/verify_windows.yml b/.github/workflows/verify_windows.yml index 7d772bd765..32b0452eec 100644 --- a/.github/workflows/verify_windows.yml +++ b/.github/workflows/verify_windows.yml @@ -33,7 +33,7 @@ jobs: with: egress-policy: audit - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 - name: use node.js ${{ matrix.node-version }} uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 diff --git a/ADOPTERS.md b/ADOPTERS.md index 32c136fc52..3878563683 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -262,6 +262,7 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [Cielo](https://www.cielo.com.br) | [@Alex Silva](https://github.com/narokwq) | We are using as our Internal Developer Portal, it provides developers with the resources, information, and tools they need to build high-quality applications and adhere to organizational standards and security practices. | | [Giant Swarm](https://giantswarm.io) | [Lucas Weatherhog](https://github.com/weatherhog) | At Giant Swarm we are using Backstage as our internal developer portal. Heavily using the service catalog and the TechDocs plugin. Further looking into adopting functionalities of our Web UI into Backstage to have a single pane of glass for our core business, managing all our components, and helping developers to be more productive. | | [WD Studios](https://wdstudios.tech) | [Mikael Aboagye](https://github.com/JailbreakPapa) | We are using Backstage as our main internal developer portal for our Programmers and Studio Partners. It's really proven its worth at our studio with on-boarding new programmers! | +| [Anuclei](https://anuclei.com) | [Mark Jackson](https://github.com/markjacksonfishing) | At Anuclei, we are using Backstage as our internal portal for developers, providing all the tools and guidance needed for full-stack software projects. It simplifies our development methods, making innovation and investment in new ideas consistent and easy to repeat. | [Fortnox](https://www.fortnox.se) | [@magnusp](https://github.com/magnusp) | With Backstage we consolidate our internal tools into a single pane of glass and let the catalog drive our user interface. Our software templates onboard our services and teams onto Backstage, and with Techdocs we are letting our developers get back in control of their own documentation. | | [Wefox](https://www.wefox.com) | [@dibenlloch](https://github.com/dibenlloch) | Internal developer portal to consolidate all developers dashboards, company inventory with compliance reports, team management and self-service portal for IT/Team operations. | | [Aurora Innovation](https://aurorainnovation.com) | [@O5ten](https://github.com/O5ten) | Heavy usage of scaffolder, techdocs, homepage, k8s plugin and homegrown plugins to track migration paths and so on within a developer portal. It acts as a starting point for new and old developers to find all of our internal tooling in one place. diff --git a/OWNERS.md b/OWNERS.md index 8080365166..ab35b5b1e5 100644 --- a/OWNERS.md +++ b/OWNERS.md @@ -118,6 +118,16 @@ Scope: Tooling and Community Repo Maintainers for the Backstage [Community Plugi | Philipp Hugenroth | Spotify | [tudi2d](https://github.com/tudi2d) | `tudi2d` | | Vincenzo Scamporlino | Spotify | [vinzscam](https://github.com/vinzscam) | `vinzscam` | +### Events + +Team: @backstage/events-maintainers + +Scope: The Events plugin and library, along with events modules in the main repository + +| Name | Organization | GitHub | Discord | +| ------------------ | ------------------------- | --------------------------------------------- | ------------- | +| Patrick Jungermann | Bonial International GmbH | [pjungermann](https://github.com/pjungermann) | `pjungermann` | + ### Notifications Team: @backstage/notifications-maintainers diff --git a/app-config.yaml b/app-config.yaml index c016260bf8..9e5b5c468c 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -246,7 +246,6 @@ catalog: plugins: - catalog - search - - todo processors: ldapOrg: diff --git a/beps/0003-auth-architecture-evolution/README.md b/beps/0003-auth-architecture-evolution/README.md index 403390e567..33bf80a099 100644 --- a/beps/0003-auth-architecture-evolution/README.md +++ b/beps/0003-auth-architecture-evolution/README.md @@ -1,6 +1,6 @@ --- title: Auth Architecture Evolution -status: implementable +status: implemented authors: - '@Rugvip' owners: diff --git a/beps/0007-auth-external-services/README.md b/beps/0007-auth-external-services/README.md index c8c20879d0..d49cd7992f 100644 --- a/beps/0007-auth-external-services/README.md +++ b/beps/0007-auth-external-services/README.md @@ -12,9 +12,7 @@ creation-date: 2024-03-30 # BEP: Authentication of External Services -<!-- Before merging the initial BEP PR, create a feature issue and update the below link. You can wait with this step until the BEP is ready to be merged. --> - -[**Discussion Issue**](https://github.com/backstage/backstage/issues/NNNNN) +[**Discussion Issue**](https://github.com/backstage/backstage/issues/24349) - [Summary](#summary) - [Motivation](#motivation) @@ -28,17 +26,15 @@ creation-date: 2024-03-30 ## Summary -This proposal builds upon the foundation laid out in the 0003-auth-architecture-evolution BEP by introducing an authentication mechanism designed for external callers seeking to access the REST APIs exposed by Backstage or its plugins. +This proposal builds upon the foundation laid out in the [Auth Architecture Evolution BEP](https://github.com/backstage/backstage/tree/master/beps/0003-auth-architecture-evolution), by improving the authentication mechanisms used by external callers seeking to access the REST APIs exposed by Backstage plugins. -This addition is not intended to supplant or offer an alternative to existing JWT tokens utilized for backend-to-backend or frontend-to-backend communication. JWT tokens remain a viable option for external callers. However, this proposal presents additional options to simplify usage, especially in heterogeneous setups. +Specifically, the inclusion of shared-key based authentication is proposed, along with a framework for integrating different authentication types in the future. Compatibility with the legacy shared-secret token signature mechanism is retained. -Specifically, the inclusion of shared-key based authentication is proposed, along with a framework for integrating different authentication types in the future. - -By implementing this proposed solution, security should not be compromised beyond the existing state when exposing the API to the internet. Nonetheless, it is advisable to maintain a level of protection by shielding the API from direct internet access. +By implementing this proposed solution, security should not be compromised beyond the existing state when exposing the API to the internet. Nonetheless, it is advisable to maintain a level of protection by shielding your deployments from the internet access unless you explicitly need public access. ## Motivation -This proposal represents a progression from the tutorial in https://backstage.io/docs/auth/service-to-service-auth/#usage-in-external-callers in the context of the new Authentication service. +This proposal represents a progression from [the old service to service auth tutorial](https://backstage.io/docs/auth/service-to-service-auth--old/#usage-in-external-callers) in the context of the new `coreServices.auth` and `coreServices.httpAuth` authentication services. It offers expanded configuration possibilities and will include ready-to-use examples as part of the implementation to streamline the process of invoking REST services exposed by Backstage backend plugins for external services. @@ -46,12 +42,16 @@ The previous tutorial lacked clarity on how to effectively structure the call, r Examples of potential use-cases include: -- An external asynchronous service requiring the ability to send notifications to users. To facilitate this process, no code change but configuration only is needed on the Backstage side. +- An external asynchronous service requiring the ability to send notifications to users +- Integrations for external services interacting with the catalog +- Temporary `curl` friendly tokens in local development + +To facilitate this process, no code change but configuration only is needed on the Backstage side. ### Goals - The primary objective is to facilitate access for external heterogeneous services to the Backstage REST API without involving unnecessary complexity. -- This addition is entirely optional. JWT tokens remain mandatory for all internal communication within Backstage. +- Moving to the proposed new auth scheme is entirely optional. The old shared key signature tokens remain usable. - Configuration options will allow specification of which API endpoints can be accessed by an external entity. - Limiting API context and granting distinct external access independently helps mitigate security risks. A compromised external service can only access a restricted portion of the API. - Enhanced clarity and updated examples make it easy to comprehend and utilize. @@ -60,54 +60,108 @@ Examples of potential use-cases include: It is not a goal -- to replace the current Backstage service-to-service authentication or tokens, -- to offer a bypass option for Backstage plugins to circumvent existing service-to-service authentication. Even if feasible, such a bypass would be considered as an anti-pattern. +- To replace the current Backstage service-to-service authentication or tokens, +- To offer a bypass option for Backstage plugins to circumvent existing service-to-service authentication. Even if feasible, such a bypass would be considered as an anti-pattern. ## Proposal -The `app-config.yaml` `backend.auth.keys` property will become an array containing alternative authentication mechanisms for callers. +The `backend.auth.keys` section of your app config remains supported for the time being, but is considered legacy. It is read by the new auth handler code solely for backward compatibility reasons. Using this format will lead to a logged warning urging a migration to the new format described below. -JWT tokens remain obligatory for internal Backstage calls and become optional for external callers. Given the complexity associated with composing JWT tokens by external entities, alternative authentication options will be provided for external callers: +This BEP adds a `backend.auth.externalAccess` section to your app config. This section is the new recommended way of declaring all methods of external service access that you want to support. Like the legacy section above, it is an array, but each element has a `type` field to allow for extensibility. Using an array also means that the configuration system will not make any config merging of access methods across different config files - which avoids unintended mistakes that might otherwise have impacted security. -``` -backend: - auth: - keys: - - type: static - value: ${SERVICE_API_KEY} - context: '/' - - type: jwks - value: https://other-service.acme.org/.well-known/jwks.json - context: '/foo' - - type: certificate - value: - $file: ./service-cert.pem - context: '/foo/bar' -``` - -The static type is designed for a straightforward shared-key strategy. In this approach, an external service provides a secret string to authenticate itself and access REST resources within a specified context. The shared key is transmitted via a new request header, `authorization_static`. - -Ideally, each external service should have its own unique secret key, even when accessing the same context. If a service requires access to different, separate contexts, multiple corresponding entries will be added to the configuration. - -While other authentication types are provided as examples for potential future expansions, they will not be implemented in the initial phase. However, additional types, including those not yet defined, can be introduced in subsequent phases. - -Introducing a new external caller with its exclusive secret key entails updating the app-config.yaml file and restarting the backend. This mechanism is designed to support integration with selected services, and therefore dynamic addition of callers is not necessary. - -New type-specific functions, such as authenticateStatic(), will be integrated into the AuthService, alongside the existing authenticate() function, which will remain dedicated to JWT tokens. - -No changes will be made to the existing APIs, as any necessary adjustments can be incorporated within private functions of the existing DefaultHttpAuthService implementation. - -Specifically, the DefaultHttpAuthService.extractCredentialsFromRequest function will continue to retrieve a bearer token in JWT format from the authorization header as before. If this header is absent, the service will proceed to read and manage the header corresponding to the next authentication type. - -Furthermore, the options parameter of the HttpAuthService.credentials() function will be expanded to include a new context property. This property will be compared to the value of the context configuration property associated with the corresponding authentication key. If the context parameter is not a subset of the configuration property, the request will be denied. +The two types of external access covered by this BEP are `legacy` and `static`. More on that below. ## Design Details -<!-- -This section should contain enough information that the specifics of your -change are understandable. This may include API specs or even code snippets. -If there's any ambiguity about HOW your proposal will be implemented, this is the place to discuss them. ---> +### Configuration + +The following is an example of what an app config section with a single access method could look like: + +```yaml +backend: + auth: + externalAccess: + - type: static + options: + token: ${SERVICE_API_TOKEN} + scope: + plugins: catalog +``` + +Each entry has a `type`, which is any string. The framework handles a number of these types - initially a fixed set, but in the future we might make it extensible. + +The `options` is a general object, and is specific to each type, configuring it as needed. This particular type only had a `token`, which was configured to be taken from an environment variable. + +Each entry may also optionally have a `scope` section that controls what operations that this entry can be used for. Attempting to use this access method for any other scope will lead to 403 error rejections. Scopes can contain plugin IDs and/or permissions. + +Introducing a new external caller with its exclusive secret key entails updating the app-config.yaml file and restarting the backend. This mechanism is designed to support integration with selected services, and therefore dynamic addition of callers is not necessary at this point. + +### Scopes + +Scopes are optional. If you do not specify any scopes, the access method in question has unlimited scope and can perform all types of action. + +In the examples below, either a string or a list of strings can be given. + +If _any_ scope rule matches, the action is permitted. I.e., if you specify a plugin rule, then also adding permission rules for that plugin will have no effect since the plugin rule will have already matched. + +You can limit by the target plugin ID being accessed with the token: + +```yaml +scope: + plugin: catalog +``` + +You can limit by the type of permission being requested: + +```yaml +scope: + permission: catalog.entity.read +``` + +Or by permissions attribute: + +```yaml +scope: + permissionAttributes: { action: read } +``` + +### The Legacy Access Type + +Configuration example: + +```yaml +backend: + auth: + externalAccess: + - type: legacy + options: + secret: ${EXTERNAL_ACCESS_SIGNATURE_SECRET} + # scope: ... +``` + +This corresponds exactly to the old shared secret signature method, and any secrets entered here will be merged with those specified under `backend.auth.keys` if any. + +### The Static Access Type + +Configuration example: + +```yaml +backend: + auth: + externalAccess: + - type: static + options: + token: ${SERVICE_API_TOKEN} + # scope: ... +``` + +This allows you to specify any static token string as an API key, which callers send verbatim as the header `Authorization: Bearer <token>`. + +### Implementation + +The token verification of the two access methods will live entirely with the `coreServices.auth` service implementation, and will be returning regular credentials with a service principal. The implementation will only need to alter the `authenticate` method and no additions to the API will be necessary. + +The service principal type will need to be amended with an optional scope field, carried over from the configuration. This will let the `ServerPermissionClient` compare against the set of allowlisted actions. In addition, the auth service can early-reject based on plugin ID if such rules are given. ## Release Plan @@ -117,13 +171,30 @@ This section should describe the rollout process for any new features. It must t If there is any particular feedback to be gathered during the rollout, this should be described here as well. --> -TBD +The initial pilot implementation of the `legacy` and `static` types has already been merged, along with the corresponding config additions. -- adding different types in the future +Validating this implementation, and adding scope restrictions, is still on todo but could be added incrementally at any time without breaking changes - as long as the default scope is "all". + +We have left it out of the scope of this BEP to allow for addition of more access types. Making that a possibility will likely require the addition of service extension points at a framework level, which is not yet made a priority. + +Potential _future_ access types (not part of this BEP, but rather only for illustration) could for example be: + +```yaml +backend: + auth: + externalAccess: + - type: jwks + options: + url: https://other-service.acme.org/.well-known/jwks.json + - type: certificate + options: + publicCert: + $file: ./service-cert.pem +``` ## Dependencies -- 0003-auth-architecture-evolution +- [BEP-0003: Auth Architecture Evolution](https://github.com/backstage/backstage/tree/master/beps/0003-auth-architecture-evolution) ## Alternatives diff --git a/contrib/docs/tutorials/authenticate-api-requests.md b/contrib/docs/tutorials/authenticate-api-requests.md index 8b71151ee9..838aaffef6 100644 --- a/contrib/docs/tutorials/authenticate-api-requests.md +++ b/contrib/docs/tutorials/authenticate-api-requests.md @@ -1,5 +1,14 @@ # Authenticate API requests +> [!CAUTION] +> This entire guide MUST NOT BE USED by users of Backstage 1.26 and +> newer. If you have applied the changes in this guide, you need to remove them +> again as you upgrade to recent versions of Backstage. When [the new auth +> changes](https://github.com/backstage/backstage/tree/master/beps/0003-auth-architecture-evolution) +> landed backends became natively secured through the framework, and the +> instructions outlined in here can interfere with the backend functioning +> correctly. + The Backstage backend APIs are by default available without authentication. To avoid evil-doers from accessing or modifying data, one might use a network protection mechanism such as a firewall or an authenticating reverse proxy. For Backstage instances that are available on the Internet one can instead use the experimental IdentityClient as outlined below. API requests from frontend plugins include an authorization header with a Backstage identity token acquired when the user logs in. By adding a middleware that verifies said token to be valid and signed by Backstage, non-authenticated requests can be blocked with a 401 Unauthorized response. diff --git a/docs/backend-system/building-backends/08-migrating.md b/docs/backend-system/building-backends/08-migrating.md index e699f54e22..1d7e1dcd03 100644 --- a/docs/backend-system/building-backends/08-migrating.md +++ b/docs/backend-system/building-backends/08-migrating.md @@ -1254,100 +1254,100 @@ backend.add(import('@backstage/plugin-kubernetes-backend/alpha')); The vast majority of the backend plugins that currently live in the Backstage Repo have been migrated and their respective `README`s have details on how they should be installed using the New Backend System. -| Package | Role | Migrated | Uses Alpha Export | Link to `README` | -| ------------------------------------------------------------------ | --------------------- | -------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| @backstage/plugin-adr-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/adr-backend/README.md) | -| @backstage/plugin-airbrake-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/airbrake-backend/README.md) | -| @backstage/plugin-app-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/app-backend/README.md) | -| @backstage/plugin-auth-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend/README.md) | -| @backstage/plugin-auth-backend-module-atlassian-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-atlassian-provider/README.md) | -| @backstage/plugin-auth-backend-module-aws-alb-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-aws-alb-provider/README.md) | -| @backstage/plugin-auth-backend-module-gcp-iap-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-gcp-iap-provider/README.md) | -| @backstage/plugin-auth-backend-module-github-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-github-provider/README.md) | -| @backstage/plugin-auth-backend-module-gitlab-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-gitlab-provider/README.md) | -| @backstage/plugin-auth-backend-module-google-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-google-provider/README.md) | -| @backstage/plugin-auth-backend-module-guest-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-guest-provider/README.md) | -| @backstage/plugin-auth-backend-module-microsoft-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-microsoft-provider/README.md) | -| @backstage/plugin-auth-backend-module-oauth2-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-oauth2-provider/README.md) | -| @backstage/plugin-auth-backend-module-oauth2-proxy-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-oauth2-proxy-provider/README.md) | -| @backstage/plugin-auth-backend-module-oidc-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-oidc-provider/README.md) | -| @backstage/plugin-auth-backend-module-okta-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-okta-provider/README.md) | -| @backstage/plugin-auth-backend-module-pinniped-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-pinniped-provider/README.md) | -| @backstage/plugin-auth-backend-module-vmware-cloud-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-vmware-cloud-provider/README.md) | -| @backstage/plugin-azure-devops-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/azure-devops-backend/README.md) | -| @backstage/plugin-azure-sites-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/azure-sites-backend/README.md) | -| @backstage/plugin-badges-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/badges-backend/README.md) | -| @backstage/plugin-bazaar-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/bazaar-backend/README.md) | -| @backstage/plugin-catalog-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/README.md) | -| @backstage/plugin-catalog-backend-module-aws | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/README.md) | -| @backstage/plugin-catalog-backend-module-azure | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-azure/README.md) | -| @backstage/plugin-catalog-backend-module-backstage-openapi | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-backstage-openapi/README.md) | -| @backstage/plugin-catalog-backend-module-bitbucket-cloud | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-bitbucket-cloud/README.md) | -| @backstage/plugin-catalog-backend-module-bitbucket-server | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-bitbucket-server/README.md) | -| @backstage/plugin-catalog-backend-module-gcp | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-gcp/README.md) | -| @backstage/plugin-catalog-backend-module-gerrit | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-gerrit/README.md) | -| @backstage/plugin-catalog-backend-module-github | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-github/README.md) | -| @backstage/plugin-catalog-backend-module-github-org | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-github-org/README.md) | -| @backstage/plugin-catalog-backend-module-gitlab | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-gitlab/README.md) | -| @backstage/plugin-catalog-backend-module-incremental-ingestion | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-incremental-ingestion/README.md) | -| @backstage/plugin-catalog-backend-module-ldap | backend-plugin-module | | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-ldap/README.md) | -| @backstage/plugin-catalog-backend-module-msgraph | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-msgraph/README.md) | -| @backstage/plugin-catalog-backend-module-openapi | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-openapi/README.md) | -| @backstage/plugin-catalog-backend-module-puppetdb | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-puppetdb/README.md) | -| @backstage/plugin-catalog-backend-module-scaffolder-entity-model | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-scaffolder-entity-model/README.md) | -| @backstage/plugin-catalog-backend-module-unprocessed | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-unprocessed/README.md) | -| @backstage/plugin-code-coverage-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/code-coverage-backend/README.md) | -| @backstage/plugin-devtools-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/devtools-backend/README.md) | -| @backstage/plugin-entity-feedback-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/entity-feedback-backend/README.md) | -| @backstage/plugin-events-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend/README.md) | -| @backstage/plugin-events-backend-module-aws-sqs | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-aws-sqs/README.md) | -| @backstage/plugin-events-backend-module-azure | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-azure/README.md) | -| @backstage/plugin-events-backend-module-bitbucket-cloud | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-bitbucket-cloud/README.md) | -| @backstage/plugin-events-backend-module-gerrit | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gerrit/README.md) | -| @backstage/plugin-events-backend-module-github | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-github/README.md) | -| @backstage/plugin-events-backend-module-gitlab | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gitlab/README.md) | -| @internal/plugin-todo-list-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/example-todo-list-backend/README.md) | -| @backstage/plugin-explore-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) | -| @backstage/plugin-jenkins-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/jenkins-backend/README.md) | -| @backstage/plugin-kafka-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/kafka-backend/README.md) | -| @backstage/plugin-kubernetes-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/kubernetes-backend/README.md) | -| @backstage/plugin-lighthouse-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/lighthouse-backend/README.md) | -| @backstage/plugin-linguist-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/linguist-backend/README.md) | -| @backstage/plugin-nomad-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/nomad-backend/README.md) | -| @backstage/plugin-notifications-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/notifications-backend/README.md) | -| @backstage/plugin-periskop-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/periskop-backend/README.md) | -| @backstage/plugin-permission-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/permission-backend/README.md) | -| @backstage/plugin-permission-backend-module-allow-all-policy | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/permission-backend-module-policy-allow-all/README.md) | -| @backstage/plugin-playlist-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/playlist-backend/README.md) | -| @backstage/plugin-proxy-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/proxy-backend/README.md) | -| @backstage/plugin-rollbar-backend | backend-plugin | | | [README](https://github.com/backstage/backstage/blob/master/plugins/rollbar-backend/README.md) | -| @backstage/plugin-scaffolder-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend/README.md) | -| @backstage/plugin-scaffolder-backend-module-azure | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-azure/README.md) | -| @backstage/plugin-scaffolder-backend-module-bitbucket | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-bitbucket/README.md) | -| @backstage/plugin-scaffolder-backend-module-bitbucket-cloud | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-bitbucket-cloud/README.md) | -| @backstage/plugin-scaffolder-backend-module-bitbucket-server | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-bitbucket-server/README.md) | -| @backstage/plugin-scaffolder-backend-module-confluence-to-markdown | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-confluence-to-markdown/README.md) | -| @backstage/plugin-scaffolder-backend-module-cookiecutter | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-cookiecutter/README.md) | -| @backstage/plugin-scaffolder-backend-module-gerrit | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-gerrit/README.md) | -| @backstage/plugin-scaffolder-backend-module-gitea | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-gitea/README.md) | -| @backstage/plugin-scaffolder-backend-module-github | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-github/README.md) | -| @backstage/plugin-scaffolder-backend-module-gitlab | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-gitlab/README.md) | -| @backstage/plugin-scaffolder-backend-module-rails | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-rails/README.md) | -| @backstage/plugin-scaffolder-backend-module-sentry | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-sentry/README.md) | -| @backstage/plugin-scaffolder-backend-module-yeoman | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-yeoman/README.md) | -| @backstage/plugin-search-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend/README.md) | -| @backstage/plugin-search-backend-module-catalog | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-catalog/README.md) | -| @backstage/plugin-search-backend-module-elasticsearch | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-elasticsearch/README.md) | -| @backstage/plugin-search-backend-module-explore | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-explore/README.md) | -| @backstage/plugin-search-backend-module-pg | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-pg/README.md) | -| @backstage/plugin-search-backend-module-stack-overflow-collator | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-stack-overflow-collator/README.md) | -| @backstage/plugin-search-backend-module-techdocs | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-techdocs/README.md) | -| @backstage/plugin-signals-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/signals-backend/README.md) | -| @backstage/plugin-sonarqube-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/sonarqube-backend/README.md) | -| @backstage/plugin-stack-overflow-backend | backend-plugin | | | [README](https://github.com/backstage/backstage/blob/master/plugins/stack-overflow-backend/README.md) | -| @backstage/plugin-tech-insights-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/tech-insights-backend/README.md) | -| @backstage/plugin-tech-insights-backend-module-jsonfc | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/tech-insights-backend-module-jsonfc/README.md) | -| @backstage/plugin-techdocs-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/techdocs-backend/README.md) | -| @backstage/plugin-todo-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/todo-backend/README.md) | -| @backstage/plugin-user-settings-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/user-settings-backend/README.md) | -| @backstage/plugin-vault-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/vault-backend/README.md) | +| Package | Role | Migrated | Uses Alpha Export | Link to `README` | +| ------------------------------------------------------------------ | --------------------- | -------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| @backstage-community/plugin-adr-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/adr/plugins/adr-backend/README.md) | +| @backstage-community/plugin-airbrake-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/airbrake/plugins/airbrake-backend/README.md) | +| @backstage/plugin-app-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/app-backend/README.md) | +| @backstage/plugin-auth-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend/README.md) | +| @backstage/plugin-auth-backend-module-atlassian-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-atlassian-provider/README.md) | +| @backstage/plugin-auth-backend-module-aws-alb-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-aws-alb-provider/README.md) | +| @backstage/plugin-auth-backend-module-gcp-iap-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-gcp-iap-provider/README.md) | +| @backstage/plugin-auth-backend-module-github-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-github-provider/README.md) | +| @backstage/plugin-auth-backend-module-gitlab-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-gitlab-provider/README.md) | +| @backstage/plugin-auth-backend-module-google-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-google-provider/README.md) | +| @backstage/plugin-auth-backend-module-guest-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-guest-provider/README.md) | +| @backstage/plugin-auth-backend-module-microsoft-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-microsoft-provider/README.md) | +| @backstage/plugin-auth-backend-module-oauth2-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-oauth2-provider/README.md) | +| @backstage/plugin-auth-backend-module-oauth2-proxy-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-oauth2-proxy-provider/README.md) | +| @backstage/plugin-auth-backend-module-oidc-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-oidc-provider/README.md) | +| @backstage/plugin-auth-backend-module-okta-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-okta-provider/README.md) | +| @backstage/plugin-auth-backend-module-pinniped-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-pinniped-provider/README.md) | +| @backstage/plugin-auth-backend-module-vmware-cloud-provider | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-vmware-cloud-provider/README.md) | +| @backstage-community/plugin-azure-devops-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/azure-devops/plugins/azure-devops-backend/README.md) | +| @backstage-community/plugin-azure-sites-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/azure-sites/plugins/azure-sites-backend/README.md) | +| @backstage-community/plugin-badges-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/badges/plugins/badges-backend/README.md) | +| @backstage-community/plugin-bazaar-backend | backend-plugin | true | true | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/bazaar/plugins/bazaar-backend/README.md) | +| @backstage/plugin-catalog-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend/README.md) | +| @backstage/plugin-catalog-backend-module-aws | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/README.md) | +| @backstage/plugin-catalog-backend-module-azure | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-azure/README.md) | +| @backstage/plugin-catalog-backend-module-backstage-openapi | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-backstage-openapi/README.md) | +| @backstage/plugin-catalog-backend-module-bitbucket-cloud | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-bitbucket-cloud/README.md) | +| @backstage/plugin-catalog-backend-module-bitbucket-server | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-bitbucket-server/README.md) | +| @backstage/plugin-catalog-backend-module-gcp | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-gcp/README.md) | +| @backstage/plugin-catalog-backend-module-gerrit | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-gerrit/README.md) | +| @backstage/plugin-catalog-backend-module-github | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-github/README.md) | +| @backstage/plugin-catalog-backend-module-github-org | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-github-org/README.md) | +| @backstage/plugin-catalog-backend-module-gitlab | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-gitlab/README.md) | +| @backstage/plugin-catalog-backend-module-incremental-ingestion | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-incremental-ingestion/README.md) | +| @backstage/plugin-catalog-backend-module-ldap | backend-plugin-module | | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-ldap/README.md) | +| @backstage/plugin-catalog-backend-module-msgraph | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-msgraph/README.md) | +| @backstage/plugin-catalog-backend-module-openapi | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-openapi/README.md) | +| @backstage/plugin-catalog-backend-module-puppetdb | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-puppetdb/README.md) | +| @backstage/plugin-catalog-backend-module-scaffolder-entity-model | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-scaffolder-entity-model/README.md) | +| @backstage/plugin-catalog-backend-module-unprocessed | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-unprocessed/README.md) | +| @backstage-community/plugin-code-coverage-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/code-coverage/plugins/code-coverage-backend/README.md) | +| @backstage/plugin-devtools-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/devtools-backend/README.md) | +| @backstage-community/plugin-entity-feedback-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/entity-feedback/plugins/entity-feedback-backend/README.md) | +| @backstage/plugin-events-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend/README.md) | +| @backstage/plugin-events-backend-module-aws-sqs | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-aws-sqs/README.md) | +| @backstage/plugin-events-backend-module-azure | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-azure/README.md) | +| @backstage/plugin-events-backend-module-bitbucket-cloud | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-bitbucket-cloud/README.md) | +| @backstage/plugin-events-backend-module-gerrit | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gerrit/README.md) | +| @backstage/plugin-events-backend-module-github | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-github/README.md) | +| @backstage/plugin-events-backend-module-gitlab | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gitlab/README.md) | +| @internal/plugin-todo-list-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/example-todo-list-backend/README.md) | +| @backstage-community/plugin-explore-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/explore/plugins/explore-backend/README.md) | +| @backstage-community/plugin-jenkins-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/jenkins/plugins/jenkins-backend/README.md) | +| @backstage-community/plugin-kafka-backend | backend-plugin | true | true | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/kafka/plugins/kafka-backend/README.md) | +| @backstage/plugin-kubernetes-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/kubernetes-backend/README.md) | +| @backstage-community/plugin-lighthouse-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/lighthouse/plugins/lighthouse-backend/README.md) | +| @backstage-community/plugin-linguist-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/linguist/plugins/linguist-backend/README.md) | +| @backstage-community/plugin-nomad-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/nomad/plugins/nomad-backend/README.md) | +| @backstage/plugin-notifications-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/notifications-backend/README.md) | +| @backstage-community/plugin-periskop-backend | backend-plugin | true | true | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/periskop/plugins/periskop-backend/README.md) | +| @backstage/plugin-permission-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/permission-backend/README.md) | +| @backstage/plugin-permission-backend-module-allow-all-policy | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/permission-backend-module-policy-allow-all/README.md) | +| @backstage-community/plugin-playlist-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/playlist/plugins/playlist-backend/README.md) | +| @backstage/plugin-proxy-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/proxy-backend/README.md) | +| @backstage-community/plugin-rollbar-backend | backend-plugin | | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/rollbar/plugins/rollbar-backend/README.md) | +| @backstage/plugin-scaffolder-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend/README.md) | +| @backstage/plugin-scaffolder-backend-module-azure | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-azure/README.md) | +| @backstage/plugin-scaffolder-backend-module-bitbucket | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-bitbucket/README.md) | +| @backstage/plugin-scaffolder-backend-module-bitbucket-cloud | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-bitbucket-cloud/README.md) | +| @backstage/plugin-scaffolder-backend-module-bitbucket-server | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-bitbucket-server/README.md) | +| @backstage/plugin-scaffolder-backend-module-confluence-to-markdown | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-confluence-to-markdown/README.md) | +| @backstage/plugin-scaffolder-backend-module-cookiecutter | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-cookiecutter/README.md) | +| @backstage/plugin-scaffolder-backend-module-gerrit | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-gerrit/README.md) | +| @backstage/plugin-scaffolder-backend-module-gitea | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-gitea/README.md) | +| @backstage/plugin-scaffolder-backend-module-github | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-github/README.md) | +| @backstage/plugin-scaffolder-backend-module-gitlab | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-gitlab/README.md) | +| @backstage/plugin-scaffolder-backend-module-rails | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-rails/README.md) | +| @backstage/plugin-scaffolder-backend-module-sentry | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-sentry/README.md) | +| @backstage/plugin-scaffolder-backend-module-yeoman | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend-module-yeoman/README.md) | +| @backstage/plugin-search-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend/README.md) | +| @backstage/plugin-search-backend-module-catalog | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-catalog/README.md) | +| @backstage/plugin-search-backend-module-elasticsearch | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-elasticsearch/README.md) | +| @backstage/plugin-search-backend-module-explore | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-explore/README.md) | +| @backstage/plugin-search-backend-module-pg | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-pg/README.md) | +| @backstage/plugin-search-backend-module-stack-overflow-collator | backend-plugin-module | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-stack-overflow-collator/README.md) | +| @backstage/plugin-search-backend-module-techdocs | backend-plugin-module | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-techdocs/README.md) | +| @backstage/plugin-signals-backend | backend-plugin | true | | [README](https://github.com/backstage/backstage/blob/master/plugins/signals-backend/README.md) | +| @backstage-community/plugin-sonarqube-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/sonarqube/plugins/sonarqube-backend/README.md) | +| @backstage-community/plugin-stack-overflow-backend | backend-plugin | | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/stack-overflow/plugins/stack-overflow-backend/README.md) | +| @backstage-community/plugin-tech-insights-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/tech-insights/plugins/tech-insights-backend/README.md) | +| @backstage-community/plugin-tech-insights-backend-module-jsonfc | backend-plugin-module | true | | [README](https://github.com/backstage/community-plugins/blob/main/workspaces/tech-insights/plugins/tech-insights-backend-module-jsonfc/README.md) | +| @backstage/plugin-techdocs-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/techdocs-backend/README.md) | +| @backstage-community/plugin-todo-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/todo/plugins/todo-backend/README.md) | +| @backstage/plugin-user-settings-backend | backend-plugin | true | true | [README](https://github.com/backstage/backstage/blob/master/plugins/user-settings-backend/README.md) | +| @backstage-community/plugin-vault-backend | backend-plugin | true | | [README](https://github.com/backstage/community-plugins/blob/master/workspaces/vault/plugins/vault-backend/README.md) | diff --git a/docs/backend-system/core-services/root-http-router.md b/docs/backend-system/core-services/root-http-router.md index 97666cae9d..b3522e1752 100644 --- a/docs/backend-system/core-services/root-http-router.md +++ b/docs/backend-system/core-services/root-http-router.md @@ -5,7 +5,7 @@ sidebar_label: Root Http Router description: Documentation for the Root Http Router service --- -The root HTTP router is a service that allows you to register routes on the root of the backend service. This is useful for things like health checks, or other routes that you want to expose on the root of the backend service. It is used as the base router that backs the `httpRouter` service. Most likely you won't need to use this service directly, but rather use the `httpRouter` service. +The root HTTP router is a service that allows you to register routes on the root of the backend service. This is useful for things like health checks, or other routes that you want to expose on the root of the backend service. It is used as the base router that backs the `httpRouter` service and starts the Node.js HTTP server on backend startup. Most likely you won't need to use this service directly, but rather use the `httpRouter` service. The `/api/:pluginId/` path prefix is reserved for use by plugins to register their own routes via the [HttpRouter](./http-router.md) service. @@ -78,3 +78,26 @@ backend.add( ``` Note that requests towards `/api/*` will never be handled by the `routes` handler unless a matching plugin exists, and will instead typically falling through to the `middleware.notFound()` handler. That is the case regardless of whether there is a configured `indexPath` or not. + +The root HTTP Router service also allows for configuration of the underlying Node.js HTTP server object. This is useful for modifying settings on the HTTP server itself, such as server [timeout](https://nodejs.org/api/http.html#servertimeout), [keepAliveTimeout](https://nodejs.org/api/http.html#serverkeepalivetimeout), and [headersTimeout](https://nodejs.org/api/http.html#serverheaderstimeout). + +A `applyDefaults` helper is also made available to use the default app/router configuration while still enabling custom server configuration + +```ts +import { rootHttpRouterServiceFactory } from '@backstage/backend-app-api'; + +const backend = createBackend(); + +backend.add( + rootHttpRouterServiceFactory({ + configure: ({ server, applyDefaults }) => { + // apply default app/router configuration + applyDefaults(); + + // customize the Node.js HTTP Server timeouts + server.keepAliveTimeout = 65 * 1000; + server.headersTimeout = 66 * 1000; + }, + }), +); +``` diff --git a/docs/contribute/getting-involved.md b/docs/contribute/getting-involved.md index 7c0be46273..c11e870752 100644 --- a/docs/contribute/getting-involved.md +++ b/docs/contribute/getting-involved.md @@ -17,15 +17,15 @@ Look through the GitHub issues for [bugs](https://github.com/backstage/backstage ### Build a plugin -The value of Backstage grows with every new plugin that gets added. Wouldn't it be fantastic if there was a plugin for every infrastructure project out there? We think so. And we would love your help. +The value of Backstage grows with every new plugin that gets added. Wouldn't it be fantastic if there was a plugin for every infrastructure project out there? We think so. And we would love your help. Head over to [the community plugins repo](https://github.com/backstage/community-plugins) and get started! A great reference example of a plugin can be found on [our blog](https://backstage.io/blog/2020/04/06/lighthouse-plugin) (thanks [@fastfrwrd](https://github.com/fastfrwrd)!) -What kind of plugins should/could be created? Some inspiration from the 120+ plugins that we have developed inside Spotify can be found [here](https://backstage.io/demos), but we will keep a running list of suggestions labeled with [[plugin]](https://github.com/backstage/backstage/labels/plugin). +What kind of plugins should/could be created? Some inspiration from the 120+ plugins that we have developed inside Spotify can be found [here](https://backstage.io/demos), but we will keep a running list of suggestions labeled with [[plugin]](https://github.com/backstage/community-plugins/labels/plugin) in our [community plugins repo](https://github.com/backstage/community-plugins). ### Suggesting a plugin -If you start developing a plugin that you aim to release as open source, we suggest that you create a [new Issue](https://github.com/backstage/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME). This helps the community know what plugins are in development. +If you start developing a plugin that you aim to release as open source, we suggest that you create a [new Issue](https://github.com/backstage/community-plugins/issues/new/choose) in the community plugins repo. This helps the community know what plugins are in development. You can also use this process if you have an idea for a good plugin but you hope that someone else will pick up the work. diff --git a/docs/faq/technical.md b/docs/faq/technical.md index 83e2926cc1..ffd99dadcd 100644 --- a/docs/faq/technical.md +++ b/docs/faq/technical.md @@ -100,10 +100,10 @@ You can browse and search for all available plugins in the [Plugin Directory](https://backstage.io/plugins). If you can't find it in the directory, before you write a plugin -[search the plugin issues](https://github.com/backstage/backstage/issues?q=is%3Aissue+label%3Aplugin+) +[search the plugin issues on the community plugins repo](https://github.com/backstage/community-plugins/issues?q=is%3Aissue+is%3Aopen+label%3Aplugin) to see if is in the works. If no one's thought of it yet, great! Open a new issue as -[a plugin suggestion](https://github.com/backstage/backstage/issues/new/choose) +[a plugin suggestion](https://github.com/backstage/community-plugins/issues/new/choose) and describe what your plugin will do. This will help coordinate our contributors' efforts and avoid duplicating existing functionality. @@ -195,10 +195,9 @@ ambition will be to keep Backstage modular. ### How can I get involved? Jump right in! Come help us fix some of the -[early bugs and good first issues](https://github.com/backstage/backstage/contribute) -or reach [a new milestone](https://github.com/backstage/backstage/milestones). -Or write an open source plugin for Backstage, like this -[Lighthouse plugin](https://github.com/backstage/backstage/tree/master/plugins/lighthouse). +[early bugs and good first issues](https://github.com/backstage/backstage/contribute). +Or write an open source plugin for Backstage in our +[community plugins repository](https://github.com/backstage/community-plugins). See all the ways you can [contribute here](https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md). We'd love to have you as part of the community. diff --git a/docs/features/search/README.md b/docs/features/search/README.md index 97d3d7efcb..93aa22ebe1 100644 --- a/docs/features/search/README.md +++ b/docs/features/search/README.md @@ -32,11 +32,11 @@ The following sections show the plugins and search engines currently supported b ### Plugins integrated with Backstage Search -| Plugin | Support Status | -| ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- | -| Software Catalog | ✅ | -| [TechDocs](./how-to-guides.md#how-to-index-techdocs-documents) | ✅ | -| [Stack Overflow](https://github.com/backstage/backstage/blob/master/plugins/stack-overflow-backend/README.md#index-stack-overflow-questions-to-search) | ✅ | +| Plugin | Support Status | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | +| Software Catalog | ✅ | +| [TechDocs](./how-to-guides.md#how-to-index-techdocs-documents) | ✅ | +| [Stack Overflow](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-stack-overflow-collator/README.md#index-stack-overflow-questions-to-search) | ✅ | ### Search engines diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index 038e94bec3..416eb27fbd 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -1265,6 +1265,7 @@ metadata: description: Everything about artists spec: owner: artist-relations-team + subdomainOf: audio-domain ``` In addition to the [common envelope metadata](#common-to-all-kinds-the-metadata) @@ -1293,6 +1294,15 @@ but there will always be one ultimate owner. | ------------------------------------------------------ | ------------------------------------------ | ------------------------------------------------------------------------------- | | [`Group`](#kind-group) (default), [`User`](#kind-user) | Same as this entity, typically `default` | [`ownerOf`, and reverse `ownedBy`](well-known-relations.md#ownedby-and-ownerof) | +### `spec.subdomainOf` [optional] + +An [entity reference](references.md#string-references) to another domain of +which the domain is a part, e.g. `audio`. This field is optional. + +| [`kind`](#apiversion-and-kind-required) | Default [`namespace`](#namespace-optional) | Generated [relation](well-known-relations.md) type | +| --------------------------------------- | ------------------------------------------ | ----------------------------------------------------------------------------- | +| [`Domain`](#kind-domain) (default) | Same as this entity, typically `default` | [`partOf`, and reverse `hasPart`](well-known-relations.md#partof-and-haspart) | + ## Kind: Location Describes the following entity kind: diff --git a/docs/features/software-catalog/extending-the-model.md b/docs/features/software-catalog/extending-the-model.md index 86f2d7c02d..b3d7de3a65 100644 --- a/docs/features/software-catalog/extending-the-model.md +++ b/docs/features/software-catalog/extending-the-model.md @@ -120,7 +120,7 @@ the infrastructure tooling through plugins. Different plugins are used for managing different types of components. For example, the -[Lighthouse plugin](https://github.com/backstage/backstage/tree/master/plugins/lighthouse) +[Lighthouse plugin](https://github.com/backstage/community-plugins/tree/main/workspaces/lighthouse/plugins/lighthouse) only makes sense for Websites. The more specific you can be in how you model your software, the easier it is to provide plugins that are contextual. diff --git a/docs/features/software-catalog/well-known-relations.md b/docs/features/software-catalog/well-known-relations.md index bfcbcb780a..6d61847a15 100644 --- a/docs/features/software-catalog/well-known-relations.md +++ b/docs/features/software-catalog/well-known-relations.md @@ -99,11 +99,12 @@ A relation with a [Domain](descriptor-format.md#kind-domain), [System](descriptor-format.md#kind-system) or [Component](descriptor-format.md#kind-component) entity, typically from a [Component](descriptor-format.md#kind-component), -[API](descriptor-format.md#kind-api), or -[System](descriptor-format.md#kind-system). +[API](descriptor-format.md#kind-api), +[System](descriptor-format.md#kind-system), or +[Domain](descriptor-format.md#kind-domain), These relations express that a component belongs to a larger component; a -component, API or resource belongs to a system; or that a system is grouped -under a domain. +component, API or resource belongs to a system; that a system is grouped +under a domain; or that a domain belongs to a larger domain. This relation is commonly based on `spec.system` or `spec.domain`. diff --git a/docs/getting-started/app-custom-theme.md b/docs/getting-started/app-custom-theme.md index 15fef0fb9a..8aadeaf19a 100644 --- a/docs/getting-started/app-custom-theme.md +++ b/docs/getting-started/app-custom-theme.md @@ -19,7 +19,7 @@ import { palettes, } from '@backstage/theme'; -const myTheme = createUnifiedTheme({ +export const myTheme = createUnifiedTheme({ ...createBaseThemeOptions({ palette: palettes.light, }), @@ -73,7 +73,7 @@ import { shapes, } from '@backstage/theme'; -const myTheme = createUnifiedTheme({ +export const myTheme = createUnifiedTheme({ ...createBaseThemeOptions({ palette: { ...palettes.light, @@ -158,7 +158,7 @@ import { palettes, } from '@backstage/theme'; -const myTheme = createUnifiedTheme({ +export const myTheme = createUnifiedTheme({ ...createBaseThemeOptions({ palette: palettes.light, typography: { @@ -210,7 +210,7 @@ import { palettes, } from '@backstage/theme'; -const myTheme = createUnifiedTheme({ +export const myTheme = createUnifiedTheme({ ...createBaseThemeOptions({ palette: palettes.light, typography: { @@ -248,10 +248,11 @@ const myCustomFont = { local('My-Custom-Font'), url(${MyCustomFont}) format('woff2'), `, -}, +}; export const myTheme = createUnifiedTheme({ fontFamily: 'My-Custom-Font', + palette: palettes.light, components: { MuiCssBaseline: { styleOverrides: { @@ -259,7 +260,7 @@ export const myTheme = createUnifiedTheme({ }, }, }, -}; +}); ``` If you want to utilize different or multiple fonts, then you can set the top level `fontFamily` to what you want for your body, and then override `fontFamily` in `typography` to control fonts for various headings. @@ -277,7 +278,7 @@ const myCustomFont = { local('My-Custom-Font'), url(${MyCustomFont}) format('woff2'), `, -}, +}; const myAwesomeFont = { fontFamily: 'My-Awesome-Font', @@ -288,7 +289,7 @@ const myAwesomeFont = { local('My-Awesome-Font'), url(${myAwesomeFont}) format('woff2'), `, -}, +}; export const myTheme = createUnifiedTheme({ fontFamily: 'My-Custom-Font', @@ -314,7 +315,7 @@ export const myTheme = createUnifiedTheme({ }, defaultPageTheme: 'home', }), -}; +}); ``` ## Overriding Backstage and Material UI components styles @@ -345,7 +346,7 @@ import { palettes, } from '@backstage/theme'; -const myTheme = createUnifiedTheme({ +export const myTheme = createUnifiedTheme({ ...createBaseThemeOptions({ palette: palettes.light, }), @@ -406,8 +407,6 @@ You can change the following [icons](https://github.com/backstage/backstage/blob In your front-end application, locate the `src` folder. We suggest creating the `assets/icons` directory and `CustomIcons.tsx` file. -> Another example [here](https://github.com/backstage/backstage/blob/master/plugins/azure-devops/src/components/AzurePipelinesIcon/AzurePipelinesIcon.tsx), if you want to ensure proper behavior in light and dark themes. - ```tsx title="customIcons.tsx" import { SvgIcon, SvgIconProps } from '@material-ui/core'; diff --git a/docs/getting-started/config/authentication.md b/docs/getting-started/config/authentication.md index 39b1f7d306..874964696a 100644 --- a/docs/getting-started/config/authentication.md +++ b/docs/getting-started/config/authentication.md @@ -72,11 +72,19 @@ components: { }, ``` -> Note: The default Backstage app comes with a guest Sign In Resolver. This resolver makes all users share a single "guest" identity and is only intended as a minimum requirement to quickly get up and running. You can read more about how [Sign In Resolvers](../../auth/identity-resolver.md#sign-in-resolvers) play a role in creating a [Backstage User Identity](../../auth/identity-resolver.md#backstage-user-identity) for logged in users. +:::note Note + +The default Backstage app comes with a guest Sign In Resolver. This resolver makes all users share a single "guest" identity and is only intended as a minimum requirement to quickly get up and running. You can read more about how [Sign In Resolvers](../../auth/identity-resolver.md#sign-in-resolvers) play a role in creating a [Backstage User Identity](../../auth/identity-resolver.md#backstage-user-identity) for logged in users. + +::: Restart Backstage from the terminal, by stopping it with `Control-C`, and starting it with `yarn dev` . You should be welcomed by a login prompt! -> Note: Sometimes the frontend starts before the backend resulting in errors on the sign in page. Wait for the backend to start and then reload Backstage to proceed. +:::note Note + +Sometimes the frontend starts before the backend resulting in errors on the sign in page. Wait for the backend to start and then reload Backstage to proceed. + +::: To learn more about Authentication in Backstage, here are some docs you could read: @@ -126,7 +134,11 @@ integrations: token: ${GITHUB_TOKEN} # this will use the environment variable GITHUB_TOKEN ``` -> Note: If you've updated the configuration for your integration, it's likely that the backend will need a restart to apply these changes. To do this, stop the running instance in your terminal with `Control-C`, then start it again with `yarn dev`. Once the backend has restarted, retry the operation. +:::note Note + +If you've updated the configuration for your integration, it's likely that the backend will need a restart to apply these changes. To do this, stop the running instance in your terminal with `Control-C`, then start it again with `yarn dev`. Once the backend has restarted, retry the operation. + +::: Some helpful links, for if you want to learn more about: diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 1690035b9b..99fdb3d8ed 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -164,7 +164,7 @@ Share your experiences, comments, or suggestions with us: [on discord](https://discord.gg/backstage-687207715902193673), file issues for any [feature](https://github.com/backstage/backstage/issues/new?labels=help+wanted&template=feature_template.md) or -[plugin suggestions](https://github.com/backstage/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME), +[plugin suggestions](https://github.com/backstage/community-plugins/issues/new/choose), or [bugs](https://github.com/backstage/backstage/issues/new?labels=bug&template=bug_template.md) you have, and feel free to diff --git a/docs/integrations/azure/org.md b/docs/integrations/azure/org.md index 38c2e7618a..5e39aaeb7d 100644 --- a/docs/integrations/azure/org.md +++ b/docs/integrations/azure/org.md @@ -146,6 +146,18 @@ microsoftGraphOrg: search: '"description:One" AND ("displayName:Video" OR "displayName:Drive")' ``` +### User photos + +By default, the photos of users will be fetched and added to each user entity. For huge organizations this may be unfeasible, as it will take a _very_ long time, and can be disabled by setting `loadPhotos` to `false`: + +```yaml +microsoftGraphOrg: + providerId: + user: + filter: ... + loadPhotos: false +``` + ## Customizing Transformation Ingested entities can be customized by providing custom transformers. diff --git a/docs/integrations/bitbucketServer/discovery.md b/docs/integrations/bitbucketServer/discovery.md index f37732b600..d9fc946460 100644 --- a/docs/integrations/bitbucketServer/discovery.md +++ b/docs/integrations/bitbucketServer/discovery.md @@ -63,6 +63,7 @@ catalog: filters: # optional projectKey: '^apis-.*$' # optional; RegExp repoSlug: '^service-.*$' # optional; RegExp + skipArchivedRepos: true # optional; boolean schedule: # same options as in TaskScheduleDefinition # supports cron, ISO duration, "human duration" as used in code frequency: { minutes: 30 } @@ -81,6 +82,8 @@ catalog: Regular expression used to filter results based on the project key. - **`repoSlug`** _(optional)_: Regular expression used to filter results based on the repo slug. + - **`skipArchivedRepos`** _(optional)_: + Boolean flag to filter out archived repositories. - **`schedule`**: - **`frequency`**: How often you want the task to run. The system does its best to avoid overlapping invocations. diff --git a/docs/integrations/github/discovery.md b/docs/integrations/github/discovery.md index 93ab00146e..d0721e06f6 100644 --- a/docs/integrations/github/discovery.md +++ b/docs/integrations/github/discovery.md @@ -26,27 +26,11 @@ package. yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-github ``` -And then add the entity provider to your catalog builder: +And then update your backend by adding the following line: -```ts title="packages/backend/src/plugins/catalog.ts" -/* highlight-add-next-line */ -import { GithubEntityProvider } from '@backstage/plugin-catalog-backend-module-github'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise<Router> { - const builder = await CatalogBuilder.create(env); - /* highlight-add-start */ - builder.addEntityProvider( - GithubEntityProvider.fromConfig(env.config, { - logger: env.logger, - scheduler: env.scheduler, - }), - ); - /* highlight-add-end */ - - // .. -} +```ts title="packages/backend/src/index.ts" +// github discovery +backend.add(import('@backstage/plugin-catalog-backend-module-github/alpha')); ``` ## Installation with Events Support diff --git a/docs/integrations/gitlab/discovery.md b/docs/integrations/gitlab/discovery.md index d41f4f8de5..91efe05fee 100644 --- a/docs/integrations/gitlab/discovery.md +++ b/docs/integrations/gitlab/discovery.md @@ -11,28 +11,11 @@ entities from GitLab. The entity provider will crawl the GitLab instance and reg entities matching the configured paths. This can be useful as an alternative to static locations or manually adding things to the catalog. -To use the discovery provider, you'll need a GitLab integration -[set up](locations.md) with a `token`. Then you can add a provider config per group -to the catalog configuration: +This provider can also be configured to ingest GitLab data based on [GitLab Webhooks](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#configure-a-webhook-in-gitlab). The events currently accepted are: -```yaml -catalog: - providers: - gitlab: - yourProviderId: - host: gitlab-host # Identifies one of the hosts set up in the integrations - branch: main # Optional. Used to discover on a specific branch - fallbackBranch: main # Optional. Fallback to be used if there is no default branch configured at the Gitlab repository. It is only used, if `branch` is undefined. Uses `master` as default - skipForkedRepos: false # Optional. If the project is a fork, skip repository - group: example-group # Optional. Group and subgroup (if needed) to look for repositories. If not present the whole instance will be scanned - entityFilename: catalog-info.yaml # Optional. Defaults to `catalog-info.yaml` - projectPattern: '[\s\S]*' # Optional. Filters found projects based on provided patter. Defaults to `[\s\S]*`, which means to not filter anything - schedule: # optional; same options as in TaskScheduleDefinition - # supports cron, ISO duration, "human duration" as used in code - frequency: { minutes: 30 } - # supports ISO duration, "human duration" as used in code - timeout: { minutes: 3 } -``` +- [`push`](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#push-events). + +## Installation As this provider is not one of the default providers, you will first need to install the gitlab catalog plugin: @@ -42,15 +25,93 @@ the gitlab catalog plugin: yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-gitlab ``` -Once you've done that, you'll also need to add the segment below to `packages/backend/src/plugins/catalog.ts`: +### Installation with New Backend System + +Then add the following to your backend initialization: + +```ts title="packages/backend/src/index.ts +// optional if you want HTTP endpoints to receive external events +// backend.add(import('@backstage/plugin-events-backend/alpha')); +// optional if you want to use AWS SQS instead of HTTP endpoints to receive external events +// backend.add(import('@backstage/plugin-events-backend-module-aws-sqs/alpha')); +// optional - event router for gitlab. See.: https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gitlab/README.md +// backend.add(eventsModuleGitlabEventRouter()); +// optional - token validator for the gitlab topic +// backend.add(eventsModuleGitlabWebhook()); +backend.add(import('@backstage/plugin-catalog-backend-module-gitlab/alpha')); +``` + +You need to decide how you want to receive events from external sources like + +- [via HTTP endpoint](https://github.com/backstage/backstage/blob/master/plugins/events-backend/README.md#configuration) +- [via an AWS SQS queue](https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-aws-sqs/README.md) + +Further documentation: + +- [Events Plugin](https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md) +- [GitLab Module for the Events Plugin](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gitlab/README.md) + +### Installation with Legacy Backend System + +#### Installation without Events Support + +Add the segment below to `packages/backend/src/plugins/catalog.ts`: ```ts title="packages/backend/src/plugins/catalog.ts" +/* highlight-add-next-line */ import { GitlabDiscoveryEntityProvider } from '@backstage/plugin-catalog-backend-module-gitlab'; -const builder = await CatalogBuilder.create(env); -/** ... other processors and/or providers ... */ -builder.addEntityProvider( - ...GitlabDiscoveryEntityProvider.fromConfig(env.config, { +export default async function createPlugin( + env: PluginEnvironment, +): Promise<Router> { + const builder = await CatalogBuilder.create(env); + /* highlight-add-start */ + builder.addEntityProvider( + ...GitlabDiscoveryEntityProvider.fromConfig(env.config, { + logger: env.logger, + // optional: alternatively, use scheduler with schedule defined in app-config.yaml + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + // optional: alternatively, use schedule + scheduler: env.scheduler, + }), + ); + /* highlight-add-end */ + // .. +} +``` + +#### Installation with Events Support + +Please follow the installation instructions at + +- [Events Plugin](https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md) +- [GitLab Module for the Events Plugin](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gitlab/README.md) + +Additionally, you need to decide how you want to receive events from external sources like + +- [via HTTP endpoint](https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md) +- [via an AWS SQS queue](https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-aws-sqs/README.md) + +Set up your provider + +```ts title="packages/backend/src/plugins/catalog.ts" +import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; +/* highlight-add-next-line */ +import { GitlabDiscoveryEntityProvider } from '@backstage/plugin-catalog-backend-module-gitlab'; +import { ScaffolderEntitiesProcessor } from '@backstage/plugin-scaffolder-backend'; +import { Router } from 'express'; +import { PluginEnvironment } from '../types'; + +export default async function createPlugin( + env: PluginEnvironment, +): Promise<Router> { + const builder = await CatalogBuilder.create(env); + builder.addProcessor(new ScaffolderEntitiesProcessor()); + /* highlight-add-start */ + const gitlabProvider = GitlabDiscoveryEntityProvider.fromConfig(env.config, { logger: env.logger, // optional: alternatively, use scheduler with schedule defined in app-config.yaml schedule: env.scheduler.createScheduledTaskRunner({ @@ -59,19 +120,45 @@ builder.addEntityProvider( }), // optional: alternatively, use schedule scheduler: env.scheduler, - }), -); + }); + env.eventBroker.subscribe(gitlabProvider); + builder.addEntityProvider(gitlabProvider); + /* highlight-add-end */ + const { processingEngine, router } = await builder.build(); + await processingEngine.start(); + return router; +} +``` + +## Configuration + +To use the discovery provider, you'll need a GitLab integration +[set up](locations.md) with a `token`. Then you can add a provider config per group +to the catalog configuration. + +> > NOTE: if you are using the New Backend System, the `schedule` has to be setup in the config, as shown below. + +```yaml title="app-config.yaml" +catalog: + providers: + gitlab: + yourProviderId: + host: gitlab-host # Identifies one of the hosts set up in the integrations + branch: main # Optional. Used to discover on a specific branch + fallbackBranch: master # Optional. Fallback to be used if there is no default branch configured at the Gitlab repository. It is only used, if `branch` is undefined. Uses `master` as default + skipForkedRepos: false # Optional. If the project is a fork, skip repository + group: example-group # Optional. Group and subgroup (if needed) to look for repositories. If not present the whole instance will be scanned + entityFilename: catalog-info.yaml # Optional. Defaults to `catalog-info.yaml` + projectPattern: '[\s\S]*' # Optional. Filters found projects based on provided patter. Defaults to `[\s\S]*`, which means to not filter anything + schedule: # Same options as in TaskScheduleDefinition. Optional for the Legacy Backend System + # supports cron, ISO duration, "human duration" as used in code + frequency: { minutes: 30 } + # supports ISO duration, "human duration" as used in code + timeout: { minutes: 3 } ``` ## Alternative processor -```yaml -catalog: - locations: - - type: gitlab-discovery - target: https://gitlab.com/group/subgroup/blob/main/catalog-info.yaml -``` - As alternative to the entity provider `GitlabDiscoveryEntityProvider` you can still use the `GitLabDiscoveryProcessor`. @@ -109,6 +196,15 @@ export default async function createPlugin( } ``` +And add the following to your app-config.yaml + +```yaml +catalog: + locations: + - type: gitlab-discovery + target: https://gitlab.com/group/subgroup/blob/main/catalog-info.yaml +``` + If you don't want create location object if file with component definition do not exists in project, you can set the `skipReposWithoutExactFileMatch` option. That can reduce count of request to gitlab with 404 status code. If you don't want to create location object if the project is a fork, you can set the `skipForkedRepos` option. diff --git a/docs/integrations/gitlab/org.md b/docs/integrations/gitlab/org.md index f2a483c9d1..14587461e5 100644 --- a/docs/integrations/gitlab/org.md +++ b/docs/integrations/gitlab/org.md @@ -11,34 +11,134 @@ groups -- directly from GitLab. The result is a hierarchy of [`Group`](../../features/software-catalog/descriptor-format.md#kind-group) entities that mirrors your org setup. +This provider can also be configured to ingest GitLab data based on [GitLab System hooks](https://docs.gitlab.com/ee/administration/system_hooks.html). The events currently accepted are: + +- `group_create` +- `group_destroy` +- `group_rename` +- `user_create` +- `user_destroy` +- `user_add_to_group` +- `user_remove_from_group` + +## Installation + As this provider is not one of the default providers, you will first need to install the Gitlab provider plugin: ```bash # From your Backstage root directory -yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-gitlab +yarn --cwd packages/backend add @backstage/plugin-catalog-backend-module-gitlab @backstage/plugin-catalog-backend-module-gitlab-org ``` -Then add the plugin to the plugin catalog `packages/backend/src/plugins/catalog.ts`: +### Installation with New Backend System + +Then add the following to your backend initialization: + +```ts title="packages/backend/src/index.ts +// optional if you want HTTP endpoints to receive external events +// backend.add(import('@backstage/plugin-events-backend/alpha')); +// optional if you want to use AWS SQS instead of HTTP endpoints to receive external events +// backend.add(import('@backstage/plugin-events-backend-module-aws-sqs/alpha')); +// optional - event router for gitlab. See.: https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gitlab/README.md +// backend.add(eventsModuleGitlabEventRouter()); +// optional - token validator for the gitlab topic +// backend.add(eventsModuleGitlabWebhook()); +backend.add(import('@backstage/plugin-catalog-backend-module-gitlab-org')); +``` + +You need to decide how you want to receive events from external sources like + +- [via HTTP endpoint](https://github.com/backstage/backstage/blob/master/plugins/events-backend/README.md#configuration) +- [via an AWS SQS queue](https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-aws-sqs/README.md) + +Further documentation: + +- [GitLab System hooks](https://docs.gitlab.com/ee/administration/system_hooks.html) +- [Events Plugin](https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md) +- [GitLab Module for the Events Plugin](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gitlab/README.md) + +### Installation with Legacy Backend System + +#### Installation without Events Support + +Add the plugin to the plugin catalog `packages/backend/src/plugins/catalog.ts`: ```ts /* packages/backend/src/plugins/catalog.ts */ /* highlight-add-next-line */ import { GitlabOrgDiscoveryEntityProvider } from '@backstage/plugin-catalog-backend-module-gitlab'; -const builder = await CatalogBuilder.create(env); -/** ... other processors and/or providers ... */ -/* highlight-add-start */ -builder.addEntityProvider( - ...GitlabOrgDiscoveryEntityProvider.fromConfig(env.config, { - logger: env.logger, - // optional: alternatively, use scheduler with schedule defined in app-config.yaml - schedule: env.scheduler.createScheduledTaskRunner({ - frequency: { minutes: 30 }, - timeout: { minutes: 3 }, +export default async function createPlugin( + env: PluginEnvironment, +): Promise<Router> { + const builder = await CatalogBuilder.create(env); + /** ... other processors and/or providers ... */ + /* highlight-add-start */ + builder.addEntityProvider( + ...GitlabOrgDiscoveryEntityProvider.fromConfig(env.config, { + logger: env.logger, + // optional: alternatively, use scheduler with schedule defined in app-config.yaml + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + // optional: alternatively, use schedule + scheduler: env.scheduler, }), - }), -); -/* highlight-add-end */ + ); + /* highlight-add-end */ + // .. +} +``` + +#### Installation with Events Support + +Please follow the installation instructions at + +- [Events Plugin](https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md) +- [GitLab Module for the Events Plugin](https://github.com/backstage/backstage/blob/master/plugins/events-backend-module-gitlab/README.md) + +Additionally, you need to decide how you want to receive events from external sources like + +- [via HTTP endpoint](https://github.com/backstage/backstage/tree/master/plugins/events-backend/README.md) +- [via an AWS SQS queue](https://github.com/backstage/backstage/tree/master/plugins/events-backend-module-aws-sqs/README.md) + +Set up your provider + +```ts title="packages/backend/src/plugins/catalog.ts" +import { CatalogBuilder } from '@backstage/plugin-catalog-backend'; +/* highlight-add-next-line */ +import { GitlabOrgDiscoveryEntityProvider } from '@backstage/plugin-catalog-backend-module-gitlab'; +import { ScaffolderEntitiesProcessor } from '@backstage/plugin-scaffolder-backend'; +import { Router } from 'express'; +import { PluginEnvironment } from '../types'; + +export default async function createPlugin( + env: PluginEnvironment, +): Promise<Router> { + const builder = await CatalogBuilder.create(env); + builder.addProcessor(new ScaffolderEntitiesProcessor()); + /* highlight-add-start */ + const gitlabOrgProvider = GitlabOrgDiscoveryEntityProvider.fromConfig( + env.config, + { + logger: env.logger, + // optional: alternatively, use scheduler with schedule defined in app-config.yaml + schedule: env.scheduler.createScheduledTaskRunner({ + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, + }), + // optional: alternatively, use schedule + scheduler: env.scheduler, + }, + ); + env.eventBroker.subscribe(gitlabOrgProvider); + builder.addEntityProvider(gitlabOrgProvider); + /* highlight-add-end */ + const { processingEngine, router } = await builder.build(); + await processingEngine.start(); + return router; +} ``` ## Configuration @@ -58,6 +158,8 @@ amount of data, this can take significant time and resources. 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. +> > NOTE: if you are using the New Backend System, the `schedule` has to be setup in the config, as shown below. + ```yaml catalog: providers: @@ -66,7 +168,13 @@ catalog: host: gitlab.com orgEnabled: true group: org/teams # Required for gitlab.com when `orgEnabled: true`. Optional for self managed. Must not end with slash. Accepts only groups under the provided path (which will be stripped) + allowInherited: true # Allow groups to be ingested even if there are no direct members. groupPattern: '[\s\S]*' # Optional. Filters found groups based on provided pattern. Defaults to `[\s\S]*`, which means to not filter anything + schedule: # Same options as in TaskScheduleDefinition. Optional for the Legacy Backend System. + # supports cron, ISO duration, "human duration" as used in code + frequency: { minutes: 30 } + # supports ISO duration, "human duration" as used in code + timeout: { minutes: 3 } ``` ### Groups @@ -107,6 +215,74 @@ catalog: - allow: [Group, User] ``` +### Custom Transformers + +You can inject your own transformation logic to help map GitLab API responses +into Backstage entities. You can do this on the user and group requests to +enable you to do further processing or updates to these entities. + +To enable this you pass a function into the `GitlabOrgDiscoveryEntityProvider`. You can +pass a `UserTransformer`, a `GroupEntitiesTransformer` or a `GroupNameTransformer` (or all of them)). The function is invoked +for each item (user or group) that is returned from the API. + +The example below uses the groupNameTransformer option to change the metadata.name property of the Backstage Group Entity. Instead of populating it with the usual `group.full_path` data that comes from GitLab, it uses the `group.id`: + +```ts +import { loggerToWinstonLogger } from '@backstage/backend-common'; +import { + coreServices, + createBackendModule, +} from '@backstage/backend-plugin-api'; +import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; +import { eventsServiceRef } from '@backstage/plugin-events-node'; +import { + GitlabOrgDiscoveryEntityProvider, + /* highlight-add-next-line */ + GroupNameTransformerOptions, +} from '@backstage/plugin-catalog-backend-module-gitlab'; + +/* highlight-add-start */ +function customGroupNameTransformer( + options: GroupNameTransformerOptions, +): string { + return `${options.group.id}`; +} +/* highlight-add-end */ + +/** + * Registers the GitlabDiscoveryEntityProvider with the catalog processing extension point. + * + * @alpha + */ +export const catalogModuleGitlabOrgDiscoveryEntityProvider = + createBackendModule({ + pluginId: 'catalog', + moduleId: 'gitlabOrgDiscoveryEntityProvider', + register(env) { + env.registerInit({ + deps: { + config: coreServices.rootConfig, + catalog: catalogProcessingExtensionPoint, + logger: coreServices.logger, + scheduler: coreServices.scheduler, + events: eventsServiceRef, + }, + async init({ config, catalog, logger, scheduler, events }) { + const gitlabOrgDiscoveryEntityProvider = + GitlabOrgDiscoveryEntityProvider.fromConfig(config, { + /* highlight-add-next-line */ + groupNameTransformer: customGroupNameTransformer, + logger: loggerToWinstonLogger(logger), + events, + scheduler, + }); + catalog.addEntityProvider(gitlabOrgDiscoveryEntityProvider); + }, + }); + }, + }); +``` + ## Troubleshooting **NOTE**: If any groups that are being ingested are empty groups (i.e. do not diff --git a/docs/overview/architecture-overview.md b/docs/overview/architecture-overview.md index f975baf1e1..2295a3e503 100644 --- a/docs/overview/architecture-overview.md +++ b/docs/overview/architecture-overview.md @@ -61,9 +61,9 @@ The CircleCI plugin is available on `/circleci`. Each plugin is a client side application which mounts itself on the UI. Plugins are written in TypeScript or JavaScript. They each live in their own directory -in `backstage/plugins`. For example, the source code for the lighthouse plugin +in the `plugins` folder. For example, the source code for the catalog plugin is available at -[backstage/plugins/lighthouse](https://github.com/backstage/backstage/tree/master/plugins/lighthouse). +[plugins/catalog](https://github.com/backstage/backstage/tree/master/plugins/catalog). ### Installing plugins diff --git a/docs/plugins/backend-plugin.md b/docs/plugins/backend-plugin.md index 497a6be9b9..7a51cb635c 100644 --- a/docs/plugins/backend-plugin.md +++ b/docs/plugins/backend-plugin.md @@ -44,7 +44,7 @@ cd plugins/carmen-backend yarn start ``` -> Note: this documentation assumes you are using the latest version of Backstage and the new backend system. If you are not please upgrade and migrate your backend using the [Migration Guide](../backend-system/building-backends/08-migrating.md) +> Note: this documentation assumes you are using the latest version of Backstage and the new backend system. If you are not, please upgrade and migrate your backend using the [Migration Guide](../backend-system/building-backends/08-migrating.md) This will think for a bit, and then say `Listening on :7007`. In a different terminal window, now run @@ -72,38 +72,19 @@ to your backend. yarn --cwd packages/backend add @internal/plugin-carmen-backend@^0.1.0 # Change this to match the plugin's package.json ``` -Create a new file named `packages/backend/src/plugins/carmen.ts`, and add the -following to it +Update `packages/backend/src/index` with the following, ```ts -import { createRouter } from '@internal/plugin-carmen-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; +const backend = createBackend(); -export default async function createPlugin( - env: PluginEnvironment, -): Promise<Router> { - // Here is where you will add all of the required initialization code that - // your backend plugin needs to be able to start! - - // The env contains a lot of goodies, but our router currently only - // needs a logger - return await createRouter({ - logger: env.logger, - }); -} -``` - -And finally, wire this into the overall backend router. Edit -`packages/backend/src/index.ts`: - -```ts -import carmen from './plugins/carmen'; // ... -async function main() { - // ... - const carmenEnv = useHotMemoize(module, () => createEnv('carmen')); - apiRouter.use('/carmen', await carmen(carmenEnv)); + +// highlight-add-next-line +backend.add(import('@internal/plugin-carmen-backend')); + +// ... + +backend.start(); ``` After you start the backend (e.g. using `yarn start-backend` from the repo @@ -116,36 +97,123 @@ curl localhost:7007/api/carmen/health This should return `{"status":"ok"}` like before. Success! +## Secure by Default + +In 1.25, Backstage started moving to a secure by default model for plugins. This means that network requests to plugins will by default not allow unauthenticated users. Let's take a deeper look at the above curl request which should allow unauthenticated access. + +The actual endpoint that is being called is defined in + +```ts title="plugins/carmen-backend/src/service/router.ts" +export async function createRouter( + options: RouterOptions, +): Promise<express.Router> { + // ... + + // highlight-start + router.get('/health', (_, response) => { + logger.info('PONG!'); + response.json({ status: 'ok' }); + }); + // highlight-end + + // ... + return router; +} +``` + +You'll notice that there is no authentication mechanism defined here, just the route name and response data. That's because the authentication is handled in your plugin definition, + +```ts title="plugins/carmen-backend/src/plugin.ts" +httpRouter.use( + await createRouter({ + logger, + }), +); +// highlight-start +httpRouter.addAuthPolicy({ + path: '/health', + allow: 'unauthenticated', +}); +// highlight-end +``` + +This allows requests to this plugin's `/health` endpoint to go through unauthenticated! + +## Using Dependencies + +In the new backend, dependencies are defined statically during registration and then "injected" during initialization. Here's an example of what this looks like, + +```ts title="plugins/carmen-backend/src/plugin.ts" + +// highlight-start +deps: { + httpRouter: coreServices.httpRouter, + logger: coreServices.logger, +}, +// highlight-end +// And then you can use them through the options property! +// highlight-next-line +async init({ httpRouter, logger }) { + // ... +}, + +``` + +You can add your own dependencies by adding a named item to the `deps` parameter: + +```ts +deps: { + // highlight-next-line + myDependency: coreServices.rootConfig, +}, +``` + +And then you can access it by referencing it in the `init` block of your plugin definition, + +```ts +async init({ myDependency }) { + // .. +} +``` + +And then you're free to call it and pass it into your router as needed. + +Backstage provides a bunch of `coreServices` out of box, see the more in depth docs [here](../backend-system/core-services/01-index.md). + ## Making Use of a Database The Backstage backend comes with a builtin facility for SQL database access. Most plugins that have persistence needs will choose to make use of this facility, so that Backstage operators can manage database needs uniformly. -As part of the environment object that is passed to your `createPlugin` -function, there is a `database` field. You can use that to get a -[Knex](http://knexjs.org/) connection object. - -```ts -// in packages/backend/src/plugins/carmen.ts -export default async function createPlugin( - env: PluginEnvironment, -): Promise<Router> { - const db: Knex<any, unknown[]> = await env.database.getClient(); +You can access this by adding a dependency on the `coreServices.database` service. +That will give you a [Knex](http://knexjs.org/) connection object. +```ts title="plugins/carmen-backend/src/plugin.ts" +deps: { + // ... + // highlight-next-line + database: coreServices.database, +}, +async init({ + // highlight-next-line + database, +}) { // You will then pass this client into your actual plugin implementation // code, maybe similar to the following: - const model = new CarmenDatabaseModel(db); - return await createRouter({ - model: model, - logger: env.logger, - }); + const model = new CarmenDatabaseModel(database); + httpRouter.use( + await createRouter({ + // highlight-next-line + model, + logger, + }), + ); } ``` -You may note that the `getClient` call has no parameters. This is because all -plugin database needs are configured under the `backend.database` config key of -your `app-config.yaml`. The framework may even make sure behind the scenes that +All plugin database needs are configured under the `backend.database` config key +of your `app-config.yaml`. The framework may even make sure behind the scenes that the logical database is created automatically if it doesn't exist, based on rules that the Backstage operator decides on. @@ -159,37 +227,67 @@ database.. ## Making Use of the User's Identity -The Backstage backend comes with a facility for retrieving the identity of the -logged in user. +The Backstage backend also offers a core service to access the user's identity. You can access it through the `coreServices.httpAuth` and `coreServices.userInfo` dependencies. -As part of the environment object that is passed to your `createPlugin` -function, there is a `identity` field. You can use that to get an identity -from the request. - -```ts -// in packages/backend/src/plugins/carmen.ts -export default async function createPlugin( - env: PluginEnvironment, -): Promise<Router> { - return await createRouter({ - model: model, - logger: env.logger, - identity: env.identity, - }); +```ts title="plugins/carmen-backend/src/plugin.ts" +deps: { + // highlight-start + httpAuth: coreServices.httpAuth, + userInfo: coreServices.userInfo, + // highlight-end +}, +async init({ + // highlight-start + httpAuth, + userInfo, + // highlight-end +}) { + httpRouter.use( + await createRouter({ + // highlight-start + httpAuth, + userInfo, + // highlight-end + logger, + }), + ); } ``` The plugin can then extract the identity from the request. ```ts +export interface RouterOptions { + logger: LoggerService; + // highlight-start + userInfo: UserInfoService; + httpAuth: HttpAuthService; + // highlight-end +} + export async function createRouter( options: RouterOptions, ): Promise<express.Router> { - const router = Router(); - const { identity } = options; + const { userInfo, httpAuth } = options; - router.post('/example', async (req, res) => { - const userIdentity = await identity.getIdentity({ request: req }); - ... + router.post('/me', async (req, res) => { + const credentials = await httpAuth.credentials(req, { + // This rejects request from non-users. Only use this if your plugin needs to access the + // user identity, most of the time it's enough to just call `httpAuth.credentials(req)` + allow: ['user'], + }); + + const userInfo = await userInfo.getUserInfo(credentials); + + res.json({ + // The catalog entity ref of the user. + userEntityRef: userInfo.userEntityRef, + + // The list of entities that this user or any teams this user is a part of owns. + ownershipEntityRefs: userInfo.ownershipEntityRefs, + }); }); + + // ... +} ``` diff --git a/docs/plugins/call-existing-api.md b/docs/plugins/call-existing-api.md index da76fa8434..065427b9ee 100644 --- a/docs/plugins/call-existing-api.md +++ b/docs/plugins/call-existing-api.md @@ -137,9 +137,8 @@ router.use('/summary', async (req, res) => { ``` For a more detailed example, see -[the lighthouse plugin](https://github.com/backstage/backstage/tree/master/plugins/lighthouse) -that stores some state in a database and adds new capabilities to the underlying -API. +[the user-settings plugin backend](https://github.com/backstage/backstage/tree/master/plugins/user-settings-backend) +that stores some state in a database and surfaces an API for the frontend plugin to use. Internally at Spotify, this has been a fairly popular choice for different reasons. Commonly, the backend has been used as a caching and data massaging diff --git a/docs/plugins/index.md b/docs/plugins/index.md index 755c1b8a7d..94de3bc482 100644 --- a/docs/plugins/index.md +++ b/docs/plugins/index.md @@ -22,7 +22,7 @@ To create a plugin, follow the steps outlined [here](create-a-plugin.md). If you start developing a plugin that you aim to release as open source, we suggest that you create a -[new Issue](https://github.com/backstage/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME). +[new Issue in the community plugins repo](https://github.com/backstage/community-plugins/issues/new/choose). This helps the community know what plugins are in development. You can also use this process if you have an idea for a good plugin but you hope diff --git a/docs/releases/v1.1.0.md b/docs/releases/v1.1.0.md index daf31a536f..f484cc5b57 100644 --- a/docs/releases/v1.1.0.md +++ b/docs/releases/v1.1.0.md @@ -38,11 +38,11 @@ The permission related packages received a number of **BREAKING** changes. Among ### Stack Overflow -There’s a new Stack Overflow [frontend](https://github.com/backstage/backstage/tree/master/plugins/stack-overflow) plugin with a corresponding [backend](https://github.com/backstage/backstage/tree/master/plugins/stack-overflow-backend]! +There’s a new Stack Overflow [frontend](https://github.com/backstage/backstage/tree/v1.1.0/plugins/stack-overflow) plugin with a corresponding [backend](https://github.com/backstage/backstage/tree/v1.1.0/plugins/stack-overflow-backend)! ### Misc -- The [CI/CD Statistics plugin](https://github.com/backstage/backstage/tree/master/plugins/cicd-statistics) now has GitLab support, through the new [GitLab module](https://github.com/backstage/backstage/tree/master/plugins/cicd-statistics-module-gitlab). Thanks [@djamaile](https://github.com/djamaile)! ([#10140](https://github.com/backstage/backstage/pull/10140)) +- The [CI/CD Statistics plugin](https://github.com/backstage/backstage/tree/v1.1.0/plugins/cicd-statistics) now has GitLab support, through the new [GitLab module](https://github.com/backstage/backstage/tree/v1.1.0/plugins/cicd-statistics-module-gitlab). Thanks [@djamaile](https://github.com/djamaile)! ([#10140](https://github.com/backstage/backstage/pull/10140)) - The catalog [AWS module](https://github.com/backstage/backstage/tree/master/plugins/catalog-backend-module-aws) added a new `AwsS3EntityProvider` as a replacement for the `AwsS3DiscoveryProcessor`. Thanks [@pjungermann](https://github.com/pjungermann)! ([#10480](https://github.com/backstage/backstage/pull/10480)) diff --git a/docs/releases/v1.10.0-changelog.md b/docs/releases/v1.10.0-changelog.md index db3955bb3f..486ed2d268 100644 --- a/docs/releases/v1.10.0-changelog.md +++ b/docs/releases/v1.10.0-changelog.md @@ -253,7 +253,7 @@ - e4469d0ec1: The ADR plugin can now work with sites other than GitHub. Expanded the ADR backend plugin to provide endpoints to facilitate this. - **BREAKING** The ADR plugin now requires the `@backstage/plugin-adr-backend` plugin to be installed by using the `createRouter` method to add into your `backend`. You read more in the [install instructions](https://github.com/backstage/backstage/blob/master/plugins/adr-backend/README.md#install) + **BREAKING** The ADR plugin now requires the `@backstage/plugin-adr-backend` plugin to be installed by using the `createRouter` method to add into your `backend`. You read more in the [install instructions](https://github.com/backstage/backstage/blob/v1.10.0/plugins/adr-backend/README.md#install) ### Patch Changes @@ -809,7 +809,7 @@ ### Patch Changes -- aa17643a06: This plugin now exports a `createRouter` method which uses `UrlReaders` to make requests to your SCM. Please make sure you read the [install instructions](https://github.com/backstage/backstage/blob/master/plugins/adr-backend/README.md#install) +- aa17643a06: This plugin now exports a `createRouter` method which uses `UrlReaders` to make requests to your SCM. Please make sure you read the [install instructions](https://github.com/backstage/backstage/blob/v1.10.0/plugins/adr-backend/README.md#install) - 21ffbdd5ee: Clarify that default ADR parsers support MADR specification v2.x - Updated dependencies - @backstage/backend-common@0.18.0 diff --git a/docs/releases/v1.11.0-changelog.md b/docs/releases/v1.11.0-changelog.md index 42f9e9720b..f6c7901cb6 100644 --- a/docs/releases/v1.11.0-changelog.md +++ b/docs/releases/v1.11.0-changelog.md @@ -402,7 +402,7 @@ - d1fb4b7bf1: Add the new GraphQL Voyager tool as a plugin for backstage, expose necessary API and components needed for it. - For more information on how to use this plugin and configure it, please navigate to the [README](https://github.com/backstage/backstage/tree/master/plugins/graphql-voyager/README.md) of the plugin. + For more information on how to use this plugin and configure it, please navigate to the [README](https://github.com/backstage/backstage/tree/v1.11.0/plugins/graphql-voyager/README.md) of the plugin. ### Patch Changes @@ -538,7 +538,7 @@ - 44412375bb: Created a new plugin `@backstage/plugin-microsoft-calendar` to display events from a Microsoft Calendar. - please refer to the [README.md](https://github.com/backstage/backstage/blob/master/plugins/microsoft-calendar/README.md) for step-by-step instructions to setup the plugin in your Backstage instance. + please refer to the [README.md](https://github.com/backstage/backstage/blob/v1.11.0/plugins/microsoft-calendar/README.md) for step-by-step instructions to setup the plugin in your Backstage instance. ### Patch Changes diff --git a/docs/releases/v1.11.0-next.2-changelog.md b/docs/releases/v1.11.0-next.2-changelog.md index 65f6622921..089f6d8853 100644 --- a/docs/releases/v1.11.0-next.2-changelog.md +++ b/docs/releases/v1.11.0-next.2-changelog.md @@ -156,7 +156,7 @@ - d1fb4b7bf1: Add the new GraphQL Voyager tool as a plugin for backstage, expose necessary API and components needed for it. - For more information on how to use this plugin and configure it, please navigate to the [README](https://github.com/backstage/backstage/tree/master/plugins/graphql-voyager/README.md) of the plugin. + For more information on how to use this plugin and configure it, please navigate to the [README](https://github.com/backstage/backstage/tree/v1.11.0-next.2/plugins/graphql-voyager/README.md) of the plugin. ### Patch Changes diff --git a/docs/releases/v1.11.0.md b/docs/releases/v1.11.0.md index 1afed5fbb6..ad2118c754 100644 --- a/docs/releases/v1.11.0.md +++ b/docs/releases/v1.11.0.md @@ -41,37 +41,37 @@ We created a separate ESlint plugin package that houses some rules that are help ### New plugin: Entity Feedback -A plugin that allows users to rate the quality of entities in your Backstage catalog. Allowing your users to rate entities brings them into the feedback loop that can help notify owners if something is wrong with their entity (i.e. taking inspiration from the feedback model of TechDocs). Check out [the README](https://github.com/backstage/backstage/tree/master/plugins/entity-feedback)! +A plugin that allows users to rate the quality of entities in your Backstage catalog. Allowing your users to rate entities brings them into the feedback loop that can help notify owners if something is wrong with their entity (i.e. taking inspiration from the feedback model of TechDocs). Check out [the README](https://github.com/backstage/backstage/tree/v1.11.0/plugins/entity-feedback)! Contributed by [@kuangp](https://github.com/kuangp) in [#15881](https://github.com/backstage/backstage/pull/15881) ### New plugin: Entity Validator -This plugin helps users create and edit their YAML definitions of entities, with live validation. It leverages the actual catalog backend for checks, so that you can submit catalog info file changes that fit your particular organization with greater confidence. Installation instructions and details are in [the README](https://github.com/backstage/backstage/tree/master/plugins/entity-validation). +This plugin helps users create and edit their YAML definitions of entities, with live validation. It leverages the actual catalog backend for checks, so that you can submit catalog info file changes that fit your particular organization with greater confidence. Installation instructions and details are in [the README](https://github.com/backstage/backstage/tree/v1.11.0/plugins/entity-validation). Contributed by [@ivangonzalezacuna](https://github.com/ivangonzalezacuna) in [#16050](https://github.com/backstage/backstage/pull/16050) ### New Plugin: Microsoft Calendar -This plugin lets you show your MS calendars directly in Backstage. More information and installation instructions in [the README](https://github.com/backstage/backstage/tree/master/plugins/microsoft-calendar)! +This plugin lets you show your MS calendars directly in Backstage. More information and installation instructions in [the README](https://github.com/backstage/backstage/tree/v1.11.0/plugins/microsoft-calendar)! Contributed by [@Abhay-soni-developer](https://github.com/Abhay-soni-developer) in [#16101](https://github.com/backstage/backstage/pull/16101) ### New plugin: GraphQL Voyager -This nifty plugin presents a graph structure of your entire GraphQL API. Check out [its README](https://github.com/backstage/backstage/tree/master/plugins/graphql-voyager) for a screenshot and instructions on installing it. +This nifty plugin presents a graph structure of your entire GraphQL API. Check out [its README](https://github.com/backstage/backstage/tree/v1.11.0/plugins/graphql-voyager) for a screenshot and instructions on installing it. Contributed by [@MitchWijt](https://github.com/MitchWijt) in [#16015](https://github.com/backstage/backstage/pull/16015) ### New plugin: Linguist -This plugin lets you see a nice visual representation of the breakdown of languages that a component’s repository is using, similar to the repository information that e.g. GitHub presents. More about that [in the README](https://github.com/backstage/backstage/tree/master/plugins/linguist)! +This plugin lets you see a nice visual representation of the breakdown of languages that a component’s repository is using, similar to the repository information that e.g. GitHub presents. More about that [in the README](https://github.com/backstage/backstage/tree/v1.11.0/plugins/linguist)! Contributed by [@ahhhndre](https://github.com/ahhhndre) in [#14718](https://github.com/backstage/backstage/pull/14718) ### Lighthouse Backend -The [Lighthouse plugin](https://github.com/backstage/backstage/tree/master/plugins/lighthouse) now has a [corresponding backend](https://github.com/backstage/backstage/tree/master/plugins/lighthouse-backend). This allows you to conveniently schedule audits from within Backstage. +The [Lighthouse plugin](https://github.com/backstage/backstage/tree/v1.11.0/plugins/lighthouse) now has a [corresponding backend](https://github.com/backstage/backstage/tree/v1.11.0/plugins/lighthouse-backend). This allows you to conveniently schedule audits from within Backstage. Note that as part of this, a `@backstage/plugin-lighthouse-common` package was also created, and types that were common to the frontend and backend were moved there. This means that if you were explicitly importing types from the frontend package, you may see compilation errors and need to add a dependency on the new common package and point your imports there instead. diff --git a/docs/releases/v1.12.0-changelog.md b/docs/releases/v1.12.0-changelog.md index 7a8b52e33b..df25020aee 100644 --- a/docs/releases/v1.12.0-changelog.md +++ b/docs/releases/v1.12.0-changelog.md @@ -449,7 +449,7 @@ ### 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) +- 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/v1.12.0/plugins/stackstorm/README.md) ### Patch Changes diff --git a/docs/releases/v1.12.0-next.0-changelog.md b/docs/releases/v1.12.0-next.0-changelog.md index b7f71b53e6..7732ebf22d 100644 --- a/docs/releases/v1.12.0-next.0-changelog.md +++ b/docs/releases/v1.12.0-next.0-changelog.md @@ -125,7 +125,7 @@ ### Minor Changes -- f3a15259e9: 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) +- f3a15259e9: 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/v1.12.0-next.0/plugins/stackstorm/README.md) ### Patch Changes diff --git a/docs/releases/v1.13.0-changelog.md b/docs/releases/v1.13.0-changelog.md index 506800eb38..52f14bea1b 100644 --- a/docs/releases/v1.13.0-changelog.md +++ b/docs/releases/v1.13.0-changelog.md @@ -509,7 +509,7 @@ ### Minor Changes -- 70a036e940e: Initial version of [PuppetDB plugin](https://github.com/backstage/backstage/blob/master/plugins/puppetdb/README.md). +- 70a036e940e: Initial version of [PuppetDB plugin](https://github.com/backstage/backstage/blob/v1.13.0/plugins/puppetdb/README.md). ### Patch Changes diff --git a/docs/releases/v1.14.0-changelog.md b/docs/releases/v1.14.0-changelog.md index ff43be94a4..f207ab569c 100644 --- a/docs/releases/v1.14.0-changelog.md +++ b/docs/releases/v1.14.0-changelog.md @@ -2356,7 +2356,7 @@ - The `CheckResultRenderer` type now exposes an optional `description` method that allows to overwrite the description with a different string or a React component for a provided check result. Until now only the `BooleanCheck` element could be overridden, but from now on it's also possible to override the description for a check. - As an example, the description could change depending on the check result. Refer to the [README](https://github.com/backstage/backstage/blob/master/plugins/tech-insights/README.md#adding-custom-rendering-components) file for more details + As an example, the description could change depending on the check result. Refer to the [README](https://github.com/backstage/backstage/blob/v1.14.0/plugins/tech-insights/README.md#adding-custom-rendering-components) file for more details - Updated dependencies - @backstage/theme@0.3.0 diff --git a/docs/releases/v1.14.0-next.1-changelog.md b/docs/releases/v1.14.0-next.1-changelog.md index 2f91cb402e..0fa508bbd6 100644 --- a/docs/releases/v1.14.0-next.1-changelog.md +++ b/docs/releases/v1.14.0-next.1-changelog.md @@ -1502,7 +1502,7 @@ - The `CheckResultRenderer` type now exposes an optional `description` method that allows to overwrite the description with a different string or a React component for a provided check result. Until now only the `BooleanCheck` element could be overridden, but from now on it's also possible to override the description for a check. - As an example, the description could change depending on the check result. Refer to the [README](https://github.com/backstage/backstage/blob/master/plugins/tech-insights/README.md#adding-custom-rendering-components) file for more details + As an example, the description could change depending on the check result. Refer to the [README](https://github.com/backstage/backstage/blob/v1.14.0-next.1/plugins/tech-insights/README.md#adding-custom-rendering-components) file for more details - Updated dependencies - @backstage/core-components@0.13.1-next.0 diff --git a/docs/releases/v1.17.0-changelog.md b/docs/releases/v1.17.0-changelog.md index a67226ca9e..700ab6ccea 100644 --- a/docs/releases/v1.17.0-changelog.md +++ b/docs/releases/v1.17.0-changelog.md @@ -773,7 +773,7 @@ ### Patch Changes -- ec7357258853: Introduced the New Relic Browser analytics module. Check out the plugins [README.md](https://github.com/backstage/backstage/tree/master/plugins/analytics-module-newrelic-browser) for more details! +- ec7357258853: Introduced the New Relic Browser analytics module. Check out the plugins [README.md](https://github.com/backstage/backstage/tree/v1.17.0/plugins/analytics-module-newrelic-browser) for more details! - Updated dependencies - @backstage/core-components@0.13.4 - @backstage/core-plugin-api@1.5.3 diff --git a/docs/releases/v1.17.0-next.0-changelog.md b/docs/releases/v1.17.0-next.0-changelog.md index 2d343696de..2cd71285ce 100644 --- a/docs/releases/v1.17.0-next.0-changelog.md +++ b/docs/releases/v1.17.0-next.0-changelog.md @@ -435,7 +435,7 @@ ### Patch Changes -- ec7357258853: Introduced the New Relic Browser analytics module. Check out the plugins [README.md](https://github.com/backstage/backstage/tree/master/plugins/analytics-module-newrelic-browser) for more details! +- ec7357258853: Introduced the New Relic Browser analytics module. Check out the plugins [README.md](https://github.com/backstage/backstage/tree/v1.17.0-next.0/plugins/analytics-module-newrelic-browser) for more details! - Updated dependencies - @backstage/core-components@0.13.4-next.0 - @backstage/core-plugin-api@1.5.3 diff --git a/docs/releases/v1.18.0.md b/docs/releases/v1.18.0.md index cae0301fd5..eb42a5f58a 100644 --- a/docs/releases/v1.18.0.md +++ b/docs/releases/v1.18.0.md @@ -34,7 +34,7 @@ Contributed by [@sbarrypoppulo](https://github.com/sbarrypoppulo) in [#18889](ht ### New plugin: OpenCost -There’s a new [OpenCost](https://www.opencost.io/) plugin that provides a port of the latest OpenCost UI to Backstage. The [plugin's README](https://github.com/backstage/backstage/blob/master/plugins/opencost/README.md) covers installation and configuration. +There’s a new [OpenCost](https://www.opencost.io/) plugin that provides a port of the latest OpenCost UI to Backstage. The [plugin's README](https://github.com/backstage/backstage/blob/v1.18.0/plugins/opencost/README.md) covers installation and configuration. Contributed by [@mattray](https://github.com/mattray) in [#18383](https://github.com/backstage/backstage/pull/18383) diff --git a/docs/releases/v1.27.0-next.0-changelog.md b/docs/releases/v1.27.0-next.0-changelog.md new file mode 100644 index 0000000000..04ef3c3c2f --- /dev/null +++ b/docs/releases/v1.27.0-next.0-changelog.md @@ -0,0 +1,2064 @@ +# Release v1.27.0-next.0 + +Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.27.0-next.0](https://backstage.github.io/upgrade-helper/?to=1.27.0-next.0) + +## @backstage/catalog-model@1.5.0-next.0 + +### Minor Changes + +- 79025f3: Introduce a domain attribute to the domain entity to allow a hierarchy of domains to exist. + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend@1.22.0-next.0 + +### Minor Changes + +- 8d14475: Emit well known relationships for the Domain entity kind. + +### Patch Changes + +- c6cb568: Add lifecycle monitoring for the catalog processing +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.23-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-openapi-utils@0.1.11-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/types@1.1.1 + - @backstage/plugin-events-node@0.3.4-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + +## @backstage/app-defaults@1.5.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/plugin-permission-react@0.4.22 + +## @backstage/backend-app-api@0.7.1-next.0 + +### Patch Changes + +- 4cd5ff0: Add ability to configure the Node.js HTTP Server when configuring the root HTTP Router service +- e8199b1: Move the JWKS registration outside of the lifecycle middleware +- dc8c5dd: The default `TokenManager` implementation no longer requires keys to be configured in production, but it will throw an errors when generating or authenticating tokens. The default `AuthService` implementation will now also provide additional context if such an error is throw when falling back to using the `TokenManager` service to generate tokens for outgoing requests. +- 025641b: Redact `meta` fields too with the logger +- 5863e02: Internal refactor to only create one external token handler +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.5 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-node@0.7.29-next.0 + +## @backstage/backend-common@0.21.8-next.0 + +### Patch Changes + +- ba0b8b4: Added option to `ServerTokenManager.fromConfig` that allows it to be instantiated in production without any configured keys. +- Updated dependencies + - @backstage/backend-app-api@0.7.1-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/backend-dev-utils@0.1.4 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + +## @backstage/backend-defaults@0.2.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.7.1-next.0 + - @backstage/backend-common@0.21.8-next.0 + +## @backstage/backend-dynamic-feature-service@0.2.10-next.0 + +### Patch Changes + +- b611fd0: Updates the `scanRoot` method in the `PluginScanner` class to specifically ignore the `lost+found` directory, which is a system-generated directory used for file recovery on Unix-like systems. Skipping this directory avoids unnecessary errors. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/backend-app-api@0.7.1-next.0 + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.5 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-app-node@0.1.18-next.0 + - @backstage/plugin-events-backend@0.3.5-next.0 + - @backstage/plugin-events-node@0.3.4-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/backend-openapi-utils@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/errors@1.2.4 + +## @backstage/backend-plugin-api@0.6.18-next.0 + +### Patch Changes + +- 1fedf0c: Removed explicit `toString()` method from `ServiceRef` type. +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + +## @backstage/backend-tasks@0.5.23-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/backend-test-utils@0.3.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.7.1-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/catalog-client@1.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/errors@1.2.4 + +## @backstage/cli@0.26.5-next.0 + +### Patch Changes + +- fcd3462: Both the target and types library have been bumped from ES2021 to ES2022 in `@backstage/cli/config/tsconfig.json`. +- 0cc5ed3: Add support for `versions:migrate` to do code changes. Can be skipped with `--no-code-changes` +- f97ad04: Add preserveModules to rollup, which allows better async loading and tree-shaking in webpack +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.5 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/eslint-plugin@0.1.7 + - @backstage/integration@1.10.0 + - @backstage/release-manifests@0.0.11 + - @backstage/types@1.1.1 + +## @backstage/core-compat-api@0.2.5-next.0 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- Updated dependencies + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/version-bridge@1.0.8 + +## @backstage/core-components@0.14.5-next.0 + +### Patch Changes + +- 71e4229: Added optional `initialShowDropDown` prop to `SidebarSubmenuItem` to internally manage the initial display state of the dropdown items. +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/version-bridge@1.0.8 + +## @backstage/create-app@0.5.15-next.0 + +### Patch Changes + +- c066c88: Removed `packages/backend/src/types.ts` from the template as it is unused. It was mistakenly left in after moving the template to the new backend system. +- 5d99272: Update local development dependencies. +- 8105aad: Removed the Tech Radar and GitHub Actions plugins from the template, which have been moved to the community plugins repository. +- Updated dependencies + - @backstage/cli-common@0.1.13 + +## @backstage/dev-utils@1.0.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/app-defaults@1.5.5-next.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/integration-react@1.1.26 + +## @backstage/frontend-app-api@0.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/frontend-plugin-api@0.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/frontend-test-utils@0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-app-api@0.6.5-next.0 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/test-utils@1.5.5-next.0 + - @backstage/types@1.1.1 + +## @backstage/repo-tools@0.8.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.5 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + +## @techdocs/cli@1.8.10-next.0 + +### Patch Changes + +- 1a0e009: Fix cookie endpoint mock for `serve` +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/plugin-techdocs-node@1.12.4-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.2.0 + +## @backstage/test-utils@1.5.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-react@0.4.22 + +## @backstage/theme@0.5.4-next.0 + +### Patch Changes + +- f1462df: Fixed bug where scrollbars don't pick up the theme when in dark mode + +## @backstage/plugin-api-docs@0.11.5-next.0 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/plugin-catalog@1.19.1-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/plugin-permission-react@0.4.22 + +## @backstage/plugin-app-backend@0.3.66-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-app-node@0.1.18-next.0 + +## @backstage/plugin-app-node@0.1.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config-loader@1.8.0 + +## @backstage/plugin-app-visualizer@0.1.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-plugin-api@0.6.5-next.0 + +## @backstage/plugin-auth-backend@0.22.5-next.0 + +### Patch Changes + +- ea9262b: Allow overriding default ownership resolving with the new `AuthOwnershipResolutionExtensionPoint` +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-auth-backend-module-oidc-provider@0.1.9-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.1.1-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-auth-backend-module-atlassian-provider@0.1.10-next.0 + - @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.10-next.0 + - @backstage/plugin-auth-backend-module-bitbucket-provider@0.1.1-next.0 + - @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.1-next.0 + - @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.13-next.0 + - @backstage/plugin-auth-backend-module-github-provider@0.1.15-next.0 + - @backstage/plugin-auth-backend-module-gitlab-provider@0.1.15-next.0 + - @backstage/plugin-auth-backend-module-google-provider@0.1.15-next.0 + - @backstage/plugin-auth-backend-module-microsoft-provider@0.1.13-next.0 + - @backstage/plugin-auth-backend-module-oauth2-provider@0.1.15-next.0 + - @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.11-next.0 + - @backstage/plugin-auth-backend-module-okta-provider@0.0.11-next.0 + +## @backstage/plugin-auth-backend-module-atlassian-provider@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-aws-alb-provider@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.22.5-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-azure-easyauth-provider@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-bitbucket-provider@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-cloudflare-access-provider@0.1.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-gcp-iap-provider@0.2.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-auth-backend-module-github-provider@0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-gitlab-provider@0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-google-provider@0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-guest-provider@0.1.4-next.0 + +### Patch Changes + +- 07d8cca: Error if used outside of a development environment without explicit allowance +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-microsoft-provider@0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-oauth2-provider@0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-oauth2-proxy-provider@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-auth-backend-module-oidc-provider@0.1.9-next.0 + +### Patch Changes + +- dd53bf3: Add nonce to authorize request to be added in ID token +- Updated dependencies + - @backstage/plugin-auth-backend@0.22.5-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-okta-provider@0.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-backend-module-pinniped-provider@0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-auth-backend-module-vmware-cloud-provider@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-auth-node@0.4.13-next.0 + +### Patch Changes + +- ea9262b: Allow overriding default ownership resolving with the new `AuthOwnershipResolutionExtensionPoint` +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-auth-react@0.1.1-next.0 + +### Patch Changes + +- c297afd: When using `CookieAuthRefreshProvider` or `useCookieAuthRefresh`, a 404 response from the cookie endpoint will now be treated as if cookie auth is disabled and is not needed. +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog@1.19.1-next.0 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-scaffolder-common@1.5.2-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/integration-react@1.1.26 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-react@0.4.22 + - @backstage/plugin-search-common@1.2.11 + - @backstage/plugin-search-react@1.7.11-next.0 + +## @backstage/plugin-catalog-backend-module-aws@0.3.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-kubernetes-common@0.7.6-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/integration-aws-node@0.1.12 + +## @backstage/plugin-catalog-backend-module-azure@0.1.38-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.10.0 + +## @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.1-next.0 + +### Patch Changes + +- f3f0281: Fix incorrect dependency import. +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-openapi-utils@0.1.11-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.2.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.10.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.18 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.32-next.0 + +### Patch Changes + +- 062ffb1: Allow skipping archived repositories (`skipArchivedRepos` flag) on Bitbucket. +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-catalog-backend-module-gcp@0.1.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-kubernetes-common@0.7.6-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.35-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-catalog-backend-module-github@0.6.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.10.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-catalog-backend-module-github-org@0.1.13-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-backend-module-github@0.6.1-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-catalog-backend-module-gitlab@0.3.15-next.2 + +### Patch Changes + +- a70377d: Added events support for `GitlabDiscoveryEntityProvider` and `GitlabOrgDiscoveryEntityProvider`. +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.10.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-catalog-backend-module-gitlab-org@0.0.1-next.0 + +### Patch Changes + +- a70377d: Added a new `catalog-backend-module-gitlab-org` module which adds the `GitlabOrgDiscoveryEntityProvider` to the catalog's providers using the new backend system. +- Updated dependencies + - @backstage/plugin-catalog-backend-module-gitlab@0.3.15-next.2 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.23-next.0 + +### Patch Changes + +- 8c1ab9e: Fix plugin/incremental-ingestion 'Maximum call stack size exceeded' error when ingest large entities. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-events-node@0.3.4-next.0 + - @backstage/plugin-permission-common@0.7.13 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.34-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.36-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.10.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-scaffolder-common@1.5.2-next.0 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-catalog-unprocessed-entities-common@0.0.1 + - @backstage/plugin-permission-common@0.7.13 + +## @backstage/plugin-catalog-common@1.0.23-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-catalog-graph@0.4.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-catalog-import@0.10.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/integration@1.10.0 + - @backstage/integration-react@1.1.26 + +## @backstage/plugin-catalog-node@1.11.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + +## @backstage/plugin-catalog-react@1.11.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/integration-react@1.1.26 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-react@0.4.22 + +## @backstage/plugin-catalog-unprocessed-entities@0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + +## @backstage/plugin-config-schema@0.1.55-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-devtools@0.1.14-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/plugin-devtools-common@0.1.9 + - @backstage/plugin-permission-react@0.4.22 + +## @backstage/plugin-devtools-backend@0.3.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-devtools-common@0.1.9 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + +## @backstage/plugin-events-backend@0.3.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-events-backend-module-aws-sqs@0.3.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-events-backend-module-azure@0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-events-backend-module-gerrit@0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-events-backend-module-github@0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-events-backend-module-gitlab@0.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-events-backend-test-utils@0.1.28-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-events-node@0.3.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + +## @backstage/plugin-home@0.7.4-next.0 + +### Patch Changes + +- 2196d3e: Use relative time when displaying visits from the same day +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-home-react@0.1.13-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-plugin-api@0.6.5-next.0 + +## @backstage/plugin-home-react@0.1.13-next.0 + +### Patch Changes + +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + +## @backstage/plugin-kubernetes@0.11.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-kubernetes-common@0.7.6-next.0 + - @backstage/plugin-kubernetes-react@0.3.5-next.0 + - @backstage/core-plugin-api@1.9.2 + +## @backstage/plugin-kubernetes-backend@0.17.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-kubernetes-node@0.1.12-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-kubernetes-common@0.7.6-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + +## @backstage/plugin-kubernetes-cluster@0.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-kubernetes-common@0.7.6-next.0 + - @backstage/plugin-kubernetes-react@0.3.5-next.0 + - @backstage/core-plugin-api@1.9.2 + +## @backstage/plugin-kubernetes-common@0.7.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + +## @backstage/plugin-kubernetes-node@0.1.12-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-kubernetes-common@0.7.6-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-kubernetes-react@0.3.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-kubernetes-common@0.7.6-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## @backstage/plugin-notifications@0.2.1-next.0 + +### Patch Changes + +- e6bf85f: Allow overriding `NotificationsPage` page properties +- a42a19b: Empty descriptions are not rendered to improve the look&feel. +- 1bc3b86: Fix to show web notifications even when browser is on foreground. Fix duplicate notifications with multiple tabs. +- f793112: Allow defining `className` and additional properties for `NotificationsSideBarItem` +- e1c7d6e: Fix infinite loop in the notification title counter +- fcda449: The rendered size of a notification is limited for very long descriptions. +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-notifications-common@0.0.3 + - @backstage/plugin-signals-react@0.0.3 + +## @backstage/plugin-notifications-backend@0.2.1-next.0 + +### Patch Changes + +- ee09dfc: Updated documentation for sending messages by external services. +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-notifications-node@0.1.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-events-node@0.3.4-next.0 + - @backstage/plugin-notifications-common@0.0.3 + - @backstage/plugin-signals-node@0.1.4-next.0 + +## @backstage/plugin-notifications-node@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-notifications-common@0.0.3 + - @backstage/plugin-signals-node@0.1.4-next.0 + +## @backstage/plugin-org@0.6.25-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-plugin-api@0.6.5-next.0 + +## @backstage/plugin-org-react@0.1.24-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/core-plugin-api@1.9.2 + +## @backstage/plugin-permission-backend@0.5.42-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + +## @backstage/plugin-permission-backend-module-allow-all-policy@0.1.15-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + +## @backstage/plugin-permission-node@0.7.29-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-permission-common@0.7.13 + +## @backstage/plugin-proxy-backend@0.4.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + +## @backstage/plugin-scaffolder@1.19.4-next.0 + +### Patch Changes + +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-scaffolder-react@1.8.5-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-scaffolder-common@1.5.2-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/integration@1.10.0 + - @backstage/integration-react@1.1.26 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-react@0.4.22 + +## @backstage/plugin-scaffolder-backend@1.22.5-next.0 + +### Patch Changes + +- 025641b: Fix issue with the log format not being respected when logging from actions +- 025641b: Redact `meta` fields too with the logger +- Updated dependencies + - @backstage/plugin-scaffolder-backend-module-github@0.2.8-next.0 + - @backstage/plugin-scaffolder-backend-module-gitea@0.1.8-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.3.4-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.8-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-scaffolder-common@1.5.2-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + - @backstage/plugin-scaffolder-backend-module-azure@0.1.10-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.8-next.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.8-next.0 + - @backstage/plugin-scaffolder-backend-module-gerrit@0.1.10-next.0 + +## @backstage/plugin-scaffolder-backend-module-azure@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-scaffolder-backend-module-bitbucket@0.2.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.8-next.0 + +## @backstage/plugin-scaffolder-backend-module-bitbucket-cloud@0.1.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-scaffolder-backend-module-bitbucket-server@0.1.8-next.0 + +### Patch Changes + +- 24dd655: Add examples for `publish:bitbucketServer:pull-request` scaffolder action & improve related tests +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.19-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.42-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend-module-gerrit@0.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-scaffolder-backend-module-gitea@0.1.8-next.0 + +### Patch Changes + +- 554af73: Allow defining `repoVisibility` field for the action `publish:gitea` +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-scaffolder-backend-module-github@0.2.8-next.0 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.3.4-next.0 + +### Patch Changes + +- ffc73ec: Add examples for `gitlab:repo:push` scaffolder action & improve related tests +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.35-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.3.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-scaffolder-node-test-utils@0.1.4-next.0 + +## @backstage/plugin-scaffolder-common@1.5.2-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + +## @backstage/plugin-scaffolder-node@0.4.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-common@1.5.2-next.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-node-test-utils@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-test-utils@0.3.8-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-scaffolder-react@1.8.5-next.0 + +### Patch Changes + +- 0040ec2: Updated dependency `@rjsf/utils` to `5.18.2`. + Updated dependency `@rjsf/core` to `5.18.2`. + Updated dependency `@rjsf/material-ui` to `5.18.2`. + Updated dependency `@rjsf/validator-ajv8` to `5.18.2`. +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-scaffolder-common@1.5.2-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + +## @backstage/plugin-search@1.4.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + - @backstage/plugin-search-common@1.2.11 + - @backstage/plugin-search-react@1.7.11-next.0 + +## @backstage/plugin-search-backend@1.5.8-next.0 + +### Patch Changes + +- c6cb568: Add lifecycle monitoring for the search index registry +- Updated dependencies + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/repo-tools@0.8.1-next.0 + - @backstage/backend-openapi-utils@0.1.11-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-search-backend-module-catalog@0.1.23-next.0 + +### Patch Changes + +- d5fff66: Fix wiring of the module exported at the `/alpha` path, which was causing authentication failures. +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-search-backend-module-elasticsearch@1.4.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/integration-aws-node@0.1.12 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-search-backend-module-explore@0.1.23-next.0 + +### Patch Changes + +- ca6e2e0: Migrate search collator to use the new auth services. +- 5d99272: Update README.md to point to explore plugin in community-plugins repository. +- Updated dependencies + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-search-backend-module-pg@0.5.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-search-backend-module-stack-overflow-collator@0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-search-backend-module-techdocs@0.1.23-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-techdocs-node@1.12.4-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-search-backend-node@1.2.22-next.0 + +### Patch Changes + +- c6cb568: Add lifecycle monitoring for the search index registry +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-search-react@1.7.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-signals@0.0.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/types@1.1.1 + - @backstage/plugin-signals-react@0.0.3 + +## @backstage/plugin-signals-backend@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + - @backstage/plugin-events-node@0.3.4-next.0 + - @backstage/plugin-signals-node@0.1.4-next.0 + +## @backstage/plugin-signals-node@0.1.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + - @backstage/plugin-events-node@0.3.4-next.0 + +## @backstage/plugin-techdocs@1.10.5-next.0 + +### Patch Changes + +- d2cc139: Update path in Readme for Plugin Techdocs to show the correct setup information. +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-auth-react@0.1.1-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/integration@1.10.0 + - @backstage/integration-react@1.1.26 + - @backstage/plugin-search-common@1.2.11 + - @backstage/plugin-search-react@1.7.11-next.0 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.32-next.0 + +### Patch Changes + +- 2f13862: Fix bug in TechDocsAddonTester when jest.resetAllMocks is called between tests +- Updated dependencies + - @backstage/plugin-catalog@1.19.1-next.0 + - @backstage/plugin-techdocs@1.10.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/integration-react@1.1.26 + - @backstage/test-utils@1.5.5-next.0 + - @backstage/plugin-search-react@1.7.11-next.0 + +## @backstage/plugin-techdocs-backend@1.10.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23-next.0 + - @backstage/plugin-techdocs-node@1.12.4-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/plugin-permission-common@0.7.13 + +## @backstage/plugin-techdocs-module-addons-contrib@1.1.10-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/integration@1.10.0 + - @backstage/integration-react@1.1.26 + +## @backstage/plugin-techdocs-node@1.12.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/integration-aws-node@0.1.12 + - @backstage/plugin-search-common@1.2.11 + +## @backstage/plugin-techdocs-react@1.2.4-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/version-bridge@1.0.8 + +## @backstage/plugin-user-settings@0.8.6-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/types@1.1.1 + +## @backstage/plugin-user-settings-backend@0.2.17-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + +## example-app@0.2.97-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-notifications@0.2.1-next.0 + - @backstage/plugin-api-docs@0.11.5-next.0 + - @backstage/plugin-catalog@1.19.1-next.0 + - @backstage/plugin-home@0.7.4-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-techdocs@1.10.5-next.0 + - @backstage/cli@0.26.5-next.0 + - @backstage/plugin-auth-react@0.1.1-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-scaffolder-react@1.8.5-next.0 + - @backstage/plugin-scaffolder@1.19.4-next.0 + - @backstage/plugin-catalog-graph@0.4.5-next.0 + - @backstage/plugin-catalog-import@0.10.11-next.0 + - @backstage/plugin-devtools@0.1.14-next.0 + - @backstage/plugin-org@0.6.25-next.0 + - @backstage/plugin-search@1.4.11-next.0 + - @backstage/plugin-user-settings@0.8.6-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-catalog-unprocessed-entities@0.2.4-next.0 + - @backstage/plugin-kubernetes@0.11.10-next.0 + - @backstage/plugin-kubernetes-cluster@0.0.11-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/app-defaults@1.5.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-app-api@0.6.5-next.0 + - @backstage/integration-react@1.1.26 + - @backstage/plugin-permission-react@0.4.22 + - @backstage/plugin-search-common@1.2.11 + - @backstage/plugin-search-react@1.7.11-next.0 + - @backstage/plugin-signals@0.0.6-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.10-next.0 + +## example-app-next@0.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-notifications@0.2.1-next.0 + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/plugin-api-docs@0.11.5-next.0 + - @backstage/plugin-catalog@1.19.1-next.0 + - @backstage/plugin-home@0.7.4-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-techdocs@1.10.5-next.0 + - @backstage/cli@0.26.5-next.0 + - @backstage/plugin-auth-react@0.1.1-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-scaffolder-react@1.8.5-next.0 + - @backstage/plugin-scaffolder@1.19.4-next.0 + - @backstage/plugin-catalog-graph@0.4.5-next.0 + - @backstage/plugin-catalog-import@0.10.11-next.0 + - @backstage/plugin-org@0.6.25-next.0 + - @backstage/plugin-search@1.4.11-next.0 + - @backstage/plugin-user-settings@0.8.6-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-catalog-unprocessed-entities@0.2.4-next.0 + - @backstage/plugin-kubernetes@0.11.10-next.0 + - @backstage/plugin-kubernetes-cluster@0.0.11-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/app-defaults@1.5.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-app-api@0.6.5-next.0 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/integration-react@1.1.26 + - @backstage/plugin-app-visualizer@0.1.6-next.0 + - @backstage/plugin-permission-react@0.4.22 + - @backstage/plugin-search-common@1.2.11 + - @backstage/plugin-search-react@1.7.11-next.0 + - @backstage/plugin-signals@0.0.6-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.10-next.0 + +## app-next-example-plugin@0.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/frontend-plugin-api@0.6.5-next.0 + +## example-backend@0.2.98-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/plugin-scaffolder-backend@1.22.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/plugin-search-backend@1.5.8-next.0 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.3.4-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.23-next.0 + - @backstage/plugin-search-backend-module-explore@0.1.23-next.0 + - @backstage/plugin-auth-backend@0.22.5-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - example-app@0.2.97-next.0 + - @backstage/plugin-app-backend@0.3.66-next.0 + - @backstage/plugin-kubernetes-backend@0.17.1-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16-next.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.5-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23-next.0 + - @backstage/plugin-techdocs-backend@1.10.5-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.10.0 + - @backstage/plugin-devtools-backend@0.3.4-next.0 + - @backstage/plugin-events-backend@0.3.5-next.0 + - @backstage/plugin-events-node@0.3.4-next.0 + - @backstage/plugin-permission-backend@0.5.42-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + - @backstage/plugin-proxy-backend@0.4.16-next.0 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.19-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.35-next.0 + - @backstage/plugin-search-backend-module-elasticsearch@1.4.1-next.0 + - @backstage/plugin-search-backend-module-pg@0.5.27-next.0 + - @backstage/plugin-signals-backend@0.1.4-next.0 + - @backstage/plugin-signals-node@0.1.4-next.0 + +## example-backend-next@0.0.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend-module-github@0.2.8-next.0 + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/plugin-scaffolder-backend@1.22.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/plugin-search-backend@1.5.8-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.23-next.0 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.1-next.0 + - @backstage/plugin-auth-backend-module-guest-provider@0.1.4-next.0 + - @backstage/plugin-search-backend-module-explore@0.1.23-next.0 + - @backstage/plugin-auth-backend@0.22.5-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/plugin-notifications-backend@0.2.1-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-backend-module-openapi@0.1.36-next.0 + - @backstage/backend-defaults@0.2.18-next.0 + - @backstage/plugin-app-backend@0.3.66-next.0 + - @backstage/plugin-kubernetes-backend@0.17.1-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16-next.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.5-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23-next.0 + - @backstage/plugin-techdocs-backend@1.10.5-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/plugin-auth-backend-module-github-provider@0.1.15-next.0 + - @backstage/plugin-devtools-backend@0.3.4-next.0 + - @backstage/plugin-permission-backend@0.5.42-next.0 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.15-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + - @backstage/plugin-proxy-backend@0.4.16-next.0 + - @backstage/plugin-signals-backend@0.1.4-next.0 + +## e2e-test@0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.15-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/errors@1.2.4 + +## techdocs-cli-embedded-app@0.2.96-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.19.1-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-techdocs@1.10.5-next.0 + - @backstage/cli@0.26.5-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/app-defaults@1.5.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/integration-react@1.1.26 + - @backstage/test-utils@1.5.5-next.0 + +## @internal/plugin-todo-list@1.0.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + +## @internal/plugin-todo-list-backend@1.0.27-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/errors@1.2.4 diff --git a/docs/releases/v1.5.0-changelog.md b/docs/releases/v1.5.0-changelog.md index 6e4d251ef7..d17aae7d48 100644 --- a/docs/releases/v1.5.0-changelog.md +++ b/docs/releases/v1.5.0-changelog.md @@ -326,7 +326,7 @@ The whole proxy's `'/sonarqube':` key can be removed from your configuration files. - Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/master/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. + Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/v1.5.0/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. ### Patch Changes diff --git a/docs/releases/v1.5.0-next.1-changelog.md b/docs/releases/v1.5.0-next.1-changelog.md index deedd1dc44..8c8e039541 100644 --- a/docs/releases/v1.5.0-next.1-changelog.md +++ b/docs/releases/v1.5.0-next.1-changelog.md @@ -60,7 +60,7 @@ The whole proxy's `'/sonarqube':` key can be removed from your configuration files. - Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/master/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. + Then head to the [README in sonarqube-backend plugin page](https://github.com/backstage/backstage/tree/v1.5.0-next.1/plugins/sonarqube-backend/README.md) to learn how to set-up the link to your Sonarqube instances. ### Patch Changes diff --git a/docs/releases/v1.5.0.md b/docs/releases/v1.5.0.md index d7bbfa62a2..325bee378d 100644 --- a/docs/releases/v1.5.0.md +++ b/docs/releases/v1.5.0.md @@ -32,7 +32,7 @@ This new plugin can be used to display GitHub issues for your entities. Contribu ### New plugin: `@backstage/plugin-sonarqube-backend` -This new backend for `@backstage/plugin-sonarqube` replaces the Sonarqube proxy configuration; once it is installed, you can remove the `/sonarqube` proxy entry. For more information, see the plugin [README.md](https://github.com/backstage/backstage/blob/master/plugins/sonarqube-backend/README.md). Contributed by [@Neemys](https://github.com/Neemys) [#11925](https://github.com/backstage/backstage/pull/11925) +This new backend for `@backstage/plugin-sonarqube` replaces the Sonarqube proxy configuration; once it is installed, you can remove the `/sonarqube` proxy entry. For more information, see the plugin [README.md](https://github.com/backstage/backstage/blob/v1.5.0/plugins/sonarqube-backend/README.md). Contributed by [@Neemys](https://github.com/Neemys) [#11925](https://github.com/backstage/backstage/pull/11925) ### New module: `@backstage/plugin-catalog-backend-module-bitbucket-server` diff --git a/docs/releases/v1.6.0-changelog.md b/docs/releases/v1.6.0-changelog.md index 4172c19244..0308c5fd3d 100644 --- a/docs/releases/v1.6.0-changelog.md +++ b/docs/releases/v1.6.0-changelog.md @@ -980,7 +980,7 @@ If you were overriding the `getScorecardsDefinition` method to adjust the rendering of check results, you should now provide a custom renderer using `renderers` parameter in the `TechInsightsClient` class. - See the [README](https://github.com/backstage/backstage/tree/master/plugins/tech-insights/README.md) for more details. + See the [README](https://github.com/backstage/backstage/tree/v1.6.0/plugins/tech-insights/README.md) for more details. ### Patch Changes diff --git a/docs/releases/v1.6.0-next.1-changelog.md b/docs/releases/v1.6.0-next.1-changelog.md index ba5d032ead..3a1dc8f1b7 100644 --- a/docs/releases/v1.6.0-next.1-changelog.md +++ b/docs/releases/v1.6.0-next.1-changelog.md @@ -104,7 +104,7 @@ If you were overriding the `getScorecardsDefinition` method to adjust the rendering of check results, you should now provide a custom renderer using `renderers` parameter in the `TechInsightsClient` class. - See the [README](https://github.com/backstage/backstage/tree/master/plugins/tech-insights/README.md) for more details. + See the [README](https://github.com/backstage/backstage/tree/v1.6.0-next.1/plugins/tech-insights/README.md) for more details. ### Patch Changes diff --git a/docs/releases/v1.8.0-changelog.md b/docs/releases/v1.8.0-changelog.md index 4b36b01abf..54447a3960 100644 --- a/docs/releases/v1.8.0-changelog.md +++ b/docs/releases/v1.8.0-changelog.md @@ -872,7 +872,7 @@ - f1c3cdfb2d: Bumped create-app version. -- df21bbd4ad: The [Analytics API](https://backstage.io/docs/plugins/analytics) is the recommended way to track usage in Backstage; an optionally installable [Google Analytics module](https://github.com/backstage/backstage/tree/master/plugins/analytics-module-ga#installation) has superseded the old app.googleAnalyticsTrackingId config and its corresponding script tags in packages/app/public/index.html. +- df21bbd4ad: The [Analytics API](https://backstage.io/docs/plugins/analytics) is the recommended way to track usage in Backstage; an optionally installable [Google Analytics module](https://github.com/backstage/backstage/tree/v1.8.0/plugins/analytics-module-ga#installation) has superseded the old app.googleAnalyticsTrackingId config and its corresponding script tags in packages/app/public/index.html. For an existing installation where you want to remove the redundant app.googleAnalyticsTrackingId, you should make the following adjustment to `packages/app/public/index.html`: diff --git a/docs/releases/v1.8.0.md b/docs/releases/v1.8.0.md index 78cc5ab7cd..eb7857dc6c 100644 --- a/docs/releases/v1.8.0.md +++ b/docs/releases/v1.8.0.md @@ -32,7 +32,7 @@ Contributed by [@atoko](https://github.com/atoko) in [#14056](https://github.com ### Azure Sites -There's a new Azure Sites (Apps & Functions) plugin. It lets you view the current status of the site, and quickly jump to the site's Overview or Log Stream pages. Please check out [the plugin README](https://github.com/backstage/backstage/tree/master/plugins/azure-sites) for more information. +There's a new Azure Sites (Apps & Functions) plugin. It lets you view the current status of the site, and quickly jump to the site's Overview or Log Stream pages. Please check out [the plugin README](https://github.com/backstage/backstage/tree/v1.8.0/plugins/azure-sites) for more information. Contributed by [@wesley-pattison](https://github.com/wesley-pattison) in [#13634](https://github.com/backstage/backstage/pull/13634) diff --git a/docs/releases/v1.9.0-changelog.md b/docs/releases/v1.9.0-changelog.md index 07451f6d2c..f5b809522d 100644 --- a/docs/releases/v1.9.0-changelog.md +++ b/docs/releases/v1.9.0-changelog.md @@ -785,7 +785,7 @@ - isSonarQubeAvailable - SONARQUBE_PROJECT_KEY_ANNOTATION - Exports that been introduced to plugin-sonarqube-react are documented in the [API report](https://github.com/backstage/backstage/blob/master/plugins/sonarqube-react/api-report.md). + Exports that been introduced to plugin-sonarqube-react are documented in the [API report](https://github.com/backstage/backstage/blob/v1.9.0/plugins/sonarqube-react/api-report.md). ### Patch Changes @@ -820,7 +820,7 @@ - isSonarQubeAvailable - SONARQUBE_PROJECT_KEY_ANNOTATION - Exports that been introduced to plugin-sonarqube-react are documented in the [API report](https://github.com/backstage/backstage/blob/master/plugins/sonarqube-react/api-report.md). + Exports that been introduced to plugin-sonarqube-react are documented in the [API report](https://github.com/backstage/backstage/blob/v1.9.0/plugins/sonarqube-react/api-report.md). ### Patch Changes @@ -1299,7 +1299,7 @@ - d3fea4ae0a: Internal fixes to avoid implicit usage of globals - 3280711113: Updated dependency `msw` to `^0.49.0`. - 9516b0c355: Added support for sending virtual pageviews on `search` events in order to enable - Site Search functionality in GA. For more information consult [README](https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga/README.md#enabling-site-search) + Site Search functionality in GA. For more information consult [README](https://github.com/backstage/backstage/blob/v1.9.0/plugins/analytics-module-ga/README.md#enabling-site-search) - Updated dependencies - @backstage/core-plugin-api@1.2.0 - @backstage/core-components@0.12.1 @@ -2023,7 +2023,7 @@ - 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/v1.9.0/plugins/explore-backend/README.md) for full details. NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. @@ -2047,7 +2047,7 @@ - 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/v1.9.0/plugins/explore-backend/README.md) for full details. NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. @@ -2065,7 +2065,7 @@ - 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/v1.9.0/plugins/explore-backend/README.md) for full details. NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. @@ -2079,7 +2079,7 @@ - 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/v1.9.0/plugins/explore-backend/README.md) for full details. NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. diff --git a/docs/releases/v1.9.0-next.1-changelog.md b/docs/releases/v1.9.0-next.1-changelog.md index 862734131a..0716dba0cd 100644 --- a/docs/releases/v1.9.0-next.1-changelog.md +++ b/docs/releases/v1.9.0-next.1-changelog.md @@ -1133,7 +1133,7 @@ - 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/v1.9.0-next.1/plugins/explore-backend/README.md) for full details. NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. @@ -1157,7 +1157,7 @@ - 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/v1.9.0-next.1/plugins/explore-backend/README.md) for full details. NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. @@ -1175,7 +1175,7 @@ - 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/v1.9.0-next.1/plugins/explore-backend/README.md) for full details. NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. @@ -1187,7 +1187,7 @@ - 4dec6f16be: Added new `@backstage/plugin-explore-backend` & `@backstage/plugin-explore-common` packages. - This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/master/plugins/explore-backend/README.md) for full details. + This deprecates the `ExploreToolsConfig` API (in `@backstage/plugin-explore-react`) which is replaced by the `ExploreApi` & `ExploreClient`. The list of `ExploreTool` data can now be provided on the backend by either using the supplied `StaticExploreToolProvider` or by implementing a custom `ExploreToolProvider`. See the [explore-backend README](https://github.com/backstage/backstage/blob/v1.9.0-next.1/plugins/explore-backend/README.md) for full details. NOTE: Existing installations that have customized the `ExploreToolConfig` will continue to work through the new `ExploreClient`. However, existing data should be migrated over to new `explore-backend` plugin as `ExploreToolConfig` will be removed in the future. diff --git a/docs/releases/v1.9.0-next.2-changelog.md b/docs/releases/v1.9.0-next.2-changelog.md index 2c6d495641..65c3b43b24 100644 --- a/docs/releases/v1.9.0-next.2-changelog.md +++ b/docs/releases/v1.9.0-next.2-changelog.md @@ -525,7 +525,7 @@ ### Patch Changes - 9516b0c355: Added support for sending virtual pageviews on `search` events in order to enable - Site Search functionality in GA. For more information consult [README](https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga/README.md#enabling-site-search) + Site Search functionality in GA. For more information consult [README](https://github.com/backstage/backstage/blob/v1.9.0-next.2/plugins/analytics-module-ga/README.md#enabling-site-search) - Updated dependencies - @backstage/core-plugin-api@1.2.0-next.2 - @backstage/core-components@0.12.1-next.2 diff --git a/microsite/blog/2020-04-06-lighthouse-plugin.mdx b/microsite/blog/2020-04-06-lighthouse-plugin.mdx index d94ec8bd8d..0027d0521c 100644 --- a/microsite/blog/2020-04-06-lighthouse-plugin.mdx +++ b/microsite/blog/2020-04-06-lighthouse-plugin.mdx @@ -33,7 +33,7 @@ Trigger an audit directly from Backstage, or trigger audits programmatically wit ## Using Lighthouse in Backstage -To learn how you can enable Lighthouse auditing within Backstage, head over to the [README](https://github.com/backstage/backstage/tree/master/plugins/lighthouse) for the plugin to get started. +To learn how you can enable Lighthouse auditing within Backstage, head over to the [README](https://github.com/backstage/community-plugins/tree/main/workspaces/lighthouse/plugins/lighthouse) for the plugin to get started. ## A personal note diff --git a/microsite/blog/2020-05-22-phase-2-service-catalog.mdx b/microsite/blog/2020-05-22-phase-2-service-catalog.mdx index 3b556bbd3d..81c99c7c07 100644 --- a/microsite/blog/2020-05-22-phase-2-service-catalog.mdx +++ b/microsite/blog/2020-05-22-phase-2-service-catalog.mdx @@ -40,7 +40,7 @@ On top of that, we have found that the service catalog is a great way to organis ![img](assets/20-05-20/tabs.png) -More concretely, having this structure in place will allow plugins such as [CircleCI](https://github.com/backstage/backstage/tree/master/plugins/circleci) to show only the builds for the specific service you are viewing, or a [Spinnaker](https://github.com/backstage/backstage/issues/631) plugin to show running deployments, or an Open API plugin to [show documentation](https://github.com/backstage/backstage/issues/627) for endpoints exposed by the service, or the [Lighthouse](https://github.com/backstage/backstage/tree/master/plugins/lighthouse) plugin to show audit reports for your website. You get the point. +More concretely, having this structure in place will allow plugins such as [CircleCI](https://github.com/backstage/backstage/tree/master/plugins/circleci) to show only the builds for the specific service you are viewing, or a [Spinnaker](https://github.com/backstage/backstage/issues/631) plugin to show running deployments, or an Open API plugin to [show documentation](https://github.com/backstage/backstage/issues/627) for endpoints exposed by the service, or the [Lighthouse](https://github.com/backstage/community-plugins/tree/main/workspaces/lighthouse/plugins/lighthouse) plugin to show audit reports for your website. You get the point. ## Timeline diff --git a/microsite/blog/2020-09-30-plugin-marketplace.mdx b/microsite/blog/2020-09-30-plugin-marketplace.mdx index 2f74b0200e..f97c744263 100644 --- a/microsite/blog/2020-09-30-plugin-marketplace.mdx +++ b/microsite/blog/2020-09-30-plugin-marketplace.mdx @@ -34,7 +34,7 @@ This grand vision is actually not that far off. Already today there is a growing Not all plugins you need will be open source. Every company has their own homegrown tooling. Building internal plugins lets you tailor your version of Backstage to be a perfect fit for your infrastructure and software development needs. If you end up [building plugins](https://backstage.io/docs/plugins/create-a-plugin) that could be useful for other companies, please consider releasing them as open source and [add them to the Marketplace](https://backstage.io/docs/plugins/add-to-marketplace). -If you start developing a plugin that you aim to release as open source, we suggest that you create a [new plugin Issue](https://github.com/backstage/backstage/issues/new?labels=plugin&template=plugin_template.md&title=%5BPlugin%5D+THE+PLUGIN+NAME). This helps the community know what plugins are in development and opens up opportunities for collaboration. You can also use this process if you have an idea for a good plugin, but you need help building it. +If you start developing a plugin that you aim to release as open source, we suggest that you create a [new plugin Issue on the community plugins repo](https://github.com/backstage/community-plugins/issues/new/choose). This helps the community know what plugins are in development and opens up opportunities for collaboration. You can also use this process if you have an idea for a good plugin, but you need help building it. We are really excited to see all the amazing plugins that have already been built, and look forward to seeing even more ideas and collaboration as the Backstage community continues to grow. diff --git a/microsite/blog/2020-10-22-cost-insights-plugin.mdx b/microsite/blog/2020-10-22-cost-insights-plugin.mdx index 98bca88477..1ffddd3303 100644 --- a/microsite/blog/2020-10-22-cost-insights-plugin.mdx +++ b/microsite/blog/2020-10-22-cost-insights-plugin.mdx @@ -5,7 +5,7 @@ author: Janisa Anandamohan, Spotify authorURL: https://twitter.com/janisa_a --- -How did Spotify save millions on cloud costs within a matter of months?? We made cost optimization just another part of the daily development process. Our newly open sourced [Cost Insights plugin](https://github.com/backstage/backstage/tree/master/plugins/cost-insights) makes a team’s cloud costs visible — and actionable — right inside Backstage. So engineers can see the impact of their cloud usage (down to a product and resource level) and make optimizations wherever and whenever it makes sense. By managing cloud costs from the ground up, you can make smarter decisions that let you continue to build and scale quickly, without wasting resources. +How did Spotify save millions on cloud costs within a matter of months?? We made cost optimization just another part of the daily development process. Our newly open sourced [Cost Insights plugin](https://github.com/backstage/community-plugins/tree/main/workspaces/cost-insights/plugins/cost-insights) makes a team’s cloud costs visible — and actionable — right inside Backstage. So engineers can see the impact of their cloud usage (down to a product and resource level) and make optimizations wherever and whenever it makes sense. By managing cloud costs from the ground up, you can make smarter decisions that let you continue to build and scale quickly, without wasting resources. <iframe width="780" @@ -67,7 +67,7 @@ Engineers can then determine for themselves if the time invested in an optimizat ## Getting started -You can begin working with the Cost Insights plugin today on [GitHub](https://github.com/backstage/backstage/tree/master/plugins/cost-insights). We include an example client with static data in the expected format. The `CostInsightsApi` should talk with a cloud billing backend that aggregates billing data from your cloud provider. +You can begin working with the Cost Insights plugin today on [GitHub](https://github.com/backstage/community-plugins/tree/main/workspaces/cost-insights/plugins/cost-insights). We include an example client with static data in the expected format. The `CostInsightsApi` should talk with a cloud billing backend that aggregates billing data from your cloud provider. The current release of Cost Insights includes: @@ -84,4 +84,4 @@ And if you’re interested in contributing to our outstanding issues, you can fi ## Ready for DevSecCostOpsPlus (and whatever’s next) -There’s DevOps, there’s DevSecOps, and then there’s Backstage: one frontend for all your infrastructure. From building, testing, and deploying to monitoring and security — Backstage helps you manage your entire tech organization and provides a seamless developer experience for engineers, from end to end to end. And now that also extends to cost management for your cloud infrastructure and tooling. Happy building and [happy optimizing](https://github.com/backstage/backstage/tree/master/plugins/cost-insights). +There’s DevOps, there’s DevSecOps, and then there’s Backstage: one frontend for all your infrastructure. From building, testing, and deploying to monitoring and security — Backstage helps you manage your entire tech organization and provides a seamless developer experience for engineers, from end to end to end. And now that also extends to cost management for your cloud infrastructure and tooling. Happy building and [happy optimizing](https://github.com/backstage/community-plugins/tree/main/workspaces/cost-insights/plugins/cost-insights). diff --git a/microsite/blog/2024-04-19-community-plugins.mdx b/microsite/blog/2024-04-19-community-plugins.mdx index e4e31f7889..bb8b9c2313 100644 --- a/microsite/blog/2024-04-19-community-plugins.mdx +++ b/microsite/blog/2024-04-19-community-plugins.mdx @@ -6,27 +6,27 @@ authorURL: https://github.com/benjdlambert authorImageURL: https://avatars.githubusercontent.com/u/3645856?v=4 --- -**tl;dr**: We've setup the [Community Plugins Repository](https://github.com/backstage/community-plugins), and have migrated most of the packages in the `plugins` directory of the main Backstage repository to their new home! +**tl;dr**: We've set up the new [community plugins repository](https://github.com/backstage/community-plugins), and have migrated most of the packages in the `plugins` directory of the main Backstage repository to their new home! -For those who depended on these plugins migrating is as simple as `yarn backstage-cli versions:bump` then `yarn backstage-cli versions:migrate`. If you're already on `1.26.1` then be sure to run `yarn backstage-cli versions:bump --skip-migrate` then `yarn backstage-cli versions:migrate` to take advantage of the code reference replacement helpers. +For those who depended on these plugins, migrating is as simple as `yarn backstage-cli versions:bump` then `yarn backstage-cli versions:migrate`. If you're already on `1.26.1`, then be sure to run `yarn backstage-cli versions:bump --skip-migrate` then `yarn backstage-cli versions:migrate` to take advantage of the code reference replacement helpers. {/* truncate */} -## The Community Plugins Repo +## The community plugins repo -Some of you that have been around a while, or seen some of our [Maintainer Track talks](https://www.youtube.com/watch?v=ONMBYnhxnNU) at KubeCon, might have seen [this RFC](https://github.com/backstage/backstage/issues/20266) which outlines some issues with the scale of the `backstage/backstage` monorepo, and us as maintainers being the defacto owners of all plugins without a [Project Area](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#project-area) or [Plugin Maintainer](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#project-area-maintainer). +Some of you who have been around a while, or have seen our [Maintainer Track talks](https://www.youtube.com/watch?v=ONMBYnhxnNU) at KubeCon, might have seen [this RFC](https://github.com/backstage/backstage/issues/20266) which outlines some issues with the scale of the `backstage/backstage` monorepo, and us as maintainers being the de facto owners of all plugins without a [project area](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#project-area) or [plugin maintainer](https://github.com/backstage/backstage/blob/master/GOVERNANCE.md#project-area-maintainer). -There was some great discussion in this issue, and some great ideas. One of them being a dedicated home for Community Plugins, with all the burden of release tooling and workspace tooling already setup, which is a pretty big barrier for people wanting to create plugins for Backstage in their own organization or personal account. These plugins would then have the ability to release independently of the main monorepo, and have their own release cadence, which is something that we've been looking at exploring for a while. +There was some great discussion in this issue, and some great ideas. One of the ideas was to create a dedicated home for community plugins, with all the burden of release tooling and workspace tooling already set up, which is a pretty big barrier for people wanting to create plugins for Backstage in their own organization or personal account. These plugins would then have the ability to release independently of the main monorepo, and have their own release cadence, which is something that we've been looking at exploring for a while. -With Red Hat wanting to join forces and help get this setup, this is the path that we picked, and the last few months have been a lot of hard work from both sides getting this repository in shape and coming up with a deprecation plan for these plugins in the main repository. +With Red Hat wanting to join forces and help get this set up, this is the path that we picked, and the last few months have been a lot of hard work from both sides getting this repository in shape and coming up with a deprecation plan for these plugins in the main repository. -Would also like to give a shoutout to all the Community Plugins Project area maintainers, who have been helping get us to this state! [@vinzscam](https://github.com/vinzscam) [@tudi2d](https://github.com/tudi2d) [@bethgriggs](https://github.com/BethGriggs) [@kadel](https://github.com/kadel) [@awanlin](https://github.com/awanlin) 👏 +Would also like to give a shoutout to all the [Community Plugins project area](https://github.com/backstage/backstage/blob/master/OWNERS.md#community-plugins) maintainers, who have been helping get us to this state! [@vinzscam](https://github.com/vinzscam) [@tudi2d](https://github.com/tudi2d) [@bethgriggs](https://github.com/BethGriggs) [@kadel](https://github.com/kadel) [@awanlin](https://github.com/awanlin) 👏 -And now with the release of `1.26.3` there's a large amount of plugins from the main monorepo that have been migrated over to the new [Community Plugins Repository](https://github.com/backstage/community-plugins) :tada: +And now with the release of `1.26.3` there's a large amount of plugins from the main monorepo that have been migrated over to the new [community plugins repository](https://github.com/backstage/community-plugins). :tada: -## The Migration +## The migration -With the moving of these plugins, we thought it would also be a good time to move the `npm` scope, so that end users can differentiate between Backstage packages, and community maintained packages. So the `@backstage-community` namespace was born! +With the moving of these plugins, we thought it would also be a good time to move the `npm` scope, so that end users can differentiate between Backstage packages, and community-maintained packages. So the `@backstage-community` namespace was born! This makes migration a little tricky for end users, as there's going to be code references and `package.json` dependencies pointing to the older packages which are no longer going to be published. @@ -50,7 +50,7 @@ From this latest `1.26.3` release and onwards, the `backstage-cli versions:bump` ## Help! My plugin has been moved! -No stress! If you were a `CODEOWNER` of the code in the monorepo, these permissions will be migrated over to the [Community Plugins Repository](https://github.com/backstage/community-plugins) so you should still have access to the code. And now you're in charge of releasing your own plugin! 🚀 You can do that by following the same flow from the monorepo, with changesets and merging the `Version Packages (My Plugin)` PR. +No stress! If you were a `CODEOWNER` of the code in the monorepo, these permissions will be migrated over to the [community plugins repository](https://github.com/backstage/community-plugins) so you should still have access to the code. And now you're in charge of releasing your own plugin! 🚀 You can do that by following the same flow from the monorepo, with changesets and merging the `Version Packages (My Plugin)` PR. Please reach out to us on [Discord](https://discord.com/invite/backstage-687207715902193673) if you have any issues! We're looking forward to working together in the new space! @@ -62,56 +62,219 @@ We've taken a pretty big chunk of the plugins from the main monorepo and moved t <summary> Here's a list of plugins that have been moved with this release </summary> - - `@backstage/plugin-adr-backend` - `@backstage/plugin-adr-common` - `@backstage/plugin-adr` - - `@backstage/plugin-airbrake-backend` - `@backstage/plugin-airbrake` - `@backstage/plugin-allure` - - `@backstage/plugin-analytics-module-ga` - `@backstage/plugin-analytics-module-ga4` - - `@backstage/plugin-analytics-module-newrelic-browser` - `@backstage/plugin-apache-airflow` - - `@backstage/plugin-apollo-explorer` - `@backstage/plugin-azure-devops-backend` - - `@backstage/plugin-azure-devops-common` - `@backstage/plugin-azure-devops` - - `@backstage/plugin-azure-sites-backend` - `@backstage/plugin-azure-sites-common` - - `@backstage/plugin-azure-sites` - `@backstage/plugin-badges-backend` - `@backstage/plugin-badges` - - `@backstage/plugin-bazaar-backend` - `@backstage/plugin-bazaar` - `@backstage/plugin-bitrise` - - `@backstage/plugin-cicd-statistics-module-gitlab` - `@backstage/plugin-cicd-statistics` - - `@backstage/plugin-circleci` - `@backstage/plugin-cloudbuild` - `@backstage/plugin-code-climate` - - `@backstage/plugin-code-coverage-backend` - `@backstage/plugin-code-coverage` - - `@backstage/plugin-codescene` - `@backstage/plugin-cost-insights-common` - `@backstage/plugin-cost-insights` - - `@backstage/plugin-dynatrace` - `@backstage/plugin-entity-feedback-backend` - - `@backstage/plugin-entity-feedback-common` - `@backstage/plugin-entity-feedback` - - `@backstage/plugin-entity-validation` - `@backstage/plugin-explore-backend` - - `@backstage/plugin-explore-common` - `@backstage/plugin-explore-react` - `@backstage/plugin-explore` - - `@backstage/plugin-firehydrant` - `@backstage/plugin-fossa` - `@backstage/plugin-gcalendar` - - `@backstage/plugin-gcp-projects` - `@backstage/plugin-git-release-manager` - - `@backstage/plugin-github-actions` - `@backstage/plugin-github-deployments` - `@backstage/plugin-github-issues` - - `@backstage/plugin-github-pull-requests-board` - `@backstage/plugin-gitops-profiles` - - `@backstage/plugin-gocd` - `@backstage/plugin-graphiql` - `@backstage/plugin-graphql-voyager` - - `@backstage/plugin-ilert` - `@backstage/plugin-jenkins-backend` - `@backstage/plugin-jenkins-common` - - `@backstage/plugin-jenkins` - `@backstage/plugin-kafka-backend` - `@backstage/plugin-kafka` - - `@backstage/plugin-lighthouse-backend` - `@backstage/plugin-lighthouse-common` - - `@backstage/plugin-lighthouse` - `@backstage/plugin-microsoft-calendar` - `@backstage/plugin-newrelic-dashboard` - - `@backstage/plugin-newrelic` - `@backstage/plugin-octopus-deploy` - `@backstage/plugin-opencost` - - `@backstage/plugin-periskop-backend` - `@backstage/plugin-periskop` - `@backstage/plugin-playlist-backend` - - `@backstage/plugin-playlist-common` - `@backstage/plugin-playlist` - `@backstage/plugin-puppetdb` - - `@backstage/plugin-rollbar-backend` - `@backstage/plugin-rollbar` - `@backstage/plugin-sentry` - - `@backstage/plugin-shortcuts` - `@backstage/plugin-sonarqube-backend` - `@backstage/plugin-sonarqube-react` - - `@backstage/plugin-sonarqube` - `@backstage/plugin-splunk-on-call` - `@backstage/plugin-stack-overflow-backend` - - `@backstage/plugin-stack-overflow` - `@backstage/plugin-stackstorm` - `@backstage/plugin-tech-insights-backend-module-jsonfc` - - `@backstage/plugin-tech-insights-backend` - `@backstage/plugin-tech-insights-common` - - `@backstage/plugin-tech-insights-node` - `@backstage/plugin-tech-insights` - - `@backstage/plugin-tech-radar` - `@backstage/plugin-vault-backend` - `@backstage/plugin-vault-node` - - `@backstage/plugin-vault` - `@backstage/plugin-xcmetrics` + +- `@backstage/plugin-adr-backend` + +- `@backstage/plugin-adr-common` + +- `@backstage/plugin-adr` + +- `@backstage/plugin-airbrake-backend` + +- `@backstage/plugin-airbrake` + +- `@backstage/plugin-allure` + +- `@backstage/plugin-analytics-module-ga` + +- `@backstage/plugin-analytics-module-ga4` + +- `@backstage/plugin-analytics-module-newrelic-browser` + +- `@backstage/plugin-apache-airflow` + +- `@backstage/plugin-apollo-explorer` + +- `@backstage/plugin-azure-devops-backend` + +- `@backstage/plugin-azure-devops-common` + +- `@backstage/plugin-azure-devops` + +- `@backstage/plugin-azure-sites-backend` + +- `@backstage/plugin-azure-sites-common` + +- `@backstage/plugin-azure-sites` + +- `@backstage/plugin-badges-backend` + +- `@backstage/plugin-badges` + +- `@backstage/plugin-bazaar-backend` + +- `@backstage/plugin-bazaar` + +- `@backstage/plugin-bitrise` + +- `@backstage/plugin-cicd-statistics-module-gitlab` + +- `@backstage/plugin-cicd-statistics` + +- `@backstage/plugin-circleci` + +- `@backstage/plugin-cloudbuild` + +- `@backstage/plugin-code-climate` + +- `@backstage/plugin-code-coverage-backend` + +- `@backstage/plugin-code-coverage` + +- `@backstage/plugin-codescene` + +- `@backstage/plugin-cost-insights-common` + +- `@backstage/plugin-cost-insights` + +- `@backstage/plugin-dynatrace` + +- `@backstage/plugin-entity-feedback-backend` + +- `@backstage/plugin-entity-feedback-common` + +- `@backstage/plugin-entity-feedback` + +- `@backstage/plugin-entity-validation` + +- `@backstage/plugin-explore-backend` + +- `@backstage/plugin-explore-common` + +- `@backstage/plugin-explore-react` + +- `@backstage/plugin-explore` + +- `@backstage/plugin-firehydrant` + +- `@backstage/plugin-fossa` + +- `@backstage/plugin-gcalendar` + +- `@backstage/plugin-gcp-projects` + +- `@backstage/plugin-git-release-manager` + +- `@backstage/plugin-github-actions` + +- `@backstage/plugin-github-deployments` + +- `@backstage/plugin-github-issues` + +- `@backstage/plugin-github-pull-requests-board` + +- `@backstage/plugin-gitops-profiles` + +- `@backstage/plugin-gocd` + +- `@backstage/plugin-graphiql` + +- `@backstage/plugin-graphql-voyager` + +- `@backstage/plugin-ilert` + +- `@backstage/plugin-jenkins-backend` + +- `@backstage/plugin-jenkins-common` + +- `@backstage/plugin-jenkins` + +- `@backstage/plugin-kafka-backend` + +- `@backstage/plugin-kafka` + +- `@backstage/plugin-lighthouse-backend` + +- `@backstage/plugin-lighthouse-common` + +- `@backstage/plugin-lighthouse` + +- `@backstage/plugin-linguist` + +- `@backstage/plugin-linguist-common` + +- `@backstage/plugin-linguist-backend` + +- `@backstage/plugin-microsoft-calendar` + +- `@backstage/plugin-newrelic-dashboard` + +- `@backstage/plugin-newrelic` + +- `@backstage/plugin-nomad` + +- `@backstage/plugin-nomad-backend` + +- `@backstage/plugin-octopus-deploy` + +- `@backstage/plugin-opencost` + +- `@backstage/plugin-periskop-backend` + +- `@backstage/plugin-periskop` + +- `@backstage/plugin-playlist-backend` + +- `@backstage/plugin-playlist-common` + +- `@backstage/plugin-playlist` + +- `@backstage/plugin-puppetdb` + +- `@backstage/plugin-rollbar-backend` + +- `@backstage/plugin-rollbar` + +- `@backstage/plugin-sentry` + +- `@backstage/plugin-shortcuts` + +- `@backstage/plugin-sonarqube-backend` + +- `@backstage/plugin-sonarqube-react` + +- `@backstage/plugin-sonarqube` + +- `@backstage/plugin-splunk-on-call` + +- `@backstage/plugin-stack-overflow-backend` + +- `@backstage/plugin-stack-overflow` + +- `@backstage/plugin-stackstorm` + +- `@backstage/plugin-tech-insights-backend-module-jsonfc` + +- `@backstage/plugin-tech-insights-backend` + +- `@backstage/plugin-tech-insights-common` + +- `@backstage/plugin-tech-insights-node` + +- `@backstage/plugin-tech-insights` + +- `@backstage/plugin-tech-radar` + +- `@backstage/plugin-vault-backend` + +- `@backstage/plugin-vault-node` + +- `@backstage/plugin-vault` + +- `@backstage/plugin-xcmetrics` + </details> ## What's next? -There's going to be a little bit of time now in this migration period where there's going to be issues and pull requests not in the right place, and we're going to do our best to transfer issues to the community plugins repository instead. -We will shortly be removing the code for these plugins from the main monorepo as it now has a new home in the Community Plugins Repository. +There's going to be a little bit of time now in this migration period where there's going to be issues and pull requests not in the right place, and we're going to do our best to transfer issues to the community plugins repository instead. We will shortly be removing the code for these plugins from the main monorepo as it now has a new home in the community plugins repository. -We're also going to be looking at bringing in some more of the great tooling from the `backstage/backstage` monorepo into the community plugins repository to help out with more automation for dependency bumps etc. +We're also going to be looking at bringing in some more of the great tooling from the `backstage/backstage` monorepo into the community plugins repository to help out with more automation for dependency bumps, etc. ## How can I get involved? If you're interested in getting involved with the community and helping us maintain this repository, please reach out either on [Discord](https://discord.com/invite/backstage-687207715902193673) or in an issue on the [community repository](https://github.com/backstage/community). -If you're wanting to contribute some plugins to Backstage, the Community Plugin repository is open for business :tada: and we're looking forward to seeing what you come up with! Head over to the [Community Plugins Docs](https://github.com/backstage/community-plugins/tree/main/README.md) to get started creating your own workspace! +If you're wanting to contribute some plugins to Backstage, the community plugin repository is open for business :tada: and we're looking forward to seeing what you come up with! Head over to the [community plugins docs](https://github.com/backstage/community-plugins/tree/main/README.md) to get started creating your own workspace! Thanks! diff --git a/microsite/data/plugins/adr.yaml b/microsite/data/plugins/adr.yaml index e6b7b0cccb..003ae22e7b 100644 --- a/microsite/data/plugins/adr.yaml +++ b/microsite/data/plugins/adr.yaml @@ -4,7 +4,7 @@ author: Phil Kuang authorUrl: https://github.com/kuangp category: Discovery description: Browse your project's ADRs. -documentation: https://github.com/backstage/backstage/tree/master/plugins/adr +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/adr/plugins/adr iconUrl: /img/adr-logo.png -npmPackageName: '@backstage/plugin-adr' +npmPackageName: '@backstage-community/plugin-adr' addedDate: '2022-04-13' diff --git a/microsite/data/plugins/allure.yaml b/microsite/data/plugins/allure.yaml index fc21849268..cbcd0ec435 100644 --- a/microsite/data/plugins/allure.yaml +++ b/microsite/data/plugins/allure.yaml @@ -4,7 +4,7 @@ author: Deepak Bhardwaj authorUrl: https://github.com/deepak-bhardwaj-ps category: Reporting description: View Allure reports for your components in Backstage. -documentation: https://github.com/backstage/backstage/tree/master/plugins/allure +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/allure/plugins/allure iconUrl: https://avatars.githubusercontent.com/u/5879127 -npmPackageName: '@backstage/plugin-allure' +npmPackageName: '@backstage-community/plugin-allure' addedDate: '2021-09-02' diff --git a/microsite/data/plugins/aws-amazon-ecs.yaml b/microsite/data/plugins/aws-amazon-ecs.yaml new file mode 100644 index 0000000000..a94779babd --- /dev/null +++ b/microsite/data/plugins/aws-amazon-ecs.yaml @@ -0,0 +1,10 @@ +--- +title: Amazon Elastic Container Service +author: Amazon Web Services +authorUrl: https://aws.amazon.com/ +category: Infrastructure +description: View resources related to Amazon Elastic Container Service for your components in Backstage. +documentation: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/ecs#readme +iconUrl: https://raw.githubusercontent.com/awslabs/backstage-plugins-for-aws/main/docs/images/logos/amazon-ecs-logo.png +npmPackageName: 'https://www.npmjs.com/package/@aws/amazon-ecs-plugin-for-backstage' +addedDate: '2024-04-22' diff --git a/microsite/data/plugins/aws-codebuild.yaml b/microsite/data/plugins/aws-codebuild.yaml new file mode 100644 index 0000000000..2c12f92dce --- /dev/null +++ b/microsite/data/plugins/aws-codebuild.yaml @@ -0,0 +1,10 @@ +--- +title: AWS CodeBuild +author: Amazon Web Services +authorUrl: https://aws.amazon.com/ +category: CI/CD +description: View resources related to AWS CodeBuild for your components in Backstage. +documentation: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codebuild#readme +iconUrl: https://raw.githubusercontent.com/awslabs/backstage-plugins-for-aws/main/docs/images/logos/aws-codebuild-logo.png +npmPackageName: 'https://www.npmjs.com/package/@aws/aws-codebuild-plugin-for-backstage' +addedDate: '2024-04-22' diff --git a/microsite/data/plugins/aws-codepipeline.yaml b/microsite/data/plugins/aws-codepipeline.yaml new file mode 100644 index 0000000000..16986b6718 --- /dev/null +++ b/microsite/data/plugins/aws-codepipeline.yaml @@ -0,0 +1,10 @@ +--- +title: AWS CodePipeline +author: Amazon Web Services +authorUrl: https://aws.amazon.com/ +category: CI/CD +description: View resources related to AWS CodePipeline for your components in Backstage. +documentation: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codepipeline#readme +iconUrl: https://raw.githubusercontent.com/awslabs/backstage-plugins-for-aws/main/docs/images/logos/aws-codepipeline-logo.png +npmPackageName: 'https://www.npmjs.com/package/@aws/aws-codepipeline-plugin-for-backstage' +addedDate: '2024-04-22' diff --git a/microsite/data/plugins/aws-codeservices.yaml b/microsite/data/plugins/aws-codeservices.yaml deleted file mode 100644 index 34fa335923..0000000000 --- a/microsite/data/plugins/aws-codeservices.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: AWS Code Services -author: Amazon Web Services -authorUrl: https://aws.amazon.com/ -category: CI/CD -description: View resources related to AWS CodePipeline, AWS CodeBuild and AWS CodeDeploy for your components in Backstage. -documentation: https://github.com/awslabs/aws-codeservices-plugins-for-backstage#readme -iconUrl: https://github.com/awslabs/aws-codeservices-plugins-for-backstage/blob/main/docs/images/codepipeline-logo.png?raw=true -npmPackageName: '@aws/aws-codeservices-plugin-for-backstage' -addedDate: '2023-01-17' diff --git a/microsite/data/plugins/aws-proton.yaml b/microsite/data/plugins/aws-proton.yaml deleted file mode 100644 index f66b556d42..0000000000 --- a/microsite/data/plugins/aws-proton.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: AWS Proton -author: Amazon Web Services -authorUrl: https://aws.amazon.com/ -category: Infrastructure -description: Create and view AWS Proton services for your components in Backstage. -documentation: https://github.com/awslabs/aws-proton-plugins-for-backstage#readme -iconUrl: https://github.com/awslabs/aws-proton-plugins-for-backstage/blob/main/docs/images/proton-logo.png?raw=true -npmPackageName: '@aws/aws-proton-plugin-for-backstage' -addedDate: '2022-06-21' diff --git a/microsite/data/plugins/azure-sites.yaml b/microsite/data/plugins/azure-sites.yaml index 70e586f30e..03b61b9614 100644 --- a/microsite/data/plugins/azure-sites.yaml +++ b/microsite/data/plugins/azure-sites.yaml @@ -4,6 +4,6 @@ author: FRISS authorUrl: https://friss.com category: Infrastructure description: Azure Sites (Apps & Functions) support for a given entity. View the current status of the site, quickly jump to site's Overview page, or Log Stream page. -documentation: https://github.com/backstage/backstage/tree/master/plugins/azure-sites -npmPackageName: '@backstage/plugin-azure-sites' +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/azure-sites/plugins/azure-sites +npmPackageName: '@backstage-community/plugin-azure-sites' addedDate: '2022-10-18' diff --git a/microsite/data/plugins/changelog.yaml b/microsite/data/plugins/changelog.yaml index 1b4684db7f..a1ee12feea 100644 --- a/microsite/data/plugins/changelog.yaml +++ b/microsite/data/plugins/changelog.yaml @@ -3,7 +3,7 @@ title: Changelog viewer author: RSC Labs authorUrl: https://rsoftcon.com/ category: Discovery -description: View changelogs for your components in Backstage. Built-in support of "Keep the changelog" format. +description: View changelogs for your components in Backstage. Built-in support of "Keep the changelog" and "Semver" formats. documentation: https://github.com/RSC-Labs/backstage-changelog-plugin/blob/main/README.md iconUrl: https://raw.githubusercontent.com/RSC-Labs/backstage-changelog-plugin/main/docs/plugin_icon.png npmPackageName: '@rsc-labs/backstage-changelog-plugin' diff --git a/microsite/data/plugins/cicd-statistics.yaml b/microsite/data/plugins/cicd-statistics.yaml index ff5c2cccf3..ea745b1129 100644 --- a/microsite/data/plugins/cicd-statistics.yaml +++ b/microsite/data/plugins/cicd-statistics.yaml @@ -4,9 +4,9 @@ author: Spotify authorUrl: https://github.com/spotify category: CI/CD description: Visualize CI/CD pipeline statistics such as build time or success and error rates. -documentation: https://github.com/backstage/backstage/tree/master/plugins/cicd-statistics +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/cicd-statistics/plugins/cicd-statistics iconUrl: /img/cicd-statistics.svg -npmPackageName: '@backstage/plugin-cicd-statistics' +npmPackageName: '@backstage-community/plugin-cicd-statistics' tags: - ci - cd diff --git a/microsite/data/plugins/cloud-build.yaml b/microsite/data/plugins/cloud-build.yaml index 67ef13011b..b63b29a559 100644 --- a/microsite/data/plugins/cloud-build.yaml +++ b/microsite/data/plugins/cloud-build.yaml @@ -4,9 +4,9 @@ author: Trivago authorUrl: https://www.trivago.com category: CI/CD description: Build, test, and deploy on Google's serverless CI/CD platform. -documentation: https://github.com/backstage/backstage/tree/master/plugins/cloudbuild +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/cloudbuild/plugins/cloudbuild iconUrl: https://avatars2.githubusercontent.com/u/38220399?s=400&v=4 -npmPackageName: '@backstage/plugin-cloudbuild' +npmPackageName: '@backstage-community/plugin-cloudbuild' tags: - ci - cd diff --git a/microsite/data/plugins/codacy-repo-adder.yaml b/microsite/data/plugins/codacy-repo-adder.yaml new file mode 100644 index 0000000000..a479a45ecf --- /dev/null +++ b/microsite/data/plugins/codacy-repo-adder.yaml @@ -0,0 +1,10 @@ +--- +title: Codacy Repo Adder +author: Codacy +authorUrl: https://www.codacy.com/ +category: Quality +description: A Template Action to automatically add a Repository to Codacy +documentation: https://github.com/codacy/backstage-plugin/blob/main/README.md +iconUrl: /img/codacy-icon.svg +npmPackageName: '@codacy/backstage-plugin' +addedDate: '2024-04-19' diff --git a/microsite/data/plugins/codescene.yaml b/microsite/data/plugins/codescene.yaml index 734e575282..b69124aecc 100644 --- a/microsite/data/plugins/codescene.yaml +++ b/microsite/data/plugins/codescene.yaml @@ -4,7 +4,7 @@ author: CodeScene authorUrl: https://codescene.com/ category: Quality description: CodeScene is a multi-purpose tool bridging code, business and people. See hidden risks and social patterns in your code. Prioritize and reduce technical debt. -documentation: https://github.com/backstage/backstage/tree/master/plugins/codescene +documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/codescene/plugins/codescene iconUrl: /img/codescene_logo.svg -npmPackageName: '@backstage/plugin-codescene' +npmPackageName: '@backstage-community/plugin-codescene' addedDate: '2022-04-12' diff --git a/microsite/data/plugins/cost-insights.yaml b/microsite/data/plugins/cost-insights.yaml index 603cd18416..625b3f1c2c 100644 --- a/microsite/data/plugins/cost-insights.yaml +++ b/microsite/data/plugins/cost-insights.yaml @@ -4,9 +4,9 @@ author: Spotify authorUrl: https://github.com/spotify category: Discovery description: Visualize, understand and optimize your team's cloud costs. -documentation: https://github.com/backstage/backstage/tree/master/plugins/cost-insights +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/cost-insights/plugins/cost-insights iconUrl: /img/cost-insights.png -npmPackageName: '@backstage/plugin-cost-insights' +npmPackageName: '@backstage-community/plugin-cost-insights' tags: - web addedDate: '2021-04-28' diff --git a/microsite/data/plugins/dynatrace-managed.yaml b/microsite/data/plugins/dynatrace-managed.yaml index 079c8a7d37..94793e254d 100644 --- a/microsite/data/plugins/dynatrace-managed.yaml +++ b/microsite/data/plugins/dynatrace-managed.yaml @@ -4,9 +4,9 @@ author: Dynatrace authorUrl: https://github.com/dynatrace category: Monitoring description: View problem and synthetic information for services in your software catalog. -documentation: https://github.com/backstage/backstage/tree/master/plugins/dynatrace +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/dynatrace/plugins/dynatrace iconUrl: /img/dynatrace.svg -npmPackageName: '@backstage/plugin-dynatrace' +npmPackageName: '@backstage-community/plugin-dynatrace' tags: - monitoring - observability diff --git a/microsite/data/plugins/entity-feedback.yaml b/microsite/data/plugins/entity-feedback.yaml index 3630eddb73..a03537b4f7 100644 --- a/microsite/data/plugins/entity-feedback.yaml +++ b/microsite/data/plugins/entity-feedback.yaml @@ -4,7 +4,7 @@ author: Phil Kuang authorUrl: https://github.com/kuangp category: Quality description: Give and view feedback on entities available in the Backstage catalog. -documentation: https://github.com/backstage/backstage/tree/master/plugins/entity-feedback +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/entity-feedback/plugins/entity-feedback iconUrl: /img/entity-feedback-logo.png -npmPackageName: '@backstage/plugin-entity-feedback' +npmPackageName: '@backstage-community/plugin-entity-feedback' addedDate: '2023-01-20' diff --git a/microsite/data/plugins/entity-validation.yaml b/microsite/data/plugins/entity-validation.yaml index bc341a4221..2ccb6deced 100644 --- a/microsite/data/plugins/entity-validation.yaml +++ b/microsite/data/plugins/entity-validation.yaml @@ -4,7 +4,7 @@ author: Spreadgroup authorUrl: https://github.com/spreadshirt category: Quality description: Interface for validating entities. -documentation: https://github.com/backstage/backstage/tree/master/plugins/entity-validation -npmPackageName: '@backstage/plugin-entity-validation' +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/entity-validation/plugins/entity-validation +npmPackageName: '@backstage-community/plugin-entity-validation' iconUrl: /img/entity-validation.svg addedDate: '2023-09-13' diff --git a/microsite/data/plugins/gcp-projects.yaml b/microsite/data/plugins/gcp-projects.yaml index 02e66db27e..7902724c96 100644 --- a/microsite/data/plugins/gcp-projects.yaml +++ b/microsite/data/plugins/gcp-projects.yaml @@ -4,9 +4,9 @@ author: Trivago authorUrl: https://www.trivago.com category: Infrastructure description: Create, list and manage your Google Cloud Projects. -documentation: https://github.com/backstage/backstage/tree/master/plugins/gcp-projects +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/gcp-projects/plugins/gcp-projects iconUrl: https://avatars1.githubusercontent.com/u/2810941?s=280&v=4 -npmPackageName: '@backstage/plugin-gcp-projects' +npmPackageName: '@backstage-community/plugin-gcp-projects' tags: - cloud - project diff --git a/microsite/data/plugins/git-release-manager.yaml b/microsite/data/plugins/git-release-manager.yaml index 947209e6d5..244c88b981 100644 --- a/microsite/data/plugins/git-release-manager.yaml +++ b/microsite/data/plugins/git-release-manager.yaml @@ -4,7 +4,7 @@ author: Spotify authorUrl: https://github.com/spotify category: Source Control Mgmt description: Manage releases without having to juggle git commands. -documentation: https://github.com/backstage/backstage/tree/master/plugins/git-release-manager +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/git-release-manager/plugins/git-release-manager iconUrl: /img/git-release-manager-logo.svg -npmPackageName: '@backstage/plugin-git-release-manager' +npmPackageName: '@backstage-community/plugin-git-release-manager' addedDate: '2021-10-04' diff --git a/microsite/data/plugins/github-actions.yaml b/microsite/data/plugins/github-actions.yaml index 82611c3933..f496e7c15d 100644 --- a/microsite/data/plugins/github-actions.yaml +++ b/microsite/data/plugins/github-actions.yaml @@ -4,9 +4,9 @@ author: Spotify authorUrl: https://github.com/spotify category: CI/CD description: GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. -documentation: https://github.com/backstage/backstage/tree/master/plugins/github-actions +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/github-actions/plugins/github-actions iconUrl: https://avatars2.githubusercontent.com/u/44036562?s=400&v=4 -npmPackageName: '@backstage/plugin-github-actions' +npmPackageName: '@backstage-community/plugin-github-actions' tags: - ci - cd diff --git a/microsite/data/plugins/github-pull-requests-board.yaml b/microsite/data/plugins/github-pull-requests-board.yaml index 9fe2570f91..51c9f1a2e4 100644 --- a/microsite/data/plugins/github-pull-requests-board.yaml +++ b/microsite/data/plugins/github-pull-requests-board.yaml @@ -4,7 +4,7 @@ author: DAZN authorUrl: https://engineering.dazn.com category: Source Control Mgmt description: View all open GitHub pull requests owned by your team in Backstage. -documentation: https://github.com/backstage/backstage/tree/master/plugins/github-pull-requests-board +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/github-pull-requests-board/plugins/github-pull-requests-board iconUrl: /img/github-pull-requests-board-logo.svg -npmPackageName: '@backstage/plugin-github-pull-requests-board' +npmPackageName: '@backstage-community/plugin-github-pull-requests-board' addedDate: '2022-05-10' diff --git a/microsite/data/plugins/gitops-cluster.yaml b/microsite/data/plugins/gitops-cluster.yaml index 1ebe4c40f8..8e67c9c25d 100644 --- a/microsite/data/plugins/gitops-cluster.yaml +++ b/microsite/data/plugins/gitops-cluster.yaml @@ -4,9 +4,9 @@ author: Weaveworks authorUrl: https://www.weave.works/ category: Kubernetes description: Create GitOps-managed Kubernetes clusters. Currently, it supports provisioning EKS clusters on GitHub via GitHub Actions. -documentation: https://github.com/backstage/backstage/tree/master/plugins/gitops-profiles +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/gitops-profiles/plugins/gitops-profiles iconUrl: https://res-5.cloudinary.com/crunchbase-production/image/upload/c_lpad,h_256,w_256,f_auto,q_auto:eco/v1462316670/i9d3delzvx1erzjhmcws.png -npmPackageName: '@backstage/plugin-gitops-profiles' +npmPackageName: '@backstage-community/plugin-gitops-profiles' tags: - kubernetes - gitops diff --git a/microsite/data/plugins/gocd.yaml b/microsite/data/plugins/gocd.yaml index 1e5f4c3acb..2924ef9b41 100644 --- a/microsite/data/plugins/gocd.yaml +++ b/microsite/data/plugins/gocd.yaml @@ -4,9 +4,9 @@ author: SoundCloud authorUrl: https://github.com/soundcloud category: CI/CD description: GoCD is an open-source tool which is used in software development to help teams and organizations automate the continuous delivery of software. -documentation: https://github.com/backstage/backstage/tree/master/plugins/gocd +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/gocd/plugins/gocd iconUrl: https://www.gocd.org/assets/images/go_logo-5b5ca9e1.svg -npmPackageName: '@backstage/plugin-gocd' +npmPackageName: '@backstage-community/plugin-gocd' tags: - ci - cd diff --git a/microsite/data/plugins/graphiql.yaml b/microsite/data/plugins/graphiql.yaml index 4cff5ca8ba..4b5aee5161 100644 --- a/microsite/data/plugins/graphiql.yaml +++ b/microsite/data/plugins/graphiql.yaml @@ -4,9 +4,9 @@ author: Spotify authorUrl: https://github.com/spotify category: Debugging description: Integrates GraphiQL as a tool to browse GraphQL API endpoints inside Backstage. -documentation: https://github.com/backstage/backstage/tree/master/plugins/graphiql +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/graphiql/plugins/graphiql iconUrl: https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/GraphQL_Logo.svg/1024px-GraphQL_Logo.svg.png -npmPackageName: '@backstage/plugin-graphiql' +npmPackageName: '@backstage-community/plugin-graphiql' tags: - graphql - graphiql diff --git a/microsite/data/plugins/graphql-voyager.yaml b/microsite/data/plugins/graphql-voyager.yaml index c6ebf5e412..e9c5a95e45 100644 --- a/microsite/data/plugins/graphql-voyager.yaml +++ b/microsite/data/plugins/graphql-voyager.yaml @@ -4,9 +4,9 @@ author: PostNL authorUrl: https://github.com/postnl category: Debugging description: Integrates the GraphQL Voyager tool inside Backstage as a plugin. -documentation: https://github.com/backstage/backstage/tree/master/plugins/graphql-voyager +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/graphql-voyager/plugins/graphql-voyager iconUrl: https://res.cloudinary.com/apideck/image/upload/v1612724234/icons/graphql-voyager.png -npmPackageName: '@backstage/plugin-graphql-voyager' +npmPackageName: '@backstage-community/plugin-graphql-voyager' tags: - graphql - graphql-voyager diff --git a/microsite/data/plugins/ilert.yaml b/microsite/data/plugins/ilert.yaml index feb54e2d6e..c410084e8c 100644 --- a/microsite/data/plugins/ilert.yaml +++ b/microsite/data/plugins/ilert.yaml @@ -4,9 +4,9 @@ author: iLert authorUrl: https://www.ilert.com category: Monitoring description: iLert is a platform for alerting, on-call management and uptime monitoring targeted at DevOps and IT teams. -documentation: https://github.com/backstage/backstage/tree/master/plugins/ilert +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/ilert/plugins/ilert iconUrl: https://avatars.githubusercontent.com/u/13230510?s=200&v=4 -npmPackageName: '@backstage/plugin-ilert' +npmPackageName: '@backstage-community/plugin-ilert' tags: - monitoring - errors diff --git a/microsite/data/plugins/jenkins.yaml b/microsite/data/plugins/jenkins.yaml index 0b1c4d3bf4..e57a7e9e7b 100644 --- a/microsite/data/plugins/jenkins.yaml +++ b/microsite/data/plugins/jenkins.yaml @@ -4,9 +4,9 @@ author: '@timja' authorUrl: https://github.com/timja category: CI/CD description: Jenkins offers a simple way to set up a continuous integration and continuous delivery environment. -documentation: https://github.com/backstage/backstage/tree/master/plugins/jenkins +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/jenkins/plugins/jenkins iconUrl: https://img.icons8.com/color/1600/jenkins.png -npmPackageName: '@backstage/plugin-jenkins' +npmPackageName: '@backstage-community/plugin-jenkins' tags: - ci - cd diff --git a/microsite/data/plugins/kafka.yaml b/microsite/data/plugins/kafka.yaml index 9546f8e2fc..7529add2ee 100644 --- a/microsite/data/plugins/kafka.yaml +++ b/microsite/data/plugins/kafka.yaml @@ -4,9 +4,9 @@ author: '@nirga' authorUrl: https://github.com/nirga category: Monitoring description: Observability for Apache Kafka clusters and async API of components. -documentation: https://github.com/backstage/backstage/tree/master/plugins/kafka +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/kafka/plugins/kafka iconUrl: https://kafka.apache.org/images/apache-kafka.png -npmPackageName: '@backstage/plugin-kafka' +npmPackageName: '@backstage-community/plugin-kafka' tags: - monitoring addedDate: '2021-01-21' diff --git a/microsite/data/plugins/lighthouse.yaml b/microsite/data/plugins/lighthouse.yaml index 4f302cdb3b..a29e48406a 100644 --- a/microsite/data/plugins/lighthouse.yaml +++ b/microsite/data/plugins/lighthouse.yaml @@ -4,9 +4,9 @@ author: Spotify authorUrl: https://github.com/spotify category: Quality description: Google's Lighthouse tool is a great resource for benchmarking and improving the accessibility, performance, SEO, and best practices of your website. -documentation: https://github.com/backstage/backstage/tree/master/plugins/lighthouse +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/lighthouse/plugins/lighthouse iconUrl: https://seeklogo.com/images/G/google-lighthouse-logo-1C7FA08580-seeklogo.com.png -npmPackageName: '@backstage/plugin-lighthouse' +npmPackageName: '@backstage-community/plugin-lighthouse' tags: - web - seo diff --git a/microsite/data/plugins/mia-platform.yaml b/microsite/data/plugins/mia-platform.yaml new file mode 100644 index 0000000000..d4a7b692cd --- /dev/null +++ b/microsite/data/plugins/mia-platform.yaml @@ -0,0 +1,13 @@ +--- +title: Mia Platform Sync +author: Mia-Platform +authorUrl: https://mia-platform.eu +category: Discovery +description: Elevate your workflow with our plugin that seamlessly integrates your Mia-Platform components into Backstage. Keep your information synchronized effortlessly and gain insights into your company's domains, projects, deployment environments, and repository links, all while exploring their interrelations. +documentation: https://github.com/mia-platform/backstage-plugin/blob/main/README.md +iconUrl: /img/mia-platform.png +npmPackageName: '@mia-platform/backstage-plugin-frontend' +tags: + - platform + - discovery +addedDate: '2024-04-12' diff --git a/microsite/data/plugins/microsoft-calendar.yaml b/microsite/data/plugins/microsoft-calendar.yaml index a1eb981dd1..b09493a865 100644 --- a/microsite/data/plugins/microsoft-calendar.yaml +++ b/microsite/data/plugins/microsoft-calendar.yaml @@ -5,8 +5,8 @@ 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 -npmPackageName: '@backstage/plugin-microsoft-calendar' +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/microsoft-calendar/plugins/microsoft-calendar +npmPackageName: '@backstage-community/plugin-microsoft-calendar' tags: - Microsoft - calendar diff --git a/microsite/data/plugins/new-relic.yaml b/microsite/data/plugins/new-relic.yaml index a68cc90314..57b2db00ec 100644 --- a/microsite/data/plugins/new-relic.yaml +++ b/microsite/data/plugins/new-relic.yaml @@ -4,9 +4,9 @@ author: '@timwheelercom' authorUrl: https://github.com/timwheelercom category: Monitoring description: Observability platform built to help engineers create and monitor their software. -documentation: https://github.com/backstage/backstage/tree/master/plugins/newrelic +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/newrelic/plugins/newrelic iconUrl: https://www.mulesoft.com/sites/default/files/2018-10/New_relic.png -npmPackageName: '@backstage/plugin-newrelic' +npmPackageName: '@backstage-community/plugin-newrelic' tags: - performance - monitoring diff --git a/microsite/data/plugins/newrelic-dashboard.yaml b/microsite/data/plugins/newrelic-dashboard.yaml index cd68a63165..420c506b35 100644 --- a/microsite/data/plugins/newrelic-dashboard.yaml +++ b/microsite/data/plugins/newrelic-dashboard.yaml @@ -4,9 +4,9 @@ author: '@mufaddal7' authorUrl: https://github.com/mufaddal7 category: Monitoring description: Easily view your New Relic Dashboards in Backstage, via real-time snapshots of your dashboards -documentation: https://github.com/backstage/backstage/tree/master/plugins/newrelic-dashboard +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/newrelic-dashboard/plugins/newrelic-dashboard iconUrl: https://newrelic.com/themes/custom/erno/assets/mediakit/new_relic_logo_vertical_white.svg -npmPackageName: '@backstage/plugin-newrelic-dashboard' +npmPackageName: '@backstage-community/plugin-newrelic-dashboard' tags: - performance - monitoring diff --git a/microsite/data/plugins/periskop.yaml b/microsite/data/plugins/periskop.yaml index 6b6693b3ef..51e9c37103 100644 --- a/microsite/data/plugins/periskop.yaml +++ b/microsite/data/plugins/periskop.yaml @@ -4,7 +4,7 @@ author: Periskop authorUrl: https://periskop.io/ category: Monitoring description: Periskop is a pull-based, language agnostic exception aggregator for microservice environments. -documentation: https://github.com/backstage/backstage/tree/master/plugins/periskop +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/periskop/plugins/periskop iconUrl: https://raw.githubusercontent.com/periskop-dev/periskop/master/docs/assets/periskop-logo.png -npmPackageName: '@backstage/plugin-periskop' +npmPackageName: '@backstage-community/plugin-periskop' addedDate: '2022-02-25' diff --git a/microsite/data/plugins/playlist.yaml b/microsite/data/plugins/playlist.yaml index 4e7f442e03..2871fb904e 100644 --- a/microsite/data/plugins/playlist.yaml +++ b/microsite/data/plugins/playlist.yaml @@ -4,7 +4,7 @@ author: Phil Kuang authorUrl: https://github.com/kuangp category: Discovery description: Create, share, and follow custom collections of entities available in the Backstage catalog. -documentation: https://github.com/backstage/backstage/tree/master/plugins/playlist +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/playlist/plugins/playlist iconUrl: /img/playlist-logo.png -npmPackageName: '@backstage/plugin-playlist' +npmPackageName: '@backstage-community/plugin-playlist' addedDate: '2022-07-02' diff --git a/microsite/data/plugins/rollbar.yaml b/microsite/data/plugins/rollbar.yaml index 7742e6a231..0dd39d5fe9 100644 --- a/microsite/data/plugins/rollbar.yaml +++ b/microsite/data/plugins/rollbar.yaml @@ -4,7 +4,7 @@ author: '@andrewthauer' authorUrl: https://github.com/andrewthauer category: Monitoring description: View Rollbar errors for your services in Backstage. -documentation: https://github.com/backstage/backstage/tree/master/plugins/rollbar +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/rollbar/plugins/rollbar iconUrl: https://rollbar.com/assets/media/rollbar-mark-color.png -npmPackageName: '@backstage/plugin-rollbar' +npmPackageName: '@backstage-community/plugin-rollbar' addedDate: '2020-11-03' diff --git a/microsite/data/plugins/sentry.yaml b/microsite/data/plugins/sentry.yaml index 7bffdcfd4d..06fb9a5d95 100644 --- a/microsite/data/plugins/sentry.yaml +++ b/microsite/data/plugins/sentry.yaml @@ -4,7 +4,7 @@ author: Spotify authorUrl: https://github.com/spotify category: Monitoring description: View Sentry issues in Backstage. -documentation: https://github.com/backstage/backstage/tree/master/plugins/sentry +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/sentry/plugins/sentry iconUrl: https://sentry-brand.storage.googleapis.com/sentry-glyph-white.png -npmPackageName: '@backstage/plugin-sentry' +npmPackageName: '@backstage-community/plugin-sentry' addedDate: '2020-11-03' diff --git a/microsite/data/plugins/splunk-on-call.yaml b/microsite/data/plugins/splunk-on-call.yaml index b9021a337d..0eb0ad14da 100644 --- a/microsite/data/plugins/splunk-on-call.yaml +++ b/microsite/data/plugins/splunk-on-call.yaml @@ -4,9 +4,9 @@ author: ayshiff authorUrl: https://github.com/ayshiff category: Monitoring description: Splunk On-Call offers a simple way to identify incidents and escalation policies. -documentation: https://github.com/backstage/backstage/tree/master/plugins/splunk-on-call +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/splunk/plugins/splunk-on-call iconUrl: /img/splunk-black-white-bg.png -npmPackageName: '@backstage/plugin-splunk-on-call' +npmPackageName: '@backstage-community/plugin-splunk-on-call' tags: - monitoring - errors diff --git a/microsite/data/plugins/stackstorm.yaml b/microsite/data/plugins/stackstorm.yaml index ade6ca860f..d264f530f9 100644 --- a/microsite/data/plugins/stackstorm.yaml +++ b/microsite/data/plugins/stackstorm.yaml @@ -4,9 +4,9 @@ author: ExpediaGroup authorUrl: https://github.com/ExpediaGroup category: Automation description: Manage StackStorm workflow executions from within Backstage. -documentation: https://github.com/backstage/backstage/tree/master/plugins/stackstorm +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/stackstorm/plugins/stackstorm iconUrl: /img/stackstorm.png -npmPackageName: '@backstage/plugin-stackstorm' +npmPackageName: '@backstage-community/plugin-stackstorm' tags: - stackstorm - st2 diff --git a/microsite/data/plugins/tech-radar.yaml b/microsite/data/plugins/tech-radar.yaml index 3187a33d42..37f4e02b92 100644 --- a/microsite/data/plugins/tech-radar.yaml +++ b/microsite/data/plugins/tech-radar.yaml @@ -4,7 +4,7 @@ author: Spotify authorUrl: https://github.com/spotify category: Discovery description: Visualize the your company's official guidelines of different areas of software development. -documentation: https://github.com/backstage/backstage/tree/master/plugins/tech-radar +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/tech-radar/plugins/tech-radar iconUrl: https://www.materialui.co/materialIcons/action/track_changes_white_192x192.png -npmPackageName: '@backstage/plugin-tech-radar' +npmPackageName: '@backstage-community/plugin-tech-radar' addedDate: '2020-11-03' diff --git a/microsite/data/plugins/todo.yaml b/microsite/data/plugins/todo.yaml index 67a5151a89..ab353e8150 100644 --- a/microsite/data/plugins/todo.yaml +++ b/microsite/data/plugins/todo.yaml @@ -4,7 +4,7 @@ author: Spotify authorUrl: https://github.com/spotify category: Discovery description: Browse TODO comments in your project's source code. -documentation: https://github.com/backstage/backstage/tree/master/plugins/todo +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/todo/plugins/todo iconUrl: https://backstage.io/img/todo-logo.png -npmPackageName: '@backstage/plugin-todo' +npmPackageName: '@backstage-community/plugin-todo' addedDate: '2021-03-16' diff --git a/microsite/data/plugins/vault.yaml b/microsite/data/plugins/vault.yaml index 37d474371b..1ee14c4bd3 100644 --- a/microsite/data/plugins/vault.yaml +++ b/microsite/data/plugins/vault.yaml @@ -4,9 +4,9 @@ author: Spread Group authorUrl: https://github.com/ivangonzalezacuna category: Security description: Visualize a list of the secrets stored in your HashiCorp Vault instance. -documentation: https://github.com/backstage/backstage/tree/master/plugins/vault +documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/vault/plugins/vault iconUrl: /img/vault.png -npmPackageName: '@backstage/plugin-vault' +npmPackageName: '@backstage-community/plugin-vault' tags: - vault addedDate: '2022-06-03' diff --git a/microsite/static/img/codacy-icon.svg b/microsite/static/img/codacy-icon.svg new file mode 100644 index 0000000000..ef65004330 --- /dev/null +++ b/microsite/static/img/codacy-icon.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 35 35" color="white" class="css-om3no"><title>codacy-white \ No newline at end of file diff --git a/microsite/static/img/mia-platform.png b/microsite/static/img/mia-platform.png new file mode 100644 index 0000000000..9ee5fa96b7 Binary files /dev/null and b/microsite/static/img/mia-platform.png differ diff --git a/microsite/yarn.lock b/microsite/yarn.lock index 3b56f4c9da..259bbca7b0 100644 --- a/microsite/yarn.lock +++ b/microsite/yarn.lock @@ -2689,90 +2689,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-darwin-arm64@npm:1.4.15" +"@swc/core-darwin-arm64@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-darwin-arm64@npm:1.5.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-darwin-x64@npm:1.4.15" +"@swc/core-darwin-x64@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-darwin-x64@npm:1.5.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.15" +"@swc/core-linux-arm-gnueabihf@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.5.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-linux-arm64-gnu@npm:1.4.15" +"@swc/core-linux-arm64-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-arm64-gnu@npm:1.5.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-linux-arm64-musl@npm:1.4.15" +"@swc/core-linux-arm64-musl@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-arm64-musl@npm:1.5.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-linux-x64-gnu@npm:1.4.15" +"@swc/core-linux-x64-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-x64-gnu@npm:1.5.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-linux-x64-musl@npm:1.4.15" +"@swc/core-linux-x64-musl@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-x64-musl@npm:1.5.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-win32-arm64-msvc@npm:1.4.15" +"@swc/core-win32-arm64-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-win32-arm64-msvc@npm:1.5.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-win32-ia32-msvc@npm:1.4.15" +"@swc/core-win32-ia32-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-win32-ia32-msvc@npm:1.5.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.4.15": - version: 1.4.15 - resolution: "@swc/core-win32-x64-msvc@npm:1.4.15" +"@swc/core-win32-x64-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-win32-x64-msvc@npm:1.5.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.46": - version: 1.4.15 - resolution: "@swc/core@npm:1.4.15" + version: 1.5.0 + resolution: "@swc/core@npm:1.5.0" dependencies: - "@swc/core-darwin-arm64": 1.4.15 - "@swc/core-darwin-x64": 1.4.15 - "@swc/core-linux-arm-gnueabihf": 1.4.15 - "@swc/core-linux-arm64-gnu": 1.4.15 - "@swc/core-linux-arm64-musl": 1.4.15 - "@swc/core-linux-x64-gnu": 1.4.15 - "@swc/core-linux-x64-musl": 1.4.15 - "@swc/core-win32-arm64-msvc": 1.4.15 - "@swc/core-win32-ia32-msvc": 1.4.15 - "@swc/core-win32-x64-msvc": 1.4.15 + "@swc/core-darwin-arm64": 1.5.0 + "@swc/core-darwin-x64": 1.5.0 + "@swc/core-linux-arm-gnueabihf": 1.5.0 + "@swc/core-linux-arm64-gnu": 1.5.0 + "@swc/core-linux-arm64-musl": 1.5.0 + "@swc/core-linux-x64-gnu": 1.5.0 + "@swc/core-linux-x64-musl": 1.5.0 + "@swc/core-win32-arm64-msvc": 1.5.0 + "@swc/core-win32-ia32-msvc": 1.5.0 + "@swc/core-win32-x64-msvc": 1.5.0 "@swc/counter": ^0.1.2 "@swc/types": ^0.1.5 peerDependencies: @@ -2801,7 +2801,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: b5aad99711b56ac14bb05674a54f487cffbe7fb902c14af5102c0d790be3a9a5b37bded8759d6917df37a2767bdc60133322b67ea72c5dc2796d2959dd678dd3 + checksum: 1abab0b57755020b60ebf2557629c23c65c3546e4cd80f9d02fbdf208d4169c9300a0229c088081b43a01e630c9d86d02f8c240c9fc2842eaed2a517770fcd1d languageName: node linkType: hard diff --git a/package.json b/package.json index 7ccbce417d..abae1b54ec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "1.26.0", + "version": "1.27.0-next.0", "private": true, "repository": { "type": "git", diff --git a/packages/app-defaults/CHANGELOG.md b/packages/app-defaults/CHANGELOG.md index 7d7e199aca..9efa40b6cc 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/app-defaults +## 1.5.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/plugin-permission-react@0.4.22 + ## 1.5.4 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index ac11707277..ad9986a29a 100644 --- a/packages/app-defaults/package.json +++ b/packages/app-defaults/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/app-defaults", - "version": "1.5.4", + "version": "1.5.5-next.0", "description": "Provides the default wiring of a Backstage App", "backstage": { "role": "web-library" diff --git a/packages/app-next-example-plugin/CHANGELOG.md b/packages/app-next-example-plugin/CHANGELOG.md index 6a10864bd5..33f564936a 100644 --- a/packages/app-next-example-plugin/CHANGELOG.md +++ b/packages/app-next-example-plugin/CHANGELOG.md @@ -1,5 +1,13 @@ # app-next-example-plugin +## 0.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/frontend-plugin-api@0.6.5-next.0 + ## 0.0.10 ### Patch Changes diff --git a/packages/app-next-example-plugin/package.json b/packages/app-next-example-plugin/package.json index dba0613d16..acd85fc7cb 100644 --- a/packages/app-next-example-plugin/package.json +++ b/packages/app-next-example-plugin/package.json @@ -1,6 +1,6 @@ { "name": "app-next-example-plugin", - "version": "0.0.10", + "version": "0.0.11-next.0", "description": "Backstage internal example plugin", "backstage": { "role": "frontend-plugin" diff --git a/packages/app-next/.eslintrc.js b/packages/app-next/.eslintrc.js index e2a53a6ad2..6f6668b53d 100644 --- a/packages/app-next/.eslintrc.js +++ b/packages/app-next/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/app-next/CHANGELOG.md b/packages/app-next/CHANGELOG.md index 8b24a1e2d1..1188aff451 100644 --- a/packages/app-next/CHANGELOG.md +++ b/packages/app-next/CHANGELOG.md @@ -1,5 +1,48 @@ # example-app-next +## 0.0.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-notifications@0.2.1-next.0 + - @backstage/core-compat-api@0.2.5-next.0 + - @backstage/plugin-api-docs@0.11.5-next.0 + - @backstage/plugin-catalog@1.19.1-next.0 + - @backstage/plugin-home@0.7.4-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-techdocs@1.10.5-next.0 + - @backstage/cli@0.26.5-next.0 + - @backstage/plugin-auth-react@0.1.1-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-scaffolder-react@1.8.5-next.0 + - @backstage/plugin-scaffolder@1.19.4-next.0 + - @backstage/plugin-catalog-graph@0.4.5-next.0 + - @backstage/plugin-catalog-import@0.10.11-next.0 + - @backstage/plugin-org@0.6.25-next.0 + - @backstage/plugin-search@1.4.11-next.0 + - @backstage/plugin-user-settings@0.8.6-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-catalog-unprocessed-entities@0.2.4-next.0 + - @backstage/plugin-kubernetes@0.11.10-next.0 + - @backstage/plugin-kubernetes-cluster@0.0.11-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/app-defaults@1.5.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-app-api@0.6.5-next.0 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/integration-react@1.1.26 + - @backstage/plugin-app-visualizer@0.1.6-next.0 + - @backstage/plugin-permission-react@0.4.22 + - @backstage/plugin-search-common@1.2.11 + - @backstage/plugin-search-react@1.7.11-next.0 + - @backstage/plugin-signals@0.0.6-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.10-next.0 + ## 0.0.10 ### Patch Changes diff --git a/packages/app-next/README.md b/packages/app-next/README.md index 21645609a9..360e5d5545 100644 --- a/packages/app-next/README.md +++ b/packages/app-next/README.md @@ -1,3 +1,7 @@ # example-app-next -This package is an example of a Backstage application. +This package is an example of a Backstage application using the [new frontend](../../docs/frontend-system/index.md). + +To play with it, open a terminal and run the command: `yarn start` + +**NOTE:** Don't forget to open a second terminal and to launch the backend or [backend-next](../../docs/backend-system/index.md) there, using `yarn start`! The frontend requires a backend to connect to. diff --git a/packages/app-next/app-config.yaml b/packages/app-next/app-config.yaml index 8bfd79be54..271040ecec 100644 --- a/packages/app-next/app-config.yaml +++ b/packages/app-next/app-config.yaml @@ -10,7 +10,7 @@ app: extensions: # - apis.plugin.graphiql.browse.gitlab: true - - graphiql-endpoint:graphiql/gitlab: true + # - graphiql-endpoint:graphiql/gitlab: true # Entity page cards - entity-card:catalog/about @@ -18,7 +18,7 @@ app: - entity-card:catalog/links: config: filter: kind:component has:links - - entity-card:linguist/languages + # - entity-card:linguist/languages - entity-card:catalog-graph/relations: config: height: 300 diff --git a/packages/app-next/package.json b/packages/app-next/package.json index d98cc91a57..065aa43322 100644 --- a/packages/app-next/package.json +++ b/packages/app-next/package.json @@ -1,6 +1,6 @@ { "name": "example-app-next", - "version": "0.0.10", + "version": "0.0.11-next.0", "private": true, "repository": { "type": "git", @@ -15,6 +15,7 @@ "@backstage/app-defaults": "workspace:^", "@backstage/catalog-model": "workspace:^", "@backstage/cli": "workspace:^", + "@backstage/config": "workspace:^", "@backstage/core-app-api": "workspace:^", "@backstage/core-compat-api": "workspace:^", "@backstage/core-components": "workspace:^", @@ -22,83 +23,46 @@ "@backstage/frontend-app-api": "workspace:^", "@backstage/frontend-plugin-api": "workspace:^", "@backstage/integration-react": "workspace:^", - "@backstage/plugin-adr": "workspace:^", - "@backstage/plugin-airbrake": "workspace:^", - "@backstage/plugin-apache-airflow": "workspace:^", "@backstage/plugin-api-docs": "workspace:^", "@backstage/plugin-app-visualizer": "workspace:^", - "@backstage/plugin-azure-devops": "workspace:^", - "@backstage/plugin-azure-sites": "workspace:^", - "@backstage/plugin-badges": "workspace:^", + "@backstage/plugin-auth-react": "workspace:^", "@backstage/plugin-catalog": "workspace:^", "@backstage/plugin-catalog-common": "workspace:^", "@backstage/plugin-catalog-graph": "workspace:^", "@backstage/plugin-catalog-import": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", "@backstage/plugin-catalog-unprocessed-entities": "workspace:^", - "@backstage/plugin-cloudbuild": "workspace:^", - "@backstage/plugin-code-coverage": "workspace:^", - "@backstage/plugin-cost-insights": "workspace:^", - "@backstage/plugin-devtools": "workspace:^", - "@backstage/plugin-dynatrace": "workspace:^", - "@backstage/plugin-entity-feedback": "workspace:^", - "@backstage/plugin-explore": "workspace:^", - "@backstage/plugin-gcalendar": "workspace:^", - "@backstage/plugin-gcp-projects": "workspace:^", - "@backstage/plugin-github-actions": "workspace:^", - "@backstage/plugin-gocd": "workspace:^", - "@backstage/plugin-graphiql": "workspace:^", "@backstage/plugin-home": "workspace:^", - "@backstage/plugin-jenkins": "workspace:^", - "@backstage/plugin-kafka": "workspace:^", "@backstage/plugin-kubernetes": "workspace:^", - "@backstage/plugin-lighthouse": "workspace:^", - "@backstage/plugin-linguist": "workspace:^", - "@backstage/plugin-linguist-common": "workspace:^", - "@backstage/plugin-microsoft-calendar": "workspace:^", - "@backstage/plugin-newrelic": "workspace:^", - "@backstage/plugin-newrelic-dashboard": "workspace:^", - "@backstage/plugin-octopus-deploy": "workspace:^", + "@backstage/plugin-kubernetes-cluster": "workspace:^", + "@backstage/plugin-notifications": "workspace:^", "@backstage/plugin-org": "workspace:^", - "@backstage/plugin-pagerduty": "workspace:^", "@backstage/plugin-permission-react": "workspace:^", - "@backstage/plugin-playlist": "workspace:^", - "@backstage/plugin-puppetdb": "workspace:^", - "@backstage/plugin-rollbar": "workspace:^", "@backstage/plugin-scaffolder": "workspace:^", "@backstage/plugin-scaffolder-react": "workspace:^", "@backstage/plugin-search": "workspace:^", "@backstage/plugin-search-common": "workspace:^", "@backstage/plugin-search-react": "workspace:^", - "@backstage/plugin-sentry": "workspace:^", - "@backstage/plugin-shortcuts": "workspace:^", - "@backstage/plugin-stackstorm": "workspace:^", - "@backstage/plugin-tech-insights": "workspace:^", - "@backstage/plugin-tech-radar": "workspace:^", + "@backstage/plugin-signals": "workspace:^", "@backstage/plugin-techdocs": "workspace:^", "@backstage/plugin-techdocs-module-addons-contrib": "workspace:^", "@backstage/plugin-techdocs-react": "workspace:^", - "@backstage/plugin-todo": "workspace:^", "@backstage/plugin-user-settings": "workspace:^", "@backstage/theme": "workspace:^", - "@circleci/backstage-plugin": "^0.1.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", "@octokit/rest": "^19.0.3", - "@oriflame/backstage-plugin-score-card": "^0.8.0", - "@roadiehq/backstage-plugin-buildkite": "^2.0.8", - "@roadiehq/backstage-plugin-github-insights": "^2.0.5", - "@roadiehq/backstage-plugin-github-pull-requests": "^2.2.7", - "@roadiehq/backstage-plugin-travis-ci": "^2.0.5", - "app-next-example-plugin": "workspace:^", + "@vitejs/plugin-react": "^4.0.4", "history": "^5.0.0", - "lodash": "^4.17.21", "react": "^18.0.2", "react-dom": "^18.0.2", "react-router": "^6.3.0", "react-router-dom": "^6.3.0", "react-use": "^17.2.4", + "vite": "^4.4.9", + "vite-plugin-html": "^3.2.0", + "vite-plugin-node-polyfills": "^0.21.0", "zen-observable": "^0.10.0" }, "devDependencies": { diff --git a/packages/app-next/src/App.test.tsx b/packages/app-next/src/App.test.tsx index 350daaaecc..ee456e1d72 100644 --- a/packages/app-next/src/App.test.tsx +++ b/packages/app-next/src/App.test.tsx @@ -16,11 +16,6 @@ import { renderWithEffects } from '@backstage/test-utils'; -jest.mock('@backstage/plugin-graphiql', () => ({ - ...jest.requireActual('@backstage/plugin-graphiql'), - GraphiQLIcon: () => null, -})); - // Rarely, and only in windows CI, do these tests take slightly more than the // default five seconds jest.setTimeout(15_000); diff --git a/packages/app-next/src/App.tsx b/packages/app-next/src/App.tsx index 03a6649c27..83b921aea1 100644 --- a/packages/app-next/src/App.tsx +++ b/packages/app-next/src/App.tsx @@ -18,8 +18,6 @@ import React from 'react'; import { createApp } from '@backstage/frontend-app-api'; import { pagesPlugin } from './examples/pagesPlugin'; import notFoundErrorPage from './examples/notFoundErrorPageExtension'; -import graphiqlPlugin from '@backstage/plugin-graphiql/alpha'; -import techRadarPlugin from '@backstage/plugin-tech-radar/alpha'; import userSettingsPlugin from '@backstage/plugin-user-settings/alpha'; import homePlugin, { titleExtensionDataRef, @@ -118,9 +116,7 @@ const collectedLegacyPlugins = convertLegacyApp( const app = createApp({ features: [ - graphiqlPlugin, pagesPlugin, - techRadarPlugin, techdocsPlugin, userSettingsPlugin, homePlugin, diff --git a/packages/app-next/src/HomePage.tsx b/packages/app-next/src/HomePage.tsx index cb31beb34a..d6ee5cbb04 100644 --- a/packages/app-next/src/HomePage.tsx +++ b/packages/app-next/src/HomePage.tsx @@ -27,11 +27,8 @@ import { WelcomeTitle, } from '@backstage/plugin-home'; import { Content, Header, Page } from '@backstage/core-components'; -import { HomePageCalendar } from '@backstage/plugin-gcalendar'; -import { MicrosoftCalendarCard } from '@backstage/plugin-microsoft-calendar'; import React from 'react'; import HomeIcon from '@material-ui/icons/Home'; -import { HomePagePagerDutyCard } from '@backstage/plugin-pagerduty'; const clockConfigs: ClockConfig[] = [ { @@ -96,9 +93,6 @@ export const homePage = ( - - - diff --git a/packages/app-next/src/examples/notFoundErrorPageExtension.tsx b/packages/app-next/src/examples/notFoundErrorPageExtension.tsx index f83671bc23..f5108c6c15 100644 --- a/packages/app-next/src/examples/notFoundErrorPageExtension.tsx +++ b/packages/app-next/src/examples/notFoundErrorPageExtension.tsx @@ -19,7 +19,8 @@ import { createComponentExtension, coreComponentRefs, } from '@backstage/frontend-plugin-api'; -import { Box, Typography } from '@material-ui/core'; +import Box from '@material-ui/core/Box'; +import Typography from '@material-ui/core/Typography'; import { Button } from '@backstage/core-components'; export function CustomNotFoundErrorPage() { diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 1d298af752..10c2873bc4 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,46 @@ # example-app +## 0.2.97-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-notifications@0.2.1-next.0 + - @backstage/plugin-api-docs@0.11.5-next.0 + - @backstage/plugin-catalog@1.19.1-next.0 + - @backstage/plugin-home@0.7.4-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-techdocs@1.10.5-next.0 + - @backstage/cli@0.26.5-next.0 + - @backstage/plugin-auth-react@0.1.1-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-scaffolder-react@1.8.5-next.0 + - @backstage/plugin-scaffolder@1.19.4-next.0 + - @backstage/plugin-catalog-graph@0.4.5-next.0 + - @backstage/plugin-catalog-import@0.10.11-next.0 + - @backstage/plugin-devtools@0.1.14-next.0 + - @backstage/plugin-org@0.6.25-next.0 + - @backstage/plugin-search@1.4.11-next.0 + - @backstage/plugin-user-settings@0.8.6-next.0 + - @backstage/plugin-catalog-common@1.0.23-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/plugin-catalog-unprocessed-entities@0.2.4-next.0 + - @backstage/plugin-kubernetes@0.11.10-next.0 + - @backstage/plugin-kubernetes-cluster@0.0.11-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/app-defaults@1.5.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-app-api@0.6.5-next.0 + - @backstage/integration-react@1.1.26 + - @backstage/plugin-permission-react@0.4.22 + - @backstage/plugin-search-common@1.2.11 + - @backstage/plugin-search-react@1.7.11-next.0 + - @backstage/plugin-signals@0.0.6-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.1.10-next.0 + ## 0.2.96 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index f1911474e4..b0e3a8fee3 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.96", + "version": "0.2.97-next.0", "backstage": { "role": "frontend" }, @@ -44,81 +44,36 @@ "@backstage/core-plugin-api": "workspace:^", "@backstage/frontend-app-api": "workspace:^", "@backstage/integration-react": "workspace:^", - "@backstage/plugin-adr": "workspace:^", - "@backstage/plugin-airbrake": "workspace:^", - "@backstage/plugin-apache-airflow": "workspace:^", "@backstage/plugin-api-docs": "workspace:^", "@backstage/plugin-auth-react": "workspace:^", - "@backstage/plugin-azure-devops": "workspace:^", - "@backstage/plugin-azure-sites": "workspace:^", - "@backstage/plugin-badges": "workspace:^", "@backstage/plugin-catalog": "workspace:^", "@backstage/plugin-catalog-common": "workspace:^", "@backstage/plugin-catalog-graph": "workspace:^", "@backstage/plugin-catalog-import": "workspace:^", "@backstage/plugin-catalog-react": "workspace:^", "@backstage/plugin-catalog-unprocessed-entities": "workspace:^", - "@backstage/plugin-cloudbuild": "workspace:^", - "@backstage/plugin-code-coverage": "workspace:^", - "@backstage/plugin-cost-insights": "workspace:^", "@backstage/plugin-devtools": "workspace:^", - "@backstage/plugin-dynatrace": "workspace:^", - "@backstage/plugin-entity-feedback": "workspace:^", - "@backstage/plugin-explore": "workspace:^", - "@backstage/plugin-gcalendar": "workspace:^", - "@backstage/plugin-gcp-projects": "workspace:^", - "@backstage/plugin-github-actions": "workspace:^", - "@backstage/plugin-github-pull-requests-board": "workspace:^", - "@backstage/plugin-gocd": "workspace:^", - "@backstage/plugin-graphiql": "workspace:^", "@backstage/plugin-home": "workspace:^", - "@backstage/plugin-jenkins": "workspace:^", - "@backstage/plugin-kafka": "workspace:^", "@backstage/plugin-kubernetes": "workspace:^", "@backstage/plugin-kubernetes-cluster": "workspace:^", - "@backstage/plugin-lighthouse": "workspace:^", - "@backstage/plugin-linguist": "workspace:^", - "@backstage/plugin-linguist-common": "workspace:^", - "@backstage/plugin-microsoft-calendar": "workspace:^", - "@backstage/plugin-newrelic": "workspace:^", - "@backstage/plugin-newrelic-dashboard": "workspace:^", - "@backstage/plugin-nomad": "workspace:^", "@backstage/plugin-notifications": "workspace:^", - "@backstage/plugin-octopus-deploy": "workspace:^", "@backstage/plugin-org": "workspace:^", - "@backstage/plugin-pagerduty": "workspace:^", "@backstage/plugin-permission-react": "workspace:^", - "@backstage/plugin-playlist": "workspace:^", - "@backstage/plugin-puppetdb": "workspace:^", - "@backstage/plugin-rollbar": "workspace:^", "@backstage/plugin-scaffolder": "workspace:^", "@backstage/plugin-scaffolder-react": "workspace:^", "@backstage/plugin-search": "workspace:^", "@backstage/plugin-search-common": "workspace:^", "@backstage/plugin-search-react": "workspace:^", - "@backstage/plugin-sentry": "workspace:^", - "@backstage/plugin-shortcuts": "workspace:^", "@backstage/plugin-signals": "workspace:^", - "@backstage/plugin-stack-overflow": "workspace:^", - "@backstage/plugin-stackstorm": "workspace:^", - "@backstage/plugin-tech-insights": "workspace:^", - "@backstage/plugin-tech-radar": "workspace:^", "@backstage/plugin-techdocs": "workspace:^", "@backstage/plugin-techdocs-module-addons-contrib": "workspace:^", "@backstage/plugin-techdocs-react": "workspace:^", - "@backstage/plugin-todo": "workspace:^", "@backstage/plugin-user-settings": "workspace:^", "@backstage/theme": "workspace:^", - "@circleci/backstage-plugin": "^0.1.1", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", "@octokit/rest": "^19.0.3", - "@oriflame/backstage-plugin-score-card": "^0.8.0", - "@roadiehq/backstage-plugin-buildkite": "^2.0.8", - "@roadiehq/backstage-plugin-github-insights": "^2.0.5", - "@roadiehq/backstage-plugin-github-pull-requests": "^2.2.7", - "@roadiehq/backstage-plugin-travis-ci": "^2.0.5", "@vitejs/plugin-react": "^4.0.4", "history": "^5.0.0", "react": "^18.0.2", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 3d8bd45e5a..652582984e 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -34,8 +34,6 @@ import { SignInPage, } from '@backstage/core-components'; import { apiDocsPlugin, ApiExplorerPage } from '@backstage/plugin-api-docs'; -import { AzurePullRequestsPage } from '@backstage/plugin-azure-devops'; - import { CatalogEntityPage, CatalogIndexPage, @@ -47,24 +45,15 @@ import { CatalogImportPage, catalogImportPlugin, } from '@backstage/plugin-catalog-import'; -import { - CostInsightsLabelDataflowInstructionsPage, - CostInsightsPage, - CostInsightsProjectGrowthInstructionsPage, -} from '@backstage/plugin-cost-insights'; import { orgPlugin } from '@backstage/plugin-org'; -import { ExplorePage } from '@backstage/plugin-explore'; -import { GcpProjectsPage } from '@backstage/plugin-gcp-projects'; import { HomepageCompositionRoot, VisitListener } from '@backstage/plugin-home'; -import { LighthousePage } from '@backstage/plugin-lighthouse'; -import { NewRelicPage } from '@backstage/plugin-newrelic'; + import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; import { ScaffolderFieldExtensions, ScaffolderLayouts, } from '@backstage/plugin-scaffolder-react'; import { SearchPage } from '@backstage/plugin-search'; -import { TechRadarPage } from '@backstage/plugin-tech-radar'; import { TechDocsIndexPage, techdocsPlugin, @@ -96,16 +85,11 @@ import { providers } from './identityProviders'; import * as plugins from './plugins'; import { techDocsPage } from './components/techdocs/TechDocsPage'; -import { ApacheAirflowPage } from '@backstage/plugin-apache-airflow'; import { RequirePermission } from '@backstage/plugin-permission-react'; import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; -import { PlaylistIndexPage, PlaylistPage } from '@backstage/plugin-playlist'; import { TwoColumnLayout } from './components/scaffolder/customScaffolderLayouts'; -import { ScoreBoardPage } from '@oriflame/backstage-plugin-score-card'; -import { StackstormPage } from '@backstage/plugin-stackstorm'; -import { PuppetDbPage } from '@backstage/plugin-puppetdb'; -import { DevToolsPage } from '@backstage/plugin-devtools'; import { customDevToolsPage } from './components/devtools/CustomDevToolsPage'; +import { DevToolsPage } from '@backstage/plugin-devtools'; import { CatalogUnprocessedEntitiesPage } from '@backstage/plugin-catalog-unprocessed-entities'; import { NotificationsPage } from '@backstage/plugin-notifications'; @@ -237,39 +221,17 @@ const routes = ( - } /> - } - /> - } /> + } /> - } /> - } /> }> {searchPage} - } /> - } - /> - } - /> + }> - } /> - } /> - } /> - } /> - } /> - } /> - } /> }> {customDevToolsPage} diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index f2fda9882b..0c2ccbad22 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -19,22 +19,11 @@ import { scmIntegrationsApiRef, ScmAuth, } from '@backstage/integration-react'; -import { - costInsightsApiRef, - ExampleCostInsightsClient, -} from '@backstage/plugin-cost-insights'; -import { - graphQlBrowseApiRef, - GraphQLEndpoints, -} from '@backstage/plugin-graphiql'; import { AnyApiFactory, configApiRef, createApiFactory, discoveryApiRef, - errorApiRef, - fetchApiRef, - githubAuthApiRef, } from '@backstage/core-plugin-api'; import { AuthProxyDiscoveryApi } from './AuthProxyDiscoveryApi'; @@ -51,31 +40,4 @@ export const apis: AnyApiFactory[] = [ }), ScmAuth.createDefaultApiFactory(), - - createApiFactory({ - api: graphQlBrowseApiRef, - deps: { - errorApi: errorApiRef, - fetchApi: fetchApiRef, - githubAuthApi: githubAuthApiRef, - }, - factory: ({ errorApi, fetchApi, githubAuthApi }) => - GraphQLEndpoints.from([ - GraphQLEndpoints.create({ - id: 'gitlab', - title: 'GitLab', - url: 'https://gitlab.com/api/graphql', - fetchApi, - }), - GraphQLEndpoints.github({ - id: 'github', - title: 'GitHub', - errorApi, - fetchApi, - githubAuthApi, - }), - ]), - }), - - createApiFactory(costInsightsApiRef, new ExampleCostInsightsClient()), ]; diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx index 6294aa7856..af053f623c 100644 --- a/packages/app/src/components/Root/Root.tsx +++ b/packages/app/src/components/Root/Root.tsx @@ -32,7 +32,6 @@ import { UserSettingsSignInAvatar, } from '@backstage/plugin-user-settings'; import { SidebarSearchModal } from '@backstage/plugin-search'; -import { Shortcuts } from '@backstage/plugin-shortcuts'; import { Link, Sidebar, @@ -166,7 +165,6 @@ export const Root = ({ children }: PropsWithChildren<{}>) => ( - diff --git a/packages/app/src/components/catalog/EntityPage.test.tsx b/packages/app/src/components/catalog/EntityPage.test.tsx index 25181db2c1..5d2b23b007 100644 --- a/packages/app/src/components/catalog/EntityPage.test.tsx +++ b/packages/app/src/components/catalog/EntityPage.test.tsx @@ -20,7 +20,6 @@ import { starredEntitiesApiRef, MockStarredEntitiesApi, } from '@backstage/plugin-catalog-react'; -import { githubActionsApiRef } from '@backstage/plugin-github-actions'; import { permissionApiRef } from '@backstage/plugin-permission-react'; import { MockPermissionApi, @@ -47,9 +46,6 @@ describe('EntityPage Test', () => { }, }; - const mockedApi = { - listWorkflowRuns: jest.fn().mockResolvedValue([]), - }; const mockPermissionApi = new MockPermissionApi(); const rootRouteRef = catalogPlugin.routes.catalogIndex; @@ -58,7 +54,6 @@ describe('EntityPage Test', () => { const rendered = await renderInTestApp( { expect(rendered.getByText('ExampleComponent')).toBeInTheDocument(); await expect( - rendered.findByText('No Workflow Data'), + rendered.findByText('No CI/CD available for this entity'), ).resolves.toBeInTheDocument(); - expect(rendered.getByText('Create new Workflow')).toBeInTheDocument(); }); }); }); diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx index b0b227be92..586c793a4f 100644 --- a/packages/app/src/components/catalog/EntityPage.tsx +++ b/packages/app/src/components/catalog/EntityPage.tsx @@ -15,7 +15,6 @@ */ import { - Entity, RELATION_API_CONSUMED_BY, RELATION_API_PROVIDED_BY, RELATION_CONSUMES_API, @@ -25,8 +24,7 @@ import { RELATION_PART_OF, RELATION_PROVIDES_API, } from '@backstage/catalog-model'; -import { EmptyState, InfoCard } from '@backstage/core-components'; -import { EntityAdrContent, isAdrAvailable } from '@backstage/plugin-adr'; +import { EmptyState } from '@backstage/core-components'; import { EntityApiDefinitionCard, EntityConsumedApisCard, @@ -35,19 +33,6 @@ import { EntityProvidedApisCard, EntityProvidingComponentsCard, } from '@backstage/plugin-api-docs'; -import { - EntityAzurePipelinesContent, - EntityAzureGitTagsContent, - EntityAzurePullRequestsContent, - isAzureDevOpsAvailable, - isAzurePipelinesAvailable, - EntityAzureReadmeCard, -} from '@backstage/plugin-azure-devops'; -import { - isOctopusDeployAvailable, - EntityOctopusDeployContent, -} from '@backstage/plugin-octopus-deploy'; -import { EntityBadgesDialog } from '@backstage/plugin-badges'; import { EntityAboutCard, EntityDependsOnComponentsCard, @@ -74,158 +59,39 @@ import { Direction, EntityCatalogGraphCard, } from '@backstage/plugin-catalog-graph'; -import { - EntityCircleCIContent, - isCircleCIAvailable, -} from '@circleci/backstage-plugin'; -import { - EntityCloudbuildContent, - isCloudbuildAvailable, -} from '@backstage/plugin-cloudbuild'; -import { EntityCodeCoverageContent } from '@backstage/plugin-code-coverage'; -import { - DynatraceTab, - isDynatraceAvailable, -} from '@backstage/plugin-dynatrace'; -import { - EntityFeedbackResponseContent, - EntityLikeDislikeRatingsCard, - LikeDislikeButtons, -} from '@backstage/plugin-entity-feedback'; -import { - EntityGithubActionsContent, - EntityRecentGithubActionsRunsCard, - isGithubActionsAvailable, -} from '@backstage/plugin-github-actions'; -import { - EntityJenkinsContent, - EntityLatestJenkinsRunCard, - isJenkinsAvailable, -} from '@backstage/plugin-jenkins'; -import { EntityKafkaContent } from '@backstage/plugin-kafka'; import { EntityKubernetesContent } from '@backstage/plugin-kubernetes'; import { isKubernetesClusterAvailable, EntityKubernetesClusterContent, } from '@backstage/plugin-kubernetes-cluster'; -import { - EntityLastLighthouseAuditCard, - EntityLighthouseContent, - isLighthouseAvailable, -} from '@backstage/plugin-lighthouse'; import { EntityGroupProfileCard, EntityMembersListCard, EntityOwnershipCard, EntityUserProfileCard, } from '@backstage/plugin-org'; -import { - EntityNomadAllocationListTable, - EntityNomadJobVersionListCard, - isNomadAllocationsAvailable, - isNomadJobIDAvailable, -} from '@backstage/plugin-nomad'; -import { - EntityPagerDutyCard, - isPagerDutyAvailable, -} from '@backstage/plugin-pagerduty'; -import { EntityPlaylistDialog } from '@backstage/plugin-playlist'; -import { - EntityRollbarContent, - isRollbarAvailable, -} from '@backstage/plugin-rollbar'; -import { PuppetDbPage, isPuppetDbAvailable } from '@backstage/plugin-puppetdb'; -import { EntitySentryContent } from '@backstage/plugin-sentry'; -import { EntityTechdocsContent } from '@backstage/plugin-techdocs'; -import { EntityTechInsightsScorecardCard } from '@backstage/plugin-tech-insights'; -import { EntityTodoContent } from '@backstage/plugin-todo'; import { Button, Grid } from '@material-ui/core'; -import BadgeIcon from '@material-ui/icons/CallToAction'; -import PlaylistAddIcon from '@material-ui/icons/PlaylistAdd'; - -import { - EntityGithubInsightsContent, - EntityGithubInsightsLanguagesCard, - EntityGithubInsightsReadmeCard, - EntityGithubInsightsReleasesCard, - isGithubInsightsAvailable, -} from '@roadiehq/backstage-plugin-github-insights'; -import { - EntityGithubPullRequestsContent, - EntityGithubPullRequestsOverviewCard, - isGithubPullRequestsAvailable, -} from '@roadiehq/backstage-plugin-github-pull-requests'; -import { - EntityTravisCIContent, - EntityTravisCIOverviewCard, - isTravisciAvailable, -} from '@roadiehq/backstage-plugin-travis-ci'; -import { - EntityBuildkiteContent, - isBuildkiteAvailable, -} from '@roadiehq/backstage-plugin-buildkite'; -import { - isNewRelicDashboardAvailable, - EntityNewRelicDashboardContent, - EntityNewRelicDashboardCard, -} from '@backstage/plugin-newrelic-dashboard'; -import { EntityGoCdContent, isGoCdAvailable } from '@backstage/plugin-gocd'; -import { EntityScoreCardContent } from '@oriflame/backstage-plugin-score-card'; - -import React, { ReactNode, useMemo, useState } from 'react'; - +import React, { ReactNode } from 'react'; import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; import { TextSize, ReportIssue, LightBox, } from '@backstage/plugin-techdocs-module-addons-contrib'; -import { EntityCostInsightsContent } from '@backstage/plugin-cost-insights'; -import { - isLinguistAvailable, - EntityLinguistCard, -} from '@backstage/plugin-linguist'; -import { EntityTeamPullRequestsContent } from '@backstage/plugin-github-pull-requests-board'; +import { EntityTechdocsContent } from '@backstage/plugin-techdocs'; const customEntityFilterKind = ['Component', 'API', 'System']; const EntityLayoutWrapper = (props: { children?: ReactNode }) => { - const [badgesDialogOpen, setBadgesDialogOpen] = useState(false); - const [playlistDialogOpen, setPlaylistDialogOpen] = useState(false); - - const extraMenuItems = useMemo(() => { - return [ - { - title: 'Badges', - Icon: BadgeIcon, - onClick: () => setBadgesDialogOpen(true), - }, - { - title: 'Add to playlist', - Icon: PlaylistAddIcon, - onClick: () => setPlaylistDialogOpen(true), - }, - ]; - }, []); - return ( <> {props.children} - setBadgesDialogOpen(false)} - /> - setPlaylistDialogOpen(false)} - /> ); }; @@ -249,42 +115,6 @@ const techdocsContent = ( export const cicdContent = ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -const cicdCard = ( - - - - - - - - boolean}> - - - - - - - - - - - -); - const entityWarningContent = ( <> @@ -354,30 +162,6 @@ const entityWarningContent = ( ); -const errorsContent = ( - - - - - - - - - -); - -const pullRequestsContent = ( - - - - - - - - - -); - const overviewContent = ( {entityWarningContent} @@ -389,22 +173,6 @@ const overviewContent = ( - - - - - - - - - - - - - - - - @@ -417,69 +185,9 @@ const overviewContent = ( - - - - - - - - - - - - - - - {cicdCard} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); @@ -493,10 +201,6 @@ const serviceEntityPage = ( {cicdContent} - - {errorsContent} - - @@ -523,83 +227,9 @@ const serviceEntityPage = ( {techdocsContent} - - - - - - - - - - - - - - - {pullRequestsContent} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); @@ -613,14 +243,6 @@ const websiteEntityPage = ( {cicdContent} - - - - - - {errorsContent} - - @@ -636,53 +258,9 @@ const websiteEntityPage = ( {techdocsContent} - - - - - - - - - - - - - - - {pullRequestsContent} - - - - - - - - - - - - - - - - - ); @@ -695,14 +273,6 @@ const defaultEntityPage = ( {techdocsContent} - - - - - - - - ); @@ -739,11 +309,6 @@ const apiPage = ( - - - - - @@ -756,10 +321,6 @@ const apiPage = ( - - - - ); @@ -777,9 +338,6 @@ const userPage = ( entityFilterKind={customEntityFilterKind} /> - - - @@ -805,14 +363,8 @@ const groupPage = ( - - - - - - ); @@ -836,18 +388,6 @@ const systemPage = ( - - - - - - - - - - - - @@ -869,9 +409,6 @@ const systemPage = ( unidirectional={false} /> - - - ); @@ -889,16 +426,8 @@ const domainPage = ( - - - - - - - - ); @@ -925,16 +454,6 @@ const resourcePage = ( > - - - - - - ); diff --git a/packages/app/src/components/home/HomePage.tsx b/packages/app/src/components/home/HomePage.tsx index 5940b0ac6c..026cd5faff 100644 --- a/packages/app/src/components/home/HomePage.tsx +++ b/packages/app/src/components/home/HomePage.tsx @@ -28,11 +28,8 @@ import { } from '@backstage/plugin-home'; import { Content, Header, Page } from '@backstage/core-components'; import { HomePageSearchBar } from '@backstage/plugin-search'; -import { HomePageCalendar } from '@backstage/plugin-gcalendar'; -import { MicrosoftCalendarCard } from '@backstage/plugin-microsoft-calendar'; import React from 'react'; import HomeIcon from '@material-ui/icons/Home'; -import { HomePagePagerDutyCard } from '@backstage/plugin-pagerduty'; const clockConfigs: ClockConfig[] = [ { @@ -98,9 +95,6 @@ export const homePage = ( - - - diff --git a/packages/app/src/components/home/templates/CustomizableTemplate.stories.tsx b/packages/app/src/components/home/templates/CustomizableTemplate.stories.tsx index e587e52da4..33a1bc2012 100644 --- a/packages/app/src/components/home/templates/CustomizableTemplate.stories.tsx +++ b/packages/app/src/components/home/templates/CustomizableTemplate.stories.tsx @@ -30,8 +30,6 @@ import { configApiRef } from '@backstage/core-plugin-api'; import { ConfigReader } from '@backstage/config'; import { searchApiRef } from '@backstage/plugin-search-react'; import { HomePageSearchBar, searchPlugin } from '@backstage/plugin-search'; -import { HomePageCalendar } from '@backstage/plugin-gcalendar'; -import { MicrosoftCalendarCard } from '@backstage/plugin-microsoft-calendar'; import React, { ComponentType } from 'react'; const entities = [ @@ -145,8 +143,6 @@ export const CustomizableTemplate = () => { // remove the widgets as they want. - - ); diff --git a/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx b/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx index 05d9a4eecd..64e6a87f60 100644 --- a/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx +++ b/packages/app/src/components/home/templates/DefaultTemplate.stories.tsx @@ -36,7 +36,6 @@ import { 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, PropsWithChildren } from 'react'; @@ -79,25 +78,6 @@ 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'); @@ -112,7 +92,6 @@ export default { <> Promise.resolve({ results: [] }) }], @@ -203,15 +182,6 @@ export const DefaultTemplate = () => {
- - - diff --git a/packages/app/src/components/search/SearchModal.tsx b/packages/app/src/components/search/SearchModal.tsx index 23aec53a58..34caeeae63 100644 --- a/packages/app/src/components/search/SearchModal.tsx +++ b/packages/app/src/components/search/SearchModal.tsx @@ -19,7 +19,6 @@ import { CATALOG_FILTER_EXISTS, catalogApiRef, } from '@backstage/plugin-catalog-react'; -import { ToolSearchResultListItem } from '@backstage/plugin-explore'; import { searchPlugin, SearchType } from '@backstage/plugin-search'; import { SearchBar, @@ -41,7 +40,6 @@ import { import Button from '@material-ui/core/Button'; import IconButton from '@material-ui/core/IconButton'; import ArrowForwardIcon from '@material-ui/icons/ArrowForward'; -import BuildIcon from '@material-ui/icons/Build'; import CloseIcon from '@material-ui/icons/Close'; import React, { useCallback, useEffect, useRef } from 'react'; import { useNavigate } from 'react-router-dom'; @@ -207,7 +205,6 @@ export const SearchModal = ({ toggleModal }: { toggleModal: () => void }) => { } /> } /> - } /> diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx index d904aef45c..6914fa71cb 100644 --- a/packages/app/src/components/search/SearchPage.tsx +++ b/packages/app/src/components/search/SearchPage.tsx @@ -28,7 +28,6 @@ import { catalogApiRef, CATALOG_FILTER_EXISTS, } from '@backstage/plugin-catalog-react'; -import { AdrSearchResultListItem } from '@backstage/plugin-adr'; import { SearchType } from '@backstage/plugin-search'; import { SearchBar, @@ -41,8 +40,6 @@ import { import { TechDocsSearchResultListItem } from '@backstage/plugin-techdocs'; import { Grid, makeStyles, Paper, Theme } from '@material-ui/core'; import React from 'react'; -import { ToolSearchResultListItem } from '@backstage/plugin-explore'; -import BuildIcon from '@material-ui/icons/Build'; const useStyles = makeStyles((theme: Theme) => ({ filter: { @@ -131,8 +128,6 @@ const SearchPage = () => { } /> } /> - } /> - } /> diff --git a/packages/app/src/plugins.ts b/packages/app/src/plugins.ts index ddd12bea2c..9280536997 100644 --- a/packages/app/src/plugins.ts +++ b/packages/app/src/plugins.ts @@ -16,7 +16,5 @@ // TODO(Rugvip): This plugin is currently not part of the app element tree, // ideally we have an API for the context menu that permits that. -export { badgesPlugin } from '@backstage/plugin-badges'; -export { shortcutsPlugin } from '@backstage/plugin-shortcuts'; export { homePlugin } from '@backstage/plugin-home'; export { signalsPlugin } from '@backstage/plugin-signals'; diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index 15d50cac23..30515c50ff 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/backend-app-api +## 0.7.1-next.0 + +### Patch Changes + +- 4cd5ff0: Add ability to configure the Node.js HTTP Server when configuring the root HTTP Router service +- e8199b1: Move the JWKS registration outside of the lifecycle middleware +- dc8c5dd: The default `TokenManager` implementation no longer requires keys to be configured in production, but it will throw an errors when generating or authenticating tokens. The default `AuthService` implementation will now also provide additional context if such an error is throw when falling back to using the `TokenManager` service to generate tokens for outgoing requests. +- 025641b: Redact `meta` fields too with the logger +- 5863e02: Internal refactor to only create one external token handler +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.5 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-node@0.7.29-next.0 + ## 0.7.0 ### Minor Changes diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 63f43eff2e..5720c1c60f 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -37,6 +37,7 @@ import { RootHttpRouterService } from '@backstage/backend-plugin-api'; import { RootLifecycleService } from '@backstage/backend-plugin-api'; import { RootLoggerService } from '@backstage/backend-plugin-api'; import { SchedulerService } from '@backstage/backend-plugin-api'; +import type { Server } from 'node:http'; import { ServiceFactory } from '@backstage/backend-plugin-api'; import { ServiceFactoryOrFunction } from '@backstage/backend-plugin-api'; import { TokenManagerService } from '@backstage/backend-plugin-api'; @@ -287,6 +288,8 @@ export interface RootHttpRouterConfigureContext { // (undocumented) app: Express_2; // (undocumented) + applyDefaults: () => void; + // (undocumented) config: RootConfigService; // (undocumented) lifecycle: LifecycleService; @@ -296,6 +299,8 @@ export interface RootHttpRouterConfigureContext { middleware: MiddlewareFactory; // (undocumented) routes: RequestHandler; + // (undocumented) + server: Server; } // @public (undocumented) diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 072efa7de8..09ff295f8d 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -1,20 +1,30 @@ { "name": "@backstage/backend-app-api", + "version": "0.7.1-next.0", "description": "Core API used by Backstage backend apps", - "version": "0.7.0", - "main": "src/index.ts", - "types": "src/index.ts", - "publishConfig": { - "access": "public" - }, "backstage": { "role": "node-library" }, + "publishConfig": { + "access": "public" + }, + "keywords": [ + "backstage" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "packages/backend-app-api" + }, + "license": "Apache-2.0", "exports": { ".": "./src/index.ts", "./alpha": "./src/alpha.ts", "./package.json": "./package.json" }, + "main": "src/index.ts", + "types": "src/index.ts", "typesVersions": { "*": { "alpha": [ @@ -25,16 +35,11 @@ ] } }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "packages/backend-app-api" - }, - "keywords": [ - "backstage" + "files": [ + "dist", + "config.d.ts", + "migrations/**/*.{js,d.ts}" ], - "license": "Apache-2.0", "scripts": { "build": "backstage-cli package build", "clean": "backstage-cli package clean", @@ -96,11 +101,5 @@ "msw": "^1.0.0", "supertest": "^6.1.3" }, - "configSchema": "config.d.ts", - "files": [ - "dist", - "config.d.ts", - "alpha", - "migrations/**/*.{js,d.ts}" - ] + "configSchema": "config.d.ts" } diff --git a/packages/backend-app-api/src/logging/WinstonLogger.ts b/packages/backend-app-api/src/logging/WinstonLogger.ts index 8a3eb28100..8d4b37bb8d 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.ts @@ -85,16 +85,20 @@ export class WinstonLogger implements RootLoggerService { let redactionPattern: RegExp | undefined = undefined; + const replace = (obj: TransformableInfo) => { + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + if (typeof obj[key] === 'object') { + obj[key] = replace(obj[key] as TransformableInfo); + } else if (typeof obj[key] === 'string') { + obj[key] = obj[key]?.replace(redactionPattern, '[REDACTED]'); + } + } + } + return obj; + }; return { - format: format(info => { - if (redactionPattern && typeof info.message === 'string') { - info.message = info.message.replace(redactionPattern, '[REDACTED]'); - } - if (redactionPattern && typeof info.stack === 'string') { - info.stack = info.stack.replace(redactionPattern, '[REDACTED]'); - } - return info; - })(), + format: format(replace)(), add(newRedactions) { let added = 0; for (const redactionToTrim of newRedactions) { diff --git a/packages/backend-app-api/src/services/implementations/auth/DefaultAuthService.ts b/packages/backend-app-api/src/services/implementations/auth/DefaultAuthService.ts index cbb66891ba..dc76a8761b 100644 --- a/packages/backend-app-api/src/services/implementations/auth/DefaultAuthService.ts +++ b/packages/backend-app-api/src/services/implementations/auth/DefaultAuthService.ts @@ -23,7 +23,7 @@ import { BackstageServicePrincipal, BackstageUserPrincipal, } from '@backstage/backend-plugin-api'; -import { AuthenticationError } from '@backstage/errors'; +import { AuthenticationError, ForwardedError } from '@backstage/errors'; import { JsonObject } from '@backstage/types'; import { decodeJwt } from 'jose'; import { ExternalTokenHandler } from './external/ExternalTokenHandler'; @@ -151,7 +151,13 @@ export class DefaultAuthService implements AuthService { }); } // If the target plugin does not support the new auth service, fall back to using old token format - return this.tokenManager.getToken(); + return this.tokenManager.getToken().catch(error => { + throw new ForwardedError( + `Unable to generate legacy token for communication with the '${targetPluginId}' plugin. ` + + `You will typically encounter this error when attempting to call a plugin that does not exist, or is deployed with an old version of Backstage`, + error, + ); + }); case 'user': { const { token } = internalForward; if (!token) { diff --git a/packages/backend-app-api/src/services/implementations/auth/authServiceFactory.ts b/packages/backend-app-api/src/services/implementations/auth/authServiceFactory.ts index 462aabfa21..7bbd012c01 100644 --- a/packages/backend-app-api/src/services/implementations/auth/authServiceFactory.ts +++ b/packages/backend-app-api/src/services/implementations/auth/authServiceFactory.ts @@ -39,8 +39,19 @@ export const authServiceFactory = createServiceFactory({ // new auth services in the new backend system. tokenManager: coreServices.tokenManager, }, - - async factory({ config, discovery, plugin, tokenManager, logger, database }) { + async createRootContext({ config, logger }) { + const externalTokens = ExternalTokenHandler.create({ + config, + logger, + }); + return { + externalTokens, + }; + }, + async factory( + { config, discovery, plugin, tokenManager, logger, database }, + { externalTokens }, + ) { const disableDefaultAuthPolicy = Boolean( config.getOptionalBoolean( 'backend.auth.dangerouslyDisableDefaultAuthPolicy', @@ -57,15 +68,11 @@ export const authServiceFactory = createServiceFactory({ }); const pluginTokens = PluginTokenHandler.create({ ownPluginId: plugin.getId(), - keyDurationSeconds: 60 * 60, + keyDuration: { hours: 1 }, logger, publicKeyStore, discovery, }); - const externalTokens = ExternalTokenHandler.create({ - config, - logger, - }); return new DefaultAuthService( userTokens, diff --git a/packages/backend-app-api/src/services/implementations/auth/plugin/PluginTokenHandler.test.ts b/packages/backend-app-api/src/services/implementations/auth/plugin/PluginTokenHandler.test.ts index 2f23203768..424e01660f 100644 --- a/packages/backend-app-api/src/services/implementations/auth/plugin/PluginTokenHandler.test.ts +++ b/packages/backend-app-api/src/services/implementations/auth/plugin/PluginTokenHandler.test.ts @@ -31,7 +31,7 @@ describe('PluginTokenHandler', () => { const addKeyMock = jest.fn(); const handler = PluginTokenHandler.create({ discovery: mockServices.discovery(), - keyDurationSeconds: 10, + keyDuration: { seconds: 10 }, logger: mockServices.logger.mock(), ownPluginId: 'test', publicKeyStore: { diff --git a/packages/backend-app-api/src/services/implementations/auth/plugin/PluginTokenHandler.ts b/packages/backend-app-api/src/services/implementations/auth/plugin/PluginTokenHandler.ts index 85cfa26285..fef33907a5 100644 --- a/packages/backend-app-api/src/services/implementations/auth/plugin/PluginTokenHandler.ts +++ b/packages/backend-app-api/src/services/implementations/auth/plugin/PluginTokenHandler.ts @@ -30,6 +30,7 @@ import { AuthenticationError } from '@backstage/errors'; import { jwtVerify } from 'jose'; import { tokenTypes } from '@backstage/plugin-auth-node'; import { JwksClient } from '../JwksClient'; +import { HumanDuration, durationToMilliseconds } from '@backstage/types'; /** * The margin for how many times longer we make the public key available @@ -45,8 +46,8 @@ type Options = { publicKeyStore: KeyStore; discovery: DiscoveryService; logger: LoggerService; - /** Expiration time of signing keys in seconds */ - keyDurationSeconds: number; + /** Expiration time of signing keys */ + keyDuration: HumanDuration; /** JWS "alg" (Algorithm) Header Parameter value. Defaults to ES256. * Must match one of the algorithms defined for IdentityClient. * When setting a different algorithm, check if the `key` field @@ -70,7 +71,7 @@ export class PluginTokenHandler { options.logger, options.ownPluginId, options.publicKeyStore, - options.keyDurationSeconds, + Math.round(durationToMilliseconds(options.keyDuration) / 1000), options.algorithm ?? 'ES256', options.discovery, ); diff --git a/packages/backend-app-api/src/services/implementations/rootHttpRouter/rootHttpRouterServiceFactory.ts b/packages/backend-app-api/src/services/implementations/rootHttpRouter/rootHttpRouterServiceFactory.ts index 4c410e25ea..a469a2f303 100644 --- a/packages/backend-app-api/src/services/implementations/rootHttpRouter/rootHttpRouterServiceFactory.ts +++ b/packages/backend-app-api/src/services/implementations/rootHttpRouter/rootHttpRouterServiceFactory.ts @@ -22,6 +22,7 @@ import { LoggerService, } from '@backstage/backend-plugin-api'; import express, { RequestHandler, Express } from 'express'; +import type { Server } from 'node:http'; import { createHttpServer, MiddlewareFactory, @@ -34,11 +35,13 @@ import { DefaultRootHttpRouter } from './DefaultRootHttpRouter'; */ export interface RootHttpRouterConfigureContext { app: Express; + server: Server; middleware: MiddlewareFactory; routes: RequestHandler; config: RootConfigService; logger: LoggerService; lifecycle: LifecycleService; + applyDefaults: () => void; } /** @@ -54,15 +57,8 @@ export type RootHttpRouterFactoryOptions = { configure?(context: RootHttpRouterConfigureContext): void; }; -function defaultConfigure(context: RootHttpRouterConfigureContext) { - const { app, routes, middleware } = context; - app.use(middleware.helmet()); - app.use(middleware.cors()); - app.use(middleware.compression()); - app.use(middleware.logging()); - app.use(routes); - app.use(middleware.notFound()); - app.use(middleware.error()); +function defaultConfigure({ applyDefaults }: RootHttpRouterConfigureContext) { + applyDefaults(); } /** @public */ @@ -81,22 +77,32 @@ export const rootHttpRouterServiceFactory = createServiceFactory( const router = DefaultRootHttpRouter.create({ indexPath }); const middleware = MiddlewareFactory.create({ config, logger }); - - configure({ - app, - routes: router.handler(), - middleware, - config, - logger, - lifecycle, - }); - + const routes = router.handler(); const server = await createHttpServer( app, readHttpServerOptions(config.getOptionalConfig('backend')), { logger }, ); + configure({ + app, + server, + routes, + middleware, + config, + logger, + lifecycle, + applyDefaults() { + app.use(middleware.helmet()); + app.use(middleware.cors()); + app.use(middleware.compression()); + app.use(middleware.logging()); + app.use(routes); + app.use(middleware.notFound()); + app.use(middleware.error()); + }, + }); + lifecycle.addShutdownHook(() => server.stop()); await server.start(); diff --git a/packages/backend-app-api/src/services/implementations/tokenManager/tokenManagerServiceFactory.test.ts b/packages/backend-app-api/src/services/implementations/tokenManager/tokenManagerServiceFactory.test.ts index aca5211e2e..f603c6295e 100644 --- a/packages/backend-app-api/src/services/implementations/tokenManager/tokenManagerServiceFactory.test.ts +++ b/packages/backend-app-api/src/services/implementations/tokenManager/tokenManagerServiceFactory.test.ts @@ -14,25 +14,20 @@ * limitations under the License. */ -import { LoggerService } from '@backstage/backend-plugin-api'; -import { ConfigReader } from '@backstage/config'; import { tokenManagerServiceFactory } from './tokenManagerServiceFactory'; +import { ServiceFactoryTester } from '@backstage/backend-test-utils'; describe('tokenManagerFactory', () => { - it('should create managers that can share tokens in development', async () => { - (process.env as { NODE_ENV?: string }).NODE_ENV = 'development'; + it('should create a disabled manager without configuration', async () => { + const tokenManager = await ServiceFactoryTester.from( + tokenManagerServiceFactory, + ).get(); - const factory = tokenManagerServiceFactory() as any; - const deps = { - config: new ConfigReader({}), - logger: { warn() {} } as unknown as LoggerService, - }; - - const ctx = await factory.createRootContext?.(deps); - const manager1 = await factory.factory!(deps, ctx); - const manager2 = await factory.factory!(deps, ctx); - - const { token } = await manager1.getToken(); - await expect(manager2.authenticate(token)).resolves.toBeUndefined(); + await expect(tokenManager.authenticate('abc')).rejects.toThrow( + 'no legacy keys are configured', + ); + await expect(tokenManager.getToken()).rejects.toThrow( + 'no legacy keys are configured', + ); }); }); diff --git a/packages/backend-app-api/src/services/implementations/tokenManager/tokenManagerServiceFactory.ts b/packages/backend-app-api/src/services/implementations/tokenManager/tokenManagerServiceFactory.ts index 7417c18e23..cad1b06035 100644 --- a/packages/backend-app-api/src/services/implementations/tokenManager/tokenManagerServiceFactory.ts +++ b/packages/backend-app-api/src/services/implementations/tokenManager/tokenManagerServiceFactory.ts @@ -30,6 +30,7 @@ export const tokenManagerServiceFactory = createServiceFactory({ createRootContext({ config, logger }) { return ServerTokenManager.fromConfig(config, { logger, + allowDisabledTokenManager: true, }); }, async factory(_deps, tokenManager) { diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index 61b95f211f..fdeaf6d137 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/backend-common +## 0.21.8-next.0 + +### Patch Changes + +- ba0b8b4: Added option to `ServerTokenManager.fromConfig` that allows it to be instantiated in production without any configured keys. +- Updated dependencies + - @backstage/backend-app-api@0.7.1-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/backend-dev-utils@0.1.4 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/integration@1.10.0 + - @backstage/integration-aws-node@0.1.12 + - @backstage/types@1.1.1 + ## 0.21.7 ### Patch Changes diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 888bc1639c..f9e0d76aab 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -772,7 +772,7 @@ export class ServerTokenManager implements TokenManager { static fromConfig( config: Config, options: ServerTokenManagerOptions, - ): ServerTokenManager; + ): TokenManager; // (undocumented) getToken(): Promise<{ token: string; @@ -782,6 +782,7 @@ export class ServerTokenManager implements TokenManager { // @public export interface ServerTokenManagerOptions { + allowDisabledTokenManager?: boolean; logger: LoggerService; } diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 9897afcf5a..0a08c58e54 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -1,18 +1,31 @@ { "name": "@backstage/backend-common", + "version": "0.21.8-next.0", "description": "Common functionality library for Backstage backends", - "version": "0.21.7", - "main": "src/index.ts", - "types": "src/index.ts", + "backstage": { + "role": "node-library" + }, "publishConfig": { "access": "public" }, + "keywords": [ + "backstage" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "packages/backend-common" + }, + "license": "Apache-2.0", "exports": { ".": "./src/index.ts", "./alpha": "./src/alpha.ts", "./testUtils": "./src/testUtils.ts", "./package.json": "./package.json" }, + "main": "src/index.ts", + "types": "src/index.ts", "typesVersions": { "*": { "alpha": [ @@ -26,27 +39,18 @@ ] } }, - "backstage": { - "role": "node-library" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "packages/backend-common" - }, - "keywords": [ - "backstage" + "files": [ + "dist", + "config.d.ts" ], - "license": "Apache-2.0", "scripts": { "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean", "start": "backstage-cli package start", + "test": "backstage-cli package test", "test:kubernetes": "backstage-cli package test -t KubernetesContainerRunner --no-watch" }, "dependencies": { @@ -108,14 +112,6 @@ "yauzl": "^3.0.0", "yn": "^4.0.0" }, - "peerDependencies": { - "pg-connection-string": "^2.3.0" - }, - "peerDependenciesMeta": { - "pg-connection-string": { - "optional": true - } - }, "devDependencies": { "@aws-sdk/util-stream-node": "^3.350.0", "@backstage/backend-test-utils": "workspace:^", @@ -138,10 +134,13 @@ "mysql2": "^3.0.0", "supertest": "^6.1.3" }, - "files": [ - "dist", - "config.d.ts", - "alpha" - ], + "peerDependencies": { + "pg-connection-string": "^2.3.0" + }, + "peerDependenciesMeta": { + "pg-connection-string": { + "optional": true + } + }, "configSchema": "config.d.ts" } diff --git a/packages/backend-common/src/tokens/ServerTokenManager.test.ts b/packages/backend-common/src/tokens/ServerTokenManager.test.ts index 7b9cf5965f..8870b4ed1c 100644 --- a/packages/backend-common/src/tokens/ServerTokenManager.test.ts +++ b/packages/backend-common/src/tokens/ServerTokenManager.test.ts @@ -301,6 +301,20 @@ describe('ServerTokenManager', () => { ), ).toThrow(); }); + + it('should throw errors when disabled', async () => { + const manager = ServerTokenManager.fromConfig(new ConfigReader({}), { + logger, + allowDisabledTokenManager: true, + }); + + await expect(manager.getToken()).rejects.toThrow( + 'Unable to generate legacy token', + ); + await expect(manager.authenticate('nah')).rejects.toThrow( + 'Unable to authenticate legacy token', + ); + }); }); describe('NODE_ENV === development', () => { diff --git a/packages/backend-common/src/tokens/ServerTokenManager.ts b/packages/backend-common/src/tokens/ServerTokenManager.ts index 453bfd7228..a62eb8de55 100644 --- a/packages/backend-common/src/tokens/ServerTokenManager.ts +++ b/packages/backend-common/src/tokens/ServerTokenManager.ts @@ -40,6 +40,23 @@ class NoopTokenManager implements TokenManager { async authenticate() {} } +/** + * A token manager that throws an error when trying to generate or authenticate tokens. + */ +class DisabledTokenManager implements TokenManager { + async getToken(): Promise<{ token: string }> { + throw new Error( + "Unable to generate legacy token, no legacy keys are configured in 'backend.auth.keys' or 'backend.auth.externalAccess'", + ); + } + + async authenticate() { + throw new AuthenticationError( + "Unable to authenticate legacy token, no legacy keys are configured in 'backend.auth.keys' or 'backend.auth.externalAccess'", + ); + } +} + /** * Options for {@link ServerTokenManager}. * @@ -50,6 +67,11 @@ export interface ServerTokenManagerOptions { * The logger to use. */ logger: LoggerService; + + /** + * Whether to disable the token manager if no keys are configured. + */ + allowDisabledTokenManager?: boolean; } /** @@ -73,7 +95,10 @@ export class ServerTokenManager implements TokenManager { return new NoopTokenManager(); } - static fromConfig(config: Config, options: ServerTokenManagerOptions) { + static fromConfig( + config: Config, + options: ServerTokenManagerOptions, + ): TokenManager { const oldSecrets = config .getOptionalConfigArray('backend.auth.keys') ?.map(c => c.getString('secret')); @@ -87,6 +112,14 @@ export class ServerTokenManager implements TokenManager { return new ServerTokenManager(secrets, options); } + // When using the new backend system with new auth services we instead rely + // on the new plugin auth and external access configurations. If no legacy + // keys are configured we disable the token manager completely, rather than + // requiring users to configure legacy keys. + if (options.allowDisabledTokenManager) { + return new DisabledTokenManager(); + } + if (process.env.NODE_ENV !== 'development') { throw new Error( 'You must configure at least one key in backend.auth.keys for production.', diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index a939df4eba..fd311f7d2b 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/backend-defaults +## 0.2.18-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.7.1-next.0 + - @backstage/backend-common@0.21.8-next.0 + ## 0.2.17 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 953449913e..8b061b15f4 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.2.17", + "version": "0.2.18-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-dynamic-feature-service/CHANGELOG.md b/packages/backend-dynamic-feature-service/CHANGELOG.md index 8eee7f5dcb..95b6097025 100644 --- a/packages/backend-dynamic-feature-service/CHANGELOG.md +++ b/packages/backend-dynamic-feature-service/CHANGELOG.md @@ -1,5 +1,32 @@ # @backstage/backend-dynamic-feature-service +## 0.2.10-next.0 + +### Patch Changes + +- b611fd0: Updates the `scanRoot` method in the `PluginScanner` class to specifically ignore the `lost+found` directory, which is a system-generated directory used for file recovery on Unix-like systems. Skipping this directory avoids unnecessary errors. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/backend-app-api@0.7.1-next.0 + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-scaffolder-node@0.4.4-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.5 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + - @backstage/plugin-app-node@0.1.18-next.0 + - @backstage/plugin-events-backend@0.3.5-next.0 + - @backstage/plugin-events-node@0.3.4-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + - @backstage/plugin-search-common@1.2.11 + ## 0.2.9 ### Patch Changes diff --git a/packages/backend-dynamic-feature-service/package.json b/packages/backend-dynamic-feature-service/package.json index 593dbf155b..07a559c748 100644 --- a/packages/backend-dynamic-feature-service/package.json +++ b/packages/backend-dynamic-feature-service/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-dynamic-feature-service", "description": "Backstage dynamic feature service", - "version": "0.2.9", + "version": "0.2.10-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-dynamic-feature-service/src/scanner/plugin-scanner.test.ts b/packages/backend-dynamic-feature-service/src/scanner/plugin-scanner.test.ts index 1abd7c234c..3086f2c16e 100644 --- a/packages/backend-dynamic-feature-service/src/scanner/plugin-scanner.test.ts +++ b/packages/backend-dynamic-feature-service/src/scanner/plugin-scanner.test.ts @@ -636,6 +636,24 @@ Please add '${mockDir.resolve( ], }, }, + { + name: 'lost+found directory should be ignored', + fileSystem: { + backstageRoot: { + 'dist-dynamic': { + 'lost+found': {}, + }, + }, + }, + expectedPluginPackages: [], + expectedLogs: { + debugs: [ + { + message: `skipping 'lost+found' system directory`, + }, + ], + }, + }, ])('$name', async (tc: TestCase): Promise => { const logger = new MockedLogger(); const backstageRoot = mockDir.resolve('backstageRoot'); diff --git a/packages/backend-dynamic-feature-service/src/scanner/plugin-scanner.ts b/packages/backend-dynamic-feature-service/src/scanner/plugin-scanner.ts index af1144f019..9229f5d78a 100644 --- a/packages/backend-dynamic-feature-service/src/scanner/plugin-scanner.ts +++ b/packages/backend-dynamic-feature-service/src/scanner/plugin-scanner.ts @@ -136,6 +136,11 @@ export class PluginScanner { withFileTypes: true, })) { const pluginDir = dirEnt; + + if (pluginDir.name === 'lost+found') { + this.logger.debug(`skipping '${pluginDir.name}' system directory`); + continue; + } const pluginHome = path.normalize( path.resolve(dynamicPluginsLocation, pluginDir.name), ); diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index 70dac3ac7f..3c48343ee4 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,42 @@ # example-backend-next +## 0.0.26-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-backend-module-github@0.2.8-next.0 + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/plugin-scaffolder-backend@1.22.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/plugin-search-backend@1.5.8-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.23-next.0 + - @backstage/plugin-catalog-backend-module-backstage-openapi@0.2.1-next.0 + - @backstage/plugin-auth-backend-module-guest-provider@0.1.4-next.0 + - @backstage/plugin-search-backend-module-explore@0.1.23-next.0 + - @backstage/plugin-auth-backend@0.22.5-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/plugin-notifications-backend@0.2.1-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/plugin-catalog-backend-module-openapi@0.1.36-next.0 + - @backstage/backend-defaults@0.2.18-next.0 + - @backstage/plugin-app-backend@0.3.66-next.0 + - @backstage/plugin-kubernetes-backend@0.17.1-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16-next.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.5-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23-next.0 + - @backstage/plugin-techdocs-backend@1.10.5-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/plugin-auth-backend-module-github-provider@0.1.15-next.0 + - @backstage/plugin-devtools-backend@0.3.4-next.0 + - @backstage/plugin-permission-backend@0.5.42-next.0 + - @backstage/plugin-permission-backend-module-allow-all-policy@0.1.15-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + - @backstage/plugin-proxy-backend@0.4.16-next.0 + - @backstage/plugin-signals-backend@0.1.4-next.0 + ## 0.0.25 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 757e4b269f..65416da7a3 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.25", + "version": "0.0.26-next.0", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -29,32 +29,23 @@ "@backstage/backend-plugin-api": "workspace:^", "@backstage/backend-tasks": "workspace:^", "@backstage/catalog-model": "workspace:^", - "@backstage/plugin-adr-backend": "workspace:^", "@backstage/plugin-app-backend": "workspace:^", "@backstage/plugin-auth-backend": "workspace:^", "@backstage/plugin-auth-backend-module-github-provider": "workspace:^", "@backstage/plugin-auth-backend-module-guest-provider": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", - "@backstage/plugin-azure-devops-backend": "workspace:^", - "@backstage/plugin-badges-backend": "workspace:^", "@backstage/plugin-catalog-backend": "workspace:^", "@backstage/plugin-catalog-backend-module-backstage-openapi": "workspace:^", "@backstage/plugin-catalog-backend-module-openapi": "workspace:^", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "workspace:^", "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^", "@backstage/plugin-devtools-backend": "workspace:^", - "@backstage/plugin-entity-feedback-backend": "workspace:^", - "@backstage/plugin-jenkins-backend": "workspace:^", "@backstage/plugin-kubernetes-backend": "workspace:^", - "@backstage/plugin-lighthouse-backend": "workspace:^", - "@backstage/plugin-linguist-backend": "workspace:^", - "@backstage/plugin-nomad-backend": "workspace:^", "@backstage/plugin-notifications-backend": "workspace:^", "@backstage/plugin-permission-backend": "workspace:^", "@backstage/plugin-permission-backend-module-allow-all-policy": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", "@backstage/plugin-permission-node": "workspace:^", - "@backstage/plugin-playlist-backend": "workspace:^", "@backstage/plugin-proxy-backend": "workspace:^", "@backstage/plugin-scaffolder-backend": "workspace:^", "@backstage/plugin-scaffolder-backend-module-github": "workspace:^", @@ -64,9 +55,7 @@ "@backstage/plugin-search-backend-module-techdocs": "workspace:^", "@backstage/plugin-search-backend-node": "workspace:^", "@backstage/plugin-signals-backend": "workspace:^", - "@backstage/plugin-sonarqube-backend": "workspace:^", - "@backstage/plugin-techdocs-backend": "workspace:^", - "@backstage/plugin-todo-backend": "workspace:^" + "@backstage/plugin-techdocs-backend": "workspace:^" }, "devDependencies": { "@backstage/cli": "workspace:^" diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index 4965462b2c..a4acd19cf2 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -22,23 +22,14 @@ backend.add(import('@backstage/plugin-auth-backend')); backend.add(import('./authModuleGithubProvider')); backend.add(import('@backstage/plugin-auth-backend-module-guest-provider')); -backend.add(import('@backstage/plugin-adr-backend')); backend.add(import('@backstage/plugin-app-backend/alpha')); -backend.add(import('@backstage/plugin-azure-devops-backend')); -backend.add(import('@backstage/plugin-badges-backend')); backend.add(import('@backstage/plugin-catalog-backend-module-unprocessed')); backend.add( import('@backstage/plugin-catalog-backend-module-scaffolder-entity-model'), ); backend.add(import('@backstage/plugin-catalog-backend/alpha')); backend.add(import('@backstage/plugin-devtools-backend')); -backend.add(import('@backstage/plugin-entity-feedback-backend')); -backend.add(import('@backstage/plugin-jenkins-backend')); backend.add(import('@backstage/plugin-kubernetes-backend/alpha')); -backend.add(import('@backstage/plugin-lighthouse-backend')); -backend.add(import('@backstage/plugin-linguist-backend')); -backend.add(import('@backstage/plugin-playlist-backend')); -backend.add(import('@backstage/plugin-nomad-backend')); backend.add( import('@backstage/plugin-permission-backend-module-allow-all-policy'), ); @@ -54,8 +45,6 @@ backend.add( ); backend.add(import('@backstage/plugin-search-backend/alpha')); backend.add(import('@backstage/plugin-techdocs-backend/alpha')); -backend.add(import('@backstage/plugin-todo-backend')); -backend.add(import('@backstage/plugin-sonarqube-backend')); backend.add(import('@backstage/plugin-signals-backend')); backend.add(import('@backstage/plugin-notifications-backend')); diff --git a/packages/backend-openapi-utils/CHANGELOG.md b/packages/backend-openapi-utils/CHANGELOG.md index 60df1440fa..2e0d578fdc 100644 --- a/packages/backend-openapi-utils/CHANGELOG.md +++ b/packages/backend-openapi-utils/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/backend-openapi-utils +## 0.1.11-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/errors@1.2.4 + ## 0.1.10 ### Patch Changes diff --git a/packages/backend-openapi-utils/package.json b/packages/backend-openapi-utils/package.json index 65806fa949..c95e01bfd7 100644 --- a/packages/backend-openapi-utils/package.json +++ b/packages/backend-openapi-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-openapi-utils", "description": "OpenAPI typescript support.", - "version": "0.1.10", + "version": "0.1.11-next.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-plugin-api/CHANGELOG.md b/packages/backend-plugin-api/CHANGELOG.md index 168970dc6c..4dccd8d1bc 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/backend-plugin-api +## 0.6.18-next.0 + +### Patch Changes + +- 1fedf0c: Removed explicit `toString()` method from `ServiceRef` type. +- Updated dependencies + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + ## 0.6.17 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 3a5b8bdb9d..e4bfaf3112 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -1,20 +1,30 @@ { "name": "@backstage/backend-plugin-api", + "version": "0.6.18-next.0", "description": "Core API used by Backstage backend plugins", - "version": "0.6.17", - "main": "src/index.ts", - "types": "src/index.ts", - "publishConfig": { - "access": "public" - }, "backstage": { "role": "node-library" }, + "publishConfig": { + "access": "public" + }, + "keywords": [ + "backstage" + ], + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "packages/backend-plugin-api" + }, + "license": "Apache-2.0", "exports": { ".": "./src/index.ts", "./alpha": "./src/alpha.ts", "./package.json": "./package.json" }, + "main": "src/index.ts", + "types": "src/index.ts", "typesVersions": { "*": { "alpha": [ @@ -25,24 +35,17 @@ ] } }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "packages/backend-plugin-api" - }, - "keywords": [ - "backstage" + "files": [ + "dist" ], - "license": "Apache-2.0", "scripts": { "build": "backstage-cli package build", + "clean": "backstage-cli package clean", "lint": "backstage-cli package lint", - "test": "backstage-cli package test", "prepack": "backstage-cli package prepack", "postpack": "backstage-cli package postpack", - "clean": "backstage-cli package clean", - "start": "backstage-cli package start" + "start": "backstage-cli package start", + "test": "backstage-cli package test" }, "dependencies": { "@backstage/backend-tasks": "workspace:^", @@ -56,9 +59,5 @@ }, "devDependencies": { "@backstage/cli": "workspace:^" - }, - "files": [ - "dist", - "alpha" - ] + } } diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index 7d7cb842c4..5fa17ac1fd 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-tasks +## 0.5.23-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.5.22 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index a996207ece..77d4ff60c7 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.22", + "version": "0.5.23-next.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-test-utils/CHANGELOG.md b/packages/backend-test-utils/CHANGELOG.md index 77abe491c2..03886c776d 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/backend-test-utils +## 0.3.8-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.7.1-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/backend-plugin-api@0.6.18-next.0 + - @backstage/config@1.2.0 + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 0.3.7 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 6035e47a4b..1d43e24adf 100644 --- a/packages/backend-test-utils/package.json +++ b/packages/backend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/backend-test-utils", - "version": "0.3.7", + "version": "0.3.8-next.0", "description": "Test helpers library for Backstage backends", "backstage": { "role": "node-library" diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index b0bf1a8b91..ce08ade977 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,47 @@ # example-backend +## 0.2.98-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.22.0-next.0 + - @backstage/plugin-scaffolder-backend@1.22.5-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-search-backend-node@1.2.22-next.0 + - @backstage/plugin-search-backend@1.5.8-next.0 + - @backstage/plugin-scaffolder-backend-module-gitlab@0.3.4-next.0 + - @backstage/plugin-search-backend-module-catalog@0.1.23-next.0 + - @backstage/plugin-search-backend-module-explore@0.1.23-next.0 + - @backstage/plugin-auth-backend@0.22.5-next.0 + - @backstage/plugin-auth-node@0.4.13-next.0 + - @backstage/backend-common@0.21.8-next.0 + - example-app@0.2.97-next.0 + - @backstage/plugin-app-backend@0.3.66-next.0 + - @backstage/plugin-kubernetes-backend@0.17.1-next.0 + - @backstage/catalog-client@1.6.5-next.0 + - @backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.1.16-next.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.4.5-next.0 + - @backstage/plugin-catalog-node@1.11.2-next.0 + - @backstage/plugin-search-backend-module-techdocs@0.1.23-next.0 + - @backstage/plugin-techdocs-backend@1.10.5-next.0 + - @backstage/backend-tasks@0.5.23-next.0 + - @backstage/config@1.2.0 + - @backstage/integration@1.10.0 + - @backstage/plugin-devtools-backend@0.3.4-next.0 + - @backstage/plugin-events-backend@0.3.5-next.0 + - @backstage/plugin-events-node@0.3.4-next.0 + - @backstage/plugin-permission-backend@0.5.42-next.0 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-node@0.7.29-next.0 + - @backstage/plugin-proxy-backend@0.4.16-next.0 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.19-next.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.35-next.0 + - @backstage/plugin-search-backend-module-elasticsearch@1.4.1-next.0 + - @backstage/plugin-search-backend-module-pg@0.5.27-next.0 + - @backstage/plugin-signals-backend@0.1.4-next.0 + - @backstage/plugin-signals-node@0.1.4-next.0 + ## 0.2.97 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index aa128febbb..378661ae12 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.97", + "version": "0.2.98-next.0", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", @@ -32,35 +32,21 @@ "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", "@backstage/integration": "workspace:^", - "@backstage/plugin-adr-backend": "workspace:^", "@backstage/plugin-app-backend": "workspace:^", "@backstage/plugin-auth-backend": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", - "@backstage/plugin-azure-devops-backend": "workspace:^", - "@backstage/plugin-azure-sites-common": "workspace:^", - "@backstage/plugin-badges-backend": "workspace:^", "@backstage/plugin-catalog-backend": "workspace:^", "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "workspace:^", "@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^", "@backstage/plugin-catalog-node": "workspace:^", - "@backstage/plugin-code-coverage-backend": "workspace:^", "@backstage/plugin-devtools-backend": "workspace:^", - "@backstage/plugin-entity-feedback-backend": "workspace:^", "@backstage/plugin-events-backend": "workspace:^", "@backstage/plugin-events-node": "workspace:^", - "@backstage/plugin-explore-backend": "workspace:^", - "@backstage/plugin-jenkins-backend": "workspace:^", - "@backstage/plugin-kafka-backend": "workspace:^", "@backstage/plugin-kubernetes-backend": "workspace:^", - "@backstage/plugin-lighthouse-backend": "workspace:^", - "@backstage/plugin-linguist-backend": "workspace:^", - "@backstage/plugin-nomad-backend": "workspace:^", "@backstage/plugin-permission-backend": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", "@backstage/plugin-permission-node": "workspace:^", - "@backstage/plugin-playlist-backend": "workspace:^", "@backstage/plugin-proxy-backend": "workspace:^", - "@backstage/plugin-rollbar-backend": "workspace:^", "@backstage/plugin-scaffolder-backend": "workspace:^", "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "workspace:^", "@backstage/plugin-scaffolder-backend-module-gitlab": "workspace:^", @@ -74,11 +60,7 @@ "@backstage/plugin-search-backend-node": "workspace:^", "@backstage/plugin-signals-backend": "workspace:^", "@backstage/plugin-signals-node": "workspace:^", - "@backstage/plugin-tech-insights-backend": "workspace:^", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "workspace:^", - "@backstage/plugin-tech-insights-node": "workspace:^", "@backstage/plugin-techdocs-backend": "workspace:^", - "@backstage/plugin-todo-backend": "workspace:^", "@gitbeaker/node": "^35.1.0", "@octokit/rest": "^19.0.3", "@opentelemetry/api": "^1.4.1", diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 026fff643e..34ea8b0f6c 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -40,32 +40,17 @@ import { Config } from '@backstage/config'; import healthcheck from './plugins/healthcheck'; import { metricsHandler, metricsInit } from './metrics'; import auth from './plugins/auth'; -import azureDevOps from './plugins/azure-devops'; import catalog from './plugins/catalog'; -import codeCoverage from './plugins/codecoverage'; -import entityFeedback from './plugins/entityFeedback'; import events from './plugins/events'; -import explore from './plugins/explore'; import kubernetes from './plugins/kubernetes'; -import kafka from './plugins/kafka'; -import rollbar from './plugins/rollbar'; import scaffolder from './plugins/scaffolder'; import proxy from './plugins/proxy'; import search from './plugins/search'; import techdocs from './plugins/techdocs'; -import techInsights from './plugins/techInsights'; -import todo from './plugins/todo'; import app from './plugins/app'; -import badges from './plugins/badges'; -import jenkins from './plugins/jenkins'; import permission from './plugins/permission'; -import playlist from './plugins/playlist'; -import adr from './plugins/adr'; -import lighthouse from './plugins/lighthouse'; -import linguist from './plugins/linguist'; -import devTools from './plugins/devtools'; -import nomad from './plugins/nomad'; import signals from './plugins/signals'; +import devtools from './plugins/devtools'; import { PluginEnvironment } from './types'; import { ServerPermissionClient } from '@backstage/plugin-permission-node'; import { DefaultIdentityClient } from '@backstage/plugin-auth-node'; @@ -153,69 +138,32 @@ async function main() { const healthcheckEnv = useHotMemoize(module, () => createEnv('healthcheck')); const catalogEnv = useHotMemoize(module, () => createEnv('catalog')); - const codeCoverageEnv = useHotMemoize(module, () => - createEnv('code-coverage'), - ); const scaffolderEnv = useHotMemoize(module, () => createEnv('scaffolder')); const authEnv = useHotMemoize(module, () => createEnv('auth')); - const azureDevOpsEnv = useHotMemoize(module, () => createEnv('azure-devops')); const proxyEnv = useHotMemoize(module, () => createEnv('proxy')); - const rollbarEnv = useHotMemoize(module, () => createEnv('rollbar')); const searchEnv = useHotMemoize(module, () => createEnv('search')); const techdocsEnv = useHotMemoize(module, () => createEnv('techdocs')); - const todoEnv = useHotMemoize(module, () => createEnv('todo')); const kubernetesEnv = useHotMemoize(module, () => createEnv('kubernetes')); - const kafkaEnv = useHotMemoize(module, () => createEnv('kafka')); const appEnv = useHotMemoize(module, () => createEnv('app')); - const badgesEnv = useHotMemoize(module, () => createEnv('badges')); - const jenkinsEnv = useHotMemoize(module, () => createEnv('jenkins')); - const adrEnv = useHotMemoize(module, () => createEnv('adr')); - const techInsightsEnv = useHotMemoize(module, () => - createEnv('tech-insights'), - ); const permissionEnv = useHotMemoize(module, () => createEnv('permission')); - const playlistEnv = useHotMemoize(module, () => createEnv('playlist')); - const entityFeedbackEnv = useHotMemoize(module, () => - createEnv('entityFeedback'), - ); const eventsEnv = useHotMemoize(module, () => createEnv('events')); - const exploreEnv = useHotMemoize(module, () => createEnv('explore')); - const lighthouseEnv = useHotMemoize(module, () => createEnv('lighthouse')); - const linguistEnv = useHotMemoize(module, () => createEnv('linguist')); const devToolsEnv = useHotMemoize(module, () => createEnv('devtools')); - const nomadEnv = useHotMemoize(module, () => createEnv('nomad')); const signalsEnv = useHotMemoize(module, () => createEnv('signals')); const apiRouter = Router(); apiRouter.use('/catalog', await catalog(catalogEnv)); - apiRouter.use('/code-coverage', await codeCoverage(codeCoverageEnv)); apiRouter.use('/events', await events(eventsEnv)); - apiRouter.use('/rollbar', await rollbar(rollbarEnv)); apiRouter.use('/scaffolder', await scaffolder(scaffolderEnv)); - apiRouter.use('/tech-insights', await techInsights(techInsightsEnv)); apiRouter.use('/auth', await auth(authEnv)); - apiRouter.use('/azure-devops', await azureDevOps(azureDevOpsEnv)); apiRouter.use('/search', await search(searchEnv)); apiRouter.use('/techdocs', await techdocs(techdocsEnv)); - apiRouter.use('/todo', await todo(todoEnv)); apiRouter.use('/kubernetes', await kubernetes(kubernetesEnv)); - apiRouter.use('/kafka', await kafka(kafkaEnv)); apiRouter.use('/proxy', await proxy(proxyEnv)); - apiRouter.use('/badges', await badges(badgesEnv)); - apiRouter.use('/jenkins', await jenkins(jenkinsEnv)); apiRouter.use('/permission', await permission(permissionEnv)); - apiRouter.use('/playlist', await playlist(playlistEnv)); - apiRouter.use('/explore', await explore(exploreEnv)); - apiRouter.use('/entity-feedback', await entityFeedback(entityFeedbackEnv)); - apiRouter.use('/adr', await adr(adrEnv)); - apiRouter.use('/linguist', await linguist(linguistEnv)); - apiRouter.use('/devtools', await devTools(devToolsEnv)); - apiRouter.use('/nomad', await nomad(nomadEnv)); + apiRouter.use('/devtools', await devtools(devToolsEnv)); apiRouter.use('/signals', await signals(signalsEnv)); apiRouter.use(notFoundHandler()); - await lighthouse(lighthouseEnv); - const service = createServiceBuilder(module) .loadConfig(config) .addRouter('', await healthcheck(healthcheckEnv)) diff --git a/packages/backend/src/plugins/adr.ts b/packages/backend/src/plugins/adr.ts deleted file mode 100644 index 6fa0d72969..0000000000 --- a/packages/backend/src/plugins/adr.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createRouter } from '@backstage/plugin-adr-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return await createRouter({ - reader: env.reader, - cacheClient: env.cache.getClient(), - logger: env.logger, - }); -} diff --git a/packages/backend/src/plugins/azure-devops.ts b/packages/backend/src/plugins/azure-devops.ts deleted file mode 100644 index 719bb0500e..0000000000 --- a/packages/backend/src/plugins/azure-devops.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createRouter } from '@backstage/plugin-azure-devops-backend'; -import { Router } from 'express'; -import type { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return createRouter({ - logger: env.logger, - config: env.config, - reader: env.reader, - permissions: env.permissions, - }); -} diff --git a/packages/backend/src/plugins/badges.ts b/packages/backend/src/plugins/badges.ts deleted file mode 100644 index fa50731809..0000000000 --- a/packages/backend/src/plugins/badges.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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 { - createRouter, - createDefaultBadgeFactories, -} from '@backstage/plugin-badges-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return await createRouter({ - config: env.config, - discovery: env.discovery, - badgeFactories: createDefaultBadgeFactories(), - tokenManager: env.tokenManager, - logger: env.logger, - identity: env.identity, - }); -} diff --git a/packages/backend/src/plugins/codecoverage.ts b/packages/backend/src/plugins/codecoverage.ts deleted file mode 100644 index adb20da2b3..0000000000 --- a/packages/backend/src/plugins/codecoverage.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createRouter } from '@backstage/plugin-code-coverage-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return await createRouter({ - config: env.config, - discovery: env.discovery, - database: env.database, - urlReader: env.reader, - logger: env.logger, - }); -} diff --git a/packages/backend/src/plugins/entityFeedback.ts b/packages/backend/src/plugins/entityFeedback.ts deleted file mode 100644 index c37c3c9a97..0000000000 --- a/packages/backend/src/plugins/entityFeedback.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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 { createRouter } from '@backstage/plugin-entity-feedback-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default function createPlugin(env: PluginEnvironment): Promise { - return createRouter({ - database: env.database, - discovery: env.discovery, - identity: env.identity, - logger: env.logger, - }); -} diff --git a/packages/backend/src/plugins/explore.ts b/packages/backend/src/plugins/explore.ts deleted file mode 100644 index 131f9461fa..0000000000 --- a/packages/backend/src/plugins/explore.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - createRouter, - exampleTools, - StaticExploreToolProvider, -} from '@backstage/plugin-explore-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return await createRouter({ - logger: env.logger, - toolProvider: StaticExploreToolProvider.fromData(exampleTools), - }); -} diff --git a/packages/backend/src/plugins/jenkins.ts b/packages/backend/src/plugins/jenkins.ts deleted file mode 100644 index 7d47ee338d..0000000000 --- a/packages/backend/src/plugins/jenkins.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - createRouter, - DefaultJenkinsInfoProvider, -} from '@backstage/plugin-jenkins-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; -import { CatalogClient } from '@backstage/catalog-client'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - const catalog = new CatalogClient({ discoveryApi: env.discovery }); - - return await createRouter({ - logger: env.logger, - jenkinsInfoProvider: DefaultJenkinsInfoProvider.fromConfig({ - catalog, - config: env.config, - discovery: env.discovery, - }), - discovery: env.discovery, - }); -} diff --git a/packages/backend/src/plugins/kafka.ts b/packages/backend/src/plugins/kafka.ts deleted file mode 100644 index 784bad3145..0000000000 --- a/packages/backend/src/plugins/kafka.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createRouter } from '@backstage/plugin-kafka-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return await createRouter({ - logger: env.logger, - config: env.config, - }); -} diff --git a/packages/backend/src/plugins/lighthouse.ts b/packages/backend/src/plugins/lighthouse.ts deleted file mode 100644 index 77204159cb..0000000000 --- a/packages/backend/src/plugins/lighthouse.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createScheduler } from '@backstage/plugin-lighthouse-backend'; -import { PluginEnvironment } from '../types'; -import { CatalogClient } from '@backstage/catalog-client'; - -export default async function createPlugin(env: PluginEnvironment) { - const { logger, scheduler, config, tokenManager, discovery } = env; - - const catalogClient = new CatalogClient({ - discoveryApi: env.discovery, - }); - - await createScheduler({ - logger, - scheduler, - config, - catalogClient, - tokenManager, - discovery, - }); -} diff --git a/packages/backend/src/plugins/linguist.ts b/packages/backend/src/plugins/linguist.ts deleted file mode 100644 index 2c8713a7e3..0000000000 --- a/packages/backend/src/plugins/linguist.ts +++ /dev/null @@ -1,40 +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 { TaskScheduleDefinition } from '@backstage/backend-tasks'; -import { createRouter } from '@backstage/plugin-linguist-backend'; -import { Router } from 'express'; -import type { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - const schedule: TaskScheduleDefinition = { - frequency: { minutes: 2 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 15 }, - }; - - return createRouter( - { - schedule: schedule, - age: { days: 30 }, - batchSize: 2, - useSourceLocation: false, - }, - { ...env }, - ); -} diff --git a/packages/backend/src/plugins/nomad.ts b/packages/backend/src/plugins/nomad.ts deleted file mode 100644 index 111cbfbf0d..0000000000 --- a/packages/backend/src/plugins/nomad.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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 { createRouter } from '@backstage/plugin-nomad-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default async function createPlugin( - props: PluginEnvironment, -): Promise { - return await createRouter(props); -} diff --git a/packages/backend/src/plugins/permission.ts b/packages/backend/src/plugins/permission.ts index 7192a1ddec..fd0a989f06 100644 --- a/packages/backend/src/plugins/permission.ts +++ b/packages/backend/src/plugins/permission.ts @@ -24,23 +24,15 @@ import { PermissionPolicy, PolicyQuery, } from '@backstage/plugin-permission-node'; -import { - DefaultPlaylistPermissionPolicy, - isPlaylistPermission, -} from '@backstage/plugin-playlist-backend'; import { Router } from 'express'; import { PluginEnvironment } from '../types'; class ExamplePermissionPolicy implements PermissionPolicy { - private playlistPermissionPolicy = new DefaultPlaylistPermissionPolicy(); - async handle( - request: PolicyQuery, - user?: BackstageIdentityResponse, + _request: PolicyQuery, + _user?: BackstageIdentityResponse, ): Promise { - if (isPlaylistPermission(request.permission)) { - return this.playlistPermissionPolicy.handle(request, user); - } + // some logic to determine if the user is allowed to access the resource return { result: AuthorizeResult.ALLOW, diff --git a/packages/backend/src/plugins/playlist.ts b/packages/backend/src/plugins/playlist.ts deleted file mode 100644 index 6cae6a30ab..0000000000 --- a/packages/backend/src/plugins/playlist.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2022 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createRouter } from '@backstage/plugin-playlist-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return await createRouter({ - database: env.database, - discovery: env.discovery, - identity: env.identity, - logger: env.logger, - permissions: env.permissions, - }); -} diff --git a/packages/backend/src/plugins/rollbar.ts b/packages/backend/src/plugins/rollbar.ts deleted file mode 100644 index c679be40a7..0000000000 --- a/packages/backend/src/plugins/rollbar.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createRouter } from '@backstage/plugin-rollbar-backend'; -import { Router } from 'express'; -import type { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - return await createRouter({ - logger: env.logger, - config: env.config, - }); -} diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts index a5b976ec9d..dcdcfa9b79 100644 --- a/packages/backend/src/plugins/search.ts +++ b/packages/backend/src/plugins/search.ts @@ -15,7 +15,6 @@ */ import { useHotCleanup } from '@backstage/backend-common'; -import { DefaultAdrCollatorFactory } from '@backstage/plugin-adr-backend'; import { DefaultCatalogCollatorFactory } from '@backstage/plugin-search-backend-module-catalog'; import { ToolDocumentCollatorFactory } from '@backstage/plugin-search-backend-module-explore'; import { createRouter } from '@backstage/plugin-search-backend'; @@ -70,18 +69,6 @@ export default async function createPlugin( // Collators are responsible for gathering documents known to plugins. This // particular collator gathers entities from the software catalog. - indexBuilder.addCollator({ - schedule, - factory: DefaultAdrCollatorFactory.fromConfig({ - cache: env.cache, - config: env.config, - discovery: env.discovery, - logger: env.logger, - reader: env.reader, - tokenManager: env.tokenManager, - }), - }); - indexBuilder.addCollator({ schedule, factory: DefaultCatalogCollatorFactory.fromConfig(env.config, { diff --git a/packages/backend/src/plugins/techInsights.ts b/packages/backend/src/plugins/techInsights.ts deleted file mode 100644 index 8575a46480..0000000000 --- a/packages/backend/src/plugins/techInsights.ts +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - createRouter, - buildTechInsightsContext, - createFactRetrieverRegistration, - entityOwnershipFactRetriever, - entityMetadataFactRetriever, - techdocsFactRetriever, -} from '@backstage/plugin-tech-insights-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; -import { - JsonRulesEngineFactCheckerFactory, - JSON_RULE_ENGINE_CHECK_TYPE, -} from '@backstage/plugin-tech-insights-backend-module-jsonfc'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - const techInsightsContext = await buildTechInsightsContext({ - logger: env.logger, - config: env.config, - database: env.database, - scheduler: env.scheduler, - discovery: env.discovery, - tokenManager: env.tokenManager, - factRetrievers: [ - createFactRetrieverRegistration({ - cadence: '1 1 1 * *', // Example cron, At 01:01 on day-of-month 1. - factRetriever: entityOwnershipFactRetriever, - }), - createFactRetrieverRegistration({ - cadence: '1 1 1 * *', - factRetriever: entityMetadataFactRetriever, - }), - createFactRetrieverRegistration({ - cadence: '1 1 1 * *', - factRetriever: techdocsFactRetriever, - }), - ], - factCheckerFactory: new JsonRulesEngineFactCheckerFactory({ - logger: env.logger, - checks: [ - { - id: 'titleCheck', - type: JSON_RULE_ENGINE_CHECK_TYPE, - name: 'Title Check', - description: - 'Verifies that a Title, used to improve readability, has been set for this entity', - factIds: ['entityMetadataFactRetriever'], - rule: { - conditions: { - all: [ - { - fact: 'hasTitle', - operator: 'equal', - value: true, - }, - ], - }, - }, - }, - { - id: 'techDocsCheck', - type: JSON_RULE_ENGINE_CHECK_TYPE, - name: 'TechDocs Check', - description: - 'Verifies that TechDocs has been enabled for this entity', - factIds: ['techdocsFactRetriever'], - rule: { - conditions: { - all: [ - { - fact: 'hasAnnotationBackstageIoTechdocsRef', - operator: 'equal', - value: true, - }, - ], - }, - }, - }, - ], - }), - }); - - return await createRouter({ - ...techInsightsContext, - logger: env.logger, - config: env.config, - }); -} diff --git a/packages/backend/src/plugins/todo.ts b/packages/backend/src/plugins/todo.ts deleted file mode 100644 index fb460b5f70..0000000000 --- a/packages/backend/src/plugins/todo.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { CatalogClient } from '@backstage/catalog-client'; -import { - createRouter, - TodoReaderService, - TodoScmReader, -} from '@backstage/plugin-todo-backend'; -import { Router } from 'express'; -import { PluginEnvironment } from '../types'; - -export default async function createPlugin( - env: PluginEnvironment, -): Promise { - const todoReader = TodoScmReader.fromConfig(env.config, { - logger: env.logger, - reader: env.reader, - }); - - const catalogClient = new CatalogClient({ - discoveryApi: env.discovery, - }); - - const todoService = new TodoReaderService({ - todoReader, - catalogClient, - }); - - return await createRouter({ - todoService, - }); -} diff --git a/packages/catalog-client/CHANGELOG.md b/packages/catalog-client/CHANGELOG.md index b210a4c653..ef3ca6588e 100644 --- a/packages/catalog-client/CHANGELOG.md +++ b/packages/catalog-client/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/catalog-client +## 1.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/errors@1.2.4 + ## 1.6.4 ### Patch Changes diff --git a/packages/catalog-client/package.json b/packages/catalog-client/package.json index 1a942e7182..39d8227fa5 100644 --- a/packages/catalog-client/package.json +++ b/packages/catalog-client/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-client", - "version": "1.6.4", + "version": "1.6.5-next.0", "description": "An isomorphic client for the catalog backend", "backstage": { "role": "common-library" diff --git a/packages/catalog-model/CHANGELOG.md b/packages/catalog-model/CHANGELOG.md index 4a3633d5de..c04ac72136 100644 --- a/packages/catalog-model/CHANGELOG.md +++ b/packages/catalog-model/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/catalog-model +## 1.5.0-next.0 + +### Minor Changes + +- 79025f3: Introduce a domain attribute to the domain entity to allow a hierarchy of domains to exist. + +### Patch Changes + +- Updated dependencies + - @backstage/errors@1.2.4 + - @backstage/types@1.1.1 + ## 1.4.5 ### Patch Changes diff --git a/packages/catalog-model/api-report.md b/packages/catalog-model/api-report.md index b8eb20c590..2d91fa44a5 100644 --- a/packages/catalog-model/api-report.md +++ b/packages/catalog-model/api-report.md @@ -122,6 +122,7 @@ interface DomainEntityV1alpha1 extends Entity { // (undocumented) spec: { owner: string; + subdomainOf?: string; }; } export { DomainEntityV1alpha1 as DomainEntity }; diff --git a/packages/catalog-model/examples/all-domains.yaml b/packages/catalog-model/examples/all-domains.yaml index 91a8a5b76d..5855fde34b 100644 --- a/packages/catalog-model/examples/all-domains.yaml +++ b/packages/catalog-model/examples/all-domains.yaml @@ -5,5 +5,6 @@ metadata: description: A collection of all Backstage example domains spec: targets: + - ./domains/audio-domain.yaml - ./domains/artists-domain.yaml - ./domains/playback-domain.yaml diff --git a/packages/catalog-model/examples/domains/artists-domain.yaml b/packages/catalog-model/examples/domains/artists-domain.yaml index 0dc1b91cb5..598f8500aa 100644 --- a/packages/catalog-model/examples/domains/artists-domain.yaml +++ b/packages/catalog-model/examples/domains/artists-domain.yaml @@ -12,3 +12,4 @@ metadata: icon: dashboard spec: owner: team-a + subdomainOf: audio diff --git a/packages/catalog-model/examples/domains/audio-domain.yaml b/packages/catalog-model/examples/domains/audio-domain.yaml new file mode 100644 index 0000000000..c454a7cf8d --- /dev/null +++ b/packages/catalog-model/examples/domains/audio-domain.yaml @@ -0,0 +1,13 @@ +apiVersion: backstage.io/v1alpha1 +kind: Domain +metadata: + name: audio + description: Everything related to audio + links: + - url: http://example.com/domain/audio/ + title: Domain Readme + - url: http://example.com/domains/audio/dashboard + title: Domain Metrics Dashboard + icon: dashboard +spec: + owner: acme-corp diff --git a/packages/catalog-model/examples/domains/playback-domain.yaml b/packages/catalog-model/examples/domains/playback-domain.yaml index c9933ebf5e..58b5afe56e 100644 --- a/packages/catalog-model/examples/domains/playback-domain.yaml +++ b/packages/catalog-model/examples/domains/playback-domain.yaml @@ -5,3 +5,4 @@ metadata: description: Everything related to audio playback spec: owner: user:frank.tiernan + subdomainOf: audio diff --git a/packages/catalog-model/package.json b/packages/catalog-model/package.json index 2dd4001d00..5622a20941 100644 --- a/packages/catalog-model/package.json +++ b/packages/catalog-model/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/catalog-model", - "version": "1.4.5", + "version": "1.5.0-next.0", "description": "Types and validators that help describe the model of a Backstage Catalog", "backstage": { "role": "common-library" diff --git a/packages/catalog-model/src/kinds/DomainEntityV1alpha1.test.ts b/packages/catalog-model/src/kinds/DomainEntityV1alpha1.test.ts index 822a7984e9..3c1e7f0a6d 100644 --- a/packages/catalog-model/src/kinds/DomainEntityV1alpha1.test.ts +++ b/packages/catalog-model/src/kinds/DomainEntityV1alpha1.test.ts @@ -31,6 +31,7 @@ describe('DomainV1alpha1Validator', () => { }, spec: { owner: 'me', + subdomainOf: 'parent-domain', }, }; }); @@ -68,4 +69,19 @@ describe('DomainV1alpha1Validator', () => { (entity as any).spec.owner = ''; await expect(validator.check(entity)).rejects.toThrow(/owner/); }); + + it('accepts missing subdomainOf', async () => { + delete (entity as any).spec.subdomainOf; + await expect(validator.check(entity)).resolves.toBe(true); + }); + + it('rejects wrong subdomainOf', async () => { + (entity as any).spec.subdomainOf = 7; + await expect(validator.check(entity)).rejects.toThrow(/subdomainOf/); + }); + + it('rejects empty subdomainOf', async () => { + (entity as any).spec.subdomainOf = ''; + await expect(validator.check(entity)).rejects.toThrow(/subdomainOf/); + }); }); diff --git a/packages/catalog-model/src/kinds/DomainEntityV1alpha1.ts b/packages/catalog-model/src/kinds/DomainEntityV1alpha1.ts index e0302fcc52..1fe3dfb522 100644 --- a/packages/catalog-model/src/kinds/DomainEntityV1alpha1.ts +++ b/packages/catalog-model/src/kinds/DomainEntityV1alpha1.ts @@ -32,6 +32,7 @@ export interface DomainEntityV1alpha1 extends Entity { kind: 'Domain'; spec: { owner: string; + subdomainOf?: string; }; } diff --git a/packages/catalog-model/src/schema/kinds/Domain.v1alpha1.schema.json b/packages/catalog-model/src/schema/kinds/Domain.v1alpha1.schema.json index a1a09b1213..7d0d7e25ff 100644 --- a/packages/catalog-model/src/schema/kinds/Domain.v1alpha1.schema.json +++ b/packages/catalog-model/src/schema/kinds/Domain.v1alpha1.schema.json @@ -11,7 +11,8 @@ "description": "Everything about artists" }, "spec": { - "owner": "artist-relations-team" + "owner": "artist-relations-team", + "subdomainOf": "audio" } } ], @@ -38,6 +39,12 @@ "description": "An entity reference to the owner of the component.", "examples": ["artist-relations-team", "user:john.johnson"], "minLength": 1 + }, + "subdomainOf": { + "type": "string", + "description": "An entity reference to another domain of which the domain is a part.", + "examples": ["audio"], + "minLength": 1 } } } diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 6a466591b2..6c37772f73 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/cli +## 0.26.5-next.0 + +### Patch Changes + +- fcd3462: Both the target and types library have been bumped from ES2021 to ES2022 in `@backstage/cli/config/tsconfig.json`. +- 0cc5ed3: Add support for `versions:migrate` to do code changes. Can be skipped with `--no-code-changes` +- f97ad04: Add preserveModules to rollup, which allows better async loading and tree-shaking in webpack +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.5 + - @backstage/config@1.2.0 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + - @backstage/eslint-plugin@0.1.7 + - @backstage/integration@1.10.0 + - @backstage/release-manifests@0.0.11 + - @backstage/types@1.1.1 + ## 0.26.3 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 537aec421d..ecdfa590d6 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.26.3", + "version": "0.26.5-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/core-compat-api/CHANGELOG.md b/packages/core-compat-api/CHANGELOG.md index 6f7c38735a..29ebd0cc2b 100644 --- a/packages/core-compat-api/CHANGELOG.md +++ b/packages/core-compat-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/core-compat-api +## 0.2.5-next.0 + +### Patch Changes + +- 5d99272: Update local development dependencies. +- Updated dependencies + - @backstage/core-plugin-api@1.9.2 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/version-bridge@1.0.8 + ## 0.2.4 ### Patch Changes diff --git a/packages/core-compat-api/package.json b/packages/core-compat-api/package.json index 8edbf6a506..a7bab7b52f 100644 --- a/packages/core-compat-api/package.json +++ b/packages/core-compat-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/core-compat-api", - "version": "0.2.4", + "version": "0.2.5-next.0", "backstage": { "role": "web-library" }, @@ -37,13 +37,13 @@ "@types/react": "^16.13.1 || ^17.0.0" }, "devDependencies": { + "@backstage-community/plugin-puppetdb": "^0.1.18", + "@backstage-community/plugin-stackstorm": "^0.1.16", "@backstage/cli": "workspace:^", "@backstage/core-app-api": "workspace:^", "@backstage/frontend-app-api": "workspace:^", "@backstage/frontend-test-utils": "workspace:^", "@backstage/plugin-catalog": "workspace:^", - "@backstage/plugin-puppetdb": "workspace:^", - "@backstage/plugin-stackstorm": "workspace:^", "@oriflame/backstage-plugin-score-card": "^0.8.0", "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^15.0.0" diff --git a/packages/core-compat-api/src/collectLegacyRoutes.test.tsx b/packages/core-compat-api/src/collectLegacyRoutes.test.tsx index 2c8288b878..aa3beee679 100644 --- a/packages/core-compat-api/src/collectLegacyRoutes.test.tsx +++ b/packages/core-compat-api/src/collectLegacyRoutes.test.tsx @@ -23,8 +23,8 @@ import { EntitySwitch, isKind, } from '@backstage/plugin-catalog'; -import { PuppetDbPage } from '@backstage/plugin-puppetdb'; -import { StackstormPage } from '@backstage/plugin-stackstorm'; +import { PuppetDbPage } from '@backstage-community/plugin-puppetdb'; +import { StackstormPage } from '@backstage-community/plugin-stackstorm'; import { ScoreBoardPage } from '@oriflame/backstage-plugin-score-card'; import React, { Fragment } from 'react'; import { Navigate, Route, Routes } from 'react-router-dom'; diff --git a/packages/core-compat-api/src/convertLegacyApp.test.tsx b/packages/core-compat-api/src/convertLegacyApp.test.tsx index ef65603c85..2e7be66915 100644 --- a/packages/core-compat-api/src/convertLegacyApp.test.tsx +++ b/packages/core-compat-api/src/convertLegacyApp.test.tsx @@ -15,8 +15,8 @@ */ import { AppRouter, FlatRoutes } from '@backstage/core-app-api'; -import { PuppetDbPage } from '@backstage/plugin-puppetdb'; -import { StackstormPage } from '@backstage/plugin-stackstorm'; +import { PuppetDbPage } from '@backstage-community/plugin-puppetdb'; +import { StackstormPage } from '@backstage-community/plugin-stackstorm'; import { ScoreBoardPage } from '@oriflame/backstage-plugin-score-card'; import React, { ReactNode } from 'react'; import { Route } from 'react-router-dom'; diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index da04ef9e2b..4e8f90b441 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/core-components +## 0.14.5-next.0 + +### Patch Changes + +- 71e4229: Added optional `initialShowDropDown` prop to `SidebarSubmenuItem` to internally manage the initial display state of the dropdown items. +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/config@1.2.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/version-bridge@1.0.8 + ## 0.14.4 ### Patch Changes diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index 7fd706db43..2a146e70e0 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -1128,6 +1128,7 @@ export type SidebarSubmenuItemProps = { icon?: IconComponent; dropdownItems?: SidebarSubmenuItemDropdownItem[]; exact?: boolean; + initialShowDropdown?: boolean; }; // @public diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 9f632bcc7f..df637fa3a8 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-components", "description": "Core components used by Backstage plugins and apps", - "version": "0.14.4", + "version": "0.14.5-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/core-components/src/layout/HeaderTabs/HeaderTabs.tsx b/packages/core-components/src/layout/HeaderTabs/HeaderTabs.tsx index 852622c741..9ee9c5525f 100644 --- a/packages/core-components/src/layout/HeaderTabs/HeaderTabs.tsx +++ b/packages/core-components/src/layout/HeaderTabs/HeaderTabs.tsx @@ -18,7 +18,7 @@ import { makeStyles } from '@material-ui/core/styles'; import TabUI, { TabProps } from '@material-ui/core/Tab'; import Tabs from '@material-ui/core/Tabs'; import React, { useCallback, useEffect, useState } from 'react'; -import { Link } from '@backstage/core-components'; +import { Link } from '../../components/Link'; // TODO(blam): Remove this implementation when the Tabs are ready // This is just a temporary solution to implementing tabs for now diff --git a/packages/core-components/src/layout/Sidebar/SidebarSubmenuItem.tsx b/packages/core-components/src/layout/Sidebar/SidebarSubmenuItem.tsx index 0503f58f1c..19834268f9 100644 --- a/packages/core-components/src/layout/Sidebar/SidebarSubmenuItem.tsx +++ b/packages/core-components/src/layout/Sidebar/SidebarSubmenuItem.tsx @@ -131,6 +131,7 @@ export type SidebarSubmenuItemProps = { icon?: IconComponent; dropdownItems?: SidebarSubmenuItemDropdownItem[]; exact?: boolean; + initialShowDropdown?: boolean; }; /** @@ -149,7 +150,9 @@ export const SidebarSubmenuItem = (props: SidebarSubmenuItemProps) => { const currentLocation = useLocation(); let isActive = isLocationMatch(currentLocation, toLocation, exact); - const [showDropDown, setShowDropDown] = useState(false); + const [showDropDown, setShowDropDown] = useState( + props.initialShowDropdown ?? false, + ); const handleClickDropdown = () => { setShowDropDown(!showDropDown); }; diff --git a/packages/core-components/src/layout/SignInPage/guestProvider.tsx b/packages/core-components/src/layout/SignInPage/guestProvider.tsx index 3867caed5a..145b653a82 100644 --- a/packages/core-components/src/layout/SignInPage/guestProvider.tsx +++ b/packages/core-components/src/layout/SignInPage/guestProvider.tsx @@ -60,7 +60,11 @@ const Component: ProviderComponent = ({ discoveryApi, }); - const identityResponse = await getIdentity(identity); + const identityResponse = await getIdentity(identity).catch(error => { + // eslint-disable-next-line no-console + console.warn(`Failed to sign in as a guest, ${error}`); + return undefined; + }); if (!identityResponse) { // eslint-disable-next-line no-alert @@ -108,7 +112,11 @@ const loader: ProviderLoader = async apis => { provider: 'guest', discoveryApi: apis.get(discoveryApiRef)!, }); - const identityResponse = await getIdentity(identity); + const identityResponse = await getIdentity(identity).catch(error => { + // eslint-disable-next-line no-console + console.warn(`Failed to sign in as a guest, ${error}`); + return undefined; + }); if (!identityResponse && !useLegacyGuestToken) { return undefined; diff --git a/packages/core-plugin-api/.eslintrc.js b/packages/core-plugin-api/.eslintrc.js index e2a53a6ad2..6f6668b53d 100644 --- a/packages/core-plugin-api/.eslintrc.js +++ b/packages/core-plugin-api/.eslintrc.js @@ -1 +1,5 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { + rules: { + '@backstage/no-top-level-material-ui-4-imports': 'error', + }, +}); diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index a4137138d5..2706fc14b5 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/create-app +## 0.5.15-next.0 + +### Patch Changes + +- c066c88: Removed `packages/backend/src/types.ts` from the template as it is unused. It was mistakenly left in after moving the template to the new backend system. +- 5d99272: Update local development dependencies. +- 8105aad: Removed the Tech Radar and GitHub Actions plugins from the template, which have been moved to the community plugins repository. +- Updated dependencies + - @backstage/cli-common@0.1.13 + ## 0.5.14 ### Patch Changes @@ -932,7 +942,7 @@ ### Patch Changes - f1c3cdfb2d: Bumped create-app version. -- df21bbd4ad: The [Analytics API](https://backstage.io/docs/plugins/analytics) is the recommended way to track usage in Backstage; an optionally installable [Google Analytics module](https://github.com/backstage/backstage/tree/master/plugins/analytics-module-ga#installation) has superseded the old app.googleAnalyticsTrackingId config and its corresponding script tags in packages/app/public/index.html. +- df21bbd4ad: The [Analytics API](https://backstage.io/docs/plugins/analytics) is the recommended way to track usage in Backstage; an optionally installable [Google Analytics module](https://github.com/backstage/community-plugins/tree/main/workspaces/analytics/plugins/analytics-module-ga#installation) has superseded the old app.googleAnalyticsTrackingId config and its corresponding script tags in packages/app/public/index.html. For an existing installation where you want to remove the redundant app.googleAnalyticsTrackingId, you should make the following adjustment to `packages/app/public/index.html`: diff --git a/packages/create-app/package.json b/packages/create-app/package.json index e5ec68b219..28e2fd1087 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/create-app", "description": "A CLI that helps you create your own Backstage app", - "version": "0.5.14", + "version": "0.5.15-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/create-app/src/lib/tasks.test.ts b/packages/create-app/src/lib/tasks.test.ts index 522db161eb..38a09f7ac6 100644 --- a/packages/create-app/src/lib/tasks.test.ts +++ b/packages/create-app/src/lib/tasks.test.ts @@ -87,13 +87,11 @@ jest.mock('./versions', () => ({ '@backstage/plugin-catalog-graph': '1.0.0', '@backstage/plugin-catalog-import': '1.0.0', '@backstage/plugin-catalog-react': '1.0.0', - '@backstage/plugin-github-actions': '1.0.0', '@backstage/plugin-org': '1.0.0', '@backstage/plugin-scaffolder': '1.0.0', '@backstage/plugin-permission-react': '1.0.0', '@backstage/plugin-search': '1.0.0', '@backstage/plugin-search-react': '1.0.0', - '@backstage/plugin-tech-radar': '1.0.0', '@backstage/plugin-techdocs': '1.0.0', '@backstage/plugin-techdocs-react': '1.0.0', '@backstage/plugin-techdocs-module-addons-contrib': '1.0.0', diff --git a/packages/create-app/src/lib/versions.ts b/packages/create-app/src/lib/versions.ts index 76f3c37f78..febc68102c 100644 --- a/packages/create-app/src/lib/versions.ts +++ b/packages/create-app/src/lib/versions.ts @@ -61,9 +61,6 @@ import { version as pluginCatalogBackend } from '../../../../plugins/catalog-bac import { version as pluginCatalogBackendModuleScaffolderEntityModel } from '../../../../plugins/catalog-backend-module-scaffolder-entity-model/package.json'; import { version as pluginCatalogGraph } from '../../../../plugins/catalog-graph/package.json'; import { version as pluginCatalogImport } from '../../../../plugins/catalog-import/package.json'; -import { version as pluginExplore } from '../../../../plugins/explore/package.json'; -import { version as pluginGithubActions } from '../../../../plugins/github-actions/package.json'; -import { version as pluginLighthouse } from '../../../../plugins/lighthouse/package.json'; import { version as pluginOrg } from '../../../../plugins/org/package.json'; import { version as pluginPermissionBackend } from '../../../../plugins/permission-backend/package.json'; import { version as pluginPermissionBackendModulePolicyAllowAll } from '../../../../plugins/permission-backend-module-policy-allow-all/package.json'; @@ -71,7 +68,6 @@ import { version as pluginPermissionCommon } from '../../../../plugins/permissio import { version as pluginPermissionReact } from '../../../../plugins/permission-react/package.json'; import { version as pluginPermissionNode } from '../../../../plugins/permission-node/package.json'; import { version as pluginProxyBackend } from '../../../../plugins/proxy-backend/package.json'; -import { version as pluginRollbarBackend } from '../../../../plugins/rollbar-backend/package.json'; import { version as pluginScaffolder } from '../../../../plugins/scaffolder/package.json'; import { version as pluginScaffolderBackend } from '../../../../plugins/scaffolder-backend/package.json'; import { version as pluginSearch } from '../../../../plugins/search/package.json'; @@ -81,7 +77,6 @@ import { version as pluginSearchBackendModuleCatalog } from '../../../../plugins import { version as pluginSearchBackendModulePg } from '../../../../plugins/search-backend-module-pg/package.json'; import { version as pluginSearchBackendModuleTechdocs } from '../../../../plugins/search-backend-module-techdocs/package.json'; import { version as pluginSearchBackendNode } from '../../../../plugins/search-backend-node/package.json'; -import { version as pluginTechRadar } from '../../../../plugins/tech-radar/package.json'; import { version as pluginTechdocs } from '../../../../plugins/techdocs/package.json'; import { version as pluginTechdocsReact } from '../../../../plugins/techdocs-react/package.json'; import { version as pluginTechdocsModuleAddonsContrib } from '../../../../plugins/techdocs-module-addons-contrib/package.json'; @@ -120,9 +115,6 @@ export const packageVersions = { pluginCatalogBackendModuleScaffolderEntityModel, '@backstage/plugin-catalog-graph': pluginCatalogGraph, '@backstage/plugin-catalog-import': pluginCatalogImport, - '@backstage/plugin-explore': pluginExplore, - '@backstage/plugin-github-actions': pluginGithubActions, - '@backstage/plugin-lighthouse': pluginLighthouse, '@backstage/plugin-org': pluginOrg, '@backstage/plugin-permission-backend': pluginPermissionBackend, '@backstage/plugin-permission-backend-module-allow-all-policy': @@ -131,7 +123,6 @@ export const packageVersions = { '@backstage/plugin-permission-node': pluginPermissionNode, '@backstage/plugin-permission-react': pluginPermissionReact, '@backstage/plugin-proxy-backend': pluginProxyBackend, - '@backstage/plugin-rollbar-backend': pluginRollbarBackend, '@backstage/plugin-scaffolder': pluginScaffolder, '@backstage/plugin-scaffolder-backend': pluginScaffolderBackend, '@backstage/plugin-search': pluginSearch, @@ -143,7 +134,6 @@ export const packageVersions = { '@backstage/plugin-search-backend-module-techdocs': pluginSearchBackendModuleTechdocs, '@backstage/plugin-search-backend-node': pluginSearchBackendNode, - '@backstage/plugin-tech-radar': pluginTechRadar, '@backstage/plugin-techdocs': pluginTechdocs, '@backstage/plugin-techdocs-react': pluginTechdocsReact, '@backstage/plugin-techdocs-module-addons-contrib': diff --git a/packages/create-app/templates/default-app/packages/app/package.json.hbs b/packages/create-app/templates/default-app/packages/app/package.json.hbs index b403295b09..d4db9e5885 100644 --- a/packages/create-app/templates/default-app/packages/app/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/app/package.json.hbs @@ -27,13 +27,11 @@ "@backstage/plugin-catalog-graph": "^{{version '@backstage/plugin-catalog-graph'}}", "@backstage/plugin-catalog-import": "^{{version '@backstage/plugin-catalog-import'}}", "@backstage/plugin-catalog-react": "^{{version '@backstage/plugin-catalog-react'}}", - "@backstage/plugin-github-actions": "^{{version '@backstage/plugin-github-actions'}}", "@backstage/plugin-org": "^{{version '@backstage/plugin-org'}}", "@backstage/plugin-permission-react": "^{{version '@backstage/plugin-permission-react'}}", "@backstage/plugin-scaffolder": "^{{version '@backstage/plugin-scaffolder'}}", "@backstage/plugin-search": "^{{version '@backstage/plugin-search'}}", "@backstage/plugin-search-react": "^{{version '@backstage/plugin-search-react'}}", - "@backstage/plugin-tech-radar": "^{{version '@backstage/plugin-tech-radar'}}", "@backstage/plugin-techdocs": "^{{version '@backstage/plugin-techdocs'}}", "@backstage/plugin-techdocs-module-addons-contrib": "^{{version '@backstage/plugin-techdocs-module-addons-contrib'}}", "@backstage/plugin-techdocs-react": "^{{version '@backstage/plugin-techdocs-react'}}", diff --git a/packages/create-app/templates/default-app/packages/app/src/App.tsx b/packages/create-app/templates/default-app/packages/app/src/App.tsx index f751cf6d22..e24c4689bb 100644 --- a/packages/create-app/templates/default-app/packages/app/src/App.tsx +++ b/packages/create-app/templates/default-app/packages/app/src/App.tsx @@ -13,7 +13,6 @@ import { import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; import { orgPlugin } from '@backstage/plugin-org'; import { SearchPage } from '@backstage/plugin-search'; -import { TechRadarPage } from '@backstage/plugin-tech-radar'; import { TechDocsIndexPage, techdocsPlugin, @@ -83,10 +82,6 @@ const routes = ( } /> } /> - } - /> - - - + {/* + Here you can add support for different CI/CD services, for example + using @backstage-community/plugin-github-actions as follows: + + + + */} { - it('unbreaks the test runner', () => { - const unbreaker = {} as PluginEnvironment; - expect(unbreaker).toBeTruthy(); - }); -}); diff --git a/packages/create-app/templates/default-app/packages/backend/src/types.ts b/packages/create-app/templates/default-app/packages/backend/src/types.ts deleted file mode 100644 index 9cd2c74be3..0000000000 --- a/packages/create-app/templates/default-app/packages/backend/src/types.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Logger } from 'winston'; -import { Config } from '@backstage/config'; -import { - PluginCacheManager, - PluginDatabaseManager, - PluginEndpointDiscovery, - TokenManager, - UrlReader, -} from '@backstage/backend-common'; -import { PluginTaskScheduler } from '@backstage/backend-tasks'; -import { PermissionEvaluator } from '@backstage/plugin-permission-common'; -import { IdentityApi } from '@backstage/plugin-auth-node'; - -export type PluginEnvironment = { - logger: Logger; - database: PluginDatabaseManager; - cache: PluginCacheManager; - config: Config; - reader: UrlReader; - discovery: PluginEndpointDiscovery; - tokenManager: TokenManager; - scheduler: PluginTaskScheduler; - permissions: PermissionEvaluator; - identity: IdentityApi; -}; diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index fdeaa1a203..4b29d5fc31 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/dev-utils +## 1.0.32-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-catalog-react@1.11.4-next.0 + - @backstage/app-defaults@1.5.5-next.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/integration-react@1.1.26 + ## 1.0.31 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 7946625ffa..e987314494 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/dev-utils", - "version": "1.0.31", + "version": "1.0.32-next.0", "description": "Utilities for developing Backstage plugins.", "backstage": { "role": "web-library" diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index fc0bb08cdf..4aec992020 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,14 @@ # e2e-test +## 0.2.16-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.15-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/errors@1.2.4 + ## 0.2.15 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index bc25199cb6..ae4b15aec0 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.15", + "version": "0.2.16-next.0", "private": true, "backstage": { "role": "cli" diff --git a/packages/frontend-app-api/CHANGELOG.md b/packages/frontend-app-api/CHANGELOG.md index 965c3e189d..f7d85d19cf 100644 --- a/packages/frontend-app-api/CHANGELOG.md +++ b/packages/frontend-app-api/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/frontend-app-api +## 0.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/errors@1.2.4 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + ## 0.6.4 ### Patch Changes diff --git a/packages/frontend-app-api/package.json b/packages/frontend-app-api/package.json index 07b5685a1e..c131e81b41 100644 --- a/packages/frontend-app-api/package.json +++ b/packages/frontend-app-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-app-api", - "version": "0.6.4", + "version": "0.6.5-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-plugin-api/CHANGELOG.md b/packages/frontend-plugin-api/CHANGELOG.md index 6a98ec9810..222732d4db 100644 --- a/packages/frontend-plugin-api/CHANGELOG.md +++ b/packages/frontend-plugin-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/frontend-plugin-api +## 0.6.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.14.5-next.0 + - @backstage/core-plugin-api@1.9.2 + - @backstage/types@1.1.1 + - @backstage/version-bridge@1.0.8 + ## 0.6.4 ### Patch Changes diff --git a/packages/frontend-plugin-api/package.json b/packages/frontend-plugin-api/package.json index ca56db2970..802ab13d41 100644 --- a/packages/frontend-plugin-api/package.json +++ b/packages/frontend-plugin-api/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-plugin-api", - "version": "0.6.4", + "version": "0.6.5-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/frontend-test-utils/CHANGELOG.md b/packages/frontend-test-utils/CHANGELOG.md index c35b54f728..b0f052b3ee 100644 --- a/packages/frontend-test-utils/CHANGELOG.md +++ b/packages/frontend-test-utils/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/frontend-test-utils +## 0.1.7-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/frontend-app-api@0.6.5-next.0 + - @backstage/frontend-plugin-api@0.6.5-next.0 + - @backstage/test-utils@1.5.5-next.0 + - @backstage/types@1.1.1 + ## 0.1.6 ### Patch Changes diff --git a/packages/frontend-test-utils/package.json b/packages/frontend-test-utils/package.json index d249878024..862d4c449f 100644 --- a/packages/frontend-test-utils/package.json +++ b/packages/frontend-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/frontend-test-utils", - "version": "0.1.6", + "version": "0.1.7-next.0", "backstage": { "role": "web-library" }, diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index a3af98d211..7b2646ad2b 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/repo-tools +## 0.8.1-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/cli-node@0.2.5 + - @backstage/config-loader@1.8.0 + - @backstage/errors@1.2.4 + ## 0.8.0 ### Minor Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index e3ba518ee2..5d53a9cff6 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.8.0", + "version": "0.8.1-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/repo-tools/src/commands/api-reports/api-extractor.ts b/packages/repo-tools/src/commands/api-reports/api-extractor.ts index 7e36b08b0a..6a523af6a9 100644 --- a/packages/repo-tools/src/commands/api-reports/api-extractor.ts +++ b/packages/repo-tools/src/commands/api-reports/api-extractor.ts @@ -62,7 +62,7 @@ import { IMarkdownEmitterContext } from '@microsoft/api-documenter/lib/markdown/ import { AstDeclaration } from '@microsoft/api-extractor/lib/analyzer/AstDeclaration'; import { paths as cliPaths } from '../../lib/paths'; import { minimatch } from 'minimatch'; -import { getPackageExportNames } from '../../lib/entryPoints'; +import { getPackageExportDetails } from '../../lib/getPackageExportDetails'; import { createBinRunner } from '../util'; const tmpDir = cliPaths.resolveTargetRoot( @@ -303,8 +303,15 @@ function logApiReportInstructions() { async function findPackageEntryPoints(packageDirs: string[]): Promise< Array<{ + // package dir relative to root, e.g. "packages/backend-app-api" packageDir: string; + // the name of the export, e.g. "index" or "alpha" name: string; + // the path within the dist directory for this export, e.g. "alpha.d.ts" + distPath: string; + // the path within the dist-types directory of this package for this export, + // e.g. "src/entrypoints/foo/index.d.ts" + distTypesPath: string; }> > { return Promise.all( @@ -313,12 +320,9 @@ async function findPackageEntryPoints(packageDirs: string[]): Promise< cliPaths.resolveTargetRoot(packageDir, 'package.json'), ); - return ( - getPackageExportNames(pkg)?.map(name => ({ packageDir, name })) ?? { - packageDir, - name: 'index', - } - ); + return getPackageExportDetails(pkg).map(details => { + return { packageDir, ...details }; + }); }), ).then(results => results.flat()); } @@ -344,13 +348,23 @@ export async function runApiExtraction({ }: ApiExtractionOptions) { await fs.remove(outputDir); - const packageEntryPoints = await findPackageEntryPoints(packageDirs); + // The collection of all entry points of all packages, as a single list + const allEntryPoints = await findPackageEntryPoints(packageDirs); - const entryPoints = packageEntryPoints.map(({ packageDir, name }) => { - return cliPaths.resolveTargetRoot( - `./dist-types/${packageDir}/src/${name}.d.ts`, - ); - }); + // The path (relative to the root) to ALL dist-types entry points (e.g. + // "dist-types/packages/backend-app-api/src/index.d.ts"). These are used as + // "extra"/contextual entry points for the extractor so that it can see the + // full context of things that are required by the local entry point being + // inspected. + const allDistTypesEntryPointPaths = allEntryPoints.map( + ({ packageDir, distTypesPath }) => { + return cliPaths.resolveTargetRoot( + './dist-types', + packageDir, + distTypesPath, + ); + }, + ); let compilerState: CompilerState | undefined = undefined; @@ -364,8 +378,8 @@ export async function runApiExtraction({ } const warnings = new Array(); - for (const [packageDir, group] of Object.entries( - groupBy(packageEntryPoints, ep => ep.packageDir), + for (const [packageDir, packageEntryPoints] of Object.entries( + groupBy(allEntryPoints, ep => ep.packageDir), )) { console.log(`## Processing ${packageDir}`); const noBail = Array.isArray(allowWarnings) @@ -377,7 +391,6 @@ export async function runApiExtraction({ './dist-types', packageDir, ); - const names = group.map(ep => ep.name); const remainingReportFiles = new Set( fs @@ -389,8 +402,9 @@ export async function runApiExtraction({ ), ); - for (const name of names) { - const suffix = name === 'index' ? '' : `-${name}`; + for (const packageEntryPoint of packageEntryPoints) { + const suffix = + packageEntryPoint.name === 'index' ? '' : `-${packageEntryPoint.name}`; const reportFileName = `api-report${suffix}.md`; const reportPath = resolvePath(projectFolder, reportFileName); remainingReportFiles.delete(reportFileName); @@ -401,7 +415,7 @@ export async function runApiExtraction({ configObject: { mainEntryPointFilePath: resolvePath( packageFolder, - `src/${name}.d.ts`, + packageEntryPoint.distTypesPath, ), bundledPackages: [], @@ -422,7 +436,7 @@ export async function runApiExtraction({ docModel: { // TODO(Rugvip): This skips docs for non-index entry points. We can try to work around it, but // most likely it makes sense to wait for API Extractor to natively support exports. - enabled: name === 'index', + enabled: packageEntryPoint.name === 'index', apiJsonFilePath: resolvePath( outputDir, `${suffix}.api.json`, @@ -482,7 +496,7 @@ export async function runApiExtraction({ if (!compilerState) { compilerState = CompilerState.create(extractorConfig, { - additionalEntryPoints: entryPoints, + additionalEntryPoints: allDistTypesEntryPointPaths, }); } @@ -519,18 +533,21 @@ export async function runApiExtraction({ }); // This release tag validation makes sure that the release tag of known entry points match expectations. - // The root index entrypoint is only allowed @public exports, while /alpha and /beta only allow @alpha and @beta. + // The root index entry point is only allowed @public exports, while /alpha and /beta only allow @alpha and @beta. if ( validateReleaseTags && fs.pathExistsSync(extractorConfig.reportFilePath) ) { - if (['index', 'alpha', 'beta'].includes(name)) { + if (['index', 'alpha', 'beta'].includes(packageEntryPoint.name)) { const report = await fs.readFile( extractorConfig.reportFilePath, 'utf8', ); const lines = report.split(/\r?\n/); - const expectedTag = name === 'index' ? 'public' : name; + const expectedTag = + packageEntryPoint.name === 'index' + ? 'public' + : packageEntryPoint.name; for (let i = 0; i < lines.length; i += 1) { const line = lines[i]; const match = line.match(/^\/\/ @(alpha|beta|public)/); diff --git a/packages/repo-tools/src/commands/api-reports/generateTypeDeclarations.ts b/packages/repo-tools/src/commands/api-reports/generateTypeDeclarations.ts index 58f4117bc2..43ee2aa85f 100644 --- a/packages/repo-tools/src/commands/api-reports/generateTypeDeclarations.ts +++ b/packages/repo-tools/src/commands/api-reports/generateTypeDeclarations.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import fs from 'fs-extra'; import { spawnSync } from 'child_process'; import { paths as cliPaths } from '../../lib/paths'; @@ -27,7 +28,6 @@ import { paths as cliPaths } from '../../lib/paths'; * @param tsconfigFilePath {string} The path to the `tsconfig.json` file to use for generating the declaration files. * @returns {Promise} A promise that resolves when the declaration files have been generated. */ - export async function generateTypeDeclarations(tsconfigFilePath: string) { await fs.remove(cliPaths.resolveTargetRoot('dist-types')); const { status } = spawnSync( diff --git a/packages/repo-tools/src/commands/type-deps/type-deps.ts b/packages/repo-tools/src/commands/type-deps/type-deps.ts index 17164cea39..7b75ac37ee 100644 --- a/packages/repo-tools/src/commands/type-deps/type-deps.ts +++ b/packages/repo-tools/src/commands/type-deps/type-deps.ts @@ -20,7 +20,7 @@ import { resolve as resolvePath } from 'path'; // eslint-disable-next-line @backstage/no-undeclared-imports import chalk from 'chalk'; import { getPackages, Package } from '@manypkg/get-packages'; -import { getPackageExportNames } from '../../lib/entryPoints'; +import { getPackageExportDetails } from '../../lib/getPackageExportDetails'; export default async () => { const { packages } = await getPackages(resolvePath('.')); @@ -97,11 +97,9 @@ function findAllDeps(declSrc: string) { * missing or incorrect in package.json */ function checkTypes(pkg: Package) { - const entryPointNames = getPackageExportNames(pkg.packageJson) ?? ['index']; - - const allDeps = entryPointNames.flatMap(name => { + const allDeps = getPackageExportDetails(pkg.packageJson).flatMap(exp => { const typeDecl = fs.readFileSync( - resolvePath(pkg.dir, `dist/${name}.d.ts`), + resolvePath(pkg.dir, 'dist', exp.distPath), 'utf8', ); return findAllDeps(typeDecl); diff --git a/packages/repo-tools/src/lib/entryPoints.ts b/packages/repo-tools/src/lib/entryPoints.ts deleted file mode 100644 index 4a412d410b..0000000000 --- a/packages/repo-tools/src/lib/entryPoints.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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 { extname } from 'path'; -import type { JsonObject } from '@backstage/types'; - -export function getPackageExportNames(pkg: JsonObject): string[] | undefined { - if (pkg.exports && typeof pkg.exports !== 'string') { - return Object.entries(pkg.exports).flatMap(([mount, path]) => { - const ext = extname(String(path)); - if (!['.ts', '.tsx', '.cts', '.mts'].includes(ext)) { - return []; // Ignore non-TS entry points - } - let name = mount; - if (name.startsWith('./')) { - name = name.slice(2); - } - if (!name || name === '.') { - return ['index']; - } - return [name]; - }); - } - - return undefined; -} diff --git a/packages/repo-tools/src/lib/getPackageExportDetails.ts b/packages/repo-tools/src/lib/getPackageExportDetails.ts new file mode 100644 index 0000000000..6889bb2e77 --- /dev/null +++ b/packages/repo-tools/src/lib/getPackageExportDetails.ts @@ -0,0 +1,68 @@ +/* + * 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 { extname } from 'path'; +import type { JsonObject } from '@backstage/types'; + +export function getPackageExportDetails(pkg: JsonObject): Array<{ + // the name of the export, e.g. "index" or "alpha" + name: string; + // the path within the dist directory for this export, e.g. "alpha.d.ts" + distPath: string; + // the path within the dist-types directory of this package for this export, + // e.g. "src/entrypoints/foo/index.d.ts" + distTypesPath: string; +}> { + if (pkg.exports && typeof pkg.exports !== 'string') { + return Object.entries(pkg.exports).flatMap( + ([mount, path]: [string, string]) => { + const ext = extname(path); + if (!['.ts', '.tsx', '.cts', '.mts'].includes(ext)) { + return []; // Ignore non-TS entry points + } + + let name = mount; + if (name.startsWith('./')) { + name = name.slice(2); + } + if (!name || name === '.') { + name = 'index'; + } + + const distPath = `${name}.d.ts`; + const distTypesPath = path + .replace(/^\.\//, '') // Remove leading "./" + .replace(/\.[^.]+$/, '.d.ts'); // Replace .extension with .d.ts + + return [ + { + name, + distPath, + distTypesPath, + }, + ]; + }, + ); + } + + return [ + { + name: 'index', + distPath: 'index.d.ts', + distTypesPath: 'src/index.d.ts', + }, + ]; +} diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 4f13e2c25a..5764b6e71e 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.96-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.19.1-next.0 + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/plugin-techdocs@1.10.5-next.0 + - @backstage/cli@0.26.5-next.0 + - @backstage/theme@0.5.4-next.0 + - @backstage/core-components@0.14.5-next.0 + - @backstage/plugin-techdocs-react@1.2.4-next.0 + - @backstage/app-defaults@1.5.5-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/integration-react@1.1.26 + - @backstage/test-utils@1.5.5-next.0 + ## 0.2.95 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 2a90a90246..00083edb6d 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.95", + "version": "0.2.96-next.0", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index 5f7d2d2ddc..1525b13414 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,17 @@ # @techdocs/cli +## 1.8.10-next.0 + +### Patch Changes + +- 1a0e009: Fix cookie endpoint mock for `serve` +- Updated dependencies + - @backstage/catalog-model@1.5.0-next.0 + - @backstage/backend-common@0.21.8-next.0 + - @backstage/plugin-techdocs-node@1.12.4-next.0 + - @backstage/cli-common@0.1.13 + - @backstage/config@1.2.0 + ## 1.8.9 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 7525e53afc..4edb8f47a4 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -1,7 +1,7 @@ { "name": "@techdocs/cli", "description": "Utility CLI for managing TechDocs sites in Backstage.", - "version": "1.8.9", + "version": "1.8.10-next.0", "publishConfig": { "access": "public" }, diff --git a/packages/techdocs-cli/src/lib/httpServer.ts b/packages/techdocs-cli/src/lib/httpServer.ts index 252004c7de..c38bc86d7a 100644 --- a/packages/techdocs-cli/src/lib/httpServer.ts +++ b/packages/techdocs-cli/src/lib/httpServer.ts @@ -62,7 +62,7 @@ export default class HTTPServer { // This endpoind is used by the frontend to issue a cookie for the user. // But the MkDocs server doesn't expose it as a the Backestage backend does. // So we need to fake it here to prevent 404 errors. - if (request.url === '/api/techdocs/cookie') { + if (request.url === '/api/techdocs/.backstage/auth/v1/cookie') { const oneHourInMilliseconds = 60 * 60 * 1000; const expiresAt = new Date(Date.now() + oneHourInMilliseconds); const cookie = { expiresAt: expiresAt.toISOString() }; diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index 169886aaec..d28d0cac49 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/test-utils +## 1.5.5-next.0 + +### Patch Changes + +- Updated dependencies + - @backstage/theme@0.5.4-next.0 + - @backstage/config@1.2.0 + - @backstage/core-app-api@1.12.4 + - @backstage/core-plugin-api@1.9.2 + - @backstage/types@1.1.1 + - @backstage/plugin-permission-common@0.7.13 + - @backstage/plugin-permission-react@0.4.22 + ## 1.5.4 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 70ff1206ee..2e46e3a9b0 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/test-utils", - "version": "1.5.4", + "version": "1.5.5-next.0", "description": "Utilities to test Backstage plugins and apps.", "backstage": { "role": "web-library" diff --git a/packages/theme/CHANGELOG.md b/packages/theme/CHANGELOG.md index 9f4007a2ac..20703a1d9d 100644 --- a/packages/theme/CHANGELOG.md +++ b/packages/theme/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/theme +## 0.5.4-next.0 + +### Patch Changes + +- f1462df: Fixed bug where scrollbars don't pick up the theme when in dark mode + ## 0.5.3 ### Patch Changes diff --git a/packages/theme/package.json b/packages/theme/package.json index f1c4f00d8f..07eefe756f 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/theme", - "version": "0.5.3", + "version": "0.5.4-next.0", "description": "material-ui theme for use with Backstage.", "backstage": { "role": "web-library" diff --git a/packages/theme/src/v5/defaultComponentThemes.ts b/packages/theme/src/v5/defaultComponentThemes.ts index 60caa47e90..55547a191c 100644 --- a/packages/theme/src/v5/defaultComponentThemes.ts +++ b/packages/theme/src/v5/defaultComponentThemes.ts @@ -34,6 +34,29 @@ export const defaultComponentThemes: ThemeOptions['components'] = { overscrollBehaviorY: 'none', fontSize: '0.875rem', lineHeight: 1.43, + '&::-webkit-scrollbar, & *::-webkit-scrollbar': { + backgroundColor: theme.palette.background.paper, + width: '1em', + }, + '&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb': { + borderRadius: 8, + backgroundColor: theme.palette.textVerySubtle, + border: `3px solid ${theme.palette.background.paper}`, + }, + '&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active': + { + backgroundColor: + theme.palette.mode === 'dark' + ? lighten(theme.palette.textVerySubtle, 0.2) + : darken(theme.palette.textVerySubtle, 0.2), + }, + '&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover': + { + backgroundColor: + theme.palette.mode === 'dark' + ? lighten(theme.palette.textVerySubtle, 0.2) + : darken(theme.palette.textVerySubtle, 0.2), + }, }, a: { color: 'inherit', diff --git a/plugins/README.md b/plugins/README.md index 385e71b6d2..346db0d786 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -1,6 +1,6 @@ # Plugins -Backstage is a single-page application composed of a set of plugins. This folder holds numerous plugins that are managed by this repository. +Backstage is a single-page application composed of a set of plugins. This folder holds numerous plugins that are managed by this repository. However, most plugins are [in the community plugins repo](https://github.com/backstage/community-plugins) - hop over there if you want to contribute! For more information about the plugin ecosystem, see the documentation here: @@ -10,6 +10,6 @@ You can also see the [Plugin Marketplace](https://backstage.io/plugins) for othe ## Suggesting a plugin -If you start developing a plugin that you aim to release as open source, we suggest that you create a [new Issue](https://github.com/backstage/backstage/issues/new?template=plugin_template.md). This helps the community know what plugins are in development. +If you start developing a plugin that you aim to release as open source, we suggest that you create a [new Issue on the community plugins repo](https://github.com/backstage/community-plugins/issues/new/choose). This helps the community know what plugins are in development. You can also use this process if you have an idea for a good plugin but you hope that someone else will pick up the work. diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md deleted file mode 100644 index 657da1b6b2..0000000000 --- a/plugins/adr-backend/CHANGELOG.md +++ /dev/null @@ -1,1425 +0,0 @@ -# @backstage/plugin-adr-backend - -## 0.4.14 - -### Patch Changes - -- d5a1fe1: Replaced winston logger with `LoggerService` -- Updated dependencies - - @backstage/backend-common@0.21.7 - - @backstage/backend-plugin-api@0.6.17 - - @backstage/catalog-client@1.6.4 - - @backstage/integration@1.10.0 - - @backstage/catalog-model@1.4.5 - - @backstage/config@1.2.0 - - @backstage/errors@1.2.4 - - @backstage/plugin-adr-common@0.2.22 - - @backstage/plugin-search-common@1.2.11 - -## 0.4.14-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.7-next.1 - - @backstage/backend-plugin-api@0.6.17-next.1 - - @backstage/catalog-client@1.6.4-next.0 - - @backstage/catalog-model@1.4.5 - - @backstage/config@1.2.0 - - @backstage/errors@1.2.4 - - @backstage/integration@1.10.0-next.0 - - @backstage/plugin-adr-common@0.2.22-next.0 - - @backstage/plugin-search-common@1.2.11 - -## 0.4.14-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.7-next.0 - - @backstage/integration@1.10.0-next.0 - - @backstage/backend-plugin-api@0.6.17-next.0 - - @backstage/catalog-client@1.6.3 - - @backstage/catalog-model@1.4.5 - - @backstage/config@1.2.0 - - @backstage/errors@1.2.4 - - @backstage/plugin-adr-common@0.2.22-next.0 - - @backstage/plugin-search-common@1.2.11 - -## 0.4.13 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-client@1.6.3 - - @backstage/backend-common@0.21.6 - - @backstage/backend-plugin-api@0.6.16 - - @backstage/catalog-model@1.4.5 - - @backstage/config@1.2.0 - - @backstage/errors@1.2.4 - - @backstage/integration@1.9.1 - - @backstage/plugin-adr-common@0.2.21 - - @backstage/plugin-search-common@1.2.11 - -## 0.4.12 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-client@1.6.2 - - @backstage/backend-common@0.21.5 - - @backstage/backend-plugin-api@0.6.15 - - @backstage/catalog-model@1.4.5 - - @backstage/config@1.2.0 - - @backstage/errors@1.2.4 - - @backstage/integration@1.9.1 - - @backstage/plugin-adr-common@0.2.21 - - @backstage/plugin-search-common@1.2.11 - -## 0.4.11 - -### Patch Changes - -- 334c5fe: Updated dependency `marked` to `^12.0.0`. -- c8fdd83: Migrated `DefaultAdrCollatorFactory` to support new auth services. -- Updated dependencies - - @backstage/backend-common@0.21.4 - - @backstage/integration@1.9.1 - - @backstage/config@1.2.0 - - @backstage/plugin-adr-common@0.2.21 - - @backstage/errors@1.2.4 - - @backstage/backend-plugin-api@0.6.14 - - @backstage/plugin-search-common@1.2.11 - - @backstage/catalog-client@1.6.1 - - @backstage/catalog-model@1.4.5 - -## 0.4.11-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.9.1-next.2 - - @backstage/catalog-client@1.6.1-next.1 - - @backstage/backend-common@0.21.4-next.2 - - @backstage/plugin-adr-common@0.2.21-next.2 - - @backstage/backend-plugin-api@0.6.14-next.2 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/config@1.2.0-next.1 - - @backstage/errors@1.2.4-next.0 - - @backstage/plugin-search-common@1.2.11-next.1 - -## 0.4.11-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/config@1.2.0-next.1 - - @backstage/backend-common@0.21.4-next.1 - - @backstage/backend-plugin-api@0.6.14-next.1 - - @backstage/integration@1.9.1-next.1 - - @backstage/catalog-client@1.6.1-next.0 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/errors@1.2.4-next.0 - - @backstage/plugin-adr-common@0.2.21-next.1 - - @backstage/plugin-search-common@1.2.11-next.1 - -## 0.4.10-next.0 - -### Patch Changes - -- 334c5fe: Updated dependency `marked` to `^12.0.0`. -- c8fdd83: Migrated `DefaultAdrCollatorFactory` to support new auth services. -- Updated dependencies - - @backstage/backend-common@0.21.3-next.0 - - @backstage/plugin-adr-common@0.2.21-next.0 - - @backstage/errors@1.2.4-next.0 - - @backstage/backend-plugin-api@0.6.13-next.0 - - @backstage/plugin-search-common@1.2.11-next.0 - - @backstage/catalog-client@1.6.1-next.0 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/config@1.1.2-next.0 - - @backstage/integration@1.9.1-next.0 - -## 0.4.7 - -### Patch Changes - -- b64ce5a: Updated New Backend System instructions to use default import -- 9aac2b0: Use `--cwd` as the first `yarn` argument -- Updated dependencies - - @backstage/backend-common@0.21.0 - - @backstage/backend-plugin-api@0.6.10 - - @backstage/catalog-model@1.4.4 - - @backstage/integration@1.9.0 - - @backstage/catalog-client@1.6.0 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.20 - - @backstage/plugin-search-common@1.2.10 - -## 0.4.7-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.0-next.3 - - @backstage/integration@1.9.0-next.1 - - @backstage/backend-plugin-api@0.6.10-next.3 - - @backstage/catalog-client@1.6.0-next.1 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.20-next.1 - - @backstage/plugin-search-common@1.2.10 - -## 0.4.7-next.2 - -### Patch Changes - -- 9aac2b0: Use `--cwd` as the first `yarn` argument -- Updated dependencies - - @backstage/backend-common@0.21.0-next.2 - - @backstage/backend-plugin-api@0.6.10-next.2 - - @backstage/config@1.1.1 - - @backstage/catalog-client@1.6.0-next.1 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/errors@1.2.3 - - @backstage/integration@1.9.0-next.0 - - @backstage/plugin-adr-common@0.2.20-next.0 - - @backstage/plugin-search-common@1.2.10 - -## 0.4.7-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/catalog-client@1.6.0-next.1 - - @backstage/backend-plugin-api@0.6.10-next.1 - - @backstage/backend-common@0.21.0-next.1 - - @backstage/integration@1.9.0-next.0 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.20-next.0 - - @backstage/plugin-search-common@1.2.10 - -## 0.4.7-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.0-next.0 - - @backstage/catalog-client@1.6.0-next.0 - - @backstage/backend-plugin-api@0.6.10-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/integration@1.8.0 - - @backstage/plugin-adr-common@0.2.19 - - @backstage/plugin-search-common@1.2.10 - -## 0.4.6 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/backend-common@0.20.1 - - @backstage/catalog-client@1.5.2 - - @backstage/backend-plugin-api@0.6.9 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/integration@1.8.0 - - @backstage/plugin-adr-common@0.2.19 - - @backstage/plugin-search-common@1.2.10 - -## 0.4.6-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-plugin-api@0.6.9-next.2 - - @backstage/backend-common@0.20.1-next.2 - -## 0.4.6-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.1-next.1 - - @backstage/integration@1.8.0 - - @backstage/config@1.1.1 - - @backstage/backend-plugin-api@0.6.9-next.1 - - @backstage/catalog-client@1.5.2-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.18 - - @backstage/plugin-search-common@1.2.9 - -## 0.4.6-next.0 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/backend-common@0.20.1-next.0 - - @backstage/catalog-client@1.5.2-next.0 - - @backstage/backend-plugin-api@0.6.9-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/integration@1.8.0 - - @backstage/plugin-adr-common@0.2.18 - - @backstage/plugin-search-common@1.2.9 - -## 0.4.5 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0 - - @backstage/catalog-client@1.5.0 - - @backstage/integration@1.8.0 - - @backstage/backend-plugin-api@0.6.8 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.18 - - @backstage/plugin-search-common@1.2.9 - -## 0.4.5-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0-next.3 - - @backstage/backend-plugin-api@0.6.8-next.3 - - @backstage/catalog-client@1.5.0-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/integration@1.8.0-next.1 - - @backstage/plugin-adr-common@0.2.18-next.1 - - @backstage/plugin-search-common@1.2.8 - -## 0.4.5-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0-next.2 - - @backstage/catalog-client@1.5.0-next.1 - - @backstage/backend-plugin-api@0.6.8-next.2 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/integration@1.8.0-next.1 - - @backstage/plugin-adr-common@0.2.18-next.1 - - @backstage/plugin-search-common@1.2.8 - -## 0.4.5-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-client@1.5.0-next.0 - - @backstage/integration@1.8.0-next.1 - - @backstage/backend-common@0.20.0-next.1 - - @backstage/backend-plugin-api@0.6.8-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.18-next.1 - - @backstage/plugin-search-common@1.2.8 - -## 0.4.5-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0-next.0 - - @backstage/integration@1.8.0-next.0 - - @backstage/backend-plugin-api@0.6.8-next.0 - - @backstage/catalog-client@1.4.6 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.18-next.0 - - @backstage/plugin-search-common@1.2.8 - -## 0.4.4 - -### Patch Changes - -- 68f8a55622: Updated dependency `@types/marked` to `^5.0.0`. -- Updated dependencies - - @backstage/integration@1.7.2 - - @backstage/backend-common@0.19.9 - - @backstage/backend-plugin-api@0.6.7 - - @backstage/catalog-client@1.4.6 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.17 - - @backstage/plugin-search-common@1.2.8 - -## 0.4.4-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-plugin-api@0.6.7-next.2 - - @backstage/backend-common@0.19.9-next.2 - -## 0.4.4-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.2-next.0 - - @backstage/backend-common@0.19.9-next.1 - - @backstage/plugin-adr-common@0.2.17-next.0 - - @backstage/backend-plugin-api@0.6.7-next.1 - - @backstage/catalog-client@1.4.5 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-search-common@1.2.7 - -## 0.4.4-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.9-next.0 - - @backstage/integration@1.7.1 - - @backstage/backend-plugin-api@0.6.7-next.0 - - @backstage/catalog-client@1.4.5 - - @backstage/catalog-model@1.4.3 - - @backstage/config@1.1.1 - - @backstage/errors@1.2.3 - - @backstage/plugin-adr-common@0.2.16 - - @backstage/plugin-search-common@1.2.7 - -## 0.4.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.8 - - @backstage/integration@1.7.1 - - @backstage/catalog-model@1.4.3 - - @backstage/errors@1.2.3 - - @backstage/backend-plugin-api@0.6.6 - - @backstage/plugin-adr-common@0.2.16 - - @backstage/catalog-client@1.4.5 - - @backstage/config@1.1.1 - - @backstage/plugin-search-common@1.2.7 - -## 0.4.3-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.8-next.2 - - @backstage/catalog-model@1.4.3-next.0 - - @backstage/integration@1.7.1-next.1 - - @backstage/errors@1.2.3-next.0 - - @backstage/backend-plugin-api@0.6.6-next.2 - - @backstage/catalog-client@1.4.5-next.0 - - @backstage/config@1.1.1-next.0 - - @backstage/plugin-adr-common@0.2.16-next.1 - - @backstage/plugin-search-common@1.2.7-next.0 - -## 0.4.2-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.7-next.1 - - @backstage/backend-plugin-api@0.6.5-next.1 - - @backstage/config@1.1.0 - - @backstage/catalog-client@1.4.4 - - @backstage/catalog-model@1.4.2 - - @backstage/errors@1.2.2 - - @backstage/integration@1.7.1-next.0 - - @backstage/plugin-adr-common@0.2.16-next.0 - - @backstage/plugin-search-common@1.2.6 - -## 0.4.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.1-next.0 - - @backstage/backend-common@0.19.7-next.0 - - @backstage/plugin-adr-common@0.2.16-next.0 - - @backstage/config@1.1.0 - - @backstage/backend-plugin-api@0.6.5-next.0 - - @backstage/catalog-client@1.4.4 - - @backstage/catalog-model@1.4.2 - - @backstage/errors@1.2.2 - - @backstage/plugin-search-common@1.2.6 - -## 0.4.0 - -### Minor Changes - -- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. - - For example, if you are currently importing the plugin using the following pattern: - - ```ts - import { examplePlugin } from '@backstage/plugin-example-backend'; - - backend.add(examplePlugin); - ``` - - It should be migrated to this: - - ```ts - backend.add(import('@backstage/plugin-example-backend')); - ``` - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.5 - - @backstage/config@1.1.0 - - @backstage/catalog-client@1.4.4 - - @backstage/catalog-model@1.4.2 - - @backstage/errors@1.2.2 - - @backstage/integration@1.7.0 - - @backstage/plugin-adr-common@0.2.15 - - @backstage/plugin-search-common@1.2.6 - - @backstage/backend-plugin-api@0.6.3 - -## 0.4.0-next.3 - -### Minor Changes - -- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. - - For example, if you are currently importing the plugin using the following pattern: - - ```ts - import { examplePlugin } from '@backstage/plugin-example-backend'; - - backend.add(examplePlugin); - ``` - - It should be migrated to this: - - ```ts - backend.add(import('@backstage/plugin-example-backend')); - ``` - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-client@1.4.4-next.2 - - @backstage/catalog-model@1.4.2-next.2 - - @backstage/config@1.1.0-next.2 - - @backstage/errors@1.2.2-next.0 - - @backstage/integration@1.7.0-next.3 - - @backstage/plugin-adr-common@0.2.15-next.3 - - @backstage/plugin-search-common@1.2.6-next.2 - - @backstage/backend-plugin-api@0.6.3-next.3 - - @backstage/backend-common@0.19.5-next.3 - -## 0.3.9-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/config@1.1.0-next.1 - - @backstage/backend-common@0.19.5-next.2 - - @backstage/integration@1.7.0-next.2 - - @backstage/backend-plugin-api@0.6.3-next.2 - - @backstage/catalog-model@1.4.2-next.1 - - @backstage/catalog-client@1.4.4-next.1 - - @backstage/errors@1.2.1 - - @backstage/plugin-adr-common@0.2.15-next.2 - - @backstage/plugin-search-common@1.2.6-next.1 - -## 0.3.9-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/config@1.1.0-next.0 - - @backstage/integration@1.7.0-next.1 - - @backstage/backend-common@0.19.5-next.1 - - @backstage/backend-plugin-api@0.6.3-next.1 - - @backstage/catalog-model@1.4.2-next.0 - - @backstage/plugin-adr-common@0.2.15-next.1 - - @backstage/catalog-client@1.4.4-next.0 - - @backstage/errors@1.2.1 - - @backstage/plugin-search-common@1.2.6-next.0 - -## 0.3.8-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.4-next.0 - - @backstage/integration@1.7.0-next.0 - - @backstage/backend-plugin-api@0.6.2-next.0 - - @backstage/catalog-client@1.4.3 - - @backstage/catalog-model@1.4.1 - - @backstage/config@1.0.8 - - @backstage/errors@1.2.1 - - @backstage/plugin-adr-common@0.2.14-next.0 - - @backstage/plugin-search-common@1.2.5 - -## 0.3.6 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.2 - - @backstage/backend-plugin-api@0.6.0 - - @backstage/integration@1.6.0 - - @backstage/catalog-client@1.4.3 - - @backstage/catalog-model@1.4.1 - - @backstage/config@1.0.8 - - @backstage/errors@1.2.1 - - @backstage/plugin-adr-common@0.2.12 - - @backstage/plugin-search-common@1.2.5 - -## 0.3.6-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-plugin-api@0.6.0-next.2 - - @backstage/backend-common@0.19.2-next.2 - -## 0.3.6-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.2-next.1 - - @backstage/backend-plugin-api@0.6.0-next.1 - - @backstage/integration@1.5.1 - - @backstage/catalog-client@1.4.3 - - @backstage/catalog-model@1.4.1 - - @backstage/config@1.0.8 - - @backstage/errors@1.2.1 - - @backstage/plugin-adr-common@0.2.11 - - @backstage/plugin-search-common@1.2.5 - -## 0.3.6-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.2-next.0 - - @backstage/backend-plugin-api@0.5.5-next.0 - - @backstage/catalog-client@1.4.3 - - @backstage/catalog-model@1.4.1 - - @backstage/config@1.0.8 - - @backstage/errors@1.2.1 - - @backstage/integration@1.5.1 - - @backstage/plugin-adr-common@0.2.11 - - @backstage/plugin-search-common@1.2.5 - -## 0.3.5 - -### Patch Changes - -- a8805a9a4f25: Added support for the [new backend system](https://backstage.io/docs/backend-system/) -- Updated dependencies - - @backstage/errors@1.2.1 - - @backstage/backend-common@0.19.1 - - @backstage/plugin-adr-common@0.2.11 - - @backstage/backend-plugin-api@0.5.4 - - @backstage/catalog-client@1.4.3 - - @backstage/catalog-model@1.4.1 - - @backstage/config@1.0.8 - - @backstage/integration@1.5.1 - - @backstage/plugin-search-common@1.2.5 - -## 0.3.5-next.1 - -### Patch Changes - -- a8805a9a4f25: Added support for the [new backend system](https://backstage.io/docs/backend-system/) -- Updated dependencies - - @backstage/plugin-adr-common@0.2.11-next.1 - - @backstage/backend-common@0.19.1-next.0 - - @backstage/backend-plugin-api@0.5.4-next.0 - - @backstage/catalog-client@1.4.3-next.0 - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/config@1.0.8 - - @backstage/errors@1.2.1-next.0 - - @backstage/integration@1.5.1-next.0 - - @backstage/plugin-search-common@1.2.5-next.0 - -## 0.3.5-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/errors@1.2.1-next.0 - - @backstage/backend-common@0.19.1-next.0 - - @backstage/catalog-client@1.4.3-next.0 - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/config@1.0.8 - - @backstage/integration@1.5.1-next.0 - - @backstage/plugin-adr-common@0.2.11-next.0 - - @backstage/plugin-search-common@1.2.5-next.0 - -## 0.3.4 - -### Patch Changes - -- 58524588448c: Use front matter parser for MADR v3 formatted ADRs when indexing status/date -- Updated dependencies - - @backstage/backend-common@0.19.0 - - @backstage/catalog-client@1.4.2 - - @backstage/integration@1.5.0 - - @backstage/catalog-model@1.4.0 - - @backstage/errors@1.2.0 - - @backstage/plugin-adr-common@0.2.10 - - @backstage/config@1.0.8 - - @backstage/plugin-search-common@1.2.4 - -## 0.3.4-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.0-next.2 - - @backstage/catalog-model@1.4.0-next.1 - - @backstage/catalog-client@1.4.2-next.2 - - @backstage/config@1.0.7 - - @backstage/errors@1.2.0-next.0 - - @backstage/integration@1.5.0-next.0 - - @backstage/plugin-adr-common@0.2.10-next.1 - - @backstage/plugin-search-common@1.2.4-next.0 - -## 0.3.4-next.1 - -### Patch Changes - -- 58524588448c: Use front matter parser for MADR v3 formatted ADRs when indexing status/date -- Updated dependencies - - @backstage/backend-common@0.19.0-next.1 - - @backstage/integration@1.5.0-next.0 - - @backstage/errors@1.2.0-next.0 - - @backstage/catalog-model@1.4.0-next.0 - - @backstage/plugin-adr-common@0.2.10-next.0 - - @backstage/catalog-client@1.4.2-next.1 - - @backstage/config@1.0.7 - - @backstage/plugin-search-common@1.2.4-next.0 - -## 0.3.4-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-client@1.4.2-next.0 - - @backstage/backend-common@0.18.6-next.0 - - @backstage/integration@1.4.5 - - @backstage/config@1.0.7 - - @backstage/catalog-model@1.3.0 - - @backstage/errors@1.1.5 - - @backstage/plugin-adr-common@0.2.9 - - @backstage/plugin-search-common@1.2.3 - -## 0.3.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.5 - - @backstage/integration@1.4.5 - - @backstage/catalog-client@1.4.1 - - @backstage/catalog-model@1.3.0 - - @backstage/config@1.0.7 - - @backstage/errors@1.1.5 - - @backstage/plugin-adr-common@0.2.9 - - @backstage/plugin-search-common@1.2.3 - -## 0.3.3-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.5-next.1 - - @backstage/config@1.0.7 - -## 0.3.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.5-next.0 - - @backstage/integration@1.4.5-next.0 - - @backstage/plugin-adr-common@0.2.9-next.0 - - @backstage/catalog-client@1.4.1 - - @backstage/catalog-model@1.3.0 - - @backstage/config@1.0.7 - - @backstage/errors@1.1.5 - - @backstage/plugin-search-common@1.2.3 - -## 0.3.2 - -### Patch Changes - -- 7d75f6d9b8f: chore: Improve API Reference documentation -- Updated dependencies - - @backstage/backend-common@0.18.4 - - @backstage/catalog-client@1.4.1 - - @backstage/plugin-adr-common@0.2.8 - - @backstage/catalog-model@1.3.0 - - @backstage/integration@1.4.4 - - @backstage/config@1.0.7 - - @backstage/errors@1.1.5 - - @backstage/plugin-search-common@1.2.3 - -## 0.3.2-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-adr-common@0.2.8-next.1 - - @backstage/catalog-model@1.3.0-next.0 - - @backstage/backend-common@0.18.4-next.2 - - @backstage/catalog-client@1.4.1-next.1 - - @backstage/config@1.0.7 - - @backstage/errors@1.1.5 - - @backstage/integration@1.4.4-next.0 - - @backstage/plugin-search-common@1.2.3-next.0 - -## 0.3.2-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.4-next.2 - - @backstage/catalog-client@1.4.1-next.0 - - @backstage/catalog-model@1.2.1 - - @backstage/config@1.0.7 - - @backstage/errors@1.1.5 - - @backstage/integration@1.4.4-next.0 - - @backstage/plugin-adr-common@0.2.8-next.0 - - @backstage/plugin-search-common@1.2.3-next.0 - -## 0.3.2-next.1 - -### Patch Changes - -- 7d75f6d9b8f: chore: Improve API Reference documentation -- Updated dependencies - - @backstage/integration@1.4.4-next.0 - - @backstage/backend-common@0.18.4-next.1 - - @backstage/catalog-client@1.4.0 - - @backstage/catalog-model@1.2.1 - - @backstage/config@1.0.7 - - @backstage/errors@1.1.5 - - @backstage/plugin-adr-common@0.2.8-next.0 - - @backstage/plugin-search-common@1.2.3-next.0 - -## 0.3.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.4-next.0 - - @backstage/config@1.0.7 - - @backstage/integration@1.4.3 - - @backstage/catalog-client@1.4.0 - - @backstage/catalog-model@1.2.1 - - @backstage/errors@1.1.5 - - @backstage/plugin-adr-common@0.2.7 - - @backstage/plugin-search-common@1.2.2 - -## 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 - -- 2a73ded3861: Support MADR v3 format -- Updated dependencies - - @backstage/backend-common@0.18.3-next.2 - - @backstage/config@1.0.7-next.0 - - @backstage/integration@1.4.3-next.0 - -## 0.3.1-next.1 - -### Patch Changes - -- 52b0022dab7: Updated dependency `msw` to `^1.0.0`. -- Updated dependencies - - @backstage/errors@1.1.5-next.0 - - @backstage/backend-common@0.18.3-next.1 - - @backstage/catalog-client@1.4.0-next.1 - - @backstage/integration@1.4.3-next.0 - - @backstage/config@1.0.7-next.0 - - @backstage/catalog-model@1.2.1-next.1 - - @backstage/plugin-adr-common@0.2.7-next.1 - - @backstage/plugin-search-common@1.2.2-next.0 - -## 0.3.1-next.0 - -### Patch Changes - -- 8bf24946c6: Adjust express dependencies to be the same as the rest of the project -- Updated dependencies - - @backstage/catalog-client@1.4.0-next.0 - - @backstage/backend-common@0.18.3-next.0 - - @backstage/catalog-model@1.2.1-next.0 - - @backstage/config@1.0.6 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.2 - - @backstage/plugin-adr-common@0.2.7-next.0 - - @backstage/plugin-search-common@1.2.1 - -## 0.3.0 - -### Minor Changes - -- 0a32911d8a: Display title, status and date in ADR navigation, sourced from ADR content and reverse order. - -### Patch Changes - -- c51efce2a0: Update docs to always use `yarn add --cwd` for app & backend -- Updated dependencies - - @backstage/backend-common@0.18.2 - - @backstage/catalog-model@1.2.0 - - @backstage/catalog-client@1.3.1 - - @backstage/config@1.0.6 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.2 - - @backstage/plugin-adr-common@0.2.6 - - @backstage/plugin-search-common@1.2.1 - -## 0.2.7-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.2-next.2 - - @backstage/catalog-model@1.2.0-next.1 - - @backstage/catalog-client@1.3.1-next.1 - - @backstage/config@1.0.6 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.2 - - @backstage/plugin-adr-common@0.2.6-next.1 - - @backstage/plugin-search-common@1.2.1 - -## 0.2.7-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.2-next.1 - - @backstage/catalog-client@1.3.1-next.0 - - @backstage/catalog-model@1.1.6-next.0 - - @backstage/config@1.0.6 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.2 - - @backstage/plugin-adr-common@0.2.6-next.0 - - @backstage/plugin-search-common@1.2.1 - -## 0.2.7-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.6-next.0 - - @backstage/backend-common@0.18.2-next.0 - - @backstage/catalog-client@1.3.1-next.0 - - @backstage/plugin-adr-common@0.2.6-next.0 - -## 0.2.5 - -### Patch Changes - -- aa17643a06: This plugin now exports a `createRouter` method which uses `UrlReaders` to make requests to your SCM. Please make sure you read the [install instructions](https://github.com/backstage/backstage/blob/master/plugins/adr-backend/README.md#install) -- 21ffbdd5ee: Clarify that default ADR parsers support MADR specification v2.x -- Updated dependencies - - @backstage/backend-common@0.18.0 - - @backstage/catalog-model@1.1.5 - - @backstage/catalog-client@1.3.0 - - @backstage/config@1.0.6 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.2 - - @backstage/plugin-adr-common@0.2.5 - - @backstage/plugin-search-common@1.2.1 - -## 0.2.5-next.2 - -### Patch Changes - -- e4469d0ec1: The ADR plugin can now work with sites other than GitHub. Expanded the ADR backend plugin to provide endpoints to facilitate this. - - **BREAKING** The ADR plugin now uses UrlReaders. You will have to [configure integrations](https://backstage.io/docs/integrations/index#configuration) for all sites you want to get ADRs from. If you would like to create your own implementation that has different behavior, you can override the AdrApi [just like you can with other apis.](https://backstage.io/docs/api/utility-apis#app-apis) The previously used Octokit implementation has been completely removed. - -- 21ffbdd5ee: Clarify that default ADR parsers support MADR specification v2.x -- Updated dependencies - - @backstage/backend-common@0.18.0-next.1 - - @backstage/catalog-client@1.3.0-next.2 - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/config@1.0.6-next.0 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.2-next.0 - - @backstage/plugin-adr-common@0.2.5-next.1 - - @backstage/plugin-search-common@1.2.1-next.0 - -## 0.2.5-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.0-next.0 - - @backstage/config@1.0.6-next.0 - - @backstage/catalog-client@1.3.0-next.1 - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.2-next.0 - - @backstage/plugin-adr-common@0.2.5-next.1 - - @backstage/plugin-search-common@1.2.1-next.0 - -## 0.2.5-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.0 - - @backstage/catalog-client@1.3.0-next.0 - - @backstage/backend-common@0.17.0 - - @backstage/config@1.0.5 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.1 - - @backstage/plugin-adr-common@0.2.5-next.0 - - @backstage/plugin-search-common@1.2.0 - -## 0.2.4 - -### Patch Changes - -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/catalog-client@1.2.0 - - @backstage/backend-common@0.17.0 - - @backstage/errors@1.1.4 - - @backstage/integration@1.4.1 - - @backstage/plugin-search-common@1.2.0 - - @backstage/catalog-model@1.1.4 - - @backstage/config@1.0.5 - - @backstage/plugin-adr-common@0.2.4 - -## 0.2.4-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.17.0-next.3 - - @backstage/catalog-client@1.2.0-next.1 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/config@1.0.5-next.1 - - @backstage/errors@1.1.4-next.1 - - @backstage/integration@1.4.1-next.1 - - @backstage/plugin-adr-common@0.2.4-next.3 - - @backstage/plugin-search-common@1.2.0-next.3 - -## 0.2.4-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.17.0-next.2 - - @backstage/plugin-search-common@1.2.0-next.2 - - @backstage/catalog-client@1.2.0-next.1 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/config@1.0.5-next.1 - - @backstage/errors@1.1.4-next.1 - - @backstage/integration@1.4.1-next.1 - - @backstage/plugin-adr-common@0.2.4-next.2 - -## 0.2.4-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.17.0-next.1 - - @backstage/config@1.0.5-next.1 - - @backstage/integration@1.4.1-next.1 - - @backstage/catalog-client@1.2.0-next.1 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/errors@1.1.4-next.1 - - @backstage/plugin-adr-common@0.2.4-next.1 - - @backstage/plugin-search-common@1.1.2-next.1 - -## 0.2.4-next.0 - -### Patch Changes - -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/catalog-client@1.2.0-next.0 - - @backstage/backend-common@0.16.1-next.0 - - @backstage/integration@1.4.1-next.0 - - @backstage/catalog-model@1.1.4-next.0 - - @backstage/config@1.0.5-next.0 - - @backstage/errors@1.1.4-next.0 - - @backstage/plugin-adr-common@0.2.4-next.0 - - @backstage/plugin-search-common@1.1.2-next.0 - -## 0.2.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.16.0 - - @backstage/integration@1.4.0 - - @backstage/catalog-model@1.1.3 - - @backstage/catalog-client@1.1.2 - - @backstage/config@1.0.4 - - @backstage/errors@1.1.3 - - @backstage/plugin-adr-common@0.2.3 - - @backstage/plugin-search-common@1.1.1 - -## 0.2.3-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.16.0-next.1 - - @backstage/catalog-client@1.1.2-next.0 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/config@1.0.4-next.0 - - @backstage/errors@1.1.3-next.0 - - @backstage/integration@1.4.0-next.0 - - @backstage/plugin-adr-common@0.2.3-next.0 - - @backstage/plugin-search-common@1.1.1-next.0 - -## 0.2.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.16.0-next.0 - - @backstage/integration@1.4.0-next.0 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/plugin-adr-common@0.2.3-next.0 - - @backstage/catalog-client@1.1.2-next.0 - - @backstage/config@1.0.4-next.0 - - @backstage/errors@1.1.3-next.0 - - @backstage/plugin-search-common@1.1.1-next.0 - -## 0.2.2 - -### Patch Changes - -- 8006f8a602: In order to improve the debuggability of the search indexing process, messages logged during indexing are now tagged with a `documentType` whose value corresponds to the `type` being indexed. -- Updated dependencies - - @backstage/catalog-model@1.1.2 - - @backstage/backend-common@0.15.2 - - @backstage/catalog-client@1.1.1 - - @backstage/plugin-search-common@1.1.0 - - @backstage/plugin-adr-common@0.2.2 - - @backstage/config@1.0.3 - - @backstage/errors@1.1.2 - - @backstage/integration@1.3.2 - -## 0.2.2-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.15.2-next.2 - - @backstage/plugin-search-common@1.1.0-next.2 - - @backstage/catalog-client@1.1.1-next.2 - - @backstage/catalog-model@1.1.2-next.2 - - @backstage/config@1.0.3-next.2 - - @backstage/errors@1.1.2-next.2 - - @backstage/integration@1.3.2-next.2 - - @backstage/plugin-adr-common@0.2.2-next.2 - -## 0.2.2-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-client@1.1.1-next.1 - - @backstage/backend-common@0.15.2-next.1 - - @backstage/plugin-search-common@1.1.0-next.1 - - @backstage/catalog-model@1.1.2-next.1 - - @backstage/config@1.0.3-next.1 - - @backstage/errors@1.1.2-next.1 - - @backstage/integration@1.3.2-next.1 - - @backstage/plugin-adr-common@0.2.2-next.1 - -## 0.2.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2-next.0 - - @backstage/catalog-client@1.1.1-next.0 - - @backstage/plugin-adr-common@0.2.2-next.0 - - @backstage/backend-common@0.15.2-next.0 - - @backstage/config@1.0.3-next.0 - - @backstage/errors@1.1.2-next.0 - - @backstage/integration@1.3.2-next.0 - - @backstage/plugin-search-common@1.0.2-next.0 - -## 0.2.1 - -### Patch Changes - -- b489de83b1: Continue processing subsequent entities when an error occurs in collator -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- Updated dependencies - - @backstage/backend-common@0.15.1 - - @backstage/integration@1.3.1 - - @backstage/catalog-client@1.1.0 - - @backstage/catalog-model@1.1.1 - - @backstage/config@1.0.2 - - @backstage/errors@1.1.1 - - @backstage/plugin-adr-common@0.2.1 - - @backstage/plugin-search-common@1.0.1 - -## 0.2.1-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-client@1.1.0-next.2 - - @backstage/catalog-model@1.1.1-next.0 - - @backstage/config@1.0.2-next.0 - - @backstage/errors@1.1.1-next.0 - - @backstage/integration@1.3.1-next.2 - - @backstage/backend-common@0.15.1-next.3 - - @backstage/plugin-adr-common@0.2.1-next.1 - -## 0.2.1-next.2 - -### Patch Changes - -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- Updated dependencies - - @backstage/backend-common@0.15.1-next.2 - - @backstage/integration@1.3.1-next.1 - - @backstage/catalog-client@1.0.5-next.1 - -## 0.2.1-next.1 - -### Patch Changes - -- b489de83b1: Continue processing subsequent entities when an error occurs in collator -- Updated dependencies - - @backstage/backend-common@0.15.1-next.1 - -## 0.2.1-next.0 - -### Patch Changes - -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- Updated dependencies - - @backstage/backend-common@0.15.1-next.0 - - @backstage/catalog-client@1.0.5-next.0 - - @backstage/integration@1.3.1-next.0 - - @backstage/plugin-adr-common@0.2.1-next.0 - - @backstage/plugin-search-common@1.0.1-next.0 - -## 0.2.0 - -### Minor Changes - -- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` - - BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.15.0 - - @backstage/plugin-adr-common@0.2.0 - - @backstage/integration@1.3.0 - -## 0.2.0-next.1 - -### Minor Changes - -- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` - - BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-adr-common@0.2.0-next.1 - - @backstage/backend-common@0.15.0-next.2 - -## 0.1.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.15.0-next.0 - - @backstage/integration@1.3.0-next.0 - - @backstage/plugin-adr-common@0.1.3-next.0 - -## 0.1.2 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- 4e9a90e307: Updated dependency `luxon` to `^3.0.0`. -- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`. -- Updated dependencies - - @backstage/backend-common@0.14.1 - - @backstage/catalog-model@1.1.0 - - @backstage/plugin-search-common@1.0.0 - - @backstage/integration@1.2.2 - - @backstage/catalog-client@1.0.4 - - @backstage/errors@1.1.0 - - @backstage/plugin-adr-common@0.1.2 - -## 0.1.2-next.2 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- 4e9a90e307: Updated dependency `luxon` to `^3.0.0`. -- Updated dependencies - - @backstage/backend-common@0.14.1-next.3 - - @backstage/catalog-client@1.0.4-next.2 - - @backstage/integration@1.2.2-next.3 - - @backstage/catalog-model@1.1.0-next.3 - -## 0.1.2-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.0-next.1 - - @backstage/backend-common@0.14.1-next.1 - - @backstage/errors@1.1.0-next.0 - - @backstage/catalog-client@1.0.4-next.1 - - @backstage/integration@1.2.2-next.1 - - @backstage/plugin-adr-common@0.1.2-next.1 - - @backstage/plugin-search-common@0.3.6-next.0 - -## 0.1.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.14.1-next.0 - - @backstage/catalog-model@1.1.0-next.0 - - @backstage/integration@1.2.2-next.0 - - @backstage/catalog-client@1.0.4-next.0 - - @backstage/plugin-adr-common@0.1.2-next.0 - -## 0.1.1 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/plugin-search-common@0.3.5 - - @backstage/backend-common@0.14.0 - - @backstage/integration@1.2.1 - - @backstage/catalog-client@1.0.3 - - @backstage/catalog-model@1.0.3 - - @backstage/plugin-adr-common@0.1.1 - -## 0.1.1-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-search-common@0.3.5-next.1 - - @backstage/backend-common@0.14.0-next.2 - - @backstage/integration@1.2.1-next.2 - -## 0.1.1-next.1 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/backend-common@0.13.6-next.1 - - @backstage/catalog-client@1.0.3-next.0 - - @backstage/integration@1.2.1-next.1 - - @backstage/catalog-model@1.0.3-next.0 - - @backstage/plugin-search-common@0.3.5-next.0 - - @backstage/plugin-adr-common@0.1.1-next.1 - -## 0.1.1-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.6-next.0 - - @backstage/integration@1.2.1-next.0 - - @backstage/plugin-adr-common@0.1.1-next.0 - -## 0.1.0 - -### Minor Changes - -- e73075a301: Implement ADR plugin - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.3 - - @backstage/plugin-adr-common@0.1.0 - - @backstage/integration@1.2.0 - - @backstage/config@1.0.1 - - @backstage/plugin-search-common@0.3.4 - - @backstage/catalog-client@1.0.2 - - @backstage/catalog-model@1.0.2 - -## 0.1.0-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.3-next.2 - - @backstage/config@1.0.1-next.0 - - @backstage/plugin-search-common@0.3.4-next.0 - - @backstage/catalog-model@1.0.2-next.0 - - @backstage/integration@1.2.0-next.1 - - @backstage/plugin-adr-common@0.1.0-next.1 - - @backstage/catalog-client@1.0.2-next.0 - -## 0.1.0-next.0 - -### Minor Changes - -- e73075a301: Implement ADR plugin - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-adr-common@0.1.0-next.0 - - @backstage/backend-common@0.13.3-next.1 diff --git a/plugins/adr-backend/README.md b/plugins/adr-backend/README.md deleted file mode 100644 index 81dd865846..0000000000 --- a/plugins/adr-backend/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Deprecated - -This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-adr-backend` instead. diff --git a/plugins/adr-backend/api-report.md b/plugins/adr-backend/api-report.md deleted file mode 100644 index bd8859fe69..0000000000 --- a/plugins/adr-backend/api-report.md +++ /dev/null @@ -1,87 +0,0 @@ -## API Report File for "@backstage/plugin-adr-backend" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -/// - -import { AdrDocument } from '@backstage/plugin-adr-common'; -import { AdrFilePathFilterFn } from '@backstage/plugin-adr-common'; -import { AuthService } from '@backstage/backend-plugin-api'; -import { BackendFeature } from '@backstage/backend-plugin-api'; -import { CacheClient } from '@backstage/backend-common'; -import { CatalogApi } from '@backstage/catalog-client'; -import { Config } from '@backstage/config'; -import { DocumentCollatorFactory } from '@backstage/plugin-search-common'; -import { Entity } from '@backstage/catalog-model'; -import express from 'express'; -import { LoggerService } from '@backstage/backend-plugin-api'; -import { PluginCacheManager } from '@backstage/backend-common'; -import { PluginEndpointDiscovery } from '@backstage/backend-common'; -import { Readable } from 'stream'; -import { TokenManager } from '@backstage/backend-common'; -import { UrlReader } from '@backstage/backend-common'; - -// @public -export type AdrCollatorFactoryOptions = { - adrFilePathFilterFn?: AdrFilePathFilterFn; - cache: PluginCacheManager; - config: Config; - catalogClient?: CatalogApi; - discovery: PluginEndpointDiscovery; - logger: LoggerService; - parser?: AdrParser; - reader: UrlReader; - tokenManager: TokenManager; - auth?: AuthService; -}; - -// @public -export type AdrParser = (ctx: AdrParserContext) => Promise; - -// @public -export type AdrParserContext = { - entity: Entity; - content: string; - path: string; -}; - -// @public -const adrPlugin: () => BackendFeature; -export default adrPlugin; - -// @public (undocumented) -export type AdrRouterOptions = { - reader: UrlReader; - cacheClient: CacheClient; - logger: LoggerService; -}; - -// @public -export const createMadrParser: (options?: MadrParserOptions) => AdrParser; - -// @public (undocumented) -export function createRouter( - options: AdrRouterOptions, -): Promise; - -// @public -export class DefaultAdrCollatorFactory implements DocumentCollatorFactory { - // (undocumented) - execute(): AsyncGenerator; - // (undocumented) - static fromConfig( - options: AdrCollatorFactoryOptions, - ): DefaultAdrCollatorFactory; - // (undocumented) - getCollator(): Promise; - // (undocumented) - readonly type: string; -} - -// @public -export type MadrParserOptions = { - locationTemplate?: string; - dateFormat?: string; -}; -``` diff --git a/plugins/adr-backend/catalog-info.yaml b/plugins/adr-backend/catalog-info.yaml deleted file mode 100644 index 9bd35f2722..0000000000 --- a/plugins/adr-backend/catalog-info.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: backstage-plugin-adr-backend - title: '@backstage/plugin-adr-backend' -spec: - lifecycle: experimental - type: backstage-backend-plugin - owner: kuangp diff --git a/plugins/adr-backend/knip-report.md b/plugins/adr-backend/knip-report.md deleted file mode 100644 index 2aaf4dcd0e..0000000000 --- a/plugins/adr-backend/knip-report.md +++ /dev/null @@ -1,9 +0,0 @@ -# Knip report - -## Unused dependencies (2) - -| Name | Location | Severity | -| :--------- | :----------- | :------- | -| node-fetch | package.json | error | -| yn | package.json | error | - diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json deleted file mode 100644 index 4974fe4d4b..0000000000 --- a/plugins/adr-backend/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "@backstage/plugin-adr-backend", - "version": "0.4.14", - "backstage": { - "role": "backend-plugin", - "moved": "@backstage-community/plugin-adr-backend" - }, - "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/adr-backend" - }, - "license": "Apache-2.0", - "main": "src/index.ts", - "types": "src/index.ts", - "files": [ - "dist" - ], - "scripts": { - "build": "backstage-cli package build", - "clean": "backstage-cli package clean", - "lint": "backstage-cli package lint", - "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack", - "start": "backstage-cli package start", - "test": "backstage-cli package test" - }, - "dependencies": { - "@backstage/backend-common": "workspace:^", - "@backstage/backend-plugin-api": "workspace:^", - "@backstage/catalog-client": "workspace:^", - "@backstage/catalog-model": "workspace:^", - "@backstage/config": "workspace:^", - "@backstage/errors": "workspace:^", - "@backstage/integration": "workspace:^", - "@backstage/plugin-adr-common": "workspace:^", - "@backstage/plugin-search-common": "workspace:^", - "@types/express": "^4.17.6", - "express": "^4.17.1", - "express-promise-router": "^4.1.0", - "luxon": "^3.0.0", - "marked": "^12.0.0", - "node-fetch": "^2.6.5", - "yn": "^4.0.0" - }, - "devDependencies": { - "@backstage/cli": "workspace:^", - "@types/supertest": "^2.0.8", - "supertest": "^6.1.3" - }, - "deprecated": "This package has been moved to the backstage/community-plugins repository. You should migrate to using @backstage-community/plugin-adr-backend instead." -} diff --git a/plugins/adr-backend/src/index.ts b/plugins/adr-backend/src/index.ts deleted file mode 100644 index a2a9788dcb..0000000000 --- a/plugins/adr-backend/src/index.ts +++ /dev/null @@ -1,25 +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. - */ - -/** - * Architecture Decision Records backend plugin. - * - * @packageDocumentation - */ - -export * from './search'; -export * from './service'; -export { adrPlugin as default } from './plugin'; diff --git a/plugins/adr-backend/src/plugin.ts b/plugins/adr-backend/src/plugin.ts deleted file mode 100644 index bf5c69047f..0000000000 --- a/plugins/adr-backend/src/plugin.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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 { - coreServices, - createBackendPlugin, -} from '@backstage/backend-plugin-api'; -import { createRouter } from './service/router'; - -/** - * ADR backend plugin - * - * @public - */ -export const adrPlugin = createBackendPlugin({ - pluginId: 'adr', - register(env) { - env.registerInit({ - deps: { - logger: coreServices.logger, - reader: coreServices.urlReader, - cache: coreServices.cache, - httpRouter: coreServices.httpRouter, - }, - async init({ httpRouter, logger, reader, cache }) { - httpRouter.use( - await createRouter({ - logger, - reader, - cacheClient: cache, - }), - ); - }, - }); - }, -}); diff --git a/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts b/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts deleted file mode 100644 index 5e1c81220d..0000000000 --- a/plugins/adr-backend/src/search/DefaultAdrCollatorFactory.ts +++ /dev/null @@ -1,228 +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 { Readable } from 'stream'; -import { - CacheClient, - createLegacyAuthAdapters, - PluginCacheManager, - PluginEndpointDiscovery, - TokenManager, - UrlReader, -} from '@backstage/backend-common'; -import { - CATALOG_FILTER_EXISTS, - CatalogApi, - CatalogClient, -} from '@backstage/catalog-client'; -import { stringifyEntityRef } from '@backstage/catalog-model'; -import { Config } from '@backstage/config'; -import { NotModifiedError, stringifyError } from '@backstage/errors'; -import { - ScmIntegrationRegistry, - ScmIntegrations, -} from '@backstage/integration'; -import { - AdrDocument, - AdrFilePathFilterFn, - ANNOTATION_ADR_LOCATION, - getAdrLocationUrl, - madrFilePathFilter, -} from '@backstage/plugin-adr-common'; -import { DocumentCollatorFactory } from '@backstage/plugin-search-common'; - -import { createMadrParser } from './createMadrParser'; -import { AdrParser } from './types'; -import { AuthService, LoggerService } from '@backstage/backend-plugin-api'; - -/** - * Options to configure the AdrCollatorFactory - * @public - */ -export type AdrCollatorFactoryOptions = { - /** - * Function used to filter ADR file paths. - * Defaults to filtering paths following MADR filename format. - */ - adrFilePathFilterFn?: AdrFilePathFilterFn; - /** - * Plugin cache manager - */ - cache: PluginCacheManager; - /** - * App Config - */ - config: Config; - /** - * Catalog API client. Defaults to CatalogClient. - */ - catalogClient?: CatalogApi; - /** - * Plugin Endpoint Discovery client - */ - discovery: PluginEndpointDiscovery; - /** - * Logger - */ - logger: LoggerService; - /** - * ADR content parser. Defaults to built in MADR parser. - */ - parser?: AdrParser; - /** - * URL Reader - */ - reader: UrlReader; - /** - * Token Manager - */ - tokenManager: TokenManager; - /** - * Auth Service - */ - auth?: AuthService; -}; - -/** - * Default collator to index ADR documents for Backstage search. - * @public - */ -export class DefaultAdrCollatorFactory implements DocumentCollatorFactory { - public readonly type: string = 'adr'; - private readonly adrFilePathFilterFn: AdrFilePathFilterFn; - private readonly cacheClient: CacheClient; - private readonly catalogClient: CatalogApi; - private readonly logger: LoggerService; - private readonly parser: AdrParser; - private readonly reader: UrlReader; - private readonly auth: AuthService; - private readonly scmIntegrations: ScmIntegrationRegistry; - - private constructor(options: AdrCollatorFactoryOptions) { - this.adrFilePathFilterFn = - options.adrFilePathFilterFn ?? madrFilePathFilter; - this.cacheClient = options.cache.getClient(); - this.catalogClient = - options.catalogClient ?? - new CatalogClient({ discoveryApi: options.discovery }); - this.logger = options.logger.child({ documentType: this.type }); - this.parser = options.parser ?? createMadrParser(); - this.reader = options.reader; - this.scmIntegrations = ScmIntegrations.fromConfig(options.config); - - this.auth = createLegacyAuthAdapters(options).auth; - } - - static fromConfig(options: AdrCollatorFactoryOptions) { - return new DefaultAdrCollatorFactory(options); - } - - async getCollator() { - return Readable.from(this.execute()); - } - - async *execute(): AsyncGenerator { - const { token } = await this.auth.getPluginRequestToken({ - onBehalfOf: await this.auth.getOwnServiceCredentials(), - targetPluginId: 'catalog', - }); - - const entities = ( - await this.catalogClient.getEntities( - { - filter: { - [`metadata.annotations.${ANNOTATION_ADR_LOCATION}`]: - CATALOG_FILTER_EXISTS, - }, - fields: [ - 'kind', - 'metadata.annotations', - 'metadata.name', - 'metadata.namespace', - 'metadata.title', - ], - }, - { token }, - ) - ).items; - - for (const ent of entities) { - let adrsUrl: string; - try { - adrsUrl = getAdrLocationUrl(ent, this.scmIntegrations); - } catch (e: any) { - this.logger.error( - `Unable to get ADR location URL for ${stringifyEntityRef( - ent, - )}: ${stringifyError(e)}`, - ); - continue; - } - - const cacheItem = (await this.cacheClient.get(adrsUrl)) as { - adrFiles: { - path: string; - content: string; - }[]; - etag: string; - }; - - let adrFiles = cacheItem?.adrFiles; - try { - const tree = await this.reader.readTree(adrsUrl, { - etag: cacheItem?.etag, - filter: filePath => this.adrFilePathFilterFn(filePath), - }); - - adrFiles = await Promise.all( - ( - await tree.files() - ).map(async f => ({ - path: f.path, - content: (await f.content()).toString('utf8'), - })), - ); - - await this.cacheClient.set(adrsUrl, { adrFiles, etag: tree.etag }); - } catch (error: any) { - // Ignore error if we're able to use cached response - if (!cacheItem || error.name !== NotModifiedError.name) { - this.logger.error( - `Unable to fetch ADRs from ${adrsUrl}: ${stringifyError(error)}`, - ); - continue; - } - } - - for (const { content, path } of adrFiles) { - try { - const adrDoc = await this.parser({ - entity: ent, - path, - content, - }); - yield adrDoc; - } catch (e: any) { - this.logger.error( - `Unable to parse ADR ${path}: ${stringifyError(e)}`, - ); - } - } - - this.logger.info(`Indexed ${adrFiles.length} ADRs from ${adrsUrl}`); - } - } -} diff --git a/plugins/adr-backend/src/search/createMadrParser.ts b/plugins/adr-backend/src/search/createMadrParser.ts deleted file mode 100644 index 1bc3c852e9..0000000000 --- a/plugins/adr-backend/src/search/createMadrParser.ts +++ /dev/null @@ -1,83 +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 { stringifyEntityRef } from '@backstage/catalog-model'; -import { MADR_DATE_FORMAT } from '@backstage/plugin-adr-common'; - -import { AdrParser } from './types'; -import { madrParser } from './madrParser'; - -const applyArgsToFormat = ( - format: string, - args: Record, -): string => { - let formatted = format; - for (const [key, value] of Object.entries(args)) { - formatted = formatted.replace(`:${key}`, value); - } - return formatted.toLowerCase(); -}; - -const DEFAULT_LOCATION_TEMPLATE = - '/catalog/:namespace/:kind/:name/adrs?record=:record'; - -/** - * - * Options for the default MADR content parser - * @public - */ -export type MadrParserOptions = { - /** - * Location template for the route of the frontend plugin - * Defaults to '/catalog/:namespace/:kind/:name/adrs?record=:record' - */ - locationTemplate?: string; - /** - * luxon DateTime format string to parse ADR dates with. - * Defaults to 'yyyy-MM-dd' - */ - dateFormat?: string; -}; - -/** - * Default content parser for ADRs following the MADR template (https://adr.github.io/madr/) - * @public - */ -export const createMadrParser = ( - options: MadrParserOptions = {}, -): AdrParser => { - const locationTemplate = - options.locationTemplate ?? DEFAULT_LOCATION_TEMPLATE; - const dateFormat = options.dateFormat ?? MADR_DATE_FORMAT; - - return async ({ entity, content, path }) => { - const madr = madrParser(content, dateFormat); - return { - title: madr.title ?? path.replace(/\.md$/, ''), - text: content, - status: madr.status, - date: madr.date, - entityRef: stringifyEntityRef(entity), - entityTitle: entity.metadata.title, - location: applyArgsToFormat(locationTemplate, { - namespace: entity.metadata.namespace || 'default', - kind: entity.kind, - name: entity.metadata.name, - record: path, - }), - }; - }; -}; diff --git a/plugins/adr-backend/src/search/index.ts b/plugins/adr-backend/src/search/index.ts deleted file mode 100644 index 33f14631ec..0000000000 --- a/plugins/adr-backend/src/search/index.ts +++ /dev/null @@ -1,19 +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. - */ - -export * from './DefaultAdrCollatorFactory'; -export * from './createMadrParser'; -export * from './types'; diff --git a/plugins/adr-backend/src/search/madrParser.ts b/plugins/adr-backend/src/search/madrParser.ts deleted file mode 100644 index bb466d13c3..0000000000 --- a/plugins/adr-backend/src/search/madrParser.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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 { DateTime } from 'luxon'; -import { marked, Tokens, TokensList } from 'marked'; -import { - MADR_DATE_FORMAT, - parseMadrWithFrontmatter, -} from '@backstage/plugin-adr-common'; - -const getTitle = (tokens: TokensList): string | undefined => { - return ( - tokens.find(t => t.type === 'heading' && t.depth === 1) as Tokens.Heading - )?.text; -}; - -const getStatusForV2Format = (tokens: TokensList): string | undefined => - (tokens.find(t => t.type === 'list') as Tokens.List)?.items - ?.find(t => /^status:/i.test(t.text)) - ?.text.replace(/^status:/i, '') - .trim() - .toLocaleLowerCase('en-US'); - -const getDateForV2Format = (tokens: TokensList): string | undefined => { - const listTokens = (tokens.find(t => t.type === 'list') as Tokens.List) - ?.items; - const adrDateTime = listTokens - ?.find(t => /^date:/i.test(t.text)) - ?.text.replace(/^date:/i, '') - .trim(); - return adrDateTime; -}; - -const getStatus = ( - tokens: TokensList, - frontMatterStatus?: string, -): string | undefined => { - return frontMatterStatus ?? getStatusForV2Format(tokens); -}; -const getDate = ( - tokens: TokensList, - dateFormat: string, - frontMatterDate?: string, -): string | undefined => { - const dateString = frontMatterDate ?? getDateForV2Format(tokens); - if (!dateString) { - return undefined; - } - const date = DateTime.fromFormat(dateString, dateFormat); - return date?.isValid ? date.toFormat(MADR_DATE_FORMAT) : undefined; -}; - -export const madrParser = (content: string, dateFormat = MADR_DATE_FORMAT) => { - const preparsed = parseMadrWithFrontmatter(content); - const tokens = marked.lexer(preparsed.content); - if (!tokens.length) { - throw new Error('ADR has no content'); - } - - return { - title: getTitle(tokens), - status: getStatus(tokens, preparsed.status), - date: getDate(tokens, dateFormat, preparsed.date), - }; -}; diff --git a/plugins/adr-backend/src/search/types.ts b/plugins/adr-backend/src/search/types.ts deleted file mode 100644 index 8ac47d5c8b..0000000000 --- a/plugins/adr-backend/src/search/types.ts +++ /dev/null @@ -1,43 +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 { Entity } from '@backstage/catalog-model'; -import { AdrDocument } from '@backstage/plugin-adr-common'; - -/** - * Context passed to a AdrParser. - * @public - */ -export type AdrParserContext = { - /** - * The entity associated with the ADR. - */ - entity: Entity; - /** - * The ADR content string. - */ - content: string; - /** - * The ADR file path. - */ - path: string; -}; - -/** - * ADR parser function type. - * @public - */ -export type AdrParser = (ctx: AdrParserContext) => Promise; diff --git a/plugins/adr-backend/src/service/index.ts b/plugins/adr-backend/src/service/index.ts deleted file mode 100644 index 3736acb188..0000000000 --- a/plugins/adr-backend/src/service/index.ts +++ /dev/null @@ -1,18 +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. - */ - -export { createRouter } from './router'; -export type { AdrRouterOptions } from './router'; diff --git a/plugins/adr-backend/src/service/router.test.ts b/plugins/adr-backend/src/service/router.test.ts deleted file mode 100644 index f79b3e8edb..0000000000 --- a/plugins/adr-backend/src/service/router.test.ts +++ /dev/null @@ -1,231 +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 { - CacheClient, - ReadTreeResponse, - ReadTreeResponseFile, - ReadUrlResponse, - UrlReader, -} from '@backstage/backend-common'; -import express from 'express'; -import request from 'supertest'; -import { createRouter } from './router'; -import { LoggerService } from '@backstage/backend-plugin-api'; - -const listEndpointName = '/list'; -const fileEndpointName = '/file'; - -const makeBufferFromString = (string: string) => async () => - Buffer.from(string); - -const testingUrlFakeFileTree: ReadTreeResponseFile[] = [ - { - path: 'folder/testFile001.txt', - content: makeBufferFromString('folder/testFile001.txt content'), - }, - { - path: 'testFile001.txt', - content: makeBufferFromString('testFile002.txt content'), - }, - { - path: 'testFile002.txt', - content: makeBufferFromString('testFile001.txt content'), - }, -]; - -const makeFileContent = async (fileContent: string) => { - const result: ReadUrlResponse = { - buffer: makeBufferFromString(fileContent), - }; - return result; -}; - -const testFileOneContent = 'testFileOne content'; -const testFileTwoContent = 'testFileTwo content'; -const genericFileContent = 'file content'; - -const mockUrlReader: UrlReader = { - readUrl(url: string) { - switch (url) { - case 'testFileOne': - return makeFileContent(testFileOneContent); - case 'testFileTwo': - return makeFileContent(testFileTwoContent); - default: - return makeFileContent(genericFileContent); - } - }, - readTree() { - const result: ReadTreeResponse = { - files: async () => testingUrlFakeFileTree, - archive() { - throw new Error('Function not implemented.'); - }, - dir() { - throw new Error('Function not implemented.'); - }, - etag: '', - }; - - const resultPromise = async () => result; - return resultPromise(); - }, - search() { - throw new Error('search not implemented.'); - }, -}; - -class MockCacheClient implements CacheClient { - private itemRegistry: { [key: string]: any }; - - constructor() { - this.itemRegistry = {}; - } - - async get(key: string) { - return this.itemRegistry[key]; - } - - async set(key: string, value: any) { - this.itemRegistry[key] = value; - } - - async delete(key: string) { - delete this.itemRegistry[key]; - } - - withOptions = () => this; -} - -describe('createRouter', () => { - let app: express.Express; - - beforeEach(async () => { - jest.resetAllMocks(); - - const router = await createRouter({ - reader: mockUrlReader, - cacheClient: new MockCacheClient(), - logger: { - error: (message: any) => message, - } as LoggerService, - }); - app = express().use(router); - }); - - describe(`GET ${listEndpointName}`, () => { - it('returns bad request (400) when no url is provided', async () => { - const urlNotSpecifiedRequest = await request(app).get(listEndpointName); - const urlNotSpecifiedStatus = urlNotSpecifiedRequest.status; - const urlNotSpecifiedMessage = urlNotSpecifiedRequest.body.message; - - const urlNotFilledRequest = await request(app).get( - `${listEndpointName}?url=`, - ); - const urlNotFilledStatus = urlNotFilledRequest.status; - const urlNotFilledMessage = urlNotFilledRequest.body.message; - - const expectedStatusCode = 400; - const expectedErrorMessage = 'No URL provided'; - - expect(urlNotSpecifiedStatus).toBe(expectedStatusCode); - expect(urlNotSpecifiedMessage).toBe(expectedErrorMessage); - - expect(urlNotFilledStatus).toBe(expectedStatusCode); - expect(urlNotFilledMessage).toBe(expectedErrorMessage); - }); - - it('returns the correct listing when reading a url', async () => { - const result = await request(app).get(`${listEndpointName}?url=testing`); - const { status, body, error } = result; - - const expectedStatusCode = 200; - const expectedBody = { - data: [ - { - type: 'file', - name: 'testFile002.txt', - path: 'testFile002.txt', - }, - { - type: 'file', - name: 'testFile001.txt', - path: 'testFile001.txt', - }, - { - type: 'file', - name: 'testFile001.txt', - path: 'folder/testFile001.txt', - }, - ], - }; - - expect(error).toBeFalsy(); - expect(status).toBe(expectedStatusCode); - expect(body).toEqual(expectedBody); - }); - }); - - describe(`GET ${fileEndpointName}`, () => { - it('returns bad request (400) when no url is provided', async () => { - const urlNotSpecifiedRequest = await request(app).get(fileEndpointName); - const urlNotSpecifiedStatus = urlNotSpecifiedRequest.status; - const urlNotSpecifiedMessage = urlNotSpecifiedRequest.body.message; - - const urlNotFilledRequest = await request(app).get( - `${fileEndpointName}?url=`, - ); - const urlNotFilledStatus = urlNotFilledRequest.status; - const urlNotFilledMessage = urlNotFilledRequest.body.message; - - const expectedStatusCode = 400; - const expectedErrorMessage = 'No URL provided'; - - expect(urlNotSpecifiedStatus).toBe(expectedStatusCode); - expect(urlNotSpecifiedMessage).toBe(expectedErrorMessage); - - expect(urlNotFilledStatus).toBe(expectedStatusCode); - expect(urlNotFilledMessage).toBe(expectedErrorMessage); - }); - - it('returns the correct file contents when reading a url', async () => { - const fileOneResponse = await request(app).get( - `${fileEndpointName}?url=testFileOne`, - ); - const fileOneStatus = fileOneResponse.status; - const fileOneBody = fileOneResponse.body; - const fileOneError = fileOneResponse.error; - - const fileTwoResponse = await request(app).get( - `${fileEndpointName}?url=testFileTwo`, - ); - const fileTwoStatus = fileTwoResponse.status; - const fileTwoBody = fileTwoResponse.body; - const fileTwoError = fileTwoResponse.error; - - const expectedStatusCode = 200; - - expect(fileOneError).toBeFalsy(); - expect(fileOneStatus).toBe(expectedStatusCode); - expect(fileOneBody.data).toBe(testFileOneContent); - - expect(fileTwoError).toBeFalsy(); - expect(fileTwoStatus).toBe(expectedStatusCode); - expect(fileTwoBody.data).toBe(testFileTwoContent); - }); - }); -}); diff --git a/plugins/adr-backend/src/service/router.ts b/plugins/adr-backend/src/service/router.ts deleted file mode 100644 index ab0a8afbcb..0000000000 --- a/plugins/adr-backend/src/service/router.ts +++ /dev/null @@ -1,137 +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 { CacheClient, UrlReader } from '@backstage/backend-common'; -import { NotModifiedError, stringifyError } from '@backstage/errors'; -import express from 'express'; -import Router from 'express-promise-router'; -import { madrParser } from '../search/madrParser'; -import { LoggerService } from '@backstage/backend-plugin-api'; - -/** @public */ -export type AdrRouterOptions = { - reader: UrlReader; - cacheClient: CacheClient; - logger: LoggerService; -}; - -/** @public */ -export async function createRouter( - options: AdrRouterOptions, -): Promise { - const { reader, cacheClient, logger } = options; - - const router = Router(); - router.use(express.json()); - - router.get('/list', async (req, res) => { - const urlToProcess = req.query.url as string; - if (!urlToProcess) { - res.statusCode = 400; - res.json({ message: 'No URL provided' }); - return; - } - - const cachedTree = (await cacheClient.get(urlToProcess)) as { - data: { - type: string; - name: string; - path: string; - }[]; - etag: string; - }; - const cachedData = cachedTree?.data; - - try { - const treeGetResponse = await reader.readTree(urlToProcess, { - etag: cachedTree?.etag, - }); - const files = await treeGetResponse.files(); - const data = await Promise.all( - files - .map(async file => { - const fileContent = await file.content(); - const adrInfo = madrParser(fileContent.toString()); - return { - type: 'file', - name: file.path.substring(file.path.lastIndexOf('/') + 1), - path: file.path, - ...adrInfo, - }; - }) - .reverse(), - ); - - await cacheClient.set(urlToProcess, { - data, - etag: treeGetResponse.etag, - }); - - res.json({ data }); - } catch (error: any) { - if (cachedData && error.name === NotModifiedError.name) { - res.json({ data: cachedData }); - return; - } - - const message = stringifyError(error); - logger.error(`Unable to fetch ADRs from ${urlToProcess}: ${message}`); - res.statusCode = 500; - res.json({ message }); - } - }); - - router.get('/file', async (req, res) => { - const urlToProcess = req.query.url as string; - if (!urlToProcess) { - res.statusCode = 400; - res.json({ message: 'No URL provided' }); - return; - } - - const cachedFileContent = (await cacheClient.get(urlToProcess)) as { - data: string; - etag: string; - }; - - try { - const fileGetResponse = await reader.readUrl(urlToProcess, { - etag: cachedFileContent?.etag, - }); - const fileBuffer = await fileGetResponse.buffer(); - const data = fileBuffer.toString(); - - await cacheClient.set(urlToProcess, { - data, - etag: fileGetResponse.etag, - }); - - res.json({ data }); - } catch (error) { - if (cachedFileContent && error.name === NotModifiedError.name) { - res.json({ data: cachedFileContent.data }); - return; - } - - const message = stringifyError(error); - logger.error(`Unable to fetch ADRs from ${urlToProcess}: ${message}`); - res.statusCode = 500; - res.json({ message }); - } - }); - - return router; -} diff --git a/plugins/adr-common/CHANGELOG.md b/plugins/adr-common/CHANGELOG.md deleted file mode 100644 index 61a608b1d0..0000000000 --- a/plugins/adr-common/CHANGELOG.md +++ /dev/null @@ -1,636 +0,0 @@ -# @backstage/plugin-adr-common - -## 0.2.22 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.10.0 - - @backstage/catalog-model@1.4.5 - - @backstage/plugin-search-common@1.2.11 - -## 0.2.22-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.10.0-next.0 - - @backstage/catalog-model@1.4.5 - - @backstage/plugin-search-common@1.2.11 - -## 0.2.21 - -### Patch Changes - -- 5335634: Fixed Azure DevOps ADR file path reading -- Updated dependencies - - @backstage/integration@1.9.1 - - @backstage/plugin-search-common@1.2.11 - - @backstage/catalog-model@1.4.5 - -## 0.2.21-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.9.1-next.2 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/plugin-search-common@1.2.11-next.1 - -## 0.2.21-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.9.1-next.1 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/plugin-search-common@1.2.11-next.1 - -## 0.2.21-next.0 - -### Patch Changes - -- 5335634: Fixed Azure DevOps ADR file path reading -- Updated dependencies - - @backstage/plugin-search-common@1.2.11-next.0 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/integration@1.9.1-next.0 - -## 0.2.20 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.4.4 - - @backstage/integration@1.9.0 - - @backstage/plugin-search-common@1.2.10 - -## 0.2.20-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.9.0-next.1 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/plugin-search-common@1.2.10 - -## 0.2.20-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/integration@1.9.0-next.0 - - @backstage/plugin-search-common@1.2.10 - -## 0.2.19 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.4.3 - - @backstage/integration@1.8.0 - - @backstage/plugin-search-common@1.2.10 - -## 0.2.18 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.8.0 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-search-common@1.2.9 - -## 0.2.18-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.8.0-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-search-common@1.2.8 - -## 0.2.18-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.8.0-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-search-common@1.2.8 - -## 0.2.17 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.2 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-search-common@1.2.8 - -## 0.2.17-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.2-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-search-common@1.2.7 - -## 0.2.16 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.1 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-search-common@1.2.7 - -## 0.2.16-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.4.3-next.0 - - @backstage/integration@1.7.1-next.1 - - @backstage/plugin-search-common@1.2.7-next.0 - -## 0.2.16-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.1-next.0 - - @backstage/catalog-model@1.4.2 - - @backstage/plugin-search-common@1.2.6 - -## 0.2.15 - -### Patch Changes - -- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. -- Updated dependencies - - @backstage/catalog-model@1.4.2 - - @backstage/integration@1.7.0 - - @backstage/plugin-search-common@1.2.6 - -## 0.2.15-next.3 - -### Patch Changes - -- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. -- Updated dependencies - - @backstage/catalog-model@1.4.2-next.2 - - @backstage/integration@1.7.0-next.3 - - @backstage/plugin-search-common@1.2.6-next.2 - -## 0.2.15-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.0-next.2 - - @backstage/catalog-model@1.4.2-next.1 - - @backstage/plugin-search-common@1.2.6-next.1 - -## 0.2.15-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.0-next.1 - - @backstage/catalog-model@1.4.2-next.0 - - @backstage/plugin-search-common@1.2.6-next.0 - -## 0.2.14-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.7.0-next.0 - - @backstage/catalog-model@1.4.1 - - @backstage/plugin-search-common@1.2.5 - -## 0.2.12 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.6.0 - - @backstage/catalog-model@1.4.1 - - @backstage/plugin-search-common@1.2.5 - -## 0.2.11 - -### Patch Changes - -- 2b4513abb784: fixed error with date parsing. -- Updated dependencies - - @backstage/catalog-model@1.4.1 - - @backstage/integration@1.5.1 - - @backstage/plugin-search-common@1.2.5 - -## 0.2.11-next.1 - -### Patch Changes - -- 2b4513abb784: fixed error with date parsing. -- Updated dependencies - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/integration@1.5.1-next.0 - - @backstage/plugin-search-common@1.2.5-next.0 - -## 0.2.11-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/integration@1.5.1-next.0 - - @backstage/plugin-search-common@1.2.5-next.0 - -## 0.2.10 - -### Patch Changes - -- 58524588448c: Add utility function for parsing MADR front matter -- Updated dependencies - - @backstage/integration@1.5.0 - - @backstage/catalog-model@1.4.0 - - @backstage/plugin-search-common@1.2.4 - -## 0.2.10-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.4.0-next.1 - - @backstage/integration@1.5.0-next.0 - - @backstage/plugin-search-common@1.2.4-next.0 - -## 0.2.10-next.0 - -### Patch Changes - -- 58524588448c: Add utility function for parsing MADR front matter -- Updated dependencies - - @backstage/integration@1.5.0-next.0 - - @backstage/catalog-model@1.4.0-next.0 - - @backstage/plugin-search-common@1.2.4-next.0 - -## 0.2.9 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.4.5 - - @backstage/catalog-model@1.3.0 - - @backstage/plugin-search-common@1.2.3 - -## 0.2.9-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.4.5-next.0 - - @backstage/catalog-model@1.3.0 - - @backstage/plugin-search-common@1.2.3 - -## 0.2.8 - -### Patch Changes - -- 77aa3a4d47e: use path attribute to fetch files instead of name and update the UI to navigate over subdirectories -- Updated dependencies - - @backstage/catalog-model@1.3.0 - - @backstage/integration@1.4.4 - - @backstage/plugin-search-common@1.2.3 - -## 0.2.8-next.1 - -### Patch Changes - -- 77aa3a4d47e: use path attribute to fetch files instead of name and update the UI to navigate over subdirectories -- Updated dependencies - - @backstage/catalog-model@1.3.0-next.0 - - @backstage/integration@1.4.4-next.0 - - @backstage/plugin-search-common@1.2.3-next.0 - -## 0.2.8-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.4.4-next.0 - - @backstage/catalog-model@1.2.1 - - @backstage/plugin-search-common@1.2.3-next.0 - -## 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 - -- Updated dependencies - - @backstage/integration@1.4.3-next.0 - - @backstage/catalog-model@1.2.1-next.1 - - @backstage/plugin-search-common@1.2.2-next.0 - -## 0.2.7-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.2.1-next.0 - - @backstage/integration@1.4.2 - - @backstage/plugin-search-common@1.2.1 - -## 0.2.6 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.2.0 - - @backstage/integration@1.4.2 - - @backstage/plugin-search-common@1.2.1 - -## 0.2.6-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.2.0-next.1 - - @backstage/integration@1.4.2 - - @backstage/plugin-search-common@1.2.1 - -## 0.2.6-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.6-next.0 - -## 0.2.5 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5 - - @backstage/integration@1.4.2 - - @backstage/plugin-search-common@1.2.1 - -## 0.2.5-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/integration@1.4.2-next.0 - - @backstage/plugin-search-common@1.2.1-next.0 - -## 0.2.5-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.0 - - @backstage/integration@1.4.1 - - @backstage/plugin-search-common@1.2.0 - -## 0.2.4 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.4.1 - - @backstage/plugin-search-common@1.2.0 - - @backstage/catalog-model@1.1.4 - -## 0.2.4-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/integration@1.4.1-next.1 - - @backstage/plugin-search-common@1.2.0-next.3 - -## 0.2.4-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-search-common@1.2.0-next.2 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/integration@1.4.1-next.1 - -## 0.2.4-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.4.1-next.1 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/plugin-search-common@1.1.2-next.1 - -## 0.2.4-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.4.1-next.0 - - @backstage/catalog-model@1.1.4-next.0 - - @backstage/plugin-search-common@1.1.2-next.0 - -## 0.2.3 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.4.0 - - @backstage/catalog-model@1.1.3 - - @backstage/plugin-search-common@1.1.1 - -## 0.2.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.4.0-next.0 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/plugin-search-common@1.1.1-next.0 - -## 0.2.2 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2 - - @backstage/plugin-search-common@1.1.0 - - @backstage/integration@1.3.2 - -## 0.2.2-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-search-common@1.1.0-next.2 - - @backstage/catalog-model@1.1.2-next.2 - - @backstage/integration@1.3.2-next.2 - -## 0.2.2-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-search-common@1.1.0-next.1 - - @backstage/catalog-model@1.1.2-next.1 - - @backstage/integration@1.3.2-next.1 - -## 0.2.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2-next.0 - - @backstage/integration@1.3.2-next.0 - - @backstage/plugin-search-common@1.0.2-next.0 - -## 0.2.1 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.3.1 - - @backstage/catalog-model@1.1.1 - - @backstage/plugin-search-common@1.0.1 - -## 0.2.1-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.1-next.0 - - @backstage/integration@1.3.1-next.2 - -## 0.2.1-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.3.1-next.0 - - @backstage/plugin-search-common@1.0.1-next.0 - -## 0.2.0 - -### Minor Changes - -- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` - - BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.3.0 - -## 0.2.0-next.1 - -### Minor Changes - -- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` - - BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents - -## 0.1.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.3.0-next.0 - -## 0.1.2 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.0 - - @backstage/plugin-search-common@1.0.0 - - @backstage/integration@1.2.2 - -## 0.1.2-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.0-next.1 - - @backstage/integration@1.2.2-next.1 - - @backstage/plugin-search-common@0.3.6-next.0 - -## 0.1.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.0-next.0 - - @backstage/integration@1.2.2-next.0 - -## 0.1.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-search-common@0.3.5 - - @backstage/integration@1.2.1 - - @backstage/catalog-model@1.0.3 - -## 0.1.1-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.2.1-next.1 - - @backstage/catalog-model@1.0.3-next.0 - - @backstage/plugin-search-common@0.3.5-next.0 - -## 0.1.1-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.2.1-next.0 - -## 0.1.0 - -### Minor Changes - -- e73075a301: Implement ADR plugin - -### Patch Changes - -- Updated dependencies - - @backstage/integration@1.2.0 - - @backstage/plugin-search-common@0.3.4 - - @backstage/catalog-model@1.0.2 - -## 0.1.0-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-search-common@0.3.4-next.0 - - @backstage/catalog-model@1.0.2-next.0 - - @backstage/integration@1.2.0-next.1 - -## 0.1.0-next.0 - -### Minor Changes - -- e73075a301: Implement ADR plugin diff --git a/plugins/adr-common/README.md b/plugins/adr-common/README.md deleted file mode 100644 index 7c074e84b8..0000000000 --- a/plugins/adr-common/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Deprecated - -This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-adr-common` instead. diff --git a/plugins/adr-common/api-report.md b/plugins/adr-common/api-report.md deleted file mode 100644 index f12a086359..0000000000 --- a/plugins/adr-common/api-report.md +++ /dev/null @@ -1,50 +0,0 @@ -## API Report File for "@backstage/plugin-adr-common" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -import { Entity } from '@backstage/catalog-model'; -import { IndexableDocument } from '@backstage/plugin-search-common'; -import { ScmIntegrationRegistry } from '@backstage/integration'; - -// @public -export interface AdrDocument extends IndexableDocument { - date?: string; - entityRef: string; - entityTitle?: string; - status?: string; -} - -// @public -export type AdrFilePathFilterFn = (path: string) => boolean; - -// @public -export const ANNOTATION_ADR_LOCATION = 'backstage.io/adr-location'; - -// @public -export const getAdrLocationUrl: ( - entity: Entity, - scmIntegration: ScmIntegrationRegistry, - adrFilePath?: String, -) => string; - -// @public -export const isAdrAvailable: (entity: Entity) => boolean; - -// @public -export const MADR_DATE_FORMAT = 'yyyy-MM-dd'; - -// @public -export const madrFilePathFilter: AdrFilePathFilterFn; - -// @public -export interface ParsedMadr { - attributes: Record; - content: string; - date?: string; - status?: string; -} - -// @public -export const parseMadrWithFrontmatter: (content: string) => ParsedMadr; -``` diff --git a/plugins/adr-common/catalog-info.yaml b/plugins/adr-common/catalog-info.yaml deleted file mode 100644 index defcbe9fdb..0000000000 --- a/plugins/adr-common/catalog-info.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: backstage-plugin-adr-common - title: '@backstage/plugin-adr-common' - description: Common functionalities for the adr plugin -spec: - lifecycle: experimental - type: backstage-common-library - owner: kuangp diff --git a/plugins/adr-common/knip-report.md b/plugins/adr-common/knip-report.md deleted file mode 100644 index 2661c35327..0000000000 --- a/plugins/adr-common/knip-report.md +++ /dev/null @@ -1,2 +0,0 @@ -# Knip report - diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json deleted file mode 100644 index 87abce09ca..0000000000 --- a/plugins/adr-common/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "@backstage/plugin-adr-common", - "version": "0.2.22", - "description": "Common functionalities for the adr plugin", - "backstage": { - "role": "common-library", - "moved": "@backstage-community/plugin-adr-common" - }, - "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "module": "dist/index.esm.js", - "types": "dist/index.d.ts" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/adr-common" - }, - "license": "Apache-2.0", - "sideEffects": false, - "main": "src/index.ts", - "types": "src/index.ts", - "files": [ - "dist" - ], - "scripts": { - "build": "backstage-cli package build", - "clean": "backstage-cli package clean", - "lint": "backstage-cli package lint", - "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack", - "test": "backstage-cli package test" - }, - "dependencies": { - "@backstage/catalog-model": "workspace:^", - "@backstage/integration": "workspace:^", - "@backstage/plugin-search-common": "workspace:^", - "front-matter": "^4.0.2", - "luxon": "^3.0.0" - }, - "devDependencies": { - "@backstage/cli": "workspace:^" - }, - "deprecated": "This package has been moved to the backstage/community-plugins repository. You should migrate to using @backstage-community/plugin-adr-common instead." -} diff --git a/plugins/adr-common/src/index.ts b/plugins/adr-common/src/index.ts deleted file mode 100644 index 85d61cd270..0000000000 --- a/plugins/adr-common/src/index.ts +++ /dev/null @@ -1,154 +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. - */ -/** - * Common types and functionalities for the ADR plugin. - * @packageDocumentation - */ -import { Entity, getEntitySourceLocation } from '@backstage/catalog-model'; -import { IndexableDocument } from '@backstage/plugin-search-common'; -import { ScmIntegrationRegistry } from '@backstage/integration'; -import frontMatter from 'front-matter'; -import { DateTime } from 'luxon'; - -/** - * ADR plugin annotation. - * @public - */ -export const ANNOTATION_ADR_LOCATION = 'backstage.io/adr-location'; - -/** - * Standard luxon DateTime format string for MADR dates. - * @public - */ -export const MADR_DATE_FORMAT = 'yyyy-MM-dd'; - -/** - * Utility function to get the value of an entity ADR annotation. - * @public - */ -const getAdrLocationDir = (entity: Entity) => - entity.metadata.annotations?.[ANNOTATION_ADR_LOCATION]?.trim(); - -/** - * Utility function to determine if the given entity has ADRs. - * @public - */ -export const isAdrAvailable = (entity: Entity) => - Boolean(getAdrLocationDir(entity)); - -/** - * Utility function to extract the ADR location URL from an entity based off - * its ADR annotation and relative to the entity source location. - * @public - */ -export const getAdrLocationUrl = ( - entity: Entity, - scmIntegration: ScmIntegrationRegistry, - adrFilePath?: String, -) => { - if (!isAdrAvailable(entity)) { - throw new Error(`Missing ADR annotation: ${ANNOTATION_ADR_LOCATION}`); - } - - let url = getAdrLocationDir(entity)!.replace(/\/$/, ''); - - if (adrFilePath) { - url = `${url}/${adrFilePath}`; - } - - return scmIntegration.resolveUrl({ - url, - base: getEntitySourceLocation(entity).target, - }); -}; - -/** - * File path filter function type for ADR filenames - * @public - */ -export type AdrFilePathFilterFn = (path: string) => boolean; - -/** - * File path filter for MADR filename formats - * @public - */ -export const madrFilePathFilter: AdrFilePathFilterFn = (path: string) => - /^(?:.*\/)?\d{4}-.+\.md$/.test(path); - -/** - * ADR indexable document interface - * @public - */ -export interface AdrDocument extends IndexableDocument { - /** - * Ref of the entity associated with this ADR - */ - entityRef: string; - /** - * Title of the entity associated with this ADR - */ - entityTitle?: string; - /** - * ADR status label - */ - status?: string; - /** - * ADR date - */ - date?: string; -} - -/** - * Parsed MADR document with front matter (if present) parsed and extracted from the main markdown content. - * @public - */ -export interface ParsedMadr { - /** - * Main body of ADR content (with any front matter removed) - */ - content: string; - /** - * ADR status - */ - status?: string; - /** - * ADR date - */ - date?: string; - /** - * All attributes parsed from front matter - */ - attributes: Record; -} - -/** - * Utility function to parse raw markdown content for an ADR and extract any metadata found as "front matter" at the top of the Markdown document. - * @param content - Raw markdown content which may (optionally) include front matter - * @public - */ -export const parseMadrWithFrontmatter = (content: string): ParsedMadr => { - const parsed = frontMatter>(content); - const status = parsed.attributes.status; - const date = parsed.attributes.date; - const luxdate = DateTime.fromJSDate(new Date(`${date}`)); - const formattedDate = luxdate.toISODate(); - return { - content: parsed.body, - status: status ? String(status) : undefined, - date: date ? String(formattedDate) : undefined, - attributes: parsed.attributes, - }; -}; diff --git a/plugins/adr/.eslintrc.js b/plugins/adr/.eslintrc.js deleted file mode 100644 index e487f765b2..0000000000 --- a/plugins/adr/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { - rules: { - '@backstage/no-top-level-material-ui-4-imports': 'error', - }, -}); diff --git a/plugins/adr/CHANGELOG.md b/plugins/adr/CHANGELOG.md deleted file mode 100644 index 13836e5e64..0000000000 --- a/plugins/adr/CHANGELOG.md +++ /dev/null @@ -1,1609 +0,0 @@ -# @backstage/plugin-adr - -## 0.6.17 - -### Patch Changes - -- abfbcfc: Updated dependency `@testing-library/react` to `^15.0.0`. -- cb1e3b0: Updated dependency `@testing-library/dom` to `^10.0.0`. -- Updated dependencies - - @backstage/plugin-search-react@1.7.10 - - @backstage/plugin-catalog-react@1.11.3 - - @backstage/core-components@0.14.4 - - @backstage/core-plugin-api@1.9.2 - - @backstage/frontend-plugin-api@0.6.4 - - @backstage/integration-react@1.1.26 - - @backstage/catalog-model@1.4.5 - - @backstage/plugin-adr-common@0.2.22 - - @backstage/plugin-search-common@1.2.11 - -## 0.6.17-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/frontend-plugin-api@0.6.4-next.1 - - @backstage/catalog-model@1.4.5 - - @backstage/core-components@0.14.4-next.0 - - @backstage/core-plugin-api@1.9.1 - - @backstage/integration-react@1.1.26-next.0 - - @backstage/plugin-adr-common@0.2.22-next.0 - - @backstage/plugin-catalog-react@1.11.3-next.1 - - @backstage/plugin-search-common@1.2.11 - - @backstage/plugin-search-react@1.7.10-next.1 - -## 0.6.17-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.4-next.0 - - @backstage/catalog-model@1.4.5 - - @backstage/core-plugin-api@1.9.1 - - @backstage/frontend-plugin-api@0.6.4-next.0 - - @backstage/integration-react@1.1.26-next.0 - - @backstage/plugin-adr-common@0.2.22-next.0 - - @backstage/plugin-catalog-react@1.11.3-next.0 - - @backstage/plugin-search-common@1.2.11 - - @backstage/plugin-search-react@1.7.10-next.0 - -## 0.6.16 - -### Patch Changes - -- e8f026a: Use ESM exports of react-use library -- Updated dependencies - - @backstage/core-components@0.14.3 - - @backstage/plugin-catalog-react@1.11.2 - - @backstage/plugin-search-react@1.7.9 - - @backstage/frontend-plugin-api@0.6.3 - - @backstage/integration-react@1.1.25 - - @backstage/core-plugin-api@1.9.1 - - @backstage/catalog-model@1.4.5 - - @backstage/plugin-adr-common@0.2.21 - - @backstage/plugin-search-common@1.2.11 - -## 0.6.15 - -### Patch Changes - -- e8f026a: Use ESM exports of react-use library -- Updated dependencies - - @backstage/core-components@0.14.2 - - @backstage/plugin-catalog-react@1.11.1 - - @backstage/plugin-search-react@1.7.8 - - @backstage/frontend-plugin-api@0.6.2 - - @backstage/integration-react@1.1.25 - - @backstage/core-plugin-api@1.9.1 - - @backstage/catalog-model@1.4.5 - - @backstage/plugin-adr-common@0.2.21 - - @backstage/plugin-search-common@1.2.11 - -## 0.6.14 - -### Patch Changes - -- 5335634: Fixed Azure DevOps ADR file path reading -- 669efc6: Remove unused package dependencies -- 38b92a0: Added ESLint rule `no-top-level-material-ui-4-imports` in the ADR plugin to migrate the Material UI imports. -- Updated dependencies - - @backstage/plugin-adr-common@0.2.21 - - @backstage/core-components@0.14.1 - - @backstage/integration-react@1.1.25 - - @backstage/plugin-catalog-react@1.11.0 - - @backstage/plugin-search-common@1.2.11 - - @backstage/catalog-model@1.4.5 - - @backstage/core-plugin-api@1.9.1 - - @backstage/frontend-plugin-api@0.6.1 - - @backstage/plugin-search-react@1.7.7 - -## 0.6.14-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1-next.2 - - @backstage/plugin-catalog-react@1.11.0-next.2 - - @backstage/integration-react@1.1.25-next.2 - - @backstage/plugin-adr-common@0.2.21-next.2 - - @backstage/frontend-plugin-api@0.6.1-next.2 - - @backstage/plugin-search-react@1.7.7-next.2 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/core-plugin-api@1.9.1-next.1 - - @backstage/plugin-search-common@1.2.11-next.1 - -## 0.6.14-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1-next.1 - - @backstage/plugin-catalog-react@1.10.1-next.1 - - @backstage/core-plugin-api@1.9.1-next.1 - - @backstage/integration-react@1.1.25-next.1 - - @backstage/frontend-plugin-api@0.6.1-next.1 - - @backstage/plugin-search-react@1.7.7-next.1 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/plugin-adr-common@0.2.21-next.1 - - @backstage/plugin-search-common@1.2.11-next.1 - -## 0.6.14-next.0 - -### Patch Changes - -- 5335634: Fixed Azure DevOps ADR file path reading -- 669efc6: Remove unused package dependencies -- Updated dependencies - - @backstage/plugin-adr-common@0.2.21-next.0 - - @backstage/core-components@0.14.1-next.0 - - @backstage/integration-react@1.1.25-next.0 - - @backstage/plugin-catalog-react@1.10.1-next.0 - - @backstage/plugin-search-common@1.2.11-next.0 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/core-plugin-api@1.9.1-next.0 - - @backstage/plugin-search-react@1.7.7-next.0 - - @backstage/frontend-plugin-api@0.6.1-next.0 - -## 0.6.13 - -### Patch Changes - -- 0b03962: Updated README -- 987f565: Fix alignment of text in `AdrSearchResultListItem`. Update size and font to match other `SearchResultListItem`. -- 8fe56a8: Widen `@types/react` dependency range to include version 18. -- Updated dependencies - - @backstage/frontend-plugin-api@0.6.0 - - @backstage/plugin-catalog-react@1.10.0 - - @backstage/core-components@0.14.0 - - @backstage/catalog-model@1.4.4 - - @backstage/core-plugin-api@1.9.0 - - @backstage/plugin-search-react@1.7.6 - - @backstage/integration-react@1.1.24 - - @backstage/plugin-adr-common@0.2.20 - - @backstage/plugin-search-common@1.2.10 - -## 0.6.13-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.0-next.2 - - @backstage/plugin-catalog-react@1.10.0-next.3 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/core-plugin-api@1.9.0-next.1 - - @backstage/frontend-plugin-api@0.6.0-next.3 - - @backstage/integration-react@1.1.24-next.2 - - @backstage/plugin-adr-common@0.2.20-next.1 - - @backstage/plugin-search-common@1.2.10 - - @backstage/plugin-search-react@1.7.6-next.3 - -## 0.6.13-next.2 - -### Patch Changes - -- 8fe56a8: Widen `@types/react` dependency range to include version 18. -- Updated dependencies - - @backstage/core-components@0.14.0-next.1 - - @backstage/core-plugin-api@1.9.0-next.1 - - @backstage/frontend-plugin-api@0.6.0-next.2 - - @backstage/plugin-catalog-react@1.10.0-next.2 - - @backstage/plugin-search-react@1.7.6-next.2 - - @backstage/integration-react@1.1.24-next.1 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/plugin-adr-common@0.2.20-next.0 - - @backstage/plugin-search-common@1.2.10 - -## 0.6.13-next.1 - -### Patch Changes - -- 987f565: Fix alignment of text in `AdrSearchResultListItem`. Update size and font to match other `SearchResultListItem`. -- Updated dependencies - - @backstage/frontend-plugin-api@0.6.0-next.1 - - @backstage/core-components@0.14.0-next.0 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/core-plugin-api@1.8.3-next.0 - - @backstage/plugin-catalog-react@1.9.4-next.1 - - @backstage/plugin-search-react@1.7.6-next.1 - - @backstage/integration-react@1.1.24-next.0 - - @backstage/plugin-adr-common@0.2.20-next.0 - - @backstage/plugin-search-common@1.2.10 - -## 0.6.13-next.0 - -### Patch Changes - -- 0b03962: Updated README -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.4-next.0 - - @backstage/frontend-plugin-api@0.5.1-next.0 - - @backstage/core-components@0.13.10 - - @backstage/plugin-search-react@1.7.6-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.2 - - @backstage/integration-react@1.1.23 - - @backstage/plugin-adr-common@0.2.19 - - @backstage/plugin-search-common@1.2.10 - -## 0.6.12 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/frontend-plugin-api@0.5.0 - - @backstage/core-components@0.13.10 - - @backstage/core-plugin-api@1.8.2 - - @backstage/plugin-catalog-react@1.9.3 - - @backstage/plugin-search-react@1.7.5 - - @backstage/integration-react@1.1.23 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-adr-common@0.2.19 - - @backstage/plugin-search-common@1.2.10 - -## 0.6.12-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/frontend-plugin-api@0.4.1-next.2 - - @backstage/plugin-catalog-react@1.9.3-next.2 - - @backstage/plugin-search-react@1.7.5-next.2 - - @backstage/integration-react@1.1.23-next.0 - -## 0.6.12-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.8.2-next.0 - - @backstage/core-components@0.13.10-next.1 - - @backstage/frontend-plugin-api@0.4.1-next.1 - - @backstage/integration-react@1.1.23-next.0 - - @backstage/plugin-catalog-react@1.9.3-next.1 - - @backstage/plugin-search-react@1.7.5-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-adr-common@0.2.18 - - @backstage/plugin-search-common@1.2.9 - -## 0.6.12-next.0 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/core-components@0.13.10-next.0 - - @backstage/frontend-plugin-api@0.4.1-next.0 - - @backstage/plugin-catalog-react@1.9.3-next.0 - - @backstage/integration-react@1.1.22 - - @backstage/plugin-search-react@1.7.5-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.1 - - @backstage/plugin-adr-common@0.2.18 - - @backstage/plugin-search-common@1.2.9 - -## 0.6.11 - -### Patch Changes - -- 5814122: Updated `/alpha` exports to fit new naming patterns. -- 36c94b8: Refactor of the alpha exports due to API change in how extension IDs are constructed. -- fb8f3bd: Updated alpha translation message keys to use nested format and camel case. -- Updated dependencies - - @backstage/core-plugin-api@1.8.1 - - @backstage/frontend-plugin-api@0.4.0 - - @backstage/plugin-catalog-react@1.9.2 - - @backstage/core-components@0.13.9 - - @backstage/theme@0.5.0 - - @backstage/plugin-search-react@1.7.4 - - @backstage/integration-react@1.1.22 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-adr-common@0.2.18 - - @backstage/plugin-search-common@1.2.9 - -## 0.6.11-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.9-next.3 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.1-next.1 - - @backstage/frontend-plugin-api@0.4.0-next.3 - - @backstage/integration-react@1.1.22-next.1 - - @backstage/theme@0.5.0-next.1 - - @backstage/plugin-adr-common@0.2.18-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.3 - - @backstage/plugin-search-common@1.2.8 - - @backstage/plugin-search-react@1.7.4-next.3 - -## 0.6.11-next.2 - -### Patch Changes - -- 36c94b8: Refactor of the alpha exports due to API change in how extension IDs are constructed. -- Updated dependencies - - @backstage/frontend-plugin-api@0.4.0-next.2 - - @backstage/theme@0.5.0-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.2 - - @backstage/plugin-search-react@1.7.4-next.2 - - @backstage/catalog-model@1.4.3 - - @backstage/core-components@0.13.9-next.2 - - @backstage/core-plugin-api@1.8.1-next.1 - - @backstage/integration-react@1.1.22-next.1 - - @backstage/plugin-adr-common@0.2.18-next.1 - - @backstage/plugin-search-common@1.2.8 - -## 0.6.11-next.1 - -### Patch Changes - -- fb8f3bdbc2: Updated alpha translation message keys to use nested format and camel case. -- Updated dependencies - - @backstage/frontend-plugin-api@0.4.0-next.1 - - @backstage/core-components@0.13.9-next.1 - - @backstage/core-plugin-api@1.8.1-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.1 - - @backstage/plugin-search-react@1.7.4-next.1 - - @backstage/integration-react@1.1.22-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/theme@0.5.0-next.0 - - @backstage/plugin-adr-common@0.2.18-next.1 - - @backstage/plugin-search-common@1.2.8 - -## 0.6.11-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.8.1-next.0 - - @backstage/plugin-catalog-react@1.9.2-next.0 - - @backstage/core-components@0.13.9-next.0 - - @backstage/plugin-search-react@1.7.4-next.0 - - @backstage/theme@0.5.0-next.0 - - @backstage/frontend-plugin-api@0.3.1-next.0 - - @backstage/integration-react@1.1.22-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-adr-common@0.2.18-next.0 - - @backstage/plugin-search-common@1.2.8 - -## 0.6.9 - -### Patch Changes - -- 6c2b872153: Add official support for React 18. -- 4aa43f62aa: Updated dependency `cross-fetch` to `^4.0.0`. -- fdb5e23602: Import `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` to remove the cyclical dependency -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.0 - - @backstage/core-components@0.13.8 - - @backstage/frontend-plugin-api@0.3.0 - - @backstage/integration-react@1.1.21 - - @backstage/core-plugin-api@1.8.0 - - @backstage/plugin-search-react@1.7.2 - - @backstage/theme@0.4.4 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-adr-common@0.2.17 - - @backstage/plugin-search-common@1.2.8 - -## 0.6.9-next.2 - -### Patch Changes - -- [#20842](https://github.com/backstage/backstage/pull/20842) [`fdb5e23602`](https://github.com/backstage/backstage/commit/fdb5e2360299c5faa30f4d4236fc548b94d37446) Thanks [@benjdlambert](https://github.com/benjdlambert)! - Import `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` to remove the cyclical dependency - -- Updated dependencies - - @backstage/core-components@0.13.8-next.2 - - @backstage/frontend-plugin-api@0.3.0-next.2 - - @backstage/plugin-catalog-react@1.9.0-next.2 - - @backstage/integration-react@1.1.21-next.1 - - @backstage/plugin-search-react@1.7.2-next.2 - -## 0.6.9-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/frontend-plugin-api@0.3.0-next.1 - - @backstage/plugin-catalog-react@1.9.0-next.1 - - @backstage/plugin-search-react@1.7.2-next.1 - - @backstage/integration-react@1.1.21-next.1 - - @backstage/plugin-adr-common@0.2.17-next.0 - - @backstage/core-components@0.13.8-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.0-next.0 - - @backstage/theme@0.4.4-next.0 - - @backstage/plugin-search-common@1.2.7 - -## 0.6.9-next.0 - -### Patch Changes - -- 6c2b872153: Add official support for React 18. -- Updated dependencies - - @backstage/core-components@0.13.7-next.0 - - @backstage/frontend-plugin-api@0.3.0-next.0 - - @backstage/plugin-catalog-react@1.9.0-next.0 - - @backstage/integration-react@1.1.21-next.0 - - @backstage/core-plugin-api@1.8.0-next.0 - - @backstage/plugin-search-react@1.7.2-next.0 - - @backstage/theme@0.4.4-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-adr-common@0.2.16 - - @backstage/plugin-search-common@1.2.7 - -## 0.6.8 - -### Patch Changes - -- 499e34656e: Fix icon alignment in `AdrSearchResultListItem` -- 9a1fce352e: Updated dependency `@testing-library/jest-dom` to `^6.0.0`. -- f95af4e540: Updated dependency `@testing-library/dom` to `^9.0.0`. -- 1204e7628e: Create an experimental `AdrSearchResultItemExtension` for declarative integration with Backstage; it can be accessed via the `/alpha` import. -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.5 - - @backstage/frontend-plugin-api@0.2.0 - - @backstage/core-plugin-api@1.7.0 - - @backstage/core-components@0.13.6 - - @backstage/integration-react@1.1.20 - - @backstage/catalog-model@1.4.3 - - @backstage/plugin-search-react@1.7.1 - - @backstage/theme@0.4.3 - - @backstage/plugin-adr-common@0.2.16 - - @backstage/plugin-search-common@1.2.7 - -## 0.6.8-next.2 - -### Patch Changes - -- 499e34656e: Fix icon alignment in `AdrSearchResultListItem` -- Updated dependencies - - @backstage/frontend-plugin-api@0.2.0-next.2 - - @backstage/integration-react@1.1.20-next.2 - - @backstage/core-components@0.13.6-next.2 - - @backstage/core-plugin-api@1.7.0-next.1 - - @backstage/catalog-model@1.4.3-next.0 - - @backstage/plugin-catalog-react@1.8.5-next.2 - - @backstage/plugin-search-react@1.7.1-next.2 - - @backstage/theme@0.4.3-next.0 - - @backstage/plugin-adr-common@0.2.16-next.1 - - @backstage/plugin-search-common@1.2.7-next.0 - -## 0.6.8-next.1 - -### Patch Changes - -- 1204e7628e: Create an experimental `AdrSearchResultItemExtension` for declarative integration with Backstage; it can be accessed via the `/alpha` import. -- Updated dependencies - - @backstage/frontend-plugin-api@0.1.1-next.1 - - @backstage/core-components@0.13.6-next.1 - - @backstage/plugin-search-react@1.7.1-next.1 - - @backstage/integration-react@1.1.20-next.1 - - @backstage/plugin-catalog-react@1.8.5-next.1 - - @backstage/core-plugin-api@1.7.0-next.0 - - @backstage/catalog-model@1.4.2 - - @backstage/theme@0.4.2 - - @backstage/plugin-adr-common@0.2.16-next.0 - - @backstage/plugin-search-common@1.2.6 - -## 0.6.8-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.5-next.0 - - @backstage/core-plugin-api@1.7.0-next.0 - - @backstage/core-components@0.13.6-next.0 - - @backstage/integration-react@1.1.20-next.0 - - @backstage/plugin-adr-common@0.2.16-next.0 - - @backstage/plugin-search-react@1.7.1-next.0 - - @backstage/catalog-model@1.4.2 - - @backstage/theme@0.4.2 - - @backstage/plugin-search-common@1.2.6 - -## 0.6.7 - -### Patch Changes - -- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. -- aa844e704a32: support for i18n feature -- 8cec7664e146: Removed `@types/node` dependency -- Updated dependencies - - @backstage/integration-react@1.1.19 - - @backstage/plugin-catalog-react@1.8.4 - - @backstage/core-components@0.13.5 - - @backstage/catalog-model@1.4.2 - - @backstage/core-plugin-api@1.6.0 - - @backstage/plugin-adr-common@0.2.15 - - @backstage/plugin-search-common@1.2.6 - - @backstage/plugin-search-react@1.7.0 - - @backstage/theme@0.4.2 - -## 0.6.7-next.3 - -### Patch Changes - -- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. -- aa844e704a32: support for i18n feature -- Updated dependencies - - @backstage/catalog-model@1.4.2-next.2 - - @backstage/core-components@0.13.5-next.3 - - @backstage/core-plugin-api@1.6.0-next.3 - - @backstage/integration-react@1.1.19-next.3 - - @backstage/plugin-adr-common@0.2.15-next.3 - - @backstage/plugin-catalog-react@1.8.4-next.3 - - @backstage/plugin-search-common@1.2.6-next.2 - - @backstage/plugin-search-react@1.7.0-next.3 - - @backstage/theme@0.4.2-next.0 - -## 0.6.7-next.2 - -### Patch Changes - -- 8cec7664e146: Removed `@types/node` dependency -- Updated dependencies - - @backstage/integration-react@1.1.19-next.2 - - @backstage/core-components@0.13.5-next.2 - - @backstage/core-plugin-api@1.6.0-next.2 - - @backstage/plugin-catalog-react@1.8.4-next.2 - - @backstage/plugin-search-react@1.7.0-next.2 - - @backstage/catalog-model@1.4.2-next.1 - - @backstage/theme@0.4.1 - - @backstage/plugin-adr-common@0.2.15-next.2 - - @backstage/plugin-search-common@1.2.6-next.1 - -## 0.6.7-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.4-next.1 - - @backstage/core-components@0.13.5-next.1 - - @backstage/plugin-search-react@1.7.0-next.1 - - @backstage/integration-react@1.1.19-next.1 - - @backstage/catalog-model@1.4.2-next.0 - - @backstage/core-plugin-api@1.6.0-next.1 - - @backstage/plugin-adr-common@0.2.15-next.1 - - @backstage/theme@0.4.1 - - @backstage/plugin-search-common@1.2.6-next.0 - -## 0.6.6-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/integration-react@1.1.18-next.0 - - @backstage/core-plugin-api@1.6.0-next.0 - - @backstage/core-components@0.13.5-next.0 - - @backstage/catalog-model@1.4.1 - - @backstage/theme@0.4.1 - - @backstage/plugin-adr-common@0.2.14-next.0 - - @backstage/plugin-catalog-react@1.8.3-next.0 - - @backstage/plugin-search-common@1.2.5 - - @backstage/plugin-search-react@1.6.5-next.0 - -## 0.6.4 - -### Patch Changes - -- 12a8c94eda8d: Add package repository and homepage metadata -- Updated dependencies - - @backstage/integration-react@1.1.16 - - @backstage/core-components@0.13.4 - - @backstage/plugin-catalog-react@1.8.1 - - @backstage/core-plugin-api@1.5.3 - - @backstage/plugin-search-react@1.6.4 - - @backstage/catalog-model@1.4.1 - - @backstage/theme@0.4.1 - - @backstage/plugin-adr-common@0.2.12 - - @backstage/plugin-search-common@1.2.5 - -## 0.6.4-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.1-next.1 - - @backstage/integration-react@1.1.16-next.1 - -## 0.6.4-next.1 - -### Patch Changes - -- 12a8c94eda8d: Add package repository and homepage metadata -- Updated dependencies - - @backstage/integration-react@1.1.16-next.1 - - @backstage/catalog-model@1.4.1 - - @backstage/core-components@0.13.4-next.0 - - @backstage/core-plugin-api@1.5.3 - - @backstage/theme@0.4.1 - - @backstage/plugin-adr-common@0.2.11 - - @backstage/plugin-catalog-react@1.8.1-next.0 - - @backstage/plugin-search-common@1.2.5 - - @backstage/plugin-search-react@1.6.4-next.0 - -## 0.6.4-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.4-next.0 - - @backstage/core-plugin-api@1.5.3 - - @backstage/plugin-catalog-react@1.8.1-next.0 - - @backstage/plugin-search-react@1.6.4-next.0 - - @backstage/catalog-model@1.4.1 - - @backstage/integration-react@1.1.16-next.0 - - @backstage/theme@0.4.1 - - @backstage/plugin-adr-common@0.2.11 - - @backstage/plugin-search-common@1.2.5 - -## 0.6.3 - -### Patch Changes - -- 2b4513abb784: fixed error with date parsing. -- Updated dependencies - - @backstage/theme@0.4.1 - - @backstage/plugin-catalog-react@1.8.0 - - @backstage/core-components@0.13.3 - - @backstage/core-plugin-api@1.5.3 - - @backstage/plugin-adr-common@0.2.11 - - @backstage/catalog-model@1.4.1 - - @backstage/integration-react@1.1.15 - - @backstage/plugin-search-common@1.2.5 - - @backstage/plugin-search-react@1.6.3 - -## 0.6.3-next.2 - -### Patch Changes - -- 2b4513abb784: fixed error with date parsing. -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.0-next.2 - - @backstage/theme@0.4.1-next.1 - - @backstage/core-plugin-api@1.5.3-next.1 - - @backstage/core-components@0.13.3-next.2 - - @backstage/plugin-adr-common@0.2.11-next.1 - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/integration-react@1.1.15-next.2 - - @backstage/plugin-search-common@1.2.5-next.0 - - @backstage/plugin-search-react@1.6.3-next.2 - -## 0.6.3-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.4.1-next.0 - - @backstage/core-components@0.13.3-next.1 - - @backstage/core-plugin-api@1.5.3-next.0 - - @backstage/integration-react@1.1.15-next.1 - - @backstage/plugin-catalog-react@1.7.1-next.1 - - @backstage/plugin-search-react@1.6.3-next.1 - -## 0.6.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.3-next.0 - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/core-plugin-api@1.5.2 - - @backstage/integration-react@1.1.15-next.0 - - @backstage/theme@0.4.0 - - @backstage/plugin-adr-common@0.2.11-next.0 - - @backstage/plugin-catalog-react@1.7.1-next.0 - - @backstage/plugin-search-common@1.2.5-next.0 - - @backstage/plugin-search-react@1.6.3-next.0 - -## 0.6.2 - -### Patch Changes - -- 58524588448c: Render table of front matter metadata when displaying MADR v3 formatted ADR -- Updated dependencies - - @backstage/core-plugin-api@1.5.2 - - @backstage/plugin-search-react@1.6.2 - - @backstage/core-components@0.13.2 - - @backstage/theme@0.4.0 - - @backstage/plugin-catalog-react@1.7.0 - - @backstage/catalog-model@1.4.0 - - @backstage/plugin-adr-common@0.2.10 - - @backstage/integration-react@1.1.14 - - @backstage/plugin-search-common@1.2.4 - -## 0.6.2-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-search-react@1.6.2-next.3 - - @backstage/core-components@0.13.2-next.3 - - @backstage/catalog-model@1.4.0-next.1 - - @backstage/core-plugin-api@1.5.2-next.0 - - @backstage/integration-react@1.1.14-next.3 - - @backstage/theme@0.4.0-next.1 - - @backstage/plugin-adr-common@0.2.10-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.3 - - @backstage/plugin-search-common@1.2.4-next.0 - -## 0.6.1-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.4.0-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.2 - - @backstage/core-components@0.13.2-next.2 - - @backstage/integration-react@1.1.14-next.2 - - @backstage/plugin-search-react@1.6.1-next.2 - - @backstage/core-plugin-api@1.5.2-next.0 - -## 0.6.1-next.1 - -### Patch Changes - -- 58524588448c: Render table of front matter metadata when displaying MADR v3 formatted ADR -- Updated dependencies - - @backstage/plugin-search-react@1.6.1-next.1 - - @backstage/core-components@0.13.2-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.1 - - @backstage/catalog-model@1.4.0-next.0 - - @backstage/plugin-adr-common@0.2.10-next.0 - - @backstage/core-plugin-api@1.5.2-next.0 - - @backstage/integration-react@1.1.14-next.1 - - @backstage/theme@0.4.0-next.0 - - @backstage/plugin-search-common@1.2.4-next.0 - -## 0.6.1-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.7.0-next.0 - - @backstage/theme@0.4.0-next.0 - - @backstage/core-components@0.13.2-next.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/integration-react@1.1.14-next.0 - - @backstage/plugin-search-react@1.6.1-next.0 - - @backstage/catalog-model@1.3.0 - - @backstage/plugin-adr-common@0.2.9 - - @backstage/plugin-search-common@1.2.3 - -## 0.6.0 - -### Minor Changes - -- b12cd5dc221: render SupportButton only if config is set - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.3.0 - - @backstage/plugin-catalog-react@1.6.0 - - @backstage/plugin-search-react@1.6.0 - - @backstage/core-components@0.13.1 - - @backstage/integration-react@1.1.13 - - @backstage/catalog-model@1.3.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/plugin-adr-common@0.2.9 - - @backstage/plugin-search-common@1.2.3 - -## 0.5.1-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.3.0-next.0 - - @backstage/core-components@0.13.1-next.1 - - @backstage/plugin-search-react@1.6.0-next.2 - - @backstage/integration-react@1.1.13-next.2 - - @backstage/plugin-catalog-react@1.6.0-next.2 - - @backstage/core-plugin-api@1.5.1 - -## 0.5.1-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.1-next.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/plugin-catalog-react@1.6.0-next.1 - - @backstage/plugin-search-react@1.6.0-next.1 - - @backstage/integration-react@1.1.13-next.1 - -## 0.5.1-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.6.0-next.0 - - @backstage/plugin-search-react@1.6.0-next.0 - - @backstage/integration-react@1.1.13-next.0 - - @backstage/plugin-adr-common@0.2.9-next.0 - - @backstage/core-components@0.13.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/catalog-model@1.3.0 - - @backstage/theme@0.2.19 - - @backstage/plugin-search-common@1.2.3 - -## 0.5.0 - -### Minor Changes - -- a2218363301: Use `fetchApi` instead of raw `fetch` in order to pass auth header if necessary. - -### Patch Changes - -- 77aa3a4d47e: use path attribute to fetch files instead of name and update the UI to navigate over subdirectories -- 7d75f6d9b8f: chore: Improve API Reference documentation -- 8e00acb28db: Small tweaks to remove warnings in the console during development (mainly focusing on techdocs) -- e0c6e8b9c3c: Update peer dependencies -- Updated dependencies - - @backstage/core-components@0.13.0 - - @backstage/plugin-catalog-react@1.5.0 - - @backstage/plugin-search-react@1.5.2 - - @backstage/plugin-adr-common@0.2.8 - - @backstage/integration-react@1.1.12 - - @backstage/theme@0.2.19 - - @backstage/core-plugin-api@1.5.1 - - @backstage/catalog-model@1.3.0 - - @backstage/plugin-search-common@1.2.3 - -## 0.4.2-next.3 - -### Patch Changes - -- 77aa3a4d47e: use path attribute to fetch files instead of name and update the UI to navigate over subdirectories -- Updated dependencies - - @backstage/plugin-adr-common@0.2.8-next.1 - - @backstage/plugin-catalog-react@1.5.0-next.3 - - @backstage/catalog-model@1.3.0-next.0 - - @backstage/core-components@0.13.0-next.3 - - @backstage/core-plugin-api@1.5.1-next.1 - - @backstage/integration-react@1.1.12-next.3 - - @backstage/theme@0.2.19-next.0 - - @backstage/plugin-search-common@1.2.3-next.0 - - @backstage/plugin-search-react@1.5.2-next.3 - -## 0.4.2-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.6-next.2 - - @backstage/plugin-catalog-react@1.4.1-next.2 - - @backstage/core-plugin-api@1.5.1-next.1 - - @backstage/catalog-model@1.2.1 - - @backstage/integration-react@1.1.12-next.2 - - @backstage/theme@0.2.19-next.0 - - @backstage/plugin-adr-common@0.2.8-next.0 - - @backstage/plugin-search-common@1.2.3-next.0 - - @backstage/plugin-search-react@1.5.2-next.2 - -## 0.4.2-next.1 - -### Patch Changes - -- 7d75f6d9b8f: chore: Improve API Reference documentation -- e0c6e8b9c3c: Update peer dependencies -- Updated dependencies - - @backstage/core-components@0.12.6-next.1 - - @backstage/integration-react@1.1.12-next.1 - - @backstage/core-plugin-api@1.5.1-next.0 - - @backstage/plugin-catalog-react@1.4.1-next.1 - - @backstage/plugin-search-react@1.5.2-next.1 - - @backstage/theme@0.2.19-next.0 - - @backstage/catalog-model@1.2.1 - - @backstage/plugin-adr-common@0.2.8-next.0 - - @backstage/plugin-search-common@1.2.3-next.0 - -## 0.4.2-next.0 - -### Patch Changes - -- 8e00acb28db: Small tweaks to remove warnings in the console during development (mainly focusing on techdocs) -- Updated dependencies - - @backstage/core-components@0.12.6-next.0 - - @backstage/plugin-search-react@1.5.2-next.0 - - @backstage/plugin-catalog-react@1.4.1-next.0 - - @backstage/integration-react@1.1.12-next.0 - - @backstage/core-plugin-api@1.5.0 - - @backstage/catalog-model@1.2.1 - - @backstage/theme@0.2.18 - - @backstage/plugin-adr-common@0.2.7 - - @backstage/plugin-search-common@1.2.2 - -## 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 - -- Updated dependencies - - @backstage/core-components@0.12.5-next.2 - - @backstage/plugin-catalog-react@1.4.0-next.2 - - @backstage/plugin-search-react@1.5.1-next.2 - - @backstage/core-plugin-api@1.5.0-next.2 - - @backstage/integration-react@1.1.11-next.2 - -## 0.4.1-next.1 - -### Patch Changes - -- 52b0022dab7: Updated dependency `msw` to `^1.0.0`. -- Updated dependencies - - @backstage/core-components@0.12.5-next.1 - - @backstage/core-plugin-api@1.4.1-next.1 - - @backstage/integration-react@1.1.11-next.1 - - @backstage/theme@0.2.18-next.0 - - @backstage/plugin-catalog-react@1.4.0-next.1 - - @backstage/catalog-model@1.2.1-next.1 - - @backstage/plugin-adr-common@0.2.7-next.1 - - @backstage/plugin-search-common@1.2.2-next.0 - - @backstage/plugin-search-react@1.5.1-next.1 - -## 0.4.1-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.4.0-next.0 - - @backstage/core-plugin-api@1.4.1-next.0 - - @backstage/catalog-model@1.2.1-next.0 - - @backstage/core-components@0.12.5-next.0 - - @backstage/integration-react@1.1.11-next.0 - - @backstage/theme@0.2.17 - - @backstage/plugin-adr-common@0.2.7-next.0 - - @backstage/plugin-search-common@1.2.1 - - @backstage/plugin-search-react@1.5.1-next.0 - -## 0.4.0 - -### Minor Changes - -- 0a32911d8a: Display title, status and date in ADR navigation, sourced from ADR content and reverse order. -- ec34b535c0: The `AdrSearchResultListItem` component is now a search result extension. This means that when rendered as a child of components that render search extensions, the `result`, `rank`, and `highlight` properties are optional. See the [documentation](https://backstage.io/docs/features/search/how-to-guides#how-to-render-search-results-using-extensions) for more details. - -### Patch Changes - -- ec34b535c0: Support displaying an icon on `AdrSearchResultListItem` -- 496cf6aff0: Render the common `` component when the `backstage.io/adr-location` annotation is missing from the component -- Updated dependencies - - @backstage/core-components@0.12.4 - - @backstage/catalog-model@1.2.0 - - @backstage/theme@0.2.17 - - @backstage/core-plugin-api@1.4.0 - - @backstage/plugin-catalog-react@1.3.0 - - @backstage/plugin-search-react@1.5.0 - - @backstage/integration-react@1.1.10 - - @backstage/plugin-adr-common@0.2.6 - - @backstage/plugin-search-common@1.2.1 - -## 0.4.0-next.2 - -### Minor Changes - -- ec34b535c0: The `AdrSearchResultListItem` component is now a search result extension. This means that when rendered as a child of components that render search extensions, the `result`, `rank`, and `highlight` properties are optional. See the [documentation](https://backstage.io/docs/features/search/how-to-guides#how-to-render-search-results-using-extensions) for more details. - -### Patch Changes - -- ec34b535c0: Support displaying an icon on `AdrSearchResultListItem` -- Updated dependencies - - @backstage/catalog-model@1.2.0-next.1 - - @backstage/plugin-search-react@1.5.0-next.1 - - @backstage/core-components@0.12.4-next.1 - - @backstage/core-plugin-api@1.3.0 - - @backstage/integration-react@1.1.10-next.1 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.6-next.1 - - @backstage/plugin-catalog-react@1.3.0-next.2 - - @backstage/plugin-search-common@1.2.1 - -## 0.3.1-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.4-next.0 - - @backstage/plugin-search-react@1.5.0-next.0 - - @backstage/plugin-catalog-react@1.3.0-next.1 - - @backstage/catalog-model@1.1.6-next.0 - - @backstage/core-plugin-api@1.3.0 - - @backstage/integration-react@1.1.10-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.6-next.0 - - @backstage/plugin-search-common@1.2.1 - -## 0.3.1-next.0 - -### Patch Changes - -- 496cf6aff0: Render the common `` component when the `backstage.io/adr-location` annotation is missing from the component -- Updated dependencies - - @backstage/plugin-catalog-react@1.3.0-next.0 - - @backstage/catalog-model@1.1.6-next.0 - - @backstage/plugin-adr-common@0.2.6-next.0 - - @backstage/integration-react@1.1.9 - -## 0.3.0 - -### Minor Changes - -- e4469d0ec1: The ADR plugin can now work with sites other than GitHub. Expanded the ADR backend plugin to provide endpoints to facilitate this. - - **BREAKING** The ADR plugin now requires the `@backstage/plugin-adr-backend` plugin to be installed by using the `createRouter` method to add into your `backend`. You read more in the [install instructions](https://github.com/backstage/backstage/blob/master/plugins/adr-backend/README.md#install) - -### Patch Changes - -- 21ffbdd5ee: Clarify that default ADR parsers support MADR specification v2.x -- 80ce4e8c29: Small updates to some components to ensure theme typography properties are inherited correctly. -- Updated dependencies - - @backstage/catalog-model@1.1.5 - - @backstage/plugin-catalog-react@1.2.4 - - @backstage/core-components@0.12.3 - - @backstage/plugin-search-react@1.4.0 - - @backstage/core-plugin-api@1.3.0 - - @backstage/integration-react@1.1.9 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.5 - - @backstage/plugin-search-common@1.2.1 - -## 0.3.0-next.2 - -### Minor Changes - -- e4469d0ec1: The ADR plugin can now work with sites other than GitHub. Expanded the ADR backend plugin to provide endpoints to facilitate this. - - **BREAKING** The ADR plugin now uses UrlReaders. You will have to [configure integrations](https://backstage.io/docs/integrations/index#configuration) for all sites you want to get ADRs from. If you would like to create your own implementation that has different behavior, you can override the AdrApi [just like you can with other apis.](https://backstage.io/docs/api/utility-apis#app-apis) The previously used Octokit implementation has been completely removed. - -### Patch Changes - -- 21ffbdd5ee: Clarify that default ADR parsers support MADR specification v2.x -- Updated dependencies - - @backstage/plugin-search-react@1.4.0-next.2 - - @backstage/core-plugin-api@1.3.0-next.1 - - @backstage/plugin-catalog-react@1.2.4-next.2 - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/core-components@0.12.3-next.2 - - @backstage/integration-react@1.1.9-next.2 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.5-next.1 - - @backstage/plugin-search-common@1.2.1-next.0 - -## 0.2.6-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/core-components@0.12.3-next.1 - - @backstage/core-plugin-api@1.2.1-next.0 - - @backstage/integration-react@1.1.9-next.1 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.5-next.1 - - @backstage/plugin-catalog-react@1.2.4-next.1 - - @backstage/plugin-search-common@1.2.1-next.0 - - @backstage/plugin-search-react@1.3.2-next.1 - -## 0.2.6-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.0 - - @backstage/plugin-catalog-react@1.2.4-next.0 - - @backstage/core-components@0.12.3-next.0 - - @backstage/core-plugin-api@1.2.0 - - @backstage/integration-react@1.1.9-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.5-next.0 - - @backstage/plugin-search-common@1.2.0 - - @backstage/plugin-search-react@1.3.2-next.0 - -## 0.2.5 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.2 - - @backstage/integration-react@1.1.8 - - @backstage/plugin-catalog-react@1.2.3 - - @backstage/plugin-search-react@1.3.1 - -## 0.2.4 - -### Patch Changes - -- a19cffbeed: Update search links to only have header as linkable text -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/core-plugin-api@1.2.0 - - @backstage/plugin-search-react@1.3.0 - - @backstage/core-components@0.12.1 - - @backstage/plugin-catalog-react@1.2.2 - - @backstage/integration-react@1.1.7 - - @backstage/plugin-search-common@1.2.0 - - @backstage/catalog-model@1.1.4 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.4 - -## 0.2.4-next.4 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.1-next.4 - - @backstage/plugin-catalog-react@1.2.2-next.4 - - @backstage/plugin-search-react@1.3.0-next.4 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/integration-react@1.1.7-next.4 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.4-next.3 - - @backstage/plugin-search-common@1.2.0-next.3 - -## 0.2.4-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.1-next.3 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/integration-react@1.1.7-next.3 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.4-next.2 - - @backstage/plugin-catalog-react@1.2.2-next.3 - - @backstage/plugin-search-common@1.2.0-next.2 - - @backstage/plugin-search-react@1.3.0-next.3 - -## 0.2.4-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/plugin-search-react@1.3.0-next.2 - - @backstage/core-components@0.12.1-next.2 - - @backstage/plugin-catalog-react@1.2.2-next.2 - - @backstage/plugin-search-common@1.2.0-next.2 - - @backstage/integration-react@1.1.7-next.2 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.4-next.2 - -## 0.2.4-next.1 - -### Patch Changes - -- a19cffbeed: Update search links to only have header as linkable text -- Updated dependencies - - @backstage/core-components@0.12.1-next.1 - - @backstage/plugin-search-react@1.2.2-next.1 - - @backstage/core-plugin-api@1.1.1-next.1 - - @backstage/plugin-catalog-react@1.2.2-next.1 - - @backstage/integration-react@1.1.7-next.1 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.4-next.1 - - @backstage/plugin-search-common@1.1.2-next.1 - -## 0.2.4-next.0 - -### Patch Changes - -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/core-components@0.12.1-next.0 - - @backstage/core-plugin-api@1.1.1-next.0 - - @backstage/integration-react@1.1.7-next.0 - - @backstage/plugin-catalog-react@1.2.2-next.0 - - @backstage/catalog-model@1.1.4-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.4-next.0 - - @backstage/plugin-search-common@1.1.2-next.0 - - @backstage/plugin-search-react@1.2.2-next.0 - -## 0.2.3 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.1 - - @backstage/core-components@0.12.0 - - @backstage/core-plugin-api@1.1.0 - - @backstage/catalog-model@1.1.3 - - @backstage/integration-react@1.1.6 - - @backstage/plugin-search-react@1.2.1 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.3 - - @backstage/plugin-search-common@1.1.1 - -## 0.2.3-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.0-next.1 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/core-plugin-api@1.1.0-next.0 - - @backstage/integration-react@1.1.6-next.1 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.3-next.0 - - @backstage/plugin-catalog-react@1.2.1-next.1 - - @backstage/plugin-search-common@1.1.1-next.0 - - @backstage/plugin-search-react@1.2.1-next.1 - -## 0.2.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.1-next.0 - - @backstage/core-components@0.12.0-next.0 - - @backstage/core-plugin-api@1.1.0-next.0 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/integration-react@1.1.6-next.0 - - @backstage/plugin-search-react@1.2.1-next.0 - - @backstage/plugin-adr-common@0.2.3-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-search-common@1.1.1-next.0 - -## 0.2.2 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2 - - @backstage/plugin-catalog-react@1.2.0 - - @backstage/core-components@0.11.2 - - @backstage/plugin-search-react@1.2.0 - - @backstage/plugin-search-common@1.1.0 - - @backstage/plugin-adr-common@0.2.2 - - @backstage/integration-react@1.1.5 - - @backstage/core-plugin-api@1.0.7 - - @backstage/theme@0.2.16 - -## 0.2.2-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.0-next.2 - - @backstage/plugin-search-common@1.1.0-next.2 - - @backstage/catalog-model@1.1.2-next.2 - - @backstage/core-components@0.11.2-next.2 - - @backstage/core-plugin-api@1.0.7-next.2 - - @backstage/integration-react@1.1.5-next.2 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.2-next.2 - - @backstage/plugin-search-react@1.2.0-next.2 - -## 0.2.2-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.0-next.1 - - @backstage/plugin-search-react@1.2.0-next.1 - - @backstage/plugin-search-common@1.1.0-next.1 - - @backstage/core-components@0.11.2-next.1 - - @backstage/core-plugin-api@1.0.7-next.1 - - @backstage/catalog-model@1.1.2-next.1 - - @backstage/integration-react@1.1.5-next.1 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.2.2-next.1 - -## 0.2.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2-next.0 - - @backstage/core-components@0.11.2-next.0 - - @backstage/plugin-adr-common@0.2.2-next.0 - - @backstage/plugin-catalog-react@1.1.5-next.0 - - @backstage/integration-react@1.1.5-next.0 - - @backstage/plugin-search-react@1.1.1-next.0 - - @backstage/core-plugin-api@1.0.7-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-search-common@1.0.2-next.0 - -## 0.2.1 - -### Patch Changes - -- 817f3196f6: Updated React Router dependencies to be peer dependencies. -- eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` -- 7d47def9c4: Removed dependency on `@types/jest`. -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings -- b489de83b1: Fix parsing of ADR location which includes a trailing slash -- Updated dependencies - - @backstage/core-components@0.11.1 - - @backstage/core-plugin-api@1.0.6 - - @backstage/plugin-catalog-react@1.1.4 - - @backstage/plugin-search-react@1.1.0 - - @backstage/catalog-model@1.1.1 - - @backstage/integration-react@1.1.4 - - @backstage/plugin-adr-common@0.2.1 - - @backstage/plugin-search-common@1.0.1 - -## 0.2.1-next.3 - -### Patch Changes - -- 7d47def9c4: Removed dependency on `@types/jest`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.4-next.2 - - @backstage/catalog-model@1.1.1-next.0 - - @backstage/core-components@0.11.1-next.3 - - @backstage/core-plugin-api@1.0.6-next.3 - - @backstage/integration-react@1.1.4-next.2 - - @backstage/plugin-adr-common@0.2.1-next.1 - -## 0.2.1-next.2 - -### Patch Changes - -- eadf56bbbf: Bump `git-url-parse` version to `^13.0.0` -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- Updated dependencies - - @backstage/core-components@0.11.1-next.2 - - @backstage/core-plugin-api@1.0.6-next.2 - - @backstage/integration-react@1.1.4-next.1 - - @backstage/plugin-search-react@1.1.0-next.2 - -## 0.2.1-next.1 - -### Patch Changes - -- 817f3196f6: Updated React Router dependencies to be peer dependencies. -- b489de83b1: Fix parsing of ADR location which includes a trailing slash -- Updated dependencies - - @backstage/core-components@0.11.1-next.1 - - @backstage/core-plugin-api@1.0.6-next.1 - - @backstage/plugin-catalog-react@1.1.4-next.1 - - @backstage/plugin-search-react@1.0.2-next.1 - -## 0.2.1-next.0 - -### Patch Changes - -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- c8bb0ff8ce: Minor cleanup of the public API surface to reduce the number of warnings -- Updated dependencies - - @backstage/core-plugin-api@1.0.6-next.0 - - @backstage/core-components@0.11.1-next.0 - - @backstage/integration-react@1.1.4-next.0 - - @backstage/plugin-catalog-react@1.1.4-next.0 - - @backstage/plugin-search-react@1.0.2-next.0 - - @backstage/plugin-adr-common@0.2.1-next.0 - - @backstage/plugin-search-common@1.0.1-next.0 - -## 0.2.0 - -### Minor Changes - -- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` - - BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-adr-common@0.2.0 - - @backstage/core-components@0.11.0 - - @backstage/core-plugin-api@1.0.5 - - @backstage/plugin-catalog-react@1.1.3 - - @backstage/integration-react@1.1.3 - - @backstage/plugin-search-react@1.0.1 - -## 0.2.0-next.2 - -### Minor Changes - -- bfc7c50a09: Display associated entity as a chip in `AdrSearchResultListItem` - - BREAKING: `AdrDocument` now includes a `entityRef` property, if you have a custom `AdrParser` you will have to supply this property in your returned documents - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-adr-common@0.2.0-next.1 - -## 0.1.3-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.3-next.2 - - @backstage/core-components@0.11.0-next.2 - - @backstage/integration-react@1.1.3-next.1 - - @backstage/plugin-search-react@1.0.1-next.1 - -## 0.1.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.0.5-next.0 - - @backstage/integration-react@1.1.3-next.0 - - @backstage/plugin-adr-common@0.1.3-next.0 - - @backstage/plugin-catalog-react@1.1.3-next.0 - - @backstage/core-components@0.10.1-next.0 - - @backstage/plugin-search-react@1.0.1-next.0 - -## 0.1.2 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`. -- 511f49ee43: Updated dependency `octokit` to `^2.0.0`. -- e2d7b76f43: Upgrade git-url-parse to 12.0.0. - - Motivation for upgrade is transitively upgrading parse-url which is vulnerable - to several CVEs detected by Snyk. - - - SNYK-JS-PARSEURL-2935944 - - SNYK-JS-PARSEURL-2935947 - - SNYK-JS-PARSEURL-2936249 - -- 7d47e7e512: Track discover event and result rank for `AdrSearchResultListItem` -- Updated dependencies - - @backstage/core-components@0.10.0 - - @backstage/plugin-search-react@1.0.0 - - @backstage/plugin-search-common@1.0.0 - - @backstage/core-plugin-api@1.0.4 - - @backstage/integration-react@1.1.2 - - @backstage/plugin-catalog-react@1.1.2 - - @backstage/theme@0.2.16 - - @backstage/plugin-adr-common@0.1.2 - -## 0.1.2-next.3 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- 511f49ee43: Updated dependency `octokit` to `^2.0.0`. -- Updated dependencies - - @backstage/core-plugin-api@1.0.4-next.0 - - @backstage/core-components@0.10.0-next.3 - - @backstage/integration-react@1.1.2-next.3 - - @backstage/plugin-catalog-react@1.1.2-next.3 - - @backstage/plugin-search-react@0.2.2-next.3 - -## 0.1.2-next.2 - -### Patch Changes - -- e2d7b76f43: Upgrade git-url-parse to 12.0.0. - - Motivation for upgrade is transitively upgrading parse-url which is vulnerable - to several CVEs detected by Snyk. - - - SNYK-JS-PARSEURL-2935944 - - SNYK-JS-PARSEURL-2935947 - - SNYK-JS-PARSEURL-2936249 - -- Updated dependencies - - @backstage/core-components@0.10.0-next.2 - - @backstage/plugin-search-react@0.2.2-next.2 - - @backstage/theme@0.2.16-next.1 - - @backstage/plugin-catalog-react@1.1.2-next.2 - - @backstage/integration-react@1.1.2-next.2 - -## 0.1.2-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.6-next.1 - - @backstage/theme@0.2.16-next.0 - - @backstage/integration-react@1.1.2-next.1 - - @backstage/plugin-adr-common@0.1.2-next.1 - - @backstage/plugin-catalog-react@1.1.2-next.1 - - @backstage/plugin-search-common@0.3.6-next.0 - - @backstage/plugin-search-react@0.2.2-next.1 - -## 0.1.2-next.0 - -### Patch Changes - -- 7d47e7e512: Track discover event and result rank for `AdrSearchResultListItem` -- Updated dependencies - - @backstage/core-components@0.9.6-next.0 - - @backstage/plugin-adr-common@0.1.2-next.0 - - @backstage/plugin-catalog-react@1.1.2-next.0 - - @backstage/integration-react@1.1.2-next.0 - - @backstage/plugin-search-react@0.2.2-next.0 - -## 0.1.1 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- a6458a120b: Adding term highlighting support to `AdrSearchResultListItem` -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.1 - - @backstage/plugin-search-common@0.3.5 - - @backstage/plugin-search-react@0.2.1 - - @backstage/core-components@0.9.5 - - @backstage/core-plugin-api@1.0.3 - - @backstage/integration-react@1.1.1 - - @backstage/plugin-adr-common@0.1.1 - -## 0.1.1-next.1 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/core-components@0.9.5-next.1 - - @backstage/core-plugin-api@1.0.3-next.0 - - @backstage/integration-react@1.1.1-next.1 - - @backstage/plugin-catalog-react@1.1.1-next.1 - - @backstage/plugin-search-react@0.2.1-next.0 - - @backstage/plugin-search-common@0.3.5-next.0 - - @backstage/plugin-adr-common@0.1.1-next.1 - -## 0.1.1-next.0 - -### Patch Changes - -- a6458a120b: Adding term highlighting support to `AdrSearchResultListItem` -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.1-next.0 - - @backstage/core-components@0.9.5-next.0 - - @backstage/integration-react@1.1.1-next.0 - - @backstage/plugin-adr-common@0.1.1-next.0 - -## 0.1.0 - -### Minor Changes - -- e73075a301: Implement ADR plugin - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.4 - - @backstage/plugin-adr-common@0.1.0 - - @backstage/core-plugin-api@1.0.2 - - @backstage/plugin-catalog-react@1.1.0 - - @backstage/integration-react@1.1.0 - -## 0.1.0-next.0 - -### Minor Changes - -- e73075a301: Implement ADR plugin - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.4-next.0 - - @backstage/plugin-adr-common@0.1.0-next.0 - - @backstage/core-plugin-api@1.0.2-next.0 - - @backstage/plugin-catalog-react@1.1.0-next.1 - - @backstage/integration-react@1.1.0-next.1 diff --git a/plugins/adr/README.md b/plugins/adr/README.md deleted file mode 100644 index aa3e89ce1f..0000000000 --- a/plugins/adr/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Deprecated - -This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-adr` instead. diff --git a/plugins/adr/api-report-alpha.md b/plugins/adr/api-report-alpha.md deleted file mode 100644 index bfa27a6d4f..0000000000 --- a/plugins/adr/api-report-alpha.md +++ /dev/null @@ -1,31 +0,0 @@ -## API Report File for "@backstage/plugin-adr" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -import { BackstagePlugin } from '@backstage/frontend-plugin-api'; -import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; -import { TranslationRef } from '@backstage/core-plugin-api/alpha'; - -// @alpha (undocumented) -export const adrSearchResultListItemExtension: ExtensionDefinition<{ - lineClamp: number; - noTrack: boolean; -}>; - -// @alpha (undocumented) -export const adrTranslationRef: TranslationRef< - 'adr', - { - readonly contentHeaderTitle: 'Architecture Decision Records'; - readonly failedToFetch: 'Failed to fetch ADRs'; - readonly notFound: 'No ADRs found'; - } ->; - -// @alpha (undocumented) -const _default: BackstagePlugin<{}, {}>; -export default _default; - -// (No @packageDocumentation comment for this package) -``` diff --git a/plugins/adr/api-report.md b/plugins/adr/api-report.md deleted file mode 100644 index 9ce5834574..0000000000 --- a/plugins/adr/api-report.md +++ /dev/null @@ -1,117 +0,0 @@ -## API Report File for "@backstage/plugin-adr" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -/// - -import { AdrDocument } from '@backstage/plugin-adr-common'; -import { AdrFilePathFilterFn } from '@backstage/plugin-adr-common'; -import { ApiRef } from '@backstage/core-plugin-api'; -import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { DiscoveryApi } from '@backstage/core-plugin-api'; -import { FetchApi } from '@backstage/core-plugin-api'; -import { isAdrAvailable } from '@backstage/plugin-adr-common'; -import { JSX as JSX_2 } from 'react'; -import { default as React_2 } from 'react'; -import { ReactNode } from 'react'; -import { ResultHighlight } from '@backstage/plugin-search-common'; -import { RouteRef } from '@backstage/core-plugin-api'; - -// @public -export interface AdrApi { - listAdrs(url: string): Promise; - readAdr(url: string): Promise; -} - -// @public -export const adrApiRef: ApiRef; - -// @public -export class AdrClient implements AdrApi { - constructor(options: AdrClientOptions); - // (undocumented) - listAdrs(url: string): Promise; - // (undocumented) - readAdr(url: string): Promise; -} - -// @public -export interface AdrClientOptions { - // (undocumented) - discoveryApi: DiscoveryApi; - // (undocumented) - fetchApi: FetchApi; -} - -// @public -export type AdrContentDecorator = (adrInfo: { - baseUrl: string; - content: string; -}) => { - content: string; -}; - -// @public -export type AdrFileInfo = { - type: string; - path: string; - name: string; - title?: string; - status?: string; - date?: string; -}; - -// @public -export type AdrListResult = { - data: AdrFileInfo[]; -}; - -// @public -export const adrPlugin: BackstagePlugin< - { - root: RouteRef; - }, - {} ->; - -// @public -export const AdrReader: { - (props: { - adr: string; - decorators?: AdrContentDecorator[]; - }): React_2.JSX.Element; - decorators: Readonly<{ - createRewriteRelativeLinksDecorator(): AdrContentDecorator; - createRewriteRelativeEmbedsDecorator(): AdrContentDecorator; - createFrontMatterFormatterDecorator(): AdrContentDecorator; - }>; -}; - -// @public -export type AdrReadResult = { - data: string; -}; - -// @public -export const AdrSearchResultListItem: ( - props: AdrSearchResultListItemProps, -) => JSX.Element | null; - -// @public (undocumented) -export type AdrSearchResultListItemProps = { - lineClamp?: number; - highlight?: ResultHighlight; - icon?: ReactNode; - rank?: number; - result?: AdrDocument; -}; - -// @public -export const EntityAdrContent: (props: { - contentDecorators?: AdrContentDecorator[] | undefined; - filePathFilterFn?: AdrFilePathFilterFn | undefined; -}) => JSX_2.Element; - -export { isAdrAvailable }; -``` diff --git a/plugins/adr/catalog-info.yaml b/plugins/adr/catalog-info.yaml deleted file mode 100644 index 61fb6116d6..0000000000 --- a/plugins/adr/catalog-info.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: backstage-plugin-adr - title: '@backstage/plugin-adr' -spec: - lifecycle: experimental - type: backstage-frontend-plugin - owner: kuangp diff --git a/plugins/adr/docs/adr-tab.png b/plugins/adr/docs/adr-tab.png deleted file mode 100644 index d9dd728221..0000000000 Binary files a/plugins/adr/docs/adr-tab.png and /dev/null differ diff --git a/plugins/adr/examples/component/catalog-info.yaml b/plugins/adr/examples/component/catalog-info.yaml deleted file mode 100644 index 580110243f..0000000000 --- a/plugins/adr/examples/component/catalog-info.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: component-with-adrs - title: Component With ADRs - description: A Service with ADRs registerd - annotations: - backstage.io/adr-location: https://github.com/adr/madr/tree/develop/docs/decisions -spec: - type: service - lifecycle: experimental - owner: user:guest diff --git a/plugins/adr/knip-report.md b/plugins/adr/knip-report.md deleted file mode 100644 index ba9c1dddc5..0000000000 --- a/plugins/adr/knip-report.md +++ /dev/null @@ -1,9 +0,0 @@ -# Knip report - -## Unused devDependencies (2) - -| Name | Location | Severity | -| :--------------------- | :----------- | :------- | -| @testing-library/react | package.json | error | -| @testing-library/dom | package.json | error | - diff --git a/plugins/adr/package.json b/plugins/adr/package.json deleted file mode 100644 index bdf54391e8..0000000000 --- a/plugins/adr/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "@backstage/plugin-adr", - "version": "0.6.17", - "backstage": { - "role": "frontend-plugin", - "moved": "@backstage-community/plugin-adr" - }, - "publishConfig": { - "access": "public" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/adr" - }, - "license": "Apache-2.0", - "sideEffects": false, - "exports": { - ".": "./src/index.ts", - "./alpha": "./src/alpha.tsx", - "./package.json": "./package.json" - }, - "main": "src/index.ts", - "types": "src/index.ts", - "typesVersions": { - "*": { - "alpha": [ - "src/alpha.tsx" - ], - "package.json": [ - "package.json" - ] - } - }, - "files": [ - "dist" - ], - "scripts": { - "build": "backstage-cli package build", - "clean": "backstage-cli package clean", - "lint": "backstage-cli package lint", - "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack", - "start": "backstage-cli package start", - "test": "backstage-cli package test" - }, - "dependencies": { - "@backstage/catalog-model": "workspace:^", - "@backstage/core-components": "workspace:^", - "@backstage/core-plugin-api": "workspace:^", - "@backstage/frontend-plugin-api": "workspace:^", - "@backstage/integration-react": "workspace:^", - "@backstage/plugin-adr-common": "workspace:^", - "@backstage/plugin-catalog-react": "workspace:^", - "@backstage/plugin-search-common": "workspace:^", - "@backstage/plugin-search-react": "workspace:^", - "@material-ui/core": "^4.12.2", - "@material-ui/icons": "^4.9.1", - "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "lodash": "^4.17.21", - "react-use": "^17.2.4" - }, - "devDependencies": { - "@backstage/cli": "workspace:^", - "@testing-library/dom": "^10.0.0", - "@testing-library/jest-dom": "^6.0.0", - "@testing-library/react": "^15.0.0" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-router-dom": "6.0.0-beta.0 || ^6.3.0" - }, - "deprecated": "This package has been moved to the backstage/community-plugins repository. You should migrate to using @backstage-community/plugin-adr instead." -} diff --git a/plugins/adr/src/alpha.tsx b/plugins/adr/src/alpha.tsx deleted file mode 100644 index 4abba11fcf..0000000000 --- a/plugins/adr/src/alpha.tsx +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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 React from 'react'; -import { - createPlugin, - createSchemaFromZod, -} from '@backstage/frontend-plugin-api'; -import { createSearchResultListItemExtension } from '@backstage/plugin-search-react/alpha'; -import { AdrDocument } from '@backstage/plugin-adr-common'; - -export * from './translations'; - -function isAdrDocument(result: any): result is AdrDocument { - return result.entityRef; -} - -/** @alpha */ -export const adrSearchResultListItemExtension = - createSearchResultListItemExtension({ - configSchema: createSchemaFromZod(z => - z.object({ - // TODO: Define how the icon can be configurable - noTrack: z.boolean().default(false), - lineClamp: z.number().default(5), - }), - ), - predicate: result => result.type === 'adr', - component: async ({ config }) => { - const { AdrSearchResultListItem } = await import( - './search/AdrSearchResultListItem' - ); - return ({ result, ...rest }) => - isAdrDocument(result) ? ( - - ) : null; - }, - }); - -/** @alpha */ -export default createPlugin({ - id: 'adr', - extensions: [adrSearchResultListItemExtension], -}); diff --git a/plugins/adr/src/api/AdrClient.ts b/plugins/adr/src/api/AdrClient.ts deleted file mode 100644 index 9b85e8680d..0000000000 --- a/plugins/adr/src/api/AdrClient.ts +++ /dev/null @@ -1,69 +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 { DiscoveryApi, FetchApi } from '@backstage/core-plugin-api'; -import { AdrApi, AdrListResult, AdrReadResult } from './types'; - -/** - * Options for creating an AdrClient. - * - * @public - */ -export interface AdrClientOptions { - discoveryApi: DiscoveryApi; - fetchApi: FetchApi; -} - -const readEndpoint = 'file'; -const listEndpoint = 'list'; - -/** - * An implementation of the AdrApi that communicates with the ADR backend plugin. - * - * @public - */ -export class AdrClient implements AdrApi { - private readonly discoveryApi: DiscoveryApi; - private readonly fetchApi: FetchApi; - - constructor(options: AdrClientOptions) { - this.discoveryApi = options.discoveryApi; - this.fetchApi = options.fetchApi; - } - - private async fetchAdrApi(endpoint: string, fileUrl: string): Promise { - const baseUrl = await this.discoveryApi.getBaseUrl('adr'); - const targetUrl = `${baseUrl}/${endpoint}?url=${encodeURIComponent( - fileUrl, - )}`; - - const result = await this.fetchApi.fetch(targetUrl); - const data = await result.json(); - - if (!result.ok) { - throw new Error(`${data.message}`); - } - return data; - } - - async listAdrs(url: string): Promise { - return this.fetchAdrApi(listEndpoint, url); - } - - async readAdr(url: string): Promise { - return this.fetchAdrApi(readEndpoint, url); - } -} diff --git a/plugins/adr/src/api/index.ts b/plugins/adr/src/api/index.ts deleted file mode 100644 index 095da3519d..0000000000 --- a/plugins/adr/src/api/index.ts +++ /dev/null @@ -1,25 +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. - */ - -export { AdrClient } from './AdrClient'; -export type { AdrClientOptions } from './AdrClient'; -export { adrApiRef } from './types'; -export type { - AdrApi, - AdrFileInfo, - AdrListResult, - AdrReadResult, -} from './types'; diff --git a/plugins/adr/src/api/types.ts b/plugins/adr/src/api/types.ts deleted file mode 100644 index 0af35cc6df..0000000000 --- a/plugins/adr/src/api/types.ts +++ /dev/null @@ -1,83 +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 { createApiRef } from '@backstage/core-plugin-api'; - -/** - * Contains information about an ADR file. - * - * @public - */ -export type AdrFileInfo = { - /** The file type. */ - type: string; - - /** The relative path of the ADR file. */ - path: string; - - /** The name of the ADR file. */ - name: string; - - /** The title of the ADR. */ - title?: string; - - /** The status of the ADR. */ - status?: string; - - /** The date of the ADR. */ - date?: string; -}; - -/** - * The result of listing ADRs. - * - * @public - */ -export type AdrListResult = { - data: AdrFileInfo[]; -}; - -/** - * The result of reading an ADR. - * - * @public - */ -export type AdrReadResult = { - /** The contents of the read ADR file. */ - data: string; -}; - -/** - * The API used by the adr plugin to list and read ADRs. - * - * @public - */ -export interface AdrApi { - /** Lists the ADRs at the provided url. */ - listAdrs(url: string): Promise; - - /** Reads the contents of the ADR at the provided url. */ - readAdr(url: string): Promise; -} - -/** - * ApiRef for the AdrApi. - * - * @public - */ -export const adrApiRef = createApiRef({ - id: 'plugin.adr.api', -}); diff --git a/plugins/adr/src/components/AdrReader/AdrReader.tsx b/plugins/adr/src/components/AdrReader/AdrReader.tsx deleted file mode 100644 index a30cc38f19..0000000000 --- a/plugins/adr/src/components/AdrReader/AdrReader.tsx +++ /dev/null @@ -1,87 +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 React, { useMemo } from 'react'; -import { - InfoCard, - MarkdownContent, - Progress, - WarningPanel, -} from '@backstage/core-components'; -import { useApi } from '@backstage/core-plugin-api'; -import { scmIntegrationsApiRef } from '@backstage/integration-react'; -import { getAdrLocationUrl } from '@backstage/plugin-adr-common'; -import { useEntity } from '@backstage/plugin-catalog-react'; - -import { adrDecoratorFactories } from './decorators'; -import { AdrContentDecorator } from './types'; -import { adrApiRef } from '../../api'; -import useAsync from 'react-use/esm/useAsync'; - -/** - * Component to fetch and render an ADR. - * - * @public - */ -export const AdrReader = (props: { - adr: string; - decorators?: AdrContentDecorator[]; -}) => { - const { adr, decorators } = props; - const { entity } = useEntity(); - const scmIntegrations = useApi(scmIntegrationsApiRef); - const adrApi = useApi(adrApiRef); - const adrLocationUrl = getAdrLocationUrl(entity, scmIntegrations); - const adrFileLocationUrl = getAdrLocationUrl(entity, scmIntegrations, adr); - - const { value, loading, error } = useAsync( - async () => adrApi.readAdr(adrFileLocationUrl), - [adrFileLocationUrl], - ); - - const adrContent = useMemo(() => { - if (!value?.data) { - return ''; - } - const adrDecorators = decorators ?? [ - adrDecoratorFactories.createRewriteRelativeLinksDecorator(), - adrDecoratorFactories.createRewriteRelativeEmbedsDecorator(), - adrDecoratorFactories.createFrontMatterFormatterDecorator(), - ]; - - return adrDecorators.reduce( - (content, decorator) => - decorator({ baseUrl: adrLocationUrl, content }).content, - value.data, - ); - }, [adrLocationUrl, decorators, value]); - - return ( - - {loading && } - - {!loading && error && ( - - )} - - {!loading && !error && value?.data && ( - - )} - - ); -}; - -AdrReader.decorators = adrDecoratorFactories; diff --git a/plugins/adr/src/components/AdrReader/decorators.ts b/plugins/adr/src/components/AdrReader/decorators.ts deleted file mode 100644 index 980eab5179..0000000000 --- a/plugins/adr/src/components/AdrReader/decorators.ts +++ /dev/null @@ -1,67 +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 { parseMadrWithFrontmatter } from '@backstage/plugin-adr-common'; -import { AdrContentDecorator } from './types'; - -/** - * - * Factory for creating default ADR content decorators. The adrDecoratorFactories - * symbol is not directly exported, but through the AdrReader.decorators field. - * @public - */ -export const adrDecoratorFactories = Object.freeze({ - /** - * Rewrites relative Markdown links as absolute links. - */ - createRewriteRelativeLinksDecorator(): AdrContentDecorator { - return ({ baseUrl, content }) => ({ - content: content.replace( - /\[([^\[\]]*)\]\((?!https?:\/\/)(.*?)(\.md)\)/gim, - `[$1](${baseUrl}/$2$3)`, - ), - }); - }, - /** - * Rewrites relative Markdown embeds using absolute URLs. - */ - createRewriteRelativeEmbedsDecorator(): AdrContentDecorator { - return ({ baseUrl, content }) => ({ - content: content.replace( - /!\[([^\[\]]*)\]\((?!https?:\/\/)(.*?)(\.png|\.jpg|\.jpeg|\.gif|\.webp)(.*)\)/gim, - `![$1](${baseUrl}/$2$3$4)`, - ), - }); - }, - /** - * Formats YAML front-matter into a table format (if any exists in the markdown document) - */ - createFrontMatterFormatterDecorator(): AdrContentDecorator { - return ({ content }) => { - const parsedFrontmatter = parseMadrWithFrontmatter(content); - let table = ''; - const attrs = parsedFrontmatter.attributes; - if (Object.keys(attrs).length > 0) { - const stripNewLines = (val: unknown) => - String(val).replaceAll('\n', '
'); - const row = (vals: string[]) => `|${vals.join('|')}|\n`; - table = `${row(Object.keys(attrs))}`; - table += `${row(Object.keys(attrs).map(() => '---'))}`; - table += `${row(Object.values(attrs).map(stripNewLines))}\n\n`; - } - return { content: table + parsedFrontmatter.content }; - }; - }, -}); diff --git a/plugins/adr/src/components/AdrReader/index.ts b/plugins/adr/src/components/AdrReader/index.ts deleted file mode 100644 index 8482351016..0000000000 --- a/plugins/adr/src/components/AdrReader/index.ts +++ /dev/null @@ -1,17 +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. - */ -export * from './AdrReader'; -export * from './types'; diff --git a/plugins/adr/src/components/AdrReader/types.ts b/plugins/adr/src/components/AdrReader/types.ts deleted file mode 100644 index f12906c00b..0000000000 --- a/plugins/adr/src/components/AdrReader/types.ts +++ /dev/null @@ -1,25 +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. - */ - -/** - * ADR content decorator function type. Decorators are responsible for - * performing any necessary transformations on the ADR content before rendering. - * @public - */ -export type AdrContentDecorator = (adrInfo: { - baseUrl: string; - content: string; -}) => { content: string }; diff --git a/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx b/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx deleted file mode 100644 index a6adedb8ec..0000000000 --- a/plugins/adr/src/components/EntityAdrContent/EntityAdrContent.tsx +++ /dev/null @@ -1,261 +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 React, { useEffect, useState } from 'react'; -import { Link, useSearchParams } from 'react-router-dom'; -import useAsync from 'react-use/esm/useAsync'; - -import groupBy from 'lodash/groupBy'; - -import { - Content, - ContentHeader, - InfoCard, - Progress, - SupportButton, - WarningPanel, -} from '@backstage/core-components'; -import { configApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api'; -import { scmIntegrationsApiRef } from '@backstage/integration-react'; -import { - AdrFilePathFilterFn, - ANNOTATION_ADR_LOCATION, - getAdrLocationUrl, - isAdrAvailable, - madrFilePathFilter, -} from '@backstage/plugin-adr-common'; -import { - useEntity, - MissingAnnotationEmptyState, -} from '@backstage/plugin-catalog-react'; -import Box from '@material-ui/core/Box'; -import Chip from '@material-ui/core/Chip'; -import Collapse from '@material-ui/core/Collapse'; -import Grid from '@material-ui/core/Grid'; -import List from '@material-ui/core/List'; -import ListItem from '@material-ui/core/ListItem'; -import ListItemIcon from '@material-ui/core/ListItemIcon'; -import ListItemText from '@material-ui/core/ListItemText'; -import Typography from '@material-ui/core/Typography'; -import { makeStyles, Theme } from '@material-ui/core/styles'; -import ExpandLess from '@material-ui/icons/ExpandLess'; -import ExpandMore from '@material-ui/icons/ExpandMore'; -import FolderIcon from '@material-ui/icons/Folder'; - -import { adrApiRef, AdrFileInfo } from '../../api'; -import { rootRouteRef } from '../../routes'; -import { AdrContentDecorator, AdrReader } from '../AdrReader'; -import { useTranslationRef } from '@backstage/core-plugin-api/alpha'; -import { adrTranslationRef } from '../../translations'; - -const useStyles = makeStyles((theme: Theme) => ({ - adrMenu: { - backgroundColor: theme.palette.background.paper, - }, - adrContainerTitle: { - color: theme.palette.grey[700], - marginBottom: theme.spacing(1), - }, - adrBox: { - display: 'flex', - justifyContent: 'space-between', - marginTop: '10px', - }, -})); - -const AdrListContainer = (props: { - adrs: AdrFileInfo[]; - selectedAdr: string; - title: string; -}) => { - const { adrs, selectedAdr, title } = props; - const classes = useStyles(); - const rootLink = useRouteRef(rootRouteRef); - const [open, setOpen] = React.useState(true); - - const getChipColor = (status: string) => { - switch (status) { - case 'accepted': - return 'primary'; - case 'rejected': - case 'deprecated': - return 'secondary'; - default: - return 'default'; - } - }; - - const handleClick = () => { - setOpen(!open); - }; - - return ( - <> - {title && ( - - - - - - {open ? : } - - )} - - - {adrs.map((adr, idx) => ( - - - {adr.date} - {adr.status && ( - - )} - - } - /> - - ))} - - - - ); -}; - -/** - * Component for browsing ADRs on an entity page. - * @public - */ -export const EntityAdrContent = (props: { - contentDecorators?: AdrContentDecorator[]; - filePathFilterFn?: AdrFilePathFilterFn; -}) => { - const { contentDecorators, filePathFilterFn } = props; - const classes = useStyles(); - const { entity } = useEntity(); - const [adrList, setAdrList] = useState([]); - const [searchParams, setSearchParams] = useSearchParams(); - const scmIntegrations = useApi(scmIntegrationsApiRef); - const adrApi = useApi(adrApiRef); - const entityHasAdrs = isAdrAvailable(entity); - const { t } = useTranslationRef(adrTranslationRef); - - const config = useApi(configApiRef); - const appSupportConfigured = config?.getOptionalConfig('app.support'); - - const { value, loading, error } = useAsync(async () => { - const url = getAdrLocationUrl(entity, scmIntegrations); - return adrApi.listAdrs(url); - }, [entity, scmIntegrations]); - - const selectedAdr = - adrList.find(adr => adr.path === searchParams.get('record'))?.path ?? ''; - - const adrSubDirectoryFunc = (adr: AdrFileInfo) => { - return adr.path.split('/').slice(0, -1).join('/'); - }; - - useEffect(() => { - if (adrList.length && !selectedAdr) { - searchParams.set('record', adrList[0].path); - setSearchParams(searchParams, { replace: true }); - } - }); - - useEffect(() => { - if (!value?.data) { - return; - } - - const adrs: AdrFileInfo[] = value.data.filter( - (item: AdrFileInfo) => - item.type === 'file' && - (filePathFilterFn - ? filePathFilterFn(item.path) - : madrFilePathFilter(item.path)), - ); - - setAdrList(adrs); - }, [filePathFilterFn, value]); - - const adrListGrouped = Object.entries( - groupBy(adrList, adrSubDirectoryFunc), - ).sort(); - - return ( - - - {appSupportConfigured && } - - - {!entityHasAdrs && ( - - )} - - {loading && } - - {entityHasAdrs && !loading && error && ( - - )} - - {entityHasAdrs && - !loading && - !error && - (adrList.length ? ( - - - - - {adrListGrouped.map(([title, adrs], idx) => ( - - ))} - - - - - - - - ) : ( - {t('notFound')} - ))} - - ); -}; diff --git a/plugins/adr/src/components/EntityAdrContent/index.ts b/plugins/adr/src/components/EntityAdrContent/index.ts deleted file mode 100644 index 4552d4e87d..0000000000 --- a/plugins/adr/src/components/EntityAdrContent/index.ts +++ /dev/null @@ -1,16 +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. - */ -export { EntityAdrContent } from './EntityAdrContent'; diff --git a/plugins/adr/src/index.ts b/plugins/adr/src/index.ts deleted file mode 100644 index f405621c4a..0000000000 --- a/plugins/adr/src/index.ts +++ /dev/null @@ -1,34 +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. - */ - -/** - * Architecture Decision Records frontend plugin. - * - * @packageDocumentation - */ - -export { adrApiRef, AdrClient } from './api'; -export type { - AdrApi, - AdrClientOptions, - AdrFileInfo, - AdrListResult, - AdrReadResult, -} from './api'; -export { isAdrAvailable } from '@backstage/plugin-adr-common'; -export * from './components/AdrReader'; -export { adrPlugin, AdrSearchResultListItem, EntityAdrContent } from './plugin'; -export type { AdrSearchResultListItemProps } from './search'; diff --git a/plugins/adr/src/plugin.test.ts b/plugins/adr/src/plugin.test.ts deleted file mode 100644 index e311bf98e6..0000000000 --- a/plugins/adr/src/plugin.test.ts +++ /dev/null @@ -1,22 +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 { adrPlugin } from './plugin'; - -describe('adr', () => { - it('should export plugin', () => { - expect(adrPlugin).toBeDefined(); - }); -}); diff --git a/plugins/adr/src/plugin.ts b/plugins/adr/src/plugin.ts deleted file mode 100644 index d173ef5d78..0000000000 --- a/plugins/adr/src/plugin.ts +++ /dev/null @@ -1,81 +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 { adrApiRef, AdrClient } from './api'; -import { - createApiFactory, - createPlugin, - createRoutableExtension, - discoveryApiRef, - fetchApiRef, -} from '@backstage/core-plugin-api'; -import { createSearchResultListItemExtension } from '@backstage/plugin-search-react'; -import { rootRouteRef } from './routes'; -import { AdrSearchResultListItemProps } from './search'; - -/** - * The Backstage plugin that holds ADR specific components - * @public - */ -export const adrPlugin = createPlugin({ - id: 'adr', - apis: [ - createApiFactory({ - api: adrApiRef, - deps: { - discoveryApi: discoveryApiRef, - fetchApi: fetchApiRef, - }, - factory({ discoveryApi, fetchApi }) { - return new AdrClient({ discoveryApi, fetchApi }); - }, - }), - ], - routes: { - root: rootRouteRef, - }, -}); - -/** - * An extension for browsing ADRs on an entity page. - * @public - */ -export const EntityAdrContent = adrPlugin.provide( - createRoutableExtension({ - name: 'EntityAdrContent', - component: () => - import('./components/EntityAdrContent').then(m => m.EntityAdrContent), - mountPoint: rootRouteRef, - }), -); - -/** - * React extension used to render results on Search page or modal - * - * @public - */ -export const AdrSearchResultListItem: ( - props: AdrSearchResultListItemProps, -) => JSX.Element | null = adrPlugin.provide( - createSearchResultListItemExtension({ - name: 'AdrSearchResultListItem', - component: () => - import('./search/AdrSearchResultListItem').then( - m => m.AdrSearchResultListItem, - ), - predicate: result => result.type === 'adr', - }), -); diff --git a/plugins/adr/src/routes.ts b/plugins/adr/src/routes.ts deleted file mode 100644 index 0ec5c71294..0000000000 --- a/plugins/adr/src/routes.ts +++ /dev/null @@ -1,24 +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 } from '@backstage/core-plugin-api'; - -/** - * Root route ref for the ADR plugin - * @public - */ -export const rootRouteRef = createRouteRef({ - id: 'adr', -}); diff --git a/plugins/adr/src/search/AdrSearchResultListItem.tsx b/plugins/adr/src/search/AdrSearchResultListItem.tsx deleted file mode 100644 index 5110b302a9..0000000000 --- a/plugins/adr/src/search/AdrSearchResultListItem.tsx +++ /dev/null @@ -1,126 +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 React, { ReactNode } from 'react'; -import Box from '@material-ui/core/Box'; -import Chip from '@material-ui/core/Chip'; -import ListItemIcon from '@material-ui/core/ListItemIcon'; -import ListItemText from '@material-ui/core/ListItemText'; -import { makeStyles } from '@material-ui/core/styles'; -import Typography from '@material-ui/core/Typography'; -import { parseEntityRef } from '@backstage/catalog-model'; -import { Link } from '@backstage/core-components'; -import { AdrDocument } from '@backstage/plugin-adr-common'; -import { humanizeEntityRef } from '@backstage/plugin-catalog-react'; -import { ResultHighlight } from '@backstage/plugin-search-common'; -import { HighlightedSearchResultText } from '@backstage/plugin-search-react'; - -const useStyles = makeStyles({ - item: { - display: 'flex', - }, - flexContainer: { - flexWrap: 'wrap', - }, - itemText: { - width: '100%', - wordBreak: 'break-all', - marginBottom: '1rem', - }, -}); - -/** - * @public - */ -export type AdrSearchResultListItemProps = { - lineClamp?: number; - highlight?: ResultHighlight; - icon?: ReactNode; - rank?: number; - result?: AdrDocument; -}; - -/** - * A component to display an ADR search result. - * @public - */ -export function AdrSearchResultListItem(props: AdrSearchResultListItemProps) { - const { lineClamp = 5, highlight, icon, result } = props; - const classes = useStyles(); - - if (!result) return null; - - return ( -
- {icon && {icon}} -
- - {highlight?.fields.title ? ( - - ) : ( - result.title - )} - - } - secondary={ - - {highlight?.fields.text ? ( - - ) : ( - result.text - )} - - } - /> - - - {result.status && ( - - )} - {result.date && } - -
-
- ); -} diff --git a/plugins/adr/src/search/index.ts b/plugins/adr/src/search/index.ts deleted file mode 100644 index a20f553959..0000000000 --- a/plugins/adr/src/search/index.ts +++ /dev/null @@ -1,16 +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. - */ -export type { AdrSearchResultListItemProps } from './AdrSearchResultListItem'; diff --git a/plugins/adr/src/setupTests.ts b/plugins/adr/src/setupTests.ts deleted file mode 100644 index 326d2ed212..0000000000 --- a/plugins/adr/src/setupTests.ts +++ /dev/null @@ -1,16 +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 '@testing-library/jest-dom'; diff --git a/plugins/adr/src/translations.ts b/plugins/adr/src/translations.ts deleted file mode 100644 index 038b0fd064..0000000000 --- a/plugins/adr/src/translations.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * 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 { createTranslationRef } from '@backstage/core-plugin-api/alpha'; - -/** @alpha */ -export const adrTranslationRef = createTranslationRef({ - id: 'adr', - messages: { - contentHeaderTitle: 'Architecture Decision Records', - failedToFetch: 'Failed to fetch ADRs', - notFound: 'No ADRs found', - }, -}); diff --git a/plugins/airbrake-backend/.eslintrc.js b/plugins/airbrake-backend/.eslintrc.js deleted file mode 100644 index e2a53a6ad2..0000000000 --- a/plugins/airbrake-backend/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/airbrake-backend/CHANGELOG.md b/plugins/airbrake-backend/CHANGELOG.md deleted file mode 100644 index f5ebe4ef70..0000000000 --- a/plugins/airbrake-backend/CHANGELOG.md +++ /dev/null @@ -1,914 +0,0 @@ -# @backstage/plugin-airbrake-backend - -## 0.3.14 - -### Patch Changes - -- d5a1fe1: Replaced winston logger with `LoggerService` -- e5a2ccc: Updated dependency `@types/http-proxy-middleware` to `^1.0.0`. -- Updated dependencies - - @backstage/backend-common@0.21.7 - - @backstage/backend-plugin-api@0.6.17 - - @backstage/config@1.2.0 - -## 0.3.14-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.7-next.1 - - @backstage/backend-plugin-api@0.6.17-next.1 - - @backstage/config@1.2.0 - -## 0.3.14-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.7-next.0 - - @backstage/backend-plugin-api@0.6.17-next.0 - - @backstage/config@1.2.0 - -## 0.3.13 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.6 - - @backstage/backend-plugin-api@0.6.16 - - @backstage/config@1.2.0 - -## 0.3.12 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.5 - - @backstage/backend-plugin-api@0.6.15 - - @backstage/config@1.2.0 - -## 0.3.11 - -### Patch Changes - -- 4467036: Allow unauthenticated access to health check endpoint. -- Updated dependencies - - @backstage/backend-common@0.21.4 - - @backstage/config@1.2.0 - - @backstage/backend-plugin-api@0.6.14 - -## 0.3.11-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.4-next.2 - - @backstage/backend-plugin-api@0.6.14-next.2 - - @backstage/config@1.2.0-next.1 - -## 0.3.11-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/config@1.2.0-next.1 - - @backstage/backend-common@0.21.4-next.1 - - @backstage/backend-plugin-api@0.6.14-next.1 - -## 0.3.10-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.3-next.0 - - @backstage/backend-plugin-api@0.6.13-next.0 - - @backstage/config@1.1.2-next.0 - -## 0.3.7 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.0 - - @backstage/backend-plugin-api@0.6.10 - - @backstage/config@1.1.1 - -## 0.3.7-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.0-next.3 - - @backstage/backend-plugin-api@0.6.10-next.3 - - @backstage/config@1.1.1 - -## 0.3.7-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.0-next.2 - - @backstage/backend-plugin-api@0.6.10-next.2 - - @backstage/config@1.1.1 - -## 0.3.7-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-plugin-api@0.6.10-next.1 - - @backstage/backend-common@0.21.0-next.1 - - @backstage/config@1.1.1 - -## 0.3.7-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.21.0-next.0 - - @backstage/backend-plugin-api@0.6.10-next.0 - - @backstage/config@1.1.1 - -## 0.3.6 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/backend-common@0.20.1 - - @backstage/backend-plugin-api@0.6.9 - - @backstage/config@1.1.1 - -## 0.3.6-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-plugin-api@0.6.9-next.2 - - @backstage/backend-common@0.20.1-next.2 - -## 0.3.6-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.1-next.1 - - @backstage/config@1.1.1 - - @backstage/backend-plugin-api@0.6.9-next.1 - -## 0.3.6-next.0 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/backend-common@0.20.1-next.0 - - @backstage/backend-plugin-api@0.6.9-next.0 - - @backstage/config@1.1.1 - -## 0.3.5 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0 - - @backstage/backend-plugin-api@0.6.8 - - @backstage/config@1.1.1 - -## 0.3.5-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0-next.3 - - @backstage/backend-plugin-api@0.6.8-next.3 - - @backstage/config@1.1.1 - -## 0.3.5-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0-next.2 - - @backstage/backend-plugin-api@0.6.8-next.2 - - @backstage/config@1.1.1 - -## 0.3.5-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0-next.1 - - @backstage/backend-plugin-api@0.6.8-next.1 - - @backstage/config@1.1.1 - -## 0.3.5-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.20.0-next.0 - - @backstage/backend-plugin-api@0.6.8-next.0 - - @backstage/config@1.1.1 - -## 0.3.4 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.9 - - @backstage/backend-plugin-api@0.6.7 - - @backstage/config@1.1.1 - -## 0.3.4-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-plugin-api@0.6.7-next.2 - - @backstage/backend-common@0.19.9-next.2 - -## 0.3.4-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.9-next.1 - - @backstage/backend-plugin-api@0.6.7-next.1 - - @backstage/config@1.1.1 - -## 0.3.4-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.9-next.0 - - @backstage/backend-plugin-api@0.6.7-next.0 - - @backstage/config@1.1.1 - -## 0.3.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.8 - - @backstage/backend-plugin-api@0.6.6 - - @backstage/config@1.1.1 - -## 0.3.3-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.8-next.2 - - @backstage/backend-plugin-api@0.6.6-next.2 - - @backstage/config@1.1.1-next.0 - -## 0.3.2-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.7-next.1 - - @backstage/backend-plugin-api@0.6.5-next.1 - - @backstage/config@1.1.0 - -## 0.3.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.7-next.0 - - @backstage/config@1.1.0 - - @backstage/backend-plugin-api@0.6.5-next.0 - -## 0.3.0 - -### Minor Changes - -- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. - - For example, if you are currently importing the plugin using the following pattern: - - ```ts - import { examplePlugin } from '@backstage/plugin-example-backend'; - - backend.add(examplePlugin); - ``` - - It should be migrated to this: - - ```ts - backend.add(import('@backstage/plugin-example-backend')); - ``` - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.5 - - @backstage/config@1.1.0 - - @backstage/backend-plugin-api@0.6.3 - -## 0.3.0-next.3 - -### Minor Changes - -- 71114ac50e02: **BREAKING**: The export for the new backend system has been moved to be the `default` export. - - For example, if you are currently importing the plugin using the following pattern: - - ```ts - import { examplePlugin } from '@backstage/plugin-example-backend'; - - backend.add(examplePlugin); - ``` - - It should be migrated to this: - - ```ts - backend.add(import('@backstage/plugin-example-backend')); - ``` - -### Patch Changes - -- Updated dependencies - - @backstage/config@1.1.0-next.2 - - @backstage/backend-plugin-api@0.6.3-next.3 - - @backstage/backend-common@0.19.5-next.3 - -## 0.2.24-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/config@1.1.0-next.1 - - @backstage/backend-common@0.19.5-next.2 - - @backstage/backend-plugin-api@0.6.3-next.2 - -## 0.2.24-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/config@1.1.0-next.0 - - @backstage/backend-common@0.19.5-next.1 - - @backstage/backend-plugin-api@0.6.3-next.1 - -## 0.2.23-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.4-next.0 - - @backstage/backend-plugin-api@0.6.2-next.0 - - @backstage/config@1.0.8 - -## 0.2.21 - -### Patch Changes - -- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` -- 12a8c94eda8d: Add package repository and homepage metadata -- Updated dependencies - - @backstage/backend-common@0.19.2 - - @backstage/backend-plugin-api@0.6.0 - - @backstage/config@1.0.8 - -## 0.2.21-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-plugin-api@0.6.0-next.2 - - @backstage/backend-common@0.19.2-next.2 - -## 0.2.21-next.1 - -### Patch Changes - -- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` -- 12a8c94eda8d: Add package repository and homepage metadata -- Updated dependencies - - @backstage/backend-common@0.19.2-next.1 - - @backstage/backend-plugin-api@0.6.0-next.1 - - @backstage/config@1.0.8 - -## 0.2.21-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.2-next.0 - - @backstage/backend-plugin-api@0.5.5-next.0 - - @backstage/config@1.0.8 - -## 0.2.20 - -### Patch Changes - -- a95bb64e461a: Added support for the [new backend system](https://backstage.io/docs/backend-system/) -- Updated dependencies - - @backstage/backend-common@0.19.1 - - @backstage/backend-plugin-api@0.5.4 - - @backstage/config@1.0.8 - -## 0.2.20-next.1 - -### Patch Changes - -- a95bb64e461a: Added support for the [new backend system](https://backstage.io/docs/backend-system/) -- Updated dependencies - - @backstage/backend-common@0.19.1-next.0 - - @backstage/backend-plugin-api@0.5.4-next.0 - - @backstage/config@1.0.8 - -## 0.2.20-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.1-next.0 - - @backstage/config@1.0.8 - -## 0.2.19 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.0 - - @backstage/config@1.0.8 - -## 0.2.19-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.0-next.2 - - @backstage/config@1.0.7 - -## 0.2.19-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.19.0-next.1 - - @backstage/config@1.0.7 - -## 0.2.19-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.6-next.0 - - @backstage/config@1.0.7 - -## 0.2.18 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.5 - - @backstage/config@1.0.7 - -## 0.2.18-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.5-next.1 - - @backstage/config@1.0.7 - -## 0.2.18-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.5-next.0 - - @backstage/config@1.0.7 - -## 0.2.17 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.4 - - @backstage/config@1.0.7 - -## 0.2.17-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.4-next.2 - - @backstage/config@1.0.7 - -## 0.2.17-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.4-next.1 - - @backstage/config@1.0.7 - -## 0.2.17-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.4-next.0 - - @backstage/config@1.0.7 - -## 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 - -- Updated dependencies - - @backstage/backend-common@0.18.3-next.2 - - @backstage/config@1.0.7-next.0 - -## 0.2.16-next.1 - -### Patch Changes - -- 52b0022dab7: Updated dependency `msw` to `^1.0.0`. -- Updated dependencies - - @backstage/backend-common@0.18.3-next.1 - - @backstage/config@1.0.7-next.0 - -## 0.2.16-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.3-next.0 - - @backstage/config@1.0.6 - -## 0.2.15 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.2 - - @backstage/config@1.0.6 - -## 0.2.15-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.2-next.2 - - @backstage/config@1.0.6 - -## 0.2.15-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.2-next.1 - - @backstage/config@1.0.6 - -## 0.2.15-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.2-next.0 - -## 0.2.13 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.0 - - @backstage/config@1.0.6 - -## 0.2.13-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.0-next.1 - - @backstage/config@1.0.6-next.0 - -## 0.2.13-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.18.0-next.0 - - @backstage/config@1.0.6-next.0 - -## 0.2.12 - -### Patch Changes - -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/backend-common@0.17.0 - - @backstage/config@1.0.5 - -## 0.2.12-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.17.0-next.3 - - @backstage/config@1.0.5-next.1 - -## 0.2.12-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.17.0-next.2 - - @backstage/config@1.0.5-next.1 - -## 0.2.12-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.17.0-next.1 - - @backstage/config@1.0.5-next.1 - -## 0.2.12-next.0 - -### Patch Changes - -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/backend-common@0.16.1-next.0 - - @backstage/config@1.0.5-next.0 - -## 0.2.11 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.16.0 - - @backstage/config@1.0.4 - -## 0.2.11-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.16.0-next.1 - - @backstage/config@1.0.4-next.0 - -## 0.2.11-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.16.0-next.0 - - @backstage/config@1.0.4-next.0 - -## 0.2.10 - -### Patch Changes - -- 2d3a5f09ab: Use `response.json` rather than `response.send` where appropriate, as outlined in `SECURITY.md` -- Updated dependencies - - @backstage/backend-common@0.15.2 - - @backstage/config@1.0.3 - -## 0.2.10-next.2 - -### Patch Changes - -- 2d3a5f09ab: Use `response.json` rather than `response.send` where appropriate, as outlined in `SECURITY.md` -- Updated dependencies - - @backstage/backend-common@0.15.2-next.2 - - @backstage/config@1.0.3-next.2 - -## 0.2.10-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.15.2-next.1 - - @backstage/config@1.0.3-next.1 - -## 0.2.10-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.15.2-next.0 - - @backstage/config@1.0.3-next.0 - -## 0.2.9 - -### Patch Changes - -- 148568b5c2: Switched to using node-fetch instead of cross-fetch as is standard for our backend packages -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- Updated dependencies - - @backstage/backend-common@0.15.1 - - @backstage/config@1.0.2 - -## 0.2.9-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/config@1.0.2-next.0 - - @backstage/backend-common@0.15.1-next.3 - -## 0.2.9-next.2 - -### Patch Changes - -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- Updated dependencies - - @backstage/backend-common@0.15.1-next.2 - -## 0.2.9-next.1 - -### Patch Changes - -- 148568b5c2: Switched to using node-fetch instead of cross-fetch as is standard for our backend packages -- Updated dependencies - - @backstage/backend-common@0.15.1-next.1 - -## 0.2.9-next.0 - -### Patch Changes - -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- Updated dependencies - - @backstage/backend-common@0.15.1-next.0 - -## 0.2.8 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.15.0 - -## 0.2.8-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.15.0-next.0 - -## 0.2.7 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`. -- Updated dependencies - - @backstage/backend-common@0.14.1 - -## 0.2.7-next.1 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- Updated dependencies - - @backstage/backend-common@0.14.1-next.3 - -## 0.2.7-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.14.1-next.0 - -## 0.2.6 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/backend-common@0.14.0 - -## 0.2.6-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.14.0-next.2 - -## 0.2.6-next.1 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/backend-common@0.13.6-next.1 - -## 0.2.6-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.6-next.0 - -## 0.2.5 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.3 - - @backstage/config@1.0.1 - -## 0.2.5-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.3-next.2 - - @backstage/config@1.0.1-next.0 - -## 0.2.5-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.3-next.0 - -## 0.2.4 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.2 - -## 0.2.4-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.2-next.0 - -## 0.2.3 - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.13.1 - - @backstage/config@1.0.0 - -## 0.2.2 - -### Patch Changes - -- 4f79204c47: Added `backstage.role` to `package.json` -- Updated dependencies - - @backstage/backend-common@0.13.0 - -## 0.2.2-next.0 - -### Patch Changes - -- 4f79204c47: Added `backstage.role` to `package.json` -- Updated dependencies - - @backstage/backend-common@0.13.0-next.0 - -## 0.2.1 - -### Patch Changes - -- 3c1d3cb07e: The Airbrake plugin installation instructions have been updated to work better and conform to how the frontend and backend plugins are supposed to be integrated into a Backstage instance. -- Updated dependencies - - @backstage/backend-common@0.12.0 - -## 0.2.0 - -### Minor Changes - -- da78e79a94: This marks the first release where the Airbrake plugin is useable. Airbrake frontend and Airbrake backend work with each other. Currently just a summary of the latest Airbrakes is shown on Backstage. - -### Patch Changes - -- 0045270527: Make config optional -- Updated dependencies - - @backstage/backend-common@0.11.0 - -## 0.1.0 - -### Minor Changes - -- a5aebe3e30: Created the Airbrake backend plugin that proxies requests to the Airbrake API - -### Patch Changes - -- Updated dependencies - - @backstage/backend-common@0.10.8 - - @backstage/config@0.1.14 diff --git a/plugins/airbrake-backend/README.md b/plugins/airbrake-backend/README.md deleted file mode 100644 index 5a4a3ba3ca..0000000000 --- a/plugins/airbrake-backend/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Deprecated - -This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-airbrake-backend` instead. diff --git a/plugins/airbrake-backend/api-report.md b/plugins/airbrake-backend/api-report.md deleted file mode 100644 index 5509fc4fd6..0000000000 --- a/plugins/airbrake-backend/api-report.md +++ /dev/null @@ -1,31 +0,0 @@ -## API Report File for "@backstage/plugin-airbrake-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'; -import { Config } from '@backstage/config'; -import express from 'express'; -import { LoggerService } from '@backstage/backend-plugin-api'; - -// @public -export interface AirbrakeConfig { - apiKey: string; -} - -// @public -const airbrakePlugin: () => BackendFeature; -export default airbrakePlugin; - -// @public -export function createRouter(options: RouterOptions): Promise; - -// @public -export function extractAirbrakeConfig(config: Config): AirbrakeConfig; - -// @public -export interface RouterOptions { - airbrakeConfig: AirbrakeConfig; - logger: LoggerService; -} -``` diff --git a/plugins/airbrake-backend/catalog-info.yaml b/plugins/airbrake-backend/catalog-info.yaml deleted file mode 100644 index 90884f5d34..0000000000 --- a/plugins/airbrake-backend/catalog-info.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: backstage-plugin-airbrake-backend - title: '@backstage/plugin-airbrake-backend' -spec: - lifecycle: experimental - type: backstage-backend-plugin - owner: maintainers diff --git a/plugins/airbrake-backend/config.d.ts b/plugins/airbrake-backend/config.d.ts deleted file mode 100644 index a21f609550..0000000000 --- a/plugins/airbrake-backend/config.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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. - */ - -export interface Config { - /** Configuration options for the Airbrake plugin */ - airbrake?: { - /** - * The API Key to authenticate requests. More details on how to get this - * here: https://airbrake.io/docs/api/#authentication - * - * @visibility secret - */ - apiKey: string; - }; -} diff --git a/plugins/airbrake-backend/knip-report.md b/plugins/airbrake-backend/knip-report.md deleted file mode 100644 index 2661c35327..0000000000 --- a/plugins/airbrake-backend/knip-report.md +++ /dev/null @@ -1,2 +0,0 @@ -# Knip report - diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json deleted file mode 100644 index cdfed4396e..0000000000 --- a/plugins/airbrake-backend/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "@backstage/plugin-airbrake-backend", - "version": "0.3.14", - "backstage": { - "role": "backend-plugin", - "moved": "@backstage-community/plugin-airbrake-backend" - }, - "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/airbrake-backend" - }, - "license": "Apache-2.0", - "main": "src/index.ts", - "types": "src/index.ts", - "files": [ - "dist", - "config.d.ts" - ], - "scripts": { - "build": "backstage-cli package build", - "clean": "backstage-cli package clean", - "lint": "backstage-cli package lint", - "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack", - "start": "backstage-cli package start", - "test": "backstage-cli package test" - }, - "dependencies": { - "@backstage/backend-common": "workspace:^", - "@backstage/backend-plugin-api": "workspace:^", - "@backstage/config": "workspace:^", - "@types/express": "*", - "express": "^4.17.1", - "express-promise-router": "^4.1.0", - "http-proxy-middleware": "^2.0.0", - "yn": "^4.0.0" - }, - "devDependencies": { - "@backstage/backend-test-utils": "workspace:^", - "@backstage/cli": "workspace:^", - "@types/http-proxy-middleware": "^1.0.0", - "@types/supertest": "^2.0.8", - "supertest": "^6.1.6" - }, - "configSchema": "config.d.ts", - "deprecated": "This package has been moved to the backstage/community-plugins repository. You should migrate to using @backstage-community/plugin-airbrake-backend instead." -} diff --git a/plugins/airbrake-backend/src/config/ExtractAirbrakeConfig.test.ts b/plugins/airbrake-backend/src/config/ExtractAirbrakeConfig.test.ts deleted file mode 100644 index 53d744b9ee..0000000000 --- a/plugins/airbrake-backend/src/config/ExtractAirbrakeConfig.test.ts +++ /dev/null @@ -1,38 +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 { ConfigReader } from '@backstage/config'; -import { extractAirbrakeConfig } from './ExtractAirbrakeConfig'; - -describe('ExtractAirbrakeConfig', () => { - it('gets the API key', () => { - const config = new ConfigReader({ - airbrake: { - apiKey: 'fakeApiKey', - }, - }); - - const airbrakeConfig = extractAirbrakeConfig(config); - expect(airbrakeConfig.apiKey).toStrictEqual('fakeApiKey'); - }); - - it('fails for missing keys', () => { - expect(() => extractAirbrakeConfig(new ConfigReader({}))).toThrow(); - expect(() => - extractAirbrakeConfig(new ConfigReader({ airbrake: {} })), - ).toThrow(); - }); -}); diff --git a/plugins/airbrake-backend/src/config/ExtractAirbrakeConfig.ts b/plugins/airbrake-backend/src/config/ExtractAirbrakeConfig.ts deleted file mode 100644 index de6a31feec..0000000000 --- a/plugins/airbrake-backend/src/config/ExtractAirbrakeConfig.ts +++ /dev/null @@ -1,42 +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 { Config } from '@backstage/config'; - -/** - * The configuration needed for the airbrake-backend plugin - * - * @public - */ -export interface AirbrakeConfig { - /** - * The API Key to authenticate requests. More details on how to get this here: https://airbrake.io/docs/api/#authentication - */ - apiKey: string; -} - -/** - * Extract the Airbrake config from a config object - * - * @public - * - * @param config - The config object to extract from - */ -export function extractAirbrakeConfig(config: Config): AirbrakeConfig { - return { - apiKey: config.getString('airbrake.apiKey'), - }; -} diff --git a/plugins/airbrake-backend/src/config/index.ts b/plugins/airbrake-backend/src/config/index.ts deleted file mode 100644 index 60d60c2761..0000000000 --- a/plugins/airbrake-backend/src/config/index.ts +++ /dev/null @@ -1,17 +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. - */ - -export * from './ExtractAirbrakeConfig'; diff --git a/plugins/airbrake-backend/src/index.ts b/plugins/airbrake-backend/src/index.ts deleted file mode 100644 index 3f660dad62..0000000000 --- a/plugins/airbrake-backend/src/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * The Airbrake Backend plugin used by \@backstage/plugin-airbrake - * - * @packageDocumentation - */ - -export * from './service/router'; -export * from './config'; -export { airbrakePlugin as default } from './plugin'; diff --git a/plugins/airbrake-backend/src/plugin.ts b/plugins/airbrake-backend/src/plugin.ts deleted file mode 100644 index 917ffbceac..0000000000 --- a/plugins/airbrake-backend/src/plugin.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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 { - coreServices, - createBackendPlugin, -} from '@backstage/backend-plugin-api'; -import { createRouter } from './service/router'; -import { extractAirbrakeConfig } from './config'; - -/** - * The Airbrake Backend plugin. - * - * @public - */ -export const airbrakePlugin = createBackendPlugin({ - pluginId: 'airbrake', - register(env) { - env.registerInit({ - deps: { - config: coreServices.rootConfig, - logger: coreServices.logger, - httpRouter: coreServices.httpRouter, - }, - async init({ logger, httpRouter, config }) { - httpRouter.use( - await createRouter({ - airbrakeConfig: extractAirbrakeConfig(config), - logger, - }), - ); - httpRouter.addAuthPolicy({ - path: '/health', - allow: 'unauthenticated', - }); - }, - }); - }, -}); diff --git a/plugins/airbrake-backend/src/run.ts b/plugins/airbrake-backend/src/run.ts deleted file mode 100644 index 0a3ed2b7f0..0000000000 --- a/plugins/airbrake-backend/src/run.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { getRootLogger } from '@backstage/backend-common'; -import yn from 'yn'; -import { startStandaloneServer } from './service/standaloneServer'; - -const port = process.env.PLUGIN_PORT ? Number(process.env.PLUGIN_PORT) : 7007; -const enableCors = yn(process.env.PLUGIN_CORS, { default: false }); -const logger = getRootLogger(); - -startStandaloneServer({ port, enableCors, logger }).catch(err => { - logger.error(err); - process.exit(1); -}); - -process.on('SIGINT', () => { - logger.info('CTRL+C pressed; exiting.'); - process.exit(0); -}); diff --git a/plugins/airbrake-backend/src/service/router.test.ts b/plugins/airbrake-backend/src/service/router.test.ts deleted file mode 100644 index f981b18872..0000000000 --- a/plugins/airbrake-backend/src/service/router.test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import express from 'express'; -import request from 'supertest'; -import { ConfigReader } from '@backstage/config'; -import { - createRouter, - generateAirbrakePathRewrite, - RouterOptions, -} from './router'; -import { AirbrakeConfig, extractAirbrakeConfig } from '../config'; -import { LoggerService } from '@backstage/backend-plugin-api'; -import { mockServices } from '@backstage/backend-test-utils'; - -describe('createRouter', () => { - let app: express.Express; - let airbrakeConfig: AirbrakeConfig; - let voidLogger: LoggerService; - - beforeEach(async () => { - jest.resetAllMocks(); - - voidLogger = mockServices.logger.mock(); - const config = new ConfigReader({ - airbrake: { - apiKey: 'fakeApiKey', - }, - }); - airbrakeConfig = extractAirbrakeConfig(config); - - const router = await createRouter({ - logger: voidLogger, - airbrakeConfig, - }); - app = express().use(router); - }); - - describe('GET /health', () => { - it('returns ok', async () => { - const response = await request(app).get('/health'); - - expect(response.status).toEqual(200); - expect(response.body).toEqual({ status: 'ok' }); - }); - }); - - describe('GET /api', () => { - it('appends the API Key properly with no other url parameters', () => { - const options: RouterOptions = { - logger: voidLogger, - airbrakeConfig, - }; - const pathRewrite = generateAirbrakePathRewrite(options) as ( - path: string, - ) => string; - - expect(pathRewrite('/airbrake-backend/api/v4/random/endpoint')).toBe( - '/v4/random/endpoint?key=fakeApiKey', - ); - }); - - it('appends the API Key properly despite there being other URL parameters', () => { - const options: RouterOptions = { - logger: voidLogger, - airbrakeConfig, - }; - const pathRewrite = generateAirbrakePathRewrite(options) as ( - path: string, - ) => string; - - expect( - pathRewrite( - '/airbrake-backend/api/v4/random/endpoint?param1=123¶m2=abc', - ), - ).toBe('/v4/random/endpoint?param1=123¶m2=abc&key=fakeApiKey'); - }); - }); -}); diff --git a/plugins/airbrake-backend/src/service/router.ts b/plugins/airbrake-backend/src/service/router.ts deleted file mode 100644 index a6d6af6d8c..0000000000 --- a/plugins/airbrake-backend/src/service/router.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { errorHandler } from '@backstage/backend-common'; -import express from 'express'; -import Router from 'express-promise-router'; -import { createProxyMiddleware } from 'http-proxy-middleware'; -import { AirbrakeConfig } from '../config'; -import { Options } from 'http-proxy-middleware/dist/types'; -import { LoggerService } from '@backstage/backend-plugin-api'; - -/** - * The router options that are needed when creating a router. - * - * @public - */ -export interface RouterOptions { - /** - * A logger object - */ - logger: LoggerService; - - /** - * The Airbrake config obtained from {@link extractAirbrakeConfig} - */ - airbrakeConfig: AirbrakeConfig; -} - -/** - * Mainly used internally to generate the path. - * - * @internal - * - * @param options - Router options - */ -export const generateAirbrakePathRewrite = ( - options: RouterOptions, -): Options['pathRewrite'] => { - const apiKey = options.airbrakeConfig.apiKey; - - return path => { - let newPath = path.replace(/.+?(\/api)/g, ''); - if (newPath.includes('?')) { - newPath += `&key=${apiKey}`; - } else { - newPath += `?key=${apiKey}`; - } - return newPath; - }; -}; - -/** - * Create the Airbrake Router, used for making API calls to the Airbrake API. - * - * @public - * - * @param options - Router options - */ -export async function createRouter( - options: RouterOptions, -): Promise { - const { logger } = options; - - const router = Router(); - router.use(express.json()); - - router.get('/health', (_, response) => { - logger.info('PONG!'); - response.json({ status: 'ok' }); - }); - - router.use( - '/api', - createProxyMiddleware({ - target: 'https://api.airbrake.io/api', - changeOrigin: true, - pathRewrite: generateAirbrakePathRewrite(options), - }), - ); - - router.use(errorHandler()); - return router; -} diff --git a/plugins/airbrake-backend/src/service/standaloneServer.ts b/plugins/airbrake-backend/src/service/standaloneServer.ts deleted file mode 100644 index 31aa41d832..0000000000 --- a/plugins/airbrake-backend/src/service/standaloneServer.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - createServiceBuilder, - loadBackendConfig, -} from '@backstage/backend-common'; -import { Server } from 'http'; -import { createRouter } from './router'; -import { extractAirbrakeConfig } from '../config'; -import { LoggerService } from '@backstage/backend-plugin-api'; - -export interface ServerOptions { - port: number; - enableCors: boolean; - logger: LoggerService; -} - -export async function startStandaloneServer( - options: ServerOptions, -): Promise { - const logger = options.logger.child({ service: 'airbrake-backend' }); - const config = await loadBackendConfig({ logger, argv: process.argv }); - const airbrakeConfig = extractAirbrakeConfig(config); - logger.debug('Starting application server...'); - const router = await createRouter({ - logger, - airbrakeConfig, - }); - - let service = createServiceBuilder(module) - .setPort(options.port) - .addRouter('/api/airbrake', router); - if (options.enableCors) { - logger.info('CORS is enabled, limiting to localhost with port 3000'); - service = service.enableCors({ origin: 'http://localhost:3000' }); - } else { - logger.info('CORS is disabled, allowing all origins'); - service = service.enableCors({ origin: '*' }); - } - - return await service.start().catch(err => { - logger.error(err); - process.exit(1); - }); -} - -module.hot?.accept(); diff --git a/plugins/airbrake-backend/src/setupTests.ts b/plugins/airbrake-backend/src/setupTests.ts deleted file mode 100644 index d3232290a7..0000000000 --- a/plugins/airbrake-backend/src/setupTests.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export {}; diff --git a/plugins/airbrake/.eslintrc.js b/plugins/airbrake/.eslintrc.js deleted file mode 100644 index 9d5b45a010..0000000000 --- a/plugins/airbrake/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { - rules: { - '@backstage/no-top-level-material-ui-4-imports': 'error', - }, - }); \ No newline at end of file diff --git a/plugins/airbrake/CHANGELOG.md b/plugins/airbrake/CHANGELOG.md deleted file mode 100644 index 0143474741..0000000000 --- a/plugins/airbrake/CHANGELOG.md +++ /dev/null @@ -1,1507 +0,0 @@ -# @backstage/plugin-airbrake - -## 0.3.34 - -### Patch Changes - -- abfbcfc: Updated dependency `@testing-library/react` to `^15.0.0`. -- cb1e3b0: Updated dependency `@testing-library/dom` to `^10.0.0`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.11.3 - - @backstage/core-components@0.14.4 - - @backstage/dev-utils@1.0.31 - - @backstage/core-plugin-api@1.9.2 - - @backstage/test-utils@1.5.4 - - @backstage/catalog-model@1.4.5 - -## 0.3.34-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/dev-utils@1.0.31-next.1 - - @backstage/catalog-model@1.4.5 - - @backstage/core-components@0.14.4-next.0 - - @backstage/core-plugin-api@1.9.1 - - @backstage/test-utils@1.5.4-next.0 - - @backstage/plugin-catalog-react@1.11.3-next.1 - -## 0.3.34-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.4-next.0 - - @backstage/catalog-model@1.4.5 - - @backstage/core-plugin-api@1.9.1 - - @backstage/dev-utils@1.0.31-next.0 - - @backstage/test-utils@1.5.3 - - @backstage/plugin-catalog-react@1.11.3-next.0 - -## 0.3.33 - -### Patch Changes - -- e8f026a: Use ESM exports of react-use library -- Updated dependencies - - @backstage/core-components@0.14.3 - - @backstage/plugin-catalog-react@1.11.2 - - @backstage/dev-utils@1.0.30 - - @backstage/core-plugin-api@1.9.1 - - @backstage/test-utils@1.5.3 - - @backstage/catalog-model@1.4.5 - -## 0.3.32 - -### Patch Changes - -- e8f026a: Use ESM exports of react-use library -- Updated dependencies - - @backstage/core-components@0.14.2 - - @backstage/plugin-catalog-react@1.11.1 - - @backstage/dev-utils@1.0.29 - - @backstage/core-plugin-api@1.9.1 - - @backstage/test-utils@1.5.2 - - @backstage/catalog-model@1.4.5 - -## 0.3.31 - -### Patch Changes - -- 31d58ae: Added an optional ESLint rule - no-top-level-material-ui-4-imports - which has an auto fix function to migrate the imports and using it migrated the imports. -- Updated dependencies - - @backstage/core-components@0.14.1 - - @backstage/plugin-catalog-react@1.11.0 - - @backstage/catalog-model@1.4.5 - - @backstage/core-plugin-api@1.9.1 - - @backstage/dev-utils@1.0.28 - - @backstage/test-utils@1.5.1 - -## 0.3.31-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1-next.2 - - @backstage/plugin-catalog-react@1.11.0-next.2 - - @backstage/dev-utils@1.0.28-next.2 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/core-plugin-api@1.9.1-next.1 - - @backstage/test-utils@1.5.1-next.1 - -## 0.3.31-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1-next.1 - - @backstage/plugin-catalog-react@1.10.1-next.1 - - @backstage/core-plugin-api@1.9.1-next.1 - - @backstage/test-utils@1.5.1-next.1 - - @backstage/dev-utils@1.0.28-next.1 - - @backstage/catalog-model@1.4.5-next.0 - -## 0.3.31-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1-next.0 - - @backstage/plugin-catalog-react@1.10.1-next.0 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/core-plugin-api@1.9.1-next.0 - - @backstage/dev-utils@1.0.28-next.0 - - @backstage/test-utils@1.5.1-next.0 - -## 0.3.30 - -### Patch Changes - -- b64ce5a: Updated New Backend System instructions to use default import -- 9aac2b0: Use `--cwd` as the first `yarn` argument -- 8fe56a8: Widen `@types/react` dependency range to include version 18. -- Updated dependencies - - @backstage/plugin-catalog-react@1.10.0 - - @backstage/core-components@0.14.0 - - @backstage/catalog-model@1.4.4 - - @backstage/test-utils@1.5.0 - - @backstage/core-plugin-api@1.9.0 - - @backstage/dev-utils@1.0.27 - -## 0.3.30-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.0-next.2 - - @backstage/plugin-catalog-react@1.10.0-next.3 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/core-plugin-api@1.9.0-next.1 - - @backstage/dev-utils@1.0.27-next.3 - - @backstage/test-utils@1.5.0-next.3 - -## 0.3.30-next.2 - -### Patch Changes - -- 9aac2b0: Use `--cwd` as the first `yarn` argument -- 8fe56a8: Widen `@types/react` dependency range to include version 18. -- Updated dependencies - - @backstage/core-components@0.14.0-next.1 - - @backstage/core-plugin-api@1.9.0-next.1 - - @backstage/plugin-catalog-react@1.10.0-next.2 - - @backstage/dev-utils@1.0.27-next.2 - - @backstage/test-utils@1.5.0-next.2 - - @backstage/catalog-model@1.4.4-next.0 - -## 0.3.30-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.0-next.0 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/test-utils@1.5.0-next.1 - - @backstage/core-plugin-api@1.8.3-next.0 - - @backstage/plugin-catalog-react@1.9.4-next.1 - - @backstage/dev-utils@1.0.27-next.1 - -## 0.3.30-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.4-next.0 - - @backstage/test-utils@1.5.0-next.0 - - @backstage/dev-utils@1.0.27-next.0 - - @backstage/core-components@0.13.10 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.2 - -## 0.3.29 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/core-components@0.13.10 - - @backstage/core-plugin-api@1.8.2 - - @backstage/plugin-catalog-react@1.9.3 - - @backstage/dev-utils@1.0.26 - - @backstage/catalog-model@1.4.3 - - @backstage/test-utils@1.4.7 - -## 0.3.29-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.3-next.2 - - @backstage/dev-utils@1.0.26-next.2 - -## 0.3.29-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.8.2-next.0 - - @backstage/core-components@0.13.10-next.1 - - @backstage/dev-utils@1.0.26-next.1 - - @backstage/test-utils@1.4.7-next.1 - - @backstage/plugin-catalog-react@1.9.3-next.1 - - @backstage/catalog-model@1.4.3 - -## 0.3.29-next.0 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/core-components@0.13.10-next.0 - - @backstage/plugin-catalog-react@1.9.3-next.0 - - @backstage/dev-utils@1.0.26-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.1 - - @backstage/test-utils@1.4.7-next.0 - -## 0.3.28 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.8.1 - - @backstage/plugin-catalog-react@1.9.2 - - @backstage/core-components@0.13.9 - - @backstage/theme@0.5.0 - - @backstage/test-utils@1.4.6 - - @backstage/dev-utils@1.0.25 - - @backstage/catalog-model@1.4.3 - -## 0.3.28-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.9-next.3 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.1-next.1 - - @backstage/dev-utils@1.0.25-next.3 - - @backstage/test-utils@1.4.6-next.2 - - @backstage/theme@0.5.0-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.3 - -## 0.3.28-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.5.0-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.2 - - @backstage/catalog-model@1.4.3 - - @backstage/core-components@0.13.9-next.2 - - @backstage/core-plugin-api@1.8.1-next.1 - - @backstage/dev-utils@1.0.25-next.2 - - @backstage/test-utils@1.4.6-next.2 - -## 0.3.28-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.9-next.1 - - @backstage/core-plugin-api@1.8.1-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.1 - - @backstage/test-utils@1.4.6-next.1 - - @backstage/dev-utils@1.0.25-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/theme@0.5.0-next.0 - -## 0.3.28-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.8.1-next.0 - - @backstage/plugin-catalog-react@1.9.2-next.0 - - @backstage/core-components@0.13.9-next.0 - - @backstage/theme@0.5.0-next.0 - - @backstage/dev-utils@1.0.25-next.0 - - @backstage/test-utils@1.4.6-next.0 - - @backstage/catalog-model@1.4.3 - -## 0.3.26 - -### Patch Changes - -- 6c2b872153: Add official support for React 18. -- fdb5e23602: Import `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` to remove the cyclical dependency -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.0 - - @backstage/core-components@0.13.8 - - @backstage/core-plugin-api@1.8.0 - - @backstage/test-utils@1.4.5 - - @backstage/theme@0.4.4 - - @backstage/dev-utils@1.0.23 - - @backstage/catalog-model@1.4.3 - -## 0.3.26-next.2 - -### Patch Changes - -- [#20842](https://github.com/backstage/backstage/pull/20842) [`fdb5e23602`](https://github.com/backstage/backstage/commit/fdb5e2360299c5faa30f4d4236fc548b94d37446) Thanks [@benjdlambert](https://github.com/benjdlambert)! - Import `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` to remove the cyclical dependency - -- Updated dependencies - - @backstage/core-components@0.13.8-next.2 - - @backstage/plugin-catalog-react@1.9.0-next.2 - - @backstage/dev-utils@1.0.23-next.2 - -## 0.3.26-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.0-next.1 - - @backstage/core-components@0.13.8-next.1 - - @backstage/dev-utils@1.0.23-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.0-next.0 - - @backstage/test-utils@1.4.5-next.0 - - @backstage/theme@0.4.4-next.0 - -## 0.3.26-next.0 - -### Patch Changes - -- 6c2b872153: Add official support for React 18. -- Updated dependencies - - @backstage/core-components@0.13.7-next.0 - - @backstage/plugin-catalog-react@1.9.0-next.0 - - @backstage/core-plugin-api@1.8.0-next.0 - - @backstage/test-utils@1.4.5-next.0 - - @backstage/theme@0.4.4-next.0 - - @backstage/dev-utils@1.0.23-next.0 - - @backstage/catalog-model@1.4.3 - -## 0.3.25 - -### Patch Changes - -- 9a1fce352e: Updated dependency `@testing-library/jest-dom` to `^6.0.0`. -- f95af4e540: Updated dependency `@testing-library/dom` to `^9.0.0`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.5 - - @backstage/test-utils@1.4.4 - - @backstage/core-plugin-api@1.7.0 - - @backstage/core-components@0.13.6 - - @backstage/catalog-model@1.4.3 - - @backstage/dev-utils@1.0.22 - - @backstage/theme@0.4.3 - -## 0.3.25-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.6-next.2 - - @backstage/core-plugin-api@1.7.0-next.1 - - @backstage/catalog-model@1.4.3-next.0 - - @backstage/plugin-catalog-react@1.8.5-next.2 - - @backstage/theme@0.4.3-next.0 - - @backstage/dev-utils@1.0.22-next.2 - - @backstage/test-utils@1.4.4-next.2 - -## 0.3.25-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.6-next.1 - - @backstage/test-utils@1.4.4-next.1 - - @backstage/dev-utils@1.0.22-next.1 - - @backstage/plugin-catalog-react@1.8.5-next.1 - - @backstage/core-plugin-api@1.7.0-next.0 - - @backstage/catalog-model@1.4.2 - - @backstage/theme@0.4.2 - -## 0.3.25-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.5-next.0 - - @backstage/test-utils@1.4.4-next.0 - - @backstage/core-plugin-api@1.7.0-next.0 - - @backstage/core-components@0.13.6-next.0 - - @backstage/dev-utils@1.0.22-next.0 - - @backstage/catalog-model@1.4.2 - - @backstage/theme@0.4.2 - -## 0.3.24 - -### Patch Changes - -- 482bb5c0bbf8: Moved `@types/react` to be a regular dependency -- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. -- 8cec7664e146: Removed `@types/node` dependency -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.4 - - @backstage/core-components@0.13.5 - - @backstage/test-utils@1.4.3 - - @backstage/catalog-model@1.4.2 - - @backstage/core-plugin-api@1.6.0 - - @backstage/dev-utils@1.0.21 - - @backstage/theme@0.4.2 - -## 0.3.24-next.3 - -### Patch Changes - -- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. -- Updated dependencies - - @backstage/test-utils@1.4.3-next.3 - - @backstage/catalog-model@1.4.2-next.2 - - @backstage/core-components@0.13.5-next.3 - - @backstage/core-plugin-api@1.6.0-next.3 - - @backstage/dev-utils@1.0.21-next.3 - - @backstage/plugin-catalog-react@1.8.4-next.3 - - @backstage/theme@0.4.2-next.0 - -## 0.3.24-next.2 - -### Patch Changes - -- 8cec7664e146: Removed `@types/node` dependency -- Updated dependencies - - @backstage/core-components@0.13.5-next.2 - - @backstage/core-plugin-api@1.6.0-next.2 - - @backstage/test-utils@1.4.3-next.2 - - @backstage/dev-utils@1.0.21-next.2 - - @backstage/plugin-catalog-react@1.8.4-next.2 - - @backstage/catalog-model@1.4.2-next.1 - - @backstage/theme@0.4.1 - -## 0.3.24-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.4-next.1 - - @backstage/core-components@0.13.5-next.1 - - @backstage/dev-utils@1.0.21-next.1 - - @backstage/catalog-model@1.4.2-next.0 - - @backstage/core-plugin-api@1.6.0-next.1 - - @backstage/test-utils@1.4.3-next.1 - - @backstage/theme@0.4.1 - -## 0.3.23-next.0 - -### Patch Changes - -- 482bb5c0bbf8: Moved `@types/react` to be a regular dependency -- Updated dependencies - - @backstage/core-plugin-api@1.6.0-next.0 - - @backstage/core-components@0.13.5-next.0 - - @backstage/dev-utils@1.0.20-next.0 - - @backstage/catalog-model@1.4.1 - - @backstage/test-utils@1.4.3-next.0 - - @backstage/theme@0.4.1 - - @backstage/plugin-catalog-react@1.8.3-next.0 - -## 0.3.21 - -### Patch Changes - -- 12a8c94eda8d: Add package repository and homepage metadata -- Updated dependencies - - @backstage/dev-utils@1.0.18 - - @backstage/core-components@0.13.4 - - @backstage/plugin-catalog-react@1.8.1 - - @backstage/core-plugin-api@1.5.3 - - @backstage/test-utils@1.4.2 - - @backstage/catalog-model@1.4.1 - - @backstage/theme@0.4.1 - -## 0.3.21-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.1-next.1 - - @backstage/dev-utils@1.0.18-next.2 - -## 0.3.21-next.1 - -### Patch Changes - -- 12a8c94eda8d: Add package repository and homepage metadata -- Updated dependencies - - @backstage/dev-utils@1.0.18-next.1 - - @backstage/catalog-model@1.4.1 - - @backstage/core-components@0.13.4-next.0 - - @backstage/core-plugin-api@1.5.3 - - @backstage/test-utils@1.4.2-next.0 - - @backstage/theme@0.4.1 - - @backstage/plugin-catalog-react@1.8.1-next.0 - -## 0.3.21-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.4-next.0 - - @backstage/core-plugin-api@1.5.3 - - @backstage/dev-utils@1.0.18-next.0 - - @backstage/test-utils@1.4.2-next.0 - - @backstage/plugin-catalog-react@1.8.1-next.0 - - @backstage/catalog-model@1.4.1 - - @backstage/theme@0.4.1 - -## 0.3.20 - -### Patch Changes - -- 7b6033587650: Added documentation for the [new backend system](https://backstage.io/docs/backend-system/) -- Updated dependencies - - @backstage/theme@0.4.1 - - @backstage/plugin-catalog-react@1.8.0 - - @backstage/core-components@0.13.3 - - @backstage/test-utils@1.4.1 - - @backstage/core-plugin-api@1.5.3 - - @backstage/catalog-model@1.4.1 - - @backstage/dev-utils@1.0.17 - -## 0.3.20-next.2 - -### Patch Changes - -- 7b6033587650: Added documentation for the [new backend system](https://backstage.io/docs/backend-system/) -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.0-next.2 - - @backstage/theme@0.4.1-next.1 - - @backstage/test-utils@1.4.1-next.2 - - @backstage/core-plugin-api@1.5.3-next.1 - - @backstage/core-components@0.13.3-next.2 - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/dev-utils@1.0.17-next.2 - -## 0.3.20-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.4.1-next.0 - - @backstage/core-components@0.13.3-next.1 - - @backstage/core-plugin-api@1.5.3-next.0 - - @backstage/dev-utils@1.0.17-next.1 - - @backstage/test-utils@1.4.1-next.1 - - @backstage/plugin-catalog-react@1.7.1-next.1 - -## 0.3.20-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.3-next.0 - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/core-plugin-api@1.5.2 - - @backstage/dev-utils@1.0.17-next.0 - - @backstage/test-utils@1.4.1-next.0 - - @backstage/theme@0.4.0 - - @backstage/plugin-catalog-react@1.7.1-next.0 - -## 0.3.19 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.5.2 - - @backstage/core-components@0.13.2 - - @backstage/theme@0.4.0 - - @backstage/plugin-catalog-react@1.7.0 - - @backstage/catalog-model@1.4.0 - - @backstage/test-utils@1.4.0 - - @backstage/dev-utils@1.0.16 - -## 0.3.19-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.2-next.3 - - @backstage/catalog-model@1.4.0-next.1 - - @backstage/core-plugin-api@1.5.2-next.0 - - @backstage/dev-utils@1.0.16-next.3 - - @backstage/test-utils@1.4.0-next.2 - - @backstage/theme@0.4.0-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.3 - -## 0.3.19-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.4.0-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.2 - - @backstage/core-components@0.13.2-next.2 - - @backstage/dev-utils@1.0.16-next.2 - - @backstage/test-utils@1.4.0-next.2 - - @backstage/core-plugin-api@1.5.2-next.0 - -## 0.3.19-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.2-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.1 - - @backstage/catalog-model@1.4.0-next.0 - - @backstage/core-plugin-api@1.5.2-next.0 - - @backstage/dev-utils@1.0.16-next.1 - - @backstage/test-utils@1.4.0-next.1 - - @backstage/theme@0.4.0-next.0 - -## 0.3.19-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.7.0-next.0 - - @backstage/test-utils@1.4.0-next.0 - - @backstage/theme@0.4.0-next.0 - - @backstage/dev-utils@1.0.16-next.0 - - @backstage/core-components@0.13.2-next.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/catalog-model@1.3.0 - -## 0.3.18 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.3.0 - - @backstage/plugin-catalog-react@1.6.0 - - @backstage/core-components@0.13.1 - - @backstage/dev-utils@1.0.15 - - @backstage/test-utils@1.3.1 - - @backstage/catalog-model@1.3.0 - - @backstage/core-plugin-api@1.5.1 - -## 0.3.18-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.3.0-next.0 - - @backstage/core-components@0.13.1-next.1 - - @backstage/dev-utils@1.0.15-next.2 - - @backstage/test-utils@1.3.1-next.2 - - @backstage/plugin-catalog-react@1.6.0-next.2 - - @backstage/core-plugin-api@1.5.1 - -## 0.3.18-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.1-next.0 - - @backstage/dev-utils@1.0.15-next.1 - - @backstage/core-plugin-api@1.5.1 - - @backstage/test-utils@1.3.1-next.1 - - @backstage/plugin-catalog-react@1.6.0-next.1 - -## 0.3.18-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.6.0-next.0 - - @backstage/dev-utils@1.0.15-next.0 - - @backstage/core-components@0.13.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/test-utils@1.3.1-next.0 - - @backstage/catalog-model@1.3.0 - - @backstage/theme@0.2.19 - -## 0.3.17 - -### Patch Changes - -- 7d75f6d9b8f: chore: Improve API Reference documentation -- 8e00acb28db: Small tweaks to remove warnings in the console during development (mainly focusing on techdocs) -- e0c6e8b9c3c: Update peer dependencies -- Updated dependencies - - @backstage/core-components@0.13.0 - - @backstage/plugin-catalog-react@1.5.0 - - @backstage/test-utils@1.3.0 - - @backstage/theme@0.2.19 - - @backstage/core-plugin-api@1.5.1 - - @backstage/catalog-model@1.3.0 - - @backstage/dev-utils@1.0.14 - -## 0.3.17-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.5.0-next.3 - - @backstage/catalog-model@1.3.0-next.0 - - @backstage/core-components@0.13.0-next.3 - - @backstage/core-plugin-api@1.5.1-next.1 - - @backstage/dev-utils@1.0.14-next.3 - - @backstage/test-utils@1.3.0-next.3 - - @backstage/theme@0.2.19-next.0 - -## 0.3.17-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.6-next.2 - - @backstage/plugin-catalog-react@1.4.1-next.2 - - @backstage/core-plugin-api@1.5.1-next.1 - - @backstage/catalog-model@1.2.1 - - @backstage/dev-utils@1.0.14-next.2 - - @backstage/test-utils@1.3.0-next.2 - - @backstage/theme@0.2.19-next.0 - -## 0.3.17-next.1 - -### Patch Changes - -- 7d75f6d9b8f: chore: Improve API Reference documentation -- e0c6e8b9c3c: Update peer dependencies -- Updated dependencies - - @backstage/core-components@0.12.6-next.1 - - @backstage/core-plugin-api@1.5.1-next.0 - - @backstage/plugin-catalog-react@1.4.1-next.1 - - @backstage/test-utils@1.3.0-next.1 - - @backstage/dev-utils@1.0.14-next.1 - - @backstage/theme@0.2.19-next.0 - - @backstage/catalog-model@1.2.1 - -## 0.3.17-next.0 - -### Patch Changes - -- 8e00acb28db: Small tweaks to remove warnings in the console during development (mainly focusing on techdocs) -- Updated dependencies - - @backstage/core-components@0.12.6-next.0 - - @backstage/test-utils@1.3.0-next.0 - - @backstage/plugin-catalog-react@1.4.1-next.0 - - @backstage/dev-utils@1.0.14-next.0 - - @backstage/core-plugin-api@1.5.0 - - @backstage/catalog-model@1.2.1 - - @backstage/theme@0.2.18 - -## 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 - -- Updated dependencies - - @backstage/core-components@0.12.5-next.2 - - @backstage/plugin-catalog-react@1.4.0-next.2 - - @backstage/core-plugin-api@1.5.0-next.2 - - @backstage/dev-utils@1.0.13-next.2 - - @backstage/test-utils@1.2.6-next.2 - -## 0.3.16-next.1 - -### Patch Changes - -- 52b0022dab7: Updated dependency `msw` to `^1.0.0`. -- Updated dependencies - - @backstage/core-components@0.12.5-next.1 - - @backstage/core-plugin-api@1.4.1-next.1 - - @backstage/test-utils@1.2.6-next.1 - - @backstage/dev-utils@1.0.13-next.1 - - @backstage/theme@0.2.18-next.0 - - @backstage/plugin-catalog-react@1.4.0-next.1 - - @backstage/catalog-model@1.2.1-next.1 - -## 0.3.16-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.4.0-next.0 - - @backstage/core-plugin-api@1.4.1-next.0 - - @backstage/catalog-model@1.2.1-next.0 - - @backstage/test-utils@1.2.6-next.0 - - @backstage/core-components@0.12.5-next.0 - - @backstage/dev-utils@1.0.13-next.0 - - @backstage/theme@0.2.17 - -## 0.3.15 - -### Patch Changes - -- 41377156d0: Adds a boolean helper function to airbrake plugin for use on the EntityPage to show/hide airbrake tab depending on whether the entity's `catalog-info.yaml` has an airbrake id set in the metadata -- Updated dependencies - - @backstage/core-components@0.12.4 - - @backstage/catalog-model@1.2.0 - - @backstage/theme@0.2.17 - - @backstage/core-plugin-api@1.4.0 - - @backstage/plugin-catalog-react@1.3.0 - - @backstage/dev-utils@1.0.12 - - @backstage/test-utils@1.2.5 - -## 0.3.15-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.2.0-next.1 - - @backstage/core-components@0.12.4-next.1 - - @backstage/core-plugin-api@1.3.0 - - @backstage/dev-utils@1.0.12-next.2 - - @backstage/test-utils@1.2.5-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-catalog-react@1.3.0-next.2 - -## 0.3.15-next.1 - -### Patch Changes - -- 41377156d0: Adds a boolean helper function to airbrake plugin for use on the EntityPage to show/hide airbrake tab depending on whether the entity's catalog-info.yml has an airbrake id set in the metadata -- Updated dependencies - - @backstage/core-components@0.12.4-next.0 - - @backstage/plugin-catalog-react@1.3.0-next.1 - - @backstage/catalog-model@1.1.6-next.0 - - @backstage/core-plugin-api@1.3.0 - - @backstage/dev-utils@1.0.12-next.1 - - @backstage/test-utils@1.2.5-next.0 - - @backstage/theme@0.2.16 - -## 0.3.15-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.3.0-next.0 - - @backstage/catalog-model@1.1.6-next.0 - - @backstage/dev-utils@1.0.12-next.0 - -## 0.3.14 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5 - - @backstage/plugin-catalog-react@1.2.4 - - @backstage/core-components@0.12.3 - - @backstage/core-plugin-api@1.3.0 - - @backstage/dev-utils@1.0.11 - - @backstage/test-utils@1.2.4 - - @backstage/theme@0.2.16 - -## 0.3.14-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.3.0-next.1 - - @backstage/plugin-catalog-react@1.2.4-next.2 - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/core-components@0.12.3-next.2 - - @backstage/dev-utils@1.0.11-next.2 - - @backstage/test-utils@1.2.4-next.1 - - @backstage/theme@0.2.16 - -## 0.3.14-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/core-components@0.12.3-next.1 - - @backstage/core-plugin-api@1.2.1-next.0 - - @backstage/dev-utils@1.0.11-next.1 - - @backstage/test-utils@1.2.4-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-catalog-react@1.2.4-next.1 - -## 0.3.14-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.0 - - @backstage/plugin-catalog-react@1.2.4-next.0 - - @backstage/core-components@0.12.3-next.0 - - @backstage/core-plugin-api@1.2.0 - - @backstage/dev-utils@1.0.11-next.0 - - @backstage/test-utils@1.2.3 - - @backstage/theme@0.2.16 - -## 0.3.13 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.2 - - @backstage/dev-utils@1.0.10 - - @backstage/plugin-catalog-react@1.2.3 - -## 0.3.12 - -### Patch Changes - -- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- 151c0e1477: Remove the `object-hash` dependency -- Updated dependencies - - @backstage/core-plugin-api@1.2.0 - - @backstage/core-components@0.12.1 - - @backstage/test-utils@1.2.3 - - @backstage/dev-utils@1.0.9 - - @backstage/plugin-catalog-react@1.2.2 - - @backstage/catalog-model@1.1.4 - - @backstage/theme@0.2.16 - -## 0.3.12-next.4 - -### Patch Changes - -- 2e701b3796: Internal refactor to use `react-router-dom` rather than `react-router`. -- Updated dependencies - - @backstage/core-components@0.12.1-next.4 - - @backstage/dev-utils@1.0.9-next.4 - - @backstage/test-utils@1.2.3-next.4 - - @backstage/plugin-catalog-react@1.2.2-next.4 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/theme@0.2.16 - -## 0.3.12-next.3 - -### Patch Changes - -- 151c0e1477: Remove the `object-hash` dependency -- Updated dependencies - - @backstage/core-components@0.12.1-next.3 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/dev-utils@1.0.9-next.3 - - @backstage/test-utils@1.2.3-next.3 - - @backstage/theme@0.2.16 - - @backstage/plugin-catalog-react@1.2.2-next.3 - -## 0.3.12-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/core-components@0.12.1-next.2 - - @backstage/plugin-catalog-react@1.2.2-next.2 - - @backstage/dev-utils@1.0.9-next.2 - - @backstage/test-utils@1.2.3-next.2 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/theme@0.2.16 - -## 0.3.12-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.1-next.1 - - @backstage/test-utils@1.2.3-next.1 - - @backstage/core-plugin-api@1.1.1-next.1 - - @backstage/dev-utils@1.0.9-next.1 - - @backstage/plugin-catalog-react@1.2.2-next.1 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/theme@0.2.16 - -## 0.3.12-next.0 - -### Patch Changes - -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/core-components@0.12.1-next.0 - - @backstage/core-plugin-api@1.1.1-next.0 - - @backstage/test-utils@1.2.3-next.0 - - @backstage/dev-utils@1.0.9-next.0 - - @backstage/plugin-catalog-react@1.2.2-next.0 - - @backstage/catalog-model@1.1.4-next.0 - - @backstage/theme@0.2.16 - -## 0.3.11 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.1 - - @backstage/core-components@0.12.0 - - @backstage/core-plugin-api@1.1.0 - - @backstage/catalog-model@1.1.3 - - @backstage/dev-utils@1.0.8 - - @backstage/test-utils@1.2.2 - - @backstage/theme@0.2.16 - -## 0.3.11-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.0-next.1 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/core-plugin-api@1.1.0-next.0 - - @backstage/dev-utils@1.0.8-next.1 - - @backstage/test-utils@1.2.2-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-catalog-react@1.2.1-next.1 - -## 0.3.11-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.1-next.0 - - @backstage/core-components@0.12.0-next.0 - - @backstage/core-plugin-api@1.1.0-next.0 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/dev-utils@1.0.8-next.0 - - @backstage/test-utils@1.2.2-next.0 - - @backstage/theme@0.2.16 - -## 0.3.10 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2 - - @backstage/plugin-catalog-react@1.2.0 - - @backstage/core-components@0.11.2 - - @backstage/test-utils@1.2.1 - - @backstage/dev-utils@1.0.7 - - @backstage/core-plugin-api@1.0.7 - - @backstage/theme@0.2.16 - -## 0.3.10-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.0-next.2 - - @backstage/test-utils@1.2.1-next.2 - - @backstage/catalog-model@1.1.2-next.2 - - @backstage/core-components@0.11.2-next.2 - - @backstage/core-plugin-api@1.0.7-next.2 - - @backstage/dev-utils@1.0.7-next.2 - - @backstage/theme@0.2.16 - -## 0.3.10-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.0-next.1 - - @backstage/dev-utils@1.0.7-next.1 - - @backstage/core-components@0.11.2-next.1 - - @backstage/core-plugin-api@1.0.7-next.1 - - @backstage/test-utils@1.2.1-next.1 - - @backstage/catalog-model@1.1.2-next.1 - - @backstage/theme@0.2.16 - -## 0.3.10-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2-next.0 - - @backstage/core-components@0.11.2-next.0 - - @backstage/test-utils@1.2.1-next.0 - - @backstage/dev-utils@1.0.7-next.0 - - @backstage/plugin-catalog-react@1.1.5-next.0 - - @backstage/core-plugin-api@1.0.7-next.0 - - @backstage/theme@0.2.16 - -## 0.3.9 - -### Patch Changes - -- 817f3196f6: Updated React Router dependencies to be peer dependencies. -- 7d47def9c4: Removed dependency on `@types/jest`. -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- Updated dependencies - - @backstage/core-components@0.11.1 - - @backstage/core-plugin-api@1.0.6 - - @backstage/dev-utils@1.0.6 - - @backstage/test-utils@1.2.0 - - @backstage/plugin-catalog-react@1.1.4 - - @backstage/catalog-model@1.1.1 - -## 0.3.9-next.3 - -### Patch Changes - -- 7d47def9c4: Removed dependency on `@types/jest`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.4-next.2 - - @backstage/catalog-model@1.1.1-next.0 - - @backstage/core-components@0.11.1-next.3 - - @backstage/core-plugin-api@1.0.6-next.3 - - @backstage/dev-utils@1.0.6-next.2 - - @backstage/test-utils@1.2.0-next.3 - -## 0.3.9-next.2 - -### Patch Changes - -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- Updated dependencies - - @backstage/core-components@0.11.1-next.2 - - @backstage/core-plugin-api@1.0.6-next.2 - - @backstage/test-utils@1.2.0-next.2 - -## 0.3.9-next.1 - -### Patch Changes - -- 817f3196f6: Updated React Router dependencies to be peer dependencies. -- Updated dependencies - - @backstage/core-components@0.11.1-next.1 - - @backstage/core-plugin-api@1.0.6-next.1 - - @backstage/dev-utils@1.0.6-next.1 - - @backstage/test-utils@1.2.0-next.1 - - @backstage/plugin-catalog-react@1.1.4-next.1 - -## 0.3.9-next.0 - -### Patch Changes - -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- Updated dependencies - - @backstage/core-plugin-api@1.0.6-next.0 - - @backstage/core-components@0.11.1-next.0 - - @backstage/test-utils@1.1.4-next.0 - - @backstage/dev-utils@1.0.6-next.0 - - @backstage/plugin-catalog-react@1.1.4-next.0 - -## 0.3.8 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.11.0 - - @backstage/core-plugin-api@1.0.5 - - @backstage/plugin-catalog-react@1.1.3 - - @backstage/dev-utils@1.0.5 - - @backstage/test-utils@1.1.3 - -## 0.3.8-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.3-next.2 - - @backstage/core-components@0.11.0-next.2 - - @backstage/dev-utils@1.0.5-next.1 - -## 0.3.8-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.0.5-next.0 - - @backstage/plugin-catalog-react@1.1.3-next.0 - - @backstage/core-components@0.10.1-next.0 - - @backstage/dev-utils@1.0.5-next.0 - - @backstage/test-utils@1.1.3-next.0 - -## 0.3.7 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`. -- Updated dependencies - - @backstage/core-components@0.10.0 - - @backstage/catalog-model@1.1.0 - - @backstage/core-plugin-api@1.0.4 - - @backstage/test-utils@1.1.2 - - @backstage/plugin-catalog-react@1.1.2 - - @backstage/theme@0.2.16 - - @backstage/dev-utils@1.0.4 - -## 0.3.7-next.3 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- Updated dependencies - - @backstage/core-plugin-api@1.0.4-next.0 - - @backstage/core-components@0.10.0-next.3 - - @backstage/test-utils@1.1.2-next.2 - - @backstage/catalog-model@1.1.0-next.3 - - @backstage/plugin-catalog-react@1.1.2-next.3 - - @backstage/dev-utils@1.0.4-next.3 - -## 0.3.7-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.10.0-next.2 - - @backstage/catalog-model@1.1.0-next.2 - - @backstage/theme@0.2.16-next.1 - - @backstage/plugin-catalog-react@1.1.2-next.2 - - @backstage/dev-utils@1.0.4-next.2 - -## 0.3.7-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.6-next.1 - - @backstage/catalog-model@1.1.0-next.1 - - @backstage/theme@0.2.16-next.0 - - @backstage/dev-utils@1.0.4-next.1 - - @backstage/test-utils@1.1.2-next.1 - - @backstage/plugin-catalog-react@1.1.2-next.1 - -## 0.3.7-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.0-next.0 - - @backstage/core-components@0.9.6-next.0 - - @backstage/dev-utils@1.0.4-next.0 - - @backstage/plugin-catalog-react@1.1.2-next.0 - - @backstage/test-utils@1.1.2-next.0 - -## 0.3.6 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.1 - - @backstage/core-components@0.9.5 - - @backstage/core-plugin-api@1.0.3 - - @backstage/test-utils@1.1.1 - - @backstage/catalog-model@1.0.3 - - @backstage/dev-utils@1.0.3 - -## 0.3.6-next.1 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/core-components@0.9.5-next.1 - - @backstage/core-plugin-api@1.0.3-next.0 - - @backstage/test-utils@1.1.1-next.0 - - @backstage/catalog-model@1.0.3-next.0 - - @backstage/plugin-catalog-react@1.1.1-next.1 - - @backstage/dev-utils@1.0.3-next.1 - -## 0.3.6-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.1-next.0 - - @backstage/core-components@0.9.5-next.0 - - @backstage/dev-utils@1.0.3-next.0 - -## 0.3.5 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.4 - - @backstage/test-utils@1.1.0 - - @backstage/core-plugin-api@1.0.2 - - @backstage/plugin-catalog-react@1.1.0 - - @backstage/dev-utils@1.0.2 - - @backstage/catalog-model@1.0.2 - -## 0.3.5-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.4-next.1 - - @backstage/dev-utils@1.0.2-next.2 - - @backstage/plugin-catalog-react@1.1.0-next.2 - - @backstage/catalog-model@1.0.2-next.0 - - @backstage/core-plugin-api@1.0.2-next.1 - - @backstage/test-utils@1.1.0-next.2 - -## 0.3.5-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.4-next.0 - - @backstage/test-utils@1.1.0-next.1 - - @backstage/core-plugin-api@1.0.2-next.0 - - @backstage/plugin-catalog-react@1.1.0-next.1 - - @backstage/dev-utils@1.0.2-next.1 - -## 0.3.5-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.0-next.0 - - @backstage/test-utils@1.0.2-next.0 - - @backstage/dev-utils@1.0.2-next.0 - -## 0.3.4 - -### Patch Changes - -- 24254fd433: build(deps): bump `@testing-library/user-event` from 13.5.0 to 14.0.0 -- 230ad0826f: Bump to using `@types/node` v16 -- Updated dependencies - - @backstage/plugin-catalog-react@1.0.1 - - @backstage/catalog-model@1.0.1 - - @backstage/core-components@0.9.3 - - @backstage/core-plugin-api@1.0.1 - - @backstage/dev-utils@1.0.1 - - @backstage/test-utils@1.0.1 - -## 0.3.4-next.1 - -### Patch Changes - -- 24254fd433: build(deps): bump `@testing-library/user-event` from 13.5.0 to 14.0.0 -- 230ad0826f: Bump to using `@types/node` v16 -- Updated dependencies - - @backstage/core-components@0.9.3-next.2 - - @backstage/core-plugin-api@1.0.1-next.0 - - @backstage/dev-utils@1.0.1-next.1 - - @backstage/test-utils@1.0.1-next.2 - - @backstage/plugin-catalog-react@1.0.1-next.3 - -## 0.3.4-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.0.1-next.0 - - @backstage/plugin-catalog-react@1.0.1-next.0 - - @backstage/core-components@0.9.3-next.0 - - @backstage/dev-utils@1.0.1-next.0 - - @backstage/test-utils@1.0.1-next.0 - -## 0.3.3 - -### Patch Changes - -- 89c7e47967: Minor README update -- 7ff853b2d5: build(deps): bump `object-hash` from 2.2.0 to 3.0.0 -- a422d7ce5e: chore(deps): bump `@testing-library/react` from 11.2.6 to 12.1.3 -- Updated dependencies - - @backstage/core-components@0.9.2 - - @backstage/core-plugin-api@1.0.0 - - @backstage/dev-utils@1.0.0 - - @backstage/test-utils@1.0.0 - - @backstage/plugin-catalog-react@1.0.0 - - @backstage/catalog-model@1.0.0 - -## 0.3.2 - -### Patch Changes - -- c5a462bff1: Fix a bug where API calls were being made and errors were being added to the snack bar when no project ID was present. This is a common use case for components that haven't added the Airbrake plugin annotation to their `catalog-info.yaml`. -- Updated dependencies - - @backstage/plugin-catalog-react@0.9.0 - - @backstage/core-components@0.9.1 - - @backstage/catalog-model@0.13.0 - - @backstage/dev-utils@0.2.25 - -## 0.3.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@0.9.0-next.0 - - @backstage/core-components@0.9.1-next.0 - - @backstage/catalog-model@0.13.0-next.0 - - @backstage/dev-utils@0.2.25-next.0 - -## 0.3.1 - -### Patch Changes - -- 3c1d3cb07e: The Airbrake plugin installation instructions have been updated to work better and conform to how the frontend and backend plugins are supposed to be integrated into a Backstage instance. -- Updated dependencies - - @backstage/catalog-model@0.12.0 - - @backstage/core-components@0.9.0 - - @backstage/plugin-catalog-react@0.8.0 - - @backstage/core-plugin-api@0.8.0 - - @backstage/test-utils@0.3.0 - - @backstage/dev-utils@0.2.24 - -## 0.3.0 - -### Minor Changes - -- da78e79a94: This marks the first release where the Airbrake plugin is useable. Airbrake frontend and Airbrake backend work with each other. Currently just a summary of the latest Airbrakes is shown on Backstage. - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.10 - - @backstage/plugin-catalog-react@0.7.0 - - @backstage/catalog-model@0.11.0 - - @backstage/core-plugin-api@0.7.0 - - @backstage/dev-utils@0.2.23 - - @backstage/test-utils@0.2.6 - -## 0.2.0 - -### Minor Changes - -- 9e505d20a3: API connectivity has added, but currently will only work by running it standalone on a browser with CORS disabled. - -### Patch Changes - -- 1ed305728b: Bump `node-fetch` to version 2.6.7 and `cross-fetch` to version 3.1.5 -- c77c5c7eb6: Added `backstage.role` to `package.json` -- Updated dependencies - - @backstage/core-components@0.8.9 - - @backstage/core-plugin-api@0.6.1 - - @backstage/test-utils@0.2.5 - - @backstage/plugin-catalog-react@0.6.15 - - @backstage/catalog-model@0.10.0 - - @backstage/dev-utils@0.2.22 - - @backstage/theme@0.2.15 - -## 0.1.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.8 - -## 0.1.3-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.8-next.0 - -## 0.1.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.7 - -## 0.1.2-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.7-next.0 - -## 0.1.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.5 - - @backstage/core-plugin-api@0.6.0 - -## 0.1.1-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.5-next.0 - - @backstage/core-plugin-api@0.6.0-next.0 - -## 0.1.0 - -### Minor Changes - -- 04c86e5a10: A plugin for Airbrake (https://airbrake.io/) has been created - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.4 - - @backstage/core-plugin-api@0.5.0 diff --git a/plugins/airbrake/README.md b/plugins/airbrake/README.md deleted file mode 100644 index 0dff15fa88..0000000000 --- a/plugins/airbrake/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Deprecated - -This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-airbrake` instead. diff --git a/plugins/airbrake/api-report.md b/plugins/airbrake/api-report.md deleted file mode 100644 index 66f9b19bc8..0000000000 --- a/plugins/airbrake/api-report.md +++ /dev/null @@ -1,24 +0,0 @@ -## API Report File for "@backstage/plugin-airbrake" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { Entity } from '@backstage/catalog-model'; -import { default as React_2 } from 'react'; -import { RouteRef } from '@backstage/core-plugin-api'; - -// @public -export const airbrakePlugin: BackstagePlugin< - { - root: RouteRef; - }, - {} ->; - -// @public -export const EntityAirbrakeContent: () => React_2.JSX.Element; - -// @public -export const isAirbrakeAvailable: (entity: Entity) => boolean; -``` diff --git a/plugins/airbrake/catalog-info.yaml b/plugins/airbrake/catalog-info.yaml deleted file mode 100644 index d1eac0d04e..0000000000 --- a/plugins/airbrake/catalog-info.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: backstage-plugin-airbrake - title: '@backstage/plugin-airbrake' -spec: - lifecycle: experimental - type: backstage-frontend-plugin - owner: maintainers diff --git a/plugins/airbrake/dev/components/ApiBar/ApiBar.tsx b/plugins/airbrake/dev/components/ApiBar/ApiBar.tsx deleted file mode 100644 index f75bc4160f..0000000000 --- a/plugins/airbrake/dev/components/ApiBar/ApiBar.tsx +++ /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 React from 'react'; -import TextField from '@material-ui/core/TextField'; -import { makeStyles } from '@material-ui/core/styles'; -import { Context } from '../ContextProvider'; - -const useStyles = makeStyles(theme => ({ - root: { - display: 'flex', - gap: '1em', - flexWrap: 'wrap', - }, - label: { - color: `${theme.palette.common.white} !important`, - }, - outline: { - color: `${theme.palette.common.white} !important`, - borderColor: `${theme.palette.common.white} !important`, - }, -})); - -export const ApiBar = () => { - const classes = useStyles(); - - return ( - - {value => ( -
- - value.setProjectId?.(parseInt(e.target.value, 10) || undefined) - } - /> -
- )} -
- ); -}; diff --git a/plugins/airbrake/dev/components/ApiBar/index.ts b/plugins/airbrake/dev/components/ApiBar/index.ts deleted file mode 100644 index ff6e80d3d8..0000000000 --- a/plugins/airbrake/dev/components/ApiBar/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { ApiBar } from './ApiBar'; diff --git a/plugins/airbrake/dev/components/ContextProvider/ContextProvider.tsx b/plugins/airbrake/dev/components/ContextProvider/ContextProvider.tsx deleted file mode 100644 index d46366d8f6..0000000000 --- a/plugins/airbrake/dev/components/ContextProvider/ContextProvider.tsx +++ /dev/null @@ -1,43 +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 React, { - Dispatch, - PropsWithChildren, - SetStateAction, - useState, -} from 'react'; - -interface ContextInterface { - projectId?: number; - setProjectId?: Dispatch>; -} - -export const Context = React.createContext({}); - -export const ContextProvider = ({ children }: PropsWithChildren<{}>) => { - const [projectId, setProjectId] = useState(); - - return ( - - {children} - - ); -}; diff --git a/plugins/airbrake/dev/components/ContextProvider/index.ts b/plugins/airbrake/dev/components/ContextProvider/index.ts deleted file mode 100644 index f1e350868a..0000000000 --- a/plugins/airbrake/dev/components/ContextProvider/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { ContextProvider, Context } from './ContextProvider'; diff --git a/plugins/airbrake/dev/index.tsx b/plugins/airbrake/dev/index.tsx deleted file mode 100644 index a844dfdfdc..0000000000 --- a/plugins/airbrake/dev/index.tsx +++ /dev/null @@ -1,88 +0,0 @@ -/* - * 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 React from 'react'; -import { createDevApp } from '@backstage/dev-utils'; -import { TestApiProvider } from '@backstage/test-utils'; -import { airbrakePlugin, EntityAirbrakeContent } from '../src'; -import { - airbrakeApiRef, - localDiscoveryApi, - MockAirbrakeApi, - ProductionAirbrakeApi, -} from '../src/api'; -import { ApiBar } from './components/ApiBar'; -import { Content, Header, Page } from '@backstage/core-components'; -import { EntityProvider } from '@backstage/plugin-catalog-react'; -import { createEntity } from '../src/api'; -import CloudOffIcon from '@material-ui/icons/CloudOff'; -import CloudIcon from '@material-ui/icons/Cloud'; -import { Context, ContextProvider } from './components/ContextProvider'; - -createDevApp() - .registerPlugin(airbrakePlugin) - .addPage({ - element: ( - -
- - - - - - - - - ), - title: 'Mock API', - path: '/airbrake-mock-api', - icon: CloudOffIcon, - }) - .addPage({ - element: ( - - -
- -
- - - {value => ( - - - - - - )} - - -
-
- ), - title: 'Real API', - path: '/airbrake-real-api', - icon: CloudIcon, - }) - .render(); diff --git a/plugins/airbrake/knip-report.md b/plugins/airbrake/knip-report.md deleted file mode 100644 index 2e539d1e56..0000000000 --- a/plugins/airbrake/knip-report.md +++ /dev/null @@ -1,10 +0,0 @@ -# Knip report - -## Unused devDependencies (3) - -| Name | Location | Severity | -| :---------------------- | :----------- | :------- | -| @backstage/app-defaults | package.json | error | -| @testing-library/react | package.json | error | -| @testing-library/dom | package.json | error | - diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json deleted file mode 100644 index 48155c20e9..0000000000 --- a/plugins/airbrake/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "@backstage/plugin-airbrake", - "version": "0.3.34", - "backstage": { - "role": "frontend-plugin", - "moved": "@backstage-community/plugin-airbrake" - }, - "publishConfig": { - "access": "public", - "main": "dist/index.esm.js", - "types": "dist/index.d.ts" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/airbrake" - }, - "license": "Apache-2.0", - "sideEffects": false, - "main": "src/index.ts", - "types": "src/index.ts", - "files": [ - "dist" - ], - "scripts": { - "build": "backstage-cli package build", - "clean": "backstage-cli package clean", - "lint": "backstage-cli package lint", - "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack", - "start": "backstage-cli package start", - "test": "backstage-cli package test" - }, - "dependencies": { - "@backstage/catalog-model": "workspace:^", - "@backstage/core-components": "workspace:^", - "@backstage/core-plugin-api": "workspace:^", - "@backstage/dev-utils": "workspace:^", - "@backstage/plugin-catalog-react": "workspace:^", - "@backstage/test-utils": "workspace:^", - "@material-ui/core": "^4.12.2", - "@material-ui/icons": "^4.9.1", - "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-use": "^17.2.4" - }, - "devDependencies": { - "@backstage/app-defaults": "workspace:^", - "@backstage/cli": "workspace:^", - "@backstage/dev-utils": "workspace:^", - "@backstage/test-utils": "workspace:^", - "@testing-library/dom": "^10.0.0", - "@testing-library/jest-dom": "^6.0.0", - "@testing-library/react": "^15.0.0", - "msw": "^1.0.0" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-router-dom": "6.0.0-beta.0 || ^6.3.0" - }, - "deprecated": "This package has been moved to the backstage/community-plugins repository. You should migrate to using @backstage-community/plugin-airbrake instead." -} diff --git a/plugins/airbrake/src/api/AirbrakeApi.ts b/plugins/airbrake/src/api/AirbrakeApi.ts deleted file mode 100644 index a29aa3eca7..0000000000 --- a/plugins/airbrake/src/api/AirbrakeApi.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Groups } from './airbrakeGroups'; -import { createApiRef } from '@backstage/core-plugin-api'; - -export const airbrakeApiRef = createApiRef({ - id: 'plugin.airbrake.service', -}); - -export interface AirbrakeApi { - fetchGroups(projectId: string): Promise; -} diff --git a/plugins/airbrake/src/api/ProductionApi.test.ts b/plugins/airbrake/src/api/ProductionApi.test.ts deleted file mode 100644 index 92593e42bc..0000000000 --- a/plugins/airbrake/src/api/ProductionApi.test.ts +++ /dev/null @@ -1,55 +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 { ProductionAirbrakeApi } from './ProductionApi'; -import { rest } from 'msw'; -import mockGroupsData from './mock/airbrakeGroupsApiMock.json'; -import { setupServer } from 'msw/node'; -import { setupRequestMockHandlers } from '@backstage/test-utils'; -import { localDiscoveryApi } from './mock'; - -describe('The production Airbrake API', () => { - const productionApi = new ProductionAirbrakeApi(localDiscoveryApi); - const worker = setupServer(); - setupRequestMockHandlers(worker); - - it('fetches groups using the provided project ID', async () => { - worker.use( - rest.get( - 'http://localhost:7007/api/airbrake/api/v4/projects/123456/groups', - (_, res, ctx) => { - return res(ctx.status(200), ctx.json(mockGroupsData)); - }, - ), - ); - - const groups = await productionApi.fetchGroups('123456'); - expect(groups).toStrictEqual(mockGroupsData); - }); - - it('throws if fetching groups was unsuccessful', async () => { - worker.use( - rest.get( - 'http://localhost:7007/api/airbrake/api/v4/projects/123456/groups', - (_, res, ctx) => { - return res(ctx.status(500)); - }, - ), - ); - - await expect(productionApi.fetchGroups('123456')).rejects.toThrow(); - }); -}); diff --git a/plugins/airbrake/src/api/ProductionApi.ts b/plugins/airbrake/src/api/ProductionApi.ts deleted file mode 100644 index 21ca19ee7d..0000000000 --- a/plugins/airbrake/src/api/ProductionApi.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Groups } from './airbrakeGroups'; -import { AirbrakeApi } from './AirbrakeApi'; -import { DiscoveryApi } from '@backstage/core-plugin-api'; - -export class ProductionAirbrakeApi implements AirbrakeApi { - constructor(private readonly discoveryApi: DiscoveryApi) {} - - async fetchGroups(projectId: string): Promise { - const baseUrl = await this.discoveryApi.getBaseUrl('airbrake'); - const apiUrl = `${baseUrl}/api/v4/projects/${projectId}/groups`; - - const response = await fetch(apiUrl); - - if (response.status >= 400 && response.status < 600) { - throw new Error('Failed fetching Airbrake groups'); - } - - return (await response.json()) as Groups; - } -} diff --git a/plugins/airbrake/src/api/airbrakeGroups.d.ts b/plugins/airbrake/src/api/airbrakeGroups.d.ts deleted file mode 100644 index e1887eca9b..0000000000 --- a/plugins/airbrake/src/api/airbrakeGroups.d.ts +++ /dev/null @@ -1,65 +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. - */ - -export interface Groups { - count: number; - end: string; - groups?: Group[] | null; - page: number; - resolvedCount: number; - unresolvedCount: number; -} - -export interface Group { - id: string; - projectId: number; - resolved: boolean; - muted: boolean; - mutedBy: number; - mutedAt?: string | null; - errors?: Error[]; - attributes?: string | null; - context: Context; - lastDeployId: string; - lastDeployAt?: string | null; - lastNoticeId: string; - lastNoticeAt: string; - noticeCount: number; - noticeTotalCount: number; - commentCount: number; - createdAt: string; -} - -export interface Error { - type: string; - message: string; - backtrace?: Backtrace[]; -} - -export interface Backtrace { - file: string; - function: string; - line: number; - column: number; - code?: string | null; -} - -export interface Context { - action: string; - component: string; - environment: string; - severity: string; -} diff --git a/plugins/airbrake/src/api/index.ts b/plugins/airbrake/src/api/index.ts deleted file mode 100644 index 2d92789653..0000000000 --- a/plugins/airbrake/src/api/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from './mock'; -export type { AirbrakeApi } from './AirbrakeApi'; -export { airbrakeApiRef } from './AirbrakeApi'; -export type { Groups } from './airbrakeGroups'; -export { ProductionAirbrakeApi } from './ProductionApi'; diff --git a/plugins/airbrake/src/api/mock/LocalDiscoveryApi.ts b/plugins/airbrake/src/api/mock/LocalDiscoveryApi.ts deleted file mode 100644 index c3080a8104..0000000000 --- a/plugins/airbrake/src/api/mock/LocalDiscoveryApi.ts +++ /dev/null @@ -1,22 +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 { DiscoveryApi } from '@backstage/core-plugin-api'; - -export const localDiscoveryApi: DiscoveryApi = { - async getBaseUrl(pluginId: string): Promise { - return `http://localhost:7007/api/${pluginId}`; - }, -}; diff --git a/plugins/airbrake/src/api/mock/MockApi.ts b/plugins/airbrake/src/api/mock/MockApi.ts deleted file mode 100644 index dbb1d5c049..0000000000 --- a/plugins/airbrake/src/api/mock/MockApi.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Groups } from '../airbrakeGroups'; -import { AirbrakeApi } from '../AirbrakeApi'; -import mockGroupsData from './airbrakeGroupsApiMock.json'; - -export class MockAirbrakeApi implements AirbrakeApi { - waitTimeInMillis: number; - - constructor(waitTimeInMillis = 10) { - this.waitTimeInMillis = waitTimeInMillis; - } - - fetchGroups(): Promise { - return new Promise(resolve => { - setTimeout(() => resolve(mockGroupsData), this.waitTimeInMillis); - }); - } -} diff --git a/plugins/airbrake/src/api/mock/MockEntity.ts b/plugins/airbrake/src/api/mock/MockEntity.ts deleted file mode 100644 index 13534f2458..0000000000 --- a/plugins/airbrake/src/api/mock/MockEntity.ts +++ /dev/null @@ -1,32 +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 { AIRBRAKE_PROJECT_ID_ANNOTATION } from '../../components/useProjectId'; -import { Entity } from '@backstage/catalog-model'; - -export const createEntity = (projectId?: number) => { - const projectIdString = projectId?.toString(); - - return { - apiVersion: 'backstage.io/v1alpha1', - kind: 'Component', - metadata: { - annotations: { - [AIRBRAKE_PROJECT_ID_ANNOTATION]: projectIdString, - }, - name: projectIdString, - }, - } as Entity; -}; diff --git a/plugins/airbrake/src/api/mock/airbrakeGroupsApiMock.json b/plugins/airbrake/src/api/mock/airbrakeGroupsApiMock.json deleted file mode 100644 index fa654ec50b..0000000000 --- a/plugins/airbrake/src/api/mock/airbrakeGroupsApiMock.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "count": 2, - "end": "", - "groups": [ - { - "id": "1", - "projectId": 123, - "resolved": false, - "muted": false, - "mutedBy": 0, - "mutedAt": null, - "errors": [ - { - "type": "Error", - "message": "useSearch must be used within a SearchContextProvider", - "backtrace": [ - { - "file": "webpack-internal:///../../node_modules/@backstage/plugin-search/dist/esm/index-893ec2f5.esm.js", - "function": "useSearch", - "line": 303, - "column": 11, - "code": null - } - ] - } - ], - "attributes": null, - "context": { - "action": "", - "component": "", - "environment": "local", - "severity": "error" - }, - "lastDeployId": "0", - "lastDeployAt": null, - "lastNoticeId": "234", - "lastNoticeAt": "2021-12-19T09:59:00.124Z", - "noticeCount": 5, - "noticeTotalCount": 5, - "commentCount": 0, - "createdAt": "2021-12-19T09:44:30.067447Z" - }, - { - "id": "2", - "projectId": 123, - "resolved": true, - "muted": false, - "mutedBy": 0, - "mutedAt": null, - "errors": [ - { - "type": "ChunkLoadError", - "message": "Loading chunk 7764 failed.", - "backtrace": [ - { - "file": "/PROJECT_ROOT/static/runtime.069c874d.js", - "function": "Object._.f.j", - "line": 1, - "column": 19465, - "code": null - } - ] - } - ], - "attributes": null, - "context": { - "action": "", - "component": "", - "environment": "local", - "severity": "error" - }, - "lastDeployId": "0", - "lastDeployAt": null, - "lastNoticeId": "345", - "lastNoticeAt": "2021-12-15T17:16:38.419Z", - "noticeCount": 1, - "noticeTotalCount": 1, - "commentCount": 0, - "createdAt": "2021-12-15T17:16:38.41983Z" - } - ], - "page": 1, - "resolvedCount": 1, - "unresolvedCount": 1 -} diff --git a/plugins/airbrake/src/api/mock/index.ts b/plugins/airbrake/src/api/mock/index.ts deleted file mode 100644 index 4e0ab5fabf..0000000000 --- a/plugins/airbrake/src/api/mock/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from './MockApi'; -export * from './MockEntity'; -export * from './LocalDiscoveryApi'; diff --git a/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.test.tsx b/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.test.tsx deleted file mode 100644 index a7243f5f0f..0000000000 --- a/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.test.tsx +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import React from 'react'; -import { EntityAirbrakeWidget } from './EntityAirbrakeWidget'; -import exampleData from '../../api/mock/airbrakeGroupsApiMock.json'; -import { - renderInTestApp, - setupRequestMockHandlers, - TestApiProvider, -} from '@backstage/test-utils'; -import { - airbrakeApiRef, - createEntity, - localDiscoveryApi, - MockAirbrakeApi, - ProductionAirbrakeApi, -} from '../../api'; -import { rest } from 'msw'; -import { setupServer } from 'msw/node'; - -describe('EntityAirbrakeWidget', () => { - const worker = setupServer(); - setupRequestMockHandlers(worker); - - it('renders all errors sent from Airbrake', async () => { - const widget = await renderInTestApp( - - - , - ); - expect(exampleData.groups.length).toBeGreaterThan(0); - for (const group of exampleData.groups) { - expect( - await widget.findByText(group.errors[0].message), - ).toBeInTheDocument(); - } - }); - - it('states that the annotation is missing if no project ID annotation is provided but does not error', async () => { - const widget = await renderInTestApp( - - - , - ); - await expect( - widget.findByText('Missing Annotation'), - ).resolves.toBeInTheDocument(); - expect( - widget.queryByText(/.*Failed fetching Airbrake groups.*/), - ).not.toBeInTheDocument(); - }); - - it('states that an error occurred if the API call fails', async () => { - worker.use( - rest.get( - 'http://localhost:7007/api/airbrake/api/v4/projects/123/groups', - (_, res, ctx) => { - return res(ctx.status(500)); - }, - ), - ); - - const widget = await renderInTestApp( - - - , - ); - - await expect( - widget.findByText(/.*there was an issue communicating with Airbrake.*/), - ).resolves.toBeInTheDocument(); - expect( - widget.getByRole('heading', { - name: /.*Failed fetching Airbrake groups.*/, - }), - ).toBeInTheDocument(); - }); -}); diff --git a/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.tsx b/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.tsx deleted file mode 100644 index 88fc04f8e3..0000000000 --- a/plugins/airbrake/src/components/EntityAirbrakeWidget/EntityAirbrakeWidget.tsx +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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 { - EmptyState, - ErrorPanel, - InfoCard, - Progress, -} from '@backstage/core-components'; -import { useApi } from '@backstage/core-plugin-api'; -import Grid from '@material-ui/core/Grid'; -import Typography from '@material-ui/core/Typography'; -import { makeStyles } from '@material-ui/core/styles'; -import React from 'react'; -import useAsync from 'react-use/esm/useAsync'; -import { airbrakeApiRef } from '../../api'; -import { MissingAnnotationEmptyState } from '@backstage/plugin-catalog-react'; -import { AIRBRAKE_PROJECT_ID_ANNOTATION, useProjectId } from '../useProjectId'; - -const useStyles = makeStyles({ - multilineText: { - whiteSpace: 'pre-wrap', - }, -}); - -export const EntityAirbrakeWidget = ({ entity }: { entity: Entity }) => { - const classes = useStyles(); - - const projectId = useProjectId(entity); - const airbrakeApi = useApi(airbrakeApiRef); - - const { loading, value, error } = useAsync(() => { - if (!projectId) { - return Promise.resolve(undefined); - } - - return airbrakeApi.fetchGroups(projectId); - }, [airbrakeApi, projectId]); - - if (!projectId) { - return ( - - ); - } else if (loading) { - return ; - } else if (value) { - return ( - - {value.groups?.map(group => ( - - {group.errors?.map((groupError, i) => ( - - - {groupError.message} - - - ))} - - ))} - - ); - } - - return ( - <> - {error && } - - - ); -}; diff --git a/plugins/airbrake/src/components/EntityAirbrakeWidget/index.ts b/plugins/airbrake/src/components/EntityAirbrakeWidget/index.ts deleted file mode 100644 index 0a85263c5f..0000000000 --- a/plugins/airbrake/src/components/EntityAirbrakeWidget/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { EntityAirbrakeWidget } from './EntityAirbrakeWidget'; diff --git a/plugins/airbrake/src/components/isAirbrakeAvailable.ts b/plugins/airbrake/src/components/isAirbrakeAvailable.ts deleted file mode 100644 index 01d59668ce..0000000000 --- a/plugins/airbrake/src/components/isAirbrakeAvailable.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Entity } from '@backstage/catalog-model'; -import { AIRBRAKE_PROJECT_ID_ANNOTATION } from './useProjectId'; - -/** - * Utility function to determine if the given entity has an Airbrake ID set in the repos catalog-info.yml . - * @public - */ -export const isAirbrakeAvailable = (entity: Entity) => - Boolean(entity.metadata.annotations?.[AIRBRAKE_PROJECT_ID_ANNOTATION]); diff --git a/plugins/airbrake/src/components/useProjectId.ts b/plugins/airbrake/src/components/useProjectId.ts deleted file mode 100644 index 3402778b7b..0000000000 --- a/plugins/airbrake/src/components/useProjectId.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Entity } from '@backstage/catalog-model'; - -export const AIRBRAKE_PROJECT_ID_ANNOTATION = 'airbrake.io/project-id'; - -export const useProjectId = (entity: Entity) => { - return entity?.metadata.annotations?.[AIRBRAKE_PROJECT_ID_ANNOTATION] ?? ''; -}; diff --git a/plugins/airbrake/src/extensions.test.tsx b/plugins/airbrake/src/extensions.test.tsx deleted file mode 100644 index b24b7febf8..0000000000 --- a/plugins/airbrake/src/extensions.test.tsx +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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 React from 'react'; -import { EntityAirbrakeContent } from './extensions'; -import { Route, Routes } from 'react-router-dom'; -import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; -import { airbrakeApiRef, MockAirbrakeApi } from './api'; -import { createEntity } from './api'; -import { EntityProvider } from '@backstage/plugin-catalog-react'; - -describe('The Airbrake entity', () => { - it('should render the content properly', async () => { - const rendered = await renderInTestApp( - - - - } /> - - - , - ); - await expect( - rendered.findByText('ChunkLoadError'), - ).resolves.toBeInTheDocument(); - }); -}); diff --git a/plugins/airbrake/src/extensions.tsx b/plugins/airbrake/src/extensions.tsx deleted file mode 100644 index d4f890f44a..0000000000 --- a/plugins/airbrake/src/extensions.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { useEntity } from '@backstage/plugin-catalog-react'; -import React from 'react'; -import { airbrakePlugin } from './plugin'; -import { createRoutableExtension } from '@backstage/core-plugin-api'; -import { rootRouteRef } from './routes'; - -/** - * This is the widget that shows up on a component page - * - * @public - */ -export const EntityAirbrakeContent = airbrakePlugin.provide( - createRoutableExtension({ - name: 'EntityAirbrakeContent', - mountPoint: rootRouteRef, - component: () => - import('./components/EntityAirbrakeWidget').then( - ({ EntityAirbrakeWidget }) => { - return () => { - const { entity } = useEntity(); - return ; - }; - }, - ), - }), -); diff --git a/plugins/airbrake/src/index.test.ts b/plugins/airbrake/src/index.test.ts deleted file mode 100644 index 3aea2edf66..0000000000 --- a/plugins/airbrake/src/index.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * 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 { EntityAirbrakeContent, airbrakePlugin } from './index'; - -describe('The Airbrake plugin index file', () => { - it('exports the plugin and content', async () => { - expect(EntityAirbrakeContent).toBeTruthy(); - expect(airbrakePlugin).toBeTruthy(); - }); -}); diff --git a/plugins/airbrake/src/index.ts b/plugins/airbrake/src/index.ts deleted file mode 100644 index 6f189e36b8..0000000000 --- a/plugins/airbrake/src/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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. - */ - -/** - * The Airbrake plugin provides connectivity between Backstage and {@link https://airbrake.io/ | Airbrake}. - * - * @packageDocumentation - */ - -export { airbrakePlugin } from './plugin'; -export { EntityAirbrakeContent } from './extensions'; -export { isAirbrakeAvailable } from './components/isAirbrakeAvailable'; diff --git a/plugins/airbrake/src/plugin.test.ts b/plugins/airbrake/src/plugin.test.ts deleted file mode 100644 index ad7865713f..0000000000 --- a/plugins/airbrake/src/plugin.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { airbrakePlugin } from './plugin'; -import { ProductionAirbrakeApi } from './api'; - -describe('catalog', () => { - it('should export plugin', () => { - expect(airbrakePlugin).toBeDefined(); - }); - - it('should have at least one API, the production API', () => { - const apiFactories = Array.from(airbrakePlugin.getApis()); - expect(apiFactories.length).toBe(1); - expect(apiFactories[0].factory({})).toBeInstanceOf(ProductionAirbrakeApi); - }); -}); diff --git a/plugins/airbrake/src/plugin.ts b/plugins/airbrake/src/plugin.ts deleted file mode 100644 index 56f65ba110..0000000000 --- a/plugins/airbrake/src/plugin.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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 { - createApiFactory, - createPlugin, - discoveryApiRef, -} from '@backstage/core-plugin-api'; - -import { rootRouteRef } from './routes'; -import { airbrakeApiRef, ProductionAirbrakeApi } from './api'; - -/** - * The Airbrake plugin instance - * - * @public - */ -export const airbrakePlugin = createPlugin({ - id: 'airbrake', - apis: [ - createApiFactory({ - api: airbrakeApiRef, - deps: { discoveryApi: discoveryApiRef }, - factory: ({ discoveryApi }) => new ProductionAirbrakeApi(discoveryApi), - }), - ], - routes: { - root: rootRouteRef, - }, -}); diff --git a/plugins/airbrake/src/routes.ts b/plugins/airbrake/src/routes.ts deleted file mode 100644 index 52672267fe..0000000000 --- a/plugins/airbrake/src/routes.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - * 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 { createRouteRef } from '@backstage/core-plugin-api'; - -export const rootRouteRef = createRouteRef({ - id: 'airbrake', -}); diff --git a/plugins/airbrake/src/setupTests.ts b/plugins/airbrake/src/setupTests.ts deleted file mode 100644 index 7435872609..0000000000 --- a/plugins/airbrake/src/setupTests.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * 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 '@testing-library/jest-dom'; diff --git a/plugins/allure/.eslintrc.js b/plugins/allure/.eslintrc.js deleted file mode 100644 index c69a8f6aff..0000000000 --- a/plugins/allure/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { - rules: { - '@backstage/no-top-level-material-ui-4-imports': 'error', - }, - }); diff --git a/plugins/allure/CHANGELOG.md b/plugins/allure/CHANGELOG.md deleted file mode 100644 index e3984d5f0f..0000000000 --- a/plugins/allure/CHANGELOG.md +++ /dev/null @@ -1,1376 +0,0 @@ -# @backstage/plugin-allure - -## 0.1.50 - -### Patch Changes - -- abfbcfc: Updated dependency `@testing-library/react` to `^15.0.0`. -- cb1e3b0: Updated dependency `@testing-library/dom` to `^10.0.0`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.11.3 - - @backstage/core-components@0.14.4 - - @backstage/core-plugin-api@1.9.2 - - @backstage/catalog-model@1.4.5 - -## 0.1.50-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.4.5 - - @backstage/core-components@0.14.4-next.0 - - @backstage/core-plugin-api@1.9.1 - - @backstage/plugin-catalog-react@1.11.3-next.1 - -## 0.1.50-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.4-next.0 - - @backstage/catalog-model@1.4.5 - - @backstage/core-plugin-api@1.9.1 - - @backstage/plugin-catalog-react@1.11.3-next.0 - -## 0.1.49 - -### Patch Changes - -- e8f026a: Use ESM exports of react-use library -- Updated dependencies - - @backstage/core-components@0.14.3 - - @backstage/plugin-catalog-react@1.11.2 - - @backstage/core-plugin-api@1.9.1 - - @backstage/catalog-model@1.4.5 - -## 0.1.48 - -### Patch Changes - -- e8f026a: Use ESM exports of react-use library -- Updated dependencies - - @backstage/core-components@0.14.2 - - @backstage/plugin-catalog-react@1.11.1 - - @backstage/core-plugin-api@1.9.1 - - @backstage/catalog-model@1.4.5 - -## 0.1.47 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1 - - @backstage/plugin-catalog-react@1.11.0 - - @backstage/catalog-model@1.4.5 - - @backstage/core-plugin-api@1.9.1 - -## 0.1.47-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1-next.2 - - @backstage/plugin-catalog-react@1.11.0-next.2 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/core-plugin-api@1.9.1-next.1 - -## 0.1.47-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1-next.1 - - @backstage/plugin-catalog-react@1.10.1-next.1 - - @backstage/core-plugin-api@1.9.1-next.1 - - @backstage/catalog-model@1.4.5-next.0 - -## 0.1.47-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.1-next.0 - - @backstage/plugin-catalog-react@1.10.1-next.0 - - @backstage/catalog-model@1.4.5-next.0 - - @backstage/core-plugin-api@1.9.1-next.0 - -## 0.1.46 - -### Patch Changes - -- 9aac2b0: Use `--cwd` as the first `yarn` argument -- 8fe56a8: Widen `@types/react` dependency range to include version 18. -- Updated dependencies - - @backstage/plugin-catalog-react@1.10.0 - - @backstage/core-components@0.14.0 - - @backstage/catalog-model@1.4.4 - - @backstage/core-plugin-api@1.9.0 - -## 0.1.46-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.0-next.2 - - @backstage/plugin-catalog-react@1.10.0-next.3 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/core-plugin-api@1.9.0-next.1 - -## 0.1.46-next.2 - -### Patch Changes - -- 9aac2b0: Use `--cwd` as the first `yarn` argument -- 8fe56a8: Widen `@types/react` dependency range to include version 18. -- Updated dependencies - - @backstage/core-components@0.14.0-next.1 - - @backstage/core-plugin-api@1.9.0-next.1 - - @backstage/plugin-catalog-react@1.10.0-next.2 - - @backstage/catalog-model@1.4.4-next.0 - -## 0.1.46-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.14.0-next.0 - - @backstage/catalog-model@1.4.4-next.0 - - @backstage/core-plugin-api@1.8.3-next.0 - - @backstage/plugin-catalog-react@1.9.4-next.1 - -## 0.1.46-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.4-next.0 - - @backstage/core-components@0.13.10 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.2 - -## 0.1.45 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/core-components@0.13.10 - - @backstage/core-plugin-api@1.8.2 - - @backstage/plugin-catalog-react@1.9.3 - - @backstage/catalog-model@1.4.3 - -## 0.1.45-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.3-next.2 - -## 0.1.45-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.8.2-next.0 - - @backstage/core-components@0.13.10-next.1 - - @backstage/plugin-catalog-react@1.9.3-next.1 - - @backstage/catalog-model@1.4.3 - -## 0.1.45-next.0 - -### Patch Changes - -- 4016f21: Remove some unused dependencies -- Updated dependencies - - @backstage/core-components@0.13.10-next.0 - - @backstage/plugin-catalog-react@1.9.3-next.0 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.1 - -## 0.1.44 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.8.1 - - @backstage/plugin-catalog-react@1.9.2 - - @backstage/core-components@0.13.9 - - @backstage/theme@0.5.0 - - @backstage/catalog-model@1.4.3 - -## 0.1.44-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.9-next.3 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.1-next.1 - - @backstage/theme@0.5.0-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.3 - -## 0.1.44-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.5.0-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.2 - - @backstage/catalog-model@1.4.3 - - @backstage/core-components@0.13.9-next.2 - - @backstage/core-plugin-api@1.8.1-next.1 - -## 0.1.44-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.9-next.1 - - @backstage/core-plugin-api@1.8.1-next.1 - - @backstage/plugin-catalog-react@1.9.2-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/theme@0.5.0-next.0 - -## 0.1.44-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.8.1-next.0 - - @backstage/plugin-catalog-react@1.9.2-next.0 - - @backstage/core-components@0.13.9-next.0 - - @backstage/theme@0.5.0-next.0 - - @backstage/catalog-model@1.4.3 - -## 0.1.42 - -### Patch Changes - -- 6c2b872153: Add official support for React 18. -- fdb5e23602: Import `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` to remove the cyclical dependency -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.0 - - @backstage/core-components@0.13.8 - - @backstage/core-plugin-api@1.8.0 - - @backstage/theme@0.4.4 - - @backstage/catalog-model@1.4.3 - -## 0.1.42-next.2 - -### Patch Changes - -- [#20842](https://github.com/backstage/backstage/pull/20842) [`fdb5e23602`](https://github.com/backstage/backstage/commit/fdb5e2360299c5faa30f4d4236fc548b94d37446) Thanks [@benjdlambert](https://github.com/benjdlambert)! - Import `MissingAnnotationEmptyState` from `@backstage/plugin-catalog-react` to remove the cyclical dependency - -- Updated dependencies - - @backstage/core-components@0.13.8-next.2 - - @backstage/plugin-catalog-react@1.9.0-next.2 - -## 0.1.42-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.9.0-next.1 - - @backstage/core-components@0.13.8-next.1 - - @backstage/catalog-model@1.4.3 - - @backstage/core-plugin-api@1.8.0-next.0 - - @backstage/theme@0.4.4-next.0 - -## 0.1.42-next.0 - -### Patch Changes - -- 6c2b872153: Add official support for React 18. -- Updated dependencies - - @backstage/core-components@0.13.7-next.0 - - @backstage/plugin-catalog-react@1.9.0-next.0 - - @backstage/core-plugin-api@1.8.0-next.0 - - @backstage/theme@0.4.4-next.0 - - @backstage/catalog-model@1.4.3 - -## 0.1.41 - -### Patch Changes - -- 9a1fce352e: Updated dependency `@testing-library/jest-dom` to `^6.0.0`. -- f95af4e540: Updated dependency `@testing-library/dom` to `^9.0.0`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.5 - - @backstage/core-plugin-api@1.7.0 - - @backstage/core-components@0.13.6 - - @backstage/catalog-model@1.4.3 - - @backstage/theme@0.4.3 - -## 0.1.41-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.6-next.2 - - @backstage/core-plugin-api@1.7.0-next.1 - - @backstage/catalog-model@1.4.3-next.0 - - @backstage/plugin-catalog-react@1.8.5-next.2 - - @backstage/theme@0.4.3-next.0 - -## 0.1.41-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.6-next.1 - - @backstage/plugin-catalog-react@1.8.5-next.1 - - @backstage/core-plugin-api@1.7.0-next.0 - - @backstage/catalog-model@1.4.2 - - @backstage/theme@0.4.2 - -## 0.1.41-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.5-next.0 - - @backstage/core-plugin-api@1.7.0-next.0 - - @backstage/core-components@0.13.6-next.0 - - @backstage/catalog-model@1.4.2 - - @backstage/theme@0.4.2 - -## 0.1.40 - -### Patch Changes - -- 482bb5c0bbf8: Moved `@types/react` to be a regular dependency -- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. -- 8cec7664e146: Removed `@types/node` dependency -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.4 - - @backstage/core-components@0.13.5 - - @backstage/catalog-model@1.4.2 - - @backstage/core-plugin-api@1.6.0 - - @backstage/theme@0.4.2 - -## 0.1.40-next.3 - -### Patch Changes - -- 406b786a2a2c: Mark package as being free of side effects, allowing more optimized Webpack builds. -- Updated dependencies - - @backstage/catalog-model@1.4.2-next.2 - - @backstage/core-components@0.13.5-next.3 - - @backstage/core-plugin-api@1.6.0-next.3 - - @backstage/plugin-catalog-react@1.8.4-next.3 - - @backstage/theme@0.4.2-next.0 - -## 0.1.40-next.2 - -### Patch Changes - -- 8cec7664e146: Removed `@types/node` dependency -- Updated dependencies - - @backstage/core-components@0.13.5-next.2 - - @backstage/core-plugin-api@1.6.0-next.2 - - @backstage/plugin-catalog-react@1.8.4-next.2 - - @backstage/catalog-model@1.4.2-next.1 - - @backstage/theme@0.4.1 - -## 0.1.40-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.4-next.1 - - @backstage/core-components@0.13.5-next.1 - - @backstage/catalog-model@1.4.2-next.0 - - @backstage/core-plugin-api@1.6.0-next.1 - - @backstage/theme@0.4.1 - -## 0.1.39-next.0 - -### Patch Changes - -- 482bb5c0bbf8: Moved `@types/react` to be a regular dependency -- Updated dependencies - - @backstage/core-plugin-api@1.6.0-next.0 - - @backstage/core-components@0.13.5-next.0 - - @backstage/catalog-model@1.4.1 - - @backstage/theme@0.4.1 - - @backstage/plugin-catalog-react@1.8.3-next.0 - -## 0.1.37 - -### Patch Changes - -- 12a8c94eda8d: Add package repository and homepage metadata -- Updated dependencies - - @backstage/core-components@0.13.4 - - @backstage/plugin-catalog-react@1.8.1 - - @backstage/core-plugin-api@1.5.3 - - @backstage/catalog-model@1.4.1 - - @backstage/theme@0.4.1 - -## 0.1.37-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.1-next.1 - -## 0.1.37-next.1 - -### Patch Changes - -- 12a8c94eda8d: Add package repository and homepage metadata -- Updated dependencies - - @backstage/catalog-model@1.4.1 - - @backstage/core-components@0.13.4-next.0 - - @backstage/core-plugin-api@1.5.3 - - @backstage/theme@0.4.1 - - @backstage/plugin-catalog-react@1.8.1-next.0 - -## 0.1.37-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.4-next.0 - - @backstage/core-plugin-api@1.5.3 - - @backstage/plugin-catalog-react@1.8.1-next.0 - - @backstage/catalog-model@1.4.1 - - @backstage/theme@0.4.1 - -## 0.1.36 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.4.1 - - @backstage/plugin-catalog-react@1.8.0 - - @backstage/core-components@0.13.3 - - @backstage/core-plugin-api@1.5.3 - - @backstage/catalog-model@1.4.1 - -## 0.1.36-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.8.0-next.2 - - @backstage/theme@0.4.1-next.1 - - @backstage/core-plugin-api@1.5.3-next.1 - - @backstage/core-components@0.13.3-next.2 - - @backstage/catalog-model@1.4.1-next.0 - -## 0.1.36-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.4.1-next.0 - - @backstage/core-components@0.13.3-next.1 - - @backstage/core-plugin-api@1.5.3-next.0 - - @backstage/plugin-catalog-react@1.7.1-next.1 - -## 0.1.36-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.3-next.0 - - @backstage/catalog-model@1.4.1-next.0 - - @backstage/core-plugin-api@1.5.2 - - @backstage/theme@0.4.0 - - @backstage/plugin-catalog-react@1.7.1-next.0 - -## 0.1.35 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.5.2 - - @backstage/core-components@0.13.2 - - @backstage/theme@0.4.0 - - @backstage/plugin-catalog-react@1.7.0 - - @backstage/catalog-model@1.4.0 - -## 0.1.35-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.2-next.3 - - @backstage/catalog-model@1.4.0-next.1 - - @backstage/core-plugin-api@1.5.2-next.0 - - @backstage/theme@0.4.0-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.3 - -## 0.1.35-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.4.0-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.2 - - @backstage/core-components@0.13.2-next.2 - - @backstage/core-plugin-api@1.5.2-next.0 - -## 0.1.35-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.2-next.1 - - @backstage/plugin-catalog-react@1.7.0-next.1 - - @backstage/catalog-model@1.4.0-next.0 - - @backstage/core-plugin-api@1.5.2-next.0 - - @backstage/theme@0.4.0-next.0 - -## 0.1.35-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.7.0-next.0 - - @backstage/theme@0.4.0-next.0 - - @backstage/core-components@0.13.2-next.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/catalog-model@1.3.0 - -## 0.1.34 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.3.0 - - @backstage/plugin-catalog-react@1.6.0 - - @backstage/core-components@0.13.1 - - @backstage/catalog-model@1.3.0 - - @backstage/core-plugin-api@1.5.1 - -## 0.1.34-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/theme@0.3.0-next.0 - - @backstage/core-components@0.13.1-next.1 - - @backstage/plugin-catalog-react@1.6.0-next.2 - - @backstage/core-plugin-api@1.5.1 - -## 0.1.34-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.13.1-next.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/plugin-catalog-react@1.6.0-next.1 - -## 0.1.34-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.6.0-next.0 - - @backstage/core-components@0.13.0 - - @backstage/core-plugin-api@1.5.1 - - @backstage/catalog-model@1.3.0 - - @backstage/theme@0.2.19 - -## 0.1.33 - -### Patch Changes - -- 8e00acb28db: Small tweaks to remove warnings in the console during development (mainly focusing on techdocs) -- e0c6e8b9c3c: Update peer dependencies -- Updated dependencies - - @backstage/core-components@0.13.0 - - @backstage/plugin-catalog-react@1.5.0 - - @backstage/theme@0.2.19 - - @backstage/core-plugin-api@1.5.1 - - @backstage/catalog-model@1.3.0 - -## 0.1.33-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.5.0-next.3 - - @backstage/catalog-model@1.3.0-next.0 - - @backstage/core-components@0.13.0-next.3 - - @backstage/core-plugin-api@1.5.1-next.1 - - @backstage/theme@0.2.19-next.0 - -## 0.1.33-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.6-next.2 - - @backstage/plugin-catalog-react@1.4.1-next.2 - - @backstage/core-plugin-api@1.5.1-next.1 - - @backstage/catalog-model@1.2.1 - - @backstage/theme@0.2.19-next.0 - -## 0.1.33-next.1 - -### Patch Changes - -- e0c6e8b9c3c: Update peer dependencies -- Updated dependencies - - @backstage/core-components@0.12.6-next.1 - - @backstage/core-plugin-api@1.5.1-next.0 - - @backstage/plugin-catalog-react@1.4.1-next.1 - - @backstage/theme@0.2.19-next.0 - - @backstage/catalog-model@1.2.1 - -## 0.1.33-next.0 - -### Patch Changes - -- 8e00acb28db: Small tweaks to remove warnings in the console during development (mainly focusing on techdocs) -- Updated dependencies - - @backstage/core-components@0.12.6-next.0 - - @backstage/plugin-catalog-react@1.4.1-next.0 - - @backstage/core-plugin-api@1.5.0 - - @backstage/catalog-model@1.2.1 - - @backstage/theme@0.2.18 - -## 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 - -- Updated dependencies - - @backstage/core-components@0.12.5-next.2 - - @backstage/plugin-catalog-react@1.4.0-next.2 - - @backstage/core-plugin-api@1.5.0-next.2 - -## 0.1.32-next.1 - -### Patch Changes - -- 52b0022dab7: Updated dependency `msw` to `^1.0.0`. -- Updated dependencies - - @backstage/core-components@0.12.5-next.1 - - @backstage/core-plugin-api@1.4.1-next.1 - - @backstage/theme@0.2.18-next.0 - - @backstage/plugin-catalog-react@1.4.0-next.1 - - @backstage/catalog-model@1.2.1-next.1 - -## 0.1.32-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.4.0-next.0 - - @backstage/core-plugin-api@1.4.1-next.0 - - @backstage/catalog-model@1.2.1-next.0 - - @backstage/core-components@0.12.5-next.0 - - @backstage/theme@0.2.17 - -## 0.1.31 - -### Patch Changes - -- c51efce2a0: Update docs to always use `yarn add --cwd` for app & backend -- Updated dependencies - - @backstage/core-components@0.12.4 - - @backstage/catalog-model@1.2.0 - - @backstage/theme@0.2.17 - - @backstage/core-plugin-api@1.4.0 - - @backstage/plugin-catalog-react@1.3.0 - -## 0.1.31-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.2.0-next.1 - - @backstage/core-components@0.12.4-next.1 - - @backstage/core-plugin-api@1.3.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-catalog-react@1.3.0-next.2 - -## 0.1.31-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.4-next.0 - - @backstage/plugin-catalog-react@1.3.0-next.1 - - @backstage/catalog-model@1.1.6-next.0 - - @backstage/core-plugin-api@1.3.0 - - @backstage/theme@0.2.16 - -## 0.1.31-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.3.0-next.0 - - @backstage/catalog-model@1.1.6-next.0 - -## 0.1.30 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5 - - @backstage/plugin-catalog-react@1.2.4 - - @backstage/core-components@0.12.3 - - @backstage/core-plugin-api@1.3.0 - - @backstage/theme@0.2.16 - -## 0.1.30-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.3.0-next.1 - - @backstage/plugin-catalog-react@1.2.4-next.2 - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/core-components@0.12.3-next.2 - - @backstage/theme@0.2.16 - -## 0.1.30-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.1 - - @backstage/core-components@0.12.3-next.1 - - @backstage/core-plugin-api@1.2.1-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-catalog-react@1.2.4-next.1 - -## 0.1.30-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.5-next.0 - - @backstage/plugin-catalog-react@1.2.4-next.0 - - @backstage/core-components@0.12.3-next.0 - - @backstage/core-plugin-api@1.2.0 - - @backstage/theme@0.2.16 - -## 0.1.29 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.2 - - @backstage/plugin-catalog-react@1.2.3 - -## 0.1.28 - -### Patch Changes - -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/core-plugin-api@1.2.0 - - @backstage/core-components@0.12.1 - - @backstage/plugin-catalog-react@1.2.2 - - @backstage/catalog-model@1.1.4 - - @backstage/theme@0.2.16 - -## 0.1.28-next.4 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.1-next.4 - - @backstage/plugin-catalog-react@1.2.2-next.4 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/theme@0.2.16 - -## 0.1.28-next.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.1-next.3 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/theme@0.2.16 - - @backstage/plugin-catalog-react@1.2.2-next.3 - -## 0.1.28-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.2.0-next.2 - - @backstage/core-components@0.12.1-next.2 - - @backstage/plugin-catalog-react@1.2.2-next.2 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/theme@0.2.16 - -## 0.1.28-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.1-next.1 - - @backstage/core-plugin-api@1.1.1-next.1 - - @backstage/plugin-catalog-react@1.2.2-next.1 - - @backstage/catalog-model@1.1.4-next.1 - - @backstage/theme@0.2.16 - -## 0.1.28-next.0 - -### Patch Changes - -- 3280711113: Updated dependency `msw` to `^0.49.0`. -- Updated dependencies - - @backstage/core-components@0.12.1-next.0 - - @backstage/core-plugin-api@1.1.1-next.0 - - @backstage/plugin-catalog-react@1.2.2-next.0 - - @backstage/catalog-model@1.1.4-next.0 - - @backstage/theme@0.2.16 - -## 0.1.27 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.1 - - @backstage/core-components@0.12.0 - - @backstage/core-plugin-api@1.1.0 - - @backstage/catalog-model@1.1.3 - - @backstage/theme@0.2.16 - -## 0.1.27-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.12.0-next.1 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/core-plugin-api@1.1.0-next.0 - - @backstage/theme@0.2.16 - - @backstage/plugin-catalog-react@1.2.1-next.1 - -## 0.1.27-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.1-next.0 - - @backstage/core-components@0.12.0-next.0 - - @backstage/core-plugin-api@1.1.0-next.0 - - @backstage/catalog-model@1.1.3-next.0 - - @backstage/theme@0.2.16 - -## 0.1.26 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2 - - @backstage/plugin-catalog-react@1.2.0 - - @backstage/core-components@0.11.2 - - @backstage/core-plugin-api@1.0.7 - - @backstage/theme@0.2.16 - -## 0.1.26-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.0-next.2 - - @backstage/catalog-model@1.1.2-next.2 - - @backstage/core-components@0.11.2-next.2 - - @backstage/core-plugin-api@1.0.7-next.2 - - @backstage/theme@0.2.16 - -## 0.1.26-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.2.0-next.1 - - @backstage/core-components@0.11.2-next.1 - - @backstage/core-plugin-api@1.0.7-next.1 - - @backstage/catalog-model@1.1.2-next.1 - - @backstage/theme@0.2.16 - -## 0.1.26-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.2-next.0 - - @backstage/core-components@0.11.2-next.0 - - @backstage/plugin-catalog-react@1.1.5-next.0 - - @backstage/core-plugin-api@1.0.7-next.0 - - @backstage/theme@0.2.16 - -## 0.1.25 - -### Patch Changes - -- 817f3196f6: Updated React Router dependencies to be peer dependencies. -- 7d47def9c4: Removed dependency on `@types/jest`. -- d669d89206: Minor API signatures cleanup -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- Updated dependencies - - @backstage/core-components@0.11.1 - - @backstage/core-plugin-api@1.0.6 - - @backstage/plugin-catalog-react@1.1.4 - - @backstage/catalog-model@1.1.1 - -## 0.1.25-next.3 - -### Patch Changes - -- 7d47def9c4: Removed dependency on `@types/jest`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.4-next.2 - - @backstage/catalog-model@1.1.1-next.0 - - @backstage/core-components@0.11.1-next.3 - - @backstage/core-plugin-api@1.0.6-next.3 - -## 0.1.25-next.2 - -### Patch Changes - -- 667d917488: Updated dependency `msw` to `^0.47.0`. -- 87ec2ba4d6: Updated dependency `msw` to `^0.46.0`. -- Updated dependencies - - @backstage/core-components@0.11.1-next.2 - - @backstage/core-plugin-api@1.0.6-next.2 - -## 0.1.25-next.1 - -### Patch Changes - -- 817f3196f6: Updated React Router dependencies to be peer dependencies. -- d669d89206: Minor API signatures cleanup -- Updated dependencies - - @backstage/core-components@0.11.1-next.1 - - @backstage/core-plugin-api@1.0.6-next.1 - - @backstage/plugin-catalog-react@1.1.4-next.1 - -## 0.1.25-next.0 - -### Patch Changes - -- bf5e9030eb: Updated dependency `msw` to `^0.45.0`. -- Updated dependencies - - @backstage/core-plugin-api@1.0.6-next.0 - - @backstage/core-components@0.11.1-next.0 - - @backstage/plugin-catalog-react@1.1.4-next.0 - -## 0.1.24 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.11.0 - - @backstage/core-plugin-api@1.0.5 - - @backstage/plugin-catalog-react@1.1.3 - -## 0.1.24-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.3-next.2 - - @backstage/core-components@0.11.0-next.2 - -## 0.1.24-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@1.0.5-next.0 - - @backstage/plugin-catalog-react@1.1.3-next.0 - - @backstage/core-components@0.10.1-next.0 - -## 0.1.23 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`. -- Updated dependencies - - @backstage/core-components@0.10.0 - - @backstage/catalog-model@1.1.0 - - @backstage/core-plugin-api@1.0.4 - - @backstage/plugin-catalog-react@1.1.2 - - @backstage/theme@0.2.16 - -## 0.1.23-next.3 - -### Patch Changes - -- a70869e775: Updated dependency `msw` to `^0.43.0`. -- Updated dependencies - - @backstage/core-plugin-api@1.0.4-next.0 - - @backstage/core-components@0.10.0-next.3 - - @backstage/catalog-model@1.1.0-next.3 - - @backstage/plugin-catalog-react@1.1.2-next.3 - -## 0.1.23-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.10.0-next.2 - - @backstage/catalog-model@1.1.0-next.2 - - @backstage/theme@0.2.16-next.1 - - @backstage/plugin-catalog-react@1.1.2-next.2 - -## 0.1.23-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.6-next.1 - - @backstage/catalog-model@1.1.0-next.1 - - @backstage/theme@0.2.16-next.0 - - @backstage/plugin-catalog-react@1.1.2-next.1 - -## 0.1.23-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.1.0-next.0 - - @backstage/core-components@0.9.6-next.0 - - @backstage/plugin-catalog-react@1.1.2-next.0 - -## 0.1.22 - -### Patch Changes - -- 6387b7a98a: Add export for `isAllureReportAvailable` and `ALLURE_PROJECT_ID_ANNOTATION` so it can be used outside of plugin -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.1 - - @backstage/core-components@0.9.5 - - @backstage/core-plugin-api@1.0.3 - - @backstage/catalog-model@1.0.3 - -## 0.1.22-next.1 - -### Patch Changes - -- 8f7b1835df: Updated dependency `msw` to `^0.41.0`. -- Updated dependencies - - @backstage/core-components@0.9.5-next.1 - - @backstage/core-plugin-api@1.0.3-next.0 - - @backstage/catalog-model@1.0.3-next.0 - - @backstage/plugin-catalog-react@1.1.1-next.1 - -## 0.1.22-next.0 - -### Patch Changes - -- 6387b7a98a: Add export for `isAllureReportAvailable` and `ALLURE_PROJECT_ID_ANNOTATION` so it can be used outside of plugin -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.1-next.0 - - @backstage/core-components@0.9.5-next.0 - -## 0.1.21 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.4 - - @backstage/core-plugin-api@1.0.2 - - @backstage/plugin-catalog-react@1.1.0 - - @backstage/catalog-model@1.0.2 - -## 0.1.21-next.2 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.4-next.1 - - @backstage/plugin-catalog-react@1.1.0-next.2 - - @backstage/catalog-model@1.0.2-next.0 - - @backstage/core-plugin-api@1.0.2-next.1 - -## 0.1.21-next.1 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.9.4-next.0 - - @backstage/core-plugin-api@1.0.2-next.0 - - @backstage/plugin-catalog-react@1.1.0-next.1 - -## 0.1.21-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@1.1.0-next.0 - -## 0.1.20 - -### Patch Changes - -- 24254fd433: build(deps): bump `@testing-library/user-event` from 13.5.0 to 14.0.0 -- 230ad0826f: Bump to using `@types/node` v16 -- Updated dependencies - - @backstage/plugin-catalog-react@1.0.1 - - @backstage/catalog-model@1.0.1 - - @backstage/core-components@0.9.3 - - @backstage/core-plugin-api@1.0.1 - -## 0.1.20-next.1 - -### Patch Changes - -- 24254fd433: build(deps): bump `@testing-library/user-event` from 13.5.0 to 14.0.0 -- 230ad0826f: Bump to using `@types/node` v16 -- Updated dependencies - - @backstage/core-components@0.9.3-next.2 - - @backstage/core-plugin-api@1.0.1-next.0 - - @backstage/plugin-catalog-react@1.0.1-next.3 - -## 0.1.20-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@1.0.1-next.0 - - @backstage/plugin-catalog-react@1.0.1-next.0 - - @backstage/core-components@0.9.3-next.0 - -## 0.1.19 - -### Patch Changes - -- a422d7ce5e: chore(deps): bump `@testing-library/react` from 11.2.6 to 12.1.3 -- Updated dependencies - - @backstage/core-components@0.9.2 - - @backstage/core-plugin-api@1.0.0 - - @backstage/plugin-catalog-react@1.0.0 - - @backstage/catalog-model@1.0.0 - -## 0.1.18 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@0.9.0 - - @backstage/core-components@0.9.1 - - @backstage/catalog-model@0.13.0 - -## 0.1.18-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@0.9.0-next.0 - - @backstage/core-components@0.9.1-next.0 - - @backstage/catalog-model@0.13.0-next.0 - -## 0.1.17 - -### Patch Changes - -- Updated dependencies - - @backstage/catalog-model@0.12.0 - - @backstage/core-components@0.9.0 - - @backstage/plugin-catalog-react@0.8.0 - - @backstage/core-plugin-api@0.8.0 - -## 0.1.16 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.10 - - @backstage/plugin-catalog-react@0.7.0 - - @backstage/catalog-model@0.11.0 - - @backstage/core-plugin-api@0.7.0 - -## 0.1.15 - -### Patch Changes - -- 1ed305728b: Bump `node-fetch` to version 2.6.7 and `cross-fetch` to version 3.1.5 -- c77c5c7eb6: Added `backstage.role` to `package.json` -- Updated dependencies - - @backstage/core-components@0.8.9 - - @backstage/core-plugin-api@0.6.1 - - @backstage/plugin-catalog-react@0.6.15 - - @backstage/catalog-model@0.10.0 - - @backstage/theme@0.2.15 - -## 0.1.14 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.8 - - @backstage/plugin-catalog-react@0.6.14 - -## 0.1.14-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.8-next.0 - - @backstage/plugin-catalog-react@0.6.14-next.0 - -## 0.1.13 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.7 - - @backstage/plugin-catalog-react@0.6.13 - -## 0.1.13-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.7-next.0 - - @backstage/plugin-catalog-react@0.6.13-next.0 - -## 0.1.12 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.5 - - @backstage/core-plugin-api@0.6.0 - - @backstage/plugin-catalog-react@0.6.12 - - @backstage/catalog-model@0.9.10 - -## 0.1.12-next.0 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.5-next.0 - - @backstage/core-plugin-api@0.6.0-next.0 - - @backstage/plugin-catalog-react@0.6.12-next.0 - - @backstage/catalog-model@0.9.10-next.0 - -## 0.1.11 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.8.4 - - @backstage/core-plugin-api@0.5.0 - - @backstage/plugin-catalog-react@0.6.11 - - @backstage/catalog-model@0.9.9 - -## 0.1.10 - -### Patch Changes - -- 4ce51ab0f1: Internal refactor of the `react-use` imports to use `react-use/lib/*` instead. -- Updated dependencies - - @backstage/core-plugin-api@0.4.1 - - @backstage/plugin-catalog-react@0.6.10 - - @backstage/core-components@0.8.3 - -## 0.1.9 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@0.4.0 - - @backstage/plugin-catalog-react@0.6.8 - - @backstage/core-components@0.8.2 - -## 0.1.8 - -### Patch Changes - -- cd450844f6: Moved React dependencies to `peerDependencies` and allow both React v16 and v17 to be used. -- Updated dependencies - - @backstage/core-components@0.8.0 - - @backstage/core-plugin-api@0.3.0 - - @backstage/plugin-catalog-react@0.6.5 - -## 0.1.7 - -### Patch Changes - -- a125278b81: Refactor out the deprecated path and icon from RouteRefs -- Updated dependencies - - @backstage/catalog-model@0.9.7 - - @backstage/plugin-catalog-react@0.6.4 - - @backstage/core-components@0.7.4 - - @backstage/core-plugin-api@0.2.0 - -## 0.1.6 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@0.6.0 - - @backstage/core-components@0.7.0 - - @backstage/theme@0.2.11 - -## 0.1.5 - -### Patch Changes - -- 81a41ec249: Added a `name` key to all extensions in order to improve Analytics API metadata. -- Updated dependencies - - @backstage/core-components@0.6.1 - - @backstage/core-plugin-api@0.1.10 - - @backstage/plugin-catalog-react@0.5.2 - - @backstage/catalog-model@0.9.4 - -## 0.1.4 - -### Patch Changes - -- Updated dependencies - - @backstage/core-plugin-api@0.1.9 - - @backstage/core-components@0.6.0 - - @backstage/plugin-catalog-react@0.5.1 - -## 0.1.3 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.5.0 - - @backstage/plugin-catalog-react@0.5.0 - - @backstage/catalog-model@0.9.3 - -## 0.1.2 - -### Patch Changes - -- 9f1362dcc1: Upgrade `@material-ui/lab` to `4.0.0-alpha.57`. -- Updated dependencies - - @backstage/core-components@0.4.2 - - @backstage/plugin-catalog-react@0.4.6 - - @backstage/core-plugin-api@0.1.8 - -## 0.1.1 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@0.4.5 - - @backstage/core-components@0.4.0 - - @backstage/catalog-model@0.9.1 diff --git a/plugins/allure/README.md b/plugins/allure/README.md deleted file mode 100644 index 3eec6a4a4f..0000000000 --- a/plugins/allure/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Deprecated - -This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-allure` instead. diff --git a/plugins/allure/api-report.md b/plugins/allure/api-report.md deleted file mode 100644 index 69bb740271..0000000000 --- a/plugins/allure/api-report.md +++ /dev/null @@ -1,29 +0,0 @@ -## API Report File for "@backstage/plugin-allure" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -/// - -import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { Entity } from '@backstage/catalog-model'; -import { JSX as JSX_2 } from 'react'; -import { RouteRef } from '@backstage/core-plugin-api'; - -// @public (undocumented) -export const ALLURE_PROJECT_ID_ANNOTATION = 'qameta.io/allure-project'; - -// @public (undocumented) -export const allurePlugin: BackstagePlugin< - { - root: RouteRef; - }, - {} ->; - -// @public (undocumented) -export const EntityAllureReportContent: () => JSX_2.Element; - -// @public (undocumented) -export const isAllureReportAvailable: (entity: Entity) => boolean; -``` diff --git a/plugins/allure/catalog-info.yaml b/plugins/allure/catalog-info.yaml deleted file mode 100644 index 4ea1238b30..0000000000 --- a/plugins/allure/catalog-info.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: backstage-plugin-allure - title: '@backstage/plugin-allure' - description: A Backstage plugin that integrates with Allure -spec: - lifecycle: experimental - type: backstage-frontend-plugin - owner: maintainers diff --git a/plugins/allure/dev/example-entity.yaml b/plugins/allure/dev/example-entity.yaml deleted file mode 100644 index 58a9ffd110..0000000000 --- a/plugins/allure/dev/example-entity.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: backstage.io/v1alpha1 -kind: Component -metadata: - name: allure-example-service - description: Allure Example Service - annotations: - qameta.io/allure-project: sample -spec: - type: service - lifecycle: experimental - owner: team-a diff --git a/plugins/allure/dev/index.tsx b/plugins/allure/dev/index.tsx deleted file mode 100644 index d697febd56..0000000000 --- a/plugins/allure/dev/index.tsx +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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 React from 'react'; -import { createDevApp } from '@backstage/dev-utils'; -import { EntityAllureReportContent } from '../src/plugin'; -import { Content, Header, Page } from '@backstage/core-components'; -import { EntityProvider } from '@backstage/plugin-catalog-react'; -import { Entity } from '@backstage/catalog-model'; - -import exampleEntity from './example-entity.yaml'; -import { allureApiRef } from '../src/api'; - -createDevApp() - .registerApi({ - api: allureApiRef, - deps: {}, - factory: () => - ({ - async getReportUrl(projectId: string) { - return Promise.resolve( - // Follow the instructions from https://github.com/fescobar/allure-docker-service-ui - // to setup Allure service locally - `http://localhost:5050/allure-docker-service/projects/${projectId}/reports/latest/index.html`, - ); - }, - } as unknown as typeof allureApiRef.T), - }) - .addPage({ - element: ( - -
- - - - - - - ), - title: 'Allure Report', - path: '/allure', - }) - .render(); diff --git a/plugins/allure/knip-report.md b/plugins/allure/knip-report.md deleted file mode 100644 index ba9c1dddc5..0000000000 --- a/plugins/allure/knip-report.md +++ /dev/null @@ -1,9 +0,0 @@ -# Knip report - -## Unused devDependencies (2) - -| Name | Location | Severity | -| :--------------------- | :----------- | :------- | -| @testing-library/react | package.json | error | -| @testing-library/dom | package.json | error | - diff --git a/plugins/allure/package.json b/plugins/allure/package.json deleted file mode 100644 index c44f32baed..0000000000 --- a/plugins/allure/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "@backstage/plugin-allure", - "version": "0.1.50", - "description": "A Backstage plugin that integrates with Allure", - "backstage": { - "role": "frontend-plugin", - "moved": "@backstage-community/plugin-allure" - }, - "publishConfig": { - "access": "public", - "main": "dist/index.esm.js", - "types": "dist/index.d.ts" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/allure" - }, - "license": "Apache-2.0", - "sideEffects": false, - "main": "src/index.ts", - "types": "src/index.ts", - "files": [ - "dist" - ], - "scripts": { - "build": "backstage-cli package build", - "clean": "backstage-cli package clean", - "lint": "backstage-cli package lint", - "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack", - "start": "backstage-cli package start", - "test": "backstage-cli package test" - }, - "dependencies": { - "@backstage/catalog-model": "workspace:^", - "@backstage/core-components": "workspace:^", - "@backstage/core-plugin-api": "workspace:^", - "@backstage/plugin-catalog-react": "workspace:^", - "@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-use": "^17.2.4" - }, - "devDependencies": { - "@backstage/cli": "workspace:^", - "@backstage/dev-utils": "workspace:^", - "@backstage/test-utils": "workspace:^", - "@testing-library/dom": "^10.0.0", - "@testing-library/jest-dom": "^6.0.0", - "@testing-library/react": "^15.0.0", - "msw": "^1.0.0" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", - "react-router-dom": "6.0.0-beta.0 || ^6.3.0" - }, - "configSchema": { - "$schema": "https://backstage.io/schema/config-v1", - "title": "@backstage/allure", - "type": "object", - "properties": { - "allure": { - "type": "object", - "properties": { - "baseUrl": { - "type": "string", - "visibility": "frontend" - } - } - } - } - }, - "deprecated": "This package has been moved to the backstage/community-plugins repository. You should migrate to using @backstage-community/plugin-allure instead." -} diff --git a/plugins/allure/src/api/AllureApi.ts b/plugins/allure/src/api/AllureApi.ts deleted file mode 100644 index a926da03d0..0000000000 --- a/plugins/allure/src/api/AllureApi.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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 { createApiRef } from '@backstage/core-plugin-api'; - -export type AllureApi = { - getReportUrl(projectId: string): Promise; -}; - -export const allureApiRef = createApiRef({ - id: 'allure-api', -}); diff --git a/plugins/allure/src/api/AllureApiClient.ts b/plugins/allure/src/api/AllureApiClient.ts deleted file mode 100644 index 698713c837..0000000000 --- a/plugins/allure/src/api/AllureApiClient.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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 { ConfigApi } from '@backstage/core-plugin-api'; -import { AllureApi } from './AllureApi'; - -export class AllureApiClient implements AllureApi { - readonly configApi: ConfigApi; - - constructor(options: { configApi: ConfigApi }) { - this.configApi = options.configApi; - } - - async getReportUrl(projectId: string): Promise { - const baseUrl = this.configApi.getString('allure.baseUrl'); - return `${baseUrl}/projects/${projectId}/reports/latest/index.html`; - } -} diff --git a/plugins/allure/src/api/index.ts b/plugins/allure/src/api/index.ts deleted file mode 100644 index 1c1adb1db2..0000000000 --- a/plugins/allure/src/api/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * 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. - */ -export { allureApiRef } from './AllureApi'; -export { AllureApiClient } from './AllureApiClient'; diff --git a/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.test.tsx b/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.test.tsx deleted file mode 100644 index a21ecbe10e..0000000000 --- a/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.test.tsx +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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 React from 'react'; -import { AllureReportComponent } from './AllureReportComponent'; -import { rest } from 'msw'; -import { setupServer } from 'msw/node'; -import { - setupRequestMockHandlers, - renderInTestApp, -} from '@backstage/test-utils'; -import { EntityProvider } from '@backstage/plugin-catalog-react'; - -describe('ExampleComponent', () => { - const server = setupServer(); - // Enable sane handlers for network requests - setupRequestMockHandlers(server); - - // setup mock response - beforeEach(() => { - server.use( - rest.get('/*', (_, res, ctx) => res(ctx.status(200), ctx.json({}))), - ); - }); - - it('should render', async () => { - const rendered = await renderInTestApp( - - - , - ); - expect(rendered.getByText('Missing Annotation')).toBeInTheDocument(); - }); -}); diff --git a/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.tsx b/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.tsx deleted file mode 100644 index ca59dc53fa..0000000000 --- a/plugins/allure/src/components/AllureReportComponent/AllureReportComponent.tsx +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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 React from 'react'; -import { useApi } from '@backstage/core-plugin-api'; -import { allureApiRef } from '../../api'; -import { - useEntity, - MissingAnnotationEmptyState, -} from '@backstage/plugin-catalog-react'; -import { - ALLURE_PROJECT_ID_ANNOTATION, - isAllureReportAvailable, - getAllureProjectId, -} from '../annotationHelpers'; -import { Progress } from '@backstage/core-components'; -import useAsync from 'react-use/esm/useAsync'; -import { Entity } from '@backstage/catalog-model'; - -const AllureReport = (props: { entity: Entity }) => { - const allureApi = useApi(allureApiRef); - - const allureProjectId = getAllureProjectId(props.entity); - const { value, loading } = useAsync(async () => { - const url = await allureApi.getReportUrl(allureProjectId); - return url; - }); - - if (loading) { - return ; - } - return ( -