Merge pull request #32048 from awanlin/topic/plugin-directory-audit
Plugins - Added plugin directory audit script
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
npmPackageName: '@tduniec/plugin-template-designer'
|
||||
addedDate: 2025-11-19
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user