Skip to content

feat: Publish and verify SHA-256 checksums for standalone Hive CLI archives #8455

Description

@klippx

Thank you for maintaining the Hive CLI.

The documented installer currently downloads a platform archive from cli.graphql-hive.com and extracts it without verifying a publisher-provided checksum or signature. Downstream consumers that pin the CLI therefore have to download each archive, calculate their own hashes, and trust that initial download. Which is a bit of a charade, which is the reason for this request.

Would you consider generating a SHA256SUMS manifest during the existing release workflow, covering all supported archives, and publishing it at:

Plain text

https://cli.graphql-hive.com/versions/VERSION/SHA256SUMS

It would also be helpful for install.sh to verify the selected archive before extraction.

Publishing the archives and checksum manifest on the corresponding GitHub release would provide a separate, discoverable source for downstream package definitions and pinned installations. As a further improvement, immutable releases and GitHub artifact attestations or Sigstore signing could bind the artifacts to the release workflow and source commit.

Publisher-generated hashes would be a useful first step and remove the need for consumers to establish their own trust-on-first-use pins.

Would this fit Hive’s current release model?

Activity

  1. n1ru4l commented on Sep 28, 2026

    @n1ru4l
    Contributor

    Hey @klippx, thank you for this suggestion. This seems like a good addition to our set up. Would you consider contributing this?

  2. klippx commented on Oct 2, 2026

    @klippx
    Author

    While implementing the installer follow-up, we found a rollout/compatibility decision that needs maintainer guidance.

    Historical standalone archives exist without publisher manifests. For example, as of 2026-10-02:

    0.65.0 archive=200 manifest=404
    0.64.1 archive=200 manifest=404
    0.64.0 archive=200 manifest=404
    0.50.1 archive=200 manifest=404
    

    Making install.sh require /versions/VERSION/SHA256SUMS for every explicit version would therefore break the documented pinned-install flow for those releases. We see two reasonable policies:

    1. Backfill manifests (preferred): generate and publish SHA256SUMS for historical versions whose standalone archives are still present. The installer can then use one mandatory-verification path for both old and new versions.
    2. Set a cutoff: declare the first release guaranteed to have manifests (for example 0.67.0; exact version to be chosen when publishing lands). The installer preserves the legacy unverified path below that version and requires verification at/above it, with no fallback on verification failures.

    Would you prefer a historical backfill, or should we establish a first checksummed-version cutoff?

    NB: We also found that npm latest is not a reliable authority for the standalone stable artifact: npm currently reports 0.66.0, its versioned standalone archive returns 404, and /channels/stable/hive-…tar.gz returns 200. I am updating the publishing PR to write /channels/stable/VERSION as the last promotion step, so the installer can resolve the stable channel to the exact immutable version before verification.

  3. n1ru4l commented on Oct 2, 2026

    @n1ru4l
    Contributor

    Approach 1. seems reasonable!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions