diff --git a/COMPATIBILITY.md b/COMPATIBILITY.md index 848d6a6459..6dfdbfbc69 100644 --- a/COMPATIBILITY.md +++ b/COMPATIBILITY.md @@ -1,15 +1,34 @@ # Compatibility Contract -## Server v1.6.550 prepared, not published - -The source candidate preserves all component versions and operator settings from -549 while rebuilding the two PCRE2 runtime packages with the upstream's official -10.46 backports. Original Ubuntu packaging, SONAMEs, JIT and POSIX interfaces are -retained. First-party package version `10.46-1build1+pasturestack.1` distinguishes -this rebuild from Canonical binaries. Native upstream tests, exact package -integrity, ELF hashes and actual consumers are mandatory gates. The published -installation remains 549 until a new immutable image passes publication. -See [the candidate note](docs/releases/server-1.6.550.md). + + +## Server v1.6.550 published + +The immutable one-layer linux/amd64 identity is +`ghcr.io/pasturestack/server:v1.6.550@sha256:03542028c3ce4be11d7ff87f96beddf5179c67caf9f0d28ad57043acf3cf52c5`, +produced from `54deb98ee33ffab78437070d61179b602844182e` in +[run 40116218929](https://github.com/PastureStack/server/actions/runs/40116218929). +All 34 assets passed anonymous checksum readback; both image provenance and SBOM +attestations bind the same digest and producer. The original job remains failed +at its final release-note heading check. The exact signed image and original CI +bytes completed publication without a rebuild or tag overwrite; see the immutable +[completion receipt](https://github.com/PastureStack/server/releases/download/v1.6.550/publication-recovery.json). +The permanent note preflight now validates the actual candidate document. + +The two PCRE2 packages use first-party `10.46-1build1+pasturestack.1`, built from +original Ubuntu source/packaging with the complete supported upstream backport +series. They are not issued by Canonical. Original native tests, package-owned +bytes, SONAMEs, hardening, both library hashes and five actual consumers passed. +The deployed image also passed MariaDB regex controls and one controlled restart, +with the existing HostConfig, environment, three data volumes, socket bind, +AppArmor and the 549 rollback container retained. Three Host/Agent states remain +active. No production site, proxy or firewall was changed. + +The fresh runtime scan retains 51 raw occurrences, 38 exact VEX dispositions and +13 pending LOW/MEDIUM occurrences across 10 CVEs. Eight PCRE2 CVEs are fixed; +other artifacts and build-host SDKs are tracked separately. Browser component +pins and its incomplete coverage are unchanged. This is scoped acceptance, not +an all-feature or all-project zero-risk claim. See [the release note](docs/releases/server-1.6.550.md). diff --git a/README.md b/README.md index c7f9469dab..856caed810 100644 --- a/README.md +++ b/README.md @@ -13,27 +13,20 @@ upstream history, authorship, licenses, and notices. ## Current release -Server [`v1.6.549`](https://github.com/PastureStack/server/releases/tag/v1.6.549) is published. -It packages Web Console `1.6.195` with an independent browser runtime SBOM, -exact artifact identity and component vulnerability lookup. All 34 immutable -release assets, the image provenance and SBOM attestations were verified. -The browser inventory retains incomplete coverage for six unsupported snapshots; -zero reported browser findings is not a claim of zero risk. - -Engine `v0.183.354`, Catalog `v0.3.16`, Host API `0.38.8`, Node Agent `0.13.33` -and Temurin `25.0.5+8` retain their reviewed inputs. Authentication, API Key -authorization, host registration and operator settings remain unchanged. -The scoped 8080 upgrade, packaged SBOM readback, browser authentication, -seven JSON APIs, session refresh and WebSocket smoke passed with the existing -configuration and volumes preserved. This is not a full feature-matrix claim. -See the [549 release note](docs/releases/server-1.6.549.md) and -[compatibility contract](COMPATIBILITY.md#server-v16549-web-console-sbom) -for exact identities, attachment recovery and acceptance boundaries. - -Source candidate `v1.6.550` adds the official PCRE2 10.46 security backports with -original Ubuntu packaging, ABI checks and native regression tests. It is not yet -published; installation examples continue to use the verified release above. -See the [candidate note](docs/releases/server-1.6.550.md). +Server [`v1.6.550`](https://github.com/PastureStack/server/releases/tag/v1.6.550) is published. +It fixes eight PCRE2 CVEs using the upstream-supported 10.46 backports and +original Ubuntu packaging. The two rebuilt runtime packages retain ABI, JIT, +POSIX interfaces and hardening; all other component versions are unchanged. + +Web Console `1.6.195` and its original runtime SBOM, Engine `v0.183.354`, +Host API `0.38.8` and Temurin `25.0.5+8` retain their verified inputs. +The scoped 8080 upgrade and restart passed package/hash/linkage checks, +regex controls in grep, Git and MariaDB, and three active Host/Agent states. +Existing configuration, volumes, AppArmor and the previous rollback image remain. + +See the [550 release note](docs/releases/server-1.6.550.md) and +[compatibility contract](COMPATIBILITY.md#server-v16550-pcre2-backports) +for the immutable identity, publication completion and remaining risks. Personal API Keys remain available without an accessible environment. See the [Host guide](docs/hosts/README.md) before enrolling a host. @@ -60,14 +53,14 @@ Maintained CLI `0.6.20` propagates rejected requests as nonzero errors. Legacy ` ## Quick start Public GHCR downloads do not require a registry login. Keep all three named volumes. -The examples below use the published numeric `v1.6.549` tag. +The examples below use the published numeric `v1.6.550` tag. ```sh docker run -d --name pasturestack-server --restart unless-stopped -p 8080:8080 \ -v pasturestack-cattle:/var/lib/cattle \ -v pasturestack-mysql:/var/lib/mysql \ -v pasturestack-mysqllog:/var/log/mysql \ - ghcr.io/pasturestack/server:v1.6.549 + ghcr.io/pasturestack/server:v1.6.550 ``` For HTTPS termination at a reverse proxy, set the exact public origin: @@ -75,7 +68,7 @@ For HTTPS termination at a reverse proxy, set the exact public origin: ```yaml services: pasturestack-server: - image: ghcr.io/pasturestack/server:v1.6.549 + image: ghcr.io/pasturestack/server:v1.6.550 restart: unless-stopped ports: - "8080:8080" diff --git a/docs/performance/README.md b/docs/performance/README.md index 5ab4ab9ead..f82a3d7764 100644 --- a/docs/performance/README.md +++ b/docs/performance/README.md @@ -20,7 +20,7 @@ evidence is not a performance benchmark; measure the actual workload. ```yaml services: pasturestack-server: - image: ghcr.io/pasturestack/server:v1.6.549 + image: ghcr.io/pasturestack/server:v1.6.550 restart: unless-stopped ports: - "8080:8080" diff --git a/docs/releases/server-1.6.550.md b/docs/releases/server-1.6.550.md index 2f64f57b9d..5479fd6256 100644 --- a/docs/releases/server-1.6.550.md +++ b/docs/releases/server-1.6.550.md @@ -1,48 +1,64 @@ -# Server v1.6.550 candidate +# Server v1.6.550 -Prepared source only; no Server image or release has been published. +Published image: +`ghcr.io/pasturestack/server:v1.6.550@sha256:03542028c3ce4be11d7ff87f96beddf5179c67caf9f0d28ad57043acf3cf52c5`. +Producer: `54deb98ee33ffab78437070d61179b602844182e`. ## Verified component inputs -Backport the twelve official PCRE2 `release/pcre2-10.46` commits through -`947809f11e9c9744aa0974b4b630a1ae461733dd` onto the original Ubuntu 26.04 -`10.46-1build1` source package. The source, original packaging and every patch -are SHA-256 pinned. This is a first-party rebuild, not a Canonical release. -It avoids unrelated regex, Unicode, JIT or packaging changes. +Rebuild only `libpcre2-8-0` and `libpcre2-posix3` from Ubuntu `10.46-1build1` +with the twelve official `release/pcre2-10.46` backports through +`947809f11e9c9744aa0974b4b630a1ae461733dd`. Sources and patches are SHA-256 pinned. +The first-party version `10.46-1build1+pasturestack.1` is not a Canonical release. +Original packaging, ABI, JIT, POSIX interfaces and hardening remain unchanged. -The two packages `libpcre2-8-0` and `libpcre2-posix3` use version -`10.46-1build1+pasturestack.1`. The eight fixed vulnerabilities are -CVE-2026-103111, CVE-2026-86145, CVE-2026-89156, CVE-2026-89157, +Fixed: CVE-2026-103111, CVE-2026-86145, CVE-2026-89156, CVE-2026-89157, CVE-2026-89158, CVE-2026-89160, CVE-2026-89161 and CVE-2026-89162. -The [official supported backport list](https://github.com/PCRE2Project/pcre2/blob/pcre2-10.49/SUPPORT-LIFECYCLE.md) -identifies this exact series. Ubuntu having no updated binary package does not -mean upstream has no accepted fix. - -## Verification and boundaries - -The build runs the unchanged Ubuntu packaging tests: `pcre2_jit_test`, `RunTest` -and `RunGrepTest`, and requires all three PASS records. The output retains source -locks, build logs, native test logs, compiler flags, package identity and ABI / -hardening evidence. Runtime checks require exact package versions, zero dpkg -integrity differences, both library hashes, resolved linkage from grep, Git, -MariaDB, libselinux and the POSIX wrapper, and C / C.utf8 regex controls. - -The inherited image's documentation exclusion is overridden only while installing -the package-owned `README.Debian`; no integrity exception is added. Raw scanner -results remain intact. The fixed VEX entries apply only to the exact rebuilt -package PURLs; the other ten pending Server CVEs remain tracked. - -Native library and layered-candidate checks have passed on the QA host. These do -not establish publication or startup/restart acceptance of the final image. -Those results and the immutable digest will be recorded after the release gates. -Web Console 1.6.195, its runtime SBOM and all other component pins are unchanged. -Unrelated role, UI, OIDC, MFA and feature-matrix PASS evidence is carried forward. +See the [official backport list](https://github.com/PCRE2Project/pcre2/blob/pcre2-10.49/SUPPORT-LIFECYCLE.md). +Ubuntu lacking an updated package does not mean upstream has no accepted fix. +Web Console `1.6.195`, its original runtime SBOM, Engine `v0.183.354` and all +other component inputs remain unchanged. No database migration is introduced. + +## Verification and remaining risk + +Original native `pcre2_jit_test`, `RunTest` and `RunGrepTest` passed. Fourteen +builder contracts, five verifier guards, owning assembly checks, exact package +integrity, both library hashes and five actual consumers passed. C / C.utf8 +regex controls cover ASCII, UTF-8, CRLF and the non-JIT path. The package-owned +README is retained during installation; integrity differences are not ignored. + +The formal producer passed source, rootfs equivalence, startup/restart and fresh +security checks before pushing and signing the same one-layer image. The scan +retains 51 raw occurrences, 38 exact VEX dispositions and 13 pending LOW/MEDIUM +occurrences across 10 CVEs; HIGH/CRITICAL, available distro fixes, unregistered +findings and secrets are zero. Raw evidence remains available. Other artifacts, +build-host SDKs and the browser's six unsupported snapshots remain separately +tracked; this is not a zero-risk or complete-coverage claim. + +The scoped 8080 deployment passed first start, one restart, exact package/hash/ +linkage checks, grep/Git controls, two read-only MariaDB regex controls and three +active Host/Agent states. HostConfig, operator environment, all three data +volumes, socket bind and AppArmor were preserved. The verified consistent DB +backup and 549 rollback container/image remain. Unchanged UI, role and +identity-flow PASS evidence was carried forward; no full feature matrix or +cross-host network rerun is claimed. The production site, HAProxy and firewall +were not changed. + +## Publication completion + +[Run 40116218929](https://github.com/PastureStack/server/actions/runs/40116218929) +remains failed because the final renderer required a missing candidate-note +heading. Its tested, signed image was not rebuilt or overwritten. Original CI +bytes completed publication, all 34 immutable assets passed anonymous SHA-256 +readback, and both attestations were verified. The +[completion receipt](https://github.com/PastureStack/server/releases/download/v1.6.550/publication-recovery.json) +records the original archive and note-only correction. A permanent pre-build +test now validates the actual current note as well as fixtures. ## Upgrade and rollback -Until publication, continue using the numeric `v1.6.549` installation examples. -Do not overwrite an existing image tag or apply library patches to a running -container. Upgrade with a new immutable image after verified backups, preserving -all existing volumes, configuration and the previous container/image for rollback. -No database migration or operator setting change is introduced by this patch. -No production deployment is part of this release task. +Use the numeric `v1.6.550` tag after verifying backups and image identity. Preserve +all existing Compose settings, named volumes, restart policy and security options. +Retain 549 until scoped acceptance succeeds. Do not patch a running container or +overwrite a release tag. Restore matching backups when an upgrade requires it; +this PCRE2-only update does not migrate the database.