Skip to main content
Production bundles are signed so the runtime can prove a bundle is genuine before trusting it. The integrity hash chain catches accidental corruption; the signature catches a malicious author who edits a file and updates the manifest to match.

Generate a keypair and sign

Verify at runtime

Point the verifier at the public key:
HEXGATE_BUNDLE_REQUIRE_SIGNATURE controls strictness — the permissive default (load rather than refuse) keeps local dev frictionless; opt into refusal for CI/prod: Keys are raw Ed25519, base64url-encoded — the same format the platform’s JWKS endpoint publishes, so production verification reuses the public key your SDK already trusts for biscuit tokens. One root key, two artifacts.
*.private and *.pem are in .gitignore so a signing key never lands in version control. Public keys (*.public) are safe to commit.
For a YAML source (rather than a pre-built bundle dir), set HEXGATE_BUNDLE_SIGN_KEY_PATH=./keys/dev.private so each recompile is signed and downstream gates that check bundle.is_signed see what they expect.