Categorygithub.com/quay/clair/v3
modulepackage
3.0.0-pre1
Repository: https://github.com/quay/clair.git
Documentation: pkg.go.dev

# README

Clair

Build Status Docker Repository on Quay Go Report Card GoDoc IRC Channel

Note: The master branch may be in an unstable or even broken state during development. Please use releases instead of the master branch in order to get stable binaries.

Clair Logo

Clair is an open source project for the static analysis of vulnerabilities in application containers (currently including appc and docker).

  1. In regular intervals, Clair ingests vulnerability metadata from a configured set of sources and stores it in the database.
  2. Clients use the Clair API to index their container images; this creates a list of features present in the image and stores them in the database.
  3. Clients use the Clair API to query the database for vulnerabilities of a particular image; correlating vulnerabilities and features is done for each request, avoiding the need to rescan images.
  4. When updates to vulnerability metadata occur, a notification can be sent to alert systems that a change has occurred.

Our goal is to enable a more transparent view of the security of container-based infrastructure. Thus, the project was named Clair after the French term which translates to clear, bright, transparent.

Getting Started

Community

Contributing

See CONTRIBUTING for details on submitting patches and the contribution workflow.

License

Clair is under the Apache 2.0 license. See the LICENSE file for details.

# Packages

No description provided by the author
No description provided by the author
Package database defines the Clair's models and a common interface for database implementations.
No description provided by the author
No description provided by the author

# Functions

AnalyzeLayer retrieves the clair layer with all extracted features and namespaces.
EnabledDetectors retrieves a list of all detectors installed in the Clair instance.
GetLastUpdateTime retrieves the latest successful time of update and whether or not it's the first update.
IsAncestryCached checks if the ancestry is already cached in the database with the current set of detectors.
NewAncestryBuilder creates a new ancestry builder.
RegisterConfiguredDetectors populates the database with registered detectors.
RunNotifier begins a process that checks for new notifications that should be sent out to third parties.
RunUpdater begins a process that updates the vulnerability database at regular intervals.
SaveAncestry saves an ancestry to the datastore.

# Variables

EnabledUpdaters contains all updaters to be used for update.
ExtractBlobError represents an analyzer error caused by failure of extracting a layer blob by imagefmt.
FeatureDetectorError is an error caused by failure of feature listing by featurefmt.
NamespaceDetectorError is an error caused by failure of namespace detection by featurens.
RetrieveBlobError represents an analyze error caused by failure of downloading or extracting layer blobs.
StorageError represents an analyze error caused by the storage.

# Structs

AncestryBuilder builds an Ancestry, which contains an ordered list of layers and their features.
UpdaterConfig is the configuration for the Updater service.

# Type aliases

AnalyzeError represents an failure when analyzing layer or constructing ancestry.