Changelog

What shipped, and when

ShieldedStack ships as a set of container images (proxy, console, worker, and migrations) that carry the same version tag and are released together. Pin your deployment to a version tag to control exactly when you upgrade.

1.5.0

Ten ecosystems, and policy you can inspect

Composer and Hex bring coverage to ten ecosystems. Policy stops being a single severity setting: block on a CVSS score, deny licenses by SPDX identifier, check what a rule would do before you save it, and read back every change from an audit log.

Added

  • Composer / Packagist support across the proxy, policy engine, and package scanner, so PHP dependencies resolve under the same policy as everything else.
  • Hex support for Elixir and Erlang, covering Mix and Rebar3, bringing supported ecosystems to ten. Registry metadata and signatures pass through untouched, so Hex keeps verifying the registry origin itself.
  • Block on CVSS score instead of severity band, with a per-workspace threshold. An advisory that carries no CVSS score is still judged on severity, so nothing slips through unscored.
  • License deny list: name the SPDX identifiers you will not accept and the proxy enforces them. Dual licenses are denied only when every option is denied.
  • Policy check: enter a package and version and see which allow or deny rule it would hit, and why, without changing anything.
  • Audit log of every workspace change, recording who made it, what it targeted, and when, filterable by action and date.
  • CVE detail view with the CVSS vector, exploit probability, weaknesses, affected ranges, references, and remediation on one page.
  • API keys can be granted workspace read access, so MCP clients and service accounts can query inventory and findings without a human login.
  • Documentation now lives at docs.shieldedstack.com, with a page per ecosystem, a quick start, and CI/CD and onboarding guides. Deployments without outbound access can point the console at an internal mirror.
  • Bulk removal of package rules, and configurable retention for project package usage records.

Improved

  • Risk scores now separate how severe a finding is from how many there are: many critical advisories outrank a single equally severe one, and exploit probability raises a score rather than diluting it.
  • A dimension with no data is left out of the score instead of being guessed at, so an unknown OpenSSF score no longer pulls a package toward the middle.
  • Settings are organised by task, with each area visible only to members who hold the permission it requires.
  • SBOM exports carry package URLs, the right CVSS scoring method per advisory, and exploit probability alongside severity.
  • Version ranges read as comparators, so a rule shows >=1.2.3 <2.0.0 rather than interval notation.
  • New workspaces start with the allow and deny lists enabled and a seven-day release grace period, so a freshly provisioned deployment enforces policy from the first request.
  • Proxy, console, and worker emit structured logs and connected traces across the queue, so a package decision can be followed end to end.

Fixed

  • An exact package rule matches regardless of the case a client requests, no matter how long the rule set has been cached.
  • When several wildcard rules could match, the most specific one is the one reported and enforced.

1.4.0

Dart support and a rebuilt proxy request pipeline

Dart joins the seven ecosystems already covered, and the proxy now resolves every package request through a single validated path, so redirect and forward deployments behave identically.

Breaking

  • Deployments running a customised proxy configuration need to adopt the new route metadata before upgrading. Stock configurations upgrade unchanged.

Added

  • Dart / pub ecosystem support across the proxy, policy engine, and package scanner, bringing supported ecosystems to eight.
  • Redirect and forward deployments resolve every request through one path, so the delivery mode you choose does not change which upstream a package comes from.
  • A known vulnerability alerts again only when something material changed: higher severity, a newly exposed project, or an elapsed cooldown you set per workspace.
  • Alert acknowledgment at package-version granularity, from both the API and the console.
  • Auto-refresh controls with a configurable interval on the request log.

Improved

  • Every package request is identified against one validated resolution path before it reaches a registry.
  • Registry metadata is rewritten as a whole or not served at all, so a client never sees a partially rewritten index.
  • Console documentation restructured into task-oriented guides.
  • Package event processing batches queue messages, cutting round-trips under sustained proxy load.
  • Package details visualise the same risk score the API reports.

Fixed

  • Maven policy rules written as groupId:artifactId now validate, as do Maven versions that are not SemVer.
  • Cargo and Go requests routed through a non-default upstream resolve to the correct registry.
  • Advisories with no CVSS vector are evaluated correctly rather than skipped.

1.3.0

Policy you can live with over time

Real deployments accumulate exceptions. This release makes them explicit, time-boxed, and portable between environments, and adds exploit-probability data so triage order reflects actual risk.

Added

  • Accepted-risk filters: accept a package version despite an open finding, recorded as policy rather than a deleted alert. Packages with an active exception are badged in the console.
  • Filter expiration: give an exception an expiry date and enforcement reverts on its own, so temporary decisions do not quietly become permanent.
  • Policy import and export, so a reviewed rule set can move between environments as a validated document.
  • EPSS exploit-prediction scores, paired with CVSS during risk assessment. A critical finding nobody is exploiting now ranks below a moderate one under active attack.
  • Bulk alert acknowledgment across selected rows.
  • Per-channel severity thresholds, so routine findings can go to a webhook while only critical ones reach a Teams channel.
  • Trusted reverse proxy configuration for deployments behind a load balancer.

Improved

  • Dual-licensed packages are no longer scored against the more restrictive half of their SPDX expression.
  • One alert now lists every affected project instead of fanning out into one alert per project.
  • Tenant and workspace permissions consolidated into a single authorization surface.
  • Faster cold-start policy evaluation on workspaces with large rule sets.

1.2.0

A dedicated worker plane and signed licensing

Background collection moved off the request path, and deployments began validating a cryptographically signed license.

Added

  • A dedicated worker plane for collection, scanning, and notification work, so proxy and console latency no longer track background workload.
  • Signed licensing: deployments validate an EdDSA-signed license carrying entitlement scope and expiry, and degrade predictably rather than failing closed on a transient check.
  • Onboarding runbook covering provisioning, first workspace setup, and proxy cutover.
  • Published license and trial agreements.
  • Auto-refresh on alerts and package event context logs.

Improved

  • Release images and package scanner binaries consolidated onto ShieldedStack-owned infrastructure.
  • Advisory collection retries transient database faults instead of dropping the run.
  • First-run setup shows provisioning progress rather than an empty console.

1.1.0

Three more ecosystems, licensing, and the MCP server

Go, Cargo, and RubyGems brought coverage to seven ecosystems, and AI agents gained a first-class way to query workspace data.

Added

  • Go module support across the proxy and package scanner.
  • Cargo support, including sparse registry index rewriting and cargo login via bearer token.
  • RubyGems support across the proxy, collectors, and console.
  • MCP server with API key authentication and origin validation, so AI agents can query workspace inventory and findings.
  • Open Source Metrics as an additional package intelligence source.
  • Time-range filtering on alerts, and package usage removal with audit metadata retained.
  • SBOM export across multiple projects as a single archive.

Improved

  • Authentication caches token expiry and resolved context, removing per-request revalidation.
  • Alert search matches case-insensitively in the database rather than in memory.

1.0.0

Runs entirely on your infrastructure

The release that completed the move off hosted cloud services. Every queue, every record, and every package decision now lives on your own PostgreSQL instance, with nothing leaving your network.

Added

  • Postgres-backed queues, removing the last dependency on hosted cloud infrastructure. The whole stack runs against your own database.
  • Maven support across the proxy, advisory collection, and console.
  • Package decision endpoint, exposing the allow/block verdict and the reasoning behind it for any package version.
  • Package event context logging, recording why each proxy decision was reached and which project asked for it.
  • Structured remediation guidance, so an alert names the fixed version rather than only the affected range.
  • Webhook notification channel.
  • Docker Compose deployment with externalised runtime configuration.

Improved

  • Blocked packages return HTTP 451 with policy and cache-control headers, so package managers surface a meaningful failure instead of caching the block indefinitely.
  • Package filtering reworked into a verify-then-trust model, cutting redundant upstream metadata fetches.

Before 1.0: the hosted years

ShieldedStack began in 2025 as a hosted, multi-tenant service and ran that way for close to a year. That era delivered the interception proxy, GitHub Security Advisory and OSV vulnerability intelligence, risk and license scoring, the package scanner, CycloneDX SBOM export, workspaces and role-based access, and support for NuGet, npm, and PyPI. In April 2026 we removed the hosted billing and tenancy machinery and rebuilt ShieldedStack as software you run yourself, because the customers who most needed a dependency firewall were the ones who could least afford to route their package traffic through someone else's cloud.

Still on the hosted service, or running a release older than 1.5? Start free trial or get in touch and we will walk you through the migration.