You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Deployments page: what is live, where it came from, and how each node took it #1786
Config → Deployments (src/features/instance/config/deployments/) was built for 5.1's deployment records. Since then:
Staging. A deploy can be staged and made live later (5.3.0). A staged record has the status staged, and the activation's record carries activated_from.
Going back. Going back to a release is an activation of its id (5.3.0), and it writes a new success record with activated_from. Nothing sets rolled_back or rollback_of, though the detail view still shows them.
Install comparison. Each node's entry in peer_results says whether it installed what the origin did (5.3.1). install_matches is the verdict, and install_differs names the source or lockfile that differed. The record holds the origin's install_fingerprint.
Certification. A restarting deploy is certified on each node (5.4.0).
CI deploys. A deploy from CI runs as the trust policy's user.
Studio's types have none of these, and staged isn't a status it knows. The list fetches the newest 100 records with no filter or paging, and the detail view is read-only.
So the page can't answer what people come to it for: what is live on each node right now, what it was built from, and what they can go back to.
Proposal
Types. Add types and statuses for the 5.3+ fields.
List.
Filter by component and status.
Page with limit and offset. There's no server-side default limit.
Show the id, component, status, source (package reference or payload hash), user and time.
Show a staged record as waiting to be activated, and have an activation name the release it activated.
Detail. Show a row per node with its outcome, whether its install matched the origin's and what differed, and its certification.
Take a component deployed several times, including once staged and activated later, and once from CI. The page shows which release is live on each node, what each release was built from, how each node took it, and which releases can be gone back to.
Part of HarperFast/create-harper#143.
Problem
Config → Deployments (
src/features/instance/config/deployments/) was built for 5.1's deployment records. Since then:staged, and the activation's record carriesactivated_from.successrecord withactivated_from. Nothing setsrolled_backorrollback_of, though the detail view still shows them.peer_resultssays whether it installed what the origin did (5.3.1).install_matchesis the verdict, andinstall_differsnames the source or lockfile that differed. The record holds the origin'sinstall_fingerprint.Studio's types have none of these, and
stagedisn't a status it knows. The list fetches the newest 100 records with no filter or paging, and the detail view is read-only.So the page can't answer what people come to it for: what is live on each node right now, what it was built from, and what they can go back to.
Proposal
limitandoffset. There's no server-side default limit.deployment.stagingRetention.maxCount, which defaults to 5.file:directory, isn't kept.Needs from Harper
list_deploymentsand the retention count. Tracked in Report which deployment is live on each node, and which releases each node keeps harper#3059.successonce the receiving node has the release, before the job reaches the others (Show canary certification and each node's outcome when a deploy restarts #1785). Tracked in A rolling deploy's record sayssuccesseven when another node rejects the release harper#3060.Done when
Take a component deployed several times, including once staged and activated later, and once from CI. The page shows which release is live on each node, what each release was built from, how each node took it, and which releases can be gone back to.