# 3031023.xyz Worker cutover runbook ## Scope and safety boundary This runbook moves only the Happy Tails apex site to the separately deployed static Worker `3031023-xyz`. It does not change the sign-up flow, n8n, the onboarding Worker, blog hosting, or any other site. The Pages project `3031023-xyz` remains available as the immediate rollback target until the new apex deployment has been accepted. Routine preview and candidate jobs never create, delete, or change DNS records, custom domains, routes, or redirect rules. The candidate workflow only deploys static assets to a distinct Worker. ## Pre-cutover record - Existing rollback project: Cloudflare Pages `3031023-xyz`. - Existing active custom domain: `3031023.xyz`. - Existing Pages production deployment: `2fb1b659-5928-4470-bb04-ef4c9105b843` from the `main` branch. - Preview Worker: `3031023-xyz-www-preview`, with no custom domains or routes. - Production candidate Worker: `3031023-xyz-www`, deployed only through the dedicated `Deploy primary production Worker candidate` workflow. Its push trigger is limited to changes to that workflow file; ordinary site commits cannot update this Worker. ## Cutover sequence (requires separate approval) 1. Confirm the candidate Worker deployment completed and record its version ID. 2. Verify its workers.dev URL for status, titles, static 404, mobile navigation, sitemap, robots, and security headers. 3. In Cloudflare, remove `3031023.xyz` from the Pages project only after the candidate is verified. Do not delete the Pages project or its deployment. 4. Attach `3031023.xyz` as the custom domain for the production Worker. 5. Attach `www.3031023.xyz` to the same Worker and create a Cloudflare Redirect Rule for `www.3031023.xyz/*` to the matching `https://3031023.xyz/*` URL. This preserves the apex canonical policy without adding hostname-routing Worker code. 6. Re-run the production verification checklist and leave the Pages project in place during the acceptance window. ## Rollback 1. Remove the custom domains from the production Worker and disable the `www` redirect rule. 2. Restore `3031023.xyz` to the unchanged Pages project `3031023-xyz`. 3. Verify the known Pages deployment at its Pages URL and then at the apex. The cutover operator records the actual Worker version ID, rule ID, time, and verification results in the migration plan after acceptance. ## Cutover record — 2026-09-02 - Source commit: `d431e6a` (the approved candidate deployment itself is version `7dafcabd`). - Pages custom-domain binding removed: `3031023.xyz` was detached from Pages; the Pages project and its `3031023-xyz.pages.dev` rollback URL were retained. - Worker custom-domain binding added: `3031023.xyz` is attached only to `3031023-xyz-www`. - Canonical redirect: a proxied `www` CNAME points to `3031023.xyz`; active redirect rule `2a0783532f464384beda9a0344352861` issues a 301 to the matching apex path and preserves query strings. - External verification: apex Home and Services return 200; `www` returns the expected 301; the static 404 returns 404; production robots and sitemap are reachable; and the Pages rollback URL returns 200. ### Acceptance follow-up Cloudflare is appending its managed content-signals section to `robots.txt`. That section currently disallows several AI crawlers (including Google-Extended and GPTBot). This was an existing zone-level setting and was not changed during the cutover. Review it with the site's AI-search policy before final acceptance. ## Production content release — 2026-09-02 - Source commit: `2b7f8d8` (`main`), the accepted Git-backed Markdown content pilot. - Release path: the manually approved `Deploy primary production Worker candidate` workflow completed successfully in 22 seconds. - Scope: updated only the static assets of the existing `3031023-xyz-www` Worker. No custom domain, DNS, redirect rule, Pages project, form workflow, CMS, or client-editing boundary changed. - External verification: the apex returns 200, the two published FAQ entries are present, the intentional static 404 returns 404, and `robots.txt` still advertises the production sitemap.