autifyhq / autifyhq/autify-cli

Provide versioned, checksummed release binaries

Open
#705 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
43
Forks
5
Avg merge
1h 59m
Merged PRs (30d)
3

Description

`install-standalone.sh` has the following issues from the perspectives of dependency pinning and supply chain security.

From [`install-standalone.sh`](https://github.com/autifyhq/autify-cli/blob/main/autify-cli/install-standalone.sh):

```bash
URL=https://$AUTIFY_S3_BUCKET.s3.amazonaws.com/$AUTIFY_S3_PREFIX-$OS-$ARCH.$TAR_EXT
curl "$URL" | tar "$TAR_ARGS"
```

1. **The URL does not include a version**, so the same CI configuration can install a different binary depending on when it runs. It cannot be pinned via a lockfile.
2. **There is no checksum or signature verification.** The script pipes `curl` directly into `tar`, so tampering with the distribution source cannot be detected.
3. **The `curl | sudo bash` pattern** leaves no path for users to inspect the content locally before executing it. If the distributed bash uploader were tampered with — as in the [Codecov incident (2021)](https://about.codecov.io/security-update/), where CI environment variables were leaked — users would have no way to defend themselves.

## Proposal

Per-platform binaries are already produced as `$OS-$ARCH.tar.xz`, so it would be a significant improvement to additionally publish:

- **Stable URLs that include the version** (e.g. `…/v0.73.1/autify-darwin-arm64.tar.xz`)
- **SHA256 checksum files**
- Ideally, binaries attached to GitHub Releases

This would enable version pinning via mise/asdf, user-side tamper verification, and installation in rootless environments (Dev Containers, CI containers, etc.).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.