Skip to main content
Version: v3

DevPortal 3.1.2 release sheet

Release date: 2026-10-28

What changed​

New features and enhancements​

  • None.

Breaking changes and upgrade notes​

  • Chart upgrades. Do not move to chart 1.1.3 with helm upgrade --reuse-values. It reuses the values of the previous release, so the previous image stays in place. Pass explicit values, or use --reset-then-reuse-values (Helm 3.14 or later). The steps are on the upgrade page.
  • From 3.0.x, the upgrade notes of the 3.1.0 release sheet also apply.

Deprecated and removed features​

  • None.

Fixed issues​

  • None.

Fixed security issues​

  • CVE-2026-111497, important, in the Brotli decoder. Node.js in the image decompresses Brotli data with the operating system's libbrotli, and 3.1.1 ships libbrotli 1.1.0-8.el10_2. 3.1.2 installs 1.1.0-8.el10_2.1, the build that fixes it (RHSA-2026:90449). Red Hat lists the Node.js 24 package of RHEL 10 as not affected, because it uses that library.
  • GHSA-vc2v-76pw-4v95, high, in compression: a denial of service through a memory leak on a prematurely closed response. compression moves from 1.8.1 to 1.8.2.
  • Three advisories in qs, all moderate: GHSA-4mjr-xmp4-gh2g, GHSA-x5fp-wj9c-mxmx and GHSA-6pq8-jhm2-2vcw. qs moves from 6.15.2 to 6.16.1.
  • Five moderate advisories in ip-address, among them GHSA-rxp7-6hxx-x8q5. ip-address moves from 10.5.0 to 10.7.4.

3.1.2 changes only these packages against 3.1.1. The image's RPM lockfile was also regenerated, which moves 20 other packages that the build installs, such as glibc and openssh, to their current builds.

What goes together​

Use these values together. Pin the image by its digest.

PartValue
Imagedocker.io/veecode/devportal:3.1.2@sha256:869b8f3eb9f543dd87b3dbd474073c1d0cfbd6816121cf8dd03058bf498fa691
Image digestsha256:869b8f3eb9f543dd87b3dbd474073c1d0cfbd6816121cf8dd03058bf498fa691
Chartdevportal 1.1.3
Chart checksum (SHA-256)092348e76fcacfa773813755e5692b02504fe333ba12f7f7b37b297df18ed145
Backstage version1.54.9
Plugin tag linebs_1.54.9
Catalog indexquay.io/veecode/plugin-catalog-index:bs_1.54.9, qualified at sha256:6b30147c2146dda4bc8f607c04cc37135c02e41cc297a3bfcb4af78ef702aefa
Catalog index tag for pinningquay.io/veecode/plugin-catalog-index:bs_1.54.9_20261021T175344
Qualified onKubernetes 1.35.0, PostgreSQL 16 (image postgres:16)

bs_1.54.9 is the tag under which the plugins and the catalog index are published, and it names the Backstage version they are built for. The catalog index tag moves when the catalog is republished. The chart pins the catalog index by digest, so an installation keeps the same index until you move to a new chart version. To pin this index by its timestamped tag instead of its digest, set global.catalogIndex.image.repository to veecode/plugin-catalog-index and global.catalogIndex.image.tag to bs_1.54.9_20261021T175344. This is the same index as in chart 1.1.2.

Backstage packages​

The table lists the Backstage packages that the portal's backend declares directly, at the versions of the image's source commit. It does not list the packages that come in through other packages. The versions are the same as in 3.1.0 and 3.1.1.

PackageVersion
@backstage/backend-app-api1.7.3
@backstage/backend-defaults0.17.8
@backstage/backend-dynamic-feature-service0.8.6
@backstage/backend-plugin-api1.10.0
@backstage/catalog-client1.16.1
@backstage/catalog-model1.10.0
@backstage/cli-node0.3.4
@backstage/config1.3.8
@backstage/plugin-app-backend0.5.17
@backstage/plugin-auth-backend0.30.0
@backstage/plugin-auth-backend-module-atlassian-provider0.4.18
@backstage/plugin-auth-backend-module-auth0-provider0.4.4
@backstage/plugin-auth-backend-module-azure-easyauth-provider0.2.23
@backstage/plugin-auth-backend-module-bitbucket-provider0.3.18
@backstage/plugin-auth-backend-module-bitbucket-server-provider0.2.18
@backstage/plugin-auth-backend-module-cloudflare-access-provider0.4.18
@backstage/plugin-auth-backend-module-gcp-iap-provider0.4.18
@backstage/plugin-auth-backend-module-github-provider0.5.6
@backstage/plugin-auth-backend-module-gitlab-provider0.4.6
@backstage/plugin-auth-backend-module-google-provider0.3.18
@backstage/plugin-auth-backend-module-guest-provider0.2.22
@backstage/plugin-auth-backend-module-microsoft-provider0.3.18
@backstage/plugin-auth-backend-module-oauth2-proxy-provider0.3.2
@backstage/plugin-auth-backend-module-oidc-provider0.4.20
@backstage/plugin-auth-backend-module-okta-provider0.2.18
@backstage/plugin-auth-backend-module-onelogin-provider0.3.18
@backstage/plugin-auth-node0.7.5
@backstage/plugin-catalog-backend3.9.1
@backstage/plugin-catalog-backend-module-logs0.1.25
@backstage/plugin-catalog-backend-module-openapi0.2.25
@backstage/plugin-catalog-backend-module-scaffolder-entity-model0.2.23
@backstage/plugin-events-backend0.6.5
@backstage/plugin-events-backend-module-gitlab0.3.15
@backstage/plugin-events-node0.4.25
@backstage/plugin-permission-backend0.7.15
@backstage/plugin-proxy-backend0.6.17
@backstage/plugin-scaffolder-backend4.1.0
@backstage/plugin-search-backend2.1.6
@backstage/plugin-search-backend-module-catalog0.3.18
@backstage/plugin-search-backend-module-pg0.5.58
@backstage/plugin-user-settings-backend0.4.6

Default plugin versions​

The catalog index enables these 18 plugins. Protected plugins cannot be disabled from the Marketplace. The other plugins can be disabled from it. Chart 1.1.3 keeps the catalog index of chart 1.1.2, so the versions are the same as in 3.1.1.

ArtifactVersionProtected
quay.io/veecode/veecode-platform-plugin-veecode-homepage1.0.4no
quay.io/veecode/red-hat-developer-hub-backstage-plugin-global-header3.1.0no
quay.io/veecode/backstage-community-plugin-rbac2.3.1no
quay.io/veecode/veecode-platform-backstage-plugin-about1.2.1no
quay.io/veecode/veecode-platform-backstage-plugin-about-backend1.2.0no
quay.io/veecode/red-hat-developer-hub-backstage-plugin-catalog-backend-module-extensions0.18.0yes
quay.io/veecode/devportal-marketplace-backend0.3.1yes
quay.io/veecode/devportal-pending-changes-dynamic0.3.0yes
quay.io/veecode/devportal-marketplace-frontend-dynamic0.3.2yes
quay.io/veecode/backstage-plugin-techdocs1.18.0no
quay.io/veecode/backstage-plugin-techdocs-backend2.2.5no
quay.io/veecode/backstage-plugin-techdocs-module-addons-contrib1.1.39no
quay.io/veecode/backstage-plugin-notifications0.5.20no
quay.io/veecode/backstage-plugin-signals0.0.34no
quay.io/veecode/backstage-plugin-notifications-backend0.6.8no
quay.io/veecode/backstage-plugin-signals-backend0.3.18no
quay.io/veecode/backstage-community-plugin-tech-radar1.22.0no
quay.io/veecode/backstage-community-plugin-tech-radar-backend1.21.0no

Vulnerability report​

  • Image scanned: docker.io/veecode/devportal@sha256:869b8f3eb9f543dd87b3dbd474073c1d0cfbd6816121cf8dd03058bf498fa691
  • Scanner: Trivy 0.74.0, database dated 2026-10-28.
  • Critical vulnerabilities with a fix and no live exception: 0.
  • Qualification run: https://github.com/veecode-platform/devportal-chart/actions/runs/40719994985.
  • Chart 1.1.3: the qualification of the published package (devportal-1.1.3.tgz, SHA-256 092348e7…), https://github.com/veecode-platform/devportal-chart/actions/runs/40730080566, installs the same image and catalog index.
SeverityReportedWith a fixAccepted as an exception
CRITICAL000
HIGH15115012
MEDIUM54540
LOW11110
UNKNOWN000

Reported counts the findings that no exception covers. Accepted as an exception counts the findings that an exception covers.

The database of 2026-10-28 reports many more findings than the database the 3.1.1 sheet used, most of them high findings for zod (CVE-2023-54404). Scanned with the same database, 3.1.2 has 9 fewer findings than 3.1.1 (the compression, qs and ip-address advisories above) and no new ones.

A release does not ship with a critical vulnerability that has a fix and no live exception.

Exceptions​

IDPackageSeverityReasonExpires
CVE-2026-67422pymdown-extensionsHIGHThe fix is a major update to 11.0.1.2026-12-30
CVE-2026-12151undiciHIGHThe fixes are major updates to 6.27.0, 7.28.0 or 8.5.0.2026-12-30
CVE-2026-1526undiciHIGHThe fixes are major updates to 6.24.0 or 7.24.0.2026-12-30
CVE-2026-2229undiciHIGHThe fixes are major updates to 6.24.0 or 7.24.0.2026-12-30
CVE-2026-55553urllibHIGHThe 4.9.1 fix is a major update, and the 2.44.1 fix would downgrade the installed version. This exception covers two findings.2026-12-30
CVE-2025-66418urllib3HIGHpython/requirements.in and python/requirements-build.in pin urllib3 2.2.2, so pip-tools cannot compile the fix. The hatchling and setuptools-scm build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2025-66471urllib3HIGHpython/requirements.in and python/requirements-build.in pin urllib3 2.2.2, so pip-tools cannot compile the fix. The hatchling and setuptools-scm build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2026-21441urllib3HIGHpython/requirements.in and python/requirements-build.in pin urllib3 2.2.2, so pip-tools cannot compile the fix. The hatchling and setuptools-scm build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2026-44431urllib3HIGHpython/requirements.in and python/requirements-build.in pin urllib3 2.2.2, so pip-tools cannot compile the fix. The hatchling and setuptools-scm build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2026-97687urllib3HIGHpython/requirements.in and python/requirements-build.in pin urllib3 2.2.2, so pip-tools cannot compile the fix. The hatchling and setuptools-scm build-tool pins may also need raising; this was not tested.2026-12-30
CVE-2026-97689urllib3HIGHpython/requirements.in and python/requirements-build.in pin urllib3 2.2.2, so pip-tools cannot compile the fix. The hatchling and setuptools-scm build-tool pins may also need raising; this was not tested.2026-12-30

An exception expires on the date shown. After that date the finding counts again and blocks a release.

Plugins enabled by default​

The plugins enabled by default are separate artifacts. Each one is scanned by digest. This scan is a report and does not block a release.

ArtifactDigestPackagesCriticalHighMediumLowUnknownCritical with a fixResult
quay.io/veecode/backstage-community-plugin-rbac36cc13d76a4a1000000scanned
quay.io/veecode/backstage-community-plugin-tech-radar-backendc727ce2f8f7678033200scanned
quay.io/veecode/backstage-community-plugin-tech-radar32bbb54039331000000scanned
quay.io/veecode/backstage-plugin-notifications-backendd48f3ff2f2d4109013000scanned
quay.io/veecode/backstage-plugin-notifications1919932ddf6a1000000scanned
quay.io/veecode/backstage-plugin-signals-backendfba0c367d0fa83023000scanned
quay.io/veecode/backstage-plugin-signals5386b0ef4af61000000scanned
quay.io/veecode/backstage-plugin-techdocs-backend17238af383db42601813100scanned
quay.io/veecode/backstage-plugin-techdocs-module-addons-contrib9a0a16aa62481000000scanned
quay.io/veecode/backstage-plugin-techdocs6cd5aa0c27271000000scanned
quay.io/veecode/devportal-marketplace-backend7948f276b64078024100scanned
quay.io/veecode/devportal-marketplace-frontend-dynamicaa9e50d1b2821000000scanned
quay.io/veecode/devportal-pending-changes-dynamic6891aa72fa561000000scanned
quay.io/veecode/red-hat-developer-hub-backstage-plugin-catalog-backend-module-extensions1913ab2bf352150113100scanned
quay.io/veecode/red-hat-developer-hub-backstage-plugin-global-header2ef7191074461000000scanned
quay.io/veecode/veecode-platform-backstage-plugin-about-backend3b3a20e3d94710000000scanned
quay.io/veecode/veecode-platform-backstage-plugin-about7997870037681000000scanned
quay.io/veecode/veecode-platform-plugin-veecode-homepage5d3d244e9ad31000000scanned

Known limitations​

The 3.1.0 release sheet also lists the following limitations. The 3.1.2 changes do not address them, and they were not re-tested on 3.1.2.

  • After an upgrade, the Marketplace can list the packages of the previous catalog index for up to 30 minutes. A package installed from the Marketplace during that window keeps the previous artifact until you reinstall it, and a former ./dynamic-plugins/dist/ entry is skipped. Wait until the Marketplace shows the 3.1 versions before you install plugins.
  • The default plugins ship the Red Hat dynamic Home page entry disabled. Enabling it leaves the portal's pages empty. Keep it disabled.
  • An offline install must mirror the catalog index as well as the plugin artifacts.
  • RBAC backend 8.1.4 adds no database migration. An upgrade from a database written by RBAC backend 7.12.5 was not tested.