Merge branch 'backstage:master' into master3

This commit is contained in:
Abhinv Singh Parmar
2023-10-13 15:36:37 +05:30
committed by GitHub
201 changed files with 1638 additions and 716 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-app-api': patch
---
Fixed bug in `AppRouter` to determine the correct `signOutTargetUrl` if `app.baseUrl` contains a `basePath`
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-user-settings': patch
---
Added experimental support for declarative integration via the `/alpha` subpath.
+1 -1
View File
@@ -2,6 +2,6 @@
'@backstage/cli': minor
---
The new backend start command that used to be enabled by setting `EXPERIMENTAL_BACKEND_START` is now the default. To revert to the old behavior, set `LEGACY_BACKEND_START` instead.
**BREAKING** The new backend start command that used to be enabled by setting `EXPERIMENTAL_BACKEND_START` is now the default. To revert to the old behavior set `LEGACY_BACKEND_START`, which is recommended if you haven't migrated to the new backend system.
This new command is no longer based on Webpack, but instead uses Node.js loaders to transpile on the fly. Rather than hot reloading modules the entire backend is now restarted on change, but the SQLite database state is still maintained across restarts via a parent process.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-catalog-graphql': minor
'@backstage/plugin-graphql-backend': minor
---
This package has been deprecated, consider using [@frontside/backstage-plugin-graphql-backend](https://www.npmjs.com/package/@frontside/backstage-plugin-graphql-backend) instead.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': patch
---
Fixed an issue preventing the routing system to match subroutes
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-plugin-api': patch
---
Plugins can now be assigned `routes` and `externalRoutes` when created.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-techdocs': minor
---
Added experimental support for declarative integration via the `/alpha` subpath.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-catalog-backend-module-github': patch
'@backstage/cli': patch
---
Request slightly smaller pages of data from GitHub
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-app-api': patch
---
Added the `bindRoutes` option to `createApp`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-kubernetes-react': patch
---
Handle mixed decimals and bigint when calculating k8s resource usage
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/dev-utils': patch
---
Moving development `dependencies` to `devDependencies`
+8
View File
@@ -0,0 +1,8 @@
---
'@backstage/backend-common': patch
'@backstage/plugin-kubernetes-backend': patch
'@backstage/plugin-kubernetes-common': patch
'@backstage/plugin-kubernetes': patch
---
Updated dependency `@kubernetes/client-node` to `0.19.0`.
+104
View File
@@ -0,0 +1,104 @@
---
'@backstage/app-defaults': patch
'@backstage/core-app-api': patch
'@backstage/core-components': patch
'@backstage/core-plugin-api': patch
'@backstage/dev-utils': patch
'@backstage/frontend-app-api': patch
'@backstage/frontend-plugin-api': patch
'@backstage/integration-react': patch
'@backstage/test-utils': patch
'@backstage/version-bridge': patch
'@backstage/plugin-adr': patch
'@backstage/plugin-airbrake': patch
'@backstage/plugin-allure': patch
'@backstage/plugin-analytics-module-ga': patch
'@backstage/plugin-analytics-module-ga4': patch
'@backstage/plugin-analytics-module-newrelic-browser': patch
'@backstage/plugin-apache-airflow': patch
'@backstage/plugin-api-docs-module-protoc-gen-doc': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-apollo-explorer': patch
'@backstage/plugin-azure-devops': patch
'@backstage/plugin-azure-sites': patch
'@backstage/plugin-badges': patch
'@backstage/plugin-bazaar': patch
'@backstage/plugin-bitrise': patch
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-catalog-import': patch
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-catalog-unprocessed-entities': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-circleci': patch
'@backstage/plugin-cloudbuild': patch
'@backstage/plugin-code-climate': patch
'@backstage/plugin-code-coverage': patch
'@backstage/plugin-codescene': patch
'@backstage/plugin-config-schema': patch
'@backstage/plugin-cost-insights': patch
'@backstage/plugin-devtools': patch
'@backstage/plugin-dynatrace': patch
'@backstage/plugin-entity-feedback': patch
'@backstage/plugin-entity-validation': patch
'@backstage/plugin-explore-react': patch
'@backstage/plugin-explore': patch
'@backstage/plugin-firehydrant': patch
'@backstage/plugin-fossa': patch
'@backstage/plugin-gcalendar': patch
'@backstage/plugin-gcp-projects': patch
'@backstage/plugin-git-release-manager': patch
'@backstage/plugin-github-actions': patch
'@backstage/plugin-github-deployments': patch
'@backstage/plugin-github-issues': patch
'@backstage/plugin-github-pull-requests-board': patch
'@backstage/plugin-gitops-profiles': patch
'@backstage/plugin-gocd': patch
'@backstage/plugin-graphiql': patch
'@backstage/plugin-graphql-voyager': patch
'@backstage/plugin-home-react': patch
'@backstage/plugin-home': patch
'@backstage/plugin-ilert': patch
'@backstage/plugin-jenkins': patch
'@backstage/plugin-kafka': patch
'@backstage/plugin-kubernetes-cluster': patch
'@backstage/plugin-kubernetes-react': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-lighthouse': patch
'@backstage/plugin-linguist': patch
'@backstage/plugin-microsoft-calendar': patch
'@backstage/plugin-newrelic-dashboard': patch
'@backstage/plugin-newrelic': patch
'@backstage/plugin-nomad': patch
'@backstage/plugin-octopus-deploy': patch
'@backstage/plugin-opencost': patch
'@backstage/plugin-org-react': patch
'@backstage/plugin-org': patch
'@backstage/plugin-pagerduty': patch
'@backstage/plugin-periskop': patch
'@backstage/plugin-permission-react': patch
'@backstage/plugin-playlist': patch
'@backstage/plugin-puppetdb': patch
'@backstage/plugin-rollbar': patch
'@backstage/plugin-scaffolder-react': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-search-react': patch
'@backstage/plugin-search': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-shortcuts': patch
'@backstage/plugin-sonarqube': patch
'@backstage/plugin-splunk-on-call': patch
'@backstage/plugin-stack-overflow': patch
'@backstage/plugin-stackstorm': patch
'@backstage/plugin-tech-insights': patch
'@backstage/plugin-tech-radar': patch
'@backstage/plugin-techdocs-addons-test-utils': patch
'@backstage/plugin-techdocs-module-addons-contrib': patch
'@backstage/plugin-techdocs-react': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-todo': patch
'@backstage/plugin-user-settings': patch
'@backstage/plugin-vault': patch
'@backstage/plugin-xcmetrics': patch
---
Updated dependency `@testing-library/jest-dom` to `^6.0.0`.
+86
View File
@@ -0,0 +1,86 @@
---
'@backstage/core-app-api': patch
'@backstage/core-components': patch
'@backstage/core-plugin-api': patch
'@backstage/dev-utils': patch
'@backstage/integration-react': patch
'@backstage/plugin-adr': patch
'@backstage/plugin-airbrake': patch
'@backstage/plugin-allure': patch
'@backstage/plugin-analytics-module-ga': patch
'@backstage/plugin-analytics-module-ga4': patch
'@backstage/plugin-apache-airflow': patch
'@backstage/plugin-api-docs': patch
'@backstage/plugin-apollo-explorer': patch
'@backstage/plugin-azure-devops': patch
'@backstage/plugin-azure-sites': patch
'@backstage/plugin-bitrise': patch
'@backstage/plugin-catalog-graph': patch
'@backstage/plugin-catalog-import': patch
'@backstage/plugin-catalog-react': patch
'@backstage/plugin-catalog': patch
'@backstage/plugin-circleci': patch
'@backstage/plugin-cloudbuild': patch
'@backstage/plugin-code-climate': patch
'@backstage/plugin-code-coverage': patch
'@backstage/plugin-codescene': patch
'@backstage/plugin-config-schema': patch
'@backstage/plugin-cost-insights': patch
'@backstage/plugin-dynatrace': patch
'@backstage/plugin-entity-feedback': patch
'@backstage/plugin-entity-validation': patch
'@backstage/plugin-explore-react': patch
'@backstage/plugin-explore': patch
'@backstage/plugin-firehydrant': patch
'@backstage/plugin-fossa': patch
'@backstage/plugin-gcalendar': patch
'@backstage/plugin-gcp-projects': patch
'@backstage/plugin-git-release-manager': patch
'@backstage/plugin-github-actions': patch
'@backstage/plugin-github-deployments': patch
'@backstage/plugin-github-issues': patch
'@backstage/plugin-github-pull-requests-board': patch
'@backstage/plugin-gitops-profiles': patch
'@backstage/plugin-gocd': patch
'@backstage/plugin-graphiql': patch
'@backstage/plugin-graphql-voyager': patch
'@backstage/plugin-home-react': patch
'@backstage/plugin-home': patch
'@backstage/plugin-ilert': patch
'@backstage/plugin-jenkins': patch
'@backstage/plugin-kafka': patch
'@backstage/plugin-kubernetes-cluster': patch
'@backstage/plugin-kubernetes': patch
'@backstage/plugin-lighthouse': patch
'@backstage/plugin-linguist': patch
'@backstage/plugin-microsoft-calendar': patch
'@backstage/plugin-newrelic': patch
'@backstage/plugin-octopus-deploy': patch
'@backstage/plugin-org-react': patch
'@backstage/plugin-org': patch
'@backstage/plugin-pagerduty': patch
'@backstage/plugin-periskop': patch
'@backstage/plugin-playlist': patch
'@backstage/plugin-rollbar': patch
'@backstage/plugin-scaffolder-react': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-search-react': patch
'@backstage/plugin-search': patch
'@backstage/plugin-sentry': patch
'@backstage/plugin-shortcuts': patch
'@backstage/plugin-sonarqube': patch
'@backstage/plugin-splunk-on-call': patch
'@backstage/plugin-stack-overflow': patch
'@backstage/plugin-stackstorm': patch
'@backstage/plugin-tech-insights': patch
'@backstage/plugin-tech-radar': patch
'@backstage/plugin-techdocs-addons-test-utils': patch
'@backstage/plugin-techdocs-module-addons-contrib': patch
'@backstage/plugin-techdocs': patch
'@backstage/plugin-todo': patch
'@backstage/plugin-user-settings': patch
'@backstage/plugin-vault': patch
'@backstage/plugin-xcmetrics': patch
---
Updated dependency `@testing-library/dom` to `^9.0.0`.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/plugin-kubernetes': patch
---
Updated dependency `xterm-addon-attach` to `^0.9.0`.
Updated dependency `xterm-addon-fit` to `^0.8.0`.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core-app-api': patch
---
Fixed a bug in `TranslationApi` implementation where in some cases it wouldn't notify subscribers of language changes.
+8
View File
@@ -0,0 +1,8 @@
---
'@backstage/plugin-kubernetes-backend': minor
---
**BREAKING** Allow passing undefined `labelSelector` to `KubernetesFetcher`
`KubernetesFetch` no longer auto-adds `labelSelector` when empty string was passed.
This is only applicable if you have custom ObjectProvider implementation, as build-in `KubernetesFanOutHandler` already does this
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-newrelic-dashboard': patch
---
Fix the styles for NewRelicDashboard, add more responsiveness
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/create-app': patch
---
Bump dev dependencies `lerna@7.3.0` on the template
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-search-backend': patch
---
Set the default length limit to search query to 100. To override it, define `search.maxTermLength` in the config file.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-newrelic-dashboard': minor
---
Add storybook for newrelic-dashboard plugin.
+2 -1
View File
@@ -25,6 +25,7 @@ backend's
backported
backporting
BEPs
bigint
Bigtable
Billett
bitbucket
@@ -453,4 +454,4 @@ zsh
Pulumi
Lightsail
PR
rebasing
rebasing
+4 -1
View File
@@ -159,4 +159,7 @@ e2e-test-report/
# VS Code backing up svg files
*svg.bkp
*svg.dtmp
*svg.dtmp
# Scripts
plugins-report.csv
@@ -44,6 +44,20 @@ When multiple `catalog-info.yaml` files with the same `metadata.name` property
are discovered, one will be processed and all others will be skipped. This
action is logged for further investigation.
### Local File (`type: file`) Configurations
In addition to url locations, you can use the `file` location type to bring in content from the local file system. You should only use this for local development, test setups and example data, not for production data.
You are also not able to use placeholders in them like `$text`. You can however reference other files relative to the current file. See the full [catalog example data set here](https://github.com/backstage/backstage/tree/master/packages/catalog-model/examples) for an extensive example.
Here is an example pulling in the `all.yaml` file from the examples folder. Note the use of `../../` to go up two levels from the current execution path of the backend. This is typically `packages/backend/`.
```yaml
catalog:
locations:
- type: file
target: ../../examples/all.yaml
```
### Integration Processors
Integrations may simply provide a mechanism to handle `url` location type for an
@@ -110,10 +110,11 @@ parameters:
arrayObjects:
title: Array with custom objects
type: array
minItems: 0
ui:options:
addable: false
orderable: false
removable: false
addable: true
orderable: true
removable: true
items:
type: object
properties:
+33
View File
@@ -525,6 +525,39 @@ techdocs:
This way, all iframes where the host in the src attribute is in the
`sanitizer.allowedIframeHosts` list will be displayed.
## How to render PlantUML diagram in TechDocs
PlantUML allows you to create diagrams from plain text language. Each diagram description begins with the keyword - (@startXYZ and @endXYZ, depending on the kind of diagram). For UML Diagrams, Keywords @startuml & @enduml should be used. Further details for all types of diagrams can be found at [PlantUML Language Reference Guide](https://plantuml.com/guide).
### UML Diagram Details:-
#### Embedded PlantUML Diagram Example
Here, the markdown file itself contains the diagram description.
````md
```plantuml
@startuml
title Login Sequence
ComponentA->ComponentB: Login Request
note right of ComponentB: ComponentB logs message
ComponentB->ComponentA: Login Response
@enduml
```
````
#### Referenced PlantUML Diagram Example
Here, the markdown file refers to another file (_.puml or _.pu) which contains the diagram description.
````md
```plantuml
!include umldiagram.puml
```
````
Note: To refer external diagram files, we need to include the diagrams directory in the path. Please refer [`Dockerfile`](https://github.com/backstage/techdocs-container/blob/main/Dockerfile) for details.
## How to add Mermaid support in TechDocs
To add `Mermaid` support in TechDocs, you can use [`kroki`](https://kroki.io)
+1 -1
View File
@@ -4,7 +4,7 @@
### Minor Changes
- 7077dbf131: The new backend start command that used to be enabled by setting `EXPERIMENTAL_BACKEND_START` is now the default. To revert to the old behavior, set `LEGACY_BACKEND_START` instead.
- 7077dbf131: **BREAKING** The new backend start command that used to be enabled by setting `EXPERIMENTAL_BACKEND_START` is now the default. To revert to the old behavior set `LEGACY_BACKEND_START`, which is recommended if you haven't migrated to the new backend system.
This new command is no longer based on Webpack, but instead uses Node.js loaders to transpile on the fly. Rather than hot reloading modules the entire backend is now restarted on change, but the SQLite database state is still maintained across restarts via a parent process.
+3 -3
View File
@@ -10810,15 +10810,15 @@ __metadata:
linkType: hard
"sass@npm:^1.57.1":
version: 1.69.2
resolution: "sass@npm:1.69.2"
version: 1.69.3
resolution: "sass@npm:1.69.3"
dependencies:
chokidar: ">=3.0.0 <4.0.0"
immutable: ^4.0.0
source-map-js: ">=0.6.2 <2.0.0"
bin:
sass: sass.js
checksum: 25c6aaf993a40ce33e66c6c3a25690ce573a3c890024ba3dea5416a17c7db6ec39542d4b4e62c2c429005737630d6b48ab841f99fd534ac1b441f37d2c34e0c4
checksum: b89a3370c7ede462b344e2136bf1407bf375855c1ec54f73b6257b18fe59dae5377eb9f7b25f21ae4a25d8f0bc41a165d8d7e5f693d8285b1aa51ac6056c4d19
languageName: node
linkType: hard
+1
View File
@@ -13,6 +13,7 @@
"build:api-reports": "yarn build:api-reports:only --tsc",
"build:api-reports:only": "backstage-repo-tools api-reports --allow-warnings 'packages/core-components,plugins/+(catalog|catalog-import|git-release-manager|jenkins|kubernetes)' -o ae-wrong-input-file-type --validate-release-tags",
"build:api-docs": "LANG=en_EN yarn build:api-reports --docs",
"build:plugins-report": "node ./scripts/build-plugins-report",
"tsc": "tsc",
"tsc:full": "backstage-cli repo clean && tsc --skipLibCheck false --incremental false",
"clean": "backstage-cli repo clean",
+1 -1
View File
@@ -49,7 +49,7 @@
"devDependencies": {
"@backstage/cli": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@types/react": "^16.13.1 || ^17.0.0"
},
@@ -3,11 +3,13 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
import { AnyExternalRoutes } from '@backstage/core-plugin-api';
import { AnyRoutes } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { default as React_2 } from 'react';
// @public (undocumented)
const examplePlugin: BackstagePlugin;
const examplePlugin: BackstagePlugin<AnyRoutes, AnyExternalRoutes>;
export default examplePlugin;
// @public (undocumented)
+2 -2
View File
@@ -98,8 +98,8 @@
},
"devDependencies": {
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/jquery": "^3.3.34",
+28 -9
View File
@@ -14,10 +14,18 @@
* limitations under the License.
*/
import React from 'react';
import { createApp } from '@backstage/frontend-app-api';
import { pagesPlugin } from './examples/pagesPlugin';
import graphiqlPlugin from '@backstage/plugin-graphiql/alpha';
import techRadarPlugin from '@backstage/plugin-tech-radar/alpha';
import userSettingsPlugin from '@backstage/plugin-user-settings/alpha';
import {
createExtensionOverrides,
createPageExtension,
} from '@backstage/frontend-plugin-api';
import { entityRouteRef } from '@backstage/plugin-catalog-react';
import techdocsPlugin from '@backstage/plugin-techdocs/alpha';
/*
@@ -48,16 +56,27 @@ TODO:
/* app.tsx */
const entityPageExtension = createPageExtension({
id: 'catalog:entity',
defaultPath: '/catalog/:namespace/:kind/:name',
routeRef: entityRouteRef,
loader: async () => <div>Just a temporary mocked entity page</div>,
});
const app = createApp({
features: [graphiqlPlugin, pagesPlugin, techRadarPlugin],
// bindRoutes({ bind }) {
// bind(catalogPlugin.externalRoutes, {
// createComponent: scaffolderPlugin.routes.root,
// });
// bind(scaffolderPlugin.externalRoutes, {
// registerComponent: catalogImportPlugin.routes.importPage,
// });
// },
features: [
graphiqlPlugin,
pagesPlugin,
techRadarPlugin,
techdocsPlugin,
userSettingsPlugin,
createExtensionOverrides({
extensions: [entityPageExtension],
}),
],
bindRoutes({ bind }) {
bind(pagesPlugin.externalRoutes, { pageX: pagesPlugin.routes.pageX });
},
});
// const legacyApp = createLegacyApp({ plugins: [legacyGraphiqlPlugin] });
+40 -2
View File
@@ -20,11 +20,17 @@ import {
createPageExtension,
createPlugin,
} from '@backstage/frontend-plugin-api';
import { useRouteRef, createRouteRef } from '@backstage/core-plugin-api';
import {
useRouteRef,
createRouteRef,
createExternalRouteRef,
} from '@backstage/core-plugin-api';
import { Route, Routes } from 'react-router-dom';
const indexRouteRef = createRouteRef({ id: 'index' });
const page1RouteRef = createRouteRef({ id: 'page1' });
export const externalPageXRouteRef = createExternalRouteRef({ id: 'pageX' });
export const pageXRouteRef = createRouteRef({ id: 'pageX' });
// const page2RouteRef = createSubRouteRef({
// id: 'page2',
// parent: page1RouteRef,
@@ -50,6 +56,9 @@ const IndexPage = createPageExtension({
<div>
<Link to="/search">Search</Link>
</div>
<div>
<Link to="/settings">Settings</Link>
</div>
</div>
);
};
@@ -64,6 +73,7 @@ const Page1 = createPageExtension({
loader: async () => {
const Component = () => {
const indexLink = useRouteRef(indexRouteRef);
const xLink = useRouteRef(externalPageXRouteRef);
// const page2Link = useRouteRef(page2RouteRef);
return (
@@ -72,6 +82,7 @@ const Page1 = createPageExtension({
<Link to={indexLink()}>Go back</Link>
<Link to="./page2">Page 2</Link>
{/* <Link to={page2Link()}>Page 2</Link> */}
<Link to={xLink()}>Page X</Link>
<div>
Sub-page content:
@@ -89,6 +100,26 @@ const Page1 = createPageExtension({
},
});
const ExternalPage = createPageExtension({
id: 'pageX',
defaultPath: '/pageX',
routeRef: pageXRouteRef,
loader: async () => {
const Component = () => {
const indexLink = useRouteRef(indexRouteRef);
// const pageXLink = useRouteRef(pageXRouteRef);
return (
<div>
<h1>This is page X</h1>
<Link to={indexLink()}>Go back</Link>
</div>
);
};
return <Component />;
},
});
export const pagesPlugin = createPlugin({
id: 'pages',
// routes: {
@@ -98,5 +129,12 @@ export const pagesPlugin = createPlugin({
// // OR
// // 'page1'
// },
extensions: [IndexPage, Page1],
routes: {
page1: page1RouteRef,
pageX: pageXRouteRef,
},
externalRoutes: {
pageX: externalPageXRouteRef,
},
extensions: [IndexPage, Page1, ExternalPage],
});
+2 -2
View File
@@ -104,8 +104,8 @@
"devDependencies": {
"@backstage/test-utils": "workspace:^",
"@playwright/test": "^1.32.3",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/jquery": "^3.3.34",
+1 -1
View File
@@ -67,7 +67,7 @@
"@google-cloud/storage": "^6.0.0",
"@keyv/memcache": "^1.3.5",
"@keyv/redis": "^2.5.3",
"@kubernetes/client-node": "0.18.1",
"@kubernetes/client-node": "0.19.0",
"@manypkg/get-packages": "^1.1.3",
"@octokit/rest": "^19.0.3",
"@types/cors": "^2.8.6",
-3
View File
@@ -55,7 +55,6 @@ import search from './plugins/search';
import techdocs from './plugins/techdocs';
import techInsights from './plugins/techInsights';
import todo from './plugins/todo';
import graphql from './plugins/graphql';
import app from './plugins/app';
import badges from './plugins/badges';
import jenkins from './plugins/jenkins';
@@ -155,7 +154,6 @@ async function main() {
const todoEnv = useHotMemoize(module, () => createEnv('todo'));
const kubernetesEnv = useHotMemoize(module, () => createEnv('kubernetes'));
const kafkaEnv = useHotMemoize(module, () => createEnv('kafka'));
const graphqlEnv = useHotMemoize(module, () => createEnv('graphql'));
const appEnv = useHotMemoize(module, () => createEnv('app'));
const badgesEnv = useHotMemoize(module, () => createEnv('badges'));
const jenkinsEnv = useHotMemoize(module, () => createEnv('jenkins'));
@@ -190,7 +188,6 @@ async function main() {
apiRouter.use('/kubernetes', await kubernetes(kubernetesEnv));
apiRouter.use('/kafka', await kafka(kafkaEnv));
apiRouter.use('/proxy', await proxy(proxyEnv));
apiRouter.use('/graphql', await graphql(graphqlEnv));
apiRouter.use('/badges', await badges(badgesEnv));
apiRouter.use('/jenkins', await jenkins(jenkinsEnv));
apiRouter.use('/permission', await permission(permissionEnv));
-28
View File
@@ -1,28 +0,0 @@
/*
* Copyright 2020 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { createRouter } from '@backstage/plugin-graphql-backend';
import { Router } from 'express';
import { PluginEnvironment } from '../types';
export default async function createPlugin(
env: PluginEnvironment,
): Promise<Router> {
return await createRouter({
logger: env.logger,
config: env.config,
});
}
+1 -1
View File
@@ -61,7 +61,7 @@
### Minor Changes
- 7077dbf131: The new backend start command that used to be enabled by setting `EXPERIMENTAL_BACKEND_START` is now the default. To revert to the old behavior, set `LEGACY_BACKEND_START` instead.
- 7077dbf131: **BREAKING** The new backend start command that used to be enabled by setting `EXPERIMENTAL_BACKEND_START` is now the default. To revert to the old behavior set `LEGACY_BACKEND_START`, which is recommended if you haven't migrated to the new backend system.
This new command is no longer based on Webpack, but instead uses Node.js loaders to transpile on the fly. Rather than hot reloading modules the entire backend is now restarted on change, but the SQLite database state is still maintained across restarts via a parent process.
@@ -113,7 +113,7 @@ export class GithubDiscoveryProvider implements Provider {
const query = `query repositories($org: String!, $cursor: String) {
repositoryOwner(login: $org) {
login
repositories(first: 100, after: $cursor) {
repositories(first: 50, after: $cursor) {
nodes {
name
url
+2 -2
View File
@@ -64,8 +64,8 @@
"devDependencies": {
"@backstage/cli": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^14.0.0",
@@ -377,8 +377,7 @@ describe('I18nextTranslationApi', () => {
},
});
});
expect(translations).toEqual(['foo', null, 'Föö', null, 'Føø']);
expect(translations).toEqual(['foo', 'Föö', 'Føø']);
});
describe('formatting', () => {
@@ -241,7 +241,6 @@ export class I18nextTranslationApi implements TranslationApi {
return new ObservableImpl<TranslationSnapshot<TMessages>>(subscriber => {
let loadTicket = {}; // To check for stale loads
let lastSnapshotWasReady = false;
const loadResource = () => {
loadTicket = {};
@@ -250,8 +249,7 @@ export class I18nextTranslationApi implements TranslationApi {
() => {
if (ticket === loadTicket) {
const snapshot = this.#createSnapshot(internalRef);
if (snapshot.ready || lastSnapshotWasReady) {
lastSnapshotWasReady = snapshot.ready;
if (snapshot.ready) {
subscriber.next(snapshot);
}
}
@@ -266,12 +264,9 @@ export class I18nextTranslationApi implements TranslationApi {
const onChange = () => {
const snapshot = this.#createSnapshot(internalRef);
if (lastSnapshotWasReady && !snapshot.ready) {
lastSnapshotWasReady = snapshot.ready;
if (snapshot.ready) {
subscriber.next(snapshot);
}
if (!snapshot.ready) {
} else {
loadResource();
}
};
+1 -1
View File
@@ -70,7 +70,7 @@ function SignInPageWrapper({
}) {
const [identityApi, setIdentityApi] = useState<IdentityApi>();
const configApi = useApi(configApiRef);
const basePath = getBasePath(configApi);
const basePath = readBasePath(configApi);
if (!identityApi) {
return <Component onSignInSuccess={setIdentityApi} />;
+2 -2
View File
@@ -86,8 +86,8 @@
"@backstage/cli": "workspace:^",
"@backstage/core-app-api": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^14.0.0",
+2 -2
View File
@@ -62,8 +62,8 @@
"@backstage/cli": "workspace:^",
"@backstage/core-app-api": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^14.0.0"
@@ -103,6 +103,7 @@ describe('tasks', () => {
const mockDir = createMockDirectory();
const origCwd = process.cwd();
const realChdir = process.chdir;
// If anyone calls chdir then make it resolve within the tmpdir
const mockChdir = jest.spyOn(process, 'chdir');
@@ -130,6 +131,10 @@ describe('tasks', () => {
mockChdir.mockReset();
});
afterAll(() => {
realChdir(origCwd);
});
describe('checkAppExistsTask', () => {
it('should do nothing if the directory does not exist', async () => {
const dir = 'projects/';
@@ -1,6 +1,6 @@
{
"packages": ["packages/*", "plugins/*"],
"npmClient": "yarn",
"useWorkspaces": true,
"version": "0.1.0"
"version": "0.1.0",
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
}
@@ -36,7 +36,7 @@
"@playwright/test": "^1.32.3",
"@spotify/prettier-config": "^12.0.0",
"concurrently": "^8.0.0",
"lerna": "^4.0.0",
"lerna": "^7.3.0",
"node-gyp": "^9.0.0",
"prettier": "^2.3.2",
"typescript": "~5.2.0"
+8 -8
View File
@@ -40,17 +40,11 @@
"@backstage/core-plugin-api": "workspace:^",
"@backstage/integration-react": "workspace:^",
"@backstage/plugin-catalog-react": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@backstage/theme": "workspace:^",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/react": "^16.13.1 || ^17.0.0",
"react-use": "^17.2.4",
"zen-observable": "^0.10.0"
"react-use": "^17.2.4"
},
"peerDependencies": {
"react": "^16.13.1 || ^17.0.0",
@@ -58,7 +52,13 @@
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
},
"devDependencies": {
"@backstage/cli": "workspace:^"
"@backstage/cli": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"zen-observable": "^0.10.0"
},
"files": [
"dist"
+2
View File
@@ -3,6 +3,7 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
import { AppRouteBinder } from '@backstage/core-app-api';
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Config } from '@backstage/config';
import { ConfigApi } from '@backstage/core-plugin-api';
@@ -14,6 +15,7 @@ import { JSX as JSX_2 } from 'react';
export function createApp(options: {
features?: (BackstagePlugin | ExtensionOverrides)[];
configLoader?: () => Promise<ConfigApi>;
bindRoutes?(context: { bind: AppRouteBinder }): void;
featureLoader?: (ctx: {
config: ConfigApi;
}) => Promise<(BackstagePlugin | ExtensionOverrides)[]>;
+1 -1
View File
@@ -25,7 +25,7 @@
"devDependencies": {
"@backstage/cli": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3"
},
"configSchema": "config.d.ts",
@@ -39,7 +39,7 @@ export const CoreRoutes = createExtension({
const Routes = () => {
const element = useRoutes(
inputs.routes.map(route => ({
path: route.path,
path: `${route.path}/*`,
element: route.element,
})),
);
@@ -57,6 +57,7 @@ import {
ApiFactoryRegistry,
ApiProvider,
ApiResolver,
AppRouteBinder,
AppThemeSelector,
} from '@backstage/core-app-api';
@@ -76,6 +77,12 @@ import { overrideBaseUrlConfigs } from '../../../core-app-api/src/app/overrideBa
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import { RoutingProvider } from '../../../core-app-api/src/routing/RoutingProvider';
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import { resolveRouteBindings } from '../../../core-app-api/src/app/resolveRouteBindings';
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import { AppLanguageSelector } from '../../../core-app-api/src/apis/implementations/AppLanguageApi/AppLanguageSelector';
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import { I18nextTranslationApi } from '../../../core-app-api/src/apis/implementations/TranslationApi/I18nextTranslationApi';
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
import {
apis as defaultApis,
components as defaultComponents,
@@ -86,6 +93,10 @@ import { SidebarItem } from '@backstage/core-components';
import { DarkTheme, LightTheme } from '../extensions/themes';
import { extractRouteInfoFromInstanceTree } from '../routing/extractRouteInfoFromInstanceTree';
import { getOrCreateGlobalSingleton } from '@backstage/version-bridge';
import {
appLanguageApiRef,
translationApiRef,
} from '@backstage/core-plugin-api/alpha';
/** @public */
export interface ExtensionTreeNode {
@@ -261,6 +272,7 @@ export function createInstances(options: {
export function createApp(options: {
features?: (BackstagePlugin | ExtensionOverrides)[];
configLoader?: () => Promise<ConfigApi>;
bindRoutes?(context: { bind: AppRouteBinder }): void;
featureLoader?: (ctx: {
config: ConfigApi;
}) => Promise<(BackstagePlugin | ExtensionOverrides)[]>;
@@ -301,7 +313,7 @@ export function createApp(options: {
<AppThemeProvider>
<RoutingProvider
{...extractRouteInfoFromInstanceTree(coreInstance)}
routeBindings={new Map(/* TODO */)}
routeBindings={resolveRouteBindings(options.bindRoutes)}
>
{/* TODO: set base path using the logic from AppRouter */}
<BrowserRouter>
@@ -460,6 +472,21 @@ function createApiHolder(
factory: () => configApi,
});
factoryRegistry.register('static', {
api: appLanguageApiRef,
deps: {},
factory: () => AppLanguageSelector.createWithStorage(),
});
factoryRegistry.register('default', {
api: translationApiRef,
deps: { languageApi: appLanguageApiRef },
factory: ({ languageApi }) =>
I18nextTranslationApi.create({
languageApi,
}),
});
// TODO: ship these as default extensions instead
for (const factory of defaultApis as AnyApiFactory[]) {
if (!factoryRegistry.register('app', factory)) {
+24 -3
View File
@@ -7,6 +7,8 @@
import { AnyApiFactory } from '@backstage/core-plugin-api';
import { AnyApiRef } from '@backstage/core-plugin-api';
import { AnyExternalRoutes } from '@backstage/core-plugin-api';
import { AnyRoutes } from '@backstage/core-plugin-api';
import { AppTheme } from '@backstage/core-plugin-api';
import { IconComponent } from '@backstage/core-plugin-api';
import { JsonObject } from '@backstage/types';
@@ -40,13 +42,20 @@ export type AnyExtensionInputMap = {
};
// @public (undocumented)
export interface BackstagePlugin {
export interface BackstagePlugin<
Routes extends AnyRoutes = AnyRoutes,
ExternalRoutes extends AnyExternalRoutes = AnyExternalRoutes,
> {
// (undocumented)
$$type: '@backstage/BackstagePlugin';
// (undocumented)
extensions: Extension<unknown>[];
// (undocumented)
externalRoutes: ExternalRoutes;
// (undocumented)
id: string;
// (undocumented)
routes: Routes;
}
// @public (undocumented)
@@ -205,7 +214,12 @@ export function createPageExtension<
): Extension<TConfig>;
// @public (undocumented)
export function createPlugin(options: PluginOptions): BackstagePlugin;
export function createPlugin<
Routes extends AnyRoutes = AnyRoutes,
ExternalRoutes extends AnyExternalRoutes = AnyExternalRoutes,
>(
options: PluginOptions<Routes, ExternalRoutes>,
): BackstagePlugin<Routes, ExternalRoutes>;
// @public (undocumented)
export function createSchemaFromZod<TOutput, TInput>(
@@ -338,11 +352,18 @@ export type NavTarget = {
};
// @public (undocumented)
export interface PluginOptions {
export interface PluginOptions<
Routes extends AnyRoutes,
ExternalRoutes extends AnyExternalRoutes,
> {
// (undocumented)
extensions?: Extension<unknown>[];
// (undocumented)
externalRoutes?: ExternalRoutes;
// (undocumented)
id: string;
// (undocumented)
routes?: Routes;
}
// @public (undocumented)
+1 -1
View File
@@ -26,7 +26,7 @@
"@backstage/cli": "workspace:^",
"@backstage/frontend-app-api": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3"
},
"files": [
@@ -14,26 +14,44 @@
* limitations under the License.
*/
import { AnyExternalRoutes, AnyRoutes } from '@backstage/core-plugin-api';
import { Extension } from './createExtension';
/** @public */
export interface PluginOptions {
export interface PluginOptions<
Routes extends AnyRoutes,
ExternalRoutes extends AnyExternalRoutes,
> {
id: string;
routes?: Routes;
externalRoutes?: ExternalRoutes;
extensions?: Extension<unknown>[];
}
/** @public */
export interface BackstagePlugin {
export interface BackstagePlugin<
Routes extends AnyRoutes = AnyRoutes,
ExternalRoutes extends AnyExternalRoutes = AnyExternalRoutes,
> {
$$type: '@backstage/BackstagePlugin';
id: string;
extensions: Extension<unknown>[];
routes: Routes;
externalRoutes: ExternalRoutes;
}
/** @public */
export function createPlugin(options: PluginOptions): BackstagePlugin {
export function createPlugin<
Routes extends AnyRoutes = AnyRoutes,
ExternalRoutes extends AnyExternalRoutes = AnyExternalRoutes,
>(
options: PluginOptions<Routes, ExternalRoutes>,
): BackstagePlugin<Routes, ExternalRoutes> {
return {
...options,
$$type: '@backstage/BackstagePlugin',
routes: options.routes ?? ({} as Routes),
externalRoutes: options.externalRoutes ?? ({} as ExternalRoutes),
extensions: options.extensions ?? [],
$$type: '@backstage/BackstagePlugin',
};
}
+2 -2
View File
@@ -47,8 +47,8 @@
"@backstage/core-components": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"msw": "^1.0.0"
},
"files": [
@@ -36,8 +36,8 @@
},
"devDependencies": {
"@backstage/cli": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/react": "*",
+1 -1
View File
@@ -68,7 +68,7 @@
},
"devDependencies": {
"@backstage/cli": "workspace:^",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/jest-dom": "^6.0.0",
"msw": "^1.0.0"
},
"files": [
+1 -1
View File
@@ -42,7 +42,7 @@
},
"devDependencies": {
"@backstage/cli": "workspace:^",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0"
},
+3 -1
View File
@@ -3,6 +3,8 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
import { AnyExternalRoutes } from '@backstage/core-plugin-api';
import { AnyRoutes } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
import { TranslationRef } from '@backstage/core-plugin-api/alpha';
@@ -24,7 +26,7 @@ export const adrTranslationRef: TranslationRef<
>;
// @alpha (undocumented)
const _default: BackstagePlugin;
const _default: BackstagePlugin<AnyRoutes, AnyExternalRoutes>;
export default _default;
// (No @packageDocumentation comment for this package)
+2 -2
View File
@@ -71,8 +71,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/git-url-parse": "^9.0.0",
+2 -2
View File
@@ -52,8 +52,8 @@
"@backstage/cli": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
+2 -2
View File
@@ -51,8 +51,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
+2 -2
View File
@@ -49,8 +49,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/react": "^16.13.1 || ^17.0.0",
+2 -2
View File
@@ -46,8 +46,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/jest": "^28.1.3",
@@ -37,7 +37,7 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
+2 -2
View File
@@ -49,8 +49,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
@@ -42,7 +42,7 @@
},
"devDependencies": {
"@backstage/cli": "workspace:^",
"@testing-library/jest-dom": "^5.16.4"
"@testing-library/jest-dom": "^6.0.0"
},
"files": [
"dist"
+2 -2
View File
@@ -61,8 +61,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/swagger-ui-react": "^4.18.0",
+2 -2
View File
@@ -49,8 +49,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
@@ -18,7 +18,7 @@ import {
createServiceBuilder,
loadBackendConfig,
ServerTokenManager,
SingleHostDiscovery,
HostDiscovery,
useHotMemoize,
} from '@backstage/backend-common';
import { Server } from 'http';
@@ -35,7 +35,7 @@ export async function startStandaloneServer(
): Promise<Server> {
const logger = options.logger.child({ service: 'auth-backend' });
const config = await loadBackendConfig({ logger, argv: process.argv });
const discovery = SingleHostDiscovery.fromConfig(config);
const discovery = HostDiscovery.fromConfig(config);
const database = useHotMemoize(module, () => {
const knex = Knex({
+2 -2
View File
@@ -54,8 +54,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
+2 -2
View File
@@ -56,8 +56,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
@@ -20,7 +20,7 @@ import {
getVoidLogger,
PluginEndpointDiscovery,
ServerTokenManager,
SingleHostDiscovery,
HostDiscovery,
} from '@backstage/backend-common';
import { CatalogApi } from '@backstage/catalog-client';
import type { Entity } from '@backstage/catalog-model';
@@ -138,7 +138,7 @@ describe('createRouter', () => {
};
beforeAll(async () => {
discovery = SingleHostDiscovery.fromConfig(config);
discovery = HostDiscovery.fromConfig(config);
const tokenManager = ServerTokenManager.noop();
const router = await createRouter({
badgeBuilder,
@@ -20,7 +20,7 @@ import {
getVoidLogger,
PluginEndpointDiscovery,
ServerTokenManager,
SingleHostDiscovery,
HostDiscovery,
} from '@backstage/backend-common';
import { CatalogApi } from '@backstage/catalog-client';
import type { Entity } from '@backstage/catalog-model';
@@ -113,7 +113,7 @@ describe('createRouter', () => {
},
);
discovery = SingleHostDiscovery.fromConfig(config);
discovery = HostDiscovery.fromConfig(config);
const tokenManager = ServerTokenManager.noop();
const router = await createRouter({
badgeBuilder,
@@ -20,7 +20,7 @@ import {
createServiceBuilder,
loadBackendConfig,
ServerTokenManager,
SingleHostDiscovery,
HostDiscovery,
useHotMemoize,
} from '@backstage/backend-common';
import { createRouter } from './router';
@@ -39,7 +39,7 @@ export async function startStandaloneServer(
): Promise<Server> {
const logger = options.logger.child({ service: 'badges-backend' });
const config = await loadBackendConfig({ logger, argv: process.argv });
const discovery = SingleHostDiscovery.fromConfig(config);
const discovery = HostDiscovery.fromConfig(config);
const database = useHotMemoize(module, () => {
return Knex({
client: 'better-sqlite3',
+1 -1
View File
@@ -52,7 +52,7 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/jest-dom": "^5.16.5"
"@testing-library/jest-dom": "^6.0.0"
},
"files": [
"dist"
+2 -2
View File
@@ -43,7 +43,7 @@
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.61",
"@material-ui/pickers": "^3.3.10",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/jest-dom": "^6.0.0",
"@types/react": "^16.13.1 || ^17.0.0",
"luxon": "^3.0.0",
"material-ui-search-bar": "^1.0.0",
@@ -58,7 +58,7 @@
"devDependencies": {
"@backstage/cli": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@testing-library/jest-dom": "^5.10.1"
"@testing-library/jest-dom": "^6.0.0"
},
"files": [
"dist"
+2 -2
View File
@@ -55,8 +55,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/recharts": "^1.8.15",
@@ -462,7 +462,7 @@ export async function getOrganizationRepositories(
query repositories($org: String!, $catalogPathRef: String!, $cursor: String) {
repositoryOwner(login: $org) {
login
repositories(first: 100, after: $cursor) {
repositories(first: 50, after: $cursor) {
nodes {
name
catalogInfoFile: object(expression: $catalogPathRef) {
@@ -19,7 +19,7 @@ import {
DatabaseManager,
loadBackendConfig,
ServerTokenManager,
SingleHostDiscovery,
HostDiscovery,
UrlReaders,
useHotMemoize,
} from '@backstage/backend-common';
@@ -53,7 +53,7 @@ export async function startStandaloneServer(
);
return manager.forPlugin('catalog');
});
const discovery = SingleHostDiscovery.fromConfig(config);
const discovery = HostDiscovery.fromConfig(config);
const tokenManager = ServerTokenManager.fromConfig(config, {
logger,
});
+2 -2
View File
@@ -57,8 +57,8 @@
"@backstage/dev-utils": "workspace:^",
"@backstage/plugin-catalog": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^14.0.0"
+1 -9
View File
@@ -1,11 +1,3 @@
# Catalog GraphQL Plugin
## Getting Started
This is the Catalog GraphQL plugin.
It provides the `catalog` part of the GraphQL schema.
To register it with the GraphQL backend, be sure to follow the [Getting Started](../graphql-backend/README.md#getting-started) guide of the GraphQL plugin.
<!-- TODO: Need to make the GraphQL plugin compatible with non forked repos >
This package has been deprecated, consider using [@frontside/backstage-plugin-graphql-backend](https://www.npmjs.com/package/@frontside/backstage-plugin-graphql-backend) instead.
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@backstage/plugin-catalog-graphql",
"description": "An experimental Backstage catalog GraphQL module",
"description": "Deprecated, consider using @frontside/backstage-plugin-graphql-backend instead",
"version": "0.3.24-next.0",
"main": "src/index.ts",
"types": "src/index.ts",
+2 -2
View File
@@ -65,8 +65,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^14.0.0",
+2 -2
View File
@@ -82,8 +82,8 @@
"@backstage/plugin-catalog-common": "workspace:^",
"@backstage/plugin-scaffolder-common": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/react-hooks": "^8.0.0",
"@testing-library/user-event": "^14.0.0",
@@ -50,7 +50,7 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
+3 -1
View File
@@ -3,6 +3,8 @@
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
```ts
import { AnyExternalRoutes } from '@backstage/core-plugin-api';
import { AnyRoutes } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/frontend-plugin-api';
import { Extension } from '@backstage/frontend-plugin-api';
@@ -15,7 +17,7 @@ export const CatalogSearchResultListItemExtension: Extension<{
}>;
// @alpha (undocumented)
const _default: BackstagePlugin;
const _default: BackstagePlugin<AnyRoutes, AnyExternalRoutes>;
export default _default;
// @alpha (undocumented)
+2 -2
View File
@@ -81,8 +81,8 @@
"@backstage/dev-utils": "workspace:^",
"@backstage/plugin-permission-react": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0"
},
+2 -2
View File
@@ -59,8 +59,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/humanize-duration": "^3.25.1",
+1 -1
View File
@@ -14,4 +14,4 @@
* limitations under the License.
*/
import '@testing-library/jest-dom/extend-expect';
export {};
+2 -2
View File
@@ -57,8 +57,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"cross-fetch": "^3.1.5",
+2 -2
View File
@@ -51,8 +51,8 @@
"@backstage/cli": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/humanize-duration": "^3.27.1",
+2 -2
View File
@@ -56,8 +56,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/highlightjs": "^10.1.0",
+2 -2
View File
@@ -51,8 +51,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
+2 -2
View File
@@ -54,8 +54,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"msw": "^1.0.0"
+2 -2
View File
@@ -66,8 +66,8 @@
"@backstage/core-app-api": "workspace:^",
"@backstage/dev-utils": "workspace:^",
"@backstage/test-utils": "workspace:^",
"@testing-library/dom": "^8.0.0",
"@testing-library/jest-dom": "^5.10.1",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",
"@types/pluralize": "^0.0.31",
@@ -16,7 +16,7 @@
import {
ServerTokenManager,
SingleHostDiscovery,
HostDiscovery,
createServiceBuilder,
loadBackendConfig,
} from '@backstage/backend-common';
@@ -37,7 +37,7 @@ export async function startStandaloneServer(
): Promise<Server> {
const logger = options.logger.child({ service: 'devtools-backend-backend' });
const config = await loadBackendConfig({ logger, argv: process.argv });
const discovery = SingleHostDiscovery.fromConfig(config);
const discovery = HostDiscovery.fromConfig(config);
const tokenManager = ServerTokenManager.fromConfig(config, {
logger,
});

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