Documentation
¶
Index ¶
- Constants
- Variables
- type Component
- type Config
- type FileSource
- type Namespace
- type ObserverClient
- func (c *ObserverClient) AnalyzeSBOM(filename string) (*SpeculateResponse, error)
- func (c *ObserverClient) UploadDirectory(directoryPath string, fields map[string]string) error
- func (c *ObserverClient) UploadFile(filename string, fields map[string]string) error
- func (c *ObserverClient) UploadSource(filename string, source FileSource, fields map[string]string) error
- type PolicyViolation
- type PolicyViolator
- type SeveritySummary
- type SpeculateResponse
- type SpeculateVulnerabilitySummary
- type SummaryLicense
- type VulnerabilityAnalysis
Constants ¶
View Source
const ( PolicyViolationActionIgnore = "ignore" PolicyViolationActionFailBuild = "fail-build" )
Variables ¶
View Source
var DefaultConfig = Config{
Endpoint: "https://cloud.sbom.observer",
Namespace: "default",
}
Functions ¶
This section is empty.
Types ¶
type Component ¶
type Component struct {
Id string `json:"id"`
PackageURL string `json:"packageUrl,omitempty"` // canonical external identifier
Type string `json:"type"`
Version string `json:"version,omitempty"`
Hashes map[string]string `json:"hashes,omitempty"` // sha256, sha512, etc
Name string `json:"name"` // display name
Group string `json:"group,omitempty"` // display name
Internal bool `json:"internal"`
}
type FileSource ¶
type ObserverClient ¶
type ObserverClient struct {
Config Config
}
func NewObserverClient ¶
func NewObserverClient() *ObserverClient
NewObserverClient returns a new ObserverClient with default configuration
func NewObserverClientWithConfig ¶
func NewObserverClientWithConfig(config Config) *ObserverClient
func (*ObserverClient) AnalyzeSBOM ¶
func (c *ObserverClient) AnalyzeSBOM(filename string) (*SpeculateResponse, error)
func (*ObserverClient) UploadDirectory ¶
func (c *ObserverClient) UploadDirectory(directoryPath string, fields map[string]string) error
func (*ObserverClient) UploadFile ¶
func (c *ObserverClient) UploadFile(filename string, fields map[string]string) error
func (*ObserverClient) UploadSource ¶
func (c *ObserverClient) UploadSource(filename string, source FileSource, fields map[string]string) error
type PolicyViolation ¶
type PolicyViolation struct {
// Id string `json:"id"`
// PolicyId string `json:"policyId"`
PolicyName string `json:"policyName"` // display name
Severity float64 `json:"severity"`
Message string `json:"message"`
Details string `json:"details"`
Link string `json:"link,omitempty"`
Action string `json:"action,omitempty"` // recommended action
Violator PolicyViolator `json:"violator"`
}
type PolicyViolator ¶
type SeveritySummary ¶
type SpeculateResponse ¶
type SpeculateResponse struct {
Namespace Namespace `json:"ns"`
// Attestations []Attestation `json:"attestations,omitempty"`
Subject Component `json:"subject,omitempty"`
ComponentsCount int `json:"componentsCount,omitempty"`
VulnerableComponentsCount int `json:"vulnerableComponentsCount,omitempty"`
Violations []PolicyViolation `json:"violations,omitempty"`
Vulnerabilities []SpeculateVulnerabilitySummary `json:"vulnerabilities,omitempty"`
VulnerabilitiesSummary SeveritySummary `json:"vulnerabilitiesSummary,omitempty"`
ViolationsSummary SeveritySummary `json:"violationsSummary,omitempty"`
LicenseSummary []SummaryLicense `json:"licenseSummary,omitempty"`
}
type SpeculateVulnerabilitySummary ¶
type SpeculateVulnerabilitySummary struct {
VendorId string `json:"vendorId"`
PackageName string `json:"packageName"`
PackageVersion string `json:"packageVersion"`
Ecosystem string `json:"ecosystem"`
Title string `json:"title"`
Description string `json:"description"`
Published *time.Time `json:"published,omitempty"` // Take from NVD
LastModified *time.Time `json:"lastModified,omitempty"` // Take from NVD
Severity float64 `json:"severity"`
EPSS float32 `json:"epss,omitempty"`
PatchAvailable bool `json:"patchAvailable"`
PatchedVersions []string `json:"patchedVersions,omitempty"`
Analysis *VulnerabilityAnalysis `json:"analysis,omitempty"`
}
type SummaryLicense ¶
type VulnerabilityAnalysis ¶
type VulnerabilityAnalysis struct {
Id string `json:"id"`
Vulnerability string `json:"vulnerability"`
Affects []string `json:"affects"`
State string `json:"state,omitempty"`
Justification string `json:"justification,omitempty"`
Response []string `json:"response,omitempty"`
Details string `json:"details,omitempty"`
UpdatedAt time.Time `json:"updatedAt"`
}
Click to show internal directories.
Click to hide internal directories.