initial script

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Plugins - Added plugin directory audit script

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Remove comments

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Updated log statement

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
This commit is contained in:
Andre Wanlin
2025-12-05 14:19:27 -06:00
parent ed162ae98b
commit 9b2c9a9b9e
28 changed files with 102 additions and 25 deletions
+1 -1
View File
@@ -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'
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
@@ -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
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -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'
@@ -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
addedDate: 2025-11-19
npmPackageName: '@tduniec/plugin-template-designer'
addedDate: 2025-11-19
+1 -1
View File
@@ -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'
+1 -1
View File
@@ -6,5 +6,5 @@ category: Monitoring
description: Discover valuable insights hiding inside Xcodes build logs.
documentation: https://xcmetrics.io/
iconUrl: /img/xcmetrics-icon.png
npmPackageName: '@backstage/plugin-xcmetrics'
npmPackageName: '@backstage-community/plugin-xcmetrics'
addedDate: '2021-08-06'
+1
View File
@@ -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",
+74
View File
@@ -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);
});
+1
View File
@@ -45242,6 +45242,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"