/backstage-plugins

Plugins for Backstage

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Backstage Plugins by Janus IDP

Apache 2.0 license GitHub Workflow Status (Release) Released packages

Backstage is a single-page application composed of a set of plugins. This repository holds all plugins that are maintained, developed, and managed by the Janus IDP project.

For more information about the plugin ecosystem, see the upstream documentation.

A subset of available Janus IDP plugins is available at our community site.

You can also see the Plugin Marketplace for other open-source plugins you can add to your Backstage instance.

Dynamic Plugins Installation

It is possible to install plugins without code changes in a backstage that supports Dynamic Plugins (e.g. Janus IDP and Red Hat Developer Hub). Follow the steps below to install a dynamic plugin:

  • Map the dynamic plugins root directory in app-config.local.yaml:
dynamicPlugins:
  rootDirectory: dynamic-plugins-root
  • Place your package inside the plugins root directly. You can pack a local plugin or download from NPM using npm pack, then make sure to extract it correctly into the plugin root directory:
cd dynamic-plugins-root
mkdir {plugin name}
tar -xzvf {path to the NPM package tgz file} -C {plugin name}  --strip-components=1
  • Configure your plugin in app-config.local.yaml. For example, the configuration below will make a new menu item to access the plugin on route my-plugin:
dynamicPlugins:
  rootDirectory: dynamic-plugins-root
  frontend:
    {plugin name}:   # this should match the plugin name in package.json, remember to remove "@" and replace "/" by dots (".")
      pluginConfig:
      dynamicRoutes:
        - path: /my-plugin
          importName: MyPlugin   # the exported react component that should be rendered
          menuItem:
            text: My Plugin
  • Start backstage and you should see in logs that your plugin was correctly scanned by Backstage:
scalprum info Loaded dynamic frontend plugin '{plugin name}' from '${Backstage path}/dynamic-plugins-root/{plugin name}'  type=plugin

Now when accessing Backstage you should see a new menu item with name My Plugin and when clicking on it your plugin will be rendered.

For more information check the Dynamic Plugins Guide.


✨ We would love for you to contribute to Janus IDP's collection of Backstage plugins and help make it even better than it is today! ✨

  1. Contribution guide
  2. Code of Conduct