Repository navigation
Document preview hosts and custom domain name rules on Fabric - #718
dawsontoth wants to merge 11 commits into
Conversation
A Fabric custom domain can be a wildcard such as *.preview.example.com, covering one label below its base, so per-PR preview hosts need one registration instead of one each. The page now covers where its TXT record goes (_fabric.<base>), its CNAME, that a more specific domain wins, and that its certificate is the customer's: Fabric's automatic certificates use Let's Encrypt's HTTP-01 challenge, and Let's Encrypt issues wildcards only through DNS-01. The certificate is added with add_certificate against the cluster's Operations API. Also notes that domain names are case-insensitive and claimable by one organization once verified. Companion to HarperFast/central-manager#917 and HarperFast/host-manager#244; merge after both ship. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s API URL, replication Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-718 This preview will update automatically when you push new commits. |
Customer wildcard custom domains were dropped from HarperFast/central-manager#917. The page keeps the rules that still hold: names are case-insensitive and stored lowercase, must be valid hostnames, and belong to one organization once verified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-718 This preview will update automatically when you push new commits. |
A cluster can now serve isolated applications under *.preview.<cluster hostname> (HarperFast/central-manager#917, HarperFast/host-manager#244): Fabric creates the DNS record and orders the wildcard on each instance's certificate, so a preview needs only a deploy. Documents what reaches a preview host, the one-label rule, which clusters qualify, and the API request that turns it on until Studio has a setting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…osts on Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HarperFast/central-manager#917 now keys each cluster's preview namespace on its ID, *.<cluster id>.preview.<organization subdomain>.harperfabric.com, instead of the cluster's hostname, so the page shows that shape, drops the default-hostname requirement, and says where the ID is before the URL needs it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-718 This preview will update automatically when you push new commits. |
Preview hosts move from a per-cluster namespace turned on through the Fabric API to the wildcard of the cluster's own host name, which every cluster gets: pr-42.<cluster name>.<org>.harperfabric.com. Documents when existing clusters start serving them, and the cookie boundary between a cluster and its previews, recommending __Host- cookie names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A preview runs under the cluster's own host name: recommend previewing only code trusted in production, give the attributes a __Host- cookie needs, note that Harper's own session cookie cannot take the prefix and that SameSite does not separate the two, and say that previews on an older multi-instance cluster are intermittent until every instance's certificate renews. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-718 This preview will update automatically when you push new commits. |
Fabric now serves previews at pr-42.app.<cluster>.<org>.harperfabric.com: Let's Encrypt will not issue *.<cluster host name> beside the cluster's instance names, which sit one label under it. A host directly under the cluster's host name no longer reaches a preview, and the instance names no longer overlap preview names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-718 This preview will update automatically when you push new commits. |
Documents two Fabric changes that HarperFast/central-manager#917 makes, with HarperFast/host-manager#244:
app.and its own host name,pr-42.app.<cluster name>.<organization subdomain>.harperfabric.com. There is no setting.Depends-on: #715
Merge order
For the human reviewer
app.Let's Encrypt refuses the wildcard of a cluster's host name beside the instance names one label under it, as review of host-manager#244 found and Let's Encrypt staging confirmed, so previews arepr-42.app.<cluster name>.…;appwas your call. The page no longer warns against naming a preview after an instance, since the two no longer overlap.__Host-names (withSecure,Path=/and noDomain) for cookies production relies on, says Harper's own session cookie cannot take that prefix because its name is fixed (hdb-session), and thatSameSitedoes not separate a preview from production.Changes
fabric/cluster-creation-management.mdrewrites the Preview Hosts section:app.and the cluster's host name;__Host-names, Harper's session cookie, andSameSite.fabric/custom-domains.mdadds the name rules under Adding a Custom Domain, linking to preview hosts.Verification
npx prettier --checkis clean on both files.*.app.<cluster>record and host-manager's wildcard application routing, which covers one label;<location>-<n>.<cluster host name>, sit outsideapp., so no preview host can be one;security/auth.tsbuilds it as[origin-]hdb-session;customDomains.jsandclusterHostNames.Related PRs: none found
Complexity: easy
🤖 Generated with Claude Code
Review-Coverage: authored=claude; ran=gemini,cursor-composer,codex; adjudicated=domain; declined=cursor-grok,cursor-kimi,cursor-muse; rounds=5; full=1 @ 62dff49
Review-Attention: skim ~2m (decisions: previews-same-site-as-production, always-on-previews, renewal-driven-rollout, fabric-owned-preview-hosts) @ 62dff49