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 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) }
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 MatchConstraint // see MatchConstraint type def for more info. Matchers []driver.MatchConstraint // Debug asks the database layer to log exta information Debug bool // VersionFiltering enables filtering based on the normalized versions in // the database. VersionFiltering bool }
GetOpts provides instructions on how to match your packages to vulnerabilities.
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) // 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 packages array // this maybe a one to many relationship. each package is assumed to have an ID. // a map of Package.ID => Vulnerabilities is returned. Get(ctx context.Context, records []*claircore.IndexRecord, opts GetOpts) (map[string][]*claircore.Vulnerability, error) }
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. |
Click to show internal directories.
Click to hide internal directories.