Documentation
¶
Index ¶
- Constants
- Variables
- type AWSFlagGroup
- type AWSOptions
- type Alias
- type CacheFlagGroup
- type CacheOptions
- type CloudFlagGroup
- type CloudOptions
- type DBFlagGroup
- type DBOptions
- type Flag
- type FlagGroup
- type Flags
- type GlobalFlagGroup
- type GlobalOptions
- type ImageFlagGroup
- type ImageOptions
- type K8sFlagGroup
- type K8sOptions
- type LicenseFlagGroup
- type LicenseOptions
- type MisconfFlagGroup
- type MisconfOptions
- type ModuleFlagGroup
- type ModuleOptions
- type Options
- type PacketOptions
- type RedisOptions
- type RegistryFlagGroup
- type RegistryOptions
- type RegoFlagGroup
- type RegoOptions
- type RemoteFlagGroup
- type RemoteOptions
- type RepoFlagGroup
- type RepoOptions
- type ReportFlagGroup
- type ReportOptions
- type SBOMFlagGroup
- type SBOMOptions
- type ScanFlagGroup
- type ScanOptions
- type SecretFlagGroup
- type SecretOptions
- type VulnerabilityFlagGroup
- type VulnerabilityOptions
Constants ¶
const (
DefaultTokenHeader = "Trivy-Token"
)
Variables ¶
var ( ClearCacheFlag = Flag{ Name: "clear-cache", ConfigName: "cache.clear", Value: false, Usage: "clear image caches without scanning", } CacheBackendFlag = Flag{ Name: "cache-backend", ConfigName: "cache.backend", Value: "fs", Usage: "cache backend (e.g. redis://localhost:6379)", } CacheTTLFlag = Flag{ Name: "cache-ttl", ConfigName: "cache.ttl", Value: time.Duration(0), Usage: "cache TTL when using redis as cache backend", } RedisTLSFlag = Flag{ Name: "redis-tls", ConfigName: "cache.redis.tls", Value: false, Usage: "enable redis TLS with public certificates, if using redis as cache backend", } RedisCACertFlag = Flag{ Name: "redis-ca", ConfigName: "cache.redis.ca", Value: "", Usage: "redis ca file location, if using redis as cache backend", } RedisCertFlag = Flag{ Name: "redis-cert", ConfigName: "cache.redis.cert", Value: "", Usage: "redis certificate file location, if using redis as cache backend", } RedisKeyFlag = Flag{ Name: "redis-key", ConfigName: "cache.redis.key", Value: "", Usage: "redis key file location, if using redis as cache backend", } )
e.g. config yaml:
cache: clear: true backend: "redis://localhost:6379" redis: ca: ca-cert.pem cert: cert.pem key: key.pem
var ( ResetFlag = Flag{ Name: "reset", ConfigName: "reset", Value: false, Usage: "remove all caches and database", } DownloadDBOnlyFlag = Flag{ Name: "download-db-only", ConfigName: "db.download-only", Value: false, Usage: "download/update vulnerability database but don't run a scan", } SkipDBUpdateFlag = Flag{ Name: "skip-db-update", ConfigName: "db.skip-update", Value: false, Usage: "skip updating vulnerability database", Aliases: []Alias{ { Name: "skip-update", Deprecated: true, }, }, } DownloadJavaDBOnlyFlag = Flag{ Name: "download-java-db-only", ConfigName: "db.download-java-only", Value: false, Usage: "download/update Java index database but don't run a scan", } SkipJavaDBUpdateFlag = Flag{ Name: "skip-java-db-update", ConfigName: "db.java-skip-update", Value: false, Usage: "skip updating Java index database", } NoProgressFlag = Flag{ Name: "no-progress", ConfigName: "db.no-progress", Value: false, Usage: "suppress progress bar", } DBRepositoryFlag = Flag{ Name: "db-repository", ConfigName: "db.repository", Value: defaultDBRepository, Usage: "OCI repository to retrieve trivy-db from", } JavaDBRepositoryFlag = Flag{ Name: "java-db-repository", ConfigName: "db.java-repository", Value: defaultJavaDBRepository, Usage: "OCI repository to retrieve trivy-java-db from", } LightFlag = Flag{ Name: "light", ConfigName: "db.light", Value: false, Usage: "deprecated", Deprecated: true, } )
var ( ConfigFileFlag = Flag{ Name: "config", ConfigName: "config", Shorthand: "c", Value: "trivy.yaml", Usage: "config path", Persistent: true, } ShowVersionFlag = Flag{ Name: "version", ConfigName: "version", Shorthand: "v", Value: false, Usage: "show version", Persistent: true, } QuietFlag = Flag{ Name: "quiet", ConfigName: "quiet", Shorthand: "q", Value: false, Usage: "suppress progress bar and log output", Persistent: true, } DebugFlag = Flag{ Name: "debug", ConfigName: "debug", Shorthand: "d", Value: false, Usage: "debug mode", Persistent: true, } InsecureFlag = Flag{ Name: "insecure", ConfigName: "insecure", Value: false, Usage: "allow insecure server connections", Persistent: true, } TimeoutFlag = Flag{ Name: "timeout", ConfigName: "timeout", Value: time.Second * 300, Usage: "timeout", Persistent: true, } CacheDirFlag = Flag{ Name: "cache-dir", ConfigName: "cache.dir", Value: fsutils.CacheDir(), Usage: "cache directory", Persistent: true, } GenerateDefaultConfigFlag = Flag{ Name: "generate-default-config", ConfigName: "generate-default-config", Value: false, Usage: "write the default config to trivy-default.yaml", Persistent: true, } )
var ( ImageConfigScannersFlag = Flag{ Name: "image-config-scanners", ConfigName: "image.image-config-scanners", Value: "", Usage: "comma-separated list of what security issues to detect on container image configurations (config,secret)", } ScanRemovedPkgsFlag = Flag{ Name: "removed-pkgs", ConfigName: "image.removed-pkgs", Value: false, Usage: "detect vulnerabilities of removed packages (only for Alpine)", } InputFlag = Flag{ Name: "input", ConfigName: "image.input", Value: "", Usage: "input file path instead of image name", } PlatformFlag = Flag{ Name: "platform", ConfigName: "image.platform", Value: "", Usage: "set platform in the form os/arch if image is multi-platform capable", } DockerHostFlag = Flag{ Name: "docker-host", ConfigName: "image.docker.host", Value: "", Usage: "unix domain socket path to use for docker scanning", } SourceFlag = Flag{ Name: "image-src", ConfigName: "image.source", Value: ftypes.AllImageSources.StringSlice(), Usage: "image source(s) to use, in priority order (docker,containerd,podman,remote)", } )
var ( ClusterContextFlag = Flag{ Name: "context", ConfigName: "kubernetes.context", Value: "", Usage: "specify a context to scan", Aliases: []Alias{ {Name: "ctx"}, }, } K8sNamespaceFlag = Flag{ Name: "namespace", ConfigName: "kubernetes.namespace", Shorthand: "n", Value: "", Usage: "specify a namespace to scan", } KubeConfigFlag = Flag{ Name: "kubeconfig", ConfigName: "kubernetes.kubeconfig", Value: "", Usage: "specify the kubeconfig file path to use", } ComponentsFlag = Flag{ Name: "components", ConfigName: "kubernetes.components", Value: []string{ "workload", "infra", }, Usage: "specify which components to scan", } K8sVersionFlag = Flag{ Name: "k8s-version", ConfigName: "kubernetes.k8s.version", Value: "", Usage: "specify k8s version to validate outdated api by it (example: 1.21.0)", } ParallelFlag = Flag{ Name: "parallel", ConfigName: "kubernetes.parallel", Value: 5, Usage: "number (between 1-20) of goroutines enabled for parallel scanning", } TolerationsFlag = Flag{ Name: "tolerations", ConfigName: "kubernetes.tolerations", Value: []string{}, Usage: "specify node-collector job tolerations (example: key1=value1:NoExecute,key2=value2:NoSchedule)", } AllNamespaces = Flag{ Name: "all-namespaces", ConfigName: "kubernetes.all.namespaces", Shorthand: "A", Value: false, Usage: "fetch resources from all cluster namespaces", } NodeCollectorNamespace = Flag{ Name: "node-collector-namespace", ConfigName: "node.collector.namespace", Value: "trivy-temp", Usage: "specify the namespace in which the node-collector job should be deployed", } ExcludeNodes = Flag{ Name: "exclude-nodes", ConfigName: "exclude.nodes", Value: []string{}, Usage: "indicate the node labels that the node-collector job should exclude from scanning (example: kubernetes.io/arch:arm64,team:dev)", } )
var ( LicenseFull = Flag{ Name: "license-full", ConfigName: "license.full", Value: false, Usage: "eagerly look for licenses in source code headers and license files", } IgnoredLicenses = Flag{ Name: "ignored-licenses", ConfigName: "license.ignored", Value: []string{}, Usage: "specify a list of license to ignore", } LicenseConfidenceLevel = Flag{ Name: "license-confidence-level", ConfigName: "license.confidenceLevel", Value: 0.9, Usage: "specify license classifier's confidence level", } // LicenseForbidden is an option only in a config file LicenseForbidden = Flag{ ConfigName: "license.forbidden", Value: licensing.ForbiddenLicenses, Usage: "forbidden licenses", } // LicenseRestricted is an option only in a config file LicenseRestricted = Flag{ ConfigName: "license.restricted", Value: licensing.RestrictedLicenses, Usage: "restricted licenses", } // LicenseReciprocal is an option only in a config file LicenseReciprocal = Flag{ ConfigName: "license.reciprocal", Value: licensing.ReciprocalLicenses, Usage: "reciprocal licenses", } // LicenseNotice is an option only in a config file LicenseNotice = Flag{ ConfigName: "license.notice", Value: licensing.NoticeLicenses, Usage: "notice licenses", } // LicensePermissive is an option only in a config file LicensePermissive = Flag{ ConfigName: "license.permissive", Value: licensing.PermissiveLicenses, Usage: "permissive licenses", } // LicenseUnencumbered is an option only in a config file LicenseUnencumbered = Flag{ ConfigName: "license.unencumbered", Value: licensing.UnencumberedLicenses, Usage: "unencumbered licenses", } )
var ( ResetPolicyBundleFlag = Flag{ Name: "reset-policy-bundle", ConfigName: "misconfiguration.reset-policy-bundle", Value: false, Usage: "remove policy bundle", } IncludeNonFailuresFlag = Flag{ Name: "include-non-failures", ConfigName: "misconfiguration.include-non-failures", Value: false, Usage: "include successes and exceptions, available with '--scanners config'", } HelmValuesFileFlag = Flag{ Name: "helm-values", ConfigName: "misconfiguration.helm.values", Value: []string{}, Usage: "specify paths to override the Helm values.yaml files", } HelmSetFlag = Flag{ Name: "helm-set", ConfigName: "misconfiguration.helm.set", Value: []string{}, Usage: "specify Helm values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)", } HelmSetFileFlag = Flag{ Name: "helm-set-file", ConfigName: "misconfiguration.helm.set-file", Value: []string{}, Usage: "specify Helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)", } HelmSetStringFlag = Flag{ Name: "helm-set-string", ConfigName: "misconfiguration.helm.set-string", Value: []string{}, Usage: "specify Helm string values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)", } TfVarsFlag = Flag{ Name: "tf-vars", ConfigName: "misconfiguration.terraform.vars", Value: []string{}, Usage: "specify paths to override the Terraform tfvars files", } )
e.g. config yaml:
misconfiguration: trace: true config-policy: "custom-policy/policy" policy-namespaces: "user"
var ( ModuleDirFlag = Flag{ Name: "module-dir", ConfigName: "module.dir", Value: module.DefaultDir, Usage: "specify directory to the wasm modules that will be loaded", Persistent: true, } EnableModulesFlag = Flag{ Name: "enable-modules", ConfigName: "module.enable-modules", Value: []string{}, Usage: "[EXPERIMENTAL] module names to enable", Persistent: true, } )
var ( UsernameFlag = Flag{ Name: "username", ConfigName: "registry.username", Value: []string{}, Usage: "username. Comma-separated usernames allowed.", } PasswordFlag = Flag{ Name: "password", ConfigName: "registry.password", Value: []string{}, Usage: "password. Comma-separated passwords allowed. TRIVY_PASSWORD should be used for security reasons.", } RegistryTokenFlag = Flag{ Name: "registry-token", ConfigName: "registry.token", Value: "", Usage: "registry token", } )
var ( SkipPolicyUpdateFlag = Flag{ Name: "skip-policy-update", ConfigName: "rego.skip-policy-update", Value: false, Usage: "skip fetching rego policy updates", } TraceFlag = Flag{ Name: "trace", ConfigName: "rego.trace", Value: false, Usage: "enable more verbose trace output for custom queries", } ConfigPolicyFlag = Flag{ Name: "config-policy", ConfigName: "rego.policy", Value: []string{}, Usage: "specify paths to the Rego policy files directory, applying config files", Aliases: []Alias{ {Name: "policy"}, }, } ConfigDataFlag = Flag{ Name: "config-data", ConfigName: "rego.data", Value: []string{}, Usage: "specify paths from which data for the Rego policies will be recursively loaded", Aliases: []Alias{ {Name: "data"}, }, } PolicyNamespaceFlag = Flag{ Name: "policy-namespaces", ConfigName: "rego.namespaces", Value: []string{}, Usage: "Rego namespaces", Aliases: []Alias{ {Name: "namespaces"}, }, } )
e.g. config yaml:
rego: trace: true config-policy: "custom-policy/policy" policy-namespaces: "user"
var ( ServerTokenFlag = Flag{ Name: "token", ConfigName: "server.token", Value: "", Usage: "for authentication in client/server mode", } ServerTokenHeaderFlag = Flag{ Name: "token-header", ConfigName: "server.token-header", Value: DefaultTokenHeader, Usage: "specify a header name for token in client/server mode", } ServerAddrFlag = Flag{ Name: "server", ConfigName: "server.addr", Value: "", Usage: "server address in client mode", } ServerCustomHeadersFlag = Flag{ Name: "custom-headers", ConfigName: "server.custom-headers", Value: []string{}, Usage: "custom headers in client mode", } ServerListenFlag = Flag{ Name: "listen", ConfigName: "server.listen", Value: "localhost:4954", Usage: "listen address in server mode", } )
var ( FetchBranchFlag = Flag{ Name: "branch", ConfigName: "repository.branch", Value: "", Usage: "pass the branch name to be scanned", } FetchCommitFlag = Flag{ Name: "commit", ConfigName: "repository.commit", Value: "", Usage: "pass the commit hash to be scanned", } FetchTagFlag = Flag{ Name: "tag", ConfigName: "repository.tag", Value: "", Usage: "pass the tag name to be scanned", } )
var ( FormatFlag = Flag{ Name: "format", ConfigName: "format", Shorthand: "f", Value: report.FormatTable, Usage: "format (" + strings.Join(report.SupportedFormats, ", ") + ")", } ReportFormatFlag = Flag{ Name: "report", ConfigName: "report", Value: "all", Usage: "specify a report format for the output. (all,summary)", } TemplateFlag = Flag{ Name: "template", ConfigName: "template", Shorthand: "t", Value: "", Usage: "output template", } DependencyTreeFlag = Flag{ Name: "dependency-tree", ConfigName: "dependency-tree", Value: false, Usage: "[EXPERIMENTAL] show dependency origin tree of vulnerable packages", } ListAllPkgsFlag = Flag{ Name: "list-all-pkgs", ConfigName: "list-all-pkgs", Value: false, Usage: "enabling the option will output all packages regardless of vulnerability", } IgnoreFileFlag = Flag{ Name: "ignorefile", ConfigName: "ignorefile", Value: result.DefaultIgnoreFile, Usage: "specify .trivyignore file", } IgnorePolicyFlag = Flag{ Name: "ignore-policy", ConfigName: "ignore-policy", Value: "", Usage: "specify the Rego file path to evaluate each vulnerability", } ExitCodeFlag = Flag{ Name: "exit-code", ConfigName: "exit-code", Value: 0, Usage: "specify exit code when any security issues are found", } ExitOnEOLFlag = Flag{ Name: "exit-on-eol", ConfigName: "exit-on-eol", Value: 0, Usage: "exit with the specified code when the OS reaches end of service/life", } OutputFlag = Flag{ Name: "output", ConfigName: "output", Shorthand: "o", Value: "", Usage: "output file name", } SeverityFlag = Flag{ Name: "severity", ConfigName: "severity", Shorthand: "s", Value: strings.Join(dbTypes.SeverityNames, ","), Usage: "severities of security issues to be displayed (comma separated)", } ComplianceFlag = Flag{ Name: "compliance", ConfigName: "scan.compliance", Value: "", Usage: "compliance report to generate", } )
e.g. config yaml:
format: table dependency-tree: true severity: HIGH,CRITICAL
var ( ArtifactTypeFlag = Flag{ Name: "artifact-type", ConfigName: "sbom.artifact-type", Value: "", Usage: "deprecated", Deprecated: true, } SBOMFormatFlag = Flag{ Name: "sbom-format", ConfigName: "sbom.format", Value: "", Usage: "deprecated", Deprecated: true, } VEXFlag = Flag{ Name: "vex", ConfigName: "sbom.vex", Value: "", Usage: "[EXPERIMENTAL] file path to VEX", } )
var ( SkipDirsFlag = Flag{ Name: "skip-dirs", ConfigName: "scan.skip-dirs", Value: []string{}, Usage: "specify the directories where the traversal is skipped", } SkipFilesFlag = Flag{ Name: "skip-files", ConfigName: "scan.skip-files", Value: []string{}, Usage: "specify the file paths to skip traversal", } OfflineScanFlag = Flag{ Name: "offline-scan", ConfigName: "scan.offline", Value: false, Usage: "do not issue API requests to identify dependencies", } ScannersFlag = Flag{ Name: "scanners", ConfigName: "scan.scanners", Value: types.Scanners{ types.VulnerabilityScanner, types.SecretScanner, }.StringSlice(), Aliases: []Alias{ { Name: "security-checks", ConfigName: "scan.security-checks", Deprecated: true, }, }, Usage: "comma-separated list of what security issues to detect (vuln,config,secret,license)", } FilePatternsFlag = Flag{ Name: "file-patterns", ConfigName: "scan.file-patterns", Value: []string{}, Usage: "specify config file patterns", } SlowFlag = Flag{ Name: "slow", ConfigName: "scan.slow", Value: false, Usage: "scan over time with lower CPU and memory utilization", } SBOMSourcesFlag = Flag{ Name: "sbom-sources", ConfigName: "scan.sbom-sources", Value: []string{}, Usage: "[EXPERIMENTAL] try to retrieve SBOM from the specified sources (oci,rekor)", } RekorURLFlag = Flag{ Name: "rekor-url", ConfigName: "scan.rekor-url", Value: "https://rekor.sigstore.dev", Usage: "[EXPERIMENTAL] address of rekor STL server", } )
var ( VulnTypeFlag = Flag{ Name: "vuln-type", ConfigName: "vulnerability.type", Value: []string{ types.VulnTypeOS, types.VulnTypeLibrary, }, Usage: "comma-separated list of vulnerability types (os,library)", } IgnoreUnfixedFlag = Flag{ Name: "ignore-unfixed", ConfigName: "vulnerability.ignore-unfixed", Value: false, Usage: "display only fixed vulnerabilities", } )
var (
SecretConfigFlag = Flag{
Name: "secret-config",
ConfigName: "secret.config",
Value: "trivy-secret.yaml",
Usage: "specify a path to config file for secret scanning",
}
)
Functions ¶
This section is empty.
Types ¶
type AWSFlagGroup ¶
func NewAWSFlagGroup ¶
func NewAWSFlagGroup() *AWSFlagGroup
func (*AWSFlagGroup) Flags ¶
func (f *AWSFlagGroup) Flags() []*Flag
func (*AWSFlagGroup) Name ¶
func (f *AWSFlagGroup) Name() string
func (*AWSFlagGroup) ToOptions ¶
func (f *AWSFlagGroup) ToOptions() AWSOptions
type AWSOptions ¶
type CacheFlagGroup ¶
type CacheFlagGroup struct {
ClearCache *Flag
CacheBackend *Flag
CacheTTL *Flag
RedisTLS *Flag
RedisCACert *Flag
RedisCert *Flag
RedisKey *Flag
}
CacheFlagGroup composes common printer flag structs used for commands requiring cache logic.
func NewCacheFlagGroup ¶
func NewCacheFlagGroup() *CacheFlagGroup
NewCacheFlagGroup returns a default CacheFlagGroup
func (*CacheFlagGroup) Flags ¶
func (fg *CacheFlagGroup) Flags() []*Flag
func (*CacheFlagGroup) Name ¶
func (fg *CacheFlagGroup) Name() string
func (*CacheFlagGroup) ToOptions ¶
func (fg *CacheFlagGroup) ToOptions() (CacheOptions, error)
type CacheOptions ¶
type CacheOptions struct {
ClearCache bool
CacheBackend string
CacheTTL time.Duration
RedisTLS bool
RedisOptions
}
func (*CacheOptions) CacheBackendMasked ¶
func (o *CacheOptions) CacheBackendMasked() string
CacheBackendMasked returns the redis connection string masking credentials
type CloudFlagGroup ¶
func NewCloudFlagGroup ¶
func NewCloudFlagGroup() *CloudFlagGroup
func (*CloudFlagGroup) Flags ¶
func (f *CloudFlagGroup) Flags() []*Flag
func (*CloudFlagGroup) Name ¶
func (f *CloudFlagGroup) Name() string
func (*CloudFlagGroup) ToOptions ¶
func (f *CloudFlagGroup) ToOptions() CloudOptions
type CloudOptions ¶
type DBFlagGroup ¶
type DBFlagGroup struct {
Reset *Flag
DownloadDBOnly *Flag
SkipDBUpdate *Flag
DownloadJavaDBOnly *Flag
SkipJavaDBUpdate *Flag
NoProgress *Flag
DBRepository *Flag
JavaDBRepository *Flag
Light *Flag // deprecated
}
DBFlagGroup composes common printer flag structs used for commands requiring DB logic.
func NewDBFlagGroup ¶
func NewDBFlagGroup() *DBFlagGroup
NewDBFlagGroup returns a default DBFlagGroup
func (*DBFlagGroup) Flags ¶
func (f *DBFlagGroup) Flags() []*Flag
func (*DBFlagGroup) Name ¶
func (f *DBFlagGroup) Name() string
func (*DBFlagGroup) ToOptions ¶
func (f *DBFlagGroup) ToOptions() (DBOptions, error)
type Flag ¶
type Flag struct {
// Name is for CLI flag and environment variable.
// If this field is empty, it will be available only in config file.
Name string
// ConfigName is a key in config file. It is also used as a key of viper.
ConfigName string
// Shorthand is a shorthand letter.
Shorthand string
// Value is the default value. It must be filled to determine the flag type.
Value interface{}
// Usage explains how to use the flag.
Usage string
// Persistent represents if the flag is persistent
Persistent bool
// Deprecated represents if the flag is deprecated
Deprecated bool
// Aliases represents aliases
Aliases []Alias
}
type Flags ¶
type Flags struct {
AWSFlagGroup *AWSFlagGroup
CacheFlagGroup *CacheFlagGroup
CloudFlagGroup *CloudFlagGroup
DBFlagGroup *DBFlagGroup
ImageFlagGroup *ImageFlagGroup
K8sFlagGroup *K8sFlagGroup
LicenseFlagGroup *LicenseFlagGroup
MisconfFlagGroup *MisconfFlagGroup
ModuleFlagGroup *ModuleFlagGroup
RemoteFlagGroup *RemoteFlagGroup
RegistryFlagGroup *RegistryFlagGroup
RegoFlagGroup *RegoFlagGroup
RepoFlagGroup *RepoFlagGroup
ReportFlagGroup *ReportFlagGroup
SBOMFlagGroup *SBOMFlagGroup
ScanFlagGroup *ScanFlagGroup
SecretFlagGroup *SecretFlagGroup
VulnerabilityFlagGroup *VulnerabilityFlagGroup
}
type GlobalFlagGroup ¶
type GlobalFlagGroup struct {
ConfigFile *Flag
ShowVersion *Flag // spf13/cobra can't override the logic of version printing like VersionPrinter in urfave/cli. -v needs to be defined ourselves.
Quiet *Flag
Debug *Flag
Insecure *Flag
Timeout *Flag
CacheDir *Flag
GenerateDefaultConfig *Flag
}
GlobalFlagGroup composes global flags
func NewGlobalFlagGroup ¶
func NewGlobalFlagGroup() *GlobalFlagGroup
func (*GlobalFlagGroup) AddFlags ¶
func (f *GlobalFlagGroup) AddFlags(cmd *cobra.Command)
func (*GlobalFlagGroup) ToOptions ¶
func (f *GlobalFlagGroup) ToOptions() GlobalOptions
type GlobalOptions ¶
type GlobalOptions struct {
ConfigFile string
ShowVersion bool
Quiet bool
Debug bool
Insecure bool
Timeout time.Duration
CacheDir string
GenerateDefaultConfig bool
OsName string
OsFamily string
}
GlobalOptions defines flags and other configuration parameters for all the subcommands
type ImageFlagGroup ¶
type ImageFlagGroup struct {
Input *Flag // local image archive
ImageConfigScanners *Flag
ScanRemovedPkgs *Flag
Platform *Flag
DockerHost *Flag
ImageSources *Flag
}
func NewImageFlagGroup ¶
func NewImageFlagGroup() *ImageFlagGroup
func (*ImageFlagGroup) Flags ¶
func (f *ImageFlagGroup) Flags() []*Flag
func (*ImageFlagGroup) Name ¶
func (f *ImageFlagGroup) Name() string
func (*ImageFlagGroup) ToOptions ¶
func (f *ImageFlagGroup) ToOptions() (ImageOptions, error)
type ImageOptions ¶
type K8sFlagGroup ¶
type K8sFlagGroup struct {
ClusterContext *Flag
Namespace *Flag
KubeConfig *Flag
Components *Flag
K8sVersion *Flag
Parallel *Flag
Tolerations *Flag
AllNamespaces *Flag
NodeCollectorNamespace *Flag
ExcludeNodes *Flag
}
func NewK8sFlagGroup ¶
func NewK8sFlagGroup() *K8sFlagGroup
func (*K8sFlagGroup) Flags ¶
func (f *K8sFlagGroup) Flags() []*Flag
func (*K8sFlagGroup) Name ¶
func (f *K8sFlagGroup) Name() string
func (*K8sFlagGroup) ToOptions ¶
func (f *K8sFlagGroup) ToOptions() (K8sOptions, error)
type K8sOptions ¶
type LicenseFlagGroup ¶
type LicenseFlagGroup struct {
LicenseFull *Flag
IgnoredLicenses *Flag
LicenseConfidenceLevel *Flag
// License Categories
LicenseForbidden *Flag // mapped to CRITICAL
LicenseRestricted *Flag // mapped to HIGH
LicenseReciprocal *Flag // mapped to MEDIUM
LicenseNotice *Flag // mapped to LOW
LicensePermissive *Flag // mapped to LOW
LicenseUnencumbered *Flag // mapped to LOW
}
func NewLicenseFlagGroup ¶
func NewLicenseFlagGroup() *LicenseFlagGroup
func (*LicenseFlagGroup) Flags ¶
func (f *LicenseFlagGroup) Flags() []*Flag
func (*LicenseFlagGroup) Name ¶
func (f *LicenseFlagGroup) Name() string
func (*LicenseFlagGroup) ToOptions ¶
func (f *LicenseFlagGroup) ToOptions() LicenseOptions
type LicenseOptions ¶
type MisconfFlagGroup ¶
type MisconfFlagGroup struct {
IncludeNonFailures *Flag
ResetPolicyBundle *Flag
// Values Files
HelmValues *Flag
HelmValueFiles *Flag
HelmFileValues *Flag
HelmStringValues *Flag
TerraformTFVars *Flag
}
MisconfFlagGroup composes common printer flag structs used for commands providing misconfinguration scanning.
func NewMisconfFlagGroup ¶
func NewMisconfFlagGroup() *MisconfFlagGroup
func (*MisconfFlagGroup) Flags ¶
func (f *MisconfFlagGroup) Flags() []*Flag
func (*MisconfFlagGroup) Name ¶
func (f *MisconfFlagGroup) Name() string
func (*MisconfFlagGroup) ToOptions ¶
func (f *MisconfFlagGroup) ToOptions() (MisconfOptions, error)
type MisconfOptions ¶
type ModuleFlagGroup ¶
ModuleFlagGroup defines flags for modules
func NewModuleFlagGroup ¶
func NewModuleFlagGroup() *ModuleFlagGroup
func (*ModuleFlagGroup) Flags ¶
func (f *ModuleFlagGroup) Flags() []*Flag
func (*ModuleFlagGroup) Name ¶
func (f *ModuleFlagGroup) Name() string
func (*ModuleFlagGroup) ToOptions ¶
func (f *ModuleFlagGroup) ToOptions() ModuleOptions
type ModuleOptions ¶
type Options ¶
type Options struct {
GlobalOptions
AWSOptions
CacheOptions
CloudOptions
DBOptions
ImageOptions
K8sOptions
LicenseOptions
MisconfOptions
ModuleOptions
RegistryOptions
RegoOptions
RemoteOptions
RepoOptions
ReportOptions
SBOMOptions
ScanOptions
SecretOptions
PacketOptions
VulnerabilityOptions
// Trivy's version, not populated via CLI flags
AppVersion string
// We don't want to allow disabled analyzers to be passed by users, but it is necessary for internal use.
DisabledAnalyzers []analyzer.Type
}
Options holds all the runtime configuration
func (*Options) FilterOpts ¶
func (o *Options) FilterOpts() result.FilterOption
FilterOpts returns options for filtering
func (*Options) RegistryOpts ¶
func (o *Options) RegistryOpts() ftypes.RegistryOptions
RegistryOpts returns options for OCI registries
func (*Options) ReportOpts ¶
type PacketOptions ¶
type RedisOptions ¶
RedisOptions holds the options for redis cache
type RegistryFlagGroup ¶
func NewRegistryFlagGroup ¶
func NewRegistryFlagGroup() *RegistryFlagGroup
func (*RegistryFlagGroup) Flags ¶
func (f *RegistryFlagGroup) Flags() []*Flag
func (*RegistryFlagGroup) Name ¶
func (f *RegistryFlagGroup) Name() string
func (*RegistryFlagGroup) ToOptions ¶
func (f *RegistryFlagGroup) ToOptions() (RegistryOptions, error)
type RegistryOptions ¶
type RegistryOptions struct {
Credentials []types.Credential
RegistryToken string
}
type RegoFlagGroup ¶
type RegoFlagGroup struct {
SkipPolicyUpdate *Flag
Trace *Flag
PolicyPaths *Flag
DataPaths *Flag
PolicyNamespaces *Flag
}
RegoFlagGroup composes common printer flag structs used for commands providing misconfinguration scanning.
func NewRegoFlagGroup ¶
func NewRegoFlagGroup() *RegoFlagGroup
func (*RegoFlagGroup) Flags ¶
func (f *RegoFlagGroup) Flags() []*Flag
func (*RegoFlagGroup) Name ¶
func (f *RegoFlagGroup) Name() string
func (*RegoFlagGroup) ToOptions ¶
func (f *RegoFlagGroup) ToOptions() (RegoOptions, error)
type RegoOptions ¶
type RemoteFlagGroup ¶
type RemoteFlagGroup struct {
// for client/server
Token *Flag
TokenHeader *Flag
// for client
ServerAddr *Flag
CustomHeaders *Flag
// for server
Listen *Flag
}
RemoteFlagGroup composes common printer flag structs used for commands requiring reporting logic.
func NewClientFlags ¶
func NewClientFlags() *RemoteFlagGroup
func NewServerFlags ¶
func NewServerFlags() *RemoteFlagGroup
func (*RemoteFlagGroup) Flags ¶
func (f *RemoteFlagGroup) Flags() []*Flag
func (*RemoteFlagGroup) Name ¶
func (f *RemoteFlagGroup) Name() string
func (*RemoteFlagGroup) ToOptions ¶
func (f *RemoteFlagGroup) ToOptions() RemoteOptions
type RemoteOptions ¶
type RepoFlagGroup ¶
func NewRepoFlagGroup ¶
func NewRepoFlagGroup() *RepoFlagGroup
func (*RepoFlagGroup) Flags ¶
func (f *RepoFlagGroup) Flags() []*Flag
func (*RepoFlagGroup) Name ¶
func (f *RepoFlagGroup) Name() string
func (*RepoFlagGroup) ToOptions ¶
func (f *RepoFlagGroup) ToOptions() RepoOptions
type RepoOptions ¶
type ReportFlagGroup ¶
type ReportFlagGroup struct {
Format *Flag
ReportFormat *Flag
Template *Flag
DependencyTree *Flag
ListAllPkgs *Flag
IgnoreFile *Flag
IgnorePolicy *Flag
ExitCode *Flag
ExitOnEOL *Flag
Output *Flag
Severity *Flag
Compliance *Flag
}
ReportFlagGroup composes common printer flag structs used for commands requiring reporting logic.
func NewReportFlagGroup ¶
func NewReportFlagGroup() *ReportFlagGroup
func (*ReportFlagGroup) Flags ¶
func (f *ReportFlagGroup) Flags() []*Flag
func (*ReportFlagGroup) Name ¶
func (f *ReportFlagGroup) Name() string
func (*ReportFlagGroup) ToOptions ¶
func (f *ReportFlagGroup) ToOptions(out io.Writer) (ReportOptions, error)
type ReportOptions ¶
type SBOMFlagGroup ¶
type SBOMFlagGroup struct {
ArtifactType *Flag // deprecated
SBOMFormat *Flag // deprecated
VEXPath *Flag
}
func NewSBOMFlagGroup ¶
func NewSBOMFlagGroup() *SBOMFlagGroup
func (*SBOMFlagGroup) Flags ¶
func (f *SBOMFlagGroup) Flags() []*Flag
func (*SBOMFlagGroup) Name ¶
func (f *SBOMFlagGroup) Name() string
func (*SBOMFlagGroup) ToOptions ¶
func (f *SBOMFlagGroup) ToOptions() (SBOMOptions, error)
type SBOMOptions ¶
type SBOMOptions struct {
VEXPath string
}
type ScanFlagGroup ¶
type ScanFlagGroup struct {
SkipDirs *Flag
SkipFiles *Flag
OfflineScan *Flag
Scanners *Flag
FilePatterns *Flag
Slow *Flag
SBOMSources *Flag
RekorURL *Flag
}
func NewScanFlagGroup ¶
func NewScanFlagGroup() *ScanFlagGroup
func (*ScanFlagGroup) Flags ¶
func (f *ScanFlagGroup) Flags() []*Flag
func (*ScanFlagGroup) Name ¶
func (f *ScanFlagGroup) Name() string
func (*ScanFlagGroup) ToOptions ¶
func (f *ScanFlagGroup) ToOptions(args []string) (ScanOptions, error)
type ScanOptions ¶
type SecretFlagGroup ¶
type SecretFlagGroup struct {
SecretConfig *Flag
}
func NewSecretFlagGroup ¶
func NewSecretFlagGroup() *SecretFlagGroup
func (*SecretFlagGroup) Flags ¶
func (f *SecretFlagGroup) Flags() []*Flag
func (*SecretFlagGroup) Name ¶
func (f *SecretFlagGroup) Name() string
func (*SecretFlagGroup) ToOptions ¶
func (f *SecretFlagGroup) ToOptions() SecretOptions
type SecretOptions ¶
type SecretOptions struct {
SecretConfigPath string
}
type VulnerabilityFlagGroup ¶
func NewVulnerabilityFlagGroup ¶
func NewVulnerabilityFlagGroup() *VulnerabilityFlagGroup
func (*VulnerabilityFlagGroup) Flags ¶
func (f *VulnerabilityFlagGroup) Flags() []*Flag
func (*VulnerabilityFlagGroup) Name ¶
func (f *VulnerabilityFlagGroup) Name() string
func (*VulnerabilityFlagGroup) ToOptions ¶
func (f *VulnerabilityFlagGroup) ToOptions() VulnerabilityOptions