Merge branch 'master' into feature/EKSCatalog
Signed-off-by: Jonah Back <jonah@jonahback.com>
This commit is contained in:
@@ -1,5 +1,22 @@
|
||||
# @backstage/app-defaults
|
||||
|
||||
## 1.0.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.10.0-next.2
|
||||
- @backstage/theme@0.2.16-next.1
|
||||
|
||||
## 1.0.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.6-next.1
|
||||
- @backstage/theme@0.2.16-next.0
|
||||
- @backstage/plugin-permission-react@0.4.3-next.0
|
||||
|
||||
## 1.0.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/app-defaults",
|
||||
"description": "Provides the default wiring of a Backstage App",
|
||||
"version": "1.0.4-next.0",
|
||||
"version": "1.0.4-next.2",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -33,11 +33,11 @@
|
||||
"start": "backstage-cli package start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/core-components": "^0.9.6-next.0",
|
||||
"@backstage/core-components": "^0.10.0-next.2",
|
||||
"@backstage/core-app-api": "^1.0.4-next.0",
|
||||
"@backstage/core-plugin-api": "^1.0.3",
|
||||
"@backstage/plugin-permission-react": "^0.4.2",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@backstage/plugin-permission-react": "^0.4.3-next.0",
|
||||
"@backstage/theme": "^0.2.16-next.1",
|
||||
"@material-ui/core": "^4.12.2",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
"react-router-dom": "6.0.0-beta.0"
|
||||
@@ -46,8 +46,8 @@
|
||||
"react": "^16.13.1 || ^17.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^12.1.3",
|
||||
"@types/jest": "^26.0.7",
|
||||
|
||||
@@ -1,5 +1,117 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.73-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-cost-insights@0.11.29-next.2
|
||||
- @backstage/core-components@0.10.0-next.2
|
||||
- @backstage/plugin-scaffolder@1.4.0-next.2
|
||||
- @backstage/plugin-jenkins@0.7.6-next.2
|
||||
- @backstage/catalog-model@1.1.0-next.2
|
||||
- @backstage/plugin-search-react@0.2.2-next.2
|
||||
- @backstage/theme@0.2.16-next.1
|
||||
- @backstage/plugin-catalog-import@0.8.10-next.2
|
||||
- @backstage/plugin-techdocs@1.2.1-next.2
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.2-next.2
|
||||
- @backstage/plugin-api-docs@0.8.7-next.2
|
||||
- @backstage/plugin-catalog@1.4.0-next.2
|
||||
- @backstage/cli@0.18.0-next.2
|
||||
- @backstage/plugin-catalog-react@1.1.2-next.2
|
||||
- @backstage/app-defaults@1.0.4-next.2
|
||||
- @backstage/integration-react@1.1.2-next.2
|
||||
- @backstage/plugin-airbrake@0.3.7-next.2
|
||||
- @backstage/plugin-apache-airflow@0.2.0-next.2
|
||||
- @backstage/plugin-azure-devops@0.1.23-next.2
|
||||
- @backstage/plugin-badges@0.2.31-next.2
|
||||
- @backstage/plugin-catalog-graph@0.2.19-next.2
|
||||
- @backstage/plugin-circleci@0.3.7-next.2
|
||||
- @backstage/plugin-cloudbuild@0.3.7-next.2
|
||||
- @backstage/plugin-code-coverage@0.1.34-next.2
|
||||
- @backstage/plugin-dynatrace@0.1.1-next.2
|
||||
- @backstage/plugin-explore@0.3.38-next.2
|
||||
- @backstage/plugin-gcalendar@0.3.3-next.2
|
||||
- @backstage/plugin-gcp-projects@0.3.26-next.2
|
||||
- @backstage/plugin-github-actions@0.5.7-next.2
|
||||
- @backstage/plugin-gocd@0.1.13-next.2
|
||||
- @backstage/plugin-graphiql@0.2.39-next.2
|
||||
- @backstage/plugin-home@0.4.23-next.2
|
||||
- @backstage/plugin-kafka@0.3.7-next.2
|
||||
- @backstage/plugin-kubernetes@0.6.7-next.2
|
||||
- @backstage/plugin-lighthouse@0.3.7-next.2
|
||||
- @backstage/plugin-newrelic@0.3.25-next.2
|
||||
- @backstage/plugin-newrelic-dashboard@0.1.15-next.2
|
||||
- @backstage/plugin-org@0.5.7-next.2
|
||||
- @backstage/plugin-pagerduty@0.5.0-next.2
|
||||
- @backstage/plugin-rollbar@0.4.7-next.2
|
||||
- @backstage/plugin-search@0.9.1-next.2
|
||||
- @backstage/plugin-sentry@0.3.45-next.2
|
||||
- @backstage/plugin-shortcuts@0.2.8-next.2
|
||||
- @backstage/plugin-stack-overflow@0.1.3-next.2
|
||||
- @backstage/plugin-tech-insights@0.2.3-next.2
|
||||
- @backstage/plugin-tech-radar@0.5.14-next.2
|
||||
- @backstage/plugin-techdocs-react@1.0.2-next.1
|
||||
- @backstage/plugin-todo@0.2.9-next.2
|
||||
- @backstage/plugin-user-settings@0.4.6-next.2
|
||||
|
||||
## 0.2.73-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.6-next.1
|
||||
- @backstage/cli@0.18.0-next.1
|
||||
- @backstage/plugin-apache-airflow@0.2.0-next.1
|
||||
- @backstage/catalog-model@1.1.0-next.1
|
||||
- @backstage/plugin-search@0.9.1-next.1
|
||||
- @backstage/plugin-org@0.5.7-next.1
|
||||
- @backstage/plugin-catalog@1.3.1-next.1
|
||||
- @backstage/plugin-home@0.4.23-next.1
|
||||
- @backstage/plugin-stack-overflow@0.1.3-next.1
|
||||
- @backstage/theme@0.2.16-next.0
|
||||
- @backstage/plugin-techdocs@1.2.1-next.1
|
||||
- @backstage/app-defaults@1.0.4-next.1
|
||||
- @backstage/integration-react@1.1.2-next.1
|
||||
- @backstage/plugin-airbrake@0.3.7-next.1
|
||||
- @backstage/plugin-api-docs@0.8.7-next.1
|
||||
- @backstage/plugin-azure-devops@0.1.23-next.1
|
||||
- @backstage/plugin-badges@0.2.31-next.1
|
||||
- @backstage/plugin-catalog-common@1.0.4-next.0
|
||||
- @backstage/plugin-catalog-graph@0.2.19-next.1
|
||||
- @backstage/plugin-catalog-import@0.8.10-next.1
|
||||
- @backstage/plugin-catalog-react@1.1.2-next.1
|
||||
- @backstage/plugin-circleci@0.3.7-next.1
|
||||
- @backstage/plugin-cloudbuild@0.3.7-next.1
|
||||
- @backstage/plugin-code-coverage@0.1.34-next.1
|
||||
- @backstage/plugin-cost-insights@0.11.29-next.1
|
||||
- @backstage/plugin-dynatrace@0.1.1-next.1
|
||||
- @backstage/plugin-explore@0.3.38-next.1
|
||||
- @backstage/plugin-gcalendar@0.3.3-next.1
|
||||
- @backstage/plugin-gcp-projects@0.3.26-next.1
|
||||
- @backstage/plugin-github-actions@0.5.7-next.1
|
||||
- @backstage/plugin-gocd@0.1.13-next.1
|
||||
- @backstage/plugin-graphiql@0.2.39-next.1
|
||||
- @backstage/plugin-jenkins@0.7.6-next.1
|
||||
- @backstage/plugin-kafka@0.3.7-next.1
|
||||
- @backstage/plugin-kubernetes@0.6.7-next.1
|
||||
- @backstage/plugin-lighthouse@0.3.7-next.1
|
||||
- @backstage/plugin-newrelic@0.3.25-next.1
|
||||
- @backstage/plugin-newrelic-dashboard@0.1.15-next.1
|
||||
- @backstage/plugin-pagerduty@0.5.0-next.1
|
||||
- @backstage/plugin-permission-react@0.4.3-next.0
|
||||
- @backstage/plugin-rollbar@0.4.7-next.1
|
||||
- @backstage/plugin-scaffolder@1.4.0-next.1
|
||||
- @backstage/plugin-search-common@0.3.6-next.0
|
||||
- @backstage/plugin-sentry@0.3.45-next.1
|
||||
- @backstage/plugin-shortcuts@0.2.8-next.1
|
||||
- @backstage/plugin-tech-insights@0.2.3-next.1
|
||||
- @backstage/plugin-tech-radar@0.5.14-next.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.2-next.1
|
||||
- @backstage/plugin-todo@0.2.9-next.1
|
||||
- @backstage/plugin-user-settings@0.4.6-next.1
|
||||
- @backstage/plugin-search-react@0.2.2-next.1
|
||||
|
||||
## 0.2.73-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
+54
-54
@@ -1,67 +1,67 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.73-next.0",
|
||||
"version": "0.2.73-next.2",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
},
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"@backstage/app-defaults": "^1.0.4-next.0",
|
||||
"@backstage/catalog-model": "^1.1.0-next.0",
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/app-defaults": "^1.0.4-next.2",
|
||||
"@backstage/catalog-model": "^1.1.0-next.2",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/core-app-api": "^1.0.4-next.0",
|
||||
"@backstage/core-components": "^0.9.6-next.0",
|
||||
"@backstage/core-components": "^0.10.0-next.2",
|
||||
"@backstage/core-plugin-api": "^1.0.3",
|
||||
"@backstage/integration-react": "^1.1.2-next.0",
|
||||
"@backstage/plugin-airbrake": "^0.3.7-next.0",
|
||||
"@backstage/plugin-api-docs": "^0.8.7-next.0",
|
||||
"@backstage/plugin-azure-devops": "^0.1.23-next.0",
|
||||
"@backstage/plugin-apache-airflow": "^0.1.15-next.0",
|
||||
"@backstage/plugin-badges": "^0.2.31-next.0",
|
||||
"@backstage/plugin-catalog": "^1.3.1-next.0",
|
||||
"@backstage/plugin-catalog-common": "^1.0.3",
|
||||
"@backstage/plugin-catalog-graph": "^0.2.19-next.0",
|
||||
"@backstage/plugin-catalog-import": "^0.8.10-next.0",
|
||||
"@backstage/plugin-catalog-react": "^1.1.2-next.0",
|
||||
"@backstage/plugin-circleci": "^0.3.7-next.0",
|
||||
"@backstage/plugin-cloudbuild": "^0.3.7-next.0",
|
||||
"@backstage/plugin-code-coverage": "^0.1.34-next.0",
|
||||
"@backstage/plugin-cost-insights": "^0.11.29-next.0",
|
||||
"@backstage/plugin-dynatrace": "^0.1.1-next.0",
|
||||
"@backstage/plugin-explore": "^0.3.38-next.0",
|
||||
"@backstage/plugin-gcalendar": "^0.3.3-next.0",
|
||||
"@backstage/plugin-gcp-projects": "^0.3.26-next.0",
|
||||
"@backstage/plugin-github-actions": "^0.5.7-next.0",
|
||||
"@backstage/plugin-gocd": "^0.1.13-next.0",
|
||||
"@backstage/plugin-graphiql": "^0.2.39-next.0",
|
||||
"@backstage/plugin-home": "^0.4.23-next.0",
|
||||
"@backstage/plugin-jenkins": "^0.7.6-next.0",
|
||||
"@backstage/plugin-kafka": "^0.3.7-next.0",
|
||||
"@backstage/plugin-kubernetes": "^0.6.7-next.0",
|
||||
"@backstage/plugin-lighthouse": "^0.3.7-next.0",
|
||||
"@backstage/plugin-newrelic": "^0.3.25-next.0",
|
||||
"@backstage/plugin-newrelic-dashboard": "^0.1.15-next.0",
|
||||
"@backstage/plugin-org": "^0.5.7-next.0",
|
||||
"@backstage/plugin-pagerduty": "0.5.0-next.0",
|
||||
"@backstage/plugin-permission-react": "^0.4.2",
|
||||
"@backstage/plugin-rollbar": "^0.4.7-next.0",
|
||||
"@backstage/plugin-scaffolder": "^1.4.0-next.0",
|
||||
"@backstage/plugin-search": "^0.9.1-next.0",
|
||||
"@backstage/plugin-search-react": "^0.2.2-next.0",
|
||||
"@backstage/plugin-search-common": "^0.3.5",
|
||||
"@backstage/plugin-sentry": "^0.3.45-next.0",
|
||||
"@backstage/plugin-shortcuts": "^0.2.8-next.0",
|
||||
"@backstage/plugin-stack-overflow": "^0.1.3-next.0",
|
||||
"@backstage/plugin-tech-radar": "^0.5.14-next.0",
|
||||
"@backstage/plugin-techdocs": "^1.2.1-next.0",
|
||||
"@backstage/plugin-techdocs-react": "^1.0.2-next.0",
|
||||
"@backstage/plugin-techdocs-module-addons-contrib": "^1.0.2-next.0",
|
||||
"@backstage/plugin-todo": "^0.2.9-next.0",
|
||||
"@backstage/plugin-user-settings": "^0.4.6-next.0",
|
||||
"@backstage/plugin-tech-insights": "^0.2.3-next.0",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@backstage/integration-react": "^1.1.2-next.2",
|
||||
"@backstage/plugin-airbrake": "^0.3.7-next.2",
|
||||
"@backstage/plugin-api-docs": "^0.8.7-next.2",
|
||||
"@backstage/plugin-azure-devops": "^0.1.23-next.2",
|
||||
"@backstage/plugin-apache-airflow": "^0.2.0-next.2",
|
||||
"@backstage/plugin-badges": "^0.2.31-next.2",
|
||||
"@backstage/plugin-catalog": "^1.4.0-next.2",
|
||||
"@backstage/plugin-catalog-common": "^1.0.4-next.0",
|
||||
"@backstage/plugin-catalog-graph": "^0.2.19-next.2",
|
||||
"@backstage/plugin-catalog-import": "^0.8.10-next.2",
|
||||
"@backstage/plugin-catalog-react": "^1.1.2-next.2",
|
||||
"@backstage/plugin-circleci": "^0.3.7-next.2",
|
||||
"@backstage/plugin-cloudbuild": "^0.3.7-next.2",
|
||||
"@backstage/plugin-code-coverage": "^0.1.34-next.2",
|
||||
"@backstage/plugin-cost-insights": "^0.11.29-next.2",
|
||||
"@backstage/plugin-dynatrace": "^0.1.1-next.2",
|
||||
"@backstage/plugin-explore": "^0.3.38-next.2",
|
||||
"@backstage/plugin-gcalendar": "^0.3.3-next.2",
|
||||
"@backstage/plugin-gcp-projects": "^0.3.26-next.2",
|
||||
"@backstage/plugin-github-actions": "^0.5.7-next.2",
|
||||
"@backstage/plugin-gocd": "^0.1.13-next.2",
|
||||
"@backstage/plugin-graphiql": "^0.2.39-next.2",
|
||||
"@backstage/plugin-home": "^0.4.23-next.2",
|
||||
"@backstage/plugin-jenkins": "^0.7.6-next.2",
|
||||
"@backstage/plugin-kafka": "^0.3.7-next.2",
|
||||
"@backstage/plugin-kubernetes": "^0.6.7-next.2",
|
||||
"@backstage/plugin-lighthouse": "^0.3.7-next.2",
|
||||
"@backstage/plugin-newrelic": "^0.3.25-next.2",
|
||||
"@backstage/plugin-newrelic-dashboard": "^0.1.15-next.2",
|
||||
"@backstage/plugin-org": "^0.5.7-next.2",
|
||||
"@backstage/plugin-pagerduty": "0.5.0-next.2",
|
||||
"@backstage/plugin-permission-react": "^0.4.3-next.0",
|
||||
"@backstage/plugin-rollbar": "^0.4.7-next.2",
|
||||
"@backstage/plugin-scaffolder": "^1.4.0-next.2",
|
||||
"@backstage/plugin-search": "^0.9.1-next.2",
|
||||
"@backstage/plugin-search-react": "^0.2.2-next.2",
|
||||
"@backstage/plugin-search-common": "^0.3.6-next.0",
|
||||
"@backstage/plugin-sentry": "^0.3.45-next.2",
|
||||
"@backstage/plugin-shortcuts": "^0.2.8-next.2",
|
||||
"@backstage/plugin-stack-overflow": "^0.1.3-next.2",
|
||||
"@backstage/plugin-tech-radar": "^0.5.14-next.2",
|
||||
"@backstage/plugin-techdocs": "^1.2.1-next.2",
|
||||
"@backstage/plugin-techdocs-react": "^1.0.2-next.1",
|
||||
"@backstage/plugin-techdocs-module-addons-contrib": "^1.0.2-next.2",
|
||||
"@backstage/plugin-todo": "^0.2.9-next.2",
|
||||
"@backstage/plugin-user-settings": "^0.4.6-next.2",
|
||||
"@backstage/plugin-tech-insights": "^0.2.3-next.2",
|
||||
"@backstage/theme": "^0.2.16-next.1",
|
||||
"@material-ui/core": "^4.12.2",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
"@material-ui/lab": "4.0.0-alpha.57",
|
||||
@@ -81,7 +81,7 @@
|
||||
"zen-observable": "^0.8.15"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@rjsf/core": "^3.2.1",
|
||||
"@testing-library/cypress": "^8.0.2",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
|
||||
@@ -167,7 +167,12 @@ const EntityLayoutWrapper = (props: { children?: ReactNode }) => {
|
||||
|
||||
return (
|
||||
<>
|
||||
<EntityLayout UNSTABLE_extraContextMenuItems={extraMenuItems}>
|
||||
<EntityLayout
|
||||
UNSTABLE_extraContextMenuItems={extraMenuItems}
|
||||
UNSTABLE_contextMenuOptions={{
|
||||
disableUnregister: 'visible',
|
||||
}}
|
||||
>
|
||||
{props.children}
|
||||
</EntityLayout>
|
||||
<EntityBadgesDialog
|
||||
|
||||
@@ -49,10 +49,19 @@ const clockConfigs: ClockConfig[] = [
|
||||
},
|
||||
];
|
||||
|
||||
const timeFormat: Intl.DateTimeFormatOptions = {
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
hour12: false,
|
||||
};
|
||||
|
||||
export const homePage = (
|
||||
<Page themeId="home">
|
||||
<Header title={<WelcomeTitle />} pageTitleOverride="Home">
|
||||
<HeaderWorldClock clockConfigs={clockConfigs} />
|
||||
<HeaderWorldClock
|
||||
clockConfigs={clockConfigs}
|
||||
customTimeFormat={timeFormat}
|
||||
/>
|
||||
</Header>
|
||||
<Content>
|
||||
<Grid container spacing={3}>
|
||||
|
||||
@@ -1,5 +1,32 @@
|
||||
# @backstage/backend-common
|
||||
|
||||
## 0.14.1-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 679b32172e: Updated dependency `knex` 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
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/integration@1.2.2-next.2
|
||||
|
||||
## 0.14.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 0fc57887e8: Improve plural handling in logging output for secrets
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.1.0-next.0
|
||||
- @backstage/integration@1.2.2-next.1
|
||||
- @backstage/config-loader@1.1.3-next.0
|
||||
|
||||
## 0.14.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-common",
|
||||
"description": "Common functionality library for Backstage backends",
|
||||
"version": "0.14.1-next.0",
|
||||
"version": "0.14.1-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"private": false,
|
||||
@@ -36,9 +36,9 @@
|
||||
"dependencies": {
|
||||
"@backstage/cli-common": "^0.1.9",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/config-loader": "^1.1.2",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/integration": "^1.2.2-next.0",
|
||||
"@backstage/config-loader": "^1.1.3-next.0",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"@backstage/integration": "^1.2.2-next.2",
|
||||
"@backstage/types": "^1.0.0",
|
||||
"@google-cloud/storage": "^6.0.0",
|
||||
"@manypkg/get-packages": "^1.1.3",
|
||||
@@ -58,14 +58,14 @@
|
||||
"express": "^4.17.1",
|
||||
"express-promise-router": "^4.1.0",
|
||||
"fs-extra": "10.1.0",
|
||||
"git-url-parse": "^11.6.0",
|
||||
"git-url-parse": "^12.0.0",
|
||||
"helmet": "^5.0.2",
|
||||
"isomorphic-git": "^1.8.0",
|
||||
"jose": "^4.6.0",
|
||||
"keyv": "^4.0.3",
|
||||
"keyv-memcache": "^1.2.5",
|
||||
"@keyv/redis": "^2.2.3",
|
||||
"knex": "^1.0.2",
|
||||
"knex": "^2.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"logform": "^2.3.2",
|
||||
"luxon": "^2.3.1",
|
||||
@@ -91,8 +91,8 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-test-utils": "^0.1.26-next.0",
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/backend-test-utils": "^0.1.26-next.2",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@types/archiver": "^5.1.0",
|
||||
"@types/base64-stream": "^1.0.2",
|
||||
"@types/compression": "^1.7.0",
|
||||
@@ -112,7 +112,7 @@
|
||||
"better-sqlite3": "^7.5.0",
|
||||
"http-errors": "^2.0.0",
|
||||
"mock-fs": "^5.1.0",
|
||||
"msw": "^0.42.0",
|
||||
"msw": "^0.43.0",
|
||||
"mysql2": "^2.2.5",
|
||||
"recursive-readdir": "^2.2.2",
|
||||
"supertest": "^6.1.3"
|
||||
|
||||
@@ -251,7 +251,7 @@ export class DatabaseManager {
|
||||
// include base connection if client type has not been overridden
|
||||
...(overridden ? {} : baseConnection),
|
||||
...connection,
|
||||
};
|
||||
} as Partial<Knex.StaticConnectionConfig>;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
# @backstage/backend-tasks
|
||||
|
||||
## 0.3.3-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 679b32172e: Updated dependency `knex` to `^2.0.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.14.1-next.2
|
||||
|
||||
## 0.3.3-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.14.1-next.1
|
||||
- @backstage/errors@1.1.0-next.0
|
||||
|
||||
## 0.3.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-tasks",
|
||||
"description": "Common distributed task management library for Backstage backends",
|
||||
"version": "0.3.3-next.0",
|
||||
"version": "0.3.3-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"private": false,
|
||||
@@ -33,13 +33,13 @@
|
||||
"start": "backstage-cli package start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.14.1-next.0",
|
||||
"@backstage/backend-common": "^0.14.1-next.2",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"@backstage/types": "^1.0.0",
|
||||
"@types/luxon": "^2.0.4",
|
||||
"cron": "^2.0.0",
|
||||
"knex": "^1.0.2",
|
||||
"knex": "^2.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
"luxon": "^2.0.2",
|
||||
"node-abort-controller": "^3.0.1",
|
||||
@@ -48,8 +48,8 @@
|
||||
"zod": "^3.9.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-test-utils": "^0.1.26-next.0",
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/backend-test-utils": "^0.1.26-next.2",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@types/cron": "^2.0.0",
|
||||
"wait-for-expect": "^3.0.2"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @backstage/backend-test-utils
|
||||
|
||||
## 0.1.26-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 679b32172e: Updated dependency `knex` to `^2.0.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.14.1-next.2
|
||||
- @backstage/cli@0.18.0-next.2
|
||||
|
||||
## 0.1.26-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/cli@0.18.0-next.1
|
||||
- @backstage/backend-common@0.14.1-next.1
|
||||
|
||||
## 0.1.26-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-test-utils",
|
||||
"description": "Test helpers library for Backstage backends",
|
||||
"version": "0.1.26-next.0",
|
||||
"version": "0.1.26-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"private": false,
|
||||
@@ -34,19 +34,19 @@
|
||||
"start": "backstage-cli package start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.14.1-next.0",
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/backend-common": "^0.14.1-next.2",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"better-sqlite3": "^7.5.0",
|
||||
"knex": "^1.0.2",
|
||||
"msw": "^0.42.0",
|
||||
"knex": "^2.0.0",
|
||||
"msw": "^0.43.0",
|
||||
"mysql2": "^2.2.5",
|
||||
"pg": "^8.3.0",
|
||||
"testcontainers": "^8.1.2",
|
||||
"uuid": "^8.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0"
|
||||
"@backstage/cli": "^0.18.0-next.2"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -1,5 +1,62 @@
|
||||
# example-backend
|
||||
|
||||
## 0.2.73-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-kubernetes-backend@0.7.0-next.2
|
||||
- @backstage/plugin-tech-insights-backend@0.5.0-next.2
|
||||
- @backstage/plugin-jenkins-backend@0.1.24-next.2
|
||||
- @backstage/plugin-search-backend-module-pg@0.3.5-next.2
|
||||
- @backstage/plugin-scaffolder-backend@1.4.0-next.2
|
||||
- @backstage/plugin-auth-backend@0.15.0-next.2
|
||||
- @backstage/catalog-model@1.1.0-next.2
|
||||
- @backstage/plugin-kafka-backend@0.2.27-next.2
|
||||
- @backstage/backend-common@0.14.1-next.2
|
||||
- @backstage/backend-tasks@0.3.3-next.2
|
||||
- @backstage/plugin-app-backend@0.3.34-next.2
|
||||
- @backstage/plugin-catalog-backend@1.2.1-next.2
|
||||
- @backstage/plugin-code-coverage-backend@0.1.32-next.2
|
||||
- @backstage/plugin-techdocs-backend@1.2.0-next.2
|
||||
- @backstage/plugin-badges-backend@0.1.28-next.2
|
||||
- @backstage/integration@1.2.2-next.2
|
||||
- example-app@0.2.73-next.2
|
||||
|
||||
## 0.2.73-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-backend@1.4.0-next.1
|
||||
- @backstage/plugin-auth-backend@0.15.0-next.1
|
||||
- @backstage/catalog-model@1.1.0-next.1
|
||||
- @backstage/backend-common@0.14.1-next.1
|
||||
- @backstage/plugin-search-backend-module-elasticsearch@0.2.0-next.1
|
||||
- @backstage/plugin-catalog-backend@1.2.1-next.1
|
||||
- @backstage/plugin-techdocs-backend@1.2.0-next.1
|
||||
- example-app@0.2.73-next.1
|
||||
- @backstage/backend-tasks@0.3.3-next.1
|
||||
- @backstage/catalog-client@1.0.4-next.1
|
||||
- @backstage/integration@1.2.2-next.1
|
||||
- @backstage/plugin-app-backend@0.3.34-next.1
|
||||
- @backstage/plugin-auth-node@0.2.3-next.1
|
||||
- @backstage/plugin-badges-backend@0.1.28-next.1
|
||||
- @backstage/plugin-code-coverage-backend@0.1.32-next.1
|
||||
- @backstage/plugin-jenkins-backend@0.1.24-next.1
|
||||
- @backstage/plugin-kafka-backend@0.2.27-next.1
|
||||
- @backstage/plugin-kubernetes-backend@0.7.0-next.1
|
||||
- @backstage/plugin-permission-backend@0.5.9-next.1
|
||||
- @backstage/plugin-permission-common@0.6.3-next.0
|
||||
- @backstage/plugin-permission-node@0.6.3-next.1
|
||||
- @backstage/plugin-scaffolder-backend-module-rails@0.4.2-next.1
|
||||
- @backstage/plugin-search-backend@0.5.4-next.1
|
||||
- @backstage/plugin-search-backend-module-pg@0.3.5-next.1
|
||||
- @backstage/plugin-search-backend-node@0.6.3-next.1
|
||||
- @backstage/plugin-tech-insights-backend@0.4.2-next.1
|
||||
- @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.18-next.1
|
||||
- @backstage/plugin-todo-backend@0.1.31-next.1
|
||||
|
||||
## 0.2.73-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend",
|
||||
"version": "0.2.73-next.0",
|
||||
"version": "0.2.73-next.2",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -26,39 +26,39 @@
|
||||
"build-image": "docker build ../.. -f Dockerfile --tag example-backend"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.14.1-next.0",
|
||||
"@backstage/backend-tasks": "^0.3.3-next.0",
|
||||
"@backstage/catalog-client": "^1.0.4-next.0",
|
||||
"@backstage/catalog-model": "^1.1.0-next.0",
|
||||
"@backstage/backend-common": "^0.14.1-next.2",
|
||||
"@backstage/backend-tasks": "^0.3.3-next.2",
|
||||
"@backstage/catalog-client": "^1.0.4-next.1",
|
||||
"@backstage/catalog-model": "^1.1.0-next.2",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/integration": "^1.2.2-next.0",
|
||||
"@backstage/plugin-app-backend": "^0.3.34-next.0",
|
||||
"@backstage/plugin-auth-backend": "^0.14.2-next.0",
|
||||
"@backstage/plugin-auth-node": "^0.2.3-next.0",
|
||||
"@backstage/integration": "^1.2.2-next.2",
|
||||
"@backstage/plugin-app-backend": "^0.3.34-next.2",
|
||||
"@backstage/plugin-auth-backend": "^0.15.0-next.2",
|
||||
"@backstage/plugin-auth-node": "^0.2.3-next.1",
|
||||
"@backstage/plugin-azure-devops-backend": "^0.3.13-next.0",
|
||||
"@backstage/plugin-badges-backend": "^0.1.28-next.0",
|
||||
"@backstage/plugin-catalog-backend": "^1.2.1-next.0",
|
||||
"@backstage/plugin-code-coverage-backend": "^0.1.32-next.0",
|
||||
"@backstage/plugin-badges-backend": "^0.1.28-next.2",
|
||||
"@backstage/plugin-catalog-backend": "^1.2.1-next.2",
|
||||
"@backstage/plugin-code-coverage-backend": "^0.1.32-next.2",
|
||||
"@backstage/plugin-graphql-backend": "^0.1.24-next.0",
|
||||
"@backstage/plugin-jenkins-backend": "^0.1.24-next.0",
|
||||
"@backstage/plugin-kubernetes-backend": "^0.7.0-next.0",
|
||||
"@backstage/plugin-kafka-backend": "^0.2.27-next.0",
|
||||
"@backstage/plugin-permission-backend": "^0.5.9-next.0",
|
||||
"@backstage/plugin-permission-common": "^0.6.2",
|
||||
"@backstage/plugin-permission-node": "^0.6.3-next.0",
|
||||
"@backstage/plugin-jenkins-backend": "^0.1.24-next.2",
|
||||
"@backstage/plugin-kubernetes-backend": "^0.7.0-next.2",
|
||||
"@backstage/plugin-kafka-backend": "^0.2.27-next.2",
|
||||
"@backstage/plugin-permission-backend": "^0.5.9-next.1",
|
||||
"@backstage/plugin-permission-common": "^0.6.3-next.0",
|
||||
"@backstage/plugin-permission-node": "^0.6.3-next.1",
|
||||
"@backstage/plugin-proxy-backend": "^0.2.28-next.0",
|
||||
"@backstage/plugin-rollbar-backend": "^0.1.31-next.0",
|
||||
"@backstage/plugin-scaffolder-backend": "^1.4.0-next.0",
|
||||
"@backstage/plugin-scaffolder-backend-module-rails": "^0.4.2-next.0",
|
||||
"@backstage/plugin-search-backend": "^0.5.4-next.0",
|
||||
"@backstage/plugin-search-backend-node": "^0.6.3-next.0",
|
||||
"@backstage/plugin-search-backend-module-elasticsearch": "^0.1.6-next.0",
|
||||
"@backstage/plugin-search-backend-module-pg": "^0.3.5-next.0",
|
||||
"@backstage/plugin-techdocs-backend": "^1.1.3-next.0",
|
||||
"@backstage/plugin-tech-insights-backend": "^0.4.2-next.0",
|
||||
"@backstage/plugin-scaffolder-backend": "^1.4.0-next.2",
|
||||
"@backstage/plugin-scaffolder-backend-module-rails": "^0.4.2-next.1",
|
||||
"@backstage/plugin-search-backend": "^0.5.4-next.1",
|
||||
"@backstage/plugin-search-backend-node": "^0.6.3-next.1",
|
||||
"@backstage/plugin-search-backend-module-elasticsearch": "^0.2.0-next.1",
|
||||
"@backstage/plugin-search-backend-module-pg": "^0.3.5-next.2",
|
||||
"@backstage/plugin-techdocs-backend": "^1.2.0-next.2",
|
||||
"@backstage/plugin-tech-insights-backend": "^0.5.0-next.2",
|
||||
"@backstage/plugin-tech-insights-node": "^0.3.2-next.0",
|
||||
"@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.18-next.0",
|
||||
"@backstage/plugin-todo-backend": "^0.1.31-next.0",
|
||||
"@backstage/plugin-tech-insights-backend-module-jsonfc": "^0.1.18-next.1",
|
||||
"@backstage/plugin-todo-backend": "^0.1.31-next.1",
|
||||
"@gitbeaker/node": "^35.1.0",
|
||||
"@octokit/rest": "^18.5.3",
|
||||
"better-sqlite3": "^7.5.0",
|
||||
@@ -75,7 +75,7 @@
|
||||
"winston": "^3.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@types/dockerode": "^3.3.0",
|
||||
"@types/express": "^4.17.6",
|
||||
"@types/express-serve-static-core": "^4.17.5",
|
||||
|
||||
@@ -17,14 +17,17 @@
|
||||
import { KubernetesBuilder } from '@backstage/plugin-kubernetes-backend';
|
||||
import { Router } from 'express';
|
||||
import { PluginEnvironment } from '../types';
|
||||
import { CatalogClient } from '@backstage/catalog-client';
|
||||
|
||||
export default async function createPlugin(
|
||||
env: PluginEnvironment,
|
||||
): Promise<Router> {
|
||||
const catalogApi = new CatalogClient({ discoveryApi: env.discovery });
|
||||
const { router } = await KubernetesBuilder.createBuilder({
|
||||
logger: env.logger,
|
||||
config: env.config,
|
||||
discovery: env.discovery,
|
||||
catalogApi,
|
||||
}).build();
|
||||
return router;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,9 @@ async function createSearchEngine(
|
||||
}
|
||||
|
||||
if (await PgSearchEngine.supported(env.database)) {
|
||||
return await PgSearchEngine.from({ database: env.database });
|
||||
return await PgSearchEngine.fromConfig(env.config, {
|
||||
database: env.database,
|
||||
});
|
||||
}
|
||||
|
||||
return new LunrSearchEngine({ logger: env.logger });
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @backstage/catalog-client
|
||||
|
||||
## 1.0.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/catalog-model@1.1.0-next.1
|
||||
- @backstage/errors@1.1.0-next.0
|
||||
|
||||
## 1.0.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/catalog-client",
|
||||
"description": "An isomorphic client for the catalog backend",
|
||||
"version": "1.0.4-next.0",
|
||||
"version": "1.0.4-next.1",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -33,14 +33,14 @@
|
||||
"clean": "backstage-cli package clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/catalog-model": "^1.1.0-next.0",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/catalog-model": "^1.1.0-next.1",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"cross-fetch": "^3.1.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.1",
|
||||
"@types/jest": "^26.0.7",
|
||||
"msw": "^0.42.0"
|
||||
"msw": "^0.43.0"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# @backstage/catalog-model
|
||||
|
||||
## 1.1.0-next.2
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 4cc81372f8: Introduced `GroupDefaultParentEntityPolicy` to set a default group entity parent.
|
||||
|
||||
## 1.1.0-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- f1dcc6f3c6: Added type predicates for all entity types, e.g. isUserEntity
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.1.0-next.0
|
||||
|
||||
## 1.1.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -241,6 +241,13 @@ export function getEntitySourceLocation(entity: Entity): {
|
||||
target: string;
|
||||
};
|
||||
|
||||
// @public
|
||||
export class GroupDefaultParentEntityPolicy implements EntityPolicy {
|
||||
constructor(parentEntityRef: string);
|
||||
// (undocumented)
|
||||
enforce(entity: Entity): Promise<Entity>;
|
||||
}
|
||||
|
||||
// @public
|
||||
interface GroupEntityV1alpha1 extends Entity {
|
||||
// (undocumented)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/catalog-model",
|
||||
"description": "Types and validators that help describe the model of a Backstage Catalog",
|
||||
"version": "1.1.0-next.0",
|
||||
"version": "1.1.0-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -35,7 +35,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"@backstage/types": "^1.0.0",
|
||||
"ajv": "^8.10.0",
|
||||
"json-schema": "^0.4.0",
|
||||
@@ -43,7 +43,7 @@
|
||||
"uuid": "^8.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@types/jest": "^26.0.7",
|
||||
"@types/json-schema": "^7.0.5",
|
||||
"@types/lodash": "^4.14.151",
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* 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 { UserEntity, GroupEntity } from '../../kinds';
|
||||
import { GroupDefaultParentEntityPolicy } from './GroupDefaultParentEntityPolicy';
|
||||
|
||||
describe('GroupDefaultParentEntityPolicy', () => {
|
||||
it('should ignore non-group entities', async () => {
|
||||
const p = new GroupDefaultParentEntityPolicy('name');
|
||||
const u: UserEntity = {
|
||||
apiVersion: 'backstage.io/v1alpha1',
|
||||
kind: 'User',
|
||||
metadata: { name: 'n' },
|
||||
spec: { profile: {}, memberOf: ['c'] },
|
||||
};
|
||||
const result = await p.enforce(u);
|
||||
expect(result).toEqual({
|
||||
apiVersion: 'backstage.io/v1alpha1',
|
||||
kind: 'User',
|
||||
metadata: { name: 'n' },
|
||||
spec: { profile: {}, memberOf: ['c'] },
|
||||
});
|
||||
});
|
||||
|
||||
it('should parent group entities', async () => {
|
||||
const p = new GroupDefaultParentEntityPolicy('name');
|
||||
const g: GroupEntity = {
|
||||
apiVersion: 'backstage.io/v1alpha1',
|
||||
kind: 'Group',
|
||||
metadata: { name: 'n' },
|
||||
spec: { type: 'foo', children: [] },
|
||||
};
|
||||
const result = await p.enforce(g);
|
||||
expect(result).toEqual({
|
||||
apiVersion: 'backstage.io/v1alpha1',
|
||||
kind: 'Group',
|
||||
metadata: { name: 'n' },
|
||||
spec: { type: 'foo', parent: 'group:default/name', children: [] },
|
||||
});
|
||||
});
|
||||
|
||||
it('should not replace existing parents', async () => {
|
||||
const p = new GroupDefaultParentEntityPolicy('namespace/name');
|
||||
const g: GroupEntity = {
|
||||
apiVersion: 'backstage.io/v1alpha1',
|
||||
kind: 'Group',
|
||||
metadata: { name: 'n' },
|
||||
spec: { type: 'foo', parent: 'group:something/else', children: [] },
|
||||
};
|
||||
const result = await p.enforce(g);
|
||||
expect(result).toEqual({
|
||||
apiVersion: 'backstage.io/v1alpha1',
|
||||
kind: 'Group',
|
||||
metadata: { name: 'n' },
|
||||
spec: { type: 'foo', parent: 'group:something/else', children: [] },
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright 2022 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Entity } from '../Entity';
|
||||
import { GroupEntity } from '../../kinds';
|
||||
import { EntityPolicy } from './types';
|
||||
import { DEFAULT_NAMESPACE } from '../constants';
|
||||
import { parseEntityRef, stringifyEntityRef } from '../ref';
|
||||
|
||||
/**
|
||||
* DefaultParentPolicy is an EntityPolicy that updates group entities
|
||||
* with a parent of last resort. This ensures that, while we preserve
|
||||
* any existing group hierarchies, we can guarantee that there is a
|
||||
* single global root of the group hierarchy.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export class GroupDefaultParentEntityPolicy implements EntityPolicy {
|
||||
private readonly parentRef: string;
|
||||
|
||||
constructor(parentEntityRef: string) {
|
||||
const { kind, namespace, name } = parseEntityRef(parentEntityRef, {
|
||||
defaultKind: 'Group',
|
||||
defaultNamespace: DEFAULT_NAMESPACE,
|
||||
});
|
||||
|
||||
if (kind.toLocaleUpperCase('en-US') !== 'GROUP') {
|
||||
throw new TypeError('group parent must be a group');
|
||||
}
|
||||
|
||||
this.parentRef = stringifyEntityRef({
|
||||
kind: kind,
|
||||
namespace: namespace,
|
||||
name: name,
|
||||
});
|
||||
}
|
||||
|
||||
async enforce(entity: Entity): Promise<Entity> {
|
||||
if (entity.kind !== 'Group') {
|
||||
return entity;
|
||||
}
|
||||
|
||||
const group = entity as GroupEntity;
|
||||
if (group.spec.parent) {
|
||||
return group;
|
||||
}
|
||||
|
||||
// Avoid making the parent entity it's own parent.
|
||||
if (stringifyEntityRef(group) !== this.parentRef) {
|
||||
group.spec.parent = this.parentRef;
|
||||
}
|
||||
|
||||
return group;
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
export { DefaultNamespaceEntityPolicy } from './DefaultNamespaceEntityPolicy';
|
||||
export { GroupDefaultParentEntityPolicy } from './GroupDefaultParentEntityPolicy';
|
||||
export { FieldFormatEntityPolicy } from './FieldFormatEntityPolicy';
|
||||
export { NoForeignRootFieldsEntityPolicy } from './NoForeignRootFieldsEntityPolicy';
|
||||
export { SchemaValidEntityPolicy } from './SchemaValidEntityPolicy';
|
||||
|
||||
@@ -1,5 +1,39 @@
|
||||
# @backstage/cli
|
||||
|
||||
## 0.18.0-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- f6b6fb7165: The `test` command now ensures that all IO is flushed before exiting when printing `--help`.
|
||||
|
||||
## 0.18.0-next.1
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 96a82d9791: **BREAKING**: Removed the following deprecated package commands:
|
||||
|
||||
- `app:build` - Use `package build` instead
|
||||
- `app:serve` - Use `package start` instead
|
||||
- `backend:build` - Use `package build` instead
|
||||
- `backend:bundle` - Use `package build` instead
|
||||
- `backend:dev` - Use `package start` instead
|
||||
- `plugin:build` - Use `package build` instead
|
||||
- `plugin:serve` - Use `package start` instead
|
||||
- `build` - Use `package build` instead
|
||||
- `lint` - Use `package lint` instead
|
||||
- `prepack` - Use `package prepack` instead
|
||||
- `postpack` - Use `package postpack` instead
|
||||
|
||||
In order to replace these you need to have [migrated to using package roles](https://backstage.io/docs/tutorials/package-role-migration).
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 86640214f0: Upgrade `@rollup/plugin-node-resolve` to `^13.0.6`
|
||||
- e661242844: Updated dependency `run-script-webpack-plugin` to `^0.1.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.1.0-next.0
|
||||
- @backstage/config-loader@1.1.3-next.0
|
||||
|
||||
## 0.17.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -0,0 +1,563 @@
|
||||
## CLI Report file for "@backstage/cli"
|
||||
|
||||
> Do not edit this file. It is a report generated by `yarn build:api-reports`
|
||||
|
||||
### `backstage-cli`
|
||||
|
||||
```
|
||||
Usage: backstage-cli [options] [command]
|
||||
|
||||
Options:
|
||||
-V, --version
|
||||
-h, --help
|
||||
|
||||
Commands:
|
||||
create [options]
|
||||
create-plugin [options]
|
||||
plugin:diff [options]
|
||||
test
|
||||
config:docs [options]
|
||||
config:print [options]
|
||||
config:check [options]
|
||||
config:schema [options]
|
||||
repo [command]
|
||||
package [command]
|
||||
migrate [command]
|
||||
versions:bump [options]
|
||||
versions:check [options]
|
||||
clean
|
||||
build-workspace <workspace-dir> [packages...]
|
||||
create-github-app <github-org>
|
||||
info
|
||||
help [command]
|
||||
```
|
||||
|
||||
### `backstage-cli build-workspace`
|
||||
|
||||
```
|
||||
Usage: backstage-cli build-workspace [options] <workspace-dir> [packages...]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli clean`
|
||||
|
||||
```
|
||||
Usage: backstage-cli clean [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli config:check`
|
||||
|
||||
```
|
||||
Usage: backstage-cli config:check [options]
|
||||
|
||||
Options:
|
||||
--package <name>
|
||||
--lax
|
||||
--frontend
|
||||
--deprecated
|
||||
--config <path>
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli config:docs`
|
||||
|
||||
```
|
||||
Usage: backstage-cli config:docs [options]
|
||||
|
||||
Options:
|
||||
--package <name>
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli config:print`
|
||||
|
||||
```
|
||||
Usage: backstage-cli config:print [options]
|
||||
|
||||
Options:
|
||||
--package <name>
|
||||
--lax
|
||||
--frontend
|
||||
--with-secrets
|
||||
--format <format>
|
||||
--config <path>
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli config:schema`
|
||||
|
||||
```
|
||||
Usage: backstage-cli config:schema [options]
|
||||
|
||||
Options:
|
||||
--package <name>
|
||||
--format <format>
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli create`
|
||||
|
||||
```
|
||||
Usage: backstage-cli create [options]
|
||||
|
||||
Options:
|
||||
--select <name>
|
||||
--option <name>=<value>
|
||||
--scope <scope>
|
||||
--npm-registry <URL>
|
||||
--no-private
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli create-github-app`
|
||||
|
||||
```
|
||||
Usage: backstage-cli create-github-app [options] <github-org>
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli create-plugin`
|
||||
|
||||
```
|
||||
Usage: backstage-cli create-plugin [options]
|
||||
|
||||
Options:
|
||||
--backend
|
||||
--scope <scope>
|
||||
--npm-registry <URL>
|
||||
--no-private
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli info`
|
||||
|
||||
```
|
||||
Usage: backstage-cli info [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli migrate`
|
||||
|
||||
```
|
||||
Usage: backstage-cli migrate [options] [command] [command]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
|
||||
Commands:
|
||||
package-roles
|
||||
package-scripts
|
||||
package-lint-configs
|
||||
help [command]
|
||||
```
|
||||
|
||||
### `backstage-cli migrate package-lint-configs`
|
||||
|
||||
```
|
||||
Usage: backstage-cli migrate package-lint-configs [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli migrate package-roles`
|
||||
|
||||
```
|
||||
Usage: backstage-cli migrate package-roles [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli migrate package-scripts`
|
||||
|
||||
```
|
||||
Usage: backstage-cli migrate package-scripts [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli package`
|
||||
|
||||
```
|
||||
Usage: backstage-cli package [options] [command] [command]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
|
||||
Commands:
|
||||
start [options]
|
||||
build [options]
|
||||
lint [options] [directories...]
|
||||
test
|
||||
clean
|
||||
prepack
|
||||
postpack
|
||||
help [command]
|
||||
```
|
||||
|
||||
### `backstage-cli package build`
|
||||
|
||||
```
|
||||
Usage: backstage-cli package build [options]
|
||||
|
||||
Options:
|
||||
--role <name>
|
||||
--minify
|
||||
--experimental-type-build
|
||||
--skip-build-dependencies
|
||||
--stats
|
||||
--config <path>
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli package clean`
|
||||
|
||||
```
|
||||
Usage: backstage-cli package clean [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli package lint`
|
||||
|
||||
```
|
||||
Usage: backstage-cli package lint [options] [directories...]
|
||||
|
||||
Options:
|
||||
--format <format>
|
||||
--fix
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli package postpack`
|
||||
|
||||
```
|
||||
Usage: backstage-cli package postpack [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli package prepack`
|
||||
|
||||
```
|
||||
Usage: backstage-cli package prepack [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli package start`
|
||||
|
||||
```
|
||||
Usage: backstage-cli package start [options]
|
||||
|
||||
Options:
|
||||
--config <path>
|
||||
--role <name>
|
||||
--check
|
||||
--inspect
|
||||
--inspect-brk
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli package test`
|
||||
|
||||
```
|
||||
Usage: backstage-cli [--config=<pathToConfigFile>] [TestPathPattern]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
-v, --version
|
||||
--all
|
||||
--automock
|
||||
-b, --bail
|
||||
--cache
|
||||
--cacheDirectory
|
||||
--changedFilesWithAncestor
|
||||
--changedSince
|
||||
--ci
|
||||
--clearCache
|
||||
--clearMocks
|
||||
--collectCoverage
|
||||
--collectCoverageFrom
|
||||
--collectCoverageOnlyFrom
|
||||
--color
|
||||
--colors
|
||||
-c, --config
|
||||
--coverage
|
||||
--coverageDirectory
|
||||
--coveragePathIgnorePatterns
|
||||
--coverageProvider
|
||||
--coverageReporters
|
||||
--coverageThreshold
|
||||
--debug
|
||||
--detectLeaks
|
||||
--detectOpenHandles
|
||||
--env
|
||||
--errorOnDeprecated
|
||||
-e, --expand
|
||||
--filter
|
||||
--findRelatedTests
|
||||
--forceExit
|
||||
--globalSetup
|
||||
--globalTeardown
|
||||
--globals
|
||||
--haste
|
||||
--init
|
||||
--injectGlobals
|
||||
--json
|
||||
--lastCommit
|
||||
--listTests
|
||||
--logHeapUsage
|
||||
--maxConcurrency
|
||||
-w, --maxWorkers
|
||||
--moduleDirectories
|
||||
--moduleFileExtensions
|
||||
--moduleNameMapper
|
||||
--modulePathIgnorePatterns
|
||||
--modulePaths
|
||||
--noStackTrace
|
||||
--notify
|
||||
--notifyMode
|
||||
-o, --onlyChanged
|
||||
-f, --onlyFailures
|
||||
--outputFile
|
||||
--passWithNoTests
|
||||
--preset
|
||||
--prettierPath
|
||||
--projects
|
||||
--reporters
|
||||
--resetMocks
|
||||
--resetModules
|
||||
--resolver
|
||||
--restoreMocks
|
||||
--rootDir
|
||||
--roots
|
||||
-i, --runInBand
|
||||
--runTestsByPath
|
||||
--runner
|
||||
--selectProjects
|
||||
--setupFiles
|
||||
--setupFilesAfterEnv
|
||||
--showConfig
|
||||
--silent
|
||||
--skipFilter
|
||||
--snapshotSerializers
|
||||
--testEnvironment
|
||||
--testEnvironmentOptions
|
||||
--testFailureExitCode
|
||||
--testLocationInResults
|
||||
--testMatch
|
||||
-t, --testNamePattern
|
||||
--testPathIgnorePatterns
|
||||
--testPathPattern
|
||||
--testRegex
|
||||
--testResultsProcessor
|
||||
--testRunner
|
||||
--testSequencer
|
||||
--testTimeout
|
||||
--testURL
|
||||
--timers
|
||||
--transform
|
||||
--transformIgnorePatterns
|
||||
--unmockedModulePathPatterns
|
||||
-u, --updateSnapshot
|
||||
--useStderr
|
||||
--verbose
|
||||
--watch
|
||||
--watchAll
|
||||
--watchPathIgnorePatterns
|
||||
--watchman
|
||||
```
|
||||
|
||||
### `backstage-cli plugin:diff`
|
||||
|
||||
```
|
||||
Usage: backstage-cli plugin:diff [options]
|
||||
|
||||
Options:
|
||||
--check
|
||||
--yes
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli repo`
|
||||
|
||||
```
|
||||
Usage: backstage-cli repo [options] [command] [command]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
|
||||
Commands:
|
||||
build [options]
|
||||
lint [options]
|
||||
help [command]
|
||||
```
|
||||
|
||||
### `backstage-cli repo build`
|
||||
|
||||
```
|
||||
Usage: backstage-cli repo build [options]
|
||||
|
||||
Options:
|
||||
--all
|
||||
--since <ref>
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli repo lint`
|
||||
|
||||
```
|
||||
Usage: backstage-cli repo lint [options]
|
||||
|
||||
Options:
|
||||
--format <format>
|
||||
--since <ref>
|
||||
--fix
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli test`
|
||||
|
||||
```
|
||||
Usage: backstage-cli [--config=<pathToConfigFile>] [TestPathPattern]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
-v, --version
|
||||
--all
|
||||
--automock
|
||||
-b, --bail
|
||||
--cache
|
||||
--cacheDirectory
|
||||
--changedFilesWithAncestor
|
||||
--changedSince
|
||||
--ci
|
||||
--clearCache
|
||||
--clearMocks
|
||||
--collectCoverage
|
||||
--collectCoverageFrom
|
||||
--collectCoverageOnlyFrom
|
||||
--color
|
||||
--colors
|
||||
-c, --config
|
||||
--coverage
|
||||
--coverageDirectory
|
||||
--coveragePathIgnorePatterns
|
||||
--coverageProvider
|
||||
--coverageReporters
|
||||
--coverageThreshold
|
||||
--debug
|
||||
--detectLeaks
|
||||
--detectOpenHandles
|
||||
--env
|
||||
--errorOnDeprecated
|
||||
-e, --expand
|
||||
--filter
|
||||
--findRelatedTests
|
||||
--forceExit
|
||||
--globalSetup
|
||||
--globalTeardown
|
||||
--globals
|
||||
--haste
|
||||
--init
|
||||
--injectGlobals
|
||||
--json
|
||||
--lastCommit
|
||||
--listTests
|
||||
--logHeapUsage
|
||||
--maxConcurrency
|
||||
-w, --maxWorkers
|
||||
--moduleDirectories
|
||||
--moduleFileExtensions
|
||||
--moduleNameMapper
|
||||
--modulePathIgnorePatterns
|
||||
--modulePaths
|
||||
--noStackTrace
|
||||
--notify
|
||||
--notifyMode
|
||||
-o, --onlyChanged
|
||||
-f, --onlyFailures
|
||||
--outputFile
|
||||
--passWithNoTests
|
||||
--preset
|
||||
--prettierPath
|
||||
--projects
|
||||
--reporters
|
||||
--resetMocks
|
||||
--resetModules
|
||||
--resolver
|
||||
--restoreMocks
|
||||
--rootDir
|
||||
--roots
|
||||
-i, --runInBand
|
||||
--runTestsByPath
|
||||
--runner
|
||||
--selectProjects
|
||||
--setupFiles
|
||||
--setupFilesAfterEnv
|
||||
--showConfig
|
||||
--silent
|
||||
--skipFilter
|
||||
--snapshotSerializers
|
||||
--testEnvironment
|
||||
--testEnvironmentOptions
|
||||
--testFailureExitCode
|
||||
--testLocationInResults
|
||||
--testMatch
|
||||
-t, --testNamePattern
|
||||
--testPathIgnorePatterns
|
||||
--testPathPattern
|
||||
--testRegex
|
||||
--testResultsProcessor
|
||||
--testRunner
|
||||
--testSequencer
|
||||
--testTimeout
|
||||
--testURL
|
||||
--timers
|
||||
--transform
|
||||
--transformIgnorePatterns
|
||||
--unmockedModulePathPatterns
|
||||
-u, --updateSnapshot
|
||||
--useStderr
|
||||
--verbose
|
||||
--watch
|
||||
--watchAll
|
||||
--watchPathIgnorePatterns
|
||||
--watchman
|
||||
```
|
||||
|
||||
### `backstage-cli versions:bump`
|
||||
|
||||
```
|
||||
Usage: backstage-cli versions:bump [options]
|
||||
|
||||
Options:
|
||||
--pattern <glob>
|
||||
--release <version|next|main>
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-cli versions:check`
|
||||
|
||||
```
|
||||
Usage: backstage-cli versions:check [options]
|
||||
|
||||
Options:
|
||||
--fix
|
||||
-h, --help
|
||||
```
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/cli",
|
||||
"description": "CLI for developing Backstage plugins and apps",
|
||||
"version": "0.17.3-next.0",
|
||||
"version": "0.18.0-next.2",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
@@ -33,8 +33,8 @@
|
||||
"dependencies": {
|
||||
"@backstage/cli-common": "^0.1.9",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/config-loader": "^1.1.2",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/config-loader": "^1.1.3-next.0",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"@backstage/release-manifests": "^0.0.4",
|
||||
"@backstage/types": "^1.0.0",
|
||||
"@hot-loader/react-dom-v16": "npm:@hot-loader/react-dom@^16.0.2",
|
||||
@@ -126,14 +126,14 @@
|
||||
"zod": "^3.11.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-common": "^0.14.1-next.0",
|
||||
"@backstage/backend-common": "^0.14.1-next.2",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/core-app-api": "^1.0.4-next.0",
|
||||
"@backstage/core-components": "^0.9.6-next.0",
|
||||
"@backstage/core-components": "^0.10.0-next.2",
|
||||
"@backstage/core-plugin-api": "^1.0.3",
|
||||
"@backstage/dev-utils": "^1.0.4-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@backstage/dev-utils": "^1.0.4-next.2",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@backstage/theme": "^0.2.16-next.1",
|
||||
"@types/diff": "^5.0.0",
|
||||
"@types/express": "^4.17.6",
|
||||
"@types/fs-extra": "^9.0.1",
|
||||
@@ -152,7 +152,7 @@
|
||||
"@types/yarnpkg__lockfile": "^1.1.4",
|
||||
"del": "^6.0.0",
|
||||
"mock-fs": "^5.1.0",
|
||||
"msw": "^0.42.0",
|
||||
"msw": "^0.43.0",
|
||||
"nodemon": "^2.0.2",
|
||||
"ts-node": "^10.0.0"
|
||||
},
|
||||
|
||||
@@ -78,6 +78,10 @@ export default async (_opts: OptionValues, cmd: Command) => {
|
||||
process.env.TZ = 'UTC';
|
||||
}
|
||||
|
||||
if (args.includes('--help')) {
|
||||
(process.stdout as any)._handle.setBlocking(true);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line jest/no-jest-import
|
||||
await require('jest').run(args);
|
||||
};
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"@backstage/cli": "{{versionQuery '@backstage/cli'}}",
|
||||
"@types/supertest": "{{versionQuery '@types/supertest' '2.0.8'}}",
|
||||
"supertest": "{{versionQuery 'supertest' '4.0.2'}}",
|
||||
"msw": "{{versionQuery 'msw' '0.42.0'}}"
|
||||
"msw": "{{versionQuery 'msw' '0.43.0'}}"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"@testing-library/user-event": "{{versionQuery '@testing-library/user-event' '14.0.0'}}",
|
||||
"@types/jest": "{{versionQuery '@types/jest' '26.0.7'}}",
|
||||
"@types/node": "{{versionQuery '@types/node' '16.11.26'}}",
|
||||
"msw": "{{versionQuery 'msw' '0.42.0'}}",
|
||||
"msw": "{{versionQuery 'msw' '0.43.0'}}",
|
||||
"cross-fetch": "{{versionQuery 'cross-fetch' '3.1.5'}}"
|
||||
},
|
||||
"files": [
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
## CLI Report file for "@backstage/codemods"
|
||||
|
||||
> Do not edit this file. It is a report generated by `yarn build:api-reports`
|
||||
|
||||
### `backstage-codemods`
|
||||
|
||||
```
|
||||
Usage: backstage-codemods [options] [command]
|
||||
|
||||
Options:
|
||||
-V, --version
|
||||
-h, --help
|
||||
|
||||
Commands:
|
||||
apply <codemod> [target-dirs...]
|
||||
list
|
||||
help [command]
|
||||
```
|
||||
|
||||
### `backstage-codemods apply`
|
||||
|
||||
```
|
||||
Usage: backstage-codemods apply [options] [command] <codemod> [target-dirs...]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
|
||||
Commands:
|
||||
core-imports [options] [target-dirs...]
|
||||
extension-names [options] [target-dirs...]
|
||||
help [command]
|
||||
```
|
||||
|
||||
### `backstage-codemods apply core-imports`
|
||||
|
||||
```
|
||||
Usage: backstage-codemods apply core-imports [options] [target-dirs...]
|
||||
|
||||
Options:
|
||||
-d, --dry
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-codemods apply extension-names`
|
||||
|
||||
```
|
||||
Usage: backstage-codemods apply extension-names [options] [target-dirs...]
|
||||
|
||||
Options:
|
||||
-d, --dry
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `backstage-codemods list`
|
||||
|
||||
```
|
||||
Usage: backstage-codemods list [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
@@ -1,5 +1,12 @@
|
||||
# @backstage/config-loader
|
||||
|
||||
## 1.1.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.1.0-next.0
|
||||
|
||||
## 1.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/config-loader",
|
||||
"description": "Config loading functionality used by Backstage backend, and CLI",
|
||||
"version": "1.1.2",
|
||||
"version": "1.1.3-next.0",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -36,7 +36,7 @@
|
||||
"dependencies": {
|
||||
"@backstage/cli-common": "^0.1.9",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"@backstage/types": "^1.0.0",
|
||||
"@types/json-schema": "^7.0.6",
|
||||
"ajv": "^8.10.0",
|
||||
@@ -46,7 +46,7 @@
|
||||
"json-schema-merge-allof": "^0.8.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
"node-fetch": "^2.6.7",
|
||||
"typescript-json-schema": "^0.53.0",
|
||||
"typescript-json-schema": "^0.54.0",
|
||||
"yaml": "^1.9.2",
|
||||
"yup": "^0.32.9"
|
||||
},
|
||||
@@ -57,7 +57,7 @@
|
||||
"@types/node": "^16.11.26",
|
||||
"@types/yup": "^0.29.13",
|
||||
"mock-fs": "^5.1.0",
|
||||
"msw": "^0.42.0"
|
||||
"msw": "^0.43.0"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
"react": "^16.13.1 || ^17.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.1",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^12.1.3",
|
||||
"@testing-library/react-hooks": "^8.0.0",
|
||||
@@ -59,7 +59,7 @@
|
||||
"@types/node": "^16.11.26",
|
||||
"@types/zen-observable": "^0.8.0",
|
||||
"cross-fetch": "^3.1.5",
|
||||
"msw": "^0.42.0"
|
||||
"msw": "^0.43.0"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
# @backstage/core-components
|
||||
|
||||
## 0.10.0-next.2
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 32204fa794: Add `transformLinkUri` and `transformImageUri` to `MarkdownContent`
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- b4b711bcc2: Fix the EntityLayout header style so that EntityContextMenu button can display in correct shape when user hover on it
|
||||
- 15201b1032: Updated dependency `rc-progress` to `3.4.0`.
|
||||
- 385389d23c: Updated to remove usage of the `bursts` object in the theme palette
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.2.16-next.1
|
||||
|
||||
## 0.9.6-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3c440ea77e: Change BackstageIconLinkVertical style to use pallette instead of explicit color
|
||||
- 7e115d42f9: Support displaying subtitle text in `SidebarSubmenuItem`
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.1.0-next.0
|
||||
- @backstage/theme@0.2.16-next.0
|
||||
|
||||
## 0.9.6-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/core-components",
|
||||
"description": "Core components used by Backstage plugins and apps",
|
||||
"version": "0.9.6-next.0",
|
||||
"version": "0.10.0-next.2",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -35,8 +35,8 @@
|
||||
"dependencies": {
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/core-plugin-api": "^1.0.3",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"@backstage/theme": "^0.2.16-next.1",
|
||||
"@backstage/version-bridge": "^1.0.1",
|
||||
"@material-table/core": "^3.1.0",
|
||||
"@material-ui/core": "^4.12.2",
|
||||
@@ -56,7 +56,7 @@
|
||||
"pluralize": "^8.0.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"qs": "^6.9.4",
|
||||
"rc-progress": "3.3.3",
|
||||
"rc-progress": "3.4.0",
|
||||
"react-helmet": "6.1.0",
|
||||
"react-hook-form": "^7.12.2",
|
||||
"react-markdown": "^8.0.0",
|
||||
@@ -80,8 +80,8 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/core-app-api": "^1.0.4-next.0",
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^12.1.3",
|
||||
"@testing-library/react-hooks": "^8.0.0",
|
||||
@@ -101,7 +101,7 @@
|
||||
"@types/react-window": "^1.8.5",
|
||||
"@types/zen-observable": "^0.8.0",
|
||||
"cross-fetch": "^3.1.5",
|
||||
"msw": "^0.42.0"
|
||||
"msw": "^0.43.0"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -47,7 +47,7 @@ const useIconStyles = makeStyles(
|
||||
textAlign: 'center',
|
||||
},
|
||||
disabled: {
|
||||
color: 'gray',
|
||||
color: theme.palette.text.secondary,
|
||||
cursor: 'default',
|
||||
},
|
||||
primary: {
|
||||
|
||||
@@ -21,9 +21,11 @@ import {
|
||||
TestApiProvider,
|
||||
wrapInTestApp,
|
||||
} from '@backstage/test-utils';
|
||||
import { analyticsApiRef } from '@backstage/core-plugin-api';
|
||||
import { isExternalUri, Link } from './Link';
|
||||
import { analyticsApiRef, configApiRef } from '@backstage/core-plugin-api';
|
||||
import { isExternalUri, Link, useResolvedPath } from './Link';
|
||||
import { Route, Routes } from 'react-router';
|
||||
import { renderHook, WrapperComponent } from '@testing-library/react-hooks';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
|
||||
describe('<Link />', () => {
|
||||
it('navigates using react-router', async () => {
|
||||
@@ -103,6 +105,58 @@ describe('<Link />', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('resolves a sub-path correctly', () => {
|
||||
it('when it starts with base path', async () => {
|
||||
const testString = 'This is test string';
|
||||
const linkText = 'Navigate!';
|
||||
const configApi = new ConfigReader({
|
||||
app: { baseUrl: 'http://localhost:3000/example' },
|
||||
});
|
||||
|
||||
const { getByText } = render(
|
||||
wrapInTestApp(
|
||||
<TestApiProvider apis={[[configApiRef, configApi]]}>
|
||||
<Routes>
|
||||
<Link to="/example/test">{linkText}</Link>
|
||||
<Route path="/example/test" element={<p>{testString}</p>} />
|
||||
</Routes>
|
||||
</TestApiProvider>,
|
||||
),
|
||||
);
|
||||
|
||||
expect(() => getByText(testString)).toThrow();
|
||||
fireEvent.click(getByText(linkText));
|
||||
await waitFor(() => {
|
||||
expect(getByText(testString)).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
it('when it does not start with base path', async () => {
|
||||
const testString = 'This is test string';
|
||||
const linkText = 'Navigate!';
|
||||
const configApi = new ConfigReader({
|
||||
app: { baseUrl: 'http://localhost:3000/example' },
|
||||
});
|
||||
|
||||
const { getByText } = render(
|
||||
wrapInTestApp(
|
||||
<TestApiProvider apis={[[configApiRef, configApi]]}>
|
||||
<Routes>
|
||||
<Link to="/test">{linkText}</Link>
|
||||
<Route path="/example/test" element={<p>{testString}</p>} />
|
||||
</Routes>
|
||||
</TestApiProvider>,
|
||||
),
|
||||
);
|
||||
|
||||
expect(() => getByText(testString)).toThrow();
|
||||
fireEvent.click(getByText(linkText));
|
||||
await waitFor(() => {
|
||||
expect(getByText(testString)).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('isExternalUri', () => {
|
||||
it.each([
|
||||
[true, 'http://'],
|
||||
@@ -128,4 +182,45 @@ describe('<Link />', () => {
|
||||
expect(isExternalUri(uri)).toBe(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('useResolvedPath', () => {
|
||||
const wrapper: WrapperComponent<{}> = ({ children }) => {
|
||||
const configApi = new ConfigReader({
|
||||
app: { baseUrl: 'http://localhost:3000/example' },
|
||||
});
|
||||
return (
|
||||
<TestApiProvider apis={[[configApiRef, configApi]]}>
|
||||
{children}
|
||||
</TestApiProvider>
|
||||
);
|
||||
};
|
||||
|
||||
describe('concatenate base path', () => {
|
||||
it('when uri is internal and does not start with base path', () => {
|
||||
const path = '/catalog/default/component/artist-lookup';
|
||||
const { result } = renderHook(() => useResolvedPath(path), {
|
||||
wrapper,
|
||||
});
|
||||
expect(result.current).toBe('/example'.concat(path));
|
||||
});
|
||||
});
|
||||
|
||||
describe('does not concatenate base path', () => {
|
||||
it('when uri is external', () => {
|
||||
const path = 'https://stackoverflow.com/questions/1/example';
|
||||
const { result } = renderHook(() => useResolvedPath(path), {
|
||||
wrapper,
|
||||
});
|
||||
expect(result.current).toBe(path);
|
||||
});
|
||||
|
||||
it('when uri already starts with base path', () => {
|
||||
const path = '/example/catalog/default/component/artist-lookup';
|
||||
const { result } = renderHook(() => useResolvedPath(path), {
|
||||
wrapper,
|
||||
});
|
||||
expect(result.current).toBe(path);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { useAnalytics } from '@backstage/core-plugin-api';
|
||||
import { configApiRef, useAnalytics, useApi } from '@backstage/core-plugin-api';
|
||||
import classnames from 'classnames';
|
||||
import MaterialLink, {
|
||||
LinkProps as MaterialLinkProps,
|
||||
@@ -25,6 +25,7 @@ import {
|
||||
Link as RouterLink,
|
||||
LinkProps as RouterLinkProps,
|
||||
} from 'react-router-dom';
|
||||
import { trimEnd } from 'lodash';
|
||||
|
||||
const useStyles = makeStyles(
|
||||
{
|
||||
@@ -52,6 +53,45 @@ export type LinkProps = MaterialLinkProps &
|
||||
noTrack?: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the app base url that could be empty if the Config API is not properly implemented.
|
||||
* The only cases there would be no Config API are in tests and in storybook stories, and in those cases, it's unlikely that callers would rely on this subpath behavior.
|
||||
*/
|
||||
const useBaseUrl = () => {
|
||||
try {
|
||||
const config = useApi(configApiRef);
|
||||
return config.getOptionalString('app.baseUrl');
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the app base path from the configured app baseUrl.
|
||||
* The returned path does not have a trailing slash.
|
||||
*/
|
||||
const useBasePath = () => {
|
||||
// baseUrl can be specified as just a path
|
||||
const base = 'http://dummy.dev';
|
||||
const url = useBaseUrl() ?? '/';
|
||||
const { pathname } = new URL(url, base);
|
||||
return trimEnd(pathname, '/');
|
||||
};
|
||||
|
||||
export const useResolvedPath = (uri: LinkProps['to']) => {
|
||||
let resolvedPath = String(uri);
|
||||
|
||||
const basePath = useBasePath();
|
||||
const external = isExternalUri(resolvedPath);
|
||||
const startsWithBasePath = resolvedPath.startsWith(basePath);
|
||||
|
||||
if (!external && !startsWithBasePath) {
|
||||
resolvedPath = basePath.concat(resolvedPath);
|
||||
}
|
||||
|
||||
return resolvedPath;
|
||||
};
|
||||
|
||||
/**
|
||||
* Given a react node, try to retrieve its text content.
|
||||
*/
|
||||
@@ -84,7 +124,7 @@ export const Link = React.forwardRef<any, LinkProps>(
|
||||
({ onClick, noTrack, ...props }, ref) => {
|
||||
const classes = useStyles();
|
||||
const analytics = useAnalytics();
|
||||
const to = String(props.to);
|
||||
const to = useResolvedPath(props.to);
|
||||
const linkText = getNodeText(props.children) || to;
|
||||
const external = isExternalUri(to);
|
||||
const newWindow = external && !!/^https?:/.exec(to);
|
||||
@@ -99,11 +139,11 @@ export const Link = React.forwardRef<any, LinkProps>(
|
||||
return external ? (
|
||||
// External links
|
||||
<MaterialLink
|
||||
{...(newWindow ? { target: '_blank', rel: 'noopener' } : {})}
|
||||
{...props}
|
||||
ref={ref}
|
||||
href={to}
|
||||
onClick={handleClick}
|
||||
{...(newWindow ? { target: '_blank', rel: 'noopener' } : {})}
|
||||
{...props}
|
||||
className={classnames(classes.externalLink, props.className)}
|
||||
>
|
||||
{props.children}
|
||||
@@ -112,10 +152,11 @@ export const Link = React.forwardRef<any, LinkProps>(
|
||||
) : (
|
||||
// Interact with React Router for internal links
|
||||
<MaterialLink
|
||||
{...props}
|
||||
ref={ref}
|
||||
component={RouterLink}
|
||||
to={to}
|
||||
onClick={handleClick}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
},
|
||||
|
||||
@@ -62,4 +62,42 @@ describe('<MarkdownContent />', () => {
|
||||
expect(fp2).toBeInTheDocument();
|
||||
expect(rendered.getByText(');', { selector: 'span' })).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('render MarkdownContent component with transformed link', async () => {
|
||||
const rendered = await renderWithEffects(
|
||||
wrapInTestApp(
|
||||
<MarkdownContent
|
||||
content="[Title](https://backstage.io/link)"
|
||||
transformLinkUri={href => {
|
||||
return `${href}-modified`;
|
||||
}}
|
||||
/>,
|
||||
),
|
||||
);
|
||||
const fp1 = rendered.getByText('Title', {
|
||||
selector: 'a',
|
||||
});
|
||||
expect(fp1).toBeInTheDocument();
|
||||
expect(fp1.getAttribute('href')).toEqual(
|
||||
'https://backstage.io/link-modified',
|
||||
);
|
||||
});
|
||||
|
||||
it('render MarkdownContent component with transformed image', async () => {
|
||||
const rendered = await renderWithEffects(
|
||||
wrapInTestApp(
|
||||
<MarkdownContent
|
||||
content=""
|
||||
transformImageUri={() => {
|
||||
return `https://example.com/blog/assets/6/header.png`;
|
||||
}}
|
||||
/>,
|
||||
),
|
||||
);
|
||||
const fp1 = rendered.getByAltText('Image');
|
||||
expect(fp1).toBeInTheDocument();
|
||||
expect(fp1.getAttribute('src')).toEqual(
|
||||
'https://example.com/blog/assets/6/header.png',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -68,6 +68,8 @@ type Props = {
|
||||
content: string;
|
||||
dialect?: 'gfm' | 'common-mark';
|
||||
linkTarget?: Options['linkTarget'];
|
||||
transformLinkUri?: (href: string) => string;
|
||||
transformImageUri?: (href: string) => string;
|
||||
};
|
||||
|
||||
const components: Options['components'] = {
|
||||
@@ -91,7 +93,13 @@ const components: Options['components'] = {
|
||||
* If you just want to render to plain [CommonMark](https://commonmark.org/), set the dialect to `'common-mark'`
|
||||
*/
|
||||
export function MarkdownContent(props: Props) {
|
||||
const { content, dialect = 'gfm', linkTarget } = props;
|
||||
const {
|
||||
content,
|
||||
dialect = 'gfm',
|
||||
linkTarget,
|
||||
transformLinkUri,
|
||||
transformImageUri,
|
||||
} = props;
|
||||
const classes = useStyles();
|
||||
return (
|
||||
<ReactMarkdown
|
||||
@@ -100,6 +108,8 @@ export function MarkdownContent(props: Props) {
|
||||
children={content}
|
||||
components={components}
|
||||
linkTarget={linkTarget}
|
||||
transformLinkUri={transformLinkUri}
|
||||
transformImageUri={transformImageUri}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -63,15 +63,16 @@ const useStyles = makeStyles<BackstageTheme>(
|
||||
},
|
||||
rightItemsBox: {
|
||||
width: 'auto',
|
||||
alignItems: 'center',
|
||||
},
|
||||
title: {
|
||||
color: theme.palette.bursts.fontColor,
|
||||
color: theme.page.fontColor,
|
||||
wordBreak: 'break-word',
|
||||
fontSize: theme.typography.h3.fontSize,
|
||||
marginBottom: 0,
|
||||
},
|
||||
subtitle: {
|
||||
color: theme.palette.bursts.fontColor,
|
||||
color: theme.page.fontColor,
|
||||
opacity: 0.8,
|
||||
display: 'inline-block', // prevents margin collapse of adjacent siblings
|
||||
marginTop: theme.spacing(1),
|
||||
@@ -82,10 +83,10 @@ const useStyles = makeStyles<BackstageTheme>(
|
||||
fontSize: 11,
|
||||
opacity: 0.8,
|
||||
marginBottom: theme.spacing(1),
|
||||
color: theme.palette.bursts.fontColor,
|
||||
color: theme.page.fontColor,
|
||||
},
|
||||
breadcrumb: {
|
||||
color: theme.palette.bursts.fontColor,
|
||||
color: theme.page.fontColor,
|
||||
},
|
||||
breadcrumbType: {
|
||||
fontSize: 'inherit',
|
||||
|
||||
@@ -27,7 +27,7 @@ const styles = (theme: BackstageTheme) =>
|
||||
root: {
|
||||
color: theme.palette.common.white,
|
||||
padding: theme.spacing(2, 2, 3),
|
||||
backgroundImage: theme.palette.bursts.gradient.linear,
|
||||
backgroundImage: theme.getPageTheme({ themeId: 'card' }).backgroundImage,
|
||||
backgroundPosition: 0,
|
||||
backgroundSize: 'inherit',
|
||||
},
|
||||
|
||||
@@ -85,14 +85,14 @@ const useStyles = makeStyles<BackstageTheme, { sidebarConfig: SidebarConfig }>(
|
||||
|
||||
overlayHeader: {
|
||||
display: 'flex',
|
||||
color: theme.palette.bursts.fontColor,
|
||||
color: theme.palette.text.primary,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-between',
|
||||
padding: theme.spacing(2, 3),
|
||||
},
|
||||
|
||||
overlayHeaderClose: {
|
||||
color: theme.palette.bursts.fontColor,
|
||||
color: theme.palette.text.primary,
|
||||
},
|
||||
|
||||
marginMobileSidebar: props => ({
|
||||
|
||||
@@ -46,9 +46,9 @@
|
||||
"react": "^16.13.1 || ^17.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.1",
|
||||
"@backstage/core-app-api": "^1.0.4-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^12.1.3",
|
||||
"@testing-library/react-hooks": "^8.0.0",
|
||||
@@ -58,7 +58,7 @@
|
||||
"@types/prop-types": "^15.7.3",
|
||||
"@types/zen-observable": "^0.8.0",
|
||||
"cross-fetch": "^3.1.5",
|
||||
"msw": "^0.42.0"
|
||||
"msw": "^0.43.0"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
# @backstage/create-app
|
||||
|
||||
## 0.4.29-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- f281ad17c0: Adds the ability to define the Backstage app name using a `BACKSTAGE_APP_NAME`
|
||||
environment variable when running `create-app`.
|
||||
|
||||
## 0.4.29-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
|
||||
## 0.4.29-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
## CLI Report file for "@backstage/create-app"
|
||||
|
||||
> Do not edit this file. It is a report generated by `yarn build:api-reports`
|
||||
|
||||
### `backstage-create-app`
|
||||
|
||||
```
|
||||
Usage: backstage-create-app [options]
|
||||
|
||||
Options:
|
||||
-V, --version
|
||||
--path [directory]
|
||||
--skip-install
|
||||
-h, --help
|
||||
```
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/create-app",
|
||||
"description": "A CLI that helps you create your own Backstage app",
|
||||
"version": "0.4.29-next.0",
|
||||
"version": "0.4.29-next.2",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
||||
@@ -49,6 +49,14 @@ export default async (opts: OptionValues): Promise<void> => {
|
||||
}
|
||||
return true;
|
||||
},
|
||||
when: (a: Answers) => {
|
||||
const envName = process.env.BACKSTAGE_APP_NAME;
|
||||
if (envName) {
|
||||
a.name = envName;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
# @backstage/dev-utils
|
||||
|
||||
## 1.0.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.10.0-next.2
|
||||
- @backstage/catalog-model@1.1.0-next.2
|
||||
- @backstage/theme@0.2.16-next.1
|
||||
- @backstage/plugin-catalog-react@1.1.2-next.2
|
||||
- @backstage/app-defaults@1.0.4-next.2
|
||||
- @backstage/integration-react@1.1.2-next.2
|
||||
|
||||
## 1.0.4-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.6-next.1
|
||||
- @backstage/catalog-model@1.1.0-next.1
|
||||
- @backstage/theme@0.2.16-next.0
|
||||
- @backstage/app-defaults@1.0.4-next.1
|
||||
- @backstage/integration-react@1.1.2-next.1
|
||||
- @backstage/test-utils@1.1.2-next.1
|
||||
- @backstage/plugin-catalog-react@1.1.2-next.1
|
||||
|
||||
## 1.0.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/dev-utils",
|
||||
"description": "Utilities for developing Backstage plugins.",
|
||||
"version": "1.0.4-next.0",
|
||||
"version": "1.0.4-next.2",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -33,15 +33,15 @@
|
||||
"start": "backstage-cli package start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/app-defaults": "^1.0.4-next.0",
|
||||
"@backstage/app-defaults": "^1.0.4-next.2",
|
||||
"@backstage/core-app-api": "^1.0.4-next.0",
|
||||
"@backstage/core-components": "^0.9.6-next.0",
|
||||
"@backstage/core-components": "^0.10.0-next.2",
|
||||
"@backstage/core-plugin-api": "^1.0.3",
|
||||
"@backstage/catalog-model": "^1.1.0-next.0",
|
||||
"@backstage/integration-react": "^1.1.2-next.0",
|
||||
"@backstage/plugin-catalog-react": "^1.1.2-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@backstage/catalog-model": "^1.1.0-next.2",
|
||||
"@backstage/integration-react": "^1.1.2-next.2",
|
||||
"@backstage/plugin-catalog-react": "^1.1.2-next.2",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@backstage/theme": "^0.2.16-next.1",
|
||||
"@material-ui/core": "^4.12.2",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
@@ -59,7 +59,7 @@
|
||||
"react-dom": "^16.13.1 || ^17.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@types/jest": "^26.0.7",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
## CLI Report file for "e2e-test"
|
||||
|
||||
> Do not edit this file. It is a report generated by `yarn build:api-reports`
|
||||
|
||||
### `e2e-test`
|
||||
|
||||
```
|
||||
Usage: e2e-test [options] [command]
|
||||
|
||||
Options:
|
||||
-V, --version
|
||||
-h, --help
|
||||
|
||||
Commands:
|
||||
run
|
||||
help [command]
|
||||
```
|
||||
|
||||
### `e2e-test run`
|
||||
|
||||
```
|
||||
Usage: e2e-test run [options]
|
||||
|
||||
Options:
|
||||
-h, --help
|
||||
```
|
||||
@@ -30,7 +30,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli-common": "^0.1.9-next.0",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"@types/fs-extra": "^9.0.1",
|
||||
"@types/node": "^16.11.26",
|
||||
"@types/puppeteer": "^5.4.4",
|
||||
@@ -40,7 +40,7 @@
|
||||
"fs-extra": "10.1.0",
|
||||
"handlebars": "^4.7.3",
|
||||
"pgtools": "^0.3.0",
|
||||
"puppeteer": "^14.0.0",
|
||||
"puppeteer": "^15.0.0",
|
||||
"tree-kill": "^1.2.2",
|
||||
"ts-node": "^10.0.0"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @backstage/errors
|
||||
|
||||
## 1.1.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 6d61b44466: The `ResponseError.fromResponse` now accepts a more narrow response type, in order to avoid incompatibilities between different fetch implementations.
|
||||
|
||||
The `response` property of `ResponseError` has also been narrowed to a new `ConsumedResponse` type that omits all the properties for consuming the body of the response. This is not considered a breaking change as it was always an error to try to consume the body of the response.
|
||||
|
||||
## 1.0.0
|
||||
|
||||
### Major Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/errors",
|
||||
"description": "Common utilities for error handling within Backstage",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.0-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -38,7 +38,7 @@
|
||||
"serialize-error": "^8.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.1",
|
||||
"@types/jest": "^26.0.7"
|
||||
},
|
||||
"files": [
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
# @backstage/integration-react
|
||||
|
||||
## 1.1.2-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.10.0-next.2
|
||||
- @backstage/theme@0.2.16-next.1
|
||||
- @backstage/integration@1.2.2-next.2
|
||||
|
||||
## 1.1.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.6-next.1
|
||||
- @backstage/theme@0.2.16-next.0
|
||||
- @backstage/integration@1.2.2-next.1
|
||||
|
||||
## 1.1.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/integration-react",
|
||||
"description": "Frontend package for managing integrations towards external systems",
|
||||
"version": "1.1.2-next.0",
|
||||
"version": "1.1.2-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -25,10 +25,10 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/core-components": "^0.9.6-next.0",
|
||||
"@backstage/core-components": "^0.10.0-next.2",
|
||||
"@backstage/core-plugin-api": "^1.0.3",
|
||||
"@backstage/integration": "^1.2.2-next.0",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@backstage/integration": "^1.2.2-next.2",
|
||||
"@backstage/theme": "^0.2.16-next.1",
|
||||
"@material-ui/core": "^4.12.2",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
"@material-ui/lab": "4.0.0-alpha.57",
|
||||
@@ -38,15 +38,15 @@
|
||||
"react": "^16.13.1 || ^17.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/dev-utils": "^1.0.4-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@backstage/dev-utils": "^1.0.4-next.2",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^12.1.3",
|
||||
"@testing-library/user-event": "^14.0.0",
|
||||
"@types/jest": "^26.0.7",
|
||||
"@types/node": "^16.11.26",
|
||||
"msw": "^0.42.0",
|
||||
"msw": "^0.43.0",
|
||||
"cross-fetch": "^3.1.5"
|
||||
},
|
||||
"files": [
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
# @backstage/integration
|
||||
|
||||
## 1.2.2-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- e2d7b76f43: Upgrade git-url-parse to 12.0.0.
|
||||
|
||||
Motivation for upgrade is transitively upgrading parse-url which is vulnerable
|
||||
to several CVEs detected by Snyk.
|
||||
|
||||
- SNYK-JS-PARSEURL-2935944
|
||||
- SNYK-JS-PARSEURL-2935947
|
||||
- SNYK-JS-PARSEURL-2936249
|
||||
|
||||
## 1.2.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.1.0-next.0
|
||||
|
||||
## 1.2.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/integration",
|
||||
"description": "Helpers for managing integrations towards external systems",
|
||||
"version": "1.2.2-next.0",
|
||||
"version": "1.2.2-next.2",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -34,21 +34,21 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/errors": "^1.0.0",
|
||||
"@backstage/errors": "^1.1.0-next.0",
|
||||
"cross-fetch": "^3.1.5",
|
||||
"git-url-parse": "^11.6.0",
|
||||
"git-url-parse": "^12.0.0",
|
||||
"@octokit/rest": "^18.5.3",
|
||||
"@octokit/auth-app": "^3.4.0",
|
||||
"luxon": "^2.0.2",
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/config-loader": "^1.1.2",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@backstage/config-loader": "^1.1.3-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@types/jest": "^26.0.7",
|
||||
"@types/luxon": "^2.0.4",
|
||||
"msw": "^0.42.0"
|
||||
"msw": "^0.43.0"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
|
||||
@@ -108,6 +108,20 @@ describe('bitbucketServer core', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('does not double encode the filepath', async () => {
|
||||
const config: BitbucketServerIntegrationConfig = {
|
||||
host: 'bitbucket.mycompany.net',
|
||||
apiBaseUrl: 'https://api.bitbucket.mycompany.net/rest/api/1.0',
|
||||
};
|
||||
const result = await getBitbucketServerDownloadUrl(
|
||||
'https://bitbucket.mycompany.net/projects/backstage/repos/mock/browse/%2Fdocs?at=some-branch',
|
||||
config,
|
||||
);
|
||||
expect(result).toEqual(
|
||||
'https://api.bitbucket.mycompany.net/rest/api/1.0/projects/backstage/repos/mock/archive?format=tgz&at=some-branch&prefix=backstage-mock&path=%2Fdocs',
|
||||
);
|
||||
});
|
||||
|
||||
it('do not add path param if no path is specified for Bitbucket Server', async () => {
|
||||
const defaultBranchResponse = {
|
||||
displayId: 'main',
|
||||
|
||||
@@ -83,7 +83,9 @@ export async function getBitbucketServerDownloadUrl(
|
||||
// path will limit the downloaded content
|
||||
// /docs will only download the docs folder and everything below it
|
||||
// /docs/index.md will download the docs folder and everything below it
|
||||
const path = filepath ? `&path=${encodeURIComponent(filepath)}` : '';
|
||||
const path = filepath
|
||||
? `&path=${encodeURIComponent(decodeURIComponent(filepath))}`
|
||||
: '';
|
||||
return `${config.apiBaseUrl}/projects/${project}/repos/${repoName}/archive?format=tgz&at=${branch}&prefix=${project}-${repoName}${path}`;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"msw": "^0.42.0",
|
||||
"msw": "^0.43.0",
|
||||
"@types/jest": "^26.0.7",
|
||||
"@types/node": "^16.0.0"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,35 @@
|
||||
# techdocs-cli-embedded-app
|
||||
|
||||
## 0.2.72-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.10.0-next.2
|
||||
- @backstage/catalog-model@1.1.0-next.2
|
||||
- @backstage/theme@0.2.16-next.1
|
||||
- @backstage/plugin-techdocs@1.2.1-next.2
|
||||
- @backstage/plugin-catalog@1.4.0-next.2
|
||||
- @backstage/cli@0.18.0-next.2
|
||||
- @backstage/app-defaults@1.0.4-next.2
|
||||
- @backstage/integration-react@1.1.2-next.2
|
||||
- @backstage/plugin-techdocs-react@1.0.2-next.1
|
||||
|
||||
## 0.2.72-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.6-next.1
|
||||
- @backstage/cli@0.18.0-next.1
|
||||
- @backstage/catalog-model@1.1.0-next.1
|
||||
- @backstage/plugin-catalog@1.3.1-next.1
|
||||
- @backstage/theme@0.2.16-next.0
|
||||
- @backstage/plugin-techdocs@1.2.1-next.1
|
||||
- @backstage/app-defaults@1.0.4-next.1
|
||||
- @backstage/integration-react@1.1.2-next.1
|
||||
- @backstage/test-utils@1.1.2-next.1
|
||||
|
||||
## 0.2.72-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"name": "techdocs-cli-embedded-app",
|
||||
"version": "0.2.72-next.0",
|
||||
"version": "0.2.72-next.2",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
},
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"@backstage/app-defaults": "^1.0.4-next.0",
|
||||
"@backstage/catalog-model": "^1.1.0-next.0",
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/app-defaults": "^1.0.4-next.2",
|
||||
"@backstage/catalog-model": "^1.1.0-next.2",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/core-app-api": "^1.0.4-next.0",
|
||||
"@backstage/core-components": "^0.9.6-next.0",
|
||||
"@backstage/core-components": "^0.10.0-next.2",
|
||||
"@backstage/core-plugin-api": "^1.0.3",
|
||||
"@backstage/integration-react": "^1.1.2-next.0",
|
||||
"@backstage/plugin-catalog": "^1.3.1-next.0",
|
||||
"@backstage/plugin-techdocs": "^1.2.1-next.0",
|
||||
"@backstage/plugin-techdocs-react": "^1.0.2-next.0",
|
||||
"@backstage/test-utils": "^1.1.2-next.0",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@backstage/integration-react": "^1.1.2-next.2",
|
||||
"@backstage/plugin-catalog": "^1.4.0-next.2",
|
||||
"@backstage/plugin-techdocs": "^1.2.1-next.2",
|
||||
"@backstage/plugin-techdocs-react": "^1.0.2-next.1",
|
||||
"@backstage/test-utils": "^1.1.2-next.1",
|
||||
"@backstage/theme": "^0.2.16-next.1",
|
||||
"@material-ui/core": "^4.11.0",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
"history": "^5.0.0",
|
||||
@@ -30,7 +30,7 @@
|
||||
"react-use": "^17.2.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.2",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^12.1.3",
|
||||
"@testing-library/user-event": "^14.0.0",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @techdocs/cli
|
||||
|
||||
## 1.1.3-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- a5d73da942: Fix the flag parsing for `legacyCopyReadmeMdToIndexMd` in `techdocs-cli generate` command, and decouple it's logic from the `techdocs-ref` flag.
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-techdocs-node@1.2.0-next.1
|
||||
- @backstage/catalog-model@1.1.0-next.1
|
||||
- @backstage/backend-common@0.14.1-next.1
|
||||
|
||||
## 1.1.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
## CLI Report file for "@techdocs/cli"
|
||||
|
||||
> Do not edit this file. It is a report generated by `yarn build:api-reports`
|
||||
|
||||
### `techdocs-cli`
|
||||
|
||||
```
|
||||
Usage: techdocs-cli [options] [command]
|
||||
|
||||
Options:
|
||||
-V, --version
|
||||
-h, --help
|
||||
|
||||
Commands:
|
||||
generate|build [options]
|
||||
migrate [options]
|
||||
publish [options]
|
||||
serve:mkdocs [options]
|
||||
serve [options]
|
||||
help [command]
|
||||
```
|
||||
|
||||
### `techdocs-cli generate`
|
||||
|
||||
```
|
||||
Usage: techdocs-cli generate|build [options]
|
||||
|
||||
Options:
|
||||
--source-dir <PATH>
|
||||
--output-dir <PATH>
|
||||
--docker-image <DOCKER_IMAGE>
|
||||
--no-pull
|
||||
--no-docker
|
||||
--techdocs-ref <HOST_TYPE:URL>
|
||||
--etag <ETAG>
|
||||
-v --verbose
|
||||
--omitTechdocsCoreMkdocsPlugin
|
||||
--legacyCopyReadmeMdToIndexMd
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `techdocs-cli migrate`
|
||||
|
||||
```
|
||||
Usage: techdocs-cli migrate [options]
|
||||
|
||||
Options:
|
||||
--publisher-type <TYPE>
|
||||
--storage-name <BUCKET/CONTAINER NAME>
|
||||
--azureAccountName <AZURE ACCOUNT NAME>
|
||||
--azureAccountKey <AZURE ACCOUNT KEY>
|
||||
--awsRoleArn <AWS ROLE ARN>
|
||||
--awsEndpoint <AWS ENDPOINT>
|
||||
--awsS3ForcePathStyle
|
||||
--awsBucketRootPath
|
||||
--osCredentialId <OPENSTACK SWIFT APPLICATION CREDENTIAL ID>
|
||||
--osSecret <OPENSTACK SWIFT APPLICATION CREDENTIAL SECRET>
|
||||
--osAuthUrl <OPENSTACK SWIFT AUTHURL>
|
||||
--osSwiftUrl <OPENSTACK SWIFT SWIFTURL>
|
||||
--removeOriginal
|
||||
--concurrency <MAX CONCURRENT REQS>
|
||||
-v --verbose
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `techdocs-cli publish`
|
||||
|
||||
```
|
||||
Usage: techdocs-cli publish [options]
|
||||
|
||||
Options:
|
||||
--publisher-type <TYPE>
|
||||
--storage-name <BUCKET/CONTAINER NAME>
|
||||
--entity <NAMESPACE/KIND/NAME>
|
||||
--legacyUseCaseSensitiveTripletPaths
|
||||
--azureAccountName <AZURE ACCOUNT NAME>
|
||||
--azureAccountKey <AZURE ACCOUNT KEY>
|
||||
--awsRoleArn <AWS ROLE ARN>
|
||||
--awsEndpoint <AWS ENDPOINT>
|
||||
--awsS3sse <AWS SSE>
|
||||
--awsS3ForcePathStyle
|
||||
--osCredentialId <OPENSTACK SWIFT APPLICATION CREDENTIAL ID>
|
||||
--osSecret <OPENSTACK SWIFT APPLICATION CREDENTIAL SECRET>
|
||||
--osAuthUrl <OPENSTACK SWIFT AUTHURL>
|
||||
--osSwiftUrl <OPENSTACK SWIFT SWIFTURL>
|
||||
--gcsBucketRootPath
|
||||
--directory <PATH>
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `techdocs-cli serve`
|
||||
|
||||
```
|
||||
Usage: techdocs-cli serve [options]
|
||||
|
||||
Options:
|
||||
-i, --docker-image <DOCKER_IMAGE>
|
||||
--docker-entrypoint <DOCKER_ENTRYPOINT>
|
||||
--no-docker
|
||||
--mkdocs-port <PORT>
|
||||
-v --verbose
|
||||
-h, --help
|
||||
```
|
||||
|
||||
### `techdocs-cli serve:mkdocs`
|
||||
|
||||
```
|
||||
Usage: techdocs-cli serve:mkdocs [options]
|
||||
|
||||
Options:
|
||||
-i, --docker-image <DOCKER_IMAGE>
|
||||
--docker-entrypoint <DOCKER_ENTRYPOINT>
|
||||
--no-docker
|
||||
-p, --port <PORT>
|
||||
-v --verbose
|
||||
-h, --help
|
||||
```
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@techdocs/cli",
|
||||
"description": "Utility CLI for managing TechDocs sites in Backstage.",
|
||||
"version": "1.1.3-next.0",
|
||||
"version": "1.1.3-next.1",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
@@ -37,7 +37,7 @@
|
||||
"techdocs-cli": "bin/techdocs-cli"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.1",
|
||||
"@types/commander": "^2.12.2",
|
||||
"@types/fs-extra": "^9.0.6",
|
||||
"@types/http-proxy": "^1.17.4",
|
||||
@@ -62,11 +62,11 @@
|
||||
"ext": "ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-common": "^0.14.1-next.0",
|
||||
"@backstage/catalog-model": "^1.1.0-next.0",
|
||||
"@backstage/backend-common": "^0.14.1-next.1",
|
||||
"@backstage/catalog-model": "^1.1.0-next.1",
|
||||
"@backstage/cli-common": "^0.1.9",
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/plugin-techdocs-node": "^1.1.3-next.0",
|
||||
"@backstage/plugin-techdocs-node": "^1.2.0-next.1",
|
||||
"@types/dockerode": "^3.3.0",
|
||||
"commander": "^9.1.0",
|
||||
"dockerode": "^3.3.1",
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @backstage/test-utils
|
||||
|
||||
## 1.1.2-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.2.16-next.0
|
||||
- @backstage/plugin-permission-common@0.6.3-next.0
|
||||
- @backstage/plugin-permission-react@0.4.3-next.0
|
||||
|
||||
## 1.1.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/test-utils",
|
||||
"description": "Utilities to test Backstage plugins and apps.",
|
||||
"version": "1.1.2-next.0",
|
||||
"version": "1.1.2-next.1",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -36,9 +36,9 @@
|
||||
"@backstage/config": "^1.0.1",
|
||||
"@backstage/core-app-api": "^1.0.4-next.0",
|
||||
"@backstage/core-plugin-api": "^1.0.3",
|
||||
"@backstage/plugin-permission-common": "^0.6.2",
|
||||
"@backstage/plugin-permission-react": "^0.4.2",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@backstage/plugin-permission-common": "^0.6.3-next.0",
|
||||
"@backstage/plugin-permission-react": "^0.4.3-next.0",
|
||||
"@backstage/theme": "^0.2.16-next.0",
|
||||
"@backstage/types": "^1.0.0",
|
||||
"@material-ui/core": "^4.12.2",
|
||||
"@material-ui/icons": "^4.11.2",
|
||||
@@ -55,10 +55,10 @@
|
||||
"react": "^16.13.1 || ^17.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.1",
|
||||
"@types/jest": "^26.0.7",
|
||||
"@types/node": "^16.11.26",
|
||||
"msw": "^0.42.0"
|
||||
"msw": "^0.43.0"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# @backstage/theme
|
||||
|
||||
## 0.2.16-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- ff4f56eb49: **DEPRECATED**: The `bursts` object from `BackstagePaletteAdditions` has been depreciated and will be removed in a future release
|
||||
|
||||
The `genPageTheme` function now includes an optional options object with an optional `fontColor` which defaults to white if not provided.
|
||||
|
||||
## 0.2.16-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 4c09c09102: Adds optional `htmlFontSize` property and also sets typography design tokens for h5 and h6 in base theme.
|
||||
|
||||
## 0.2.15
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -116,7 +116,13 @@ export function createThemeOverrides(theme: BackstageTheme): Overrides;
|
||||
export const darkTheme: BackstageTheme;
|
||||
|
||||
// @public
|
||||
export function genPageTheme(colors: string[], shape: string): PageTheme;
|
||||
export function genPageTheme(props: {
|
||||
colors: string[];
|
||||
shape: string;
|
||||
options?: {
|
||||
fontColor?: string;
|
||||
};
|
||||
}): PageTheme;
|
||||
|
||||
// @public
|
||||
export const lightTheme: BackstageTheme;
|
||||
@@ -126,6 +132,7 @@ export type PageTheme = {
|
||||
colors: string[];
|
||||
shape: string;
|
||||
backgroundImage: string;
|
||||
fontColor: string;
|
||||
};
|
||||
|
||||
// @public
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/theme",
|
||||
"description": "material-ui theme for use with Backstage.",
|
||||
"version": "0.2.15",
|
||||
"version": "0.2.16-next.1",
|
||||
"private": false,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
@@ -36,7 +36,7 @@
|
||||
"@material-ui/core": "^4.12.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0"
|
||||
"@backstage/cli": "^0.18.0-next.2"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
|
||||
@@ -52,6 +52,7 @@ export const colorVariants: Record<string, string[]> = {
|
||||
eveningSea: ['#00FFF2', '#035355'],
|
||||
teal: ['#005B4B'],
|
||||
pinkSea: ['#C8077A', '#C2297D'],
|
||||
greens: ['#4BB8A5', '#187656'],
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -63,12 +64,25 @@ export const colorVariants: Record<string, string[]> = {
|
||||
* As the background shapes and colors are decorative, we place them onto the
|
||||
* page as a css background-image instead of an html element of its own.
|
||||
*/
|
||||
export function genPageTheme(colors: string[], shape: string): PageTheme {
|
||||
export function genPageTheme(props: {
|
||||
colors: string[];
|
||||
shape: string;
|
||||
options?: {
|
||||
fontColor?: string;
|
||||
};
|
||||
}): PageTheme {
|
||||
const { colors, shape, options } = props;
|
||||
const gradientColors = colors.length === 1 ? [colors[0], colors[0]] : colors;
|
||||
const gradient = `linear-gradient(90deg, ${gradientColors.join(', ')})`;
|
||||
const backgroundImage = `${shape}, ${gradient}`;
|
||||
const fontColor = options?.fontColor ?? '#FFFFFF';
|
||||
|
||||
return { colors, shape, backgroundImage };
|
||||
return {
|
||||
colors: colors,
|
||||
shape: shape,
|
||||
backgroundImage: backgroundImage,
|
||||
fontColor: fontColor,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -77,13 +91,20 @@ export function genPageTheme(colors: string[], shape: string): PageTheme {
|
||||
* @public
|
||||
*/
|
||||
export const pageTheme: Record<string, PageTheme> = {
|
||||
home: genPageTheme(colorVariants.teal, shapes.wave),
|
||||
documentation: genPageTheme(colorVariants.pinkSea, shapes.wave2),
|
||||
tool: genPageTheme(colorVariants.purpleSky, shapes.round),
|
||||
service: genPageTheme(colorVariants.marineBlue, shapes.wave),
|
||||
website: genPageTheme(colorVariants.veryBlue, shapes.wave),
|
||||
library: genPageTheme(colorVariants.rubyRed, shapes.wave),
|
||||
other: genPageTheme(colorVariants.darkGrey, shapes.wave),
|
||||
app: genPageTheme(colorVariants.toastyOrange, shapes.wave),
|
||||
apis: genPageTheme(colorVariants.teal, shapes.wave2),
|
||||
home: genPageTheme({ colors: colorVariants.teal, shape: shapes.wave }),
|
||||
documentation: genPageTheme({
|
||||
colors: colorVariants.pinkSea,
|
||||
shape: shapes.wave2,
|
||||
}),
|
||||
tool: genPageTheme({ colors: colorVariants.purpleSky, shape: shapes.round }),
|
||||
service: genPageTheme({
|
||||
colors: colorVariants.marineBlue,
|
||||
shape: shapes.wave,
|
||||
}),
|
||||
website: genPageTheme({ colors: colorVariants.veryBlue, shape: shapes.wave }),
|
||||
library: genPageTheme({ colors: colorVariants.rubyRed, shape: shapes.wave }),
|
||||
other: genPageTheme({ colors: colorVariants.darkGrey, shape: shapes.wave }),
|
||||
app: genPageTheme({ colors: colorVariants.toastyOrange, shape: shapes.wave }),
|
||||
apis: genPageTheme({ colors: colorVariants.teal, shape: shapes.wave2 }),
|
||||
card: genPageTheme({ colors: colorVariants.greens, shape: shapes.wave }),
|
||||
};
|
||||
|
||||
@@ -63,6 +63,9 @@ export type BackstagePaletteAdditions = {
|
||||
tabbar: {
|
||||
indicator: string;
|
||||
};
|
||||
/**
|
||||
* @deprecated The entire `bursts` section will be removed in a future release
|
||||
*/
|
||||
bursts: {
|
||||
fontColor: string;
|
||||
slackChannelText: string;
|
||||
@@ -161,4 +164,5 @@ export type PageTheme = {
|
||||
colors: string[];
|
||||
shape: string;
|
||||
backgroundImage: string;
|
||||
fontColor: string;
|
||||
};
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.1",
|
||||
"@types/zen-observable": "^0.8.0",
|
||||
"zen-observable": "^0.8.15"
|
||||
},
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"react": "^16.13.1 || ^17.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/cli": "^0.17.3-next.0",
|
||||
"@backstage/cli": "^0.18.0-next.1",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
"@testing-library/react": "^12.1.3",
|
||||
"@testing-library/react-hooks": "^8.0.0"
|
||||
|
||||
Reference in New Issue
Block a user