• v2.0.0 3dbf9821c1

    v2.0.0
    All checks were successful
    Tests / Actions (TypeScript) (push) Successful in 22s
    Tests / End-to-end (mode: path) (push) Successful in 1m20s
    Tests / Backend (Go) (push) Successful in 2m16s
    Tests / End-to-end (mode: subdomain) (push) Successful in 1m12s
    Stable

    ses released this 2026-08-20 17:19:00 +00:00 | 15 commits to main since this release

    • Breaking Change: The single publish-static-site backend binary is replaced by two flavor binaries. publish-static-site-singlesite (one apex repo per tenant, apex_path ∈ {htdocs-ssl, subs-ssl/www}) and publish-static-site-multisite (many subdomains or path segments, apex_path ∈ {subs-ssl, htdocs-ssl/path}). Operators must pick the matching binary and adjust their apex_path value to one of the per-flavor allowed set. Existing single-binary deployments no longer start.
    • Breaking Change: The wire-protocol X-Publish-Static-Site-Version header advances from v1 to v2. A v1.x backend now rejects any action pinned to @v2 with HTTP 426; consumers still pinned to @v1 continue to receive the last v1.x release. Major-version parity between backend and actions is enforced by version_middleware.go:RequireCompatible.
    • Breaking Change: config-mate is bumped from v1 to v2 (forge.sebatec.eu/ses/config-mate/v2 v2.0.0). Operators using silent-missing-config semantics must verify their config files load under v2.
    • Added: Multisite apex_path modes — subs-ssl (subdomain, default) and htdocs-ssl/path (path under the apex) — with strict per-flavor validation.
    • Added: Multisite path URL mode — many repos/branches served under https://<site_base_host>/<repo>/<branch>/ via mode: path. The default mode: subdomain is unchanged.
    • Added: Hidden-prefix mount — the backend now exposes its API at /_publish-static-site/* for non-FCGI deployments (Caddy, plain HTTP) alongside the existing FastCGI mount. Both routes share auth and handlers.
    • Added: --dry-run flag on the multisite backend to surface the resolved deploy layout without touching disk.
    • Added: Apex-on-main-ref policy plus per-tenant repo whitelist to restrict which refs/branches can deploy.
    • Added: deploy_root override (siteconfig) for tenants who need the on-disk root outside the default Hostsharing layout.
    • Changed: subdomain_repos config key renamed to multi_repo_patterns as part of the multisite config overhaul. The new key covers both subs-ssl (subdomain) and htdocs-ssl/path (path segment) layouts; the previous key is rejected on startup.
    • Improved: Major-version parity check between backend and action bundles — a header mismatch now returns HTTP 426 with both versions in the JSON body for diagnostics.
    • Fixed: e2e harness now uses a random port and the hidden-prefix mount, removing the previous hard-coded port collision.
    • Updated: Dev and CI tooling — TypeScript ^7, Prettier 3.9.6, esbuild ^0.28.2, github.com/go-chi/chi/v5 v5.3.2.
    • Updated: Documentation restructured into Diátaxis layout (docs/explanations/, docs/how-to/, docs/reference/, docs/tutorials/); READMEs slimmed to orientation.
    Downloads