Documentation
¶
Index ¶
- Constants
- func UnpackWatchBody(watch *WatchParams, body *WatchBody)
- type AssignedPolicy
- type BinaryGraphNode
- type GraphNode
- type OtherComponentIds
- type PolicyAction
- type PolicyBlockDownload
- type PolicyBody
- type PolicyCriteria
- type PolicyCvssRange
- type PolicyParams
- type PolicyRule
- type PolicyType
- type Severity
- type WatchBody
- type WatchBuildType
- type WatchBuildsAllParams
- type WatchBuildsByNameParams
- type WatchBuildsParams
- type WatchParams
- type WatchPathFilters
- type WatchRepositoriesParams
- type WatchRepositoriesType
- type WatchRepository
- type WatchRepositoryAll
- type WatchRepositoryType
Constants ¶
const ( // WatchBuildAll is the option where all builds are watched WatchBuildAll WatchBuildType = "all" // WatchBuildByName is the option where builds are selected by name to be watched WatchBuildByName WatchBuildType = "byname" // WatchRepositoryLocal is a local repository WatchRepositoryLocal WatchRepositoryType = "local" // WatchRepositoryRemote is a remote repository WatchRepositoryRemote WatchRepositoryType = "remote" // WatchRepositoriesAll is the option where all repositories are watched WatchRepositoriesAll WatchRepositoriesType = "all" // WatchRepositoriesByName is the option where repositories are selected by name to be watched WatchRepositoriesByName WatchRepositoriesType = "byname" )
Variables ¶
This section is empty.
Functions ¶
func UnpackWatchBody ¶
func UnpackWatchBody(watch *WatchParams, body *WatchBody)
UnpackWatchBody unpacks a payload response from Xray. It transforms the data into the params object so that a consumer can interact with a watch in a consistent way.
Types ¶
type AssignedPolicy ¶
AssignedPolicy struct is used to define a policy associated with a watch
type BinaryGraphNode ¶
type BinaryGraphNode struct {
// Component Id in the JFrog standard.
// For instance, for maven: gav://<groupId>:<artifactId>:<version>
// For detailed format examples please see:
// https://www.jfrog.com/confluence/display/JFROG/Xray+REST+API#XrayRESTAPI-ComponentIdentifiers
Id string `json:"component_id,omitempty"`
// Sha of the binary representing the component.
Sha256 string `json:"sha256,omitempty"`
Sha1 string `json:"sha1,omitempty"`
// For root file shall be the file name.
// For internal components shall be the internal path. (Relevant only for binary scan).
Path string `json:"path,omitempty"`
// List of license names
Licenses []string `json:"licenses,omitempty"`
// Component properties
Properties map[string]string `json:"properties,omitempty"`
// List of subcomponents.
Nodes []*BinaryGraphNode `json:"nodes,omitempty"`
// Other component IDs field is populated by the Xray indexer to get a better accuracy in '.deb' files.
OtherComponentIds []OtherComponentIds `json:"other_component_ids,omitempty"`
}
Binary Scan Graph Node
type GraphNode ¶
type GraphNode struct {
// Node parent (for internal use)
Parent *GraphNode `json:"-"`
// The "classifier" attribute in a Maven pom.xml specifies an additional qualifier for a dependency
Classifier *string `json:"-"`
// Node file types (tar, jar, zip, pom)
Types *[]string `json:"-"`
Id string `json:"component_id,omitempty"`
// List of subcomponents.
Nodes []*GraphNode `json:"nodes,omitempty"`
}
Audit Graph Node
func (*GraphNode) NodeHasLoop ¶
type OtherComponentIds ¶
type PolicyAction ¶
type PolicyAction struct {
Webhooks []string `json:"webhooks,omitempty"`
BlockDownload PolicyBlockDownload `json:"block_download,omitempty"`
BlockReleaseBundleDistribution *bool `json:"block_release_bundle_distribution,omitempty"`
FailBuild *bool `json:"fail_build,omitempty"`
NotifyDeployer *bool `json:"notify_deployer,omitempty"`
NotifyWatchRecipients *bool `json:"notify_watch_recipients,omitempty"`
CustomSeverity Severity `json:"custom_severity,omitempty"`
}
type PolicyBlockDownload ¶
type PolicyBody ¶
type PolicyBody struct {
Name string `json:"name,omitempty"`
Type PolicyType `json:"type,omitempty"`
Description string `json:"description,omitempty"`
Author string `json:"author,omitempty"`
Rules []PolicyRule `json:"rules,omitempty"`
Created time.Time `json:"created,omitempty"`
Modified time.Time `json:"modified,omitempty"`
}
PolicyBody is the top level payload to be sent to Xray
func CreatePolicyBody ¶
func CreatePolicyBody(policyParams PolicyParams) PolicyBody
type PolicyCriteria ¶
type PolicyCriteria struct {
// Security
MinSeverity Severity `json:"min_severity,omitempty"`
CvssRange *PolicyCvssRange `json:"cvss_range,omitempty"`
// License
AllowedLicenses []string `json:"allowed_licenses,omitempty"`
BannedLicenses []string `json:"banned_licenses,omitempty"`
AllowUnknown *bool `json:"allow_unknown,omitempty"`
MultiLicensePermissive *bool `json:"multi_license_permissive,omitempty"`
}
func CreateCvssRangePolicyCriteria ¶
func CreateCvssRangePolicyCriteria(from float64, to float64) *PolicyCriteria
Create security policy criteria with range. from - CVSS range from 0.0 to 10.0 to - CVSS range from 0.0 to 10.0
func CreateLicensePolicyCriteria ¶
func CreateLicensePolicyCriteria(allowedLicenses, allowUnknown, multiLicensePermissive bool, licenses ...string) *PolicyCriteria
Create license policy criteria allowedLicenses - true if the provided licenses are allowed, false if banned allowUnknown - true if should allow unknown licenses, otherwise a violation will be generated for artifacts with unknown licenses multiLicensePermissive - do not generate a violation if at least one license is valid in cases whereby multiple licenses were detected on the component licenses - the target licenses
func CreateSeverityPolicyCriteria ¶
func CreateSeverityPolicyCriteria(minSeverity Severity) *PolicyCriteria
Create security policy criteria with min severity
type PolicyCvssRange ¶
type PolicyParams ¶
type PolicyParams struct {
Name string
Type PolicyType
Description string
Rules []PolicyRule
}
func NewPolicyParams ¶
func NewPolicyParams() PolicyParams
type PolicyRule ¶
type PolicyRule struct {
Name string `json:"name,omitempty"`
Criteria PolicyCriteria `json:"criteria,omitempty"`
Actions *PolicyAction `json:"actions,omitempty"`
Priority int `json:"priority,omitempty"`
}
type PolicyType ¶
type PolicyType string
const ( Security PolicyType = "security" License PolicyType = "license" )
type WatchBody ¶
type WatchBody struct {
GeneralData watchGeneralParams `json:"general_data"`
ProjectResources watchProjectResources `json:"project_resources,omitempty"`
AssignedPolicies []AssignedPolicy `json:"assigned_policies,omitempty"`
}
WatchBody is the top level payload to be sent to Xray
func CreateBody ¶
func CreateBody(params WatchParams) (*WatchBody, error)
CreateBody creates a payload to configure a Watch in Xray This can configure repositories and builds However, bundles are not supported.
type WatchBuildType ¶
type WatchBuildType string
WatchBuildType defines the type of filter for a builds on a watch
type WatchBuildsAllParams ¶
type WatchBuildsAllParams struct {
BinMgrID string
WatchPathFilters
}
WatchBuildsAllParams is used to define the parameters when a watch uses all builds
type WatchBuildsByNameParams ¶
WatchBuildsByNameParams is used to define a specific build in a watch
type WatchBuildsParams ¶
type WatchBuildsParams struct {
Type WatchBuildType
All WatchBuildsAllParams
ByNames map[string]WatchBuildsByNameParams
}
WatchBuildsParams is a struct that stores the build configuration for watch
type WatchParams ¶
type WatchParams struct {
Name string
Description string
Active bool
Repositories WatchRepositoriesParams
Builds WatchBuildsParams
Policies []AssignedPolicy
}
WatchParams defines all the properties to create an Xray watch
func NewWatchParams ¶
func NewWatchParams() WatchParams
NewWatchParams creates a new struct to configure an Xray watch
type WatchPathFilters ¶
type WatchPathFilters struct {
ExcludePatterns []string `json:"ExcludePatterns"`
IncludePatterns []string `json:"IncludePatterns"`
}
WatchPathFilters is used to define path filters on a repository or a build in a watch
type WatchRepositoriesParams ¶
type WatchRepositoriesParams struct {
Type WatchRepositoriesType
All WatchRepositoryAll
Repositories map[string]WatchRepository
WatchPathFilters
}
WatchRepositoriesParams is a struct that stores the repository configuration for watch
type WatchRepositoriesType ¶
type WatchRepositoriesType string
WatchRepositoriesType defines the type of filter for a repositories on a watch
type WatchRepository ¶
type WatchRepository struct {
Name string
BinMgrID string
RepoType WatchRepositoryType
Filters watchFilters
}
WatchRepository is used to define a specific repository in a watch
func NewWatchRepository ¶
func NewWatchRepository(name string, binMgrID string, repoType WatchRepositoryType) WatchRepository
NewWatchRepository creates a new repository struct to configure an Xray Watch
type WatchRepositoryAll ¶
type WatchRepositoryAll struct {
Filters watchFilters
}
WatchRepositoryAll is used to define the parameters when a watch uses all repositories
type WatchRepositoryType ¶
type WatchRepositoryType string
WatchRepositoryType defines the type of Repository for a watch