Documentation
¶
Index ¶
- Constants
- Variables
- func ToAdvisoryUrl(pkg Package) string
- func UploadSbom(sb *Sbom, img *v1.Image, workspace string, apikey string) error
- type Advisory
- type BlobEntity
- type Cve
- type Cwe
- type DependencyEntity
- type Descriptor
- type Distro
- type EnvironmentVariableEntity
- type FileEntity
- type ImageEntity
- type ImageSource
- type IndexResult
- type LabelEntity
- type LayerEntity
- type LayerMapping
- type Location
- type Package
- type PackageEntity
- type Platform
- type PlatformEntity
- type Reference
- type RepositoryEntity
- type Sbom
- type Score
- type Source
- type TagEntity
- type Url
Constants ¶
View Source
const ( Success string = "success" Failed string = "failed" )
View Source
const ( Indexing edn.Keyword = "sbom.state/INDEXING" Indexed edn.Keyword = "sbom.state/INDEXED" )
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 ToAdvisoryUrl ¶
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 BlobEntity ¶
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 DependencyEntity ¶
type DependencyEntity struct {
skill.Entity `entity-type:"package/dependency"`
Scopes []string `edn:"package.dependency/scopes"`
Parent ImageEntity `edn:"package.dependency/parent"`
Package PackageEntity `edn:"package.dependency/package"`
Files []FileEntity `edn:"package.dependency/files"`
}
type Descriptor ¶
type FileEntity ¶
type ImageEntity ¶
type ImageEntity struct {
skill.Entity `entity-type:"docker/image"`
Digest string `edn:"docker.image/digest"`
CreatedAt *time.Time `edn:"docker.image/created-at,omitempty"`
Repository *RepositoryEntity `edn:"docker.image/repository,omitempty"`
Repositories *[]RepositoryEntity `edn:"docker.image/repositories,omitempty"`
Tags *skill.ManyRef `edn:"docker.image/tags,omitempty"`
Labels *[]LabelEntity `edn:"docker.image/labels,omitempty"`
Ports *[][2]string `edn:"docker.image/ports,omitempty"`
Env *[][2]string `edn:"docker.image/env,omitempty"`
EnvironmentVariables *[]EnvironmentVariableEntity `edn:"docker.image/environment-variables,omitempty"`
Layers *[]LayerEntity `edn:"docker.image/layers,omitempty"`
BlobDigest string `edn:"docker.image/blob-digest,omitempty"`
DiffChainId string `edn:"docker.image/diff-chain-id,omitempty"`
Sha string `edn:"docker.image/sha,omitempty"`
SbomState edn.Keyword `edn:"sbom/state"`
SbomVersion string `edn:"sbom/version,omitempty"`
SbomLastUpdated *time.Time `edn:"sbom/last-updated,omitempty"`
SbomPackageCount int `edn:"sbom/package-count,omitempty"`
Dependencies *skill.ManyRef `edn:"artifact/dependencies,omitempty"`
}
type ImageSource ¶
type ImageSource struct {
Name string `json:"name"`
Digest string `json:"digest"`
Tags *[]string `json:"tags,omitempty"`
Manifest *v1.Manifest `json:"manifest"`
Config *v1.ConfigFile `json:"config"`
RawManifest string `json:"raw_manifest"`
RawConfig string `json:"raw_config"`
Distro Distro `json:"distro"`
Platform Platform `json:"platform"`
Size int64 `json:"size"`
}
type IndexResult ¶
type LabelEntity ¶
type LayerEntity ¶
type LayerEntity struct {
skill.Entity `entity-type:"docker.image/layer"`
Ordinal int `edn:"docker.image.layer/ordinal"`
ImageDigest string `edn:"docker.image.layer/image-digest"`
Blob BlobEntity `edn:"docker.image.layer/blob"`
CreatedAt time.Time `edn:"docker.image.layer/created-at"`
CreatedBy string `edn:"docker.image.layer/created-by"`
BlobDigest string `edn:"docker.image.layer/blob-digest"`
ChainId string `edn:"docker.image.layer/chain-id"`
}
type LayerMapping ¶
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 NormalizePackages ¶
type PackageEntity ¶
type PackageEntity struct {
skill.Entity `entity-type:"package"`
Purl string `edn:"package/url"`
Type string `edn:"package/type"`
Namespace string `edn:"package/namespace,omitempty"`
Name string `edn:"package/name"`
Version string `edn:"package/version"`
Author string `edn:"package/author,omitempty"`
Licenses []string `edn:"package/licenses,omitempty"`
Description string `edn:"package/description,omitempty"`
Url string `edn:"package/homepage,omitempty"`
Size int `edn:"package/size,omitempty"`
AdvisoryUrl string `edn:"package/advisory-url"`
}
type PlatformEntity ¶
type PlatformEntity struct {
skill.Entity `entity-type:"docker/platform"`
Image ImageEntity `edn:"docker.platform/image"`
Os string `edn:"docker.platform/os"`
Architecture string `edn:"docker.platform/architecture"`
Variant string `edn:"docker.platform/variant,omitempty"`
}
type RepositoryEntity ¶
type Sbom ¶
type Sbom struct {
Source Source `json:"source"`
Artifacts []Package `json:"artifacts"`
Vulnerabilities []Cve `json:"vulnerabilities,omitempty"`
Descriptor Descriptor `json:"descriptor"`
}
type Source ¶
type Source struct {
Type string `json:"type"`
Image ImageSource `json:"image"`
}
type TagEntity ¶
type TagEntity struct {
skill.Entity `entity-type:"docker/tag"`
Name string `edn:"docker.tag/name"`
UpdatedAt time.Time `edn:"docker.tag/updated-at"`
Repository RepositoryEntity `edn:"docker.tag/repository"`
Digest string `edn:"docker.tag/digest"`
Image ImageEntity `edn:"docker.tag/image"`
}
Click to show internal directories.
Click to hide internal directories.