types

package
v0.0.35 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Success string = "success"
	Failed  string = "failed"
)

Variables

View Source
var NamespaceMapping = map[string]string{
	"oracle": "oraclelinux",
	"ol":     "oraclelinux",
	"amazon": "amazonlinux",
	"amzn":   "amazonlinux",
	"rhel":   "redhatlinux",
}
View Source
var PackageTypeMapping = map[string]string{
	"apk":            "alpine",
	"debian":         "deb",
	"ubuntu":         "deb",
	"node-pkg":       "npm",
	"java":           "maven",
	"gobinary":       "golang",
	"go":             "golang",
	"go-module":      "golang",
	"java-archive":   "maven",
	"jenkins-plugin": "maven",
	"python":         "pypi",
	"python-pkg":     "pypi",
	"jar":            "maven",
	"gemspec":        "gem",
	"centos":         "rpm",
	"oracle":         "rpm",
	"ol":             "rpm",
	"amzn":           "rpm",
	"amazon":         "rpm",
	"redhat":         "rpm",
	"photon":         "rpm",
	"sles":           "rpm",
	"rhel":           "rpm",
	"pip":            "pypi",
	"rubygems":       "gem",
	"rust":           "cargo",
	"crates.io":      "cargo",
	"packagist":      "composer",
}

Functions

func ImageTags added in v0.0.10

func ImageTags(image *Image) []string

func PackageToPackageUrl added in v0.0.7

func PackageToPackageUrl(pkp Package) *packageurl.PackageURL

func SupportedTag added in v0.0.8

func SupportedTag(image *Image) string

func Tags added in v0.0.8

func Tags(image *Image) []string

func ToAdvisoryUrl

func ToAdvisoryUrl(pkg Package) string

func ToPackageUrl

func ToPackageUrl(url string) (packageurl.PackageURL, error)

Types

type Advisory

type Advisory struct {
	Source      string      `edn:"vulnerability/source" json:"source"`
	SourceId    string      `edn:"vulnerability/source-id" json:"source_id"`
	References  []Reference `edn:"vulnerability/references" json:"references"`
	Description string      `edn:"vulnerability/description" json:"description,omitempty"`
	Cwes        []Cwe       `edn:"vulnerability/cwes" json:"cwes,omitempty"`
	Urls        []Url       `edn:"vulnerability/urls" json:"urls,omitempty"`
}

type BaseImage added in v0.0.11

type BaseImage struct {
	CreatedAt  string `graphql:"createdAt" json:"created_at,omitempty"`
	Digest     string `graphql:"digest" json:"digest,omitempty"`
	Repository struct {
		Badge         string   `graphql:"badge" json:"badge,omitempty"`
		Host          string   `graphql:"hostName" json:"host,omitempty"`
		Repo          string   `graphql:"repoName" json:"repo,omitempty"`
		SupportedTags []string `graphql:"supportedTags" json:"supported_tags,omitempty"`
		PreferredTags []string `graphql:"preferredTags" json:"preferred_tags,omitempty"`
	} `graphql:"repository" json:"repository"`
	Tags []struct {
		Current   bool   `graphql:"current" json:"current"`
		Name      string `graphql:"name" json:"name,omitempty"`
		Supported bool   `graphql:"supported" json:"supported"`
	} `graphql:"tags" json:"tags,omitempty"`
	DockerFile struct {
		Commit struct {
			Repository struct {
				Org  string `graphql:"orgName" json:"org,omitempty"`
				Repo string `graphql:"repoName" json:"repo,omitempty"`
			} `graphql:"repository" json:"repository,omitempty"`
			Sha string `graphql:"sha" json:"sha,omitempty"`
		} `json:"commit,omitempty"`
		Path string `graphql:"path" json:"path,omitempty"`
	} `graphql:"dockerFile" json:"docker_file,omitempty"`
	PackageCount        int `graphql:"packageCount" json:"package_count,omitempty"`
	VulnerabilityReport struct {
		Critical    int `graphql:"critical" json:"critical,omitempty"`
		High        int `graphql:"high" json:"high,omitempty"`
		Medium      int `graphql:"medium" json:"medium,omitempty"`
		Low         int `graphql:"low" json:"low,omitempty"`
		Unspecified int `graphql:"unspecified" json:"unspecified,omitempty"`
		Total       int `graphql:"total" json:"total,omitempty"`
	} `graphql:"vulnerabilityReport" json:"vulnerability_report"`
}

type BaseImageMatch added in v0.0.17

type BaseImageMatch struct {
	DiffIds []string    `graphql:"matches" json:"diff_ids,omitempty"`
	Images  []BaseImage `graphql:"images" json:"images,omitempty"`
}

type BaseImagesByDiffIdsQuery added in v0.0.11

type BaseImagesByDiffIdsQuery struct {
	ImagesByDiffIds []BaseImageMatch `graphql:"imagesByDiffIds(context: {}, diffIds: $diffIds)"`
}

type BaseImagesResult added in v0.0.11

type BaseImagesResult struct {
	BaseImages []BaseImage
	Status     string
	Error      error
}

type Cve

type Cve struct {
	Purl            string    `edn:"purl" json:"purl"`
	Source          string    `edn:"source" json:"source"`
	SourceId        string    `edn:"source-id" json:"source_id"`
	VulnerableRange string    `edn:"vulnerable-range" json:"vulnerable_range"`
	AdvisoryUrl     string    `edn:"url" json:"-"`
	FixedBy         string    `edn:"fixed-by" json:"fixed_by,omitempty"`
	Advisory        *Advisory `edn:"v" json:"vendor_advisory,omitempty"`
	Cve             *Advisory `edn:"cve" json:"nist_cve,omitempty"`
}

type Cwe

type Cwe struct {
	SourceId string `edn:"vulnerability.cwe/source-id" json:"source_id"`
	Name     string `edn:"vulnerability.cwe/name" json:"name,omitempty"`
}

type Descriptor

type Descriptor struct {
	Name        string `json:"name"`
	Version     string `json:"version"`
	SbomVersion string `json:"sbom_version"`
}

type Distro

type Distro struct {
	OsName    string `json:"os_name,omitempty"`
	OsVersion string `json:"os_version,omitempty"`
	OsDistro  string `json:"os_distro,omitempty"`
}

type Image added in v0.0.8

type Image struct {
	TeamId    string    `edn:"atomist/team-id"`
	Digest    string    `edn:"docker.image/digest"`
	CreatedAt time.Time `edn:"docker.image/created-at"`
	Tags      []string  `edn:"docker.image/tags"`
	Tag       []struct {
		Name string `edn:"docker.tag/name"`
	} `edn:"docker.image/tag"`
	ManifestList []ManifestList `edn:"docker.image/manifest-list"`
	Repository   Repository     `edn:"docker.image/repository"`
	File         struct {
		Path string `edn:"git.file/path"`
	} `edn:"docker.image/file"`
	Commit struct {
		Sha  string `edn:"git.commit/sha"`
		Repo struct {
			Name string `edn:"git.repo/name"`
			Org  struct {
				Name string `edn:"git.org/name"`
			} `edn:"git.repo/org"`
		} `edn:"git.commit/repo"`
	} `edn:"docker.image/commit"`
	Report []Report `edn:"vulnerability.report/report"`
}

type ImageByDigestQuery added in v0.0.17

type ImageByDigestQuery struct {
	ImageDetailsByDigest BaseImage `` /* 129-byte string literal not displayed */
}

type ImageSource

type ImageSource struct {
	Name        string         `json:"name"`
	Digest      string         `json:"digest"`
	Tags        *[]string      `json:"tags,omitempty"`
	Manifest    *v1.Manifest   `json:"manifest,omitempty"`
	Config      *v1.ConfigFile `json:"config,omitempty"`
	RawManifest string         `json:"raw_manifest"`
	RawConfig   string         `json:"raw_config"`
	Distro      Distro         `json:"distro"`
	Platform    Platform       `json:"platform"`
	Size        int64          `json:"size"`
	Details     *BaseImage     `json:"details,omitempty"`
}

type IndexImage added in v0.0.8

type IndexImage struct {
	Digest    string    `json:"digest"`
	CreatedAt time.Time `json:"createdAt"`
	Platform  struct {
		Os      string `json:"os"`
		Arch    string `json:"arch"`
		Variant string `json:"variant"`
	} `json:"platform"`
	Layers []struct {
		Digest       string    `json:"digest"`
		Size         int       `json:"size"`
		LastModified time.Time `json:"lastModified"`
	} `json:"layers"`
	DigestChainId string `json:"digestChainId"`
	DiffIdChainId string `json:"diffIdChainId"`
}

type IndexManifestList added in v0.0.8

type IndexManifestList struct {
	Name   string       `json:"name"`
	Tags   []string     `json:"tags"`
	Digest string       `json:"digest"`
	Images []IndexImage `json:"images"`
}

type IndexResult

type IndexResult struct {
	Name     string
	Packages []Package
	Secrets  []Secret
	Status   string
	Error    error
	Distro   Distro
}

type LayerMapping

type LayerMapping struct {
	ByDiffId        map[string]string
	ByDigest        map[string]string
	OrdinalByDiffId map[string]int
	DiffIdByOrdinal map[int]string
	DigestByOrdinal map[int]string
}

type Location

type Location struct {
	Path    string `json:"path,omitempty"`
	Ordinal int    `json:"ordinal,omitempty"`
	Digest  string `json:"digest,omitempty"`
	DiffId  string `json:"diff_id,omitempty"`
}

type ManifestList added in v0.0.8

type ManifestList struct {
	Digest string `edn:"docker.manifest-list/digest"`
	Tags   []struct {
		Name string `edn:"docker.tag/name"`
	} `edn:"docker.manifest-list/tag"`
}

type Package

type Package struct {
	Type          string     `json:"type"`
	Namespace     string     `json:"namespace,omitempty"`
	Name          string     `json:"name"`
	Version       string     `json:"version"`
	Purl          string     `json:"purl"`
	Author        string     `json:"author,omitempty"`
	Description   string     `json:"description,omitempty"`
	Licenses      []string   `json:"licenses,omitempty"`
	Url           string     `json:"url,omitempty"`
	Size          int        `json:"size,omitempty"`
	InstalledSize int        `json:"installed_size,omitempty"`
	Locations     []Location `json:"locations"`
	Files         []Location `json:"files,omitempty"`
	Parent        string     `json:"parent,omitempty"`
}

func FilterGenericPackages added in v0.0.35

func FilterGenericPackages(packages []Package) []Package

func MergePackages

func MergePackages(results ...IndexResult) []Package

func NormalizePackages

func NormalizePackages(pkgs []Package) ([]Package, error)

type Platform

type Platform struct {
	Os           string `json:"os"`
	Architecture string `json:"architecture"`
	Variant      string `json:"variant,omitempty"`
}

type Reference

type Reference struct {
	Source string  `edn:"vulnerability.reference/source" json:"source"`
	Scores []Score `edn:"vulnerability.reference/scores" json:"scores"`
}

type Report added in v0.0.8

type Report struct {
	Total       int64 `edn:"vulnerability.report/total"`
	Critical    int64 `edn:"vulnerability.report/critical"`
	High        int64 `edn:"vulnerability.report/high"`
	Medium      int64 `edn:"vulnerability.report/medium"`
	Low         int64 `edn:"vulnerability.report/low"`
	Unspecified int64 `edn:"vulnerability.report/unspecified"`
}

type Repository added in v0.0.8

type Repository struct {
	Badge         string   `edn:"docker.repository/badge"`
	Host          string   `edn:"docker.repository/host"`
	Name          string   `edn:"docker.repository/name"`
	SupportedTags []string `edn:"docker.repository/supported-tags"`
}

type Sbom

type Sbom struct {
	Source          Source                  `json:"source"`
	Artifacts       []Package               `json:"artifacts"`
	Vulnerabilities []VulnerabilitiesByPurl `json:"vulnerabilities,omitempty"`
	Secrets         []Secret                `json:"secrets,omitempty"`
	Descriptor      Descriptor              `json:"descriptor"`
}

type Score

type Score struct {
	Type  string `edn:"vulnerability.reference.score/type" json:"type"`
	Value string `edn:"vulnerability.reference.score/value" json:"value"`
}

type Secret added in v0.0.25

type Secret struct {
	Source   SecretSource    `json:"source"`
	Findings []SecretFinding `json:"findings"`
}

type SecretFinding added in v0.0.25

type SecretFinding struct {
	RuleID    string `json:"rule_id"`
	Category  string `json:"category"`
	Title     string `json:"title"`
	Severity  string `json:"severity"`
	StartLine int    `json:"start_line,omitempty"`
	EndLine   int    `json:"end_line,omitempty"`
	Match     string `json:"match"`
}

type SecretSource added in v0.0.25

type SecretSource struct {
	Type     string    `json:"type"`
	Location *Location `json:"location,omitempty"`
}

type Source

type Source struct {
	Type       string           `json:"type"`
	Image      ImageSource      `json:"image"`
	BaseImages []BaseImageMatch `json:"base_images,omitempty"`
}

type Url

type Url struct {
	Name  string `edn:"vulnerability.url/name" json:"name"`
	Value string `edn:"vulnerability.url/value" json:"value,omitempty"`
}

type VulnerabilitiesByPurl added in v0.0.20

type VulnerabilitiesByPurl struct {
	Purl            string          `graphql:"purl" json:"purl,omitempty"`
	Vulnerabilities []Vulnerability `graphql:"vulnerabilities" json:"vulnerabilities,omitempty"`
}

type VulnerabilitiesByPurls added in v0.0.20

type VulnerabilitiesByPurls struct {
	VulnerabilitiesByPackage []VulnerabilitiesByPurl `graphql:"vulnerabilitiesByPackage(context: {}, packageUrls: $purls)"`
}

type Vulnerability added in v0.0.20

type Vulnerability struct {
	Source          string `graphql:"source" json:"source,omitempty"`
	SourceId        string `graphql:"sourceId" json:"source_id,omitempty"`
	Description     string `graphql:"description" json:"description,omitempty"`
	VulnerableRange string `graphql:"vulnerableRange" json:"vulnerable_range,omitempty"`
	FixedBy         string `graphql:"fixedBy" json:"fixed_by,omitempty"`
	Url             string `graphql:"url" json:"url,omitempty"`
	Cvss            struct {
		Score    float32 `graphql:"score" json:"score,omitempty"`
		Severity string  `graphql:"severity" json:"severity,omitempty"`
		Vector   string  `graphql:"vector" json:"vector,omitempty"`
		Version  string  `graphql:"version" json:"version,omitempty"`
	} `graphql:"cvss" json:"cvss,omitempty"`
	Cwes []struct {
		CweId string `graphql:"cweId" json:"cwe_id,omitempty"`
		Name  string `graphql:"description" json:"name,omitempty"`
	} `graphql:"cwes" json:"cwes,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL