Merge branch 'master' into fix-view-techdocs-link

This commit is contained in:
Jake Crews
2022-07-26 07:51:54 -05:00
committed by GitHub
777 changed files with 17147 additions and 7320 deletions
+25
View File
@@ -1,5 +1,30 @@
# @backstage/plugin-adr-backend
## 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
+9 -9
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-adr-backend",
"version": "0.1.2-next.2",
"version": "0.1.3-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -29,14 +29,14 @@
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/catalog-client": "^1.0.4-next.2",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/catalog-client": "^1.0.4",
"@backstage/catalog-model": "^1.1.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/integration": "^1.2.2-next.3",
"@backstage/plugin-adr-common": "^0.1.2-next.1",
"@backstage/plugin-search-common": "^0.3.6-next.0",
"@backstage/errors": "^1.1.0",
"@backstage/integration": "^1.3.0-next.0",
"@backstage/plugin-adr-common": "^0.1.3-next.0",
"@backstage/plugin-search-common": "^1.0.0",
"luxon": "^3.0.0",
"marked": "^4.0.14",
"winston": "^3.2.1",
@@ -44,7 +44,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/cli": "^0.18.1-next.0",
"@types/marked": "^4.0.0",
"@types/supertest": "^2.0.8",
"supertest": "^6.1.3",
+16
View File
@@ -1,5 +1,21 @@
# @backstage/plugin-adr-common
## 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
+5 -5
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-adr-common",
"description": "Common functionalities for the adr plugin",
"version": "0.1.2-next.1",
"version": "0.1.3-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,12 +30,12 @@
"postpack": "backstage-cli package postpack"
},
"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"
"@backstage/catalog-model": "^1.1.0",
"@backstage/integration": "^1.3.0-next.0",
"@backstage/plugin-search-common": "^1.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.1"
"@backstage/cli": "^0.18.1-next.0"
},
"files": [
"dist"
+39
View File
@@ -1,5 +1,44 @@
# @backstage/plugin-adr
## 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
+1
View File
@@ -25,6 +25,7 @@ export const adrPlugin: BackstagePlugin<
{
root: RouteRef<undefined>;
},
{},
{}
>;
+13 -13
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-adr",
"version": "0.1.2-next.3",
"version": "0.1.3-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -22,14 +22,14 @@
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/integration-react": "^1.1.2-next.3",
"@backstage/plugin-adr-common": "^0.1.2-next.1",
"@backstage/plugin-catalog-react": "^1.1.2-next.3",
"@backstage/plugin-search-common": "^0.3.6-next.0",
"@backstage/plugin-search-react": "^0.2.2-next.3",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/core-components": "^0.10.1-next.0",
"@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/plugin-search-common": "^1.0.0",
"@backstage/plugin-search-react": "^1.0.1-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -44,10 +44,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-app-api": "^1.0.4-next.1",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
+16
View File
@@ -1,5 +1,21 @@
# @backstage/plugin-airbrake-backend
## 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
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-airbrake-backend",
"version": "0.2.7-next.1",
"version": "0.2.8-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -22,7 +22,7 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/config": "^1.0.1",
"@types/express": "*",
"express": "^4.17.1",
@@ -33,7 +33,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/cli": "^0.18.1-next.0",
"@types/http-proxy-middleware": "^0.19.3",
"@types/supertest": "^2.0.8",
"supertest": "^6.1.6",
+26
View File
@@ -1,5 +1,31 @@
# @backstage/plugin-airbrake
## 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
+1
View File
@@ -13,6 +13,7 @@ export const airbrakePlugin: BackstagePlugin<
{
root: RouteRef<undefined>;
},
{},
{}
>;
+12 -12
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-airbrake",
"version": "0.3.7-next.3",
"version": "0.3.8-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -23,13 +23,13 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/plugin-catalog-react": "^1.1.2-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/catalog-model": "^1.1.0",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/plugin-catalog-react": "^1.1.3-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -40,10 +40,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/app-defaults": "^1.0.4-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/app-defaults": "^1.0.5-next.0",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
+22
View File
@@ -1,5 +1,27 @@
# @backstage/plugin-allure
## 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
+1
View File
@@ -21,6 +21,7 @@ export const allurePlugin: BackstagePlugin<
{
root: RouteRef<undefined>;
},
{},
{}
>;
+10 -10
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-allure",
"description": "A Backstage plugin that integrates with Allure",
"version": "0.1.23-next.3",
"version": "0.1.24-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -25,11 +25,11 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/plugin-catalog-react": "^1.1.2-next.3",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/catalog-model": "^1.1.0",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/plugin-catalog-react": "^1.1.3-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -40,10 +40,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-app-api": "^1.0.4-next.1",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
+19
View File
@@ -1,5 +1,24 @@
# @backstage/plugin-analytics-module-ga
## 0.1.19-next.0
### Patch Changes
- Updated dependencies
- @backstage/core-plugin-api@1.0.5-next.0
- @backstage/core-components@0.10.1-next.0
## 0.1.18
### 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/core-plugin-api@1.0.4
- @backstage/theme@0.2.16
## 0.1.18-next.3
### Patch Changes
+1 -1
View File
@@ -10,7 +10,7 @@ import { Config } from '@backstage/config';
import { IdentityApi } from '@backstage/core-plugin-api';
// @public @deprecated (undocumented)
export const analyticsModuleGA: BackstagePlugin<{}, {}>;
export const analyticsModuleGA: BackstagePlugin<{}, {}, {}>;
// @public
export class GoogleAnalytics implements AnalyticsApi {
+8 -8
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-analytics-module-ga",
"version": "0.1.18-next.3",
"version": "0.1.19-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -25,9 +25,9 @@
},
"dependencies": {
"@backstage/config": "^1.0.1",
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -38,10 +38,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-app-api": "^1.0.4-next.1",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
+22
View File
@@ -1,5 +1,27 @@
# @backstage/plugin-apache-airflow
## 0.2.1-next.0
### Patch Changes
- Updated dependencies
- @backstage/core-plugin-api@1.0.5-next.0
- @backstage/core-components@0.10.1-next.0
## 0.2.0
### Minor Changes
- 01f976ea72: Exposed DagTableComponent as standalone component + added a prop to get only select DAGs instead of the full list
### 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/core-plugin-api@1.0.4
## 0.2.0-next.3
### Patch Changes
+3 -2
View File
@@ -10,8 +10,8 @@ import { RouteRef } from '@backstage/core-plugin-api';
// @public
export const ApacheAirflowDagTable: ({
dagIds,
}: {
dagIds,
}: {
dagIds?: string[] | undefined;
}) => JSX.Element;
@@ -27,6 +27,7 @@ export const apacheAirflowPlugin: BackstagePlugin<
{
root: RouteRef<undefined>;
},
{},
{}
>;
```
+7 -7
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-apache-airflow",
"version": "0.2.0-next.3",
"version": "0.2.1-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -23,8 +23,8 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -36,10 +36,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-app-api": "^1.0.4-next.1",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
@@ -1,5 +1,11 @@
# @backstage/plugin-api-docs-module-protoc-gen-doc
## 0.1.0
### Minor Changes
- e0328f2107: Added the new `grpcDocsApiWidget` to render `protoc-gen-doc` generated descriptors by the `grpc-docs` package.
## 0.1.0-next.0
### Minor Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-api-docs-module-protoc-gen-doc",
"description": "Additional functionalities for the api-docs plugin that renders the output of the protoc-gen-doc",
"version": "0.1.0-next.0",
"version": "0.1.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -37,7 +37,7 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.1",
"@backstage/cli": "^0.18.1-next.0",
"@testing-library/jest-dom": "^5.16.4",
"@types/react": "^16.13.1 || ^17.0.0"
},
+27
View File
@@ -1,5 +1,32 @@
# @backstage/plugin-api-docs
## 0.8.8-next.0
### Patch Changes
- Updated dependencies
- @backstage/core-plugin-api@1.0.5-next.0
- @backstage/plugin-catalog@1.5.0-next.0
- @backstage/plugin-catalog-react@1.1.3-next.0
- @backstage/core-components@0.10.1-next.0
## 0.8.7
### Patch Changes
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- b76eea25ed: Updated dependency `@asyncapi/react-component` to `1.0.0-next.39`.
- a274fe38b9: Add hidden title column to catalog and API table to enable filtering by title.
- 9432a05cf3: Set font colors correctly for descriptions containing HTML
- Updated dependencies
- @backstage/core-components@0.10.0
- @backstage/catalog-model@1.1.0
- @backstage/plugin-catalog@1.4.0
- @backstage/core-plugin-api@1.0.4
- @backstage/plugin-catalog-react@1.1.2
- @backstage/theme@0.2.16
## 0.8.7-next.3
### Patch Changes
+2 -1
View File
@@ -47,7 +47,8 @@ const apiDocsPlugin: BackstagePlugin<
},
{
registerApi: ExternalRouteRef<undefined, true>;
}
},
{}
>;
export { apiDocsPlugin };
export { apiDocsPlugin as plugin };
+11 -11
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-api-docs",
"description": "A Backstage plugin that helps represent API entities in the frontend",
"version": "0.8.7-next.3",
"version": "0.8.8-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -34,12 +34,12 @@
},
"dependencies": {
"@asyncapi/react-component": "1.0.0-next.39",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/plugin-catalog": "^1.4.0-next.3",
"@backstage/plugin-catalog-react": "^1.1.2-next.3",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/catalog-model": "^1.1.0",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/plugin-catalog": "^1.5.0-next.0",
"@backstage/plugin-catalog-react": "^1.1.3-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -57,10 +57,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-app-api": "^1.0.4-next.1",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
+1
View File
@@ -0,0 +1 @@
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
+22
View File
@@ -0,0 +1,22 @@
# @backstage/plugin-apollo-explorer
## 0.1.1-next.0
### Patch Changes
- Updated dependencies
- @backstage/core-plugin-api@1.0.5-next.0
- @backstage/core-components@0.10.1-next.0
## 0.1.0
### Minor Changes
- d8fec19542: Apollo Explorer plugin now available! Installation instructions can be found in the plugin README
### Patch Changes
- Updated dependencies
- @backstage/core-components@0.10.0
- @backstage/core-plugin-api@1.0.4
- @backstage/theme@0.2.16
+66
View File
@@ -0,0 +1,66 @@
# apollo-explorer
Welcome to the Apollo Explorer plugin!
This plugin allows users to directly embed an [Apollo](https://www.apollographql.com) graph explorer directly into
Backstage!
## Getting started
### Getting an Apollo Graph Reference
First things first, you will need an Apollo account, and a graph imported into your account. This is beyond the scope of
this plugin, so if you are totally new to Apollo, please reference their official
documentation [here](https://www.apollographql.com/docs).
Once you have a graph set up in Apollo, we need to grab the graph reference. First, go to your Apollo graphs home page and choose the graph you wish to embed.
![Apollo Graph List](./docs/img/apollo-graph-list.png)
Once you are in your graph explorer, click the dropdown next to the share icon and select `Share as Embedded`
![Share as Embedded](./docs/img/share-as-embedded.png)
This modal contains a number of useful properties, all of which can be passed to the plugin via the component properties, but the only mandatory input we need from here is the `graphRef`.
![Graph Ref](./docs/img/graph-ref.png)
Hold on to this snippet for a second while we set up the plugin ✨
### Installing the Backstage Plugin
First, add the plugin to your Backstage app
```shell
yarn --cwd packages/app add @backstage/plugin-apollo-explorer
```
Then, in `packages/app/src/App.tsx` add the plugin as a `Route`
```typescript
<Route
path="/apollo-explorer"
element={
<ApolloExplorerPage
endpoints={[
{ title: 'Github', graphRef: 'my-github-graph-ref@current' },
{ title: 'Linear', graphRef: 'my-linear-graph-ref@current' },
]}
/>
}
/>
```
Then, in `packages/app/src/components/Root/Root.tsx` add a sidebar item so users can find your beautiful plugin!
```typescript
<SidebarItem icon={GraphiQLIcon} to="apollo-explorer" text="Apollo Explorer" />
```
That's it! You should now see an `Apollo Explorer` item in your sidebar, and if you click it, you should see your graph(s) load and direct you to authenticate via Apollo!
![Needs Auth](./docs/img/needs-auth.png)
Once you authenticate, your graph is ready to use 🚀
![Logged In](./docs/img/logged-in.png)
+49
View File
@@ -0,0 +1,49 @@
## API Report File for "@backstage/plugin-apollo-explorer"
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
/// <reference types="react" />
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { JSONObject } from '@apollo/explorer/src/helpers/types';
import { RouteRef } from '@backstage/core-plugin-api';
// @public
export const ApolloExplorerPage: ({
title,
subtitle,
endpoints,
}: {
title?: string | undefined;
subtitle?: string | undefined;
endpoints: {
title: string;
graphRef: string;
persistExplorerState?: boolean | undefined;
initialState?:
| {
document?: string | undefined;
variables?: JSONObject | undefined;
headers?: Record<string, string> | undefined;
displayOptions: {
docsPanelState?: 'closed' | 'open' | undefined;
showHeadersAndEnvVars?: boolean | undefined;
theme?: 'dark' | 'light' | undefined;
};
}
| undefined;
}[];
}) => JSX.Element;
// @public
export const apolloExplorerPlugin: BackstagePlugin<
{
root: RouteRef<undefined>;
},
{},
{}
>;
// (No @packageDocumentation comment for this package)
```
+27
View File
@@ -0,0 +1,27 @@
/*
* 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 { createDevApp } from '@backstage/dev-utils';
import { apolloExplorerPlugin, ApolloExplorerPage } from '../src/plugin';
createDevApp()
.registerPlugin(apolloExplorerPlugin)
.addPage({
element: <ApolloExplorerPage endpoints={[]} />,
title: 'Root Page',
path: '/apollo-explorer',
})
.render();
Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 KiB

+54
View File
@@ -0,0 +1,54 @@
{
"name": "@backstage/plugin-apollo-explorer",
"version": "0.1.1-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
"publishConfig": {
"access": "public",
"main": "dist/index.esm.js",
"types": "dist/index.d.ts"
},
"backstage": {
"role": "frontend-plugin"
},
"scripts": {
"start": "backstage-cli package start",
"build": "backstage-cli package build",
"lint": "backstage-cli package lint",
"test": "backstage-cli package test",
"clean": "backstage-cli package clean",
"prepack": "backstage-cli package prepack",
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.9.13",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "^4.0.0-alpha.57",
"react-use": "^17.2.4",
"@apollo/explorer": "^1.1.1",
"use-deep-compare-effect": "^1.8.1"
},
"peerDependencies": {
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/jest": "*",
"@types/node": "*",
"msw": "^0.43.0",
"cross-fetch": "^3.1.5"
},
"files": [
"dist"
]
}
@@ -0,0 +1,85 @@
/*
* 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, { useState } from 'react';
import { Divider, makeStyles, Tab, Tabs } from '@material-ui/core';
import { BackstageTheme } from '@backstage/theme';
import { JSONObject } from '@apollo/explorer/src/helpers/types';
import { ApolloExplorer } from '@apollo/explorer/react';
import { Content } from '@backstage/core-components';
const useStyles = makeStyles<BackstageTheme>(theme => ({
tabs: {
background: theme.palette.background.paper,
},
root: {
height: '100%',
},
content: {
height: '100%',
},
explorer: {
height: '95%',
},
}));
export type ApolloEndpointProps = {
title: string;
graphRef: string;
persistExplorerState?: boolean;
initialState?: {
document?: string;
variables?: JSONObject;
headers?: Record<string, string>;
displayOptions: {
docsPanelState?: 'open' | 'closed';
showHeadersAndEnvVars?: boolean;
theme?: 'dark' | 'light';
};
};
};
type Props = {
endpoints: ApolloEndpointProps[];
};
export const ApolloExplorerBrowser = ({ endpoints }: Props) => {
const classes = useStyles();
const [tabIndex, setTabIndex] = useState(0);
return (
<div className={classes.root}>
<Tabs
classes={{ root: classes.tabs }}
value={tabIndex}
onChange={(_, value) => setTabIndex(value)}
indicatorColor="primary"
>
{endpoints.map(({ title }, index) => (
<Tab key={index} label={title} value={index} />
))}
</Tabs>
<Divider />
<Content className={classes.content}>
<ApolloExplorer
className={classes.explorer}
graphRef={endpoints[tabIndex].graphRef}
persistExplorerState={endpoints[tabIndex].persistExplorerState}
initialState={endpoints[tabIndex].initialState}
/>
</Content>
</div>
);
};
@@ -1,5 +1,5 @@
/*
* Copyright 2021 The Backstage Authors
* 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.
@@ -13,6 +13,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export { SearchBar, SearchBarBase } from './SearchBar';
export type { SearchBarProps, SearchBarBaseProps } from './SearchBar';
export { ApolloExplorerBrowser } from './ApolloExplorerBrowser';
@@ -0,0 +1,53 @@
/*
* 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 { Content, Header, Page } from '@backstage/core-components';
import { ApolloExplorerBrowser } from '../ApolloExplorerBrowser';
import { JSONObject } from '@apollo/explorer/src/helpers/types';
type EndpointProps = {
title: string;
graphRef: string;
persistExplorerState?: boolean;
initialState?: {
document?: string;
variables?: JSONObject;
headers?: Record<string, string>;
displayOptions: {
docsPanelState?: 'open' | 'closed';
showHeadersAndEnvVars?: boolean;
theme?: 'dark' | 'light';
};
};
};
type Props = {
title?: string | undefined;
subtitle?: string | undefined;
endpoints: EndpointProps[];
};
export const ApolloExplorerPage = ({ title, subtitle, endpoints }: Props) => {
return (
<Page themeId="tool">
<Header title={title ?? 'Apollo Explorer 👩‍🚀'} subtitle={subtitle ?? ''} />
<Content noPadding>
<ApolloExplorerBrowser endpoints={endpoints} />
</Content>
</Page>
);
};
@@ -1,5 +1,5 @@
/*
* Copyright 2021 The Backstage Authors
* 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.
@@ -13,5 +13,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export { LegacySearchPage } from './LegacySearchPage';
export { ApolloExplorerPage } from './ApolloExplorerPage';
+16
View File
@@ -0,0 +1,16 @@
/*
* 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 { apolloExplorerPlugin, ApolloExplorerPage } from './plugin';
@@ -0,0 +1,22 @@
/*
* 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 { apolloExplorerPlugin } from './plugin';
describe('apollo-explorer', () => {
it('should export plugin', () => {
expect(apolloExplorerPlugin).toBeDefined();
});
});
+45
View File
@@ -0,0 +1,45 @@
/*
* 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 {
createPlugin,
createRoutableExtension,
} from '@backstage/core-plugin-api';
import { rootRouteRef } from './routes';
/**
* Plugin that allows Apollo Explorer instances to be directly embedded into Backstage
* @public
*/
export const apolloExplorerPlugin = createPlugin({
id: 'apollo-explorer',
routes: {
root: rootRouteRef,
},
});
/**
* Main component that wraps the embedded graph(s)
* @public
*/
export const ApolloExplorerPage = apolloExplorerPlugin.provide(
createRoutableExtension({
name: 'ApolloExplorerPage',
component: () =>
import('./components/ApolloExplorerPage').then(m => m.ApolloExplorerPage),
mountPoint: rootRouteRef,
}),
);
+20
View File
@@ -0,0 +1,20 @@
/*
* 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';
export const rootRouteRef = createRouteRef({
id: 'apollo-explorer',
});
+17
View File
@@ -0,0 +1,17 @@
/*
* 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';
import 'cross-fetch/polyfill';
+19
View File
@@ -1,5 +1,24 @@
# @backstage/plugin-app-backend
## 0.3.35-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
## 0.3.34
### 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`.
- 679b32172e: Updated dependency `knex` to `^2.0.0`.
- Updated dependencies
- @backstage/backend-common@0.14.1
- @backstage/config-loader@1.1.3
## 0.3.34-next.3
### Patch Changes
+5 -5
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-app-backend",
"description": "A Backstage backend plugin that serves the Backstage frontend app",
"version": "0.3.34-next.3",
"version": "0.3.35-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,8 +33,8 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/config-loader": "^1.1.3-next.1",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/config-loader": "^1.1.3",
"@backstage/config": "^1.0.1",
"@backstage/types": "^1.0.0",
"@types/express": "^4.17.6",
@@ -50,8 +50,8 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.26-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/backend-test-utils": "^0.1.27-next.0",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/types": "^1.0.0",
"@types/supertest": "^2.0.8",
"mock-fs": "^5.1.0",
+40
View File
@@ -1,5 +1,45 @@
# @backstage/plugin-auth-backend
## 0.15.1-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
- @backstage/plugin-auth-node@0.2.4-next.0
## 0.15.0
### Minor Changes
- 9d4040777e: **BREAKING**: Removed all directly exported auth provider factories, option types, and sign-in resolvers. For example: `AwsAlbProviderOptions`, `bitbucketUserIdSignInResolver`, `createGithubProvider`. These are all still accessible via the `providers` export. For example, use `providers.github.create()` rather than `createGithubProvider()`, and `providers.bitbucket.resolvers.userIdMatchingUserEntityAnnotation()` rather than `bitbucketUserIdSignInResolver`.
**BREAKING**: Removed the exported `AuthProviderFactoryOptions` type as well as the deprecated option fields of the `AuthProviderFactory` callback. This includes the `tokenManager`, `tokenIssuer`, `discovery`, and `catalogApi` fields. Existing usage of these should be replaced with the new utilities in the `resolverContext` field. The deprecated `TokenIssuer` type is now also removed, since it is no longer used.
**BREAKING**: Removed `getEntityClaims`, use `getDefaultOwnershipEntityRefs` instead.
**DEPRECATION**: Deprecated `AtlassianAuthProvider` as it was unintentionally exported.
- fe8e025af5: Allowed post method on /refresh path
### Patch Changes
- 3cedfd8365: add Cloudflare Access auth provider to auth-backend
- f2cf79d62e: Added an option for the auth backend router to select the algorithm for the JWT token signing keys
- 8e03db907a: Auth provider now also export createAuthProviderIntegration
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 4e9a90e307: Updated dependency `luxon` to `^3.0.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- 679b32172e: Updated dependency `knex` to `^2.0.0`.
- 859346bfbb: Updated dependency `google-auth-library` to `^8.0.0`.
- 3a014730dc: Add new config option for okta auth server and IDP
- Updated dependencies
- @backstage/backend-common@0.14.1
- @backstage/catalog-model@1.1.0
- @backstage/catalog-client@1.0.4
- @backstage/plugin-auth-node@0.2.3
- @backstage/errors@1.1.0
## 0.15.0-next.3
### Minor Changes
+48
View File
@@ -7,6 +7,7 @@
import { BackstageIdentityResponse } from '@backstage/plugin-auth-node';
import { BackstageSignInResult } from '@backstage/plugin-auth-node';
import { CacheClient } from '@backstage/backend-common';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { Entity } from '@backstage/catalog-model';
@@ -170,6 +171,41 @@ export class CatalogIdentityClient {
resolveCatalogMembership(query: MemberClaimQuery): Promise<string[]>;
}
// @public
export type CloudflareAccessClaims = {
aud: string[];
email: string;
exp: number;
iat: number;
nonce: string;
identity_nonce: string;
sub: string;
iss: string;
custom: string;
};
// @public
export type CloudflareAccessGroup = {
id: string;
name: string;
email: string;
};
// @public
export type CloudflareAccessIdentityProfile = {
id: string;
name: string;
email: string;
groups: CloudflareAccessGroup[];
};
// @public (undocumented)
export type CloudflareAccessResult = {
claims: CloudflareAccessClaims;
cfIdentity: CloudflareAccessIdentityProfile;
expiresInSeconds?: number;
};
// @public
export type CookieConfigurer = (ctx: {
providerId: string;
@@ -472,6 +508,18 @@ export const providers: Readonly<{
userIdMatchingUserEntityAnnotation(): SignInResolver<OAuthResult>;
}>;
}>;
cfAccess: Readonly<{
create: (options: {
authHandler?: AuthHandler<CloudflareAccessResult> | undefined;
signIn: {
resolver: SignInResolver<CloudflareAccessResult>;
};
cache?: CacheClient | undefined;
}) => AuthProviderFactory;
resolvers: Readonly<{
emailMatchingUserEntityProfileEmail: () => SignInResolver<unknown>;
}>;
}>;
gcpIap: Readonly<{
create: (options: {
authHandler?: AuthHandler<GcpIapResult> | undefined;
+3
View File
@@ -116,6 +116,9 @@ export interface Config {
issuer?: string;
region: string;
};
cfaccess?: {
teamName: string;
};
};
};
}
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-auth-backend",
"description": "A Backstage backend plugin that handles authentication",
"version": "0.15.0-next.3",
"version": "0.15.1-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,12 +33,12 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/plugin-auth-node": "^0.2.3-next.2",
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/catalog-client": "^1.0.4-next.2",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/plugin-auth-node": "^0.2.4-next.0",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/catalog-client": "^1.0.4",
"@backstage/catalog-model": "^1.1.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/errors": "^1.1.0",
"@backstage/types": "^1.0.0",
"@davidzemon/passport-okta-oauth": "^0.0.5",
"@google-cloud/firestore": "^5.0.2",
@@ -76,8 +76,8 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.26-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/backend-test-utils": "^0.1.27-next.0",
"@backstage/cli": "^0.18.1-next.0",
"@types/body-parser": "^1.19.0",
"@types/cookie-parser": "^1.4.2",
"@types/express-session": "^1.17.2",
@@ -0,0 +1,22 @@
/*
* 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 { cfAccess } from './provider';
export type {
CloudflareAccessClaims,
CloudflareAccessGroup,
CloudflareAccessResult,
CloudflareAccessIdentityProfile,
} from './provider';
@@ -0,0 +1,267 @@
/*
* 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 express from 'express';
import { jwtVerify } from 'jose';
import {
CF_JWT_HEADER,
CF_AUTH_IDENTITY,
CloudflareAccessAuthProvider,
} from './provider';
import { AuthResolverContext } from '../types';
import fetch from 'node-fetch';
const jwtMock = jwtVerify as jest.Mocked<any>;
const mockJwt =
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IktFWV9JRCIsImlzcyI6IklTU1VFUl9VUkwifQ.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IlVzZXIgTmFtZSIsImlhdCI6MTUxNjIzOTAyMn0.uMCSBGhij1xn5pnot8XgD-huQuTIBOFGs6kkW_p_X94';
const mockClaims = {
sub: '1234567890',
email: 'user.name@email.test',
iat: 1632833760,
exp: 1632833763,
iss: 'ISSUER_URL',
};
const mockCfIdentity = {
name: 'foo',
id: '123',
email: 'foo@bar.com',
groups: [
{
id: '123',
email: 'foo@bar.com',
name: 'foo',
},
],
};
const identityOkResponse = {
backstageIdentity: {
identity: {
ownershipEntityRefs: ['user:default/jimmymarkum'],
type: 'user',
userEntityRef: 'user:default/jimmymarkum',
},
token:
'eyblob.eyJzdWIiOiJ1c2VyOmRlZmF1bHQvamltbXltYXJrdW0iLCJlbnQiOlsidXNlcjpkZWZhdWx0L2ppbW15bWFya3VtIl19.eyblob',
},
profile: {
email: 'user.name@email.test',
},
providerInfo: {
cfAccessIdentityProfile: {
email: 'foo@bar.com',
groups: [
{
email: 'foo@bar.com',
id: '123',
name: 'foo',
},
],
id: '123',
name: 'foo',
},
claims: mockClaims,
expiresInSeconds: 3,
},
};
const mockAuthenticatedUserEmail = 'user.name@email.test';
const mockCacheClient = {
get: jest.fn(),
set: jest.fn(),
delete: jest.fn(),
};
jest.mock('jose');
jest.mock('node-fetch', () => {
const original = jest.requireActual('node-fetch');
return {
__esModule: true,
default: jest.fn(),
Headers: original.Headers,
};
});
beforeEach(() => {
jest.clearAllMocks();
});
describe('CloudflareAccessAuthProvider', () => {
// Cloudflare access provides jwt in two ways.
const mockRequestWithJwtHeader = {
header: jest.fn(name => {
if (name === CF_JWT_HEADER) {
return mockJwt;
} else if (name === CF_AUTH_IDENTITY) {
return mockAuthenticatedUserEmail;
}
return undefined;
}),
} as unknown as express.Request;
const mockRequestWithJwtCookie = {
header: jest.fn(_ => {
return undefined;
}),
cookies: {
CF_Authorization: `${mockJwt}`,
},
} as unknown as express.Request;
const mockRequestWithoutJwt = {
header: jest.fn(_ => {
return undefined;
}),
} as unknown as express.Request;
const mockResponse = {
end: jest.fn(),
header: () => jest.fn(),
json: jest.fn(),
status: jest.fn(),
} as unknown as express.Response;
const mockFetch = fetch as unknown as jest.Mocked<any>;
const provider = new CloudflareAccessAuthProvider({
teamName: 'foobar',
resolverContext: {} as AuthResolverContext,
authHandler: async ({ claims }) => ({
profile: {
email: claims.email,
},
}),
signInResolver: async () => {
return {
token:
'eyblob.eyJzdWIiOiJ1c2VyOmRlZmF1bHQvamltbXltYXJrdW0iLCJlbnQiOlsidXNlcjpkZWZhdWx0L2ppbW15bWFya3VtIl19.eyblob',
};
},
cache: mockCacheClient,
});
describe('when JWT is valid', () => {
it('returns cfidentity also when get-identity succeeds', async () => {
jwtMock.mockReturnValue(Promise.resolve({ payload: mockClaims }));
mockFetch.mockReturnValueOnce(
Promise.resolve({
ok: true,
status: 200,
json: () => {
return mockCfIdentity;
},
}),
);
await provider.refresh(mockRequestWithJwtHeader, mockResponse);
expect(mockResponse.json).toHaveBeenCalledWith(identityOkResponse);
});
it('should resolve when passed in cookie', async () => {
jwtMock.mockReturnValue(Promise.resolve({ payload: mockClaims }));
// when mockFetch resolves and there nothing gets returned from /get-identity
mockFetch.mockReturnValueOnce(
Promise.resolve({
ok: true,
status: 200,
json: () => {
return mockCfIdentity;
},
}),
);
await provider.refresh(mockRequestWithJwtCookie, mockResponse);
expect(mockResponse.json).toHaveBeenCalledWith(identityOkResponse);
});
it('should resolve an identity and populate access groups when there are groups', async () => {
// when get-identity api responds and responds with status 200
mockFetch.mockResolvedValueOnce(
Promise.resolve({
ok: () => {
return true;
},
status: 200,
json: () => {
return Promise.resolve({
name: 'foo',
id: '123',
email: 'foo@bar.com',
groups: [
{
id: '123',
email: 'foo@bar.com',
name: 'foo',
},
],
});
},
}),
);
jwtMock.mockReturnValueOnce(Promise.resolve({ payload: mockClaims }));
await provider.refresh(mockRequestWithJwtCookie, mockResponse);
expect(mockResponse.json).toHaveBeenCalledWith(identityOkResponse);
});
it('should throw an error when get-identity fails', async () => {
mockFetch.mockReturnValue(Promise.reject());
await expect(
provider.refresh(mockRequestWithJwtCookie, mockResponse),
).rejects.toThrowError();
});
});
describe('should fail when', () => {
it('JWT is missing', async () => {
await expect(
provider.refresh(mockRequestWithoutJwt, mockResponse),
).rejects.toThrow();
});
it('JWT is invalid', async () => {
jwtMock.mockImplementation(() => {
throw new Error('bad JWT');
});
await expect(
provider.refresh(mockRequestWithJwtCookie, mockResponse),
).rejects.toThrow();
await expect(
provider.refresh(mockRequestWithJwtHeader, mockResponse),
).rejects.toThrow();
jwtMock.mockReset();
});
it('SignInResolver rejects', async () => {
jwtMock.mockReturnValue(mockClaims);
await expect(
provider.refresh(mockRequestWithJwtCookie, mockResponse),
).rejects.toThrow();
await expect(
provider.refresh(mockRequestWithJwtHeader, mockResponse),
).rejects.toThrow();
jwtMock.mockReset();
});
it('AuthHandler rejects', async () => {
jwtMock.mockReturnValue(mockClaims);
await expect(
provider.refresh(mockRequestWithJwtCookie, mockResponse),
).rejects.toThrow();
await expect(
provider.refresh(mockRequestWithJwtHeader, mockResponse),
).rejects.toThrow();
jwtMock.mockReset();
});
});
});
@@ -0,0 +1,379 @@
/*
* 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 {
AuthHandler,
AuthProviderRouteHandlers,
AuthResolverContext,
AuthResponse,
SignInResolver,
} from '../types';
import fetch, { Headers } from 'node-fetch';
import express from 'express';
import * as _ from 'lodash';
import { jwtVerify, createRemoteJWKSet } from 'jose';
import {
AuthenticationError,
ResponseError,
ForwardedError,
} from '@backstage/errors';
import { CacheClient } from '@backstage/backend-common';
import { createAuthProviderIntegration } from '../createAuthProviderIntegration';
import { prepareBackstageIdentityResponse } from '../prepareBackstageIdentityResponse';
import { commonByEmailResolver } from '../resolvers';
// JWT Web Token definitions are in the URL below
// https://developers.cloudflare.com/cloudflare-one/identity/users/validating-json/
export const CF_JWT_HEADER = 'cf-access-jwt-assertion';
export const CF_AUTH_IDENTITY = 'cf-access-authenticated-user-email';
const COOKIE_AUTH_NAME = 'CF_Authorization';
const CACHE_PREFIX = 'providers/cloudflare-access/profile-v1';
/**
* Default cache TTL
*
* @public
*/
export const CF_DEFAULT_CACHE_TTL = 3600;
/** @public */
export type Options = {
/**
* Access team name
*
* When you configure Access, the public certificates are available at this
* URL, where your-team-name is your team name:
* https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/certs
*/
teamName: string;
authHandler: AuthHandler<CloudflareAccessResult>;
signInResolver: SignInResolver<CloudflareAccessResult>;
resolverContext: AuthResolverContext;
cache?: CacheClient;
};
/**
* CloudflareAccessClaims
*
* Can be used in externally provided auth handler or sign in resolver to
* enrich user profile for sign-in user entity
*
* @public
*/
export type CloudflareAccessClaims = {
/**
* `aud` identifies the application to which the JWT is issued.
*/
aud: string[];
/**
* `email` contains the email address of the authenticated user.
*/
email: string;
/**
* iat and exp are the issuance and expiration timestamps.
*/
exp: number;
iat: number;
/**
* `nonce` is the session identifier.
*/
nonce: string;
/**
* `identity_nonce` is available in the Application Token and can be used to
* query all group membership for a given user.
*/
identity_nonce: string;
/**
* `sub` contains the identifier of the authenticated user.
*/
sub: string;
/**
* `iss` the issuer is the applications Cloudflare Access Domain URL.
*/
iss: string;
/**
* `custom` contains SAML attributes in the Application Token specified by an
* administrator in the identity provider configuration.
*/
custom: string;
};
/**
* CloudflareAccessGroup
*
* @public
*/
export type CloudflareAccessGroup = {
/**
* Group id
*/
id: string;
/**
* Name of group as defined in Cloudflare zero trust dashboard
*/
name: string;
/**
* Access group email address
*/
email: string;
};
/**
* CloudflareAccessIdentityProfile
*
* Can be used in externally provided auth handler or sign in resolver to
* enrich user profile for sign-in user entity
*
* @public
*/
export type CloudflareAccessIdentityProfile = {
id: string;
name: string;
email: string;
groups: CloudflareAccessGroup[];
};
/**
*
* @public
*/
export type CloudflareAccessResult = {
claims: CloudflareAccessClaims;
cfIdentity: CloudflareAccessIdentityProfile;
expiresInSeconds?: number;
};
/**
* @public
*/
export type CloudflareAccessProviderInfo = {
/**
* Expiry of the access token in seconds.
*/
expiresInSeconds?: number;
/**
* Cloudflare access identity profile with cloudflare access groups
*/
cfAccessIdentityProfile?: CloudflareAccessIdentityProfile;
/**
* Cloudflare access claims
*/
claims: CloudflareAccessClaims;
};
export type CloudflareAccessResponse =
AuthResponse<CloudflareAccessProviderInfo>;
export class CloudflareAccessAuthProvider implements AuthProviderRouteHandlers {
private readonly teamName: string;
private readonly resolverContext: AuthResolverContext;
private readonly authHandler: AuthHandler<CloudflareAccessResult>;
private readonly signInResolver: SignInResolver<CloudflareAccessResult>;
private readonly jwtKeySet: any;
private readonly cache?: CacheClient;
constructor(options: Options) {
this.teamName = options.teamName;
this.authHandler = options.authHandler;
this.signInResolver = options.signInResolver;
this.resolverContext = options.resolverContext;
this.jwtKeySet = createRemoteJWKSet(
new URL(
`https://${this.teamName}.cloudflareaccess.com/cdn-cgi/access/certs`,
),
);
this.cache = options.cache;
}
frameHandler(): Promise<void> {
return Promise.resolve();
}
async refresh(req: express.Request, res: express.Response): Promise<void> {
// ProxiedSignInPage calls `/refresh` implicitly each time the backstage
// app is refreshed on the browser.
// User authentication is then checked here.
const result = await this.getResult(req);
const response = await this.handleResult(result);
res.json(response);
}
start(): Promise<void> {
return Promise.resolve();
}
private async getIdentityProfile(
jwt: string,
): Promise<CloudflareAccessIdentityProfile> {
const headers = new Headers();
// set both headers just the way inbound responses are set
headers.set(CF_JWT_HEADER, jwt);
headers.set('cookie', `${COOKIE_AUTH_NAME}=${jwt}`);
try {
const res = await fetch(
`https://${this.teamName}.cloudflareaccess.com/cdn-cgi/access/get-identity`,
{ headers },
);
if (!res.ok) {
throw ResponseError.fromResponse(res);
}
const cfIdentity = await res.json();
return cfIdentity as unknown as CloudflareAccessIdentityProfile;
} catch (err) {
throw new ForwardedError('getIdentityProfile failed', err);
}
}
private async getResult(
req: express.Request,
): Promise<CloudflareAccessResult> {
// JWTs generated by Access are available in a request header as
// Cf-Access-Jwt-Assertion and as cookies as CF_Authorization.
let jwt = req.header(CF_JWT_HEADER);
if (!jwt) {
jwt = req.cookies.CF_Authorization;
}
if (!jwt) {
// Only throw if both are not provided by Cloudflare Access since either
// can be used.
throw new AuthenticationError(
`Missing ${CF_JWT_HEADER} from Cloudflare Access`,
);
}
// Cloudflare signs the JWT using the RSA Signature with SHA-256 (RS256).
// RS256 follows an asymmetric algorithm; a private key signs the JWTs and
// a separate public key verifies the signature.
const verifyResult = await jwtVerify(jwt, this.jwtKeySet, {
issuer: `https://${this.teamName}.cloudflareaccess.com`,
});
const sub = verifyResult.payload.sub;
const cfAccessResultStr = await this.cache?.get(`${CACHE_PREFIX}/${sub}`);
if (typeof cfAccessResultStr === 'string') {
return JSON.parse(cfAccessResultStr) as CloudflareAccessResult;
}
const claims = verifyResult.payload as CloudflareAccessClaims;
// Builds a passport profile from JWT claims first
try {
// If we successfully fetch the get-identity endpoint,
// We supplement the passport profile with richer user identity
// information here.
const cfIdentity = await this.getIdentityProfile(jwt);
// Stores a stringified JSON object in cfaccess provider cache only when
// we complete all steps
const cfAccessResult: CloudflareAccessResult = {
claims,
cfIdentity,
expiresInSeconds: claims.exp - claims.iat,
};
this.cache?.set(`${CACHE_PREFIX}/${sub}`, JSON.stringify(cfAccessResult));
return cfAccessResult;
} catch (err) {
throw new ForwardedError(
'Failed to populate access identity information',
err,
);
}
}
private async handleResult(
result: CloudflareAccessResult,
): Promise<CloudflareAccessResponse> {
const { profile } = await this.authHandler(result, this.resolverContext);
const backstageIdentity = await this.signInResolver(
{
result,
profile,
},
this.resolverContext,
);
return {
providerInfo: {
expiresInSeconds: result.expiresInSeconds,
claims: result.claims,
cfAccessIdentityProfile: result.cfIdentity,
},
backstageIdentity: prepareBackstageIdentityResponse(backstageIdentity),
profile,
};
}
}
/**
* Auth provider integration for Cloudflare Access auth
*
* @public
*/
export const cfAccess = createAuthProviderIntegration({
create(options: {
/**
* The profile transformation function used to verify and convert the auth response
* into the profile that will be presented to the user.
*/
authHandler?: AuthHandler<CloudflareAccessResult>;
/**
* Configure sign-in for this provider, without it the provider can not be used to sign users in.
*/
signIn: {
/**
* Maps an auth result to a Backstage identity for the user.
*/
resolver: SignInResolver<CloudflareAccessResult>;
};
/**
* CacheClient object that was configured for the Backstage backend,
* should be provided via the backend auth plugin.
*/
cache?: CacheClient;
}) {
return ({ config, resolverContext }) => {
const teamName = config.getString('teamName');
if (!options.signIn.resolver) {
throw new Error(
'SignInResolver is required to use this authentication provider',
);
}
const authHandler: AuthHandler<CloudflareAccessResult> =
options?.authHandler
? options.authHandler
: async ({ claims, cfIdentity }) => {
return {
profile: {
email: claims.email,
displayName: cfIdentity.name,
},
};
};
return new CloudflareAccessAuthProvider({
teamName,
signInResolver: options?.signIn.resolver,
authHandler,
resolverContext,
...(options.cache && { cache: options.cache }),
});
};
},
resolvers: {
/**
* Looks up the user by matching their email to the entity email.
*/
emailMatchingUserEntityProfileEmail: () => commonByEmailResolver,
},
});
@@ -20,6 +20,12 @@ export type {
BitbucketOAuthResult,
BitbucketPassportProfile,
} from './bitbucket';
export type {
CloudflareAccessClaims,
CloudflareAccessGroup,
CloudflareAccessResult,
CloudflareAccessIdentityProfile,
} from './cloudflare-access';
export type { GithubOAuthResult } from './github';
export type { OAuth2ProxyResult } from './oauth2-proxy';
export type { OidcAuthResult } from './oidc';
@@ -18,6 +18,7 @@ import { atlassian } from './atlassian';
import { auth0 } from './auth0';
import { awsAlb } from './aws-alb';
import { bitbucket } from './bitbucket';
import { cfAccess } from './cloudflare-access';
import { gcpIap } from './gcp-iap';
import { github } from './github';
import { gitlab } from './gitlab';
@@ -41,6 +42,7 @@ export const providers = Object.freeze({
auth0,
awsAlb,
bitbucket,
cfAccess,
gcpIap,
github,
gitlab,
+17
View File
@@ -1,5 +1,22 @@
# @backstage/plugin-auth-node
## 0.2.4-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
## 0.2.3
### 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
- @backstage/errors@1.1.0
## 0.2.3-next.2
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-auth-node",
"version": "0.2.3-next.2",
"version": "0.2.4-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -23,15 +23,15 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/errors": "^1.1.0",
"jose": "^4.6.0",
"node-fetch": "^2.6.7",
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/cli": "^0.18.1-next.0",
"lodash": "^4.17.21",
"msw": "^0.44.0",
"uuid": "^8.0.0"
+22
View File
@@ -1,5 +1,27 @@
# @backstage/plugin-azure-devops-backend
## 0.3.14-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
## 0.3.13
### Patch Changes
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- 13a232ec22: Added comments to example to help avoid confusion as to where lines need to be added
- e67c4b7d5a: Adding getProjects endpoint to list out all projects associated with the Azure DevOps organization.
It can be accessed by using this endpoint `{backendUrl}/api/azure-devops/projects`
- Updated dependencies
- @backstage/backend-common@0.14.1
- @backstage/plugin-azure-devops-common@0.2.4
## 0.3.13-next.1
### Patch Changes
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops-backend",
"version": "0.3.13-next.1",
"version": "0.3.14-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -23,9 +23,9 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/config": "^1.0.1",
"@backstage/plugin-azure-devops-common": "^0.2.4-next.0",
"@backstage/plugin-azure-devops-common": "^0.2.4",
"@types/express": "^4.17.6",
"azure-devops-node-api": "^11.0.1",
"express": "^4.17.1",
@@ -35,7 +35,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/cli": "^0.18.1-next.0",
"@types/supertest": "^2.0.8",
"supertest": "^6.1.6",
"msw": "^0.44.0"
+8
View File
@@ -1,5 +1,13 @@
# @backstage/plugin-azure-devops-common
## 0.2.4
### Patch Changes
- e67c4b7d5a: Adding getProjects endpoint to list out all projects associated with the Azure DevOps organization.
It can be accessed by using this endpoint `{backendUrl}/api/azure-devops/projects`
## 0.2.4-next.0
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops-common",
"version": "0.2.4-next.0",
"version": "0.2.4",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -32,7 +32,7 @@
"clean": "backstage-cli package clean"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3"
"@backstage/cli": "^0.18.1-next.0"
},
"files": [
"dist"
+26
View File
@@ -1,5 +1,31 @@
# @backstage/plugin-azure-devops
## 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`.
- 4e9a90e307: Updated dependency `luxon` to `^3.0.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- e049e41048: Exporting azureDevOpsApiRef, AzureGitTagsIcon, and all hooks for the benefit of other plugins.
- 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
- @backstage/errors@1.1.0
- @backstage/plugin-azure-devops-common@0.2.4
## 0.1.23-next.3
### Patch Changes
+1 -1
View File
@@ -170,7 +170,7 @@ export class AzureDevOpsClient implements AzureDevOpsApi {
// Warning: (ae-missing-release-tag) "azureDevOpsPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const azureDevOpsPlugin: BackstagePlugin<{}, {}>;
export const azureDevOpsPlugin: BackstagePlugin<{}, {}, {}>;
// Warning: (ae-missing-release-tag) "AzurePullRequestsIcon" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
+12 -12
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-azure-devops",
"version": "0.1.23-next.3",
"version": "0.1.24-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,13 +30,13 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/plugin-azure-devops-common": "^0.2.4-next.0",
"@backstage/plugin-catalog-react": "^1.1.2-next.3",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/catalog-model": "^1.1.0",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/errors": "^1.1.0",
"@backstage/plugin-azure-devops-common": "^0.2.4",
"@backstage/plugin-catalog-react": "^1.1.3-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -49,10 +49,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-app-api": "^1.0.4-next.1",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
+18
View File
@@ -1,5 +1,23 @@
# @backstage/plugin-badges-backend
## 0.1.29-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
## 0.1.28
### Patch Changes
- 58fd5ee9d5: Add missing installation instructions
- Updated dependencies
- @backstage/backend-common@0.14.1
- @backstage/catalog-model@1.1.0
- @backstage/catalog-client@1.0.4
- @backstage/errors@1.1.0
## 0.1.28-next.2
### Patch Changes
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-badges-backend",
"description": "A Backstage backend plugin that generates README badges for your entities",
"version": "0.1.28-next.2",
"version": "0.1.29-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -34,11 +34,11 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.2",
"@backstage/catalog-client": "^1.0.4-next.1",
"@backstage/catalog-model": "^1.1.0-next.2",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/catalog-client": "^1.0.4",
"@backstage/catalog-model": "^1.1.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/errors": "^1.1.0",
"@types/express": "^4.17.6",
"badge-maker": "^3.3.0",
"cors": "^2.8.5",
@@ -48,7 +48,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@types/supertest": "^2.0.8",
"supertest": "^6.1.3"
},
+23
View File
@@ -1,5 +1,28 @@
# @backstage/plugin-badges
## 0.2.32-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.2.31
### 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
- @backstage/errors@1.1.0
## 0.2.31-next.3
### Patch Changes
+1 -1
View File
@@ -10,7 +10,7 @@ import { BackstagePlugin } from '@backstage/core-plugin-api';
// Warning: (ae-missing-release-tag) "badgesPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const badgesPlugin: BackstagePlugin<{}, {}>;
export const badgesPlugin: BackstagePlugin<{}, {}, {}>;
// Warning: (ae-missing-release-tag) "EntityBadgesDialog" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
+11 -11
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-badges",
"description": "A Backstage plugin that generates README badges for your entities",
"version": "0.2.31-next.3",
"version": "0.2.32-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -30,12 +30,12 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/plugin-catalog-react": "^1.1.2-next.3",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/catalog-model": "^1.1.0",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/errors": "^1.1.0",
"@backstage/plugin-catalog-react": "^1.1.3-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -46,10 +46,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-app-api": "^1.0.4-next.1",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
+18
View File
@@ -1,5 +1,23 @@
# @backstage/plugin-bazaar-backend
## 0.1.19-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
- @backstage/backend-test-utils@0.1.27-next.0
## 0.1.18
### Patch Changes
- 679b32172e: Updated dependency `knex` to `^2.0.0`.
- 77abf50acf: Fixed api warnings
- Updated dependencies
- @backstage/backend-common@0.14.1
- @backstage/backend-test-utils@0.1.26
## 0.1.18-next.1
### Patch Changes
-4
View File
@@ -8,13 +8,9 @@ import express from 'express';
import { Logger } from 'winston';
import { PluginDatabaseManager } from '@backstage/backend-common';
// Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function createRouter(options: RouterOptions): Promise<express.Router>;
// Warning: (ae-missing-release-tag) "RouterOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface RouterOptions {
// (undocumented)
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bazaar-backend",
"version": "0.1.18-next.1",
"version": "0.1.19-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -23,8 +23,8 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.2",
"@backstage/backend-test-utils": "^0.1.26-next.2",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/backend-test-utils": "^0.1.27-next.0",
"@backstage/config": "^1.0.1",
"@types/express": "^4.17.6",
"express": "^4.17.1",
@@ -34,7 +34,7 @@
"yn": "^4.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.2"
"@backstage/cli": "^0.18.1-next.0"
},
"files": [
"dist",
@@ -21,12 +21,14 @@ import { Logger } from 'winston';
import { Config } from '@backstage/config';
import { DatabaseHandler } from './DatabaseHandler';
/** @public */
export interface RouterOptions {
logger: Logger;
database: PluginDatabaseManager;
config: Config;
}
/** @public */
export async function createRouter(
options: RouterOptions,
): Promise<express.Router> {
+26
View File
@@ -1,5 +1,31 @@
# @backstage/plugin-bazaar
## 0.1.23-next.0
### Patch Changes
- Updated dependencies
- @backstage/core-plugin-api@1.0.5-next.0
- @backstage/plugin-catalog@1.5.0-next.0
- @backstage/cli@0.18.1-next.0
- @backstage/plugin-catalog-react@1.1.3-next.0
- @backstage/core-components@0.10.1-next.0
## 0.1.22
### Patch Changes
- 4e9a90e307: Updated dependency `luxon` to `^3.0.0`.
- 77abf50acf: Fixed api warnings
- Updated dependencies
- @backstage/core-components@0.10.0
- @backstage/catalog-model@1.1.0
- @backstage/plugin-catalog@1.4.0
- @backstage/cli@0.18.0
- @backstage/core-plugin-api@1.0.4
- @backstage/catalog-client@1.0.4
- @backstage/plugin-catalog-react@1.1.2
## 0.1.22-next.3
### Patch Changes
+1 -8
View File
@@ -8,28 +8,21 @@
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { RouteRef } from '@backstage/core-plugin-api';
// Warning: (ae-missing-release-tag) "BazaarPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const BazaarPage: () => JSX.Element;
// Warning: (ae-missing-release-tag) "bazaarPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const bazaarPlugin: BackstagePlugin<
{
root: RouteRef<undefined>;
},
{},
{}
>;
// Warning: (ae-missing-release-tag) "EntityBazaarInfoCard" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntityBazaarInfoCard: () => JSX.Element | null;
// Warning: (ae-missing-release-tag) "SortView" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SortView: () => JSX.Element;
+10 -10
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-bazaar",
"version": "0.1.22-next.3",
"version": "0.1.23-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -24,13 +24,13 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/catalog-client": "^1.0.4-next.2",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/plugin-catalog": "^1.4.0-next.3",
"@backstage/plugin-catalog-react": "^1.1.2-next.3",
"@backstage/catalog-client": "^1.0.4",
"@backstage/catalog-model": "^1.1.0",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/plugin-catalog": "^1.5.0-next.0",
"@backstage/plugin-catalog-react": "^1.1.3-next.0",
"@date-io/luxon": "1.x",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
@@ -47,8 +47,8 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@testing-library/jest-dom": "^5.10.1",
"cross-fetch": "^3.1.5"
},
@@ -24,6 +24,7 @@ import { EntityBazaarInfoContent } from '../EntityBazaarInfoContent';
import { Card } from '@material-ui/core';
import { parseBazaarResponse } from '../../util/parseMethods';
/** @public */
export const EntityBazaarInfoCard = () => {
const { entity } = useEntity();
const bazaarApi = useApi(bazaarApiRef);
@@ -66,6 +66,7 @@ const getUnlinkedCatalogEntities = (
});
};
/** @public */
export const SortView = () => {
const bazaarApi = useApi(bazaarApiRef);
const catalogApi = useApi(catalogApiRef);
+2
View File
@@ -25,6 +25,7 @@ import {
} from '@backstage/core-plugin-api';
import { bazaarApiRef, BazaarClient } from './api';
/** @public */
export const bazaarPlugin = createPlugin({
id: 'bazaar',
routes: {
@@ -44,6 +45,7 @@ export const bazaarPlugin = createPlugin({
],
});
/** @public */
export const BazaarPage = bazaarPlugin.provide(
createRoutableExtension({
name: 'BazaarPage',
@@ -1,5 +1,21 @@
# @backstage/plugin-bitbucket-cloud-common
## 0.1.2-next.0
### Patch Changes
- Updated dependencies
- @backstage/integration@1.3.0-next.0
## 0.1.1
### Patch Changes
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- Updated dependencies
- @backstage/integration@1.2.2
## 0.1.1-next.1
### Patch Changes
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-bitbucket-cloud-common",
"description": "Common functionalities for bitbucket-cloud plugins",
"version": "0.1.1-next.1",
"version": "0.1.2-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -28,11 +28,11 @@
"update-models": "yarn refresh-schema && yarn generate-models && yarn reduce-models"
},
"dependencies": {
"@backstage/integration": "^1.2.2-next.3",
"@backstage/integration": "^1.3.0-next.0",
"cross-fetch": "^3.1.5"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/cli": "^0.18.1-next.0",
"@openapitools/openapi-generator-cli": "^2.4.26",
"msw": "^0.44.0",
"ts-morph": "^15.0.0"
+23
View File
@@ -1,5 +1,28 @@
# @backstage/plugin-bitrise
## 0.1.35-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.34
### 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/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.34-next.3
### Patch Changes
+1 -1
View File
@@ -11,7 +11,7 @@ import { Entity } from '@backstage/catalog-model';
// Warning: (ae-missing-release-tag) "bitrisePlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const bitrisePlugin: BackstagePlugin<{}, {}>;
export const bitrisePlugin: BackstagePlugin<{}, {}, {}>;
// Warning: (ae-missing-release-tag) "EntityBitriseContent" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
+10 -10
View File
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-bitrise",
"description": "A Backstage plugin that integrates towards Bitrise",
"version": "0.1.34-next.3",
"version": "0.1.35-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -24,11 +24,11 @@
"clean": "backstage-cli package clean"
},
"dependencies": {
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/core-components": "^0.10.0-next.3",
"@backstage/core-plugin-api": "^1.0.4-next.0",
"@backstage/plugin-catalog-react": "^1.1.2-next.3",
"@backstage/theme": "^0.2.16-next.1",
"@backstage/catalog-model": "^1.1.0",
"@backstage/core-components": "^0.10.1-next.0",
"@backstage/core-plugin-api": "^1.0.5-next.0",
"@backstage/plugin-catalog-react": "^1.1.3-next.0",
"@backstage/theme": "^0.2.16",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
@@ -43,10 +43,10 @@
"react": "^16.13.1 || ^17.0.0"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/core-app-api": "^1.0.4-next.1",
"@backstage/dev-utils": "^1.0.4-next.3",
"@backstage/test-utils": "^1.1.2-next.2",
"@backstage/cli": "^0.18.1-next.0",
"@backstage/core-app-api": "^1.0.5-next.0",
"@backstage/dev-utils": "^1.0.5-next.0",
"@backstage/test-utils": "^1.1.3-next.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
@@ -1,5 +1,34 @@
# @backstage/plugin-catalog-backend-module-aws
## 0.1.8-next.0
### Patch Changes
- 17d45dbf10: Deprecate `AwsS3DiscoveryProcessor` in favor of `AwsS3EntityProvider` (since v0.1.4).
You can find a migration guide at
[the release notes for v0.1.4](https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/CHANGELOG.md#014).
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
- @backstage/integration@1.3.0-next.0
- @backstage/backend-tasks@0.3.4-next.0
- @backstage/plugin-catalog-backend@1.3.1-next.0
## 0.1.7
### Patch Changes
- f9f1de8100: Add processor for ingesting EKS clusters into the catalog
- 72622d9143: Updated dependency `yaml` to `^2.0.0`.
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.0
- @backstage/backend-common@0.14.1
- @backstage/catalog-model@1.1.0
- @backstage/integration@1.2.2
- @backstage/backend-tasks@0.3.3
- @backstage/errors@1.1.0
## 0.1.7-next.2
### Patch Changes
@@ -54,7 +54,7 @@ export class AwsOrganizationCloudAccountProcessor implements CatalogProcessor {
): Promise<boolean>;
}
// @public
// @public @deprecated
export class AwsS3DiscoveryProcessor implements CatalogProcessor {
constructor(reader: UrlReader);
// (undocumented)
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-aws",
"description": "A Backstage catalog backend module that helps integrate towards AWS",
"version": "0.1.7-next.2",
"version": "0.1.8-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,13 +33,13 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/backend-tasks": "^0.3.3-next.3",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/backend-tasks": "^0.3.4-next.0",
"@backstage/catalog-model": "^1.1.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/integration": "^1.2.2-next.3",
"@backstage/plugin-catalog-backend": "^1.3.0-next.3",
"@backstage/errors": "^1.1.0",
"@backstage/integration": "^1.3.0-next.0",
"@backstage/plugin-catalog-backend": "^1.3.1-next.0",
"@backstage/types": "^1.0.0",
"aws-sdk": "^2.840.0",
"lodash": "^4.17.21",
@@ -48,7 +48,7 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.18.0-next.3",
"@backstage/cli": "^0.18.1-next.0",
"@types/lodash": "^4.14.151",
"aws-sdk-mock": "^5.2.1",
"yaml": "^2.0.0"
@@ -31,6 +31,7 @@ import limiterFactory from 'p-limit';
* `https://testbucket.s3.us-east-2.amazonaws.com`.
*
* @public
* @deprecated Use the `AwsS3EntityProvider` instead (see https://github.com/backstage/backstage/blob/master/plugins/catalog-backend-module-aws/CHANGELOG.md#014).
*/
export class AwsS3DiscoveryProcessor implements CatalogProcessor {
constructor(private readonly reader: UrlReader) {}
@@ -1,5 +1,29 @@
# @backstage/plugin-catalog-backend-module-azure
## 0.1.6-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
- @backstage/integration@1.3.0-next.0
- @backstage/backend-tasks@0.3.4-next.0
- @backstage/plugin-catalog-backend@1.3.1-next.0
## 0.1.5
### Patch Changes
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.0
- @backstage/backend-common@0.14.1
- @backstage/catalog-model@1.1.0
- @backstage/integration@1.2.2
- @backstage/backend-tasks@0.3.3
- @backstage/errors@1.1.0
## 0.1.5-next.2
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-azure",
"description": "A Backstage catalog backend module that helps integrate towards Azure",
"version": "0.1.5-next.2",
"version": "0.1.6-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,13 +33,13 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/backend-tasks": "^0.3.3-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/catalog-model": "^1.1.0",
"@backstage/backend-tasks": "^0.3.4-next.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/integration": "^1.2.2-next.3",
"@backstage/plugin-catalog-backend": "^1.3.0-next.3",
"@backstage/errors": "^1.1.0",
"@backstage/integration": "^1.3.0-next.0",
"@backstage/plugin-catalog-backend": "^1.3.1-next.0",
"@backstage/types": "^1.0.0",
"lodash": "^4.17.21",
"msw": "^0.44.0",
@@ -48,8 +48,8 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.26-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/backend-test-utils": "^0.1.27-next.0",
"@backstage/cli": "^0.18.1-next.0",
"@types/lodash": "^4.14.151"
},
"files": [
@@ -1,5 +1,27 @@
# @backstage/plugin-catalog-backend-module-bitbucket-cloud
## 0.1.2-next.0
### Patch Changes
- Updated dependencies
- @backstage/integration@1.3.0-next.0
- @backstage/backend-tasks@0.3.4-next.0
- @backstage/plugin-catalog-backend@1.3.1-next.0
- @backstage/plugin-bitbucket-cloud-common@0.1.2-next.0
## 0.1.1
### Patch Changes
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.0
- @backstage/integration@1.2.2
- @backstage/plugin-bitbucket-cloud-common@0.1.1
- @backstage/backend-tasks@0.3.3
## 0.1.1-next.1
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-bitbucket-cloud",
"description": "A Backstage catalog backend module that helps integrate towards Bitbucket Cloud",
"version": "0.1.1-next.1",
"version": "0.1.2-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,18 +33,18 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/backend-tasks": "^0.3.3-next.3",
"@backstage/backend-tasks": "^0.3.4-next.0",
"@backstage/config": "^1.0.1",
"@backstage/integration": "^1.2.2-next.3",
"@backstage/plugin-bitbucket-cloud-common": "^0.1.1-next.1",
"@backstage/plugin-catalog-backend": "^1.3.0-next.3",
"@backstage/integration": "^1.3.0-next.0",
"@backstage/plugin-bitbucket-cloud-common": "^0.1.2-next.0",
"@backstage/plugin-catalog-backend": "^1.3.1-next.0",
"uuid": "^8.0.0",
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/backend-test-utils": "^0.1.26-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/backend-test-utils": "^0.1.27-next.0",
"@backstage/cli": "^0.18.1-next.0",
"msw": "^0.44.0"
},
"files": [
@@ -1,5 +1,29 @@
# @backstage/plugin-catalog-backend-module-bitbucket
## 0.2.2-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
- @backstage/integration@1.3.0-next.0
- @backstage/plugin-catalog-backend@1.3.1-next.0
- @backstage/plugin-bitbucket-cloud-common@0.1.2-next.0
## 0.2.1
### Patch Changes
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.0
- @backstage/backend-common@0.14.1
- @backstage/catalog-model@1.1.0
- @backstage/integration@1.2.2
- @backstage/plugin-bitbucket-cloud-common@0.1.1
- @backstage/errors@1.1.0
## 0.2.1-next.2
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-bitbucket",
"description": "A Backstage catalog backend module that helps integrate towards Bitbucket",
"version": "0.2.1-next.2",
"version": "0.2.2-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,13 +33,13 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/catalog-model": "^1.1.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/integration": "^1.2.2-next.3",
"@backstage/plugin-bitbucket-cloud-common": "^0.1.1-next.1",
"@backstage/plugin-catalog-backend": "^1.3.0-next.3",
"@backstage/errors": "^1.1.0",
"@backstage/integration": "^1.3.0-next.0",
"@backstage/plugin-bitbucket-cloud-common": "^0.1.2-next.0",
"@backstage/plugin-catalog-backend": "^1.3.1-next.0",
"@backstage/types": "^1.0.0",
"lodash": "^4.17.21",
"msw": "^0.44.0",
@@ -47,8 +47,8 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.26-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/backend-test-utils": "^0.1.27-next.0",
"@backstage/cli": "^0.18.1-next.0",
"@types/lodash": "^4.14.151"
},
"files": [
@@ -1,5 +1,29 @@
# @backstage/plugin-catalog-backend-module-gerrit
## 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/backend-tasks@0.3.4-next.0
- @backstage/plugin-catalog-backend@1.3.1-next.0
## 0.1.2
### Patch Changes
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.0
- @backstage/backend-common@0.14.1
- @backstage/catalog-model@1.1.0
- @backstage/integration@1.2.2
- @backstage/backend-tasks@0.3.3
- @backstage/errors@1.1.0
## 0.1.2-next.2
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-backend-module-gerrit",
"version": "0.1.2-next.2",
"version": "0.1.3-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -28,13 +28,13 @@
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/backend-tasks": "^0.3.3-next.3",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/backend-tasks": "^0.3.4-next.0",
"@backstage/catalog-model": "^1.1.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/integration": "^1.2.2-next.3",
"@backstage/plugin-catalog-backend": "^1.3.0-next.3",
"@backstage/errors": "^1.1.0",
"@backstage/integration": "^1.3.0-next.0",
"@backstage/plugin-catalog-backend": "^1.3.1-next.0",
"fs-extra": "10.1.0",
"msw": "^0.44.0",
"node-fetch": "^2.6.7",
@@ -42,8 +42,8 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.26-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/backend-test-utils": "^0.1.27-next.0",
"@backstage/cli": "^0.18.1-next.0",
"@types/fs-extra": "^9.0.1"
},
"files": [
@@ -1,5 +1,30 @@
# @backstage/plugin-catalog-backend-module-github
## 0.1.6-next.0
### Patch Changes
- Updated dependencies
- @backstage/backend-common@0.15.0-next.0
- @backstage/integration@1.3.0-next.0
- @backstage/backend-tasks@0.3.4-next.0
- @backstage/plugin-catalog-backend@1.3.1-next.0
## 0.1.5
### Patch Changes
- a70869e775: Updated dependency `msw` to `^0.43.0`.
- 0f25116d28: Updated dependency `@octokit/graphql` to `^5.0.0`.
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
- Updated dependencies
- @backstage/plugin-catalog-backend@1.3.0
- @backstage/backend-common@0.14.1
- @backstage/catalog-model@1.1.0
- @backstage/integration@1.2.2
- @backstage/backend-tasks@0.3.3
- @backstage/errors@1.1.0
## 0.1.5-next.2
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@backstage/plugin-catalog-backend-module-github",
"description": "A Backstage catalog backend module that helps integrate towards GitHub",
"version": "0.1.5-next.2",
"version": "0.1.6-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@@ -33,13 +33,13 @@
"start": "backstage-cli package start"
},
"dependencies": {
"@backstage/backend-common": "^0.14.1-next.3",
"@backstage/backend-tasks": "^0.3.3-next.3",
"@backstage/catalog-model": "^1.1.0-next.3",
"@backstage/backend-common": "^0.15.0-next.0",
"@backstage/backend-tasks": "^0.3.4-next.0",
"@backstage/catalog-model": "^1.1.0",
"@backstage/config": "^1.0.1",
"@backstage/errors": "^1.1.0-next.0",
"@backstage/integration": "^1.2.2-next.3",
"@backstage/plugin-catalog-backend": "^1.3.0-next.3",
"@backstage/errors": "^1.1.0",
"@backstage/integration": "^1.3.0-next.0",
"@backstage/plugin-catalog-backend": "^1.3.1-next.0",
"@backstage/types": "^1.0.0",
"@octokit/graphql": "^5.0.0",
"lodash": "^4.17.21",
@@ -49,8 +49,8 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/backend-test-utils": "^0.1.26-next.3",
"@backstage/cli": "^0.18.0-next.3",
"@backstage/backend-test-utils": "^0.1.27-next.0",
"@backstage/cli": "^0.18.1-next.0",
"@types/lodash": "^4.14.151"
},
"files": [

Some files were not shown because too many files have changed in this diff Show More