Documentation
¶
Overview ¶
Package distribution owns the signed, product-neutral agreements that join software release publication, Latest discovery, and exact artifact download.
Both a producer or installed tool and its authority use these same types. The offering is always a field inside Release facts; there is no product dispatch, provider policy, persistence, transfer, installation, retry, or customer-facing decision in this package.
Index ¶
- Constants
- func PreparePublicationPlan(request PublicationPlanRequest) (deploy.ReleasePlan, error)
- func PrepareUpgradeStage(request UpgradeStageRequest) (upgrade.StageRequest, error)
- type PublicationCompletionDocument
- type PublicationCompletionExpectation
- type PublicationCompletionIssuance
- type PublicationCompletionPayload
- func (PublicationCompletionPayload) AttestationDomain() SigningDomain
- func (p PublicationCompletionPayload) MarshalJSON() ([]byte, error)
- func (p *PublicationCompletionPayload) UnmarshalJSON(data []byte) error
- func (p PublicationCompletionPayload) Validate() error
- func (p PublicationCompletionPayload) WriteCanonical(destination io.Writer) error
- type PublicationCompletionProjection
- func (p PublicationCompletionProjection) Build() (core.BuildIdentity, error)
- func (p PublicationCompletionProjection) MarshalJSON() ([]byte, error)
- func (p PublicationCompletionProjection) Validate() error
- func (p PublicationCompletionProjection) ValidateJSONProjection(encoded []byte, limits core.StrictJSONLimits) error
- type PublicationGrantDocument
- type PublicationGrantExpectation
- type PublicationGrantIssuance
- type PublicationGrantPayload
- func (PublicationGrantPayload) AttestationDomain() SigningDomain
- func (p PublicationGrantPayload) MarshalJSON() ([]byte, error)
- func (p *PublicationGrantPayload) UnmarshalJSON(data []byte) error
- func (p PublicationGrantPayload) Validate() error
- func (p PublicationGrantPayload) WriteCanonical(destination io.Writer) error
- type PublicationGrantProjection
- type PublicationPlanRequest
- type PublicationRequestDocument
- type PublicationRequestIssuance
- type PublicationRequestPayload
- func (PublicationRequestPayload) AttestationDomain() SigningDomain
- func (p PublicationRequestPayload) MarshalJSON() ([]byte, error)
- func (p *PublicationRequestPayload) UnmarshalJSON(data []byte) error
- func (p PublicationRequestPayload) Validate() error
- func (p PublicationRequestPayload) WriteCanonical(destination io.Writer) error
- type PublicationRequestVerification
- type PublicationSource
- type RequestCommitment
- type SigningDomain
- func (d SigningDomain) IsValid() bool
- func (d SigningDomain) MarshalJSON() ([]byte, error)
- func (d SigningDomain) MarshalText() ([]byte, error)
- func (SigningDomain) ParseCanonicalText(text []byte) (SigningDomain, error)
- func (d SigningDomain) String() string
- func (d *SigningDomain) UnmarshalJSON(data []byte) error
- func (d SigningDomain) Validate() error
- type UpdateRequestDocument
- type UpdateRequestIssuance
- type UpdateRequestPayload
- func (UpdateRequestPayload) AttestationDomain() SigningDomain
- func (p UpdateRequestPayload) MarshalJSON() ([]byte, error)
- func (p *UpdateRequestPayload) UnmarshalJSON(data []byte) error
- func (p UpdateRequestPayload) Validate() error
- func (p UpdateRequestPayload) WriteCanonical(destination io.Writer) error
- type UpdateRequestVerification
- type UpdateResponseDocument
- type UpdateResponseIssuance
- type UpdateResponsePayload
- func (UpdateResponsePayload) AttestationDomain() SigningDomain
- func (p UpdateResponsePayload) MarshalJSON() ([]byte, error)
- func (p *UpdateResponsePayload) UnmarshalJSON(data []byte) error
- func (p UpdateResponsePayload) Validate() error
- func (p UpdateResponsePayload) WriteCanonical(destination io.Writer) error
- type UpdateResponseVerification
- type UpgradeGrantDocument
- type UpgradeGrantExpectation
- type UpgradeGrantIssuance
- type UpgradeGrantPayload
- func (UpgradeGrantPayload) AttestationDomain() SigningDomain
- func (p UpgradeGrantPayload) MarshalJSON() ([]byte, error)
- func (p *UpgradeGrantPayload) UnmarshalJSON(data []byte) error
- func (p UpgradeGrantPayload) Validate() error
- func (p UpgradeGrantPayload) WriteCanonical(destination io.Writer) error
- type UpgradeGrantProjection
- type UpgradeRequestDocument
- type UpgradeRequestIssuance
- type UpgradeRequestPayload
- func (UpgradeRequestPayload) AttestationDomain() SigningDomain
- func (p UpgradeRequestPayload) MarshalJSON() ([]byte, error)
- func (p *UpgradeRequestPayload) UnmarshalJSON(data []byte) error
- func (p UpgradeRequestPayload) Validate() error
- func (p UpgradeRequestPayload) WriteCanonical(destination io.Writer) error
- type UpgradeRequestVerification
- type UpgradeStageRequest
- type VerifiedPublicationCompletion
- type VerifiedPublicationGrant
- func (v VerifiedPublicationGrant) Capability(role release.PublicationRole) (objectstore.UploadCapability, objectstore.UploadCapabilityCommitment, error)
- func (v VerifiedPublicationGrant) Payload() (PublicationGrantPayload, error)
- func (v VerifiedPublicationGrant) Request() (PublicationRequestPayload, error)
- func (v VerifiedPublicationGrant) Validate() error
- type VerifiedPublicationRequest
- type VerifiedUpdateRequest
- type VerifiedUpdateResponse
- type VerifiedUpgradeGrant
- type VerifiedUpgradeRequest
Constants ¶
const ( SigningDomainPublicationRequestV1Token = "primitive-distribution-publication-request-2026-1" SigningDomainPublicationGrantV1Token = "primitive-distribution-publication-grant-2026-1" SigningDomainPublicationCompletionV1Token = "primitive-distribution-publication-completion-2026-1" SigningDomainUpdateRequestV1Token = "primitive-distribution-update-request-2026-1" SigningDomainUpdateResponseV1Token = "primitive-distribution-update-response-2026-1" SigningDomainUpgradeRequestV1Token = "primitive-distribution-upgrade-request-2026-1" SigningDomainUpgradeGrantV1Token = "primitive-distribution-upgrade-grant-2026-1" )
const ( // RequestDocumentJSONMaximumBytes bounds every signed Distribution request. RequestDocumentJSONMaximumBytes = 128 << 10 // ResponseDocumentJSONMaximumBytes is the transport ceiling shared by all // signed distribution responses and grants. ResponseDocumentJSONMaximumBytes = 256 << 10 )
Variables ¶
This section is empty.
Functions ¶
func PreparePublicationPlan ¶
func PreparePublicationPlan(request PublicationPlanRequest) (deploy.ReleasePlan, error)
PreparePublicationPlan projects the signed bearer set into Deploy's exact create-only execution plan.
func PrepareUpgradeStage ¶
func PrepareUpgradeStage(request UpgradeStageRequest) (upgrade.StageRequest, error)
PrepareUpgradeStage projects the authenticated download bearer directly into Upgrade's crash-recoverable local staging request.
Types ¶
type PublicationCompletionDocument ¶
type PublicationCompletionDocument struct {
Payload PublicationCompletionPayload `json:"payload"`
Attestation attest.Envelope[SigningDomain] `json:"attestation"`
}
PublicationCompletionDocument carries the caller's signature over provider evidence that contains no bearer, URL, path, or object bytes.
func (PublicationCompletionDocument) MarshalJSON ¶
func (d PublicationCompletionDocument) MarshalJSON() ([]byte, error)
func (*PublicationCompletionDocument) UnmarshalJSON ¶
func (d *PublicationCompletionDocument) UnmarshalJSON(data []byte) error
func (PublicationCompletionDocument) Validate ¶
func (d PublicationCompletionDocument) Validate() error
type PublicationCompletionExpectation ¶
type PublicationCompletionExpectation struct {
Document PublicationCompletionDocument
Request VerifiedPublicationRequest
GrantKeys attest.TrustedKeys
CompletionKeys attest.TrustedKeys
Grant PublicationGrantPayload
GrantAttestation attest.Envelope[SigningDomain]
}
PublicationCompletionExpectation supplies the exact authenticated request, signed grant facts, and caller trust used by an authority on receipt.
func (PublicationCompletionExpectation) Validate ¶
func (e PublicationCompletionExpectation) Validate() error
type PublicationCompletionIssuance ¶
type PublicationCompletionIssuance struct {
Signer crypto.Signer
Receipts deploy.Receipts
Grant VerifiedPublicationGrant
Request VerifiedPublicationRequest
}
PublicationCompletionIssuance closes only a complete Deploy result against the authenticated request and grant that authorized it.
func (PublicationCompletionIssuance) Validate ¶
func (i PublicationCompletionIssuance) Validate() error
type PublicationCompletionPayload ¶
type PublicationCompletionPayload struct {
Build core.BuildIdentity `json:"build"`
Evidence [release.PublicationObjectCount]objectstore.TransferEvidence `json:"evidence"`
Request RequestCommitment `json:"request_commitment"`
Nonce controlwire.RequestNonce `json:"request_nonce"`
Authorization controlwire.AuthorityNonce `json:"authorization_nonce"`
Manifest release.ManifestIdentity `json:"manifest"`
ManifestDocument release.ManifestDocumentDigest `json:"manifest_document"`
}
PublicationCompletionPayload is the authority-received proof that every object in one granted release publication completed with exact integrity.
func (PublicationCompletionPayload) AttestationDomain ¶
func (PublicationCompletionPayload) AttestationDomain() SigningDomain
func (PublicationCompletionPayload) MarshalJSON ¶
func (p PublicationCompletionPayload) MarshalJSON() ([]byte, error)
func (*PublicationCompletionPayload) UnmarshalJSON ¶
func (p *PublicationCompletionPayload) UnmarshalJSON(data []byte) error
func (PublicationCompletionPayload) Validate ¶
func (p PublicationCompletionPayload) Validate() error
func (PublicationCompletionPayload) WriteCanonical ¶
func (p PublicationCompletionPayload) WriteCanonical(destination io.Writer) error
type PublicationCompletionProjection ¶
type PublicationCompletionProjection struct {
// contains filtered or unexported fields
}
PublicationCompletionProjection is the issue-only form because Objectstore transfer evidence itself has separate issue and receive types.
func IssuePublicationCompletion ¶
func IssuePublicationCompletion(issuance PublicationCompletionIssuance) (PublicationCompletionProjection, error)
IssuePublicationCompletion signs only a complete exact receipt set.
func (PublicationCompletionProjection) Build ¶ added in v2026.0.91
func (p PublicationCompletionProjection) Build() (core.BuildIdentity, error)
func (PublicationCompletionProjection) MarshalJSON ¶
func (p PublicationCompletionProjection) MarshalJSON() ([]byte, error)
func (PublicationCompletionProjection) Validate ¶
func (p PublicationCompletionProjection) Validate() error
func (PublicationCompletionProjection) ValidateJSONProjection ¶ added in v2026.0.127
func (p PublicationCompletionProjection) ValidateJSONProjection(encoded []byte, limits core.StrictJSONLimits) error
type PublicationGrantDocument ¶
type PublicationGrantDocument struct {
Capabilities [release.PublicationObjectCount]objectstore.UploadCapability `json:"capabilities"`
Payload PublicationGrantPayload `json:"payload"`
Attestation attest.Envelope[SigningDomain] `json:"attestation"`
}
PublicationGrantDocument is the receive-only form. Objectstore prevents callers from serializing its bearer capabilities again.
func (*PublicationGrantDocument) UnmarshalJSON ¶
func (d *PublicationGrantDocument) UnmarshalJSON(data []byte) error
func (PublicationGrantDocument) Validate ¶
func (d PublicationGrantDocument) Validate() error
type PublicationGrantExpectation ¶
type PublicationGrantExpectation struct {
Document PublicationGrantDocument
Request PublicationRequestPayload
TrustedKeys attest.TrustedKeys
ObservedAt temporal.Instant
}
PublicationGrantExpectation binds one untrusted grant to the request that produced it and to the caller-selected authority keys and observation.
func (PublicationGrantExpectation) Validate ¶
func (e PublicationGrantExpectation) Validate() error
type PublicationGrantIssuance ¶
type PublicationGrantIssuance struct {
Signer crypto.Signer
Capabilities [release.PublicationObjectCount]objectstore.UploadCapabilityProjection
Payload PublicationGrantPayload
}
PublicationGrantIssuance supplies already-issued provider capabilities and the authority signer. It does not create provider credentials or URLs.
func (PublicationGrantIssuance) Validate ¶
func (i PublicationGrantIssuance) Validate() error
type PublicationGrantPayload ¶
type PublicationGrantPayload struct {
Request RequestCommitment `json:"request_commitment"`
Authorization controlwire.AuthorityNonce `json:"authorization_nonce"`
Commitments [release.PublicationObjectCount]objectstore.UploadCapabilityCommitment `json:"capability_commitments"`
IssuedAt temporal.Instant `json:"issued_at"`
ExpiresAt temporal.Instant `json:"expires_at"`
}
PublicationGrantPayload is the signed authority permission for every exact object in one publication request.
func (PublicationGrantPayload) AttestationDomain ¶
func (PublicationGrantPayload) AttestationDomain() SigningDomain
func (PublicationGrantPayload) MarshalJSON ¶
func (p PublicationGrantPayload) MarshalJSON() ([]byte, error)
func (*PublicationGrantPayload) UnmarshalJSON ¶
func (p *PublicationGrantPayload) UnmarshalJSON(data []byte) error
func (PublicationGrantPayload) Validate ¶
func (p PublicationGrantPayload) Validate() error
func (PublicationGrantPayload) WriteCanonical ¶
func (p PublicationGrantPayload) WriteCanonical(destination io.Writer) error
type PublicationGrantProjection ¶
type PublicationGrantProjection struct {
Capabilities [release.PublicationObjectCount]objectstore.UploadCapabilityProjection
Payload PublicationGrantPayload
Attestation attest.Envelope[SigningDomain]
}
PublicationGrantProjection is the issue-only form and the sole boundary at which an authority emits the upload bearers.
func IssuePublicationGrant ¶
func IssuePublicationGrant(issuance PublicationGrantIssuance) (PublicationGrantProjection, error)
IssuePublicationGrant signs the capability commitments and returns the one issue-only bearer projection.
func (PublicationGrantProjection) MarshalJSON ¶
func (p PublicationGrantProjection) MarshalJSON() ([]byte, error)
func (PublicationGrantProjection) Validate ¶
func (p PublicationGrantProjection) Validate() error
func (PublicationGrantProjection) ValidateJSONProjection ¶ added in v2026.0.96
func (p PublicationGrantProjection) ValidateJSONProjection(encoded []byte, limits core.StrictJSONLimits) error
type PublicationPlanRequest ¶
type PublicationPlanRequest struct {
Sources [release.PublicationObjectCount]PublicationSource
Grant VerifiedPublicationGrant
Manifest release.VerifiedManifest
Policy objectstore.Policy
}
PublicationPlanRequest joins an authenticated grant to the exact verified manifest and its fixed source streams. No source is read during preparation.
func (PublicationPlanRequest) Validate ¶
func (r PublicationPlanRequest) Validate() error
type PublicationRequestDocument ¶
type PublicationRequestDocument struct {
Payload PublicationRequestPayload `json:"payload"`
Attestation attest.Envelope[SigningDomain] `json:"attestation"`
}
PublicationRequestDocument carries the caller signature independently of the nested release-manifest signature.
func IssuePublicationRequest ¶
func IssuePublicationRequest(issuance PublicationRequestIssuance) (PublicationRequestDocument, error)
IssuePublicationRequest signs one exact manifest request.
func (PublicationRequestDocument) MarshalJSON ¶
func (d PublicationRequestDocument) MarshalJSON() ([]byte, error)
func (*PublicationRequestDocument) UnmarshalJSON ¶
func (d *PublicationRequestDocument) UnmarshalJSON(data []byte) error
func (PublicationRequestDocument) Validate ¶
func (d PublicationRequestDocument) Validate() error
type PublicationRequestIssuance ¶
type PublicationRequestIssuance struct {
Signer crypto.Signer
Payload PublicationRequestPayload
}
PublicationRequestIssuance supplies the release-side signing capability.
func (PublicationRequestIssuance) Validate ¶
func (i PublicationRequestIssuance) Validate() error
type PublicationRequestPayload ¶
type PublicationRequestPayload struct {
Build core.BuildIdentity `json:"build"`
Manifest release.ManifestDocument `json:"manifest"`
Nonce controlwire.RequestNonce `json:"request_nonce"`
Revision controlwire.Revision `json:"revision"`
}
PublicationRequestPayload asks an authority to admit one exact signed release manifest for immutable publication.
func (PublicationRequestPayload) AttestationDomain ¶
func (PublicationRequestPayload) AttestationDomain() SigningDomain
func (PublicationRequestPayload) MarshalJSON ¶
func (p PublicationRequestPayload) MarshalJSON() ([]byte, error)
func (*PublicationRequestPayload) UnmarshalJSON ¶
func (p *PublicationRequestPayload) UnmarshalJSON(data []byte) error
func (PublicationRequestPayload) Validate ¶
func (p PublicationRequestPayload) Validate() error
func (PublicationRequestPayload) WriteCanonical ¶
func (p PublicationRequestPayload) WriteCanonical(destination io.Writer) error
type PublicationRequestVerification ¶
type PublicationRequestVerification struct {
ExpectedOffering core.Offering
Document PublicationRequestDocument
RequestKeys attest.TrustedKeys
ManifestKeys attest.TrustedKeys
}
PublicationRequestVerification supplies both caller and manifest trust authorities. Distribution decides neither set.
func (PublicationRequestVerification) Validate ¶
func (v PublicationRequestVerification) Validate() error
type PublicationSource ¶
type PublicationSource struct {
Reader io.Reader
Observer objectstore.ProgressObserver
}
PublicationSource is one exact object stream and optional progress observer.
func (PublicationSource) Validate ¶
func (s PublicationSource) Validate() error
type RequestCommitment ¶
type RequestCommitment struct {
// contains filtered or unexported fields
}
RequestCommitment is the non-secret domain-separated closure of one exact signed-request payload. Domain is carried with the digest so a publication, update, and upgrade request cannot be substituted for one another.
func CommitRequest ¶
func CommitRequest(body attest.CanonicalBody[SigningDomain]) (RequestCommitment, error)
CommitRequest streams one canonical payload into its protocol-specific commitment frame.
func (RequestCommitment) Domain ¶
func (c RequestCommitment) Domain() SigningDomain
Domain returns the signed-request namespace closed by this commitment.
func (RequestCommitment) MarshalJSON ¶
func (c RequestCommitment) MarshalJSON() ([]byte, error)
MarshalJSON emits the canonical domain and digest structure.
func (*RequestCommitment) UnmarshalJSON ¶
func (c *RequestCommitment) UnmarshalJSON(data []byte) error
UnmarshalJSON accepts only the exact closed structure without mutating on refusal.
func (RequestCommitment) Validate ¶
func (c RequestCommitment) Validate() error
Validate rejects an unset domain or all-zero digest.
type SigningDomain ¶
type SigningDomain uint8
SigningDomain is the closed set of distribution signature namespaces.
const ( SigningDomainUnknown SigningDomain = iota SigningDomainPublicationRequestV1 SigningDomainPublicationGrantV1 SigningDomainPublicationCompletionV1 SigningDomainUpdateRequestV1 SigningDomainUpdateResponseV1 SigningDomainUpgradeRequestV1 SigningDomainUpgradeGrantV1 )
func ParseSigningDomain ¶
func ParseSigningDomain(value string) (SigningDomain, error)
func (SigningDomain) IsValid ¶
func (d SigningDomain) IsValid() bool
func (SigningDomain) MarshalJSON ¶
func (d SigningDomain) MarshalJSON() ([]byte, error)
func (SigningDomain) MarshalText ¶
func (d SigningDomain) MarshalText() ([]byte, error)
func (SigningDomain) ParseCanonicalText ¶
func (SigningDomain) ParseCanonicalText(text []byte) (SigningDomain, error)
func (SigningDomain) String ¶
func (d SigningDomain) String() string
func (*SigningDomain) UnmarshalJSON ¶
func (d *SigningDomain) UnmarshalJSON(data []byte) error
func (SigningDomain) Validate ¶
func (d SigningDomain) Validate() error
type UpdateRequestDocument ¶
type UpdateRequestDocument struct {
Payload UpdateRequestPayload `json:"payload"`
Attestation attest.Envelope[SigningDomain] `json:"attestation"`
}
func IssueUpdateRequest ¶
func IssueUpdateRequest(issuance UpdateRequestIssuance) (UpdateRequestDocument, error)
func (UpdateRequestDocument) MarshalJSON ¶
func (d UpdateRequestDocument) MarshalJSON() ([]byte, error)
func (*UpdateRequestDocument) UnmarshalJSON ¶
func (d *UpdateRequestDocument) UnmarshalJSON(data []byte) error
func (UpdateRequestDocument) Validate ¶
func (d UpdateRequestDocument) Validate() error
type UpdateRequestIssuance ¶
type UpdateRequestIssuance struct {
Signer crypto.Signer
Payload UpdateRequestPayload
}
func (UpdateRequestIssuance) Validate ¶
func (i UpdateRequestIssuance) Validate() error
type UpdateRequestPayload ¶
type UpdateRequestPayload struct {
Build core.BuildIdentity `json:"build"`
Nonce controlwire.RequestNonce `json:"request_nonce"`
Revision controlwire.Revision `json:"revision"`
}
UpdateRequestPayload identifies the exact installed build asking for the authority's current signed Latest document.
func (UpdateRequestPayload) AttestationDomain ¶
func (UpdateRequestPayload) AttestationDomain() SigningDomain
func (UpdateRequestPayload) MarshalJSON ¶
func (p UpdateRequestPayload) MarshalJSON() ([]byte, error)
func (*UpdateRequestPayload) UnmarshalJSON ¶
func (p *UpdateRequestPayload) UnmarshalJSON(data []byte) error
func (UpdateRequestPayload) Validate ¶
func (p UpdateRequestPayload) Validate() error
func (UpdateRequestPayload) WriteCanonical ¶
func (p UpdateRequestPayload) WriteCanonical(destination io.Writer) error
type UpdateRequestVerification ¶
type UpdateRequestVerification struct {
Document UpdateRequestDocument
TrustedKeys attest.TrustedKeys
}
func (UpdateRequestVerification) Validate ¶
func (v UpdateRequestVerification) Validate() error
type UpdateResponseDocument ¶
type UpdateResponseDocument struct {
Payload UpdateResponsePayload `json:"payload"`
Attestation attest.Envelope[SigningDomain] `json:"attestation"`
}
func IssueUpdateResponse ¶
func IssueUpdateResponse(issuance UpdateResponseIssuance) (UpdateResponseDocument, error)
func (UpdateResponseDocument) MarshalJSON ¶
func (d UpdateResponseDocument) MarshalJSON() ([]byte, error)
func (*UpdateResponseDocument) UnmarshalJSON ¶
func (d *UpdateResponseDocument) UnmarshalJSON(data []byte) error
func (UpdateResponseDocument) Validate ¶
func (d UpdateResponseDocument) Validate() error
type UpdateResponseIssuance ¶
type UpdateResponseIssuance struct {
Signer crypto.Signer
Payload UpdateResponsePayload
}
func (UpdateResponseIssuance) Validate ¶
func (i UpdateResponseIssuance) Validate() error
type UpdateResponsePayload ¶
type UpdateResponsePayload struct {
Installed release.ManifestDocument `json:"installed"`
Latest release.LatestDocument `json:"latest"`
IssuedAt temporal.Instant `json:"issued_at"`
ExpiresAt temporal.Instant `json:"expires_at"`
Request RequestCommitment `json:"request_commitment"`
}
UpdateResponsePayload binds the authenticated installed manifest and signed Latest document to the exact request and a short response lifetime.
func (UpdateResponsePayload) AttestationDomain ¶
func (UpdateResponsePayload) AttestationDomain() SigningDomain
func (UpdateResponsePayload) MarshalJSON ¶
func (p UpdateResponsePayload) MarshalJSON() ([]byte, error)
func (*UpdateResponsePayload) UnmarshalJSON ¶
func (p *UpdateResponsePayload) UnmarshalJSON(data []byte) error
func (UpdateResponsePayload) Validate ¶
func (p UpdateResponsePayload) Validate() error
func (UpdateResponsePayload) WriteCanonical ¶
func (p UpdateResponsePayload) WriteCanonical(destination io.Writer) error
type UpdateResponseVerification ¶
type UpdateResponseVerification struct {
ExpectedOffering core.Offering
Request UpdateRequestPayload
Document UpdateResponseDocument
ResponseKeys attest.TrustedKeys
LatestKeys attest.TrustedKeys
ManifestKeys attest.TrustedKeys
ObservedAt temporal.Instant
}
UpdateResponseVerification carries each independent trust set explicitly: response authority, Latest authority, and release-manifest authority.
func (UpdateResponseVerification) Validate ¶
func (v UpdateResponseVerification) Validate() error
type UpgradeGrantDocument ¶
type UpgradeGrantDocument struct {
Capability objectstore.DownloadCapability `json:"capability"`
Payload UpgradeGrantPayload `json:"payload"`
Attestation attest.Envelope[SigningDomain] `json:"attestation"`
}
func (*UpgradeGrantDocument) UnmarshalJSON ¶
func (d *UpgradeGrantDocument) UnmarshalJSON(data []byte) error
func (UpgradeGrantDocument) Validate ¶
func (d UpgradeGrantDocument) Validate() error
type UpgradeGrantExpectation ¶
type UpgradeGrantExpectation struct {
Document UpgradeGrantDocument
Request UpgradeRequestPayload
TrustedKeys attest.TrustedKeys
ObservedAt temporal.Instant
}
func (UpgradeGrantExpectation) Validate ¶
func (e UpgradeGrantExpectation) Validate() error
type UpgradeGrantIssuance ¶
type UpgradeGrantIssuance struct {
Signer crypto.Signer
Capability objectstore.DownloadCapabilityProjection
Payload UpgradeGrantPayload
}
func (UpgradeGrantIssuance) Validate ¶
func (i UpgradeGrantIssuance) Validate() error
type UpgradeGrantPayload ¶
type UpgradeGrantPayload struct {
Request RequestCommitment `json:"request_commitment"`
Authorization controlwire.AuthorityNonce `json:"authorization_nonce"`
Capability objectstore.DownloadCapabilityCommitment `json:"capability_commitment"`
IssuedAt temporal.Instant `json:"issued_at"`
ExpiresAt temporal.Instant `json:"expires_at"`
}
UpgradeGrantPayload signs only the non-secret closure of one exact download bearer beside its request and lifetime.
func (UpgradeGrantPayload) AttestationDomain ¶
func (UpgradeGrantPayload) AttestationDomain() SigningDomain
func (UpgradeGrantPayload) MarshalJSON ¶
func (p UpgradeGrantPayload) MarshalJSON() ([]byte, error)
func (*UpgradeGrantPayload) UnmarshalJSON ¶
func (p *UpgradeGrantPayload) UnmarshalJSON(data []byte) error
func (UpgradeGrantPayload) Validate ¶
func (p UpgradeGrantPayload) Validate() error
func (UpgradeGrantPayload) WriteCanonical ¶
func (p UpgradeGrantPayload) WriteCanonical(destination io.Writer) error
type UpgradeGrantProjection ¶
type UpgradeGrantProjection struct {
Capability objectstore.DownloadCapabilityProjection
Payload UpgradeGrantPayload
Attestation attest.Envelope[SigningDomain]
}
func IssueUpgradeGrant ¶
func IssueUpgradeGrant(issuance UpgradeGrantIssuance) (UpgradeGrantProjection, error)
func (UpgradeGrantProjection) MarshalJSON ¶
func (p UpgradeGrantProjection) MarshalJSON() ([]byte, error)
func (UpgradeGrantProjection) Validate ¶
func (p UpgradeGrantProjection) Validate() error
func (UpgradeGrantProjection) ValidateJSONProjection ¶ added in v2026.0.96
func (p UpgradeGrantProjection) ValidateJSONProjection(encoded []byte, limits core.StrictJSONLimits) error
type UpgradeRequestDocument ¶
type UpgradeRequestDocument struct {
Payload UpgradeRequestPayload `json:"payload"`
Attestation attest.Envelope[SigningDomain] `json:"attestation"`
}
func IssueUpgradeRequest ¶
func IssueUpgradeRequest(issuance UpgradeRequestIssuance) (UpgradeRequestDocument, error)
func (UpgradeRequestDocument) MarshalJSON ¶
func (d UpgradeRequestDocument) MarshalJSON() ([]byte, error)
func (*UpgradeRequestDocument) UnmarshalJSON ¶
func (d *UpgradeRequestDocument) UnmarshalJSON(data []byte) error
func (UpgradeRequestDocument) Validate ¶
func (d UpgradeRequestDocument) Validate() error
type UpgradeRequestIssuance ¶
type UpgradeRequestIssuance struct {
Signer crypto.Signer
Payload UpgradeRequestPayload
}
func (UpgradeRequestIssuance) Validate ¶
func (i UpgradeRequestIssuance) Validate() error
type UpgradeRequestPayload ¶
type UpgradeRequestPayload struct {
Available release.AvailableSummary `json:"available"`
Nonce controlwire.RequestNonce `json:"request_nonce"`
Revision controlwire.Revision `json:"revision"`
}
UpgradeRequestPayload asks for one exact candidate artifact already selected from an authenticated Latest document.
func (UpgradeRequestPayload) AttestationDomain ¶
func (UpgradeRequestPayload) AttestationDomain() SigningDomain
func (UpgradeRequestPayload) MarshalJSON ¶
func (p UpgradeRequestPayload) MarshalJSON() ([]byte, error)
func (*UpgradeRequestPayload) UnmarshalJSON ¶
func (p *UpgradeRequestPayload) UnmarshalJSON(data []byte) error
func (UpgradeRequestPayload) Validate ¶
func (p UpgradeRequestPayload) Validate() error
func (UpgradeRequestPayload) WriteCanonical ¶
func (p UpgradeRequestPayload) WriteCanonical(destination io.Writer) error
type UpgradeRequestVerification ¶
type UpgradeRequestVerification struct {
Document UpgradeRequestDocument
TrustedKeys attest.TrustedKeys
}
func (UpgradeRequestVerification) Validate ¶
func (v UpgradeRequestVerification) Validate() error
type UpgradeStageRequest ¶
type UpgradeStageRequest struct {
Client objectstore.Client
Observer objectstore.ProgressObserver
Root *os.Root
Directory core.AbsolutePath
Grant VerifiedUpgradeGrant
Prepared release.PreparedRelease
Policy objectstore.Policy
}
UpgradeStageRequest supplies only the local effect capabilities that cannot cross the wire. The candidate and download bearer remain grant-bound.
func (UpgradeStageRequest) Validate ¶
func (r UpgradeStageRequest) Validate() error
type VerifiedPublicationCompletion ¶
type VerifiedPublicationCompletion struct {
// contains filtered or unexported fields
}
VerifiedPublicationCompletion is the authenticated, fully bound provider evidence set safe for authority persistence and Latest advancement policy.
func VerifyPublicationCompletion ¶
func VerifyPublicationCompletion(expectation PublicationCompletionExpectation) (VerifiedPublicationCompletion, error)
VerifyPublicationCompletion authenticates both the original grant and the completion, then binds every provider fact to the signed manifest.
func (VerifiedPublicationCompletion) Payload ¶
func (v VerifiedPublicationCompletion) Payload() (PublicationCompletionPayload, error)
func (VerifiedPublicationCompletion) Validate ¶
func (v VerifiedPublicationCompletion) Validate() error
type VerifiedPublicationGrant ¶
type VerifiedPublicationGrant struct {
// contains filtered or unexported fields
}
VerifiedPublicationGrant is the authenticated upload-capability set.
func VerifyPublicationGrant ¶
func VerifyPublicationGrant(expectation PublicationGrantExpectation) (VerifiedPublicationGrant, error)
VerifyPublicationGrant authenticates, request-binds, and lifetime-binds the exact bearer set before any source can be read.
func (VerifiedPublicationGrant) Capability ¶
func (v VerifiedPublicationGrant) Capability( role release.PublicationRole, ) (objectstore.UploadCapability, objectstore.UploadCapabilityCommitment, error)
func (VerifiedPublicationGrant) Payload ¶
func (v VerifiedPublicationGrant) Payload() (PublicationGrantPayload, error)
func (VerifiedPublicationGrant) Request ¶
func (v VerifiedPublicationGrant) Request() (PublicationRequestPayload, error)
func (VerifiedPublicationGrant) Validate ¶
func (v VerifiedPublicationGrant) Validate() error
type VerifiedPublicationRequest ¶
type VerifiedPublicationRequest struct {
// contains filtered or unexported fields
}
VerifiedPublicationRequest proves both signatures and their exact offering.
func VerifyPublicationRequest ¶
func VerifyPublicationRequest(verification PublicationRequestVerification) (VerifiedPublicationRequest, error)
VerifyPublicationRequest authenticates the request and its nested release manifest before returning either fact.
func (VerifiedPublicationRequest) Manifest ¶
func (v VerifiedPublicationRequest) Manifest() (release.VerifiedManifest, error)
func (VerifiedPublicationRequest) Payload ¶
func (v VerifiedPublicationRequest) Payload() (PublicationRequestPayload, error)
func (VerifiedPublicationRequest) Validate ¶
func (v VerifiedPublicationRequest) Validate() error
type VerifiedUpdateRequest ¶
type VerifiedUpdateRequest struct {
// contains filtered or unexported fields
}
func VerifyUpdateRequest ¶
func VerifyUpdateRequest(verification UpdateRequestVerification) (VerifiedUpdateRequest, error)
func (VerifiedUpdateRequest) Payload ¶
func (v VerifiedUpdateRequest) Payload() (UpdateRequestPayload, error)
func (VerifiedUpdateRequest) Validate ¶
func (v VerifiedUpdateRequest) Validate() error
type VerifiedUpdateResponse ¶
type VerifiedUpdateResponse struct {
// contains filtered or unexported fields
}
VerifiedUpdateResponse contains both authenticated proofs consumed by Release assessment and selection.
func VerifyUpdateResponse ¶
func VerifyUpdateResponse(verification UpdateResponseVerification) (VerifiedUpdateResponse, error)
func (VerifiedUpdateResponse) Installed ¶ added in v2026.0.84
func (v VerifiedUpdateResponse) Installed() (release.VerifiedManifest, error)
Installed returns the authenticated manifest containing the exact build named by the request. It supplies Release evaluation's installed proof.
func (VerifiedUpdateResponse) Latest ¶
func (v VerifiedUpdateResponse) Latest() (release.VerifiedLatest, error)
func (VerifiedUpdateResponse) Validate ¶
func (v VerifiedUpdateResponse) Validate() error
type VerifiedUpgradeGrant ¶
type VerifiedUpgradeGrant struct {
// contains filtered or unexported fields
}
func VerifyUpgradeGrant ¶
func VerifyUpgradeGrant(expectation UpgradeGrantExpectation) (VerifiedUpgradeGrant, error)
func (VerifiedUpgradeGrant) Request ¶
func (v VerifiedUpgradeGrant) Request() (UpgradeRequestPayload, error)
func (VerifiedUpgradeGrant) Validate ¶
func (v VerifiedUpgradeGrant) Validate() error
type VerifiedUpgradeRequest ¶
type VerifiedUpgradeRequest struct {
// contains filtered or unexported fields
}
func VerifyUpgradeRequest ¶
func VerifyUpgradeRequest(verification UpgradeRequestVerification) (VerifiedUpgradeRequest, error)
func (VerifiedUpgradeRequest) Payload ¶
func (v VerifiedUpgradeRequest) Payload() (UpgradeRequestPayload, error)
func (VerifiedUpgradeRequest) Validate ¶
func (v VerifiedUpgradeRequest) Validate() error