v1.1.0 - Password protection & multi-domain support
What's Changed
- ci(process): add development integration branch and PR gate workflow by @nicknow in #1
- chore(release): sync main with development by @nicknow in #2
Full Changelog: v1.0.0...v1.1.0
Password protection & multi-domain support
Added
- Per-page password protection (S23): admins can set or clear one password per page on create
or edit (min 5 chars, max 256; empty = not protected). Visitors see a server-rendered
password prompt; a successful unlock sets an opaque-token HttpOnly cookie (pl_unlock).
Protected pages bypass the CDN — all entry HTML, image bytes, and assets are served by the
Worker withCache-Control: no-storeand a Worker-origin<base>href. See ADR 0041 for
the locked design decisions, OQ-19..OQ-24 for the open-questions log, and §10 of the roadmap
for the full slice table.
Fixed
setup.mjsnow detects and rejects deployments that would silently corrupt an existing
deployment when run with the same projectName but different workerDomain/cdnDomain. A
multi-domain collision guard (checkDomainCollisions) queries the real Cloudflare API to
find existing Worker and R2 custom-domain associations before creating or modifying any
resource, and aborts with an actionable error message when a collision is detected. An
explicit opt-in override (SETUP_ALLOW_REPOINT) is available for deliberate repointing.
See ADR 0044 for the detection heuristic and rationale.setup.mjsnow rewrites the top-levelnamefield inwrangler.tomlso that the Worker
script targets the correct name when deploying to multiple domains from the same checkout.
A newderiveWorkerName()helper mirrors the existingderive*Namehelpers.
Changed
- CI process: switched to a
feature → development → mainbranching workflow. Feature
branches PR intodevelopment(the integration branch), andmainonly moves when a
human deliberately promotesdevelopmentinto it for release. A CI workflow runs the
full local gate (typecheck, lint, format:check, test) on PRs intodevelopment/main
and pushes todevelopment.