Skip to content

Ferrum Foundry v0.5.3

Choose a tag to compare

@github-actions github-actions released this 08 Oct 10:07
· 40 commits to main since this release
74a7be3

Ferrum Foundry v0.5.3

Foundry v0.5.3 pairs with published Ferrum Edge v0.9.14 and canonical
contracts-edge-0.9.14. Hosted qualification evidence is recorded in the
compatibility record;
the published image digest is listed under Docker below.

This release moves the development and CI pin to published Ferrum Edge
v0.9.14, adopts the existing canonical contract scope at
contracts-edge-0.9.14, shows the data-plane backend egress attestation that
Edge v0.9.14 adds to GET /cluster, and ships the source merged since v0.5.2.
It changes no runtime profile or authority tier.

Qualified pairing

Foundry v0.5.3; previous release v0.5.2; image digest and source commit under Docker below
Ferrum Edge Ferrum Edge v0.9.14, ferrumedge/ferrum-edge@sha256:15442f1b1d1758023fe871fe57be50f19caf34bbe6c499a6812f4ffd0da5e3f8, commit 9bd4d5f9caa4ebe8f0ea13e76d8a6e2172eaca7d
Edge platform manifests linux/amd64 sha256:12a8cd56090c0d4511bb3015b240e606b1b87989c644157566b8f6b6f635b3c2; linux/arm64 sha256:19d2886ed8c192cb0daba48ef0a27a0cd0526449dac74bf9438502322aabd9f2
Upstream distribution evidence Edge release run 37585311307, all 20 jobs successful; published release 405571232 at 2026-10-07 08:59:56 UTC
Canonical contracts contracts-edge-0.9.14, commit ddbdd845733b7046c4393ac951011dafb774db33, release 406650065 at 2026-10-08 09:22:24 UTC
Foundry qualification Hosted run, attempt, source and tested merge recorded in the qualification object of docs/compatibility.json
Qualified support Existing SQLite database mode, writable and read-only, trusted-proxy starter, viewer/operator/admin, Chromium, Node 22/24 gates and amd64/arm64 Container Gates

The unchanged Edge contracts retain ferrum-edge#5661 resource ETag/If-Match
handling and ferrum-edge#5726 proxy-scoped plugin configuration filtering.
The default Docker Hub image's ferrum-edge and ferrum-cni binaries match
the published release assets on both architectures. Binary hashes, OpenAPI
identity and registry verification limits are recorded in
compatibility.
Anonymous GHCR access and an Edge OCI revision label are not claimed.

Changes since v0.5.2

  • Data-plane backend egress attestation on the Cluster page. On a control
    plane, Edge v0.9.14 reports each data plane's self-reported backend egress
    policy on GET /cluster (backend_egress_policy_attestation,
    backend_egress_policy) and a cluster-wide
    data_plane_backend_egress_policy aggregate (ferrum-edge#6020). Each data
    plane row shows its reported mode, whether it is public-only, or that its
    policy is unknown. The control-plane card summarizes reporting and unknown
    counts, the weakest reported mode and whether every connected data plane is
    public-only. The page states that these are self-reports, not host
    attestation, and that a disconnected data plane serving cached configuration
    is not listed. A response without the fields renders as before. Foundry
    still does not read GET /backend-egress-policy, whose new optional
    data_plane_attestation object is additive within schema_version: 2.
  • One row per Subscribe stream. Edge v0.9.14 lists one data-plane entry per
    live ConfigSync Subscribe stream, so several entries can share a node_id.
    The Cluster page now keys each stream separately instead of by node_id, so
    no stream is collapsed or hidden.
  • Edge v0.9.14 deployment mutation outcomes. A conditional deployment
    mutation's store failure now reports durable: "not_started" before the
    mutation transaction and durable: "not_committed" inside its rolled-back
    transaction; only an unconfirmed commit still reports "unknown"
    (ferrum-edge#6021). Foundry issues no deployment mutation, and the
    browser-facing BFF keeps refusing GET /deployment-snapshot for every method
    and role with 403 FERRUM_BFF_CREDENTIAL_READ_DENIED before capacity
    admission, JWT signing or upstream fetch.
  • Security pin (#558). The development-only transitive shell-quote
    dependency is pinned to 1.12.0 through an npm overrides entry, fixing
    GHSA-pqg4-j6r4-53mv. No runtime dependency changes.
  • Licensing (#559). Ferrum Edge LLC is named as the copyright holder and
    commercial licensor in LICENSE and LICENSE-COMMERCIAL.md.
  • Pins and contracts. Starter, development command and current record use
    the same published Edge digest. Package and lockfile root versions are 0.5.3.
    The same 18 contract files are taken byte-exact from canonical commit
    ddbdd845733b7046c4393ac951011dafb774db33 after main Validate contracts run
    37755967635 succeeded. Only the vocabularies' Edge provenance and OpenAPI
    digest and the complete canonical invalid expectations change; the latter
    adds the backend-egress-policy data-plane attestation negatives without
    Foundry adopting those schemas. All 82 plugin entries, provisioning values,
    manifest schema and all 12 fixtures are unchanged. Shared status remains
    EXISTING/implemented at Alloy owner 81cbb; Alloy stays unpublished.
  • Plugin sensitivity and guided schemas. Edge's registered plugin set and
    PluginConfigBase are unchanged, and its projection source is
    byte-identical to v0.9.13, so the sensitivity table is unchanged and its
    provenance names the v0.9.14 source. All five guided schema blocks are
    byte-identical at v0.9.14, so every pinned hash, descriptor, template,
    secret-handling rule and unmodelled-value behavior is unchanged.
    Schema provenance
    records the review.

Known limits

This release adds no backend egress policy reader, egress publication
decision, conditional backup or restore, native deployment workflow, recovery
journal, capability or browser retention guarantee. The Cluster page's egress
attestation reflects only the control plane Foundry is connected to and only
data planes connected when it was read. #547 account-level immutability
decisions remain pending.

No advisory closure or unrelated upstream approval is implied. Existing
best-effort/unqualified modes (including cp, where the new Cluster page
fields appear), eBPF variants, real-gateway scale limits and browser limits
remain unchanged.

Publication and deployment

Deploy Foundry v0.5.3 against the paired Ferrum Edge v0.9.14 image,
ferrumedge/ferrum-edge@sha256:15442f1b1d1758023fe871fe57be50f19caf34bbe6c499a6812f4ffd0da5e3f8.
In production, pin the released Foundry multi-architecture index digest listed
under Docker below rather than a mutable tag. Edge v0.9.14 raises the
ConfigSync protocol revision to 3, so its control and data planes must run the
same build. The demo bootstrap's :main remains the development channel.
Versioned v0.5.2, v0.5.1, v0.5.0 and v0.4.0 notes and records remain
byte-for-byte unchanged. Their source, image and CI evidence are historical;
published version tags must never move.

Docker

docker pull ferrumedge/ferrum-foundry:v0.5.3
docker pull ghcr.io/ferrum-edge/ferrum-foundry:v0.5.3

Both tags name the multi-architecture index sha256:1edef8251f7786f10ebb67dd333cf9e75f7bf54f7af17ad4452227df3ac9a742, built from
commit 74a7be374f5c6fcf1284737907e43d8808bb95c6. Release version tags are never reassigned; pin
the digest for byte-identical deployments:

docker pull ferrumedge/ferrum-foundry@sha256:1edef8251f7786f10ebb67dd333cf9e75f7bf54f7af17ad4452227df3ac9a742

Production quick start

Run Foundry only behind an identity-aware reverse proxy that removes
client-supplied identity headers and injects the trusted proxy proof:

export FERRUM_JWT_SECRET=$(openssl rand -hex 32)
export FERRUM_TRUSTED_PROXY_SECRET=$(openssl rand -hex 32)

docker run \
  -e FERRUM_ADMIN_URL=https://your-gateway:9443 \
  -e FERRUM_JWT_SECRET \
  -e FERRUM_AUTH_MODE=trusted-proxy \
  -e FERRUM_TRUSTED_PROXY_SECRET \
  -p 127.0.0.1:8080:8080 \
  ferrumedge/ferrum-foundry:v0.5.3

Configure the proxy to send X-Ferrum-Auth-Secret,
X-Forwarded-User, X-Ferrum-Role, and exact
X-Ferrum-Namespaces grants. See
Production authentication.