distribution

package
v2026.0.153 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2026 License: MPL-2.0 Imports: 14 Imported by: 0

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

View Source
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"
)
View Source
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

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 (PublicationCompletionProjection) MarshalJSON

func (p PublicationCompletionProjection) MarshalJSON() ([]byte, error)

func (PublicationCompletionProjection) Validate

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

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

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 (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) Payload

func (VerifiedPublicationGrant) Request

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 (VerifiedPublicationRequest) Payload

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 (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

Installed returns the authenticated manifest containing the exact build named by the request. It supplies Release evaluation's installed proof.

func (VerifiedUpdateResponse) Latest

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 (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 (VerifiedUpgradeRequest) Validate

func (v VerifiedUpgradeRequest) Validate() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL