Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Enrichment ¶
type Enrichment interface {
GetEnrichment(ctx context.Context, kind string, tags []string) ([]driver.EnrichmentRecord, error)
}
Enrichment is an interface for querying enrichments from the store.
type EnrichmentIter ¶ added in v1.5.28
type EnrichmentIter Iter[*driver.EnrichmentRecord]
EnrichmentIter is an Iter of enrichment records.
type EnrichmentUpdater ¶
type EnrichmentUpdater interface { // UpdateEnrichments creates a new EnrichmentUpdateOperation, inserts the provided // EnrichmentRecord(s), and ensures enrichments from previous updates are not // queries by clients. UpdateEnrichments(ctx context.Context, kind string, fingerprint driver.Fingerprint, enrichments []driver.EnrichmentRecord) (uuid.UUID, error) // UpdateEnrichmentsIter performs the same operation as UpdateEnrichments, but // accepting an iterator function. UpdateEnrichmentsIter(ctx context.Context, kind string, fingerprint driver.Fingerprint, enIter EnrichmentIter) (uuid.UUID, error) }
EnrichmentUpdater is an interface exporting the necessary methods for storing and querying Enrichments.
type GetOpts ¶
type GetOpts struct { // Matchers tells the Get method to limit the returned vulnerabilities by // the provided [driver.MatchConstraint]s. Matchers []driver.MatchConstraint // Debug asks the database layer to log extra information. // // Deprecated: This does nothing. Debug bool // VersionFiltering enables filtering based on the normalized versions in // the database. VersionFiltering bool }
GetOpts provides instructions on how to match packages to vulnerabilities.
type Iter ¶ added in v1.5.28
Iter is an iterator function that accepts a callback 'yield' to handle each iterator item. The consumer can signal the iterator to break or retry by returning an error. The iterator itself returns an error if the iteration cannot continue or was interrupted unexpectedly.
type MatcherStore ¶
type MatcherStore interface { Updater Vulnerability Enrichment }
MatcherStore aggregates all interface types
type Updater ¶
type Updater interface { EnrichmentUpdater // UpdateVulnerabilities creates a new UpdateOperation, inserts the provided // vulnerabilities, and ensures vulnerabilities from previous updates are // not queried by clients. UpdateVulnerabilities(ctx context.Context, updater string, fingerprint driver.Fingerprint, vulns []*claircore.Vulnerability) (uuid.UUID, error) // UpdateVulnerabilitiesIter performs the same operation as // UpdateVulnerabilities, but accepting an iterator function. UpdateVulnerabilitiesIter(ctx context.Context, updater string, fingerprint driver.Fingerprint, vulnIter VulnerabilityIter) (uuid.UUID, error) // DeltaUpdateVulnerabilities creates a new UpdateOperation consisting of existing // vulnerabilities and new vulnerabilities. It also takes an array of deleted // vulnerability names which should no longer be available to query. DeltaUpdateVulnerabilities(ctx context.Context, updater string, fingerprint driver.Fingerprint, vulns []*claircore.Vulnerability, deletedVulns []string) (uuid.UUID, error) // GetUpdateOperations returns a list of UpdateOperations in date descending // order for the given updaters. // // The returned map is keyed by Updater implementation's unique names. // // If no updaters are specified, all UpdateOperations are returned. GetUpdateOperations(context.Context, driver.UpdateKind, ...string) (map[string][]driver.UpdateOperation, error) // GetLatestUpdateRefs reports the latest update reference for every known // updater. GetLatestUpdateRefs(context.Context, driver.UpdateKind) (map[string][]driver.UpdateOperation, error) // GetLatestUpdateRef reports the latest update reference of any known // updater. GetLatestUpdateRef(context.Context, driver.UpdateKind) (uuid.UUID, error) // DeleteUpdateOperations removes an UpdateOperation. // A call to GC must be run after this to garbage collect vulnerabilities associated // with the UpdateOperation. // // The number of UpdateOperations deleted is returned. DeleteUpdateOperations(context.Context, ...uuid.UUID) (int64, error) // GetUpdateOperationDiff reports the UpdateDiff of the two referenced // Operations. // // In diff(1) terms, this is like // // diff prev cur // GetUpdateDiff(ctx context.Context, prev, cur uuid.UUID) (*driver.UpdateDiff, error) // GC will delete any update operations for an updater which exceeds the provided keep // value. // // Implementations may throttle the GC process for datastore efficiency reasons. // // The returned int64 value indicates the remaining number of update operations needing GC. // Running this method till the returned value is 0 accomplishes a full GC of the vulnstore. GC(ctx context.Context, keep int) (int64, error) // Initialized reports whether the vulnstore contains vulnerabilities. Initialized(context.Context) (bool, error) // RecordUpdaterStatus records that an updater is up to date with vulnerabilities at this time RecordUpdaterStatus(ctx context.Context, updaterName string, updateTime time.Time, fingerprint driver.Fingerprint, updaterError error) error // RecordUpdaterSetStatus records that all updaters from an updater set are up to date with vulnerabilities at this time RecordUpdaterSetStatus(ctx context.Context, updaterSet string, updateTime time.Time) error }
Updater is an interface exporting the necessary methods for updating a vulnerability database.
type Vulnerability ¶
type Vulnerability interface { // Get finds the vulnerabilities which match each package provided in the // [IndexRecord]s. This may be a one-to-many relationship. A map of Package // ID to Vulnerabilities is returned. Get(ctx context.Context, records []*claircore.IndexRecord, opts GetOpts) (map[string][]*claircore.Vulnerability, error) }
Vulnerability is the interface for querying stored Vulnerabilities.
type VulnerabilityIter ¶ added in v1.5.28
type VulnerabilityIter Iter[*claircore.Vulnerability]
VulnerabilityIter is an Iter of vulnerabilities.
Directories ¶
Path | Synopsis |
---|---|
Package postgres implements the indexer store interface for a PostgreSQL database.
|
Package postgres implements the indexer store interface for a PostgreSQL database. |