Repository navigation
Sync upstream develop (2026-10-03): caddy 2.11.6, access-list password validation - #79
Merged
Merged
Conversation
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Zoey <zoey@z0ey.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sync
upstream/developintodevelop, resolving every conflict so fork behaviour is preserved.Merge commit
7808c760— parentsb3aa6ed4(fork develop) +3862b75e(upstream/develop tip). Regular merge, ancestry preserved: no squash, no rebase (FORK.md:75). Merge baseda314cfd(the previous sync), so this brings in 5 upstream commits:3862b75esmall fixes — access-list create/update password validation, hooksrollback?.(), redirection-hostforward_scheme$scheme, certificate/ip_ranges interval guards, schema tweaksa81bdd58update nextcloud aio defaults —setup.jsgainsnpmplus_upstream_compression: trueb511e151update aws-lc version to v5.11.0 — merged to no diff: the fork already carries this via2fe4eae3e5a2036edep updates — deferred, see judgement call 1eb30ed06Update caddy Docker tag to v2.11.6Judgement calls
1. Dependency files and lockfiles kept fork-side
backend/package.json,frontend/package.json,backend/pnpm-lock.yaml,frontend/pnpm-lock.yamlrestored to the last-greendevelopstate.Every dep bump in upstream
e5a2036eis younger than the fork's 7-dayminimumReleaseAgewindow (cutoff 2026-09-26):@tabler/core1.6.1mysql23.24.5@biomejs/biome2.5.15pg8.23.1liquidjs10.30.0vite8.3.2@tanstack/react-query5.104.1This follows the documented fix pattern (AGENTS.md Incident 2, :1197): restore the last-green manifests and lockfiles, never relax the policy, let the dependency-updates workflow age them in — do not hand-bump early. Verified with registry publish dates, not guesswork: taking any of these trips
ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATIONon install.2. Access-list password validation — upstream's create check adopted, fork's update check kept
Upstream
3862b75eadds blank-password rejection on create (a genuine gap: create had no equivalent of update's masked-password semantics, so a blank password would insert an empty credential) and a weaker version on update. Resolution:message_i18n: "error.access.password-required"(key already exists;AccessListModal.jsxalready maps it).existingUsernamesSet so a blank masked password keeps an existing credential while a rename still requires one. Covers everything upstream's update check does.a blank password on create rejects before inserting the list or any credentialsinbackend/test/access-list-recovery.test.js, pinning the create-side check against a future sync dropping it.3. Hooks — upstream's one-liner taken
All six (
useAccessList,useDeadHost,useProxyHost,useRedirectionHost,useStream,useUser): upstream'sonError: (_, __, rollback) => rollback?.(),replaces the fork's explicittypeof rollback === "function"guard. Semantically identical.4.
RedirectionHostModal.jsxkept fork-sideUpstream drops
"auto"from theforward_schemeenum (schema + new-host default now$scheme). The fork's modal line is strictly richer: it also migrates legacy"auto"values to"$scheme"on edit, so existing rows survive the enum change.redirection-scheme.test.jsalready pins the"auto"→"$scheme"rendering, and the upstream new-host default auto-merged cleanly.5.
caddy/Dockerfile— fork's source build kept, version bumped to v2.11.6, pin set droppedUpstream's
eb30ed06only moves the officialcaddy:2.11.4binary tag to2.11.6. The fork builds caddy from source via xcaddy — that design stays, withARG CADDY_VERSIONbumpedv2.11.4→v2.11.6.The first CI run of
caddy.ymlfailed —cel-go-0.29.patchno longer applied (2 out of 2 hunks ignored). Investigation showed caddy 2.11.6 upstreamed the fork's exact fix: bothInterpretable→InterpretableV2changes are native, cel-go moved to the newcel.dev/cel-gomodule (v0.32.0, newer than the fork's v0.30.0 pin), and 2.11.6's own go.mod ships every fork pin at or above the fork's version:So
cel-go-0.29.patchis deleted, all--replacepins and their ARGs are removed, and the patch's path triggers are dropped fromcaddy.yml(commitd23f79f4). The pin apparatus was a workaround for 2.11.4's stale deps, not a permanent fixture;source-check.shstill runs govulncheck over the actual compiled module set, and a future red there re-adds only the single pin needed.XCADDY_SKIP_CLEANUP=1stays — source-check.sh expects the retained build directory.Proven locally before the CI re-run:
caddy version→ v2.11.6; source-check.sh passes (govulncheck: 0 reachable vulnerabilities, upstream caddyhttp + tracing tests green); CI's exact Trivy gate (--severity MEDIUM,HIGH,CRITICAL --exit-code 1) on the built image: 0 findings.Also in this diff (upstream, taken as-is)
backend/internal/certificate.js,backend/internal/ip_ranges.js: interval-exists guardsbackend/setup.js: nextcloud aio defaultnpmplus_upstream_compression: truebackend/schema/:forward_schemeenum drops"auto", examples updatedLocal verification (docker CI-replica, pnpm 11.22.0, strict && chaining)
validate-schema, 227/227 tests (incl. the new create-path test)installer-recovery(28 OK),crs-observation(5 OK),crs-control(16 OK),heal-migration(6 OK),security-invariantsok,upstream-synccontracts (10 OK)caddy versionv2.11.6, source-check govulncheck clean, upstream caddyhttp/tracing tests pass, Trivy MEDIUM+ gate 0 findingsdevelop; no conflict markers; merge commit has both parentsNot touched, deliberately
caddy-fmt.ymlstill SHA-pins the officialcaddy:2.11.4image for formatting only; the Caddyfile is unchanged and stays green. Bumping the fmt pin is cosmetic — left out of this sync.--replace-era ARGs and comments in the builder are gone entirely rather than kept "in case" — the govulncheck gate re-adds a pin when one is actually needed.