Skip to content

Allow HTTPS URL binding in signed Trust Manifests - #124

Open
jonathanhefner wants to merge 1 commit into
Agent-Card:mainfrom
jonathanhefner:agent/trust-manifest-url-binding
Open

jonathanhefner wants to merge 1 commit into
Agent-Card:mainfrom
jonathanhefner:agent/trust-manifest-url-binding

Conversation

@jonathanhefner

@jonathanhefner jonathanhefner commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Allow a signed Trust Manifest to identify its artifact through a content digest, an HTTPS URL, or both.

Binding What it authenticates
Digest Exact artifact content
HTTPS URL The selected resource location, whose contents may change

Existing digest-bound manifests remain valid. When both bindings are present, both must verify.

Motivation

A contributor may want to endorse an artifact at a particular HTTPS location without pinning one fixed representation. Requiring a digest for every signed manifest prevents expressing that distinction.

Defining URL-only binding before v1 avoids later relaxing a digest requirement that v1 consumers would otherwise be entitled to enforce. Consumers requiring exact-content assurance can continue to require digest binding.

Rationale

URL binding is optional so digest-bound manifests can continue to support mirrors without endorsing a particular retrieval location. When selected, the signed URL must exactly match the entry’s URL.

When both a digest and URL are present, both must verify: a matching URL cannot excuse a failed content-integrity check.

See Allow URL Binding as an Alternative to Artifact Digests for details.

@jonathanhefner
jonathanhefner force-pushed the agent/trust-manifest-url-binding branch from ea6d822 to be6803f Compare October 8, 2026 17:38
@jonathanhefner
jonathanhefner changed the base branch from main to jonathanhefner/independent-trust-manifests October 8, 2026 17:38
@jonathanhefner
jonathanhefner force-pushed the agent/trust-manifest-url-binding branch from be6803f to b982e99 Compare October 28, 2026 19:57
@jonathanhefner
jonathanhefner changed the base branch from jonathanhefner/independent-trust-manifests to main October 28, 2026 19:57
Permit signed subjects to identify exact content or a live HTTPS
resource. Keep digest presence and value symmetric with the entry,
retain release-coordinate matching, and verify every present binding.

Preserve digest-only mirror support and existing signed documents.
Define URL-only binding before v1 so later consumers need not relax
an already released mandatory-digest contract.

Signed-off-by: Jonathan Hefner <jonathan@hefner.pro>
@jonathanhefner
jonathanhefner force-pushed the agent/trust-manifest-url-binding branch from b982e99 to 8d01afe Compare October 28, 2026 21:55
@jonathanhefner jonathanhefner added this to the 1.0 Release milestone Oct 29, 2026
@jonathanhefner
jonathanhefner marked this pull request as ready for review October 29, 2026 22:01
@jonathanhefner
jonathanhefner requested a review from a team as a code owner October 29, 2026 22:01

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant