Repository navigation
Document per-PR preview deployments for 5.4 - #790
Conversation
Lead the CI guide's preview recipe with harper preview setup, the starter workflow, the preview and preview-cleanup environments and HARPER_PREVIEW_TARGET, with a short note for 5.3. Document enable_previews, disable_previews and get_preview_policy, preview metadata and expiry on deploy_component, the component_deploy role grant, deployment.previews.*, harper preview, pattern credential grants, CORS wildcard origins, and what changed for isolated applications, payload deploys and OIDC exchanges. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-790 This preview will update automatically when you push new commits. |
There was a problem hiding this comment.
Code Review
This pull request updates the documentation to cover new features in Harper v5.4.0, such as Pull Request Previews, Component Deploy Grants, payload deployment options, and OIDC trust policy updates. The review feedback consistently points out violations of the repository's style guide regarding the mid-sentence use of the <VersionBadge> component in prose, providing actionable suggestions to replace them with plain text in the format (Added in: vX.Y.Z) or (Changed in: vX.Y.Z).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-790 This preview will update automatically when you push new commits. |
Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ments-docs-be5ce7 # Conflicts: # learn/developers/deploying-from-ci.mdx # reference/components/applications.md
Operation scopes compare with groups expanded, list_oidc_trust names a same-audience rival first and describes a cross-audience pair, and setup refuses only a head the workflow shows outright. Co-Authored-By: Claude Opus 5.5 <[email protected]>
🚀 Preview DeploymentYour preview deployment is ready! 🔗 Preview URL: https://preview.harper-documentation.harperfabric.com/pr-790 This preview will update automatically when you push new commits. |
Ethan-Arrowood
left a comment
There was a problem hiding this comment.
LGTM and claude! Feel free to merge this as soon as deploy-action#1 merges and v1 is tagged
🧹 Preview CleanupThe preview deployment for this PR has been removed. |
⊙ Problem
Harper 5.4 ships per-PR preview deployments (harper#3042): one setup command and one workflow file give every pull request its own isolated, branched preview on the customer's own cluster, with no stored secret. None of it is documented. The CI guide still teaches the hand-built 5.3 recipe from #715, with a role that can deploy any component, a custom domain per preview on Fabric, and per-node cleanup.
💡 Solution
HarperFast/deploy-action: the preview workflow that runs the action,harper preview setup, the setup options and their matching action inputs, thepreviewandpreview-cleanupenvironments,HARPER_PREVIEW_TARGET, and allowingpull_request_targetin a public repository. Then the CLI-only starter workflow setup writes (collapsed), managing previews, an optional sweep workflow, private repositories, apps that need a build, the security model from the epic, and shared versus branched data. Path A gets a tip to deploy with the action on a 5.4 cluster. The 5.3 recipe becomes a short note linking to this guide at62139d54.enable_previews,disable_previewsandget_preview_policy;previewmetadata, expiry and the cap ondeploy_component; payload deploys settinghost,urlPath,isolatedandbranchedDatabases; the dotted-project-name400;ifDeploymentId; thecomponent_deployrole grant;deployment.previews.*;harper preview setup|teardown|deploy|drop|list; pattern credential grants; CORS wildcard origins; the shared port's503for an isolated host;fastifyRoutesunder a host; bare globals reaching a branch; and the OIDC exchange refusing conflicting policies.list_oidc_trustfor conflicting pairs and upgrade every node.🤔 Release notes here, not in #788
#788 (draft) moves the v5 reference and the 5.4 notes into harper's
docs/, as one fragment per change, and its cutover ports the open docs PRs after it merges. Until then they live here, so this PR editsreference/andrelease-notes/v5-lincoln/5.4.mdlike the other open 5.4 docs PRs. Each new 5.4 note is its own###section, so it lifts into a fragment unchanged.🤔 GitHub's
pull_request_targetdate is December 2, not November 2The epic and #715 say GitHub blocks
pull_request_targetin public repositories from 2026-11-02. GitHub moved it to 2026-12-02, with brownouts on November 9 and 16. The guide says December 2 and names the brownouts.🤔 No per-component
stagingRetentionkey existsThe brief listed a per-component
stagingRetention; harper has none. What #3505 added isdeployment.previews.stagingRetention.maxCount, which a preview's component uses in place ofdeployment.stagingRetention.maxCount. That is what's documented.🔧 Changes
learn/developers/deploying-from-ci.mdx: the "Per-PR previews" section replaces "Per-PR previews with shared databases"; two inbound anchors updated.reference/operations-api/operations.md: the "PR Previews" section (the three operations, the grant they write, thedisable_previewsbarrier and its errors);deploy_component'sisolated,branchedDatabasesandpreviewparameters, payload routing, the project-name rule, and "Preview deployments" (expiry, cap, retention); the deployment record'spreviewand grant-filtered reads; howexchange_oidc_tokentreats several matching policies;list_oidc_trust'sexchangeableand conflictinvalid_reason; patterngrant_secret.reference/users-and-roles/overview.md: "Component Deploy Grants", and the preview operations among those anoperationslist cannot grant.reference/cli/commands.md:harper previewand its five actions, what setup checks in the workflow, payload routing parameters onharper deploy, patternprojectforsetup=true, and the rival-policy refusal in GitHub Actions setup.reference/configuration/options.md:deployment.previews.maxPerApplication,sweepIntervalandstagingRetention.maxCount; CORS wildcard pointers.reference/components/applications.md: payload deploys setting routing, the shared port's503, Fabric preview hosts, bare globals and branches,deploy_component's new fields,drop_component'sifDeploymentId, andget_components'preview.reference/http/configuration.md,reference/http/overview.md,reference/security/secrets.md,reference/components/javascript-environment.md,reference/components/module-loading.md,learn/developers/multiple-applications.mdx: CORS wildcard origins,fastifyRoutesin an isolated application, pattern grants, and the bare-globals change.release-notes/v5-lincoln/5.4.md: the upgrade note and "Pull Request Previews".Fabric's preview hosts are already documented (#718), so the guide and reference link to Preview Hosts. Starting and stopping one isolated application and per-node drop results stay with #750, and isolated admission order with #759.
🤔 The guide assumes
HarperFast/deploy-action@v1is releasedAsked for on this PR: the preview recipe now runs the action (HarperFast/deploy-action#1, open, untagged), not the CLI-only starter workflow that
harper preview setupwrites, which stays in a collapsed block. The Depends-on marker holds this PR until the action merges; tagv1before this merges too, since every snippet uses@v1. The action's README is linked for the full input list rather than copied.Which harper PR each part documents
All three are now merged to harper
main(#3807 as76797710, #3811 as79aec74f, #3812 as24574d0b), and the docs were rechecked against them. Everything else documents harper#3505, harper#3617, harper#3809, and the branch-removal retries harper#3600, harper#3763 and harper#3818, which change nothing a reader does.envorVAR=, steps with any input, the cleanup note);get_preview_policy's operations problem; the reachability gateway wording;disable_previewslisting again when a drop removed nothingexchange_oidc_token"When several policies match";list_oidc_trust'sexchangeableand conflictinvalid_reason; the rival refusal inharper deploy setupandenable_previews; the 5.4 upgrade note and "Conflicting Trust Policies Are Refused"disable_previewsfencing every node, the403for a fenced activation, thegenerationconstraint,fence_preview_releases, and the release note's barrier paragraph✅ Verification
npm run format:checkandnpm run buildpass, with no broken links or anchors.origin/mainat79aec74f, which has all of #3505, #3617, #3807, #3809, #3811 and #3812. The merged #3811 compares operation scopes with permission groups expanded and names a same-audience rival first, and the merged #3807 refuses only a head the workflow shows outright; both are reflected.[email protected](scratchHOMEand root):enable_previewsrefuses alocalhostaudience withouthostSuffix, creates the four records, answers "already enabled" on a rerun and409on a differentmaxPreviews;get_preview_policy's fields;deploy_component project=shop.pr-12answers400;harper preview deploy branch=fix/Cartservesfix-cart.<domain>and recordspreviewon the deployment;harper preview list;disable_previewsdrops both previews and removes the identity, and a second call answers "not enabled".v5.4.0: #3505 is inv5.4.0-alpha.1, #3617 inv5.4.0-alpha.2, #3809 and the rest are onmainafter it, andv5.3.5has noutility/previewIdentity.ts.Depends-on: HarperFast/harper#3807, HarperFast/harper#3811, HarperFast/harper#3812, HarperFast/deploy-action#1
🤖 Generated with Claude Code
Related PRs: #788 overlaps (moves
reference/and the 5.4 notes to harper; ported at its cutover), #750 overlaps (merged; its edits to the 5.3 recipe stay in the linked 5.3 version, and its drop reference is kept), #759 independent (linked, not re-documented), 18 others independent (other 5.4 docs PRs editing different sections of the same files)Complexity: medium