Skip to main content
Version: v3

Marketplace Plugin

The Marketplace plugin is the in-portal interface for discovering, installing, and uninstalling dynamic plugins without editing YAML files. The sidebar item Marketplace opens it as the Extensions page at /marketplace.

Status: Default plugin, enabled by default. No chart values entry is required.


Packages​

PackageRole
devportal-marketplace-frontend-dynamicFrontend: Marketplace UI at /marketplace
devportal-marketplace-backendBackend: plugin catalog and install state (/api/extensions/*)
red-hat-developer-hub-backstage-plugin-catalog-backend-module-extensionsCatalog module: ingests the extracted index entities so Marketplace can list them

Marketplace is the VeeCode plugin experience built on the Red Hat Developer Hub Extensions mechanism: the Extensions catalog provider reads the plugin catalog index image, and the Marketplace frontend installs from it.


What it does​

  • Lists the installable plugins from the catalog index as cards
  • Shows which plugins are installed
  • An Install selection is written to PostgreSQL and to /devportal-data/extensions-install.yaml at once; the card shows a pending state until the stack restarts
  • The Installed packages tab lists the packages the portal runs
  • Four default plugins are protected. The Marketplace cannot disable them: a disabled row for one of them is ignored, and the install log shows a warning.
  • The YAML you type on an install or edit page is saved. Invalid YAML is refused, and the page shows the line and column of the first error.

Configuration​

The catalog index's default plugin file (dynamic-plugins.default.yaml) enables all three packages and configures the frontend route and sidebar entry:

pluginConfig:
dynamicPlugins:
frontend:
devportal.marketplace-frontend:
appIcons:
- name: pluginsIcon
importName: PluginsIcon
dynamicRoutes:
- path: /marketplace
importName: DynamicExtensionsPluginRouter
menuItem:
icon: pluginsIcon
text: Marketplace
menuItems:
marketplace:
title: Marketplace
icon: pluginsIcon
priority: 72

The extensions catalog module and the Marketplace backend ship with no pluginConfig. Which plugins the Marketplace lists is set by the chart's global.catalogIndex.image; see Finding Plugins. Install selections need a full stack restart to take effect: a plain restart of the portal container does not run the plugin installer. See Adding Plugins.

Turn it off​

Add the override entries with the {{inherit}} tag and the full !<plugin path> part, plus disabled: true, under global.dynamic.plugins on Kubernetes or in the operator plugin file on the local stack. On Kubernetes write the tag as {{ "{{inherit}}" }}; in the operator plugin file write {{inherit}} as is:

plugins:
- package: oci://quay.io/veecode/devportal-marketplace-frontend-dynamic:{{inherit}}!devportal-marketplace-frontend-dynamic
disabled: true
- package: oci://quay.io/veecode/devportal-marketplace-backend:{{inherit}}!devportal-marketplace-backend
disabled: true
- package: oci://quay.io/veecode/red-hat-developer-hub-backstage-plugin-catalog-backend-module-extensions:{{inherit}}!red-hat-developer-hub-backstage-plugin-catalog-backend-module-extensions
disabled: true

Disabling Marketplace also removes the in-portal path for installing plugins; chart-values and operator-file entries keep working. See Adding Plugins for where to put these entries and how to apply them.