diff --git a/microsite/data/plugins/airbrake.yaml b/microsite/data/plugins/airbrake.yaml index 8facf13185..59910df629 100644 --- a/microsite/data/plugins/airbrake.yaml +++ b/microsite/data/plugins/airbrake.yaml @@ -6,5 +6,5 @@ category: Monitoring description: Access Airbrake error monitoring and other integrations from within Backstage documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/airbrake/plugins/airbrake iconUrl: https://wp-assets.airbrake.io/wp-content/uploads/2020/10/05222904/Square-white-A-on-Orange.png -npmPackageName: '@backstage/plugin-airbrake' +npmPackageName: '@backstage-community/plugin-airbrake' addedDate: '2022-01-10' diff --git a/microsite/data/plugins/analytics-module-ga.yaml b/microsite/data/plugins/analytics-module-ga.yaml index 3dcb27bcd5..537a360c8c 100644 --- a/microsite/data/plugins/analytics-module-ga.yaml +++ b/microsite/data/plugins/analytics-module-ga.yaml @@ -6,5 +6,5 @@ category: Monitoring description: Track usage of your Backstage instance using Google Analytics 4. documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/analytics/plugins/analytics-module-ga4#readme iconUrl: /img/ga-icon.png -npmPackageName: '@backstage/plugin-analytics-module-ga4' +npmPackageName: '@backstage-community/plugin-analytics-module-ga4' addedDate: '2021-10-07' diff --git a/microsite/data/plugins/apollo-explorer.yaml b/microsite/data/plugins/apollo-explorer.yaml index 2b0f834f92..83d121e055 100644 --- a/microsite/data/plugins/apollo-explorer.yaml +++ b/microsite/data/plugins/apollo-explorer.yaml @@ -6,5 +6,5 @@ category: Debugging description: Integrates Apollo Explorer graphs as a tool to browse GraphQL API endpoints inside Backstage. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/apollo-explorer/plugins/apollo-explorer/README.md iconUrl: /img/apollo-explorer.png -npmPackageName: '@backstage/plugin-apollo-explorer' +npmPackageName: '@backstage-community/plugin-apollo-explorer' addedDate: '2022-07-20' diff --git a/microsite/data/plugins/aws-amazon-ecs.yaml b/microsite/data/plugins/aws-amazon-ecs.yaml index a94779babd..e16028d802 100644 --- a/microsite/data/plugins/aws-amazon-ecs.yaml +++ b/microsite/data/plugins/aws-amazon-ecs.yaml @@ -6,5 +6,5 @@ category: Infrastructure description: View resources related to Amazon Elastic Container Service for your components in Backstage. documentation: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/ecs#readme iconUrl: https://raw.githubusercontent.com/awslabs/backstage-plugins-for-aws/main/docs/images/logos/amazon-ecs-logo.png -npmPackageName: 'https://www.npmjs.com/package/@aws/amazon-ecs-plugin-for-backstage' +npmPackageName: '@aws/amazon-ecs-plugin-for-backstage' addedDate: '2024-04-22' diff --git a/microsite/data/plugins/aws-codebuild.yaml b/microsite/data/plugins/aws-codebuild.yaml index 2c12f92dce..504730402f 100644 --- a/microsite/data/plugins/aws-codebuild.yaml +++ b/microsite/data/plugins/aws-codebuild.yaml @@ -6,5 +6,5 @@ category: CI/CD description: View resources related to AWS CodeBuild for your components in Backstage. documentation: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codebuild#readme iconUrl: https://raw.githubusercontent.com/awslabs/backstage-plugins-for-aws/main/docs/images/logos/aws-codebuild-logo.png -npmPackageName: 'https://www.npmjs.com/package/@aws/aws-codebuild-plugin-for-backstage' +npmPackageName: '@aws/aws-codebuild-plugin-for-backstage' addedDate: '2024-04-22' diff --git a/microsite/data/plugins/aws-codepipeline.yaml b/microsite/data/plugins/aws-codepipeline.yaml index 16986b6718..a2eb8de230 100644 --- a/microsite/data/plugins/aws-codepipeline.yaml +++ b/microsite/data/plugins/aws-codepipeline.yaml @@ -6,5 +6,5 @@ category: CI/CD description: View resources related to AWS CodePipeline for your components in Backstage. documentation: https://github.com/awslabs/backstage-plugins-for-aws/tree/main/plugins/codepipeline#readme iconUrl: https://raw.githubusercontent.com/awslabs/backstage-plugins-for-aws/main/docs/images/logos/aws-codepipeline-logo.png -npmPackageName: 'https://www.npmjs.com/package/@aws/aws-codepipeline-plugin-for-backstage' +npmPackageName: '@aws/aws-codepipeline-plugin-for-backstage' addedDate: '2024-04-22' diff --git a/microsite/data/plugins/azure-pipelines.yaml b/microsite/data/plugins/azure-pipelines.yaml index e0e3534fdb..f9536eb192 100644 --- a/microsite/data/plugins/azure-pipelines.yaml +++ b/microsite/data/plugins/azure-pipelines.yaml @@ -6,5 +6,5 @@ category: CI/CD description: Easily view your Azure Pipelines within the Software Catalog documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/azure-devops/plugins/azure-devops/README.md iconUrl: /img/azure-pipelines.svg -npmPackageName: '@backstage/plugin-azure-devops' +npmPackageName: '@backstage-community/plugin-azure-devops' addedDate: '2021-12-22' diff --git a/microsite/data/plugins/badges.yaml b/microsite/data/plugins/badges.yaml index 789aaf155d..9452054810 100644 --- a/microsite/data/plugins/badges.yaml +++ b/microsite/data/plugins/badges.yaml @@ -6,5 +6,5 @@ category: Discovery description: The badges plugin offers a set of badges that can be used outside of Backstage, showing information related to data from the catalog. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/badges/plugins/badges/README.md iconUrl: /img/badges.svg -npmPackageName: '@backstage/plugin-badges' +npmPackageName: '@backstage-community/plugin-badges' addedDate: '2021-09-29' diff --git a/microsite/data/plugins/bazaar.yaml b/microsite/data/plugins/bazaar.yaml index 1130822e77..d14aaaecd8 100644 --- a/microsite/data/plugins/bazaar.yaml +++ b/microsite/data/plugins/bazaar.yaml @@ -5,5 +5,5 @@ category: Discovery description: A marketplace where engineers can propose projects suitable for inner sourcing documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/bazaar/plugins/bazaar/README.md iconUrl: /img/bazaar.svg -npmPackageName: '@backstage/plugin-bazaar' +npmPackageName: '@backstage-community/plugin-bazaar' addedDate: '2022-01-11' diff --git a/microsite/data/plugins/bitrise.yaml b/microsite/data/plugins/bitrise.yaml index 5cbfe5aabf..31f50a007c 100644 --- a/microsite/data/plugins/bitrise.yaml +++ b/microsite/data/plugins/bitrise.yaml @@ -6,5 +6,5 @@ category: CI/CD description: View Bitrise builds and download the build artifacts within Backstage. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/bitrise/plugins/bitrise/README.md iconUrl: https://avatars.githubusercontent.com/u/7174390?s=400&v=4 -npmPackageName: '@backstage/plugin-bitrise' +npmPackageName: '@backstage-community/plugin-bitrise' addedDate: '2021-03-01' diff --git a/microsite/data/plugins/digital.ai-deploy.yaml b/microsite/data/plugins/digital.ai-deploy.yaml index a36dd08ffb..62203a99ea 100644 --- a/microsite/data/plugins/digital.ai-deploy.yaml +++ b/microsite/data/plugins/digital.ai-deploy.yaml @@ -6,7 +6,7 @@ category: CI/CD description: The plugin offers integration with Digital.ai Deploy and backstage components and services. It provide access to deployments and reports. documentation: https://docs.digital.ai/deploy/docs/concept/xl-deploy-backstage-overview iconUrl: /img/digital.ai-deploy.svg -npmPackageName: '@digital.ai/plugin-dai-deploy' +npmPackageName: '@digital-ai/plugin-dai-deploy' tags: - ci - cd diff --git a/microsite/data/plugins/firehydrant.yaml b/microsite/data/plugins/firehydrant.yaml index 7aa00675b4..f5ccd3629d 100644 --- a/microsite/data/plugins/firehydrant.yaml +++ b/microsite/data/plugins/firehydrant.yaml @@ -6,5 +6,5 @@ category: Monitoring description: View service incidents information from FireHydrant, such as active incidents and incident metrics, directly within Backstage. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/firehydrant/plugins/firehydrant/README.md iconUrl: https://github.com/backstage/community-plugins/blob/main/workspaces/firehydrant/plugins/firehydrant/doc/firehydrant_logo.png -npmPackageName: '@backstage/plugin-firehydrant' +npmPackageName: '@backstage-community/plugin-firehydrant' addedDate: '2021-08-18' diff --git a/microsite/data/plugins/fossa.yaml b/microsite/data/plugins/fossa.yaml index a1a66eb7d6..34610c64e4 100644 --- a/microsite/data/plugins/fossa.yaml +++ b/microsite/data/plugins/fossa.yaml @@ -6,5 +6,5 @@ category: Quality description: View FOSSA license compliance of your components in Backstage. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/fossa/plugins/fossa/README.md iconUrl: https://avatars0.githubusercontent.com/u/9543448?s=400&v=4 -npmPackageName: '@backstage/plugin-fossa' +npmPackageName: '@backstage-community/plugin-fossa' addedDate: '2020-12-10' diff --git a/microsite/data/plugins/kubernetes-provider.yaml b/microsite/data/plugins/kubernetes-provider.yaml index e0971d55be..b23ab03caa 100644 --- a/microsite/data/plugins/kubernetes-provider.yaml +++ b/microsite/data/plugins/kubernetes-provider.yaml @@ -6,5 +6,5 @@ category: Kubernetes description: Import Kubernetes resources into Backstage Components documentation: https://github.com/AntoineDao/backstage-provider-kubernetes#readme iconUrl: https://avatars.githubusercontent.com/u/13629408 -npmPackageName: https://www.npmjs.com/package/@antoinedao/backstage-provider-kubernetes +npmPackageName: '@antoinedao/backstage-provider-kubernetes' addedDate: '2023-04-10' diff --git a/microsite/data/plugins/linguist.yaml b/microsite/data/plugins/linguist.yaml index fb8e88b747..15b79b3682 100644 --- a/microsite/data/plugins/linguist.yaml +++ b/microsite/data/plugins/linguist.yaml @@ -6,5 +6,5 @@ category: Metadata description: View the programming language break down for your entities within the Software Catalog documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/linguist/plugins/linguist/README.md iconUrl: /img/linguist.svg -npmPackageName: '@backstage/plugin-linguist' +npmPackageName: '@backstage-community/plugin-linguist' addedDate: '2023-06-17' diff --git a/microsite/data/plugins/octopus-deploy.yaml b/microsite/data/plugins/octopus-deploy.yaml index cfc5e2c9e5..eb19f60e72 100644 --- a/microsite/data/plugins/octopus-deploy.yaml +++ b/microsite/data/plugins/octopus-deploy.yaml @@ -6,5 +6,5 @@ category: CI/CD description: Easily view your Octopus Deploy releases within the Software Catalog documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/octopus-deploy/plugins/octopus-deploy/README.md iconUrl: /img/octopus-deploy.svg -npmPackageName: '@backstage/plugin-octopus-deploy' +npmPackageName: '@backstage-community/plugin-octopus-deploy' addedDate: '2023-02-24' diff --git a/microsite/data/plugins/opencost.yaml b/microsite/data/plugins/opencost.yaml index 95973e3b0c..9e98c85bcb 100644 --- a/microsite/data/plugins/opencost.yaml +++ b/microsite/data/plugins/opencost.yaml @@ -6,5 +6,5 @@ category: Monitoring description: OpenCost provides cloud cost monitoring for your cloud native environments. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/opencost/plugins/opencost/README.md iconUrl: /img/opencost.png -npmPackageName: '@backstage/plugin-opencost' +npmPackageName: '@backstage-community/plugin-opencost' addedDate: '2023-10-26' diff --git a/microsite/data/plugins/puppetdb.yaml b/microsite/data/plugins/puppetdb.yaml index 650d8318d3..26e8bbd3ef 100644 --- a/microsite/data/plugins/puppetdb.yaml +++ b/microsite/data/plugins/puppetdb.yaml @@ -6,7 +6,7 @@ category: Configuration Management description: Visualize resource information and Puppet facts from PuppetDB. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/puppetdb/plugins/puppetdb/README.md iconUrl: /img/puppet.png -npmPackageName: '@backstage/plugin-puppetdb' +npmPackageName: '@backstage-community/plugin-puppetdb' tags: - puppet - puppetdb diff --git a/microsite/data/plugins/renovate-hoster.yaml b/microsite/data/plugins/renovate-hoster.yaml index 4cf4f65956..06187581bf 100644 --- a/microsite/data/plugins/renovate-hoster.yaml +++ b/microsite/data/plugins/renovate-hoster.yaml @@ -5,5 +5,5 @@ authorUrl: https://github.com/secustor category: Quality description: This plugin enables you to host Renovate CLI yourself inside of Backstage and extract data from it. documentation: https://github.com/secustor/backstage-plugins/tree/main/plugins/renovate -npmPackageName: '@backstage/backstage-plugin-renovate' +npmPackageName: '@secustor/backstage-plugin-renovate' addedDate: '2025-03-31' diff --git a/microsite/data/plugins/shortcuts.yaml b/microsite/data/plugins/shortcuts.yaml index b420e28e2f..7d4e050df0 100644 --- a/microsite/data/plugins/shortcuts.yaml +++ b/microsite/data/plugins/shortcuts.yaml @@ -6,5 +6,5 @@ category: Utility description: The shortcuts plugin allows a user to have easy access to pages within a Backstage app by storing them as "shortcuts" in the Sidebar. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/shortcuts/plugins/shortcuts/README.md iconUrl: /img/shortcuts.svg -npmPackageName: '@backstage/plugin-shortcuts' +npmPackageName: '@backstage-community/plugin-shortcuts' addedDate: '2021-10-06' diff --git a/microsite/data/plugins/sonarqube.yaml b/microsite/data/plugins/sonarqube.yaml index 72c662e2fa..48793adea9 100644 --- a/microsite/data/plugins/sonarqube.yaml +++ b/microsite/data/plugins/sonarqube.yaml @@ -6,5 +6,5 @@ category: Quality description: Components to display code quality metrics from SonarCloud and SonarQube. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/sonarqube/plugins/sonarqube/README.md iconUrl: /img/sonarqube-icon.svg -npmPackageName: '@backstage/plugin-sonarqube' +npmPackageName: '@backstage-community/plugin-sonarqube' addedDate: '2020-11-03' diff --git a/microsite/data/plugins/stack-overflow.yaml b/microsite/data/plugins/stack-overflow.yaml index b058ce90fe..373c08de8f 100644 --- a/microsite/data/plugins/stack-overflow.yaml +++ b/microsite/data/plugins/stack-overflow.yaml @@ -6,5 +6,5 @@ category: Discovery description: Provides Stack Overflow specific functionality that can be used in different ways (e.g. for homepage and search) to compose your Backstage App. documentation: https://github.com/backstage/community-plugins/blob/main/workspaces/stack-overflow/plugins/stack-overflow/README.md iconUrl: /img/stack-overflow-logo.svg -npmPackageName: '@backstage/plugin-stack-overflow' +npmPackageName: '@backstage-community/plugin-stack-overflow' addedDate: '2022-06-14' diff --git a/microsite/data/plugins/template-designer.yaml b/microsite/data/plugins/template-designer.yaml index 7994a05430..86aa8a97f0 100644 --- a/microsite/data/plugins/template-designer.yaml +++ b/microsite/data/plugins/template-designer.yaml @@ -6,4 +6,5 @@ category: Productivity description: Template Designer turns blank Backstage YAML into a storyboard-like canvas, guiding anyone through drag-and-drop scaffolder authoring before ever touching code. Rally non-experts, broadcast best practices, and accelerate template launches directly inside Backstage. documentation: https://github.com/tduniec/template-designer-plugin/blob/main/README.md iconUrl: https://raw.githubusercontent.com/tduniec/template-designer-plugin/main/img/logo/templateDesignerLogo.png +npmPackageName: '@tduniec/plugin-template-designer' addedDate: 2025-11-19 diff --git a/microsite/data/plugins/torque.yaml b/microsite/data/plugins/torque.yaml index 1480c3bad9..a469c455fc 100644 --- a/microsite/data/plugins/torque.yaml +++ b/microsite/data/plugins/torque.yaml @@ -8,5 +8,5 @@ description: | Plugin includes an Entity ComponentCard, Backend API route and scaffolder actions. documentation: https://github.com/QualiTorque/torque-backstage-plugin/tree/main/packages/torque#readme iconUrl: https://user-images.githubusercontent.com/8643801/214640977-751bc338-6b77-40a0-a897-cba41b6f006a.png -npmPackageName: '@qtorque/backstage-plugin-torque' +npmPackageName: '@qtorque/backstage-torque-plugin' addedDate: '2023-01-25' diff --git a/microsite/data/plugins/xcmetrics.yaml b/microsite/data/plugins/xcmetrics.yaml index f02b195eb5..09a8b1547f 100644 --- a/microsite/data/plugins/xcmetrics.yaml +++ b/microsite/data/plugins/xcmetrics.yaml @@ -6,5 +6,5 @@ category: Monitoring description: Discover valuable insights hiding inside Xcode’s build logs. documentation: https://xcmetrics.io/ iconUrl: /img/xcmetrics-icon.png -npmPackageName: '@backstage/plugin-xcmetrics' +npmPackageName: '@backstage-community/plugin-xcmetrics' addedDate: '2021-08-06' diff --git a/package.json b/package.json index a7ef0c8056..4a67751584 100644 --- a/package.json +++ b/package.json @@ -158,6 +158,7 @@ "eslint-plugin-testing-library": "^6.0.0", "fs-extra": "^11.2.0", "husky": "^9.0.0", + "js-yaml": "^4.1.1", "lint-staged": "^15.0.0", "madge": "^8.0.0", "minimist": "^1.2.5", diff --git a/scripts/plugin-directory-audit.js b/scripts/plugin-directory-audit.js new file mode 100644 index 0000000000..7e28ae2b57 --- /dev/null +++ b/scripts/plugin-directory-audit.js @@ -0,0 +1,74 @@ +#!/usr/bin/env node +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* eslint-disable @backstage/no-undeclared-imports */ + +// This script is used to audit the list of plugins in the Plugin Directory: https://backstage.io/plugins + +const { resolve } = require('path'); +const fs = require('fs-extra'); +const yaml = require('js-yaml'); + +async function getNpmPackage(npmPackageName) { + const response = await fetch(`https://registry.npmjs.com/${npmPackageName}`); + const json = await response.json(); + return json; +} + +function getAge(npmModified) { + const ageDif = Date.now() - new Date(npmModified).getTime(); + return Math.round(ageDif / (1000 * 60 * 60 * 24)); +} + +async function main() { + const rootPath = resolve(__dirname, '..'); + const pluginDataPath = resolve(rootPath, 'microsite/data/plugins'); + + console.log(__dirname, rootPath, pluginDataPath); + + const pluginDataFiles = fs.readdirSync(pluginDataPath); + + const pluginsData = []; + for (const pluginDataFile of pluginDataFiles) { + const pluginDataFilePath = resolve(pluginDataPath, pluginDataFile); + const pluginDataYaml = yaml.load( + fs.readFileSync(pluginDataFilePath, { encoding: 'utf-8' }), + ); + + console.log( + `Auditing - ${pluginDataYaml.title} by ${pluginDataYaml.author} - ${pluginDataYaml.npmPackageName}`, + ); + + const npmPackage = await getNpmPackage(pluginDataYaml.npmPackageName); + + const pluginData = { + npmPackageName: pluginDataYaml.npmPackageName, + npmCreated: npmPackage.time?.created, + npmModified: npmPackage.time?.modified, + age: getAge(npmPackage.time?.modified), + }; + + pluginsData.push(pluginData); + } + + console.table(pluginsData); +} + +main(process.argv.slice(2)).catch(error => { + console.error(error.stack || error); + process.exit(1); +}); diff --git a/yarn.lock b/yarn.lock index 89996847c4..0dbafe55b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -44854,6 +44854,7 @@ __metadata: eslint-plugin-testing-library: "npm:^6.0.0" fs-extra: "npm:^11.2.0" husky: "npm:^9.0.0" + js-yaml: "npm:^4.1.1" lint-staged: "npm:^15.0.0" madge: "npm:^8.0.0" minimist: "npm:^1.2.5"