Documentation
¶
Index ¶
- Constants
- Variables
- func BuildSchemaSetFromPolicies(policies map[string]*ast.Module, paths []string, fsys fs.FS, ...) (*ast.SchemaSet, error)
- func BuiltinNamespaces() []string
- func GetInputsContents(inputs []Input) []any
- func IsBuiltinNamespace(namespace string) bool
- func IsDotFile(name string) bool
- func IsJSONFile(name string) bool
- func IsRegoFile(name string) bool
- func LoadEmbeddedLibraries() (map[string]*ast.Module, error)
- func LoadEmbeddedPolicies() (map[string]*ast.Module, error)
- func LoadPoliciesFromDirs(target fs.FS, paths ...string) (map[string]*ast.Module, error)
- func NewEngineMetadata(schema string, meta map[string]any) (*scan.EngineMetadata, error)
- func ParseRegoModule(name, input string) (*ast.Module, error)
- func RegisterRegoRules(modules map[string]*ast.Module)
- func WithCustomSchemas(schemas map[string][]byte) options.ScannerOption
- func WithDataDirs(paths ...string) options.ScannerOption
- func WithDataFilesystem(fsys fs.FS) options.ScannerOption
- func WithEmbeddedLibraries(include bool) options.ScannerOption
- func WithEmbeddedPolicies(include bool) options.ScannerOption
- func WithFrameworks(frameworks ...framework.Framework) options.ScannerOption
- func WithIncludeDeprecatedChecks(include bool) options.ScannerOption
- func WithMaxAllowedErrors(limit int) options.ScannerOption
- func WithPerResultTracing(enabled bool) options.ScannerOption
- func WithPolicyDirs(paths ...string) options.ScannerOption
- func WithPolicyFilesystem(fsys fs.FS) options.ScannerOption
- func WithPolicyNamespaces(namespaces ...string) options.ScannerOption
- func WithPolicyReader(readers ...io.Reader) options.ScannerOption
- func WithRegoScanner(rs *Scanner) options.ScannerOption
- func WithTrace(w io.Writer) options.ScannerOption
- func WithTrivyVersion(version string) options.ScannerOption
- type DynamicMetadata
- type Input
- type InputOptions
- type MetadataRetriever
- type RegoModuleFilter
- type RegoScannerProvider
- type Scanner
- type Selector
- type StaticMetadata
- type SubType
Constants ¶
const DefaultAllowedRegoErrors = 10
DefaultAllowedRegoErrors defines the default number of Rego compile errors that the scanner will tolerate. This value is set explicitly instead of relying on OPA's ast.CompileErrorLimitDefault to avoid depending on upstream changes.
Variables ¶
var LoadAndRegister = sync.OnceFunc(func() { modules, err := LoadEmbeddedPolicies() if err != nil { panic(err) } loadedLibs, err := LoadEmbeddedLibraries() if err != nil { panic(err) } maps.Copy(modules, loadedLibs) RegisterRegoRules(modules) })
Functions ¶
func BuiltinNamespaces ¶ added in v0.51.0
func BuiltinNamespaces() []string
func GetInputsContents ¶
func IsBuiltinNamespace ¶ added in v0.51.0
func IsJSONFile ¶
func IsRegoFile ¶
func LoadPoliciesFromDirs ¶
func NewEngineMetadata ¶
func ParseRegoModule ¶ added in v0.61.0
func RegisterRegoRules ¶
func WithCustomSchemas ¶ added in v0.56.0
func WithCustomSchemas(schemas map[string][]byte) options.ScannerOption
func WithDataDirs ¶ added in v0.56.0
func WithDataDirs(paths ...string) options.ScannerOption
func WithDataFilesystem ¶ added in v0.56.0
func WithDataFilesystem(fsys fs.FS) options.ScannerOption
func WithEmbeddedLibraries ¶ added in v0.56.0
func WithEmbeddedLibraries(include bool) options.ScannerOption
func WithEmbeddedPolicies ¶ added in v0.56.0
func WithEmbeddedPolicies(include bool) options.ScannerOption
func WithFrameworks ¶ added in v0.58.0
func WithFrameworks(frameworks ...framework.Framework) options.ScannerOption
func WithIncludeDeprecatedChecks ¶ added in v0.58.0
func WithIncludeDeprecatedChecks(include bool) options.ScannerOption
func WithMaxAllowedErrors ¶ added in v0.69.4
func WithMaxAllowedErrors(limit int) options.ScannerOption
func WithPerResultTracing ¶ added in v0.56.0
func WithPerResultTracing(enabled bool) options.ScannerOption
func WithPolicyDirs ¶ added in v0.56.0
func WithPolicyDirs(paths ...string) options.ScannerOption
func WithPolicyFilesystem ¶ added in v0.56.0
func WithPolicyFilesystem(fsys fs.FS) options.ScannerOption
func WithPolicyNamespaces ¶ added in v0.56.0
func WithPolicyNamespaces(namespaces ...string) options.ScannerOption
WithPolicyNamespaces - namespaces which indicate rego policies containing enforced rules
func WithPolicyReader ¶ added in v0.56.0
func WithPolicyReader(readers ...io.Reader) options.ScannerOption
func WithRegoScanner ¶ added in v0.62.0
func WithRegoScanner(rs *Scanner) options.ScannerOption
func WithTrace ¶ added in v0.56.0
func WithTrace(w io.Writer) options.ScannerOption
WithTrace specifies an io.Writer for trace logs (mainly rego tracing) - if not set, they are discarded
func WithTrivyVersion ¶ added in v0.63.0
func WithTrivyVersion(version string) options.ScannerOption
Types ¶
type DynamicMetadata ¶
type InputOptions ¶
type InputOptions struct {
Selectors []Selector
}
type MetadataRetriever ¶
type MetadataRetriever struct {
// contains filtered or unexported fields
}
func NewMetadataRetriever ¶
func NewMetadataRetriever(compiler *ast.Compiler) *MetadataRetriever
func (*MetadataRetriever) RetrieveMetadata ¶
func (m *MetadataRetriever) RetrieveMetadata(ctx context.Context, module *ast.Module, contents ...any) (*StaticMetadata, error)
type RegoModuleFilter ¶ added in v0.64.0
type RegoModuleFilter func(module *ast.Module, metadata *StaticMetadata) bool
func FrameworksFilter ¶ added in v0.64.0
func FrameworksFilter(frameworks []framework.Framework) RegoModuleFilter
FrameworksFilter returns a filter that allows only modules associated with the specified frameworks.
func IncludeDeprecatedFilter ¶ added in v0.64.0
func IncludeDeprecatedFilter(include bool) RegoModuleFilter
IncludeDeprecatedFilter returns a filter that allows deprecated modules if the include flag is true.
func TrivyVersionFilter ¶ added in v0.64.0
func TrivyVersionFilter(trivyVer string) RegoModuleFilter
TrivyVersionFilter returns a filter that allows only those modules, that are compatible with the given version of Trivy.
type RegoScannerProvider ¶ added in v0.62.0
type RegoScannerProvider struct {
// contains filtered or unexported fields
}
func NewRegoScannerProvider ¶ added in v0.62.0
func NewRegoScannerProvider(opts ...options.ScannerOption) *RegoScannerProvider
func (*RegoScannerProvider) InitRegoScanner ¶ added in v0.62.0
func (s *RegoScannerProvider) InitRegoScanner(fsys fs.FS, opts []options.ScannerOption) (*Scanner, error)
type Scanner ¶
type Scanner struct {
// contains filtered or unexported fields
}
func NewScanner ¶
func NewScanner(opts ...options.ScannerOption) *Scanner
type StaticMetadata ¶
type StaticMetadata struct {
Deprecated bool
ID string
// Deprecated: Use the ID field instead.
AVDID string
Title string
LongID string
ShortCode string
Aliases []string
Description string
Severity string
RecommendedActions string
PrimaryURL string
References []string
InputOptions InputOptions
Package string
Frameworks map[framework.Framework][]string
Provider string
Service string
Library bool
CloudFormation *scan.EngineMetadata
Terraform *scan.EngineMetadata
Examples string
MinimumTrivyVersion string
}
func MetadataFromAnnotations ¶ added in v0.61.0
func MetadataFromAnnotations(module *ast.Module) (*StaticMetadata, error)
func NewStaticMetadata ¶
func NewStaticMetadata(pkgPath string, inputOpt InputOptions) *StaticMetadata
func (*StaticMetadata) FromAnnotations ¶
func (sm *StaticMetadata) FromAnnotations(annotations *ast.Annotations) error
func (*StaticMetadata) ToRule ¶
func (sm *StaticMetadata) ToRule() scan.Rule