Documentation
¶
Overview ¶
Package instanceupdate owns authenticated release availability. It does not install releases or claim that a running installation is update-ready.
Index ¶
Constants ¶
const ( ManifestName = "UPDATE-MANIFEST.json" NotesName = "RELEASE-NOTES.md" ChecksumsName = "SHA256SUMS" BundleName = "SHA256SUMS.sigstore.json" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Compatibility ¶
type Compatibility struct {
Schema Range `json:"sourceSchema"`
Layout Range `json:"sourceLayout"`
SchemaResult int `json:"schemaResult"`
LayoutResult int `json:"layoutResult"`
CLIProtocol int `json:"cliProtocol"`
DaemonWorkerProtocol int `json:"daemonWorkerProtocol"`
WorkerProtocol Range `json:"workerProtocol"`
}
type Evidence ¶
type Evidence struct {
ManifestSHA256 string `json:"manifestSHA256"`
ChecksumsSHA256 string `json:"checksumsSHA256"`
Signer string `json:"signer"`
Issuer string `json:"issuer"`
SourceCommit string `json:"sourceCommit"`
}
Evidence retains what was authenticated, separate from installed provenance.
type Manifest ¶
type Manifest struct {
Format int `json:"format"`
Version string `json:"version"`
Commit string `json:"commit"`
Notes Artifact `json:"notes"`
Archives map[string]Artifact `json:"archives"`
Images map[string]Image `json:"images"`
Compatibility Compatibility `json:"compatibility"`
}
Manifest binds every artifact to one authenticated release. It names what a notification shows; nothing reads it to install a release.
type Options ¶
type Options struct {
DataDir string
Build string
Platform string
Channel string
Authority access.Authorizer
Now func() time.Time
Transport http.RoundTripper
}
Options binds one installation's notification owner. Transport injection is assembly input, not a destination or credential accepted from an HTTP caller.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func (*Service) Check ¶
Check is an explicit administrator request. Concurrent or repeated requests share the owner's cooldown rather than creating unbounded public fetches.
type Status ¶
type Status struct {
Build string `json:"build"`
Platform string `json:"platform"`
Channel string `json:"channel"`
State string `json:"state"`
LastAttempt *time.Time `json:"lastAttempt,omitempty"`
LastSuccess *time.Time `json:"lastSuccess,omitempty"`
Candidate *Candidate `json:"candidate,omitempty"`
ReasonCode string `json:"reasonCode,omitempty"`
Reason string `json:"reason,omitempty"`
}