Artifact Firewall 0.3.0

Released: 2026-06-02

Added

  • Standalone deployment mode, now the default. The firewall sits directly in front of one or more origin registries and routes requests itself.
  • Automatic detection of registry from the Accept header, User-Agent prefix, and URL path pattern. Requests that can’t be classified stream through unchanged.
  • Per-version artifact preflight: direct downloads of tarballs (npm .tgz), wheels/sdists (PyPI), and .nupkg files are blocked at 403 when a per-version deny rule applies, preventing bypass via hard-coded artifact URLs.
  • Added support for the Maven ecosystem: maven-metadata.xml manifest filtering (artifact-level and per-version SNAPSHOT), plus per-artifact preflight on .jar, .pom, .war, .aar, .zip (including classifier variants).
  • New api_address config field. The admin API (/api/eval, /api/update, /api/mode) listens on this address only when set.
  • System-tests added under system_test/ (Docker-based mock origins for npm, PyPI, and NuGet plus a long-lived dotnet runtime container) covering both deployment modes.
  • Added storage configuration section for defining the path cloned git repositories should be stored at, as well as a size limit.
  • API now allows rules to be disabled at run time

Changed

  • /api/eval response shape is now structured JSON: {action, rule_id, ruleset_id, reason}, plus an error field on deny only (containing a human-readable message that npm-style clients display).
  • Admin endpoints no longer use the /fw/ prefix and are served on api_address only.
  • deployment: defaults to standalone; the Supervisor sets integrated explicitly when running the firewall as a Virtual Registry add-on.

Removed

  • The legacy pkg/nuget/e2e harness and its nuget-e2e Make target. NuGet coverage now lives in the shared system_test/ suite.

®Varnish Software, Wallingatan 12, 111 60 Stockholm, Organization nr. 556805-6203