Documentation ¶
Overview ¶
checkpoint is a package for checking version information and alerts for a Solo.io product.
Index ¶
Constants ¶
View Source
const ( DefaultCheckpointHost = "checkpoint-api.solo.io" DefaultUserAgent = "solo.io/go-checkpoint" DefaultScheme = "https" VersionCheckInterval = 24 * time.Hour PercentStagger = 50 )
Variables ¶
This section is empty.
Functions ¶
func NewUsageClient ¶
func NewUsageClient() *usageClient
Types ¶
type CheckAlert ¶
CheckAlert is a single alert message from a check request.
These never have to be manually constructed, and are typically populated into a CheckResponse as a result of the check request.
type CheckParams ¶
type CheckParams struct { // Product and version are used to lookup the correct product and // alerts for the proper version. The version is also used to perform // a version check. Type corresponds to the checkpoint package version. Product string Version string Type string // Arch and OS are used to filter alerts potentially only to things // affecting a specific os/arch combination. If these aren't specified, // they'll be automatically filled in. Arch string OS string // Signature is some random signature that should be stored and used // as a cookie-like value. This ensures that alerts aren't repeated. // If the signature is changed, repeat alerts may be sent down. The // signature should NOT be anything identifiable to a user (such as // a MAC address). It should be random. // // If SignatureFile is given, then the signature will be read from this // file. If the file doesn't exist, then a random signature will // automatically be generated and stored here. SignatureFile will be // ignored if Signature is given. Signature string SignatureFile string // CacheFile, if specified, will cache the result of a check. The // duration of the cache is specified by CacheDuration, and defaults // to 48 hours if not specified. If the CacheFile is newer than the // CacheDuration, than the check will short-circuit and use those // results. // // If the CacheFile directory doesn't exist, it will be created with // permissions 0755. CacheFile string CacheDuration time.Duration // Force, if true, will force the check even if CHECKPOINT_DISABLE // is set. Within Solo.io products, this is ONLY USED when the user // specifically requests it. This is never automatically done without // the user's consent. Force bool }
CheckParams are the parameters for configuring a check request.
type CheckResponse ¶
type CheckResponse struct { Product string CurrentVersion string `json:"current_version"` CurrentReleaseDate int `json:"current_release_date"` CurrentDownloadURL string `json:"current_download_url"` CurrentChangelogURL string `json:"current_changelog_url"` ProjectWebsite string `json:"project_website"` Outdated bool `json:"outdated"` Alerts []*CheckAlert }
CheckResponse is the response for a check request.
type ReportParams ¶
type ReportParams struct { // Signature is some random signature that should be stored and used // as a cookie-like value. This ensures that alerts aren't repeated. // If the signature is changed, repeat alerts may be sent down. The // signature should NOT be anything identifiable to a user (such as // a MAC address). It should be random. // // If SignatureFile is given, then the signature will be read from this // file. If the file doesn't exist, then a random signature will // automatically be generated and stored here. SignatureFile will be // ignored if Signature is given. Signature string `json:"signature"` SignatureFile string `json:"-"` StartTime time.Time `json:"start_time"` EndTime time.Time `json:"end_time"` Arch string `json:"arch"` OS string `json:"os"` Payload interface{} `json:"payload,omitempty"` Product string `json:"product"` Type string `json:"type"` RunID string `json:"run_id"` SchemaVersion string `json:"schema_version"` Version string `json:"version"` }
ReportParams are the parameters for configuring a telemetry report.
type UsageClient ¶
type UsageClient interface {
Start(name, version string)
}
A simple interface for interacting with the checkpoint server, for reporting and version checking
Click to show internal directories.
Click to hide internal directories.