-
Story
-
Resolution: Unresolved
-
Major
-
None
-
5
-
False
-
-
False
-
RHIDP-5216 - Marketplace plugin
-
-
Story
As a marketplace user, I want to see if a plugin is installed/enabled.
Background
The information to show the installed and loaded plugins comes from the dynamic-plugins-info-backend, which is currently part of the RHDH showcase. See https://github.com/janus-idp/backstage-showcase/blob/main/plugins/dynamic-plugins-info-backend/src/service/router.ts
Because we want to contribute this plugin to the Backstage community, this way can be the only one of multiple options.
So we should have at least a small Service in our backend that can fetch this information from different sources.
Like:
enum InstallationStatus { AVAILABLE, NOT_AVAILABLE, INSTALLED, INSTALLING, UNINSTALLING, FAILURE, } interface InstallationStatusService { getStatusForPlugin(plugin: string): Status; } class DynamicPluginsInstallationStatus { // ... }
To allow us later to filter for installed, uninstalled plugins, we should save this information in the backstage catalog as well. This also removes the need to fetch this information for all the plugins shown in the grid.
A new catalog processor (I guess that's cleaner then reusing the existing...?) we should load this information whenever a plugin (catalog entity) is updated and adds this information to the catalog entity as a label.
Dependencies and Blockers
None
Acceptance Criteria
- A new catalog processor and catalog module with README, unit tests, etc. that fetches information from a Service interface and for our dynamic plugins from /loaded-plugins and stores this status into the catalog entity.
- Only if really easy possible: provide this information also as a rest API in the marketplace backend
- Show this information in the UI based on that label