From a3907d5862f24933a95ce0738ab18af20df6ee50 Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Sun, 29 Mar 2026 19:31:14 +0530 Subject: [PATCH 1/6] feat(scorecard):Added extension for scorecard homepage and metric page Signed-off-by: rohitratannagar --- .../.local-packages/dynamic-home-page.tgz | Bin 0 -> 104119 bytes workspaces/scorecard/app-config.yaml | 29 +- .../scorecard/packages/app/package.json | 2 + workspaces/scorecard/packages/app/src/App.tsx | 8 + .../packages/app/src/modules/nav/Sidebar.tsx | 10 +- .../scorecard/plugins/scorecard/dev/index.tsx | 4 + .../scorecard/plugins/scorecard/package.json | 6 +- .../scorecard/src/alpha/extensions/api.ts | 36 ++ .../extensions/entityTab.tsx} | 78 +-- .../src/alpha/extensions/homePageCards.tsx | 71 +++ .../src/alpha/extensions/metricPage.tsx | 31 ++ .../plugins/scorecard/src/alpha/index.tsx | 84 ++++ workspaces/scorecard/yarn.lock | 469 ++++++++++++++++++ 13 files changed, 750 insertions(+), 78 deletions(-) create mode 100644 workspaces/scorecard/.local-packages/dynamic-home-page.tgz create mode 100644 workspaces/scorecard/plugins/scorecard/src/alpha/extensions/api.ts rename workspaces/scorecard/plugins/scorecard/src/{alpha.tsx => alpha/extensions/entityTab.tsx} (53%) create mode 100644 workspaces/scorecard/plugins/scorecard/src/alpha/extensions/homePageCards.tsx create mode 100644 workspaces/scorecard/plugins/scorecard/src/alpha/extensions/metricPage.tsx create mode 100644 workspaces/scorecard/plugins/scorecard/src/alpha/index.tsx diff --git a/workspaces/scorecard/.local-packages/dynamic-home-page.tgz b/workspaces/scorecard/.local-packages/dynamic-home-page.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c5230d960041f56c2265bad83b23326a265c0312 GIT binary patch literal 104119 zcmV)GK)$~piwFP!000006YRa~cH2hMD7t^^DSDXMA(fBfO*e~{?2m+KTVpG-EIW?J z_KqR4MIr(T1^{)5qP5ODoHsmAa#r=Vy3qhhS#dJo7S@a-0)4Hn?yh@H{rq;>B_ z=f~&0S4YolafK+G?zm#`=15YooE%Xf{Zr+1hArlmFGY z?}50US(5tk|7v`7U-snwL!R%*f5&vNHuBT80llDMG^O#{Xm(mZ_50^Z>JRDKG@K2C z$=cw0;*W#=+9(>+wW&X(D=Xi9N1C-}qqYTqen(#WX@5k#kv|#IWMyTIoHhpQn=QXh zo&{HQKDL#3Voz>JPrMn5?C9vul1b1&bBu;w>AcC(isfsfRux@%%)TR)i0Bv`Dj9t*>oDk zDSJDc4*V2~oyBF6#{MJ;eKy-9jf2TBsln)*gU!v&(>8f03J>U%P6l++zb0Q6MY426 zVU=Lv{!gRUY}FcHpzYI*{!VkRYw-Ms58|O@pG91B&hK z?E&4|$QgLj_rqyC8`pU^{U{dWYt)*}TJuY7h1}C$LFuEkCenPi4NHB($f(iL;7WB`F-|y2TApvZP zl{M1X>921;S{@-<`RkQlPia!mh245>OF?5NcMET9Z$29AY%DPs*6ltMrW*G;*TjAN3%&vrcp3S zNk5u}19kwOQhCDC0U6K2G?<2zq`{abwUre@-bRE@SO@7SNXQxW(^*VOkirR?q(K;x znEo~kVmbhD_1W-Qr+PrRX8`FwzfU|gd^js#`$PJLb^0udp@{@d5zd^1wToIyWZwz# z!z3a;`O=RjXTh)*48D-cY!du7qa+x>^>Y@`c$FP#vW&P#(#QltFk#)4I)eeZ39ApQvsmRB%|nZ zQe$Y_IDOPOqiunBq!b2cw13?XX$c?$SK9?c;6A^bYuElbRH&PGux_@_9<^w{Ev^ra z{Q~&`Gs}DrkQg>0+#@86hCv^Y{?Xa#`expdoYEu>Cd0KbIF0@Iy8bIoQoPT1*s&}} zmv@8?2Ak`f4cJ&Qo%Bb>wI=R6)kfag*Q8sgkG7iZ7R_!%hW2N(NuOg12YossgV-Nd z$smrVRk+ZD-)WUCC&x1~_9y<35fG&BPkpv%0hK4kqujwfI^Ei!%`H9{Mv_c?(X&9Z z3S8`~>Skwyc~0Z8KdA~RRLMc=hXK5R5uHr^2@pC6Hc2f9p8n3xMq?*$&F*#^HqdRj zojdVudfI<9Sf6(TwQ@rwxX==KN=aw~U`jh279wZ1uTkWIdu2wc{A!`*B? z@>>mG(r)yMEpt)E|&R)Sm$&`Opm}

@iV@hFmaH(#b^;_FJcLl>X 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

dHoAguNz(l<2cJjW~Lm{<1m?@@_7jVR~-47 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 i@At=yKP_akR#N-wv-+$)tIw boolean; order: number; }> = [ + { + match: p => { + const [pathWithoutQuery] = p.split('?'); + const [pathWithoutHash] = pathWithoutQuery.split('#'); + return pathWithoutHash === '/' || pathWithoutHash === '/home'; + }, + order: 0, + }, { match: p => p.includes('/catalog'), order: 1 }, { match: p => p.includes('scorecard') || p.includes('my-groups'), order: 2 }, { match: p => p.includes('/api-docs'), order: 3 }, diff --git a/workspaces/scorecard/plugins/scorecard/dev/index.tsx b/workspaces/scorecard/plugins/scorecard/dev/index.tsx index 058c8f0fbe..254f0ade05 100644 --- a/workspaces/scorecard/plugins/scorecard/dev/index.tsx +++ b/workspaces/scorecard/plugins/scorecard/dev/index.tsx @@ -46,12 +46,14 @@ import { } from '@backstage/dev-utils'; import catalogPlugin from '@backstage/plugin-catalog/alpha'; +import homePlugin from '@backstage/plugin-home/alpha'; import userSettingsPlugin from '@backstage/plugin-user-settings/alpha'; import { catalogApiRef } from '@backstage/plugin-catalog-react'; import { rhdhThemeModule } from '@red-hat-developer-hub/backstage-plugin-theme/alpha'; import scorecardPlugin, { scorecardCatalogModule, + scorecardHomeModule, scorecardTranslationsModule, } from '../src/alpha'; import { scorecardApiRef } from '../src/api'; @@ -137,8 +139,10 @@ const app = createApp({ features: [ devNavModule, catalogPlugin, + homePlugin, scorecardPlugin, scorecardCatalogModule, + scorecardHomeModule, scorecardTranslationsModule, appDevModule, catalogDevModule, diff --git a/workspaces/scorecard/plugins/scorecard/package.json b/workspaces/scorecard/plugins/scorecard/package.json index d4457aa3b7..ff0b7c88be 100644 --- a/workspaces/scorecard/plugins/scorecard/package.json +++ b/workspaces/scorecard/plugins/scorecard/package.json @@ -6,13 +6,13 @@ "types": "src/index.ts", "exports": { ".": "./src/index.ts", - "./alpha": "./src/alpha.tsx", + "./alpha": "./src/alpha/index.tsx", "./package.json": "./package.json" }, "typesVersions": { "*": { "alpha": [ - "src/alpha.tsx" + "src/alpha/index.tsx" ], "package.json": [ "package.json" @@ -55,6 +55,8 @@ "@backstage/frontend-plugin-api": "^0.13.4", "@backstage/plugin-app-react": "^0.1.0", "@backstage/plugin-catalog-react": "^1.21.3", + "@backstage/plugin-home": "^0.9.2", + "@backstage/plugin-home-react": "^0.1.35", "@backstage/plugin-permission-react": "^0.4.38", "@backstage/theme": "^0.7.0", "@mui/icons-material": "5.18.0", diff --git a/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/api.ts b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/api.ts new file mode 100644 index 0000000000..830c5540fb --- /dev/null +++ b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/api.ts @@ -0,0 +1,36 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { + ApiBlueprint, + createApiFactory, + discoveryApiRef, + fetchApiRef, +} from '@backstage/frontend-plugin-api'; +import { ScorecardApiClient, scorecardApiRef } from '../../api'; + +/** Scorecard API extension. */ +export const scorecardApi = ApiBlueprint.make({ + params: defineParams => + defineParams( + createApiFactory({ + api: scorecardApiRef, + deps: { fetchApi: fetchApiRef, discoveryApi: discoveryApiRef }, + factory: ({ fetchApi, discoveryApi }) => + new ScorecardApiClient({ fetchApi, discoveryApi }), + }), + ), +}); diff --git a/workspaces/scorecard/plugins/scorecard/src/alpha.tsx b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/entityTab.tsx similarity index 53% rename from workspaces/scorecard/plugins/scorecard/src/alpha.tsx rename to workspaces/scorecard/plugins/scorecard/src/alpha/extensions/entityTab.tsx index 435b528e81..c2fb6d3051 100644 --- a/workspaces/scorecard/plugins/scorecard/src/alpha.tsx +++ b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/entityTab.tsx @@ -14,45 +14,12 @@ * limitations under the License. */ -import { - createApiFactory, - createFrontendPlugin, - createFrontendModule, - discoveryApiRef, - fetchApiRef, - ApiBlueprint, -} from '@backstage/frontend-plugin-api'; -import { TranslationBlueprint } from '@backstage/plugin-app-react'; -import { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha'; -import { rootRouteRef } from './routes'; -import { ScorecardApiClient, scorecardApiRef } from './api'; -import { scorecardTranslations } from './translations'; import { Entity } from '@backstage/catalog-model'; - -/** Scorecard API extension */ -const scorecardApi = ApiBlueprint.make({ - params: defineParams => - defineParams( - createApiFactory({ - api: scorecardApiRef, - deps: { fetchApi: fetchApiRef, discoveryApi: discoveryApiRef }, - factory: ({ fetchApi, discoveryApi }) => - new ScorecardApiClient({ fetchApi, discoveryApi }), - }), - ), -}); - -/** - * Extension for Scorecard translations. - */ -const scorecardTranslation = TranslationBlueprint.make({ - params: { - resource: scorecardTranslations, - }, -}); +import { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha'; +import { rootRouteRef } from '../../routes'; /** - * Extension for the Scorecard Tab on Entity pages. + * Extension for the Scorecard tab on Entity pages. * @alpha */ export const scorecardEntityContent = EntityContentBlueprint.makeWithOverrides({ @@ -80,7 +47,6 @@ export const scorecardEntityContent = EntityContentBlueprint.makeWithOverrides({ filter: (entity: Entity): boolean => { const filters = config.allowedFilters; - // Default: If no config is provided, show the tab for everyone if (!filters || filters.length === 0) return true; return filters.some(f => { @@ -96,46 +62,10 @@ export const scorecardEntityContent = EntityContentBlueprint.makeWithOverrides({ }, loader: async () => { const { EntityScorecardContent } = await import( - './components/Scorecard' + '../../components/Scorecard' ); return ; }, }); }, }); - -/** - * The primary Scorecard frontend plugin. - * @alpha - */ -export default createFrontendPlugin({ - pluginId: 'scorecard', - extensions: [scorecardApi], - routes: { - root: rootRouteRef, - }, -}); - -/** - * Catalog module that automatically injects the Scorecard tab into the Catalog. - * @alpha - */ -export const scorecardCatalogModule = createFrontendModule({ - pluginId: 'catalog', - extensions: [scorecardEntityContent], -}); - -/** - * App module that automatically registers Scorecard translations. - * @alpha - */ -export const scorecardTranslationsModule = createFrontendModule({ - pluginId: 'app', - extensions: [scorecardTranslation], -}); - -/** - * Re-exporting translations for external usage. - * @alpha - */ -export * from './translations'; diff --git a/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/homePageCards.tsx b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/homePageCards.tsx new file mode 100644 index 0000000000..1f7335f030 --- /dev/null +++ b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/homePageCards.tsx @@ -0,0 +1,71 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { HomePageWidgetBlueprint } from '@backstage/plugin-home-react/alpha'; +import { ScorecardHomepageCard } from '../../components/ScorecardHomepageSection'; + +const defaultCardLayout = { + width: { + minColumns: 3, + maxColumns: 12, + defaultColumns: 4, + }, + height: { + minRows: 5, + maxRows: 12, + defaultRows: 6, + }, +} as const; + +function ScorecardHomepageContent() { + return ; +} + +function ScorecardJiraHomepageContent() { + return ; +} + +/** + * NFS widget: ScorecardHomepageCard. + * @alpha + */ +export const scorecardHomepageWidget = HomePageWidgetBlueprint.make({ + name: 'scorecard-github-homepage', + params: { + name: 'ScorecardGithubHomepage', + layout: defaultCardLayout, + components: () => + Promise.resolve({ + Content: ScorecardHomepageContent, + }), + }, +}); + +/** + * NFS widget: ScorecardHomepageCard for Jira open blocking tickets. + * @alpha + */ +export const scorecardJiraHomepageWidget = HomePageWidgetBlueprint.make({ + name: 'scorecard-jira-homepage', + params: { + name: 'ScorecardJiraHomepage', + layout: defaultCardLayout, + components: () => + Promise.resolve({ + Content: ScorecardJiraHomepageContent, + }), + }, +}); diff --git a/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/metricPage.tsx b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/metricPage.tsx new file mode 100644 index 0000000000..24fb7ad3a6 --- /dev/null +++ b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/metricPage.tsx @@ -0,0 +1,31 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { PageBlueprint } from '@backstage/frontend-plugin-api'; +import { rootRouteRef } from '../../routes'; + +/** + * NFS page extension for the Scorecard page. + * @alpha + */ +export const scorecardPage = PageBlueprint.make({ + params: { + path: '/scorecard', + routeRef: rootRouteRef, + loader: () => + import('../../pages/ScorecardPage').then(m => ), + }, +}); diff --git a/workspaces/scorecard/plugins/scorecard/src/alpha/index.tsx b/workspaces/scorecard/plugins/scorecard/src/alpha/index.tsx new file mode 100644 index 0000000000..079e74e793 --- /dev/null +++ b/workspaces/scorecard/plugins/scorecard/src/alpha/index.tsx @@ -0,0 +1,84 @@ +/* + * Copyright Red Hat, Inc. + * + * 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 { + createFrontendModule, + createFrontendPlugin, +} from '@backstage/frontend-plugin-api'; +import { TranslationBlueprint } from '@backstage/plugin-app-react'; +import { rootRouteRef } from '../routes'; +import { scorecardTranslations } from '../translations'; +import { scorecardApi } from './extensions/api'; +import { scorecardEntityContent } from './extensions/entityTab'; +import { + scorecardHomepageWidget, + scorecardJiraHomepageWidget, +} from './extensions/homePageCards'; +import { scorecardPage } from './extensions/metricPage'; + +/** + * Extension for Scorecard translations. + */ +const scorecardTranslation = TranslationBlueprint.make({ + params: { + resource: scorecardTranslations, + }, +}); + +/** + * The primary Scorecard frontend plugin. + * @alpha + */ +export default createFrontendPlugin({ + pluginId: 'scorecard', + extensions: [scorecardApi, scorecardPage], + routes: { + root: rootRouteRef, + }, +}); + +/** + * Catalog module that automatically injects the Scorecard tab into the Catalog. + * @alpha + */ +export const scorecardCatalogModule = createFrontendModule({ + pluginId: 'catalog', + extensions: [scorecardEntityContent], +}); + +/** + * App module that automatically registers Scorecard translations. + * @alpha + */ +export const scorecardTranslationsModule = createFrontendModule({ + pluginId: 'app', + extensions: [scorecardTranslation], +}); + +/** + * Home module that contributes scorecard homepage widget and layout. + * @alpha + */ +export const scorecardHomeModule = createFrontendModule({ + pluginId: 'home', + extensions: [scorecardHomepageWidget, scorecardJiraHomepageWidget], +}); + +/** + * Re-exporting translations for external usage. + * @alpha + */ +export * from '../translations'; diff --git a/workspaces/scorecard/yarn.lock b/workspaces/scorecard/yarn.lock index 1cc8c6eed0..b67cc740be 100644 --- a/workspaces/scorecard/yarn.lock +++ b/workspaces/scorecard/yarn.lock @@ -2182,6 +2182,20 @@ __metadata: languageName: node linkType: hard +"@backstage/catalog-client@npm:^1.14.0": + version: 1.14.0 + resolution: "@backstage/catalog-client@npm:1.14.0" + dependencies: + "@backstage/catalog-model": "npm:^1.7.7" + "@backstage/errors": "npm:^1.2.7" + "@backstage/filter-predicates": "npm:^0.1.1" + cross-fetch: "npm:^4.0.0" + lodash: "npm:^4.17.21" + uri-template: "npm:^2.0.0" + checksum: 10c0/f54ba5a6c2b375a465693c3efe4593f5e42c3f3a9e8a154d5f68c6db9890d658a5c96934b1260f3cb216da3ddf7e40b39119c9c0b979c469ab32ec4902b29ccf + languageName: node + linkType: hard + "@backstage/catalog-model@npm:^1.5.0, @backstage/catalog-model@npm:^1.7.4, @backstage/catalog-model@npm:^1.7.5, @backstage/catalog-model@npm:^1.7.6": version: 1.7.6 resolution: "@backstage/catalog-model@npm:1.7.6" @@ -2194,6 +2208,18 @@ __metadata: languageName: node linkType: hard +"@backstage/catalog-model@npm:^1.7.7": + version: 1.7.7 + resolution: "@backstage/catalog-model@npm:1.7.7" + dependencies: + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.2" + ajv: "npm:^8.10.0" + lodash: "npm:^4.17.21" + checksum: 10c0/eba74e24a59893f24b35e7d16be2d8c328dde1d87f5c38a14d8b5291e9b4a03bc30d72096b97ff1446ab5d2350bdb3c5ad4f2bf11a6686ed6cb8808dfa2fd1a8 + languageName: node + linkType: hard + "@backstage/cli-common@npm:^0.1.15": version: 0.1.15 resolution: "@backstage/cli-common@npm:0.1.15" @@ -2420,6 +2446,35 @@ __metadata: languageName: node linkType: hard +"@backstage/core-app-api@npm:^1.19.6": + version: 1.19.6 + resolution: "@backstage/core-app-api@npm:1.19.6" + dependencies: + "@backstage/config": "npm:^1.3.6" + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/types": "npm:^1.2.2" + "@backstage/ui": "npm:^0.13.0" + "@backstage/version-bridge": "npm:^1.0.12" + "@types/prop-types": "npm:^15.7.3" + history: "npm:^5.0.0" + i18next: "npm:^22.4.15" + lodash: "npm:^4.17.21" + prop-types: "npm:^15.7.2" + react-use: "npm:^17.2.4" + zen-observable: "npm:^0.10.0" + zod: "npm:^3.25.76 || ^4.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/5cd60623e09035b1240142941dd336a399e4f2d2455c2e4ad3de5f4e6f641181c000a0a3071c9e0f0af04ef6a68bcd4538fcfaf82b2ca2722d18e28b8f85335c + languageName: node + linkType: hard + "@backstage/core-compat-api@npm:^0.5.1, @backstage/core-compat-api@npm:^0.5.4, @backstage/core-compat-api@npm:^0.5.5, @backstage/core-compat-api@npm:^0.5.8": version: 0.5.8 resolution: "@backstage/core-compat-api@npm:0.5.8" @@ -2444,6 +2499,32 @@ __metadata: languageName: node linkType: hard +"@backstage/core-compat-api@npm:^0.5.9": + version: 0.5.9 + resolution: "@backstage/core-compat-api@npm:0.5.9" + dependencies: + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/errors": "npm:^1.2.7" + "@backstage/filter-predicates": "npm:^0.1.1" + "@backstage/frontend-plugin-api": "npm:^0.15.0" + "@backstage/plugin-app-react": "npm:^0.2.1" + "@backstage/plugin-catalog-react": "npm:^2.1.0" + "@backstage/types": "npm:^1.2.2" + "@backstage/version-bridge": "npm:^1.0.12" + lodash: "npm:^4.17.21" + zod: "npm:^3.25.76 || ^4.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/b2a57b43c96ee56bfd0eb21779ebc4e8afd836d4e334be6b8c4cdd3b1d744be25da7fbd521ee93ec1fca41d7dd30e47094ae2dfde1e7d4a63f2975f8aee78454 + languageName: node + linkType: hard + "@backstage/core-components@npm:^0.17.3, @backstage/core-components@npm:^0.17.5": version: 0.17.5 resolution: "@backstage/core-components@npm:0.17.5" @@ -2556,6 +2637,64 @@ __metadata: languageName: node linkType: hard +"@backstage/core-components@npm:^0.18.8": + version: 0.18.8 + resolution: "@backstage/core-components@npm:0.18.8" + dependencies: + "@backstage/config": "npm:^1.3.6" + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/errors": "npm:^1.2.7" + "@backstage/theme": "npm:^0.7.2" + "@backstage/version-bridge": "npm:^1.0.12" + "@dagrejs/dagre": "npm:^1.1.4" + "@date-io/core": "npm:^1.3.13" + "@material-table/core": "npm:^3.1.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@react-hookz/web": "npm:^24.0.0" + "@testing-library/react": "npm:^16.0.0" + "@types/react-sparklines": "npm:^1.7.0" + ansi-regex: "npm:^6.0.1" + classnames: "npm:^2.2.6" + d3-selection: "npm:^3.0.0" + d3-shape: "npm:^3.0.0" + d3-zoom: "npm:^3.0.0" + js-yaml: "npm:^4.1.0" + linkify-react: "npm:4.3.2" + linkifyjs: "npm:4.3.2" + lodash: "npm:^4.17.21" + parse5: "npm:^6.0.0" + pluralize: "npm:^8.0.0" + qs: "npm:^6.9.4" + rc-progress: "npm:3.5.1" + react-full-screen: "npm:^1.1.1" + react-helmet: "npm:6.1.0" + react-hook-form: "npm:^7.12.2" + react-idle-timer: "npm:5.7.2" + react-markdown: "npm:^8.0.0" + react-sparklines: "npm:^1.7.0" + react-syntax-highlighter: "npm:^15.4.5" + react-use: "npm:^17.3.2" + react-virtualized-auto-sizer: "npm:^1.0.11" + react-window: "npm:^1.8.6" + rehype-raw: "npm:^6.0.0" + rehype-sanitize: "npm:^5.0.0" + remark-gfm: "npm:^3.0.1" + zen-observable: "npm:^0.10.0" + zod: "npm:^3.25.76 || ^4.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/34ba90ca5c0925fee9f7785f0b23fc45b602c0705889f3a9efb109850298d428e77343b95d9539e043aff303549a65b7a4517e8ff0ddde607441a7d002b8b53d + languageName: node + linkType: hard + "@backstage/core-plugin-api@npm:^1.10.8, @backstage/core-plugin-api@npm:^1.10.9, @backstage/core-plugin-api@npm:^1.12.0, @backstage/core-plugin-api@npm:^1.12.1, @backstage/core-plugin-api@npm:^1.12.2, @backstage/core-plugin-api@npm:^1.12.3": version: 1.12.3 resolution: "@backstage/core-plugin-api@npm:1.12.3" @@ -2579,6 +2718,29 @@ __metadata: languageName: node linkType: hard +"@backstage/core-plugin-api@npm:^1.12.4": + version: 1.12.4 + resolution: "@backstage/core-plugin-api@npm:1.12.4" + dependencies: + "@backstage/config": "npm:^1.3.6" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-plugin-api": "npm:^0.15.0" + "@backstage/types": "npm:^1.2.2" + "@backstage/version-bridge": "npm:^1.0.12" + history: "npm:^5.0.0" + zod: "npm:^3.25.76 || ^4.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/0226ea1fe27392ce6e66c79453aa17d758341f73b943f87acd04123b38291962ac5350975005cb0b3a5a920073cbfe3d661b8c5332c78835401a5507cb8633bc + languageName: node + linkType: hard + "@backstage/dev-utils@npm:^1.1.17": version: 1.1.17 resolution: "@backstage/dev-utils@npm:1.1.17" @@ -2655,6 +2817,19 @@ __metadata: languageName: node linkType: hard +"@backstage/filter-predicates@npm:^0.1.1": + version: 0.1.1 + resolution: "@backstage/filter-predicates@npm:0.1.1" + dependencies: + "@backstage/config": "npm:^1.3.6" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.2" + zod: "npm:^3.25.76 || ^4.0.0" + zod-validation-error: "npm:^4.0.2" + checksum: 10c0/f4bce2259af0e953ef30d292394aeea614ae42fbd825678a3abc36a97a6020a9964f40046aa3dc189f040ecf9674fb30dbcbbfd2ff3f807a513ad0353094bea5 + languageName: node + linkType: hard + "@backstage/frontend-app-api@npm:^0.13.3": version: 0.13.3 resolution: "@backstage/frontend-app-api@npm:0.13.3" @@ -2845,6 +3020,28 @@ __metadata: languageName: node linkType: hard +"@backstage/frontend-plugin-api@npm:^0.15.0, @backstage/frontend-plugin-api@npm:^0.15.1": + version: 0.15.1 + resolution: "@backstage/frontend-plugin-api@npm:0.15.1" + dependencies: + "@backstage/errors": "npm:^1.2.7" + "@backstage/filter-predicates": "npm:^0.1.1" + "@backstage/types": "npm:^1.2.2" + "@backstage/version-bridge": "npm:^1.0.12" + zod: "npm:^3.25.76 || ^4.0.0" + zod-to-json-schema: "npm:^3.25.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/8064e0845849f7f27af62ff30007bc08a89fc052330e46138735669280e962f2643485a5e2e38dcec16d0ad8a93c150d5fc0b94b9e045106cba11c23bff365dc + languageName: node + linkType: hard + "@backstage/frontend-test-utils@npm:^0.4.2": version: 0.4.2 resolution: "@backstage/frontend-test-utils@npm:0.4.2" @@ -2906,6 +3103,27 @@ __metadata: languageName: node linkType: hard +"@backstage/integration-react@npm:^1.2.16": + version: 1.2.16 + resolution: "@backstage/integration-react@npm:1.2.16" + dependencies: + "@backstage/config": "npm:^1.3.6" + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/integration": "npm:^2.0.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/70ff6dca97e1ff797e322771061ad642cd8f138f63fd44b743fd2eab1d975823e55a6bd95a04a4fe05b9974301164ceaae5ff79e91e90520e77710405ddf43ba + languageName: node + linkType: hard + "@backstage/integration@npm:^1.17.0, @backstage/integration@npm:^1.17.1, @backstage/integration@npm:^1.18.0, @backstage/integration@npm:^1.18.2, @backstage/integration@npm:^1.20.0": version: 1.20.1 resolution: "@backstage/integration@npm:1.20.1" @@ -2924,6 +3142,25 @@ __metadata: languageName: node linkType: hard +"@backstage/integration@npm:^2.0.0": + version: 2.0.0 + resolution: "@backstage/integration@npm:2.0.0" + dependencies: + "@azure/identity": "npm:^4.0.0" + "@azure/storage-blob": "npm:^12.5.0" + "@backstage/config": "npm:^1.3.6" + "@backstage/errors": "npm:^1.2.7" + "@octokit/auth-app": "npm:^4.0.0" + "@octokit/rest": "npm:^19.0.3" + cross-fetch: "npm:^4.0.0" + git-url-parse: "npm:^15.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + p-throttle: "npm:^4.1.1" + checksum: 10c0/d7e0e45cc11277ca2b843f98d15df8150b8c264852b734279a1965ccc81ef2724871e048aa1b0c4b3fe656c041d96ab0ca8c97db2bd236582d8f4349a93cd5cd + languageName: node + linkType: hard + "@backstage/plugin-api-docs@npm:^0.13.1": version: 0.13.1 resolution: "@backstage/plugin-api-docs@npm:0.13.1" @@ -3034,6 +3271,25 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-app-react@npm:^0.2.1": + version: 0.2.1 + resolution: "@backstage/plugin-app-react@npm:0.2.1" + dependencies: + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/frontend-plugin-api": "npm:^0.15.0" + "@material-ui/core": "npm:^4.9.13" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/e343bc8b67105bd1484824c66628005e8bfc8f5815960a7fd894ddb7ca3c14915c778095c549591f78cbe9a8f3acd4cfed565b5ffc569a2d7f07555ba5ab1886 + languageName: node + linkType: hard + "@backstage/plugin-app@npm:^0.3.3, @backstage/plugin-app@npm:^0.3.5": version: 0.3.5 resolution: "@backstage/plugin-app@npm:0.3.5" @@ -3454,6 +3710,51 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-catalog-react@npm:^2.1.0": + version: 2.1.1 + resolution: "@backstage/plugin-catalog-react@npm:2.1.1" + dependencies: + "@backstage/catalog-client": "npm:^1.14.0" + "@backstage/catalog-model": "npm:^1.7.7" + "@backstage/core-compat-api": "npm:^0.5.9" + "@backstage/core-components": "npm:^0.18.8" + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/errors": "npm:^1.2.7" + "@backstage/filter-predicates": "npm:^0.1.1" + "@backstage/frontend-plugin-api": "npm:^0.15.1" + "@backstage/integration-react": "npm:^1.2.16" + "@backstage/plugin-catalog-common": "npm:^1.1.8" + "@backstage/plugin-permission-common": "npm:^0.9.7" + "@backstage/plugin-permission-react": "npm:^0.4.41" + "@backstage/types": "npm:^1.2.2" + "@backstage/ui": "npm:^0.13.2" + "@backstage/version-bridge": "npm:^1.0.12" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@react-hookz/web": "npm:^24.0.0" + classnames: "npm:^2.2.6" + lodash: "npm:^4.17.21" + material-ui-popup-state: "npm:^5.3.6" + qs: "npm:^6.9.4" + react-use: "npm:^17.2.4" + yaml: "npm:^2.0.0" + zen-observable: "npm:^0.10.0" + peerDependencies: + "@backstage/frontend-test-utils": ^0.5.1 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@backstage/frontend-test-utils": + optional: true + "@types/react": + optional: true + checksum: 10c0/3fc2797b86f69a8cdb7118532a91efa6dc1e0188a92e9874f1e413740140328eca0af9ba7e8a0a5766b9f5aee2fd2776789f44de5e1f6c114c69e75146eb79c0 + languageName: node + linkType: hard + "@backstage/plugin-catalog@npm:^1.32.0, @backstage/plugin-catalog@npm:^1.33.1": version: 1.33.1 resolution: "@backstage/plugin-catalog@npm:1.33.1" @@ -3540,6 +3841,29 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-home-react@npm:^0.1.35, @backstage/plugin-home-react@npm:^0.1.36": + version: 0.1.36 + resolution: "@backstage/plugin-home-react@npm:0.1.36" + dependencies: + "@backstage/core-compat-api": "npm:^0.5.9" + "@backstage/core-components": "npm:^0.18.8" + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/frontend-plugin-api": "npm:^0.15.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@rjsf/utils": "npm:5.24.13" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/f603143065aa64b938222291a383c79c15f7c3256ec379dfd0ef8b4642395eef4340e83de7c2baa8eb032eb37634d88ccba42f6ac8ba81418ad2c58c9bd93450 + languageName: node + linkType: hard + "@backstage/plugin-home@npm:^0.8.14": version: 0.8.15 resolution: "@backstage/plugin-home@npm:0.8.15" @@ -3579,6 +3903,46 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-home@npm:^0.9.2": + version: 0.9.3 + resolution: "@backstage/plugin-home@npm:0.9.3" + dependencies: + "@backstage/catalog-client": "npm:^1.14.0" + "@backstage/catalog-model": "npm:^1.7.7" + "@backstage/config": "npm:^1.3.6" + "@backstage/core-app-api": "npm:^1.19.6" + "@backstage/core-compat-api": "npm:^0.5.9" + "@backstage/core-components": "npm:^0.18.8" + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/frontend-plugin-api": "npm:^0.15.0" + "@backstage/plugin-catalog-react": "npm:^2.1.0" + "@backstage/plugin-home-react": "npm:^0.1.36" + "@backstage/theme": "npm:^0.7.2" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@rjsf/core": "npm:5.24.13" + "@rjsf/material-ui": "npm:5.24.13" + "@rjsf/utils": "npm:5.24.13" + "@rjsf/validator-ajv8": "npm:5.24.13" + lodash: "npm:^4.17.21" + luxon: "npm:^3.4.3" + react-grid-layout: "npm:1.3.4" + react-resizable: "npm:^3.0.4" + react-use: "npm:^17.2.4" + zod: "npm:^3.25.76 || ^4.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/b73451bcde69e110a720a0f1950307f589ae323ad99efa55c6ae2f22fc6e74d5781db6f210f6bdf82e4ca45fc99c1f65c90b7ec38824548adeac279fe2b9cde2 + languageName: node + linkType: hard + "@backstage/plugin-kubernetes-backend@npm:^0.20.4": version: 0.20.4 resolution: "@backstage/plugin-kubernetes-backend@npm:0.20.4" @@ -3773,6 +4137,21 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-permission-common@npm:^0.9.7": + version: 0.9.7 + resolution: "@backstage/plugin-permission-common@npm:0.9.7" + dependencies: + "@backstage/config": "npm:^1.3.6" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.2" + cross-fetch: "npm:^4.0.0" + uuid: "npm:^11.0.0" + zod: "npm:^3.25.76 || ^4.0.0" + zod-to-json-schema: "npm:^3.25.1" + checksum: 10c0/577c15e246fc46c7fe1a4868c3765a9c837b86a64d7a3ab75ac76ed443f2ac4e687c37bd11f2e787898ff8909c9206b9285446e956eb9c4313d3818e37fbf64d + languageName: node + linkType: hard + "@backstage/plugin-permission-node@npm:^0.10.3, @backstage/plugin-permission-node@npm:^0.10.4, @backstage/plugin-permission-node@npm:^0.10.6": version: 0.10.6 resolution: "@backstage/plugin-permission-node@npm:0.10.6" @@ -3811,6 +4190,27 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-permission-react@npm:^0.4.41": + version: 0.4.41 + resolution: "@backstage/plugin-permission-react@npm:0.4.41" + dependencies: + "@backstage/config": "npm:^1.3.6" + "@backstage/core-plugin-api": "npm:^1.12.4" + "@backstage/plugin-permission-common": "npm:^0.9.7" + dataloader: "npm:^2.0.0" + swr: "npm:^2.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/d04a28f02cd98a0415f0ccc21b755fb88190bf3b1cf61c6f48086f4823d674ac25152fa14a5b273ae4232617e514334198efab670daae06aaa07b5ff1be7f4a6 + languageName: node + linkType: hard + "@backstage/plugin-proxy-backend@npm:^0.6.8": version: 0.6.8 resolution: "@backstage/plugin-proxy-backend@npm:0.6.8" @@ -4809,6 +5209,28 @@ __metadata: languageName: node linkType: hard +"@backstage/ui@npm:^0.13.0, @backstage/ui@npm:^0.13.2": + version: 0.13.2 + resolution: "@backstage/ui@npm:0.13.2" + dependencies: + "@backstage/version-bridge": "npm:^1.0.12" + "@remixicon/react": "npm:^4.6.0" + "@tanstack/react-table": "npm:^8.21.3" + clsx: "npm:^2.1.1" + react-aria-components: "npm:^1.14.0" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + react-router-dom: ^6.30.2 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/9ece5740c66fe52ff11e6ab4a4942f6720881cf39d510b7db114f7309bc2f6b77e9d74fe7ac45b168dea77ef483f8a383c5c3091a5edd6bd86a0c4a84b58072a + languageName: node + linkType: hard + "@backstage/ui@npm:^0.9.0, @backstage/ui@npm:^0.9.1": version: 0.9.1 resolution: "@backstage/ui@npm:0.9.1" @@ -11346,6 +11768,35 @@ __metadata: languageName: node linkType: hard +"@red-hat-developer-hub/backstage-plugin-dynamic-home-page@file:../../.local-packages/dynamic-home-page.tgz::locator=app%40workspace%3Apackages%2Fapp": + version: 1.10.6 + resolution: "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@file:../../.local-packages/dynamic-home-page.tgz#../../.local-packages/dynamic-home-page.tgz::hash=9d98a9&locator=app%40workspace%3Apackages%2Fapp" + dependencies: + "@backstage/catalog-client": "npm:^1.12.1" + "@backstage/catalog-model": "npm:^1.7.6" + "@backstage/core-components": "npm:^0.18.3" + "@backstage/core-plugin-api": "npm:^1.12.0" + "@backstage/plugin-app-react": "npm:^0.1.0" + "@backstage/plugin-catalog-react": "npm:^1.21.3" + "@backstage/plugin-home": "npm:^0.9.2" + "@backstage/plugin-home-react": "npm:^0.1.35" + "@backstage/plugin-search-react": "npm:^1.10.0" + "@backstage/plugin-user-settings": "npm:^0.8.29" + "@backstage/theme": "npm:^0.7.0" + "@mui/icons-material": "npm:5.18.0" + "@mui/material": "npm:5.18.0" + "@mui/styles": "npm:5.18.0" + "@scalprum/react-core": "npm:0.11.1" + react-grid-layout: "npm:1.5.3" + react-use: "npm:17.6.0" + tss-react: "npm:4.9.20" + peerDependencies: + react: 16.13.1 || ^17.0.0 || ^18.2.0 + react-router-dom: 6.30.3 + checksum: 10c0/905abc445eb79426e86bb70430e99ce916724e755f257fbf34c85222e5f8b4533e0f05b4ba80257a40dc86fde768c1832f945e8476f869e924238a9c6ae7f76e + languageName: node + linkType: hard + "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@npm:^1.10.2": version: 1.10.2 resolution: "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@npm:1.10.2" @@ -11508,6 +11959,8 @@ __metadata: "@backstage/plugin-app-react": "npm:^0.1.0" "@backstage/plugin-catalog": "npm:^1.33.1" "@backstage/plugin-catalog-react": "npm:^1.21.3" + "@backstage/plugin-home": "npm:^0.9.2" + "@backstage/plugin-home-react": "npm:^0.1.35" "@backstage/plugin-permission-react": "npm:^0.4.38" "@backstage/plugin-user-settings": "npm:^0.9.0" "@backstage/test-utils": "npm:^1.7.13" @@ -16194,6 +16647,7 @@ __metadata: "@backstage/plugin-api-docs": "npm:^0.13.1" "@backstage/plugin-app-react": "npm:^0.1.0" "@backstage/plugin-catalog": "npm:^1.32.0" + "@backstage/plugin-home": "npm:^0.9.2" "@backstage/plugin-org": "npm:^0.6.46" "@backstage/plugin-scaffolder": "npm:^1.34.3" "@backstage/plugin-search": "npm:^1.5.0" @@ -16202,6 +16656,7 @@ __metadata: "@backstage/ui": "npm:^0.9.1" "@material-ui/core": "npm:^4.12.2" "@mui/icons-material": "npm:^5.18.0" + "@red-hat-developer-hub/backstage-plugin-dynamic-home-page": "file:../../.local-packages/dynamic-home-page.tgz" "@red-hat-developer-hub/backstage-plugin-scorecard": "workspace:^" "@red-hat-developer-hub/backstage-plugin-theme": "npm:^0.13.0" "@types/react": "npm:^18" @@ -28859,6 +29314,13 @@ __metadata: languageName: node linkType: hard +"p-throttle@npm:^4.1.1": + version: 4.1.1 + resolution: "p-throttle@npm:4.1.1" + checksum: 10c0/c4bfdcd0318d704b446a7af59dd8e0e32e37ba3d9841dd8dfced1c09742bc2f7a95bc0fcf4072030c62abf4533a9a2ef2954e559462052c5f406ae03d195925a + languageName: node + linkType: hard + "p-timeout@npm:^3.2.0": version: 3.2.0 resolution: "p-timeout@npm:3.2.0" @@ -36559,6 +37021,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:^3.25.76 || ^4.0.0": + version: 4.3.6 + resolution: "zod@npm:4.3.6" + checksum: 10c0/860d25a81ab41d33aa25f8d0d07b091a04acb426e605f396227a796e9e800c44723ed96d0f53a512b57be3d1520f45bf69c0cb3b378a232a00787a2609625307 + languageName: node + linkType: hard + "zstd-codec@npm:^0.1.5": version: 0.1.5 resolution: "zstd-codec@npm:0.1.5" From 734b47105f4ceaec205acea7d72900dc88907f96 Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Sun, 29 Mar 2026 22:32:10 +0530 Subject: [PATCH 2/6] Supporting e2e tests for nfs Signed-off-by: rohitratannagar --- workspaces/scorecard/package.json | 4 ++ .../app-legacy/e2e-tests/pages/HomePage.ts | 24 ++++++++++-- .../app-legacy/e2e-tests/scorecard.test.ts | 38 ++++++++++++++++++- .../e2e-tests/utils/accessibility.ts | 16 ++++++-- workspaces/scorecard/playwright.config.ts | 10 +++-- .../components/Common/NoScorecardsState.tsx | 4 +- .../Common/PermissionRequiredState.tsx | 4 +- 7 files changed, 88 insertions(+), 12 deletions(-) diff --git a/workspaces/scorecard/package.json b/workspaces/scorecard/package.json index d2b2f06137..0c084bdce8 100644 --- a/workspaces/scorecard/package.json +++ b/workspaces/scorecard/package.json @@ -21,6 +21,10 @@ "test": "NODE_OPTIONS='--experimental-vm-modules' backstage-cli repo test", "test:all": "NODE_OPTIONS='--experimental-vm-modules' backstage-cli repo test --coverage", "test:e2e": "playwright test", + "test:e2e:legacy": "APP_MODE=legacy playwright test", + "test:e2e:nfs": "APP_MODE=nfs playwright test", + "test:e2e:all": "yarn test:e2e:legacy && yarn test:e2e:nfs", + "playwright": "bash -c 'if [[ \"$*\" == \"test\" ]]; then yarn test:e2e:all; else npx playwright \"$@\"; fi' _", "fix": "backstage-cli repo fix", "lint": "backstage-cli repo lint --since origin/main", "lint:all": "backstage-cli repo lint", diff --git a/workspaces/scorecard/packages/app-legacy/e2e-tests/pages/HomePage.ts b/workspaces/scorecard/packages/app-legacy/e2e-tests/pages/HomePage.ts index a0244a2510..9057994c79 100644 --- a/workspaces/scorecard/packages/app-legacy/e2e-tests/pages/HomePage.ts +++ b/workspaces/scorecard/packages/app-legacy/e2e-tests/pages/HomePage.ts @@ -22,6 +22,8 @@ import { } from '../utils/translationUtils'; type ThresholdState = 'success' | 'warning' | 'error'; +const escapeRegex = (value: string) => + value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); export class HomePage { readonly page: Page; @@ -48,7 +50,22 @@ export class HomePage { async addCard(cardName: string) { await this.page.getByRole('button', { name: 'Add widget' }).click(); - await this.page.getByRole('button', { name: cardName }).click(); + await expect( + this.page.getByRole('heading', { name: 'Add new widget to dashboard' }), + ).toBeVisible(); + + let cardPattern: RegExp; + if (cardName === 'Onboarding section') { + cardPattern = /Onboarding section|RhdhOnboardingSection/i; + } else if (cardName === 'Scorecard: GitHub open PRs') { + cardPattern = /Scorecard:\s*GitHub open PRs|ScorecardGithubHomepage/i; + } else if (cardName === 'Scorecard: Jira open blocking') { + cardPattern = /Scorecard:\s*Jira open blocking|ScorecardJiraHomepage/i; + } else { + cardPattern = new RegExp(escapeRegex(cardName), 'i'); + } + + await this.page.getByRole('button', { name: cardPattern }).first().click(); } async saveChanges() { @@ -69,8 +86,9 @@ export class HomePage { getCard(metricId: 'github.open_prs' | 'jira.open_issues'): Locator { return this.page - .locator('article') - .filter({ hasText: this.translations.metric[metricId].title }); + .getByText(this.translations.metric[metricId].title, { exact: true }) + .last() + .locator('xpath=ancestor::article[1]'); } async verifyThresholdTooltip( diff --git a/workspaces/scorecard/packages/app-legacy/e2e-tests/scorecard.test.ts b/workspaces/scorecard/packages/app-legacy/e2e-tests/scorecard.test.ts index 0fd2f0e865..eab635e782 100644 --- a/workspaces/scorecard/packages/app-legacy/e2e-tests/scorecard.test.ts +++ b/workspaces/scorecard/packages/app-legacy/e2e-tests/scorecard.test.ts @@ -79,6 +79,17 @@ test.describe('Scorecard Plugin Tests', () => { test.describe('Entity Scorecards', () => { test('Verify permission required state', async ({ browser }, testInfo) => { + await mockScorecardResponse( + page, + { + error: { + name: 'NotAllowedError', + message: 'Permission denied', + }, + }, + 403, + ); + await catalogPage.openCatalog(); await catalogPage.openComponent('Red Hat Developer Hub'); await page.getByText('Scorecard', { exact: true }).click(); @@ -193,7 +204,30 @@ test.describe('Scorecard Plugin Tests', () => { test.describe('Aggregated Scorecards', () => { test('Verify missing permission state', async () => { + await mockAggregatedScorecardResponse( + page, + { + error: { + name: 'NotAllowedError', + message: 'Permission denied', + }, + }, + { + error: { + name: 'NotAllowedError', + message: 'Permission denied', + }, + }, + 403, + ); + await homePage.navigateToHome(); + await page.reload(); + await homePage.enterEditMode(); + await homePage.clearAllCards(); + await homePage.addCard('Scorecard: GitHub open PRs'); + await homePage.addCard('Scorecard: Jira open blocking'); + await homePage.saveChanges(); const entityCount = getEntityCount(translations, currentLocale, '0'); @@ -277,7 +311,9 @@ test.describe('Scorecard Plugin Tests', () => { ), ); - await runAccessibilityTests(page, testInfo); + await runAccessibilityTests(page, testInfo, undefined, { + includeSelectors: ['[data-chart-container]'], + }); }); test('Verify cards aggregation data is not found when API returns empty aggregated response', async () => { diff --git a/workspaces/scorecard/packages/app-legacy/e2e-tests/utils/accessibility.ts b/workspaces/scorecard/packages/app-legacy/e2e-tests/utils/accessibility.ts index 98c3cbf4a1..bb6865f769 100644 --- a/workspaces/scorecard/packages/app-legacy/e2e-tests/utils/accessibility.ts +++ b/workspaces/scorecard/packages/app-legacy/e2e-tests/utils/accessibility.ts @@ -21,10 +21,20 @@ export async function runAccessibilityTests( page: Page, testInfo: TestInfo, attachName = 'accessibility-scan-results.json', + options?: { + includeSelectors?: string[]; + }, ) { - const accessibilityScanResults = await new AxeBuilder({ page }) - .withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa']) - .analyze(); + let axeBuilder = new AxeBuilder({ page }).withTags([ + 'wcag2a', + 'wcag2aa', + 'wcag21a', + 'wcag21aa', + ]); + for (const selector of options?.includeSelectors ?? []) { + axeBuilder = axeBuilder.include(selector); + } + const accessibilityScanResults = await axeBuilder.analyze(); await testInfo.attach(attachName, { body: JSON.stringify(accessibilityScanResults, null, 2), diff --git a/workspaces/scorecard/playwright.config.ts b/workspaces/scorecard/playwright.config.ts index 8176f5d0d2..dc1e7a0b6f 100644 --- a/workspaces/scorecard/playwright.config.ts +++ b/workspaces/scorecard/playwright.config.ts @@ -17,6 +17,8 @@ import { defineConfig } from '@playwright/test'; const LOCALES = ['en', 'fr', 'it', 'ja', 'de', 'es'] as const; +const appMode = process.env.APP_MODE || 'legacy'; +const startCommand = appMode === 'legacy' ? 'yarn start:legacy' : 'yarn start'; export default defineConfig({ timeout: 2 * 60 * 1000, @@ -28,7 +30,7 @@ export default defineConfig({ webServer: process.env.PLAYWRIGHT_URL ? [] : { - command: 'yarn start:legacy', + command: startCommand, port: 3000, reuseExistingServer: true, env: { @@ -39,7 +41,9 @@ export default defineConfig({ retries: process.env.CI ? 2 : 0, - reporter: [['html', { open: 'never', outputFolder: 'e2e-test-report' }]], + reporter: [ + ['html', { open: 'never', outputFolder: `e2e-test-report-${appMode}` }], + ], use: { baseURL: process.env.PLAYWRIGHT_URL ?? 'http://localhost:3000', @@ -47,7 +51,7 @@ export default defineConfig({ trace: 'on-first-retry', }, - outputDir: 'node_modules/.cache/e2e-test-results', + outputDir: `node_modules/.cache/e2e-test-results-${appMode}`, projects: LOCALES.map(locale => ({ name: locale, diff --git a/workspaces/scorecard/plugins/scorecard/src/components/Common/NoScorecardsState.tsx b/workspaces/scorecard/plugins/scorecard/src/components/Common/NoScorecardsState.tsx index 2cbc8a878b..89d3d02c16 100644 --- a/workspaces/scorecard/plugins/scorecard/src/components/Common/NoScorecardsState.tsx +++ b/workspaces/scorecard/plugins/scorecard/src/components/Common/NoScorecardsState.tsx @@ -57,7 +57,9 @@ const NoScorecardsState: React.FC = () => { ({ fontSize: '1rem', - color: theme.palette.text.secondary, + // Use primary text color to satisfy WCAG AA contrast + // against the light panel background in NFS. + color: theme.palette.text.primary, mb: 3, lineHeight: 1.5, })} diff --git a/workspaces/scorecard/plugins/scorecard/src/components/Common/PermissionRequiredState.tsx b/workspaces/scorecard/plugins/scorecard/src/components/Common/PermissionRequiredState.tsx index 94a6c0ae10..a2f182ae61 100644 --- a/workspaces/scorecard/plugins/scorecard/src/components/Common/PermissionRequiredState.tsx +++ b/workspaces/scorecard/plugins/scorecard/src/components/Common/PermissionRequiredState.tsx @@ -50,7 +50,9 @@ const PermissionRequiredState = () => { ({ fontSize: '1rem', - color: theme.palette.text.secondary, + // Use primary text color to satisfy WCAG AA contrast + // against the light panel background in NFS. + color: theme.palette.text.primary, mb: 3, lineHeight: 1.5, })} From 5a8f965f9c9a4711f937b40322aaf05d73f6f7ae Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Sun, 29 Mar 2026 22:36:47 +0530 Subject: [PATCH 3/6] adding changeset Signed-off-by: rohitratannagar --- .../scorecard/.changeset/modern-eggs-sink.md | 5 + workspaces/scorecard/.gitignore | 2 +- workspaces/scorecard/app-config.yaml | 20 +- .../plugins/scorecard/report-alpha.api.md | 141 +++----- .../scorecard/plugins/scorecard/report.api.md | 22 +- .../src/alpha/extensions/metricPage.tsx | 6 +- .../plugins/scorecard/src/alpha/index.tsx | 3 +- .../scorecard/plugins/scorecard/src/routes.ts | 5 + workspaces/scorecard/yarn.lock | 342 +----------------- 9 files changed, 96 insertions(+), 450 deletions(-) create mode 100644 workspaces/scorecard/.changeset/modern-eggs-sink.md diff --git a/workspaces/scorecard/.changeset/modern-eggs-sink.md b/workspaces/scorecard/.changeset/modern-eggs-sink.md new file mode 100644 index 0000000000..d96fc60270 --- /dev/null +++ b/workspaces/scorecard/.changeset/modern-eggs-sink.md @@ -0,0 +1,5 @@ +--- +'@red-hat-developer-hub/backstage-plugin-scorecard': minor +--- + +Adding scorecardHompage and metric page extension, also added e2e support in nfs diff --git a/workspaces/scorecard/.gitignore b/workspaces/scorecard/.gitignore index 77ad56d128..beec71bb32 100644 --- a/workspaces/scorecard/.gitignore +++ b/workspaces/scorecard/.gitignore @@ -51,4 +51,4 @@ site *.session.sql # E2E test reports -e2e-test-report/ +e2e-test-report*/ diff --git a/workspaces/scorecard/app-config.yaml b/workspaces/scorecard/app-config.yaml index 28a66de482..565658b69b 100644 --- a/workspaces/scorecard/app-config.yaml +++ b/workspaces/scorecard/app-config.yaml @@ -25,24 +25,24 @@ app: config: customizable: true widgetLayout: - ScorecardGithubHomepage: - priority: 250 + ScorecardJiraHomepage: + priority: 240 breakpoints: xl: { w: 4, h: 6 } lg: { w: 4, h: 6 } md: { w: 4, h: 6 } - sm: { w: 12, h: 6 } - xs: { w: 12, h: 6 } - xxs: { w: 12, h: 6 } - ScorecardJiraHomepage: - priority: 240 + sm: { w: 4, h: 6 } + xs: { w: 4, h: 6 } + xxs: { w: 4, h: 6 } + ScorecardGithubHomepage: + priority: 250 breakpoints: xl: { w: 4, h: 6, x: 4 } lg: { w: 4, h: 6, x: 4 } md: { w: 4, h: 6, x: 4 } - sm: { w: 12, h: 6 } - xs: { w: 12, h: 6 } - xxs: { w: 12, h: 6 } + sm: { w: 4, h: 6, x: 4 } + xs: { w: 4, h: 6, x: 4 } + xxs: { w: 4, h: 6, x: 4 } organization: name: My Company diff --git a/workspaces/scorecard/plugins/scorecard/report-alpha.api.md b/workspaces/scorecard/plugins/scorecard/report-alpha.api.md index 2f1a9e78e7..a962b37073 100644 --- a/workspaces/scorecard/plugins/scorecard/report-alpha.api.md +++ b/workspaces/scorecard/plugins/scorecard/report-alpha.api.md @@ -8,23 +8,24 @@ import { AnyApiFactory } from '@backstage/frontend-plugin-api'; import { AnyRouteRefParams } from '@backstage/frontend-plugin-api'; import { ApiFactory } from '@backstage/frontend-plugin-api'; -import { Entity } from '@backstage/catalog-model'; -import { EntityPredicate } from '@backstage/plugin-catalog-react/alpha'; import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api'; import { ExtensionDataRef } from '@backstage/frontend-plugin-api'; import { FrontendModule } from '@backstage/frontend-plugin-api'; import { JSX as JSX_2 } from 'react'; import { OverridableExtensionDefinition } from '@backstage/frontend-plugin-api'; import { OverridableFrontendPlugin } from '@backstage/frontend-plugin-api'; -import { RouteRef } from '@backstage/frontend-plugin-api'; -import { RouteRef as RouteRef_2 } from '@backstage/core-plugin-api'; +import { RouteRef } from '@backstage/core-plugin-api'; +import { RouteRef as RouteRef_2 } from '@backstage/frontend-plugin-api'; import { TranslationRef } from '@backstage/frontend-plugin-api'; import { TranslationResource } from '@backstage/frontend-plugin-api'; // @alpha const _default: OverridableFrontendPlugin< { - root: RouteRef_2; + root: RouteRef; + metric: RouteRef<{ + metricId: string; + }>; }, {}, { @@ -45,6 +46,33 @@ const _default: OverridableFrontendPlugin< params: ApiFactory, ) => ExtensionBlueprintParams; }>; + 'page:scorecard': OverridableExtensionDefinition<{ + kind: 'page'; + name: undefined; + config: { + path: string | undefined; + }; + configInput: { + path?: string | undefined; + }; + output: + | ExtensionDataRef + | ExtensionDataRef + | ExtensionDataRef< + RouteRef_2, + 'core.routing.ref', + { + optional: true; + } + >; + inputs: {}; + params: { + defaultPath?: [Error: "Use the 'path' param instead"] | undefined; + path: string; + loader: () => Promise; + routeRef?: RouteRef_2 | undefined; + }; + }>; } >; export default _default; @@ -53,94 +81,15 @@ export default _default; export const scorecardCatalogModule: FrontendModule; // @alpha -export const scorecardEntityContent: OverridableExtensionDefinition<{ - config: { - allowedFilters: - | { - kind?: string | undefined; - type?: string | undefined; - }[] - | undefined; - path: string | undefined; - title: string | undefined; - filter: EntityPredicate | undefined; - group: string | false | undefined; - }; - configInput: { - allowedFilters?: - | { - kind?: string | undefined; - type?: string | undefined; - }[] - | undefined; - filter?: EntityPredicate | undefined; - title?: string | undefined; - path?: string | undefined; - group?: string | false | undefined; - }; - output: - | ExtensionDataRef - | ExtensionDataRef - | ExtensionDataRef< - RouteRef, - 'core.routing.ref', - { - optional: true; - } - > - | ExtensionDataRef< - (entity: Entity) => boolean, - 'catalog.entity-filter-function', - { - optional: true; - } - > - | ExtensionDataRef< - string, - 'catalog.entity-filter-expression', - { - optional: true; - } - > - | ExtensionDataRef - | ExtensionDataRef< - string, - 'catalog.entity-content-group', - { - optional: true; - } - >; - inputs: {}; - kind: 'entity-content'; - name: 'entity-content-scorecard'; - params: { - defaultPath?: [Error: "Use the 'path' param instead"] | undefined; - path: string; - defaultTitle?: [Error: "Use the 'title' param instead"] | undefined; - title: string; - defaultGroup?: [Error: "Use the 'group' param instead"] | undefined; - group?: - | (string & {}) - | 'overview' - | 'documentation' - | 'development' - | 'deployment' - | 'operation' - | 'observability' - | undefined; - loader: () => Promise; - routeRef?: RouteRef | undefined; - filter?: EntityPredicate | ((entity: Entity) => boolean) | undefined; - }; -}>; +export const scorecardHomeModule: FrontendModule; // @public export const scorecardTranslationRef: TranslationRef< 'plugin.scorecard', { - readonly 'emptyState.button': string; readonly 'emptyState.title': string; readonly 'emptyState.description': string; + readonly 'emptyState.button': string; readonly 'emptyState.altText': string; readonly 'notFound.title': string; readonly 'notFound.description': string; @@ -148,9 +97,9 @@ export const scorecardTranslationRef: TranslationRef< readonly 'notFound.readMore': string; readonly 'notFound.goBack': string; readonly 'notFound.contactSupport': string; - readonly 'permissionRequired.button': string; readonly 'permissionRequired.title': string; readonly 'permissionRequired.description': string; + readonly 'permissionRequired.button': string; readonly 'permissionRequired.altText': string; readonly 'errors.entityMissingProperties': string; readonly 'errors.invalidApiResponse': string; @@ -174,8 +123,8 @@ export const scorecardTranslationRef: TranslationRef< readonly 'metric.lastUpdatedNotAvailable': string; readonly 'metric.someEntitiesNotReportingValues': string; readonly 'thresholds.success': string; - readonly 'thresholds.error': string; readonly 'thresholds.warning': string; + readonly 'thresholds.error': string; readonly 'thresholds.noEntities': string; readonly 'thresholds.entities_one': string; readonly 'thresholds.entities_other': string; @@ -183,19 +132,19 @@ export const scorecardTranslationRef: TranslationRef< readonly 'entitiesPage.noDataFound': string; readonly 'entitiesPage.unknownMetric': string; readonly 'entitiesPage.metricProviderNotRegistered': string; - readonly 'entitiesPage.entitiesTable.footer.of': string; - readonly 'entitiesPage.entitiesTable.footer.allRows': string; - readonly 'entitiesPage.entitiesTable.footer.rows_one': string; - readonly 'entitiesPage.entitiesTable.footer.rows_other': string; - readonly 'entitiesPage.entitiesTable.header.owner': string; + readonly 'entitiesPage.entitiesTable.title': string; + readonly 'entitiesPage.entitiesTable.unavailable': string; + readonly 'entitiesPage.entitiesTable.titleWithCount': string; readonly 'entitiesPage.entitiesTable.header.metric': string; readonly 'entitiesPage.entitiesTable.header.lastUpdated': string; readonly 'entitiesPage.entitiesTable.header.value': string; readonly 'entitiesPage.entitiesTable.header.entity': string; + readonly 'entitiesPage.entitiesTable.header.owner': string; readonly 'entitiesPage.entitiesTable.header.kind': string; - readonly 'entitiesPage.entitiesTable.title': string; - readonly 'entitiesPage.entitiesTable.unavailable': string; - readonly 'entitiesPage.entitiesTable.titleWithCount': string; + readonly 'entitiesPage.entitiesTable.footer.of': string; + readonly 'entitiesPage.entitiesTable.footer.allRows': string; + readonly 'entitiesPage.entitiesTable.footer.rows_one': string; + readonly 'entitiesPage.entitiesTable.footer.rows_other': string; } >; diff --git a/workspaces/scorecard/plugins/scorecard/report.api.md b/workspaces/scorecard/plugins/scorecard/report.api.md index f6309692a4..fc2c6c05f4 100644 --- a/workspaces/scorecard/plugins/scorecard/report.api.md +++ b/workspaces/scorecard/plugins/scorecard/report.api.md @@ -32,9 +32,9 @@ export const scorecardPlugin: BackstagePlugin<{}, {}, {}>; export const scorecardTranslationRef: TranslationRef< 'plugin.scorecard', { - readonly 'emptyState.button': string; readonly 'emptyState.title': string; readonly 'emptyState.description': string; + readonly 'emptyState.button': string; readonly 'emptyState.altText': string; readonly 'notFound.title': string; readonly 'notFound.description': string; @@ -42,9 +42,9 @@ export const scorecardTranslationRef: TranslationRef< readonly 'notFound.readMore': string; readonly 'notFound.goBack': string; readonly 'notFound.contactSupport': string; - readonly 'permissionRequired.button': string; readonly 'permissionRequired.title': string; readonly 'permissionRequired.description': string; + readonly 'permissionRequired.button': string; readonly 'permissionRequired.altText': string; readonly 'errors.entityMissingProperties': string; readonly 'errors.invalidApiResponse': string; @@ -68,8 +68,8 @@ export const scorecardTranslationRef: TranslationRef< readonly 'metric.lastUpdatedNotAvailable': string; readonly 'metric.someEntitiesNotReportingValues': string; readonly 'thresholds.success': string; - readonly 'thresholds.error': string; readonly 'thresholds.warning': string; + readonly 'thresholds.error': string; readonly 'thresholds.noEntities': string; readonly 'thresholds.entities_one': string; readonly 'thresholds.entities_other': string; @@ -77,19 +77,19 @@ export const scorecardTranslationRef: TranslationRef< readonly 'entitiesPage.noDataFound': string; readonly 'entitiesPage.unknownMetric': string; readonly 'entitiesPage.metricProviderNotRegistered': string; - readonly 'entitiesPage.entitiesTable.footer.of': string; - readonly 'entitiesPage.entitiesTable.footer.allRows': string; - readonly 'entitiesPage.entitiesTable.footer.rows_one': string; - readonly 'entitiesPage.entitiesTable.footer.rows_other': string; - readonly 'entitiesPage.entitiesTable.header.owner': string; + readonly 'entitiesPage.entitiesTable.title': string; + readonly 'entitiesPage.entitiesTable.unavailable': string; + readonly 'entitiesPage.entitiesTable.titleWithCount': string; readonly 'entitiesPage.entitiesTable.header.metric': string; readonly 'entitiesPage.entitiesTable.header.lastUpdated': string; readonly 'entitiesPage.entitiesTable.header.value': string; readonly 'entitiesPage.entitiesTable.header.entity': string; + readonly 'entitiesPage.entitiesTable.header.owner': string; readonly 'entitiesPage.entitiesTable.header.kind': string; - readonly 'entitiesPage.entitiesTable.title': string; - readonly 'entitiesPage.entitiesTable.unavailable': string; - readonly 'entitiesPage.entitiesTable.titleWithCount': string; + readonly 'entitiesPage.entitiesTable.footer.of': string; + readonly 'entitiesPage.entitiesTable.footer.allRows': string; + readonly 'entitiesPage.entitiesTable.footer.rows_one': string; + readonly 'entitiesPage.entitiesTable.footer.rows_other': string; } >; diff --git a/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/metricPage.tsx b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/metricPage.tsx index 24fb7ad3a6..167b03a456 100644 --- a/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/metricPage.tsx +++ b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/metricPage.tsx @@ -15,7 +15,7 @@ */ import { PageBlueprint } from '@backstage/frontend-plugin-api'; -import { rootRouteRef } from '../../routes'; +import { metricRouteRef } from '../../routes'; /** * NFS page extension for the Scorecard page. @@ -23,8 +23,8 @@ import { rootRouteRef } from '../../routes'; */ export const scorecardPage = PageBlueprint.make({ params: { - path: '/scorecard', - routeRef: rootRouteRef, + path: '/scorecard/metrics/:metricId', + routeRef: metricRouteRef, loader: () => import('../../pages/ScorecardPage').then(m => ), }, diff --git a/workspaces/scorecard/plugins/scorecard/src/alpha/index.tsx b/workspaces/scorecard/plugins/scorecard/src/alpha/index.tsx index 079e74e793..0d951b8fad 100644 --- a/workspaces/scorecard/plugins/scorecard/src/alpha/index.tsx +++ b/workspaces/scorecard/plugins/scorecard/src/alpha/index.tsx @@ -19,7 +19,7 @@ import { createFrontendPlugin, } from '@backstage/frontend-plugin-api'; import { TranslationBlueprint } from '@backstage/plugin-app-react'; -import { rootRouteRef } from '../routes'; +import { metricRouteRef, rootRouteRef } from '../routes'; import { scorecardTranslations } from '../translations'; import { scorecardApi } from './extensions/api'; import { scorecardEntityContent } from './extensions/entityTab'; @@ -47,6 +47,7 @@ export default createFrontendPlugin({ extensions: [scorecardApi, scorecardPage], routes: { root: rootRouteRef, + metric: metricRouteRef, }, }); diff --git a/workspaces/scorecard/plugins/scorecard/src/routes.ts b/workspaces/scorecard/plugins/scorecard/src/routes.ts index c76e81634f..a6577f1357 100644 --- a/workspaces/scorecard/plugins/scorecard/src/routes.ts +++ b/workspaces/scorecard/plugins/scorecard/src/routes.ts @@ -19,3 +19,8 @@ import { createRouteRef } from '@backstage/core-plugin-api'; export const rootRouteRef = createRouteRef({ id: 'scorecard', }); + +export const metricRouteRef = createRouteRef({ + id: 'scorecard-metric', + params: ['metricId'], +}); diff --git a/workspaces/scorecard/yarn.lock b/workspaces/scorecard/yarn.lock index b67cc740be..67260dab08 100644 --- a/workspaces/scorecard/yarn.lock +++ b/workspaces/scorecard/yarn.lock @@ -2168,21 +2168,7 @@ __metadata: languageName: node linkType: hard -"@backstage/catalog-client@npm:^1.11.0, @backstage/catalog-client@npm:^1.12.1, @backstage/catalog-client@npm:^1.13.0": - version: 1.13.0 - resolution: "@backstage/catalog-client@npm:1.13.0" - dependencies: - "@backstage/catalog-model": "npm:^1.7.6" - "@backstage/errors": "npm:^1.2.7" - "@backstage/filter-predicates": "npm:^0.1.0" - cross-fetch: "npm:^4.0.0" - lodash: "npm:^4.17.21" - uri-template: "npm:^2.0.0" - checksum: 10c0/aab423490529dbf468b73390aa8fa41e59fe53b651e8fb97dd23f7137ea5cd63b3d8c3708cb5faf52326705ad4d3130bebad6eb736d385fc3f8c022a973e8661 - languageName: node - linkType: hard - -"@backstage/catalog-client@npm:^1.14.0": +"@backstage/catalog-client@npm:^1.11.0, @backstage/catalog-client@npm:^1.12.1, @backstage/catalog-client@npm:^1.13.0, @backstage/catalog-client@npm:^1.14.0": version: 1.14.0 resolution: "@backstage/catalog-client@npm:1.14.0" dependencies: @@ -2196,19 +2182,7 @@ __metadata: languageName: node linkType: hard -"@backstage/catalog-model@npm:^1.5.0, @backstage/catalog-model@npm:^1.7.4, @backstage/catalog-model@npm:^1.7.5, @backstage/catalog-model@npm:^1.7.6": - version: 1.7.6 - resolution: "@backstage/catalog-model@npm:1.7.6" - dependencies: - "@backstage/errors": "npm:^1.2.7" - "@backstage/types": "npm:^1.2.2" - ajv: "npm:^8.10.0" - lodash: "npm:^4.17.21" - checksum: 10c0/db5f5bb8be2e45a4193cfe868a423991a91909e7750a90566a7147ab43e8e0853023a7d5103544d559d44c4e5c58dde3291a076d272b640574f77e1a19c7d03c - languageName: node - linkType: hard - -"@backstage/catalog-model@npm:^1.7.7": +"@backstage/catalog-model@npm:^1.5.0, @backstage/catalog-model@npm:^1.7.4, @backstage/catalog-model@npm:^1.7.5, @backstage/catalog-model@npm:^1.7.6, @backstage/catalog-model@npm:^1.7.7": version: 1.7.7 resolution: "@backstage/catalog-model@npm:1.7.7" dependencies: @@ -2418,35 +2392,7 @@ __metadata: languageName: node linkType: hard -"@backstage/core-app-api@npm:^1.19.2, @backstage/core-app-api@npm:^1.19.3, @backstage/core-app-api@npm:^1.19.4, @backstage/core-app-api@npm:^1.19.5": - version: 1.19.5 - resolution: "@backstage/core-app-api@npm:1.19.5" - dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/core-plugin-api": "npm:^1.12.3" - "@backstage/types": "npm:^1.2.2" - "@backstage/version-bridge": "npm:^1.0.12" - "@types/prop-types": "npm:^15.7.3" - history: "npm:^5.0.0" - i18next: "npm:^22.4.15" - lodash: "npm:^4.17.21" - prop-types: "npm:^15.7.2" - react-use: "npm:^17.2.4" - zen-observable: "npm:^0.10.0" - zod: "npm:^3.25.76" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.30.2 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/545dbcf178ca4b7517eec0792dc6d54ac5ac72f87ac71faae6c345b074e6883c364877346478d4ab6939ec840f5b4f039b9cba5869238ca21d12cb635d3a8444 - languageName: node - linkType: hard - -"@backstage/core-app-api@npm:^1.19.6": +"@backstage/core-app-api@npm:^1.19.2, @backstage/core-app-api@npm:^1.19.3, @backstage/core-app-api@npm:^1.19.4, @backstage/core-app-api@npm:^1.19.5, @backstage/core-app-api@npm:^1.19.6": version: 1.19.6 resolution: "@backstage/core-app-api@npm:1.19.6" dependencies: @@ -2475,31 +2421,7 @@ __metadata: languageName: node linkType: hard -"@backstage/core-compat-api@npm:^0.5.1, @backstage/core-compat-api@npm:^0.5.4, @backstage/core-compat-api@npm:^0.5.5, @backstage/core-compat-api@npm:^0.5.8": - version: 0.5.8 - resolution: "@backstage/core-compat-api@npm:0.5.8" - dependencies: - "@backstage/core-plugin-api": "npm:^1.12.3" - "@backstage/frontend-plugin-api": "npm:^0.14.0" - "@backstage/plugin-app-react": "npm:^0.2.0" - "@backstage/plugin-catalog-react": "npm:^2.0.0" - "@backstage/types": "npm:^1.2.2" - "@backstage/version-bridge": "npm:^1.0.12" - lodash: "npm:^4.17.21" - zod: "npm:^3.25.76" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.30.2 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/b41c961c17cc74a8ef112a3b6a123f15e1334dc2a3a36445af865e7b597a4447bc21fb128ba0baebb742f29e5c2ae6e0fa1ccdfa80fd9b1638da1c1b1a10b8ec - languageName: node - linkType: hard - -"@backstage/core-compat-api@npm:^0.5.9": +"@backstage/core-compat-api@npm:^0.5.1, @backstage/core-compat-api@npm:^0.5.4, @backstage/core-compat-api@npm:^0.5.5, @backstage/core-compat-api@npm:^0.5.8, @backstage/core-compat-api@npm:^0.5.9": version: 0.5.9 resolution: "@backstage/core-compat-api@npm:0.5.9" dependencies: @@ -2579,65 +2501,7 @@ __metadata: languageName: node linkType: hard -"@backstage/core-components@npm:^0.18.3, @backstage/core-components@npm:^0.18.4, @backstage/core-components@npm:^0.18.6, @backstage/core-components@npm:^0.18.7": - version: 0.18.7 - resolution: "@backstage/core-components@npm:0.18.7" - dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/core-plugin-api": "npm:^1.12.3" - "@backstage/errors": "npm:^1.2.7" - "@backstage/theme": "npm:^0.7.2" - "@backstage/version-bridge": "npm:^1.0.12" - "@dagrejs/dagre": "npm:^1.1.4" - "@date-io/core": "npm:^1.3.13" - "@material-table/core": "npm:^3.1.0" - "@material-ui/core": "npm:^4.12.2" - "@material-ui/icons": "npm:^4.9.1" - "@material-ui/lab": "npm:4.0.0-alpha.61" - "@react-hookz/web": "npm:^24.0.0" - "@testing-library/react": "npm:^16.0.0" - "@types/react-sparklines": "npm:^1.7.0" - ansi-regex: "npm:^6.0.1" - classnames: "npm:^2.2.6" - d3-selection: "npm:^3.0.0" - d3-shape: "npm:^3.0.0" - d3-zoom: "npm:^3.0.0" - js-yaml: "npm:^4.1.0" - linkify-react: "npm:4.3.2" - linkifyjs: "npm:4.3.2" - lodash: "npm:^4.17.21" - parse5: "npm:^6.0.0" - pluralize: "npm:^8.0.0" - qs: "npm:^6.9.4" - rc-progress: "npm:3.5.1" - react-full-screen: "npm:^1.1.1" - react-helmet: "npm:6.1.0" - react-hook-form: "npm:^7.12.2" - react-idle-timer: "npm:5.7.2" - react-markdown: "npm:^8.0.0" - react-sparklines: "npm:^1.7.0" - react-syntax-highlighter: "npm:^15.4.5" - react-use: "npm:^17.3.2" - react-virtualized-auto-sizer: "npm:^1.0.11" - react-window: "npm:^1.8.6" - rehype-raw: "npm:^6.0.0" - rehype-sanitize: "npm:^5.0.0" - remark-gfm: "npm:^3.0.1" - zen-observable: "npm:^0.10.0" - zod: "npm:^3.25.76" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.30.2 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/c1a826b5e763de7d64c74fc15a1a5e7e9fab3cd5e12de257d749b372f759e2420c511390ad0dcfcb81491acac5a04212fa30941ff01845cf8984895d3350d331 - languageName: node - linkType: hard - -"@backstage/core-components@npm:^0.18.8": +"@backstage/core-components@npm:^0.18.3, @backstage/core-components@npm:^0.18.4, @backstage/core-components@npm:^0.18.6, @backstage/core-components@npm:^0.18.7, @backstage/core-components@npm:^0.18.8": version: 0.18.8 resolution: "@backstage/core-components@npm:0.18.8" dependencies: @@ -2695,30 +2559,7 @@ __metadata: languageName: node linkType: hard -"@backstage/core-plugin-api@npm:^1.10.8, @backstage/core-plugin-api@npm:^1.10.9, @backstage/core-plugin-api@npm:^1.12.0, @backstage/core-plugin-api@npm:^1.12.1, @backstage/core-plugin-api@npm:^1.12.2, @backstage/core-plugin-api@npm:^1.12.3": - version: 1.12.3 - resolution: "@backstage/core-plugin-api@npm:1.12.3" - dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/errors": "npm:^1.2.7" - "@backstage/frontend-plugin-api": "npm:^0.14.0" - "@backstage/types": "npm:^1.2.2" - "@backstage/version-bridge": "npm:^1.0.12" - history: "npm:^5.0.0" - zod: "npm:^3.25.76" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.30.2 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/ed81d3ac4a4d6d893672d76fff6d4764afde7550ff05707320d855e3495051f8eaeaf491b06a61c6efbeff1bdfe436604ee0fbd8f5dcb0d7445df505361b6abf - languageName: node - linkType: hard - -"@backstage/core-plugin-api@npm:^1.12.4": +"@backstage/core-plugin-api@npm:^1.10.8, @backstage/core-plugin-api@npm:^1.10.9, @backstage/core-plugin-api@npm:^1.12.0, @backstage/core-plugin-api@npm:^1.12.1, @backstage/core-plugin-api@npm:^1.12.2, @backstage/core-plugin-api@npm:^1.12.3, @backstage/core-plugin-api@npm:^1.12.4": version: 1.12.4 resolution: "@backstage/core-plugin-api@npm:1.12.4" dependencies: @@ -2804,19 +2645,6 @@ __metadata: languageName: node linkType: hard -"@backstage/filter-predicates@npm:^0.1.0": - version: 0.1.0 - resolution: "@backstage/filter-predicates@npm:0.1.0" - dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/errors": "npm:^1.2.7" - "@backstage/types": "npm:^1.2.2" - zod: "npm:^3.25.76" - zod-validation-error: "npm:^4.0.2" - checksum: 10c0/af72f6db6d87cf48387040e286214b3f460be6708346bb03962f522fe572339f9af7a1b087bc489e7473cdeac8bd5469cf6166b21a1e491c557a9c36ad8cf85d - languageName: node - linkType: hard - "@backstage/filter-predicates@npm:^0.1.1": version: 0.1.1 resolution: "@backstage/filter-predicates@npm:0.1.1" @@ -3082,28 +2910,7 @@ __metadata: languageName: node linkType: hard -"@backstage/integration-react@npm:^1.2.12, @backstage/integration-react@npm:^1.2.13, @backstage/integration-react@npm:^1.2.14, @backstage/integration-react@npm:^1.2.15, @backstage/integration-react@npm:^1.2.8, @backstage/integration-react@npm:^1.2.9": - version: 1.2.15 - resolution: "@backstage/integration-react@npm:1.2.15" - dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/core-plugin-api": "npm:^1.12.3" - "@backstage/integration": "npm:^1.20.0" - "@material-ui/core": "npm:^4.12.2" - "@material-ui/icons": "npm:^4.9.1" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.30.2 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/86e374021646aa508348237e3d6cde55e8af130d1c11e3840190c24fa7a16084cf3172fb93a9be595663b40b8e4eb05f0a3e8bdcb9c6268777c53592ae885434 - languageName: node - linkType: hard - -"@backstage/integration-react@npm:^1.2.16": +"@backstage/integration-react@npm:^1.2.12, @backstage/integration-react@npm:^1.2.13, @backstage/integration-react@npm:^1.2.14, @backstage/integration-react@npm:^1.2.15, @backstage/integration-react@npm:^1.2.16, @backstage/integration-react@npm:^1.2.8, @backstage/integration-react@npm:^1.2.9": version: 1.2.16 resolution: "@backstage/integration-react@npm:1.2.16" dependencies: @@ -3252,26 +3059,7 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-app-react@npm:^0.2.0": - version: 0.2.0 - resolution: "@backstage/plugin-app-react@npm:0.2.0" - dependencies: - "@backstage/core-plugin-api": "npm:^1.12.3" - "@backstage/frontend-plugin-api": "npm:^0.14.0" - "@material-ui/core": "npm:^4.9.13" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.30.2 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/d921dd907ab439792576dd21d0a2cc1959f54a46c3adeda72da45a9fc5cfdb4234c1388532a70a5977a55304379c3ddfc9d3dba80a24121c959fe0de4cbb03cc - languageName: node - linkType: hard - -"@backstage/plugin-app-react@npm:^0.2.1": +"@backstage/plugin-app-react@npm:^0.2.0, @backstage/plugin-app-react@npm:^0.2.1": version: 0.2.1 resolution: "@backstage/plugin-app-react@npm:0.2.1" dependencies: @@ -3665,52 +3453,7 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-catalog-react@npm:^2.0.0": - version: 2.0.0 - resolution: "@backstage/plugin-catalog-react@npm:2.0.0" - dependencies: - "@backstage/catalog-client": "npm:^1.13.0" - "@backstage/catalog-model": "npm:^1.7.6" - "@backstage/core-compat-api": "npm:^0.5.8" - "@backstage/core-components": "npm:^0.18.7" - "@backstage/core-plugin-api": "npm:^1.12.3" - "@backstage/errors": "npm:^1.2.7" - "@backstage/filter-predicates": "npm:^0.1.0" - "@backstage/frontend-plugin-api": "npm:^0.14.0" - "@backstage/integration-react": "npm:^1.2.15" - "@backstage/plugin-catalog-common": "npm:^1.1.8" - "@backstage/plugin-permission-common": "npm:^0.9.6" - "@backstage/plugin-permission-react": "npm:^0.4.40" - "@backstage/types": "npm:^1.2.2" - "@backstage/ui": "npm:^0.12.0" - "@backstage/version-bridge": "npm:^1.0.12" - "@material-ui/core": "npm:^4.12.2" - "@material-ui/icons": "npm:^4.9.1" - "@material-ui/lab": "npm:4.0.0-alpha.61" - "@react-hookz/web": "npm:^24.0.0" - classnames: "npm:^2.2.6" - lodash: "npm:^4.17.21" - material-ui-popup-state: "npm:^5.3.6" - qs: "npm:^6.9.4" - react-use: "npm:^17.2.4" - yaml: "npm:^2.0.0" - zen-observable: "npm:^0.10.0" - peerDependencies: - "@backstage/frontend-test-utils": ^0.5.0 - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.30.2 - peerDependenciesMeta: - "@backstage/frontend-test-utils": - optional: true - "@types/react": - optional: true - checksum: 10c0/a802bc31c07c6c3e052d74b882b2a973b47996153b017eb929d2d9aa4093a8a6e68f01aad9c09a2a8a727e2ac521b6305d81f86eb31429d68d17675184e8158c - languageName: node - linkType: hard - -"@backstage/plugin-catalog-react@npm:^2.1.0": +"@backstage/plugin-catalog-react@npm:^2.0.0, @backstage/plugin-catalog-react@npm:^2.1.0": version: 2.1.1 resolution: "@backstage/plugin-catalog-react@npm:2.1.1" dependencies: @@ -3819,29 +3562,7 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-home-react@npm:^0.1.27, @backstage/plugin-home-react@npm:^0.1.32, @backstage/plugin-home-react@npm:^0.1.33": - version: 0.1.33 - resolution: "@backstage/plugin-home-react@npm:0.1.33" - dependencies: - "@backstage/core-components": "npm:^0.18.4" - "@backstage/core-plugin-api": "npm:^1.12.1" - "@backstage/frontend-plugin-api": "npm:^0.13.2" - "@material-ui/core": "npm:^4.12.2" - "@material-ui/icons": "npm:^4.9.1" - "@rjsf/utils": "npm:5.24.13" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.3.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/9f30fc6700ac26c709da7595130513d0ebb7139e7e2cef2b0efe6e633e2ef76d72cc2ba7cf7f7052af435a3a612c70adb71308a8580d0db93b53be7f2fa5841f - languageName: node - linkType: hard - -"@backstage/plugin-home-react@npm:^0.1.35, @backstage/plugin-home-react@npm:^0.1.36": +"@backstage/plugin-home-react@npm:^0.1.27, @backstage/plugin-home-react@npm:^0.1.32, @backstage/plugin-home-react@npm:^0.1.33, @backstage/plugin-home-react@npm:^0.1.35, @backstage/plugin-home-react@npm:^0.1.36": version: 0.1.36 resolution: "@backstage/plugin-home-react@npm:0.1.36" dependencies: @@ -4122,22 +3843,7 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-permission-common@npm:^0.9.1, @backstage/plugin-permission-common@npm:^0.9.3, @backstage/plugin-permission-common@npm:^0.9.6": - version: 0.9.6 - resolution: "@backstage/plugin-permission-common@npm:0.9.6" - dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/errors": "npm:^1.2.7" - "@backstage/types": "npm:^1.2.2" - cross-fetch: "npm:^4.0.0" - uuid: "npm:^11.0.0" - zod: "npm:^3.25.76" - zod-to-json-schema: "npm:^3.25.1" - checksum: 10c0/ab68ad13bde01eeca0a7354d4e8b9c0e589c94c690771fddd1928fe66bf2f583aad91d938165b2a4ea20d9f6f74186f698144f1044ea08c7acd8d65cf76b3d56 - languageName: node - linkType: hard - -"@backstage/plugin-permission-common@npm:^0.9.7": +"@backstage/plugin-permission-common@npm:^0.9.1, @backstage/plugin-permission-common@npm:^0.9.3, @backstage/plugin-permission-common@npm:^0.9.6, @backstage/plugin-permission-common@npm:^0.9.7": version: 0.9.7 resolution: "@backstage/plugin-permission-common@npm:0.9.7" dependencies: @@ -4170,27 +3876,7 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-permission-react@npm:^0.4.38, @backstage/plugin-permission-react@npm:^0.4.39, @backstage/plugin-permission-react@npm:^0.4.40": - version: 0.4.40 - resolution: "@backstage/plugin-permission-react@npm:0.4.40" - dependencies: - "@backstage/config": "npm:^1.3.6" - "@backstage/core-plugin-api": "npm:^1.12.3" - "@backstage/plugin-permission-common": "npm:^0.9.6" - swr: "npm:^2.0.0" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.30.2 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/6ea737975a7d51b6943c0cb93ba09c07364bc24e230977b9918471ac348dcab2f4dfb9dc3da636f3db167ee19a6263ee42dd1273abbc555b6e33bc23dc676d1c - languageName: node - linkType: hard - -"@backstage/plugin-permission-react@npm:^0.4.41": +"@backstage/plugin-permission-react@npm:^0.4.38, @backstage/plugin-permission-react@npm:^0.4.39, @backstage/plugin-permission-react@npm:^0.4.40, @backstage/plugin-permission-react@npm:^0.4.41": version: 0.4.41 resolution: "@backstage/plugin-permission-react@npm:0.4.41" dependencies: @@ -11770,7 +11456,7 @@ __metadata: "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@file:../../.local-packages/dynamic-home-page.tgz::locator=app%40workspace%3Apackages%2Fapp": version: 1.10.6 - resolution: "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@file:../../.local-packages/dynamic-home-page.tgz#../../.local-packages/dynamic-home-page.tgz::hash=9d98a9&locator=app%40workspace%3Apackages%2Fapp" + resolution: "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@file:../../.local-packages/dynamic-home-page.tgz#../../.local-packages/dynamic-home-page.tgz::hash=100c4c&locator=app%40workspace%3Apackages%2Fapp" dependencies: "@backstage/catalog-client": "npm:^1.12.1" "@backstage/catalog-model": "npm:^1.7.6" @@ -11793,7 +11479,7 @@ __metadata: peerDependencies: react: 16.13.1 || ^17.0.0 || ^18.2.0 react-router-dom: 6.30.3 - checksum: 10c0/905abc445eb79426e86bb70430e99ce916724e755f257fbf34c85222e5f8b4533e0f05b4ba80257a40dc86fde768c1832f945e8476f869e924238a9c6ae7f76e + checksum: 10c0/973920dd0eafa9ba0a1f3f7d607a2385ee2f6edcd6073149761f1adfecf4ee0b64b43ffcb976e11360df76bb83a56e9ca9d7a80b86714bf82b1ee4ed7f2e344f languageName: node linkType: hard From 2176e83e275cd1422ce46a04e67d1abd040ce24d Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Mon, 30 Mar 2026 11:20:34 +0530 Subject: [PATCH 4/6] removing the double border Signed-off-by: rohitratannagar --- .../src/alpha/extensions/homePageCards.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/homePageCards.tsx b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/homePageCards.tsx index 1f7335f030..86e484840a 100644 --- a/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/homePageCards.tsx +++ b/workspaces/scorecard/plugins/scorecard/src/alpha/extensions/homePageCards.tsx @@ -15,6 +15,7 @@ */ import { HomePageWidgetBlueprint } from '@backstage/plugin-home-react/alpha'; +import type { RendererProps } from '@backstage/plugin-home-react'; import { ScorecardHomepageCard } from '../../components/ScorecardHomepageSection'; const defaultCardLayout = { @@ -38,6 +39,10 @@ function ScorecardJiraHomepageContent() { return ; } +function BorderlessHomeWidgetRenderer({ Content }: RendererProps) { + return ; +} + /** * NFS widget: ScorecardHomepageCard. * @alpha @@ -46,7 +51,11 @@ export const scorecardHomepageWidget = HomePageWidgetBlueprint.make({ name: 'scorecard-github-homepage', params: { name: 'ScorecardGithubHomepage', + title: 'Scorecard: GitHub open PRs', layout: defaultCardLayout, + componentProps: { + Renderer: BorderlessHomeWidgetRenderer, + }, components: () => Promise.resolve({ Content: ScorecardHomepageContent, @@ -62,7 +71,11 @@ export const scorecardJiraHomepageWidget = HomePageWidgetBlueprint.make({ name: 'scorecard-jira-homepage', params: { name: 'ScorecardJiraHomepage', + title: 'Scorecard: Jira open blocking tickets', layout: defaultCardLayout, + componentProps: { + Renderer: BorderlessHomeWidgetRenderer, + }, components: () => Promise.resolve({ Content: ScorecardJiraHomepageContent, From 6d025eba4ec15c4636412242a20988647d4e43b5 Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Mon, 30 Mar 2026 12:19:34 +0530 Subject: [PATCH 5/6] using published home-page Signed-off-by: rohitratannagar --- .../.local-packages/dynamic-home-page.tgz | Bin 104119 -> 0 bytes .../scorecard/packages/app/package.json | 2 +- .../scorecard/plugins/scorecard/README.md | 60 ++++++++++++- .../scorecard/plugins/scorecard/dev/index.tsx | 2 - workspaces/scorecard/yarn.lock | 81 ++---------------- 5 files changed, 66 insertions(+), 79 deletions(-) delete mode 100644 workspaces/scorecard/.local-packages/dynamic-home-page.tgz diff --git a/workspaces/scorecard/.local-packages/dynamic-home-page.tgz b/workspaces/scorecard/.local-packages/dynamic-home-page.tgz deleted file mode 100644 index c5230d960041f56c2265bad83b23326a265c0312..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104119 zcmV)GK)$~piwFP!000006YRa~cH2hMD7t^^DSDXMA(fBfO*e~{?2m+KTVpG-EIW?J z_KqR4MIr(T1^{)5qP5ODoHsmAa#r=Vy3qhhS#dJo7S@a-0)4Hn?yh@H{rq;>B_ z=f~&0S4YolafK+G?zm#`=15YooE%Xf{Zr+1hArlmFGY z?}50US(5tk|7v`7U-snwL!R%*f5&vNHuBT80llDMG^O#{Xm(mZ_50^Z>JRDKG@K2C z$=cw0;*W#=+9(>+wW&X(D=Xi9N1C-}qqYTqen(#WX@5k#kv|#IWMyTIoHhpQn=QXh zo&{HQKDL#3Voz>JPrMn5?C9vul1b1&bBu;w>AcC(isfsfRux@%%)TR)i0Bv`Dj9t*>oDk zDSJDc4*V2~oyBF6#{MJ;eKy-9jf2TBsln)*gU!v&(>8f03J>U%P6l++zb0Q6MY426 zVU=Lv{!gRUY}FcHpzYI*{!VkRYw-Ms58|O@pG91B&hK z?E&4|$QgLj_rqyC8`pU^{U{dWYt)*}TJuY7h1}C$LFuEkCenPi4NHB($f(iL;7WB`F-|y2TApvZP zl{M1X>921;S{@-<`RkQlPia!mh245>OF?5NcMET9Z$29AY%DPs*6ltMrW*G;*TjAN3%&vrcp3S zNk5u}19kwOQhCDC0U6K2G?<2zq`{abwUre@-bRE@SO@7SNXQxW(^*VOkirR?q(K;x znEo~kVmbhD_1W-Qr+PrRX8`FwzfU|gd^js#`$PJLb^0udp@{@d5zd^1wToIyWZwz# z!z3a;`O=RjXTh)*48D-cY!du7qa+x>^>Y@`c$FP#vW&P#(#QltFk#)4I)eeZ39ApQvsmRB%|nZ zQe$Y_IDOPOqiunBq!b2cw13?XX$c?$SK9?c;6A^bYuElbRH&PGux_@_9<^w{Ev^ra z{Q~&`Gs}DrkQg>0+#@86hCv^Y{?Xa#`expdoYEu>Cd0KbIF0@Iy8bIoQoPT1*s&}} zmv@8?2Ak`f4cJ&Qo%Bb>wI=R6)kfag*Q8sgkG7iZ7R_!%hW2N(NuOg12YossgV-Nd z$smrVRk+ZD-)WUCC&x1~_9y<35fG&BPkpv%0hK4kqujwfI^Ei!%`H9{Mv_c?(X&9Z z3S8`~>Skwyc~0Z8KdA~RRLMc=hXK5R5uHr^2@pC6Hc2f9p8n3xMq?*$&F*#^HqdRj zojdVudfI<9Sf6(TwQ@rwxX==KN=aw~U`jh279wZ1uTkWIdu2wc{A!`*B? z@>>mG(r)yMEpt)E|&R)Sm$&`Opm}

@iV@hFmaH(#b^;_FJcLl>X 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

dHoAguNz(l<2cJjW~Lm{<1m?@@_7jVR~-47 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 i@At=yKP_akR#N-wv-+$)tIw + + // Jira open issues + + ``` 4. Ensure the frontend can reach the Scorecard backend by configuring discovery in `app-config.yaml` (see discovery snippet under [NFS](#nfs-new-frontend-system--app)). diff --git a/workspaces/scorecard/plugins/scorecard/dev/index.tsx b/workspaces/scorecard/plugins/scorecard/dev/index.tsx index 254f0ade05..6442aacf6e 100644 --- a/workspaces/scorecard/plugins/scorecard/dev/index.tsx +++ b/workspaces/scorecard/plugins/scorecard/dev/index.tsx @@ -46,7 +46,6 @@ import { } from '@backstage/dev-utils'; import catalogPlugin from '@backstage/plugin-catalog/alpha'; -import homePlugin from '@backstage/plugin-home/alpha'; import userSettingsPlugin from '@backstage/plugin-user-settings/alpha'; import { catalogApiRef } from '@backstage/plugin-catalog-react'; import { rhdhThemeModule } from '@red-hat-developer-hub/backstage-plugin-theme/alpha'; @@ -139,7 +138,6 @@ const app = createApp({ features: [ devNavModule, catalogPlugin, - homePlugin, scorecardPlugin, scorecardCatalogModule, scorecardHomeModule, diff --git a/workspaces/scorecard/yarn.lock b/workspaces/scorecard/yarn.lock index 67260dab08..7131601482 100644 --- a/workspaces/scorecard/yarn.lock +++ b/workspaces/scorecard/yarn.lock @@ -3412,7 +3412,7 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-catalog-react@npm:^1.19.0, @backstage/plugin-catalog-react@npm:^1.20.1, @backstage/plugin-catalog-react@npm:^1.21.3, @backstage/plugin-catalog-react@npm:^1.21.4": +"@backstage/plugin-catalog-react@npm:^1.19.0, @backstage/plugin-catalog-react@npm:^1.20.1, @backstage/plugin-catalog-react@npm:^1.21.3": version: 1.21.4 resolution: "@backstage/plugin-catalog-react@npm:1.21.4" dependencies: @@ -3562,7 +3562,7 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-home-react@npm:^0.1.27, @backstage/plugin-home-react@npm:^0.1.32, @backstage/plugin-home-react@npm:^0.1.33, @backstage/plugin-home-react@npm:^0.1.35, @backstage/plugin-home-react@npm:^0.1.36": +"@backstage/plugin-home-react@npm:^0.1.27, @backstage/plugin-home-react@npm:^0.1.35, @backstage/plugin-home-react@npm:^0.1.36": version: 0.1.36 resolution: "@backstage/plugin-home-react@npm:0.1.36" dependencies: @@ -3585,45 +3585,6 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-home@npm:^0.8.14": - version: 0.8.15 - resolution: "@backstage/plugin-home@npm:0.8.15" - dependencies: - "@backstage/catalog-client": "npm:^1.12.1" - "@backstage/catalog-model": "npm:^1.7.6" - "@backstage/config": "npm:^1.3.6" - "@backstage/core-app-api": "npm:^1.19.3" - "@backstage/core-components": "npm:^0.18.4" - "@backstage/core-plugin-api": "npm:^1.12.1" - "@backstage/frontend-plugin-api": "npm:^0.13.2" - "@backstage/plugin-catalog-react": "npm:^1.21.4" - "@backstage/plugin-home-react": "npm:^0.1.33" - "@backstage/theme": "npm:^0.7.1" - "@material-ui/core": "npm:^4.12.2" - "@material-ui/icons": "npm:^4.9.1" - "@material-ui/lab": "npm:4.0.0-alpha.61" - "@rjsf/core": "npm:5.24.13" - "@rjsf/material-ui": "npm:5.24.13" - "@rjsf/utils": "npm:5.24.13" - "@rjsf/validator-ajv8": "npm:5.24.13" - lodash: "npm:^4.17.21" - luxon: "npm:^3.4.3" - react-grid-layout: "npm:1.3.4" - react-resizable: "npm:^3.0.4" - react-use: "npm:^17.2.4" - zod: "npm:^3.22.4" - peerDependencies: - "@types/react": ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - react-router-dom: ^6.3.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/6e4225cea6be4228ea98aeeb954fb57b402c07a8c7d25012a17caaf452a252e82fe94a9806d031e0fc3b17edc2edc2b7daa3e50a06293a3342a495dba263f20c - languageName: node - linkType: hard - "@backstage/plugin-home@npm:^0.9.2": version: 0.9.3 resolution: "@backstage/plugin-home@npm:0.9.3" @@ -11454,9 +11415,9 @@ __metadata: languageName: node linkType: hard -"@red-hat-developer-hub/backstage-plugin-dynamic-home-page@file:../../.local-packages/dynamic-home-page.tgz::locator=app%40workspace%3Apackages%2Fapp": - version: 1.10.6 - resolution: "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@file:../../.local-packages/dynamic-home-page.tgz#../../.local-packages/dynamic-home-page.tgz::hash=100c4c&locator=app%40workspace%3Apackages%2Fapp" +"@red-hat-developer-hub/backstage-plugin-dynamic-home-page@npm:1.11.0, @red-hat-developer-hub/backstage-plugin-dynamic-home-page@npm:^1.10.2": + version: 1.11.0 + resolution: "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@npm:1.11.0" dependencies: "@backstage/catalog-client": "npm:^1.12.1" "@backstage/catalog-model": "npm:^1.7.6" @@ -11479,35 +11440,7 @@ __metadata: peerDependencies: react: 16.13.1 || ^17.0.0 || ^18.2.0 react-router-dom: 6.30.3 - checksum: 10c0/973920dd0eafa9ba0a1f3f7d607a2385ee2f6edcd6073149761f1adfecf4ee0b64b43ffcb976e11360df76bb83a56e9ca9d7a80b86714bf82b1ee4ed7f2e344f - languageName: node - linkType: hard - -"@red-hat-developer-hub/backstage-plugin-dynamic-home-page@npm:^1.10.2": - version: 1.10.2 - resolution: "@red-hat-developer-hub/backstage-plugin-dynamic-home-page@npm:1.10.2" - dependencies: - "@backstage/catalog-client": "npm:^1.12.1" - "@backstage/catalog-model": "npm:^1.7.6" - "@backstage/core-components": "npm:^0.18.3" - "@backstage/core-plugin-api": "npm:^1.12.0" - "@backstage/plugin-catalog-react": "npm:^1.21.3" - "@backstage/plugin-home": "npm:^0.8.14" - "@backstage/plugin-home-react": "npm:^0.1.32" - "@backstage/plugin-search-react": "npm:^1.10.0" - "@backstage/plugin-user-settings": "npm:^0.8.29" - "@backstage/theme": "npm:^0.7.0" - "@mui/icons-material": "npm:5.18.0" - "@mui/material": "npm:5.18.0" - "@mui/styles": "npm:5.18.0" - "@scalprum/react-core": "npm:0.11.1" - react-grid-layout: "npm:1.5.3" - react-use: "npm:17.6.0" - tss-react: "npm:4.9.20" - peerDependencies: - react: 16.13.1 || ^17.0.0 || ^18.2.0 - react-router-dom: 6.30.2 - checksum: 10c0/a438ff1d030d7b90abc8a123a75f6f23375d5e2faa83e893c968b99dd6d410243e67f1d1c79d5b9fc195d00ef78871e16f681dcc1f564afc8080b8040fe29cfb + checksum: 10c0/877ac23c91d1fe568ebb7a1a3ca64d5655dce91e24e25bd284354276da846d2b32c4f0b912421bc6b734899b8771bc409b6baa69d74d065cb95fa6f966a2880f languageName: node linkType: hard @@ -16342,7 +16275,7 @@ __metadata: "@backstage/ui": "npm:^0.9.1" "@material-ui/core": "npm:^4.12.2" "@mui/icons-material": "npm:^5.18.0" - "@red-hat-developer-hub/backstage-plugin-dynamic-home-page": "file:../../.local-packages/dynamic-home-page.tgz" + "@red-hat-developer-hub/backstage-plugin-dynamic-home-page": "npm:1.11.0" "@red-hat-developer-hub/backstage-plugin-scorecard": "workspace:^" "@red-hat-developer-hub/backstage-plugin-theme": "npm:^0.13.0" "@types/react": "npm:^18" From d4c948a3785d42f0598b22d45b633cabe5d371b8 Mon Sep 17 00:00:00 2001 From: rohitratannagar Date: Mon, 30 Mar 2026 12:43:00 +0530 Subject: [PATCH 6/6] updating translation import in app-legacy Signed-off-by: rohitratannagar --- workspaces/scorecard/packages/app-legacy/src/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspaces/scorecard/packages/app-legacy/src/App.tsx b/workspaces/scorecard/packages/app-legacy/src/App.tsx index 5a2896d6d8..8ce7385021 100644 --- a/workspaces/scorecard/packages/app-legacy/src/App.tsx +++ b/workspaces/scorecard/packages/app-legacy/src/App.tsx @@ -65,8 +65,8 @@ import { DynamicCustomizableHomePage, OnboardingSection, HomePageCardMountPoint, - homepageTranslations, } from '@red-hat-developer-hub/backstage-plugin-dynamic-home-page'; +import { homepageTranslations } from '@red-hat-developer-hub/backstage-plugin-dynamic-home-page/alpha'; import { ComponentType } from 'react'; const mountPoints: HomePageCardMountPoint[] = [