Repository navigation
Serve the CLI repository's current installers and pin them - #458
Merged
Merged
Conversation
durable-workflow.com/install.sh and /install.ps1 were copies of the CLI installers last synced in August. They verified attestations without the CLI's signer pin (release or release-rust workflow on main or a release tag) and without --deny-self-hosted-runners. Replace both byte for byte with durable-workflow/cli 3df282fa scripts/install.sh and scripts/install.ps1, record that source with sha256 values, and fail the build when either file drifts. A new workflow installs the stable CLI end to end with signer-pinned attestations on Linux, macOS and Windows, and checks that an installer trusting another workflow refuses the release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Put the install directory on PATH so the installer's not-ready exit does not fail a good install, require the negative case to fail at the attestation step, reset PowerShell's exit code after the expected gh refusal, and grant attestations: read at job level (Sonar S8264). The installers and their recorded source are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Member
Author
|
Hosted evidence at
The delta from
|
Member
Author
General interim review (Security unavailable)Verdict: CLEAR at 565afc0 (independent reviewer)
Non-blocking follow-ups:
|
Member
Author
Member
Author
|
Live readback after Pages deploy run 41775539825 at
Both equal |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Security fix.
https://durable-workflow.com/install.shand/install.ps1back the docs' one-line CLI installs. They were stale copies of the CLI installers, last synced 2026-08-31 (e43e5a7f). Their opt-in attestation check (DURABLE_WORKFLOW_INSTALL_VERIFY_ATTESTATIONS=1) rangh attestation verify --repowith no signer pin and no--deny-self-hosted-runners. The VERSION handling was also older.Change
static/install.shandstatic/install.ps1are now byte-for-bytedurable-workflow/cli3df282fascripts/install.sh(sha2565f17db13…) andscripts/install.ps1(sha25652d3ef11…). cli named this source commit (lobby 8025). File modes are unchanged (100644).^https://github.com/durable-workflow/cli/.github/workflows/(release|release-rust).yml@refs/(heads/main|tags/<semver>)$and--deny-self-hosted-runners, in both installers.scripts/installer-source.json: records the source repo, the commit and each file's sha256.scripts/check-installer-source.test.js: wired intonpm run build, so a drifted copy fails the build. The failure message says to re-copy and re-record..github/workflows/installers.yml: runs when either installer or its pin changes, or onworkflow_dispatch. Permissions:contents: read,attestations: read.install.shon ubuntu-latest and macos-latest, andinstall.ps1on windows-latest, each installVERSION=2.3.5withDURABLE_WORKFLOW_INSTALL_VERIFY_ATTESTATIONS=1and assertdw --versioncontains 2.3.5.not-releaseworkflow must fail and leave no binary behind.Evidence so far (lab2)
debian:bookworm-slim, bounded container, no credentials mounted): the default checksum path installsdw 2.3.5 (commit 5c03e4f31adb).DURABLE_WORKFLOW_INSTALL_VERIFY_ATTESTATIONS=1: "Verifying checksum" and "Verifying GitHub artifact attestations" both pass with the signer pin, and it installsdw 2.3.5.not-releasecopy fails withError: verifying with issuer "sigstore.dev", exit 1, and installs nothing.install.ps1end-to-end run, plus Linux and macOS with attestations. cli's own CI only syntax-checksinstall.ps1.Follow-up: #457 (CLI 2.5.0) will copy cli#85's macOS-x86_64 change byte for byte when it merges, and update
installer-source.jsonto that commit.🤖 Generated with Claude Code