Merge branch 'ryanvazquez-patch-1' of github.com:backstage/backstage into ryanvazquez-patch-1
This commit is contained in:
@@ -1,13 +0,0 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
'@backstage/cli': patch
|
||||
'@backstage/core': patch
|
||||
'@backstage/plugin-cost-insights': patch
|
||||
'@backstage/plugin-lighthouse': patch
|
||||
'@backstage/plugin-rollbar': patch
|
||||
'@backstage/plugin-sentry': patch
|
||||
'@backstage/plugin-techdocs': patch
|
||||
'@backstage/plugin-user-settings': patch
|
||||
---
|
||||
|
||||
Added configuration schema
|
||||
@@ -1,27 +0,0 @@
|
||||
---
|
||||
'@backstage/backend-common': minor
|
||||
'@backstage/cli': minor
|
||||
'@backstage/config-loader': minor
|
||||
---
|
||||
|
||||
Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
|
||||
|
||||
The new `loadConfigSchema` function exported by `@backstage/config-loader` allows for the collection and merging of configuration schemas from all nearby dependencies of the project.
|
||||
|
||||
A configuration schema is declared using the `https://backstage.io/schema/config-v1` JSON Schema meta schema, which is based on draft07. The only difference to the draft07 schema is the custom `visibility` keyword, which is used to indicate whether the given config value should be visible in the frontend or not. The possible values are `frontend`, `backend`, and `secret`, where `backend` is the default. A visibility of `secret` has the same scope at runtime, but it will be treated with more care in certain contexts, and defining both `frontend` and `secret` for the same value in two different schemas will result in an error during schema merging.
|
||||
|
||||
Packages that wish to contribute configuration schema should declare it in a root `"configSchema"` field in `package.json`. The field can either contain an inlined JSON schema, or a relative path to a schema file. Schema files can be in either `.json` or `.d.ts` format.
|
||||
|
||||
TypeScript configuration schema files should export a single `Config` type, for example:
|
||||
|
||||
```ts
|
||||
export interface Config {
|
||||
app: {
|
||||
/**
|
||||
* Frontend root URL
|
||||
* @visibility frontend
|
||||
*/
|
||||
baseUrl: string;
|
||||
};
|
||||
}
|
||||
```
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-app-backend': minor
|
||||
---
|
||||
|
||||
Use new config schema support to automatically inject config with frontend visibility, in addition to the existing env schema injection.
|
||||
|
||||
This removes the confusing behavior where configuration was only injected into the app at build time. Any runtime configuration (except for environment config) in the backend used to only apply to the backend itself, and not be injected into the frontend.
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-cost-insights': patch
|
||||
---
|
||||
|
||||
remove excessive margin from cost overview banner
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-cost-insights': minor
|
||||
---
|
||||
|
||||
remove cost insights currency feature flag
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-cost-insights': patch
|
||||
---
|
||||
|
||||
Fix savings/excess display calculation
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
An entity A, that exists in the catalog, can no longer be overwritten by registering a different location that also tries to supply an entity with the same kind+namespace+name. Writes of that new entity will instead be rejected with a log message similar to `Rejecting write of entity Component:default/artist-lookup from file:/Users/freben/dev/github/backstage/packages/catalog-model/examples/components/artist-lookup-component.yaml because entity existed from github:https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/artist-lookup-component.yaml`
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Support specifying listen host/port for frontend
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
'@backstage/integration': patch
|
||||
---
|
||||
|
||||
Added the integration package
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/backend-common': minor
|
||||
---
|
||||
|
||||
Refactored UrlReader.readTree to be required and accept (url, options)
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/catalog-client': minor
|
||||
---
|
||||
|
||||
Changed the getEntities interface to (1) nest parameters in an object, (2) support field selection, and (3) return an object with an items field for future extension
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
---
|
||||
|
||||
Extracted pushToRemote function for reuse between publishers
|
||||
@@ -194,6 +194,7 @@ tolerations
|
||||
Tolerations
|
||||
toolsets
|
||||
tooltip
|
||||
tooltips
|
||||
touchpoints
|
||||
ui
|
||||
upvote
|
||||
|
||||
@@ -95,7 +95,7 @@ environment is compatible with techdocs.
|
||||
You will have to install the `mkdocs` and `mkdocs-techdocs-core` package from
|
||||
pip, as well as `graphviz` and `plantuml` from your OS package manager (e.g.
|
||||
apt). See our
|
||||
[Dockerfile](https://github.com/spotify/backstage/blob/master/packages/techdocs-container/Dockerfile)
|
||||
[Dockerfile](https://github.com/backstage/techdocs-container/blob/main/Dockerfile)
|
||||
for the latest requirements. You should be trying to match your Dockerfile with
|
||||
this one.
|
||||
|
||||
@@ -104,7 +104,7 @@ Note: We recommend Python version 3.7 or higher.
|
||||
Caveat: Please install the `mkdocs-techdocs-core` package after all other Python
|
||||
packages. The order is important to make sure we get correct version of some of
|
||||
the dependencies. For example, we want `Markdown` version to be
|
||||
[3.2.2](https://github.com/spotify/backstage/blob/f9f70c225548017b6a14daea75b00fbd399c11eb/packages/techdocs-container/techdocs-core/requirements.txt#L11).
|
||||
[3.2.2](https://github.com/backstage/backstage/blob/f9f70c225548017b6a14daea75b00fbd399c11eb/packages/techdocs-container/techdocs-core/requirements.txt#L11).
|
||||
You can also explicitly install `Markdown==3.2.2` after installing all other
|
||||
Python packages.
|
||||
|
||||
|
||||
@@ -89,6 +89,12 @@ are separated out into their own folder, see further down.
|
||||
There are no "core" packages in the backend. Instead we have `backend-common`
|
||||
which contains helper middleware and other utils.
|
||||
|
||||
- [`catalog-client`](https://github.com/backstage/backstage/tree/master/packages/catalog-client) -
|
||||
An isomorphic client to interact with the Software Catalog. Backend plugins
|
||||
can use the package directly. Frontend plugins can use the client by using
|
||||
`@backstage/plugin-catalog` in combination with `useApi` and the
|
||||
`catalogApiRef`.
|
||||
|
||||
- [`catalog-model/`](https://github.com/backstage/backstage/tree/master/packages/catalog-model) -
|
||||
You can consider this to be a library for working with the catalog of sorts.
|
||||
It contains the definition of an
|
||||
|
||||
@@ -5,5 +5,5 @@ authorUrl: https://sda.se/
|
||||
category: Discovery
|
||||
description: Components to discover and display API entities as an extension to the catalog plugin.
|
||||
documentation: https://github.com/backstage/backstage/blob/master/plugins/api-docs/README.md
|
||||
iconUrl: https://thecoders.io/wp-content/uploads/2019/11/tech-swagger.svg
|
||||
iconUrl: https://raw.githubusercontent.com/vscode-icons/vscode-icons/master/icons/file_type_swagger.svg
|
||||
npmPackageName: '@backstage/plugin-api-docs'
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
]
|
||||
},
|
||||
"resolutions": {
|
||||
"**/@roadiehq/backstage-plugin-*/@backstage/core": "0.3.0"
|
||||
"**/@roadiehq/backstage-plugin-*/@backstage/core": "*"
|
||||
},
|
||||
"version": "1.0.0",
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3efd03c0e: Removed obsolete CircleCI proxy config from example-app
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [17a9f48f6]
|
||||
- Updated dependencies [4040d4fcb]
|
||||
- Updated dependencies [f360395d0]
|
||||
- Updated dependencies [259d848ee]
|
||||
- Updated dependencies [8b7737d0b]
|
||||
- Updated dependencies [902340451]
|
||||
- @backstage/cli@0.3.0
|
||||
- @backstage/core@0.3.1
|
||||
- @backstage/plugin-cost-insights@0.4.0
|
||||
- @backstage/plugin-lighthouse@0.2.2
|
||||
- @backstage/plugin-rollbar@0.2.2
|
||||
- @backstage/plugin-sentry@0.2.2
|
||||
- @backstage/plugin-techdocs@0.2.2
|
||||
- @backstage/plugin-user-settings@0.2.2
|
||||
- @backstage/plugin-catalog@0.2.2
|
||||
- @backstage/test-utils@0.1.3
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
+13
-22
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.1",
|
||||
"version": "0.2.2",
|
||||
"private": true,
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-api-docs": "^0.2.1",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/plugin-circleci": "^0.2.1",
|
||||
"@backstage/plugin-cloudbuild": "^0.2.1",
|
||||
"@backstage/plugin-cost-insights": "^0.3.0",
|
||||
"@backstage/plugin-cost-insights": "^0.4.0",
|
||||
"@backstage/plugin-explore": "^0.2.1",
|
||||
"@backstage/plugin-gcp-projects": "^0.2.1",
|
||||
"@backstage/plugin-github-actions": "^0.2.1",
|
||||
@@ -19,23 +19,23 @@
|
||||
"@backstage/plugin-graphiql": "^0.2.1",
|
||||
"@backstage/plugin-jenkins": "^0.3.0",
|
||||
"@backstage/plugin-kubernetes": "^0.2.1",
|
||||
"@backstage/plugin-lighthouse": "^0.2.1",
|
||||
"@backstage/plugin-lighthouse": "^0.2.2",
|
||||
"@backstage/plugin-newrelic": "^0.2.1",
|
||||
"@backstage/plugin-register-component": "^0.2.1",
|
||||
"@backstage/plugin-rollbar": "^0.2.1",
|
||||
"@backstage/plugin-rollbar": "^0.2.2",
|
||||
"@backstage/plugin-scaffolder": "^0.3.0",
|
||||
"@backstage/plugin-sentry": "^0.2.1",
|
||||
"@backstage/plugin-sentry": "^0.2.2",
|
||||
"@backstage/plugin-search": "^0.2.0",
|
||||
"@backstage/plugin-tech-radar": "^0.3.0",
|
||||
"@backstage/plugin-techdocs": "^0.2.1",
|
||||
"@backstage/plugin-user-settings": "^0.2.1",
|
||||
"@backstage/plugin-techdocs": "^0.2.2",
|
||||
"@backstage/plugin-user-settings": "^0.2.2",
|
||||
"@backstage/plugin-welcome": "^0.2.1",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
"@octokit/rest": "^18.0.0",
|
||||
"@roadiehq/backstage-plugin-github-insights": "^0.2.12",
|
||||
"@roadiehq/backstage-plugin-github-insights": "^0.2.14",
|
||||
"@roadiehq/backstage-plugin-github-pull-requests": "^0.6.2",
|
||||
"@roadiehq/backstage-plugin-travis-ci": "^0.2.7",
|
||||
"@roadiehq/backstage-plugin-buildkite": "^0.1.2",
|
||||
@@ -87,14 +87,5 @@
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"proxy": {
|
||||
"/circleci/api": {
|
||||
"target": "https://circleci.com/api/v1.1",
|
||||
"changeOrigin": true,
|
||||
"pathRewrite": {
|
||||
"^/circleci/api/": "/"
|
||||
}
|
||||
}
|
||||
}
|
||||
"license": "Apache-2.0"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,43 @@
|
||||
# @backstage/backend-common
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1722cb53c: Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
|
||||
|
||||
The new `loadConfigSchema` function exported by `@backstage/config-loader` allows for the collection and merging of configuration schemas from all nearby dependencies of the project.
|
||||
|
||||
A configuration schema is declared using the `https://backstage.io/schema/config-v1` JSON Schema meta schema, which is based on draft07. The only difference to the draft07 schema is the custom `visibility` keyword, which is used to indicate whether the given config value should be visible in the frontend or not. The possible values are `frontend`, `backend`, and `secret`, where `backend` is the default. A visibility of `secret` has the same scope at runtime, but it will be treated with more care in certain contexts, and defining both `frontend` and `secret` for the same value in two different schemas will result in an error during schema merging.
|
||||
|
||||
Packages that wish to contribute configuration schema should declare it in a root `"configSchema"` field in `package.json`. The field can either contain an inlined JSON schema, or a relative path to a schema file. Schema files can be in either `.json` or `.d.ts` format.
|
||||
|
||||
TypeScript configuration schema files should export a single `Config` type, for example:
|
||||
|
||||
```ts
|
||||
export interface Config {
|
||||
app: {
|
||||
/**
|
||||
* Frontend root URL
|
||||
* @visibility frontend
|
||||
*/
|
||||
baseUrl: string;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
- 8e2effb53: Refactored UrlReader.readTree to be required and accept (url, options)
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1722cb53c: Added configuration schema
|
||||
- 7b37e6834: Added the integration package
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- @backstage/config-loader@0.3.0
|
||||
- @backstage/integration@0.1.1
|
||||
- @backstage/test-utils@0.1.3
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-common",
|
||||
"description": "Common functionality library for Backstage backends",
|
||||
"version": "0.2.1",
|
||||
"version": "0.3.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"private": false,
|
||||
@@ -31,9 +31,9 @@
|
||||
"dependencies": {
|
||||
"@backstage/cli-common": "^0.1.1",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/config-loader": "^0.2.0",
|
||||
"@backstage/integration": "^0.1.0",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/config-loader": "^0.3.0",
|
||||
"@backstage/integration": "^0.1.1",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@types/cors": "^2.8.6",
|
||||
"@types/express": "^4.17.6",
|
||||
"compression": "^1.7.4",
|
||||
@@ -66,7 +66,7 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/compression": "^1.7.0",
|
||||
"@types/concat-stream": "^1.6.0",
|
||||
"@types/fs-extra": "^9.0.3",
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
# example-backend
|
||||
|
||||
## 0.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [f531d307c]
|
||||
- Updated dependencies [3efd03c0e]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- Updated dependencies [d33f5157c]
|
||||
- @backstage/backend-common@0.3.0
|
||||
- @backstage/plugin-app-backend@0.3.0
|
||||
- @backstage/plugin-catalog-backend@0.2.1
|
||||
- example-app@0.2.2
|
||||
- @backstage/plugin-scaffolder-backend@0.3.1
|
||||
- @backstage/plugin-auth-backend@0.2.2
|
||||
- @backstage/plugin-graphql-backend@0.1.3
|
||||
- @backstage/plugin-kubernetes-backend@0.1.3
|
||||
- @backstage/plugin-proxy-backend@0.2.1
|
||||
- @backstage/plugin-rollbar-backend@0.1.3
|
||||
- @backstage/plugin-sentry-backend@0.1.3
|
||||
- @backstage/plugin-techdocs-backend@0.2.1
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend",
|
||||
"version": "0.2.1",
|
||||
"version": "0.2.2",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"private": true,
|
||||
@@ -18,24 +18,24 @@
|
||||
"migrate:create": "knex migrate:make -x ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.1",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/plugin-app-backend": "^0.2.0",
|
||||
"@backstage/plugin-auth-backend": "^0.2.1",
|
||||
"@backstage/plugin-catalog-backend": "^0.2.0",
|
||||
"@backstage/plugin-graphql-backend": "^0.1.2",
|
||||
"@backstage/plugin-kubernetes-backend": "^0.1.2",
|
||||
"@backstage/plugin-proxy-backend": "^0.2.0",
|
||||
"@backstage/plugin-rollbar-backend": "^0.1.2",
|
||||
"@backstage/plugin-scaffolder-backend": "^0.3.0",
|
||||
"@backstage/plugin-sentry-backend": "^0.1.2",
|
||||
"@backstage/plugin-techdocs-backend": "^0.2.0",
|
||||
"@backstage/plugin-app-backend": "^0.3.0",
|
||||
"@backstage/plugin-auth-backend": "^0.2.2",
|
||||
"@backstage/plugin-catalog-backend": "^0.2.1",
|
||||
"@backstage/plugin-graphql-backend": "^0.1.3",
|
||||
"@backstage/plugin-kubernetes-backend": "^0.1.3",
|
||||
"@backstage/plugin-proxy-backend": "^0.2.1",
|
||||
"@backstage/plugin-rollbar-backend": "^0.1.3",
|
||||
"@backstage/plugin-scaffolder-backend": "^0.3.1",
|
||||
"@backstage/plugin-sentry-backend": "^0.1.3",
|
||||
"@backstage/plugin-techdocs-backend": "^0.2.1",
|
||||
"@gitbeaker/node": "^25.2.0",
|
||||
"@octokit/rest": "^18.0.0",
|
||||
"azure-devops-node-api": "^10.1.1",
|
||||
"dockerode": "^3.2.0",
|
||||
"example-app": "^0.2.1",
|
||||
"example-app": "^0.2.2",
|
||||
"express": "^4.17.1",
|
||||
"express-promise-router": "^3.0.3",
|
||||
"knex": "^0.21.6",
|
||||
@@ -45,7 +45,7 @@
|
||||
"winston": "^3.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/dockerode": "^2.5.32",
|
||||
"@types/express": "^4.17.6",
|
||||
"@types/express-serve-static-core": "^4.17.5",
|
||||
|
||||
@@ -50,7 +50,7 @@ export default async function createPlugin({
|
||||
const urlPreparer = new UrlPreparer(reader, logger);
|
||||
preparers.register('url', urlPreparer);
|
||||
|
||||
const publisher = new LocalPublish(logger);
|
||||
const publisher = new LocalPublish(logger, discovery);
|
||||
|
||||
const dockerClient = new Docker();
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# @backstage/catalog-client
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 717e43de1: Changed the getEntities interface to (1) nest parameters in an object, (2) support field selection, and (3) return an object with an items field for future extension
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/catalog-client",
|
||||
"version": "0.2.0",
|
||||
"version": "0.3.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -25,7 +25,7 @@
|
||||
"cross-fetch": "^3.0.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/jest": "^26.0.7",
|
||||
"msw": "^0.21.2"
|
||||
},
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"yup": "^0.29.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/express": "^4.17.6",
|
||||
"@types/jest": "^26.0.7",
|
||||
"@types/lodash": "^4.14.151",
|
||||
|
||||
@@ -1,5 +1,38 @@
|
||||
# @backstage/cli
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1722cb53c: Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
|
||||
|
||||
The new `loadConfigSchema` function exported by `@backstage/config-loader` allows for the collection and merging of configuration schemas from all nearby dependencies of the project.
|
||||
|
||||
A configuration schema is declared using the `https://backstage.io/schema/config-v1` JSON Schema meta schema, which is based on draft07. The only difference to the draft07 schema is the custom `visibility` keyword, which is used to indicate whether the given config value should be visible in the frontend or not. The possible values are `frontend`, `backend`, and `secret`, where `backend` is the default. A visibility of `secret` has the same scope at runtime, but it will be treated with more care in certain contexts, and defining both `frontend` and `secret` for the same value in two different schemas will result in an error during schema merging.
|
||||
|
||||
Packages that wish to contribute configuration schema should declare it in a root `"configSchema"` field in `package.json`. The field can either contain an inlined JSON schema, or a relative path to a schema file. Schema files can be in either `.json` or `.d.ts` format.
|
||||
|
||||
TypeScript configuration schema files should export a single `Config` type, for example:
|
||||
|
||||
```ts
|
||||
export interface Config {
|
||||
app: {
|
||||
/**
|
||||
* Frontend root URL
|
||||
* @visibility frontend
|
||||
*/
|
||||
baseUrl: string;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1722cb53c: Added configuration schema
|
||||
- 902340451: Support specifying listen host/port for frontend
|
||||
- Updated dependencies [1722cb53c]
|
||||
- @backstage/config-loader@0.3.0
|
||||
|
||||
## 0.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/cli",
|
||||
"description": "CLI for developing Backstage plugins and apps",
|
||||
"version": "0.2.0",
|
||||
"version": "0.3.0",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
@@ -30,7 +30,7 @@
|
||||
"dependencies": {
|
||||
"@backstage/cli-common": "^0.1.1",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/config-loader": "^0.2.0",
|
||||
"@backstage/config-loader": "^0.3.0",
|
||||
"@hot-loader/react-dom": "^16.13.0",
|
||||
"@lerna/package-graph": "^3.18.5",
|
||||
"@lerna/project": "^3.18.0",
|
||||
@@ -109,11 +109,11 @@
|
||||
"yn": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-common": "^0.2.1",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@types/diff": "^4.0.2",
|
||||
"@types/fs-extra": "^9.0.1",
|
||||
|
||||
@@ -1,5 +1,31 @@
|
||||
# @backstage/config-loader
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1722cb53c: Added support for loading and validating configuration schemas, as well as declaring config visibility through schemas.
|
||||
|
||||
The new `loadConfigSchema` function exported by `@backstage/config-loader` allows for the collection and merging of configuration schemas from all nearby dependencies of the project.
|
||||
|
||||
A configuration schema is declared using the `https://backstage.io/schema/config-v1` JSON Schema meta schema, which is based on draft07. The only difference to the draft07 schema is the custom `visibility` keyword, which is used to indicate whether the given config value should be visible in the frontend or not. The possible values are `frontend`, `backend`, and `secret`, where `backend` is the default. A visibility of `secret` has the same scope at runtime, but it will be treated with more care in certain contexts, and defining both `frontend` and `secret` for the same value in two different schemas will result in an error during schema merging.
|
||||
|
||||
Packages that wish to contribute configuration schema should declare it in a root `"configSchema"` field in `package.json`. The field can either contain an inlined JSON schema, or a relative path to a schema file. Schema files can be in either `.json` or `.d.ts` format.
|
||||
|
||||
TypeScript configuration schema files should export a single `Config` type, for example:
|
||||
|
||||
```ts
|
||||
export interface Config {
|
||||
app: {
|
||||
/**
|
||||
* Frontend root URL
|
||||
* @visibility frontend
|
||||
*/
|
||||
baseUrl: string;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## 0.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/config-loader",
|
||||
"description": "Config loading functionality used by Backstage backend, and CLI",
|
||||
"version": "0.2.0",
|
||||
"version": "0.3.0",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -42,7 +42,7 @@
|
||||
"zen-observable": "^0.8.15"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/test-utils-core": "^0.1.1",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @backstage/core
|
||||
|
||||
## 0.3.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1722cb53c: Added configuration schema
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/core",
|
||||
"description": "Core API used by Backstage plugins and apps",
|
||||
"version": "0.3.0",
|
||||
"version": "0.3.1",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -63,8 +63,8 @@
|
||||
"remark-gfm": "^1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -1,5 +1,110 @@
|
||||
# @backstage/create-app
|
||||
|
||||
## 0.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 7d7abd50c: Add `app-backend` as a backend plugin, and make a single docker build of the backend the default way to deploy backstage.
|
||||
|
||||
Note that the `app-backend` currently only is a solution for deployments of the app, it's not a dev server and is not intended for local development.
|
||||
|
||||
## Template changes
|
||||
|
||||
As a part of installing the `app-backend` plugin, the below changes where made. The changes are grouped into two steps, installing the plugin, and updating the Docker build and configuration.
|
||||
|
||||
### Installing the `app-backend` plugin in the backend
|
||||
|
||||
First, install the `@backstage/plugin-app-backend` plugin package in your backend. These changes where made for `v0.3.0` of the plugin, and the installation process might change in the future. Run the following from the root of the repo:
|
||||
|
||||
```bash
|
||||
cd packages/backend
|
||||
yarn add @backstage/plugin-app-backend
|
||||
```
|
||||
|
||||
For the `app-backend` to get access to the static content in the frontend we also need to add the local `app` package as a dependency. Add the following to your `"dependencies"` in `packages/backend/package.json`, assuming your app package is still named `app` and on version `0.0.0`:
|
||||
|
||||
```json
|
||||
"app": "0.0.0",
|
||||
```
|
||||
|
||||
Don't worry, this will not cause your entire frontend dependency tree to be added to the app, just double check that `packages/app/package.json` has a `"bundled": true` field at top-level. This signals to the backend build process that the package is bundled and that no transitive dependencies should be included.
|
||||
|
||||
Next, create `packages/backend/src/plugins/app.ts` with the following:
|
||||
|
||||
```ts
|
||||
import { createRouter } from '@backstage/plugin-app-backend';
|
||||
import { PluginEnvironment } from '../types';
|
||||
|
||||
export default async function createPlugin({
|
||||
logger,
|
||||
config,
|
||||
}: PluginEnvironment) {
|
||||
return await createRouter({
|
||||
logger,
|
||||
config,
|
||||
appPackageName: 'app',
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
In `packages/backend/src/index.ts`, make the following changes:
|
||||
|
||||
Add an import for the newly created plugin setup file:
|
||||
|
||||
```ts
|
||||
import app from './plugins/app';
|
||||
```
|
||||
|
||||
Setup the following plugin env.
|
||||
|
||||
```ts
|
||||
const appEnv = useHotMemoize(module, () => createEnv('app'));
|
||||
```
|
||||
|
||||
Change service builder setup to include the `app` plugin as follows. Note that the `app` plugin is not installed on the `/api` route with most other plugins.
|
||||
|
||||
```ts
|
||||
const service = createServiceBuilder(module)
|
||||
.loadConfig(config)
|
||||
.addRouter('/api', apiRouter)
|
||||
.addRouter('', await app(appEnv));
|
||||
```
|
||||
|
||||
You should now have the `app-backend` plugin installed in your backend, ready to serve the frontend bundle!
|
||||
|
||||
### Docker build setup
|
||||
|
||||
Since the backend image is now the only one needed for a simple Backstage deployment, the image tag name in the `build-image` script inside `packages/backend/package.json` was changed to the following:
|
||||
|
||||
```json
|
||||
"build-image": "backstage-cli backend:build-image --build --tag backstage",
|
||||
```
|
||||
|
||||
For convenience, a `build-image` script was also added to the root `package.json` with the following:
|
||||
|
||||
```json
|
||||
"build-image": "yarn workspace backend build-image",
|
||||
```
|
||||
|
||||
In the root of the repo, a new `app-config.production.yaml` file was added. This is used to set the appropriate `app.baseUrl` now that the frontend is served directly by the backend in the production deployment. It has the following contents:
|
||||
|
||||
```yaml
|
||||
app:
|
||||
# Should be the same as backend.baseUrl when using the `app-backend` plugin
|
||||
baseUrl: http://localhost:7000
|
||||
|
||||
backend:
|
||||
baseUrl: http://localhost:7000
|
||||
listen:
|
||||
port: 7000
|
||||
```
|
||||
|
||||
In order to load in the new configuration at runtime, the command in the `Dockerfile` at the repo root was changed to the following:
|
||||
|
||||
```dockerfile
|
||||
CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
|
||||
```
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/create-app",
|
||||
"description": "Create app package for Backstage",
|
||||
"version": "0.2.1",
|
||||
"version": "0.2.2",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
@@ -37,29 +37,30 @@
|
||||
"recursive-readdir": "^2.2.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-common": "^0.2.1",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-api-docs": "^0.2.1",
|
||||
"@backstage/plugin-auth-backend": "^0.2.1",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/plugin-catalog-backend": "^0.2.0",
|
||||
"@backstage/plugin-app-backend": "^0.3.0",
|
||||
"@backstage/plugin-auth-backend": "^0.2.2",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/plugin-catalog-backend": "^0.2.1",
|
||||
"@backstage/plugin-circleci": "^0.2.1",
|
||||
"@backstage/plugin-explore": "^0.2.1",
|
||||
"@backstage/plugin-github-actions": "^0.2.1",
|
||||
"@backstage/plugin-lighthouse": "^0.2.1",
|
||||
"@backstage/plugin-proxy-backend": "^0.2.0",
|
||||
"@backstage/plugin-lighthouse": "^0.2.2",
|
||||
"@backstage/plugin-proxy-backend": "^0.2.1",
|
||||
"@backstage/plugin-register-component": "^0.2.1",
|
||||
"@backstage/plugin-rollbar-backend": "^0.1.2",
|
||||
"@backstage/plugin-rollbar-backend": "^0.1.3",
|
||||
"@backstage/plugin-scaffolder": "^0.3.0",
|
||||
"@backstage/plugin-scaffolder-backend": "^0.3.0",
|
||||
"@backstage/plugin-scaffolder-backend": "^0.3.1",
|
||||
"@backstage/plugin-tech-radar": "^0.3.0",
|
||||
"@backstage/plugin-techdocs": "^0.2.1",
|
||||
"@backstage/plugin-techdocs-backend": "^0.2.0",
|
||||
"@backstage/plugin-user-settings": "^0.2.1",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/plugin-techdocs": "^0.2.2",
|
||||
"@backstage/plugin-techdocs-backend": "^0.2.1",
|
||||
"@backstage/plugin-user-settings": "^0.2.2",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@types/fs-extra": "^9.0.1",
|
||||
"@types/inquirer": "^7.3.1",
|
||||
|
||||
@@ -35,6 +35,7 @@ import { version as cli } from '@backstage/cli/package.json';
|
||||
import { version as config } from '@backstage/config/package.json';
|
||||
import { version as core } from '@backstage/core/package.json';
|
||||
import { version as pluginApiDocs } from '@backstage/plugin-api-docs/package.json';
|
||||
import { version as pluginAppBackend } from '@backstage/plugin-app-backend/package.json';
|
||||
import { version as pluginAuthBackend } from '@backstage/plugin-auth-backend/package.json';
|
||||
import { version as pluginCatalog } from '@backstage/plugin-catalog/package.json';
|
||||
import { version as pluginCatalogBackend } from '@backstage/plugin-catalog-backend/package.json';
|
||||
@@ -61,6 +62,7 @@ export const packageVersions = {
|
||||
'@backstage/config': config,
|
||||
'@backstage/core': core,
|
||||
'@backstage/plugin-api-docs': pluginApiDocs,
|
||||
'@backstage/plugin-app-backend': pluginAppBackend,
|
||||
'@backstage/plugin-auth-backend': pluginAuthBackend,
|
||||
'@backstage/plugin-catalog': pluginCatalog,
|
||||
'@backstage/plugin-catalog-backend': pluginCatalogBackend,
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
app:
|
||||
# Should be the same as backend.baseUrl when using the `app-backend` plugin
|
||||
baseUrl: http://localhost:7000
|
||||
|
||||
backend:
|
||||
baseUrl: http://localhost:7000
|
||||
listen:
|
||||
port: 7000
|
||||
@@ -8,6 +8,7 @@
|
||||
"scripts": {
|
||||
"start": "yarn workspace app start",
|
||||
"build": "lerna run build",
|
||||
"build-image": "yarn workspace backend build-image",
|
||||
"tsc": "tsc",
|
||||
"tsc:full": "tsc --skipLibCheck false --incremental false",
|
||||
"clean": "backstage-cli clean && lerna run clean",
|
||||
|
||||
@@ -13,4 +13,4 @@ RUN yarn install --frozen-lockfile --production
|
||||
# Do not use this Dockerfile outside of that command, as it will copy in the source code instead.
|
||||
COPY . .
|
||||
|
||||
CMD ["node", "packages/backend"]
|
||||
CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
},
|
||||
"scripts": {
|
||||
"build": "backstage-cli backend:build",
|
||||
"build-image": "backstage-cli backend:build-image --build --tag example-backend",
|
||||
"build-image": "backstage-cli backend:build-image --build --tag backstage",
|
||||
"start": "backstage-cli backend:dev",
|
||||
"lint": "backstage-cli lint",
|
||||
"test": "backstage-cli test",
|
||||
@@ -17,9 +17,11 @@
|
||||
"migrate:create": "knex migrate:make -x ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"app": "0.0.0",
|
||||
"@backstage/backend-common": "^{{version '@backstage/backend-common'}}",
|
||||
"@backstage/catalog-model": "^{{version '@backstage/catalog-model'}}",
|
||||
"@backstage/config": "^{{version '@backstage/config'}}",
|
||||
"@backstage/plugin-app-backend": "^{{version '@backstage/plugin-app-backend'}}",
|
||||
"@backstage/plugin-auth-backend": "^{{version '@backstage/plugin-auth-backend'}}",
|
||||
"@backstage/plugin-catalog-backend": "^{{version '@backstage/plugin-catalog-backend'}}",
|
||||
"@backstage/plugin-proxy-backend": "^{{version '@backstage/plugin-proxy-backend'}}",
|
||||
|
||||
@@ -18,6 +18,7 @@ import {
|
||||
UrlReaders,
|
||||
} from '@backstage/backend-common';
|
||||
import { Config } from '@backstage/config';
|
||||
import app from './plugins/app';
|
||||
import auth from './plugins/auth';
|
||||
import catalog from './plugins/catalog';
|
||||
import scaffolder from './plugins/scaffolder';
|
||||
@@ -53,6 +54,7 @@ async function main() {
|
||||
const authEnv = useHotMemoize(module, () => createEnv('auth'));
|
||||
const proxyEnv = useHotMemoize(module, () => createEnv('proxy'));
|
||||
const techdocsEnv = useHotMemoize(module, () => createEnv('techdocs'));
|
||||
const appEnv = useHotMemoize(module, () => createEnv('app'));
|
||||
|
||||
const apiRouter = Router();
|
||||
apiRouter.use('/catalog', await catalog(catalogEnv));
|
||||
@@ -64,7 +66,8 @@ async function main() {
|
||||
|
||||
const service = createServiceBuilder(module)
|
||||
.loadConfig(config)
|
||||
.addRouter('/api', apiRouter);
|
||||
.addRouter('/api', apiRouter)
|
||||
.addRouter('', await app(appEnv));
|
||||
|
||||
await service.start().catch(err => {
|
||||
console.log(err);
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
import { createRouter } from '@backstage/plugin-app-backend';
|
||||
import { PluginEnvironment } from '../types';
|
||||
|
||||
export default async function createPlugin({
|
||||
logger,
|
||||
config,
|
||||
}: PluginEnvironment) {
|
||||
return await createRouter({
|
||||
logger,
|
||||
config,
|
||||
appPackageName: 'app',
|
||||
});
|
||||
}
|
||||
@@ -28,7 +28,7 @@ export default async function createPlugin({
|
||||
preparers.register('github', commonGitPreparer);
|
||||
preparers.register('gitlab', commonGitPreparer);
|
||||
|
||||
const publisher = new LocalPublish(logger);
|
||||
const publisher = new LocalPublish(logger, discovery);
|
||||
|
||||
const dockerClient = new Docker();
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/dev-utils
|
||||
|
||||
## 0.1.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [902340451]
|
||||
- @backstage/cli@0.3.0
|
||||
- @backstage/core@0.3.1
|
||||
- @backstage/test-utils@0.1.3
|
||||
|
||||
## 0.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/dev-utils",
|
||||
"description": "Utilities for developing Backstage plugins.",
|
||||
"version": "0.1.3",
|
||||
"version": "0.1.4",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -29,9 +29,9 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# @backstage/integration
|
||||
|
||||
## 0.1.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 7b37e6834: Added the integration package
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/integration",
|
||||
"version": "0.1.0",
|
||||
"version": "0.1.1",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -24,7 +24,7 @@
|
||||
"git-url-parse": "^11.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/jest": "^26.0.7"
|
||||
},
|
||||
"files": [
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @backstage/test-utils
|
||||
|
||||
## 0.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [902340451]
|
||||
- @backstage/cli@0.3.0
|
||||
|
||||
## 0.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/test-utils",
|
||||
"description": "Utilities to test Backstage plugins and apps.",
|
||||
"version": "0.1.2",
|
||||
"version": "0.1.3",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -29,7 +29,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/core-api": "^0.2.0",
|
||||
"@backstage/test-utils-core": "^0.1.1",
|
||||
"@backstage/theme": "^0.2.0",
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
"@material-ui/core": "^4.11.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0"
|
||||
"@backstage/cli": "^0.3.0"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@kyma-project/asyncapi-react": "^0.14.2",
|
||||
"@material-icons/font": "^1.0.2",
|
||||
@@ -39,9 +39,9 @@
|
||||
"swagger-ui-react": "^3.31.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @backstage/plugin-app-backend
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 1722cb53c: Use new config schema support to automatically inject config with frontend visibility, in addition to the existing env schema injection.
|
||||
|
||||
This removes the confusing behavior where configuration was only injected into the app at build time. Any runtime configuration (except for environment config) in the backend used to only apply to the backend itself, and not be injected into the frontend.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- @backstage/backend-common@0.3.0
|
||||
- @backstage/config-loader@0.3.0
|
||||
|
||||
## 0.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-app-backend",
|
||||
"version": "0.2.0",
|
||||
"version": "0.3.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -20,8 +20,8 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.0",
|
||||
"@backstage/config-loader": "^0.2.0",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/config-loader": "^0.3.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@types/express": "^4.17.6",
|
||||
"express": "^4.17.1",
|
||||
@@ -31,7 +31,7 @@
|
||||
"yn": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/supertest": "^2.0.8",
|
||||
"msw": "^0.20.5",
|
||||
"supertest": "^4.0.2"
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @backstage/plugin-auth-backend
|
||||
|
||||
## 0.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- Updated dependencies [717e43de1]
|
||||
- @backstage/backend-common@0.3.0
|
||||
- @backstage/catalog-client@0.3.0
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-auth-backend",
|
||||
"version": "0.2.1",
|
||||
"version": "0.2.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -20,7 +20,8 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.1",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/catalog-client": "^0.3.0",
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@types/express": "^4.17.6",
|
||||
@@ -52,7 +53,7 @@
|
||||
"yn": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/body-parser": "^1.19.0",
|
||||
"@types/cookie-parser": "^1.4.2",
|
||||
"@types/jwt-decode": "2.2.1",
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright 2020 Spotify AB
|
||||
*
|
||||
* 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 { CatalogApi } from '@backstage/catalog-client';
|
||||
import { UserEntity } from '@backstage/catalog-model';
|
||||
import { CatalogIdentityClient } from './CatalogIdentityClient';
|
||||
|
||||
describe('CatalogIdentityClient', () => {
|
||||
const catalogApi: jest.Mocked<CatalogApi> = {
|
||||
getLocationById: jest.fn(),
|
||||
getEntityByName: jest.fn(),
|
||||
getEntities: jest.fn(),
|
||||
addLocation: jest.fn(),
|
||||
getLocationByEntity: jest.fn(),
|
||||
removeEntityByUid: jest.fn(),
|
||||
};
|
||||
|
||||
afterEach(() => jest.resetAllMocks());
|
||||
|
||||
it('passes through the correct search params', async () => {
|
||||
catalogApi.getEntities.mockResolvedValueOnce({ items: [{} as UserEntity] });
|
||||
const client = new CatalogIdentityClient({
|
||||
catalogApi: catalogApi as CatalogApi,
|
||||
});
|
||||
|
||||
client.findUser({ annotations: { key: 'value' } });
|
||||
|
||||
expect(catalogApi.getEntities).toBeCalledWith({
|
||||
filter: {
|
||||
kind: 'user',
|
||||
'metadata.annotations.key': 'value',
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -14,13 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {
|
||||
ConflictError,
|
||||
NotFoundError,
|
||||
PluginEndpointDiscovery,
|
||||
} from '@backstage/backend-common';
|
||||
import { ConflictError, NotFoundError } from '@backstage/backend-common';
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { UserEntity } from '@backstage/catalog-model';
|
||||
import fetch from 'cross-fetch';
|
||||
|
||||
type UserQuery = {
|
||||
annotations: Record<string, string>;
|
||||
@@ -30,10 +26,10 @@ type UserQuery = {
|
||||
* A catalog client tailored for reading out identity data from the catalog.
|
||||
*/
|
||||
export class CatalogIdentityClient {
|
||||
private readonly discovery: PluginEndpointDiscovery;
|
||||
private readonly catalogApi: CatalogApi;
|
||||
|
||||
constructor(options: { discovery: PluginEndpointDiscovery }) {
|
||||
this.discovery = options.discovery;
|
||||
constructor(options: { catalogApi: CatalogApi }) {
|
||||
this.catalogApi = options.catalogApi;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,35 +38,23 @@ export class CatalogIdentityClient {
|
||||
* Throws a NotFoundError or ConflictError if 0 or multiple users are found.
|
||||
*/
|
||||
async findUser(query: UserQuery): Promise<UserEntity> {
|
||||
const conditions = ['kind=user'];
|
||||
const filter: Record<string, string> = {
|
||||
kind: 'user',
|
||||
};
|
||||
for (const [key, value] of Object.entries(query.annotations)) {
|
||||
const uk = encodeURIComponent(key);
|
||||
const uv = encodeURIComponent(value);
|
||||
conditions.push(`metadata.annotations.${uk}=${uv}`);
|
||||
filter[`metadata.annotations.${key}`] = value;
|
||||
}
|
||||
|
||||
const baseUrl = await this.discovery.getBaseUrl('catalog');
|
||||
const response = await fetch(
|
||||
`${baseUrl}/entities?filter=${conditions.join(',')}`,
|
||||
);
|
||||
const { items } = await this.catalogApi.getEntities({ filter });
|
||||
|
||||
if (!response.ok) {
|
||||
const text = await response.text();
|
||||
throw new Error(
|
||||
`Request failed with ${response.status} ${response.statusText}, ${text}`,
|
||||
);
|
||||
}
|
||||
|
||||
const users: UserEntity[] = await response.json();
|
||||
|
||||
if (users.length !== 1) {
|
||||
if (users.length > 1) {
|
||||
if (items.length !== 1) {
|
||||
if (items.length > 1) {
|
||||
throw new ConflictError('User lookup resulted in multiple matches');
|
||||
} else {
|
||||
throw new NotFoundError('User not found');
|
||||
}
|
||||
}
|
||||
|
||||
return users[0];
|
||||
return items[0] as UserEntity;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,29 +15,29 @@
|
||||
*/
|
||||
|
||||
import express from 'express';
|
||||
import { Logger } from 'winston';
|
||||
import passport from 'passport';
|
||||
import { Strategy as GoogleStrategy } from 'passport-google-oauth20';
|
||||
import { Logger } from 'winston';
|
||||
import { CatalogIdentityClient } from '../../lib/catalog';
|
||||
import {
|
||||
encodeState,
|
||||
OAuthAdapter,
|
||||
OAuthEnvironmentHandler,
|
||||
OAuthHandlers,
|
||||
OAuthProviderOptions,
|
||||
OAuthRefreshRequest,
|
||||
OAuthResponse,
|
||||
OAuthStartRequest,
|
||||
} from '../../lib/oauth';
|
||||
import {
|
||||
executeFetchUserProfileStrategy,
|
||||
executeFrameHandlerStrategy,
|
||||
executeRedirectStrategy,
|
||||
executeRefreshTokenStrategy,
|
||||
makeProfileInfo,
|
||||
executeFetchUserProfileStrategy,
|
||||
PassportDoneCallback,
|
||||
} from '../../lib/passport';
|
||||
import { RedirectInfo, AuthProviderFactory } from '../types';
|
||||
import {
|
||||
OAuthAdapter,
|
||||
OAuthHandlers,
|
||||
OAuthProviderOptions,
|
||||
OAuthResponse,
|
||||
OAuthEnvironmentHandler,
|
||||
OAuthStartRequest,
|
||||
encodeState,
|
||||
OAuthRefreshRequest,
|
||||
} from '../../lib/oauth';
|
||||
import passport from 'passport';
|
||||
import { CatalogIdentityClient } from '../../lib/catalog';
|
||||
import { AuthProviderFactory, RedirectInfo } from '../types';
|
||||
|
||||
type PrivateInfo = {
|
||||
refreshToken: string;
|
||||
@@ -179,7 +179,7 @@ export const createGoogleProvider: AuthProviderFactory = ({
|
||||
config,
|
||||
logger,
|
||||
tokenIssuer,
|
||||
discovery,
|
||||
catalogApi,
|
||||
}) =>
|
||||
OAuthEnvironmentHandler.mapConfig(config, envConfig => {
|
||||
const providerId = 'google';
|
||||
@@ -192,7 +192,7 @@ export const createGoogleProvider: AuthProviderFactory = ({
|
||||
clientSecret,
|
||||
callbackUrl,
|
||||
logger,
|
||||
identityClient: new CatalogIdentityClient({ discovery }),
|
||||
identityClient: new CatalogIdentityClient({ catalogApi }),
|
||||
});
|
||||
|
||||
return OAuthAdapter.fromConfig(globalConfig, provider, {
|
||||
|
||||
@@ -14,11 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { PluginEndpointDiscovery } from '@backstage/backend-common';
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { Config } from '@backstage/config';
|
||||
import express from 'express';
|
||||
import { Logger } from 'winston';
|
||||
import { TokenIssuer } from '../identity';
|
||||
import { Config } from '@backstage/config';
|
||||
import { PluginEndpointDiscovery } from '@backstage/backend-common';
|
||||
|
||||
export type AuthProviderConfig = {
|
||||
/**
|
||||
@@ -117,6 +118,7 @@ export type AuthProviderFactoryOptions = {
|
||||
logger: Logger;
|
||||
tokenIssuer: TokenIssuer;
|
||||
discovery: PluginEndpointDiscovery;
|
||||
catalogApi: CatalogApi;
|
||||
};
|
||||
|
||||
export type AuthProviderFactory = (
|
||||
|
||||
@@ -14,18 +14,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import express from 'express';
|
||||
import Router from 'express-promise-router';
|
||||
import cookieParser from 'cookie-parser';
|
||||
import { Logger } from 'winston';
|
||||
import { createAuthProvider } from '../providers';
|
||||
import { Config } from '@backstage/config';
|
||||
import { DatabaseKeyStore, TokenFactory, createOidcRouter } from '../identity';
|
||||
import {
|
||||
NotFoundError,
|
||||
PluginEndpointDiscovery,
|
||||
PluginDatabaseManager,
|
||||
PluginEndpointDiscovery,
|
||||
} from '@backstage/backend-common';
|
||||
import { CatalogClient } from '@backstage/catalog-client';
|
||||
import { Config } from '@backstage/config';
|
||||
import cookieParser from 'cookie-parser';
|
||||
import express from 'express';
|
||||
import Router from 'express-promise-router';
|
||||
import { Logger } from 'winston';
|
||||
import { createOidcRouter, DatabaseKeyStore, TokenFactory } from '../identity';
|
||||
import { createAuthProvider } from '../providers';
|
||||
|
||||
export interface RouterOptions {
|
||||
logger: Logger;
|
||||
@@ -56,6 +57,7 @@ export async function createRouter({
|
||||
keyDurationSeconds,
|
||||
logger: logger.child({ component: 'token-factory' }),
|
||||
});
|
||||
const catalogApi = new CatalogClient({ discoveryApi: discovery });
|
||||
|
||||
router.use(cookieParser());
|
||||
router.use(express.urlencoded({ extended: false }));
|
||||
@@ -73,6 +75,7 @@ export async function createRouter({
|
||||
logger,
|
||||
tokenIssuer,
|
||||
discovery,
|
||||
catalogApi,
|
||||
});
|
||||
|
||||
const r = Router();
|
||||
|
||||
@@ -14,16 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import Knex from 'knex';
|
||||
import { Server } from 'http';
|
||||
import { Logger } from 'winston';
|
||||
import { createRouter } from './router';
|
||||
import {
|
||||
createServiceBuilder,
|
||||
useHotMemoize,
|
||||
loadBackendConfig,
|
||||
SingleHostDiscovery,
|
||||
useHotMemoize,
|
||||
} from '@backstage/backend-common';
|
||||
import { Server } from 'http';
|
||||
import Knex from 'knex';
|
||||
import { Logger } from 'winston';
|
||||
import { createRouter } from './router';
|
||||
|
||||
export interface ServerOptions {
|
||||
logger: Logger;
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/plugin-catalog-backend
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- f531d307c: An entity A, that exists in the catalog, can no longer be overwritten by registering a different location that also tries to supply an entity with the same kind+namespace+name. Writes of that new entity will instead be rejected with a log message similar to `Rejecting write of entity Component:default/artist-lookup from file:/Users/freben/dev/github/backstage/packages/catalog-model/examples/components/artist-lookup-component.yaml because entity existed from github:https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/artist-lookup-component.yaml`
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- @backstage/backend-common@0.3.0
|
||||
|
||||
## 0.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-catalog-backend",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -20,7 +20,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.0",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@octokit/graphql": "^4.5.6",
|
||||
@@ -45,8 +45,8 @@
|
||||
"yup": "^0.29.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@types/core-js": "^2.5.4",
|
||||
"@types/git-url-parse": "^9.0.0",
|
||||
"@types/ldapjs": "^1.0.9",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-catalog-graphql
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- @backstage/backend-common@0.3.0
|
||||
|
||||
## 0.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-catalog-graphql",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -20,7 +20,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.0",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@graphql-modules/core": "^0.7.17",
|
||||
@@ -32,8 +32,8 @@
|
||||
"winston": "^3.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@graphql-codegen/cli": "^1.17.7",
|
||||
"@graphql-codegen/typescript": "^1.17.7",
|
||||
"@graphql-codegen/typescript-resolvers": "^1.17.7",
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/plugin-catalog
|
||||
|
||||
## 0.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 8b7737d0b: Add About Card tooltips
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [717e43de1]
|
||||
- @backstage/core@0.3.1
|
||||
- @backstage/plugin-techdocs@0.2.2
|
||||
- @backstage/catalog-client@0.3.0
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-catalog",
|
||||
"version": "0.2.1",
|
||||
"version": "0.2.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -21,11 +21,11 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-client": "^0.2.0",
|
||||
"@backstage/catalog-client": "^0.3.0",
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-scaffolder": "^0.3.0",
|
||||
"@backstage/plugin-techdocs": "^0.2.1",
|
||||
"@backstage/plugin-techdocs": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -43,9 +43,9 @@
|
||||
"swr": "^0.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/react-hooks": "^3.3.0",
|
||||
|
||||
@@ -119,6 +119,7 @@ export function AboutCard({ entity, variant }: AboutCardProps) {
|
||||
action={
|
||||
<IconButton
|
||||
aria-label="Edit"
|
||||
title="Edit Metadata"
|
||||
onClick={() => {
|
||||
window.open(codeLink.edithref || '#', '_blank');
|
||||
}}
|
||||
@@ -133,7 +134,12 @@ export function AboutCard({ entity, variant }: AboutCardProps) {
|
||||
disabled={
|
||||
!entity.metadata.annotations?.['backstage.io/techdocs-ref']
|
||||
}
|
||||
label="View Techdocs"
|
||||
label="View TechDocs"
|
||||
title={
|
||||
!entity.metadata.annotations?.['backstage.io/techdocs-ref']
|
||||
? 'No TechDocs available'
|
||||
: ''
|
||||
}
|
||||
icon={<DocsIcon />}
|
||||
href={`/docs/${
|
||||
entity.metadata.namespace || ENTITY_DEFAULT_NAMESPACE
|
||||
@@ -142,6 +148,7 @@ export function AboutCard({ entity, variant }: AboutCardProps) {
|
||||
<IconLinkVertical
|
||||
disabled={!entity.spec?.implementsApis}
|
||||
label="View API"
|
||||
title={!entity.spec?.implementsApis ? 'No APIs available' : ''}
|
||||
icon={<ExtensionIcon />}
|
||||
href="api"
|
||||
/>
|
||||
|
||||
@@ -23,6 +23,7 @@ export type IconLinkVerticalProps = {
|
||||
icon?: React.ReactNode;
|
||||
href?: string;
|
||||
disabled?: boolean;
|
||||
title?: string;
|
||||
label: string;
|
||||
};
|
||||
|
||||
@@ -57,6 +58,7 @@ export function IconLinkVertical({
|
||||
<Link
|
||||
className={classnames(classes.link, classes.disabled)}
|
||||
underline="none"
|
||||
title={props.title}
|
||||
{...props}
|
||||
>
|
||||
{icon}
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -38,9 +38,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -39,9 +39,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @backstage/plugin-cost-insights
|
||||
|
||||
## 0.4.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 4040d4fcb: remove cost insights currency feature flag
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1722cb53c: Added configuration schema
|
||||
- 17a9f48f6: remove excessive margin from cost overview banner
|
||||
- f360395d0: UI improvements: Increase width of first column in product entity dialog table
|
||||
UI improvement: Display full cost amount in product entity dialog table
|
||||
- 259d848ee: Fix savings/excess display calculation
|
||||
- Updated dependencies [1722cb53c]
|
||||
- @backstage/core@0.3.1
|
||||
- @backstage/test-utils@0.1.3
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
Vendored
+1
-1
@@ -31,7 +31,7 @@ interface Config {
|
||||
/**
|
||||
* @visibility frontend
|
||||
*/
|
||||
icon: 'compute' | 'data' | 'database' | 'storage' | 'search' | 'ml';
|
||||
icon?: 'compute' | 'data' | 'database' | 'storage' | 'search' | 'ml';
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-cost-insights",
|
||||
"version": "0.3.0",
|
||||
"version": "0.4.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -22,8 +22,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -46,9 +46,9 @@
|
||||
"yup": "^0.29.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -20,7 +20,7 @@ import { Table, TableColumn } from '@backstage/core';
|
||||
import { Dialog, IconButton, Typography } from '@material-ui/core';
|
||||
import { default as CloseButton } from '@material-ui/icons/Close';
|
||||
import { CostGrowthIndicator } from '../CostGrowth';
|
||||
import { currencyFormatter, formatPercent } from '../../utils/formatters';
|
||||
import { costFormatter, formatPercent } from '../../utils/formatters';
|
||||
import { useEntityDialogStyles as useStyles } from '../../utils/styles';
|
||||
import { BarChartOptions, Entity } from '../../types';
|
||||
|
||||
@@ -38,7 +38,7 @@ function createRenderer(col: keyof RowData, classes: Record<string, string>) {
|
||||
case 'current':
|
||||
return (
|
||||
<Typography className={rowStyles}>
|
||||
{currencyFormatter.format(row[col])}
|
||||
{costFormatter.format(row[col])}
|
||||
</Typography>
|
||||
);
|
||||
case 'ratio':
|
||||
@@ -122,6 +122,7 @@ export const ProductEntityDialog = ({
|
||||
title: <Typography className={firstColClasses}>SKU</Typography>,
|
||||
render: createRenderer('sku', classes),
|
||||
customSort: createSorter('sku'),
|
||||
width: '33.33%',
|
||||
},
|
||||
{
|
||||
field: 'previous',
|
||||
|
||||
@@ -24,6 +24,11 @@ export type Period = {
|
||||
periodEnd: string;
|
||||
};
|
||||
|
||||
export const costFormatter = new Intl.NumberFormat('en-US', {
|
||||
style: 'currency',
|
||||
currency: 'USD',
|
||||
});
|
||||
|
||||
export const currencyFormatter = new Intl.NumberFormat('en-US', {
|
||||
style: 'currency',
|
||||
currency: 'USD',
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"start": "backstage-cli plugin:serve"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -33,9 +33,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -31,9 +31,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/core-api": "^0.2.1",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -40,9 +40,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -32,9 +32,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -43,9 +43,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/plugin-graphql-backend
|
||||
|
||||
## 0.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- @backstage/backend-common@0.3.0
|
||||
- @backstage/plugin-catalog-graphql@0.2.1
|
||||
|
||||
## 0.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-graphql-backend",
|
||||
"version": "0.1.2",
|
||||
"version": "0.1.3",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -19,9 +19,9 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.0",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/plugin-catalog-graphql": "^0.2.0",
|
||||
"@backstage/plugin-catalog-graphql": "^0.2.1",
|
||||
"@graphql-modules/core": "^0.7.17",
|
||||
"@types/express": "^4.17.6",
|
||||
"apollo-server": "^2.16.1",
|
||||
@@ -35,7 +35,7 @@
|
||||
"yn": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/supertest": "^2.0.8",
|
||||
"eslint-plugin-graphql": "^4.0.0",
|
||||
"msw": "^0.20.5",
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -36,9 +36,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-kubernetes-backend
|
||||
|
||||
## 0.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- @backstage/backend-common@0.3.0
|
||||
|
||||
## 0.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-kubernetes-backend",
|
||||
"version": "0.1.2",
|
||||
"version": "0.1.3",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -20,7 +20,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.0",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@kubernetes/client-node": "^0.12.1",
|
||||
"@types/express": "^4.17.6",
|
||||
@@ -37,7 +37,7 @@
|
||||
"yn": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"supertest": "^4.0.2"
|
||||
},
|
||||
"files": [
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/plugin-kubernetes-backend": "^0.1.2",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-kubernetes-backend": "^0.1.3",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@kubernetes/client-node": "^0.12.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
@@ -35,9 +35,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-lighthouse
|
||||
|
||||
## 0.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1722cb53c: Added configuration schema
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [8b7737d0b]
|
||||
- @backstage/core@0.3.1
|
||||
- @backstage/plugin-catalog@0.2.2
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-lighthouse",
|
||||
"version": "0.2.1",
|
||||
"version": "0.2.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -23,9 +23,9 @@
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/core-api": "^0.2.1",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -34,14 +34,13 @@
|
||||
"@types/react": "^16.9",
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1",
|
||||
"react-markdown": "^4.3.1",
|
||||
"react-router-dom": "6.0.0-beta.0",
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
*/
|
||||
import React, { useState } from 'react';
|
||||
import { useLocalStorage } from 'react-use';
|
||||
import Markdown from 'react-markdown';
|
||||
import { ContentHeader, InfoCard } from '@backstage/core';
|
||||
import { ContentHeader, InfoCard, MarkdownContent } from '@backstage/core';
|
||||
import { makeStyles, Button, Grid, Tabs, Tab } from '@material-ui/core';
|
||||
import CloseIcon from '@material-ui/icons/Close';
|
||||
|
||||
@@ -116,8 +115,8 @@ function GettingStartedCard() {
|
||||
</>
|
||||
}
|
||||
>
|
||||
{value === 0 && <Markdown source={USE_CASES} />}
|
||||
{value === 1 && <Markdown source={SETUP} />}
|
||||
{value === 0 && <MarkdownContent content={USE_CASES} />}
|
||||
{value === 1 && <MarkdownContent content={SETUP} />}
|
||||
</InfoCard>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -31,9 +31,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-proxy-backend
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- @backstage/backend-common@0.3.0
|
||||
|
||||
## 0.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-proxy-backend",
|
||||
"version": "0.2.0",
|
||||
"version": "0.2.1",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -19,7 +19,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.0",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@types/express": "^4.17.6",
|
||||
"express": "^4.17.1",
|
||||
@@ -33,7 +33,7 @@
|
||||
"yup": "^0.29.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/http-proxy-middleware": "^0.19.3",
|
||||
"@types/supertest": "^2.0.8",
|
||||
"@types/uuid": "^8.0.0",
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -36,9 +36,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/user-event": "^12.0.7",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-rollbar-backend
|
||||
|
||||
## 0.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- @backstage/backend-common@0.3.0
|
||||
|
||||
## 0.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-rollbar-backend",
|
||||
"version": "0.1.2",
|
||||
"version": "0.1.3",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -20,7 +20,7 @@
|
||||
"clean": "backstage-cli clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.2.0",
|
||||
"@backstage/backend-common": "^0.3.0",
|
||||
"@backstage/config": "^0.1.1",
|
||||
"@types/express": "^4.17.6",
|
||||
"axios": "^0.20.0",
|
||||
@@ -37,7 +37,7 @@
|
||||
"yn": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@types/supertest": "^2.0.8",
|
||||
"supertest": "^4.0.2"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/plugin-rollbar
|
||||
|
||||
## 0.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1722cb53c: Added configuration schema
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [8b7737d0b]
|
||||
- @backstage/core@0.3.1
|
||||
- @backstage/plugin-catalog@0.2.2
|
||||
|
||||
## 0.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@backstage/plugin-rollbar",
|
||||
"version": "0.2.1",
|
||||
"version": "0.2.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -22,8 +22,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^0.2.0",
|
||||
"@backstage/core": "^0.3.0",
|
||||
"@backstage/plugin-catalog": "^0.2.1",
|
||||
"@backstage/core": "^0.3.1",
|
||||
"@backstage/plugin-catalog": "^0.2.2",
|
||||
"@backstage/theme": "^0.2.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -37,9 +37,9 @@
|
||||
"react-use": "^15.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.2.0",
|
||||
"@backstage/dev-utils": "^0.1.3",
|
||||
"@backstage/test-utils": "^0.1.2",
|
||||
"@backstage/cli": "^0.3.0",
|
||||
"@backstage/dev-utils": "^0.1.4",
|
||||
"@backstage/test-utils": "^0.1.3",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^10.4.1",
|
||||
"@testing-library/react-hooks": "^3.3.0",
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/plugin-scaffolder-backend
|
||||
|
||||
## 0.3.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- d33f5157c: Extracted pushToRemote function for reuse between publishers
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [1722cb53c]
|
||||
- Updated dependencies [7b37e6834]
|
||||
- Updated dependencies [8e2effb53]
|
||||
- @backstage/backend-common@0.3.0
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user