Documentation
¶
Index ¶
- Variables
- type CommonEngineOptions
- type EvaluationResult
- type Option
- func WithAllowedHostnames(hostnames ...string) Option
- func WithEnablePrint(enable bool) Option
- func WithExecutionTimeout(timeout time.Duration) Option
- func WithGRPCConn(conn *grpc.ClientConn) Option
- func WithIncludeRawData(include bool) Option
- func WithLogger(logger *zerolog.Logger) Option
- func WithOperatingMode(mode int32) Option
- type Options
- type Policy
- type PolicyEngine
- type PolicyType
- type PolicyViolation
- type RawData
- type ResultFormatError
Constants ¶
This section is empty.
Variables ¶
var BaseAllowedHostnames = []string{
"www.chainloop.dev",
"www.cisa.gov",
}
BaseAllowedHostnames are the default hostnames allowed for HTTP requests in policies
Functions ¶
This section is empty.
Types ¶
type CommonEngineOptions ¶ added in v1.61.1
type CommonEngineOptions struct {
AllowedHostnames []string
IncludeRawData bool
EnablePrint bool
ControlPlaneConnection *grpc.ClientConn
}
CommonEngineOptions contains configuration options shared by all policy engines
type EvaluationResult ¶ added in v0.96.21
type EvaluationResult struct {
Violations []*PolicyViolation `json:"violations"`
Skipped bool `json:"skipped"`
SkipReason string `json:"skipReason"`
Ignore bool `json:"ignore"`
RawData *RawData `json:"rawData"`
}
type Option ¶ added in v1.61.1
type Option func(*Options)
Option is a unified functional option for configuring policy engines
func WithAllowedHostnames ¶ added in v1.61.1
WithAllowedHostnames sets the list of allowed hostnames for HTTP requests User-provided hostnames are appended to BaseAllowedHostnames
func WithEnablePrint ¶ added in v1.61.1
WithEnablePrint enables print/log statements in policies
func WithExecutionTimeout ¶ added in v1.61.1
WithExecutionTimeout sets the WASM execution timeout
func WithGRPCConn ¶ added in v1.61.1
func WithGRPCConn(conn *grpc.ClientConn) Option
WithGRPCConn sets the gRPC connection for builtin functions like discover
func WithIncludeRawData ¶ added in v1.61.1
WithIncludeRawData sets whether to include raw input/output data in results
func WithLogger ¶ added in v1.61.1
WithLogger sets the WASM engine logger
func WithOperatingMode ¶ added in v1.61.1
WithOperatingMode sets the Rego engine operating mode (restrictive or permissive)
type Options ¶ added in v1.61.1
type Options struct {
// Common options
*CommonEngineOptions
// Rego-specific options
// OperatingMode defines whether the Rego engine runs in restrictive (0) or permissive (1) mode
OperatingMode int32
// WASM-specific options
ExecutionTimeout time.Duration
Logger *zerolog.Logger
}
Options contains all configuration options for policy engines
func ApplyOptions ¶ added in v1.61.1
ApplyOptions applies options and returns the configured Options This automatically appends BaseAllowedHostnames to any user-provided hostnames
type Policy ¶
type Policy struct {
// the source code for this policy
Source []byte `json:"module"`
// The unique policy name
Name string `json:"name"`
}
Policy represents a loaded policy in any of the supported engines.
type PolicyEngine ¶
type PolicyEngine interface {
// Verify verifies an input against a policy
Verify(ctx context.Context, policy *Policy, input []byte, args map[string]any) (*EvaluationResult, error)
// MatchesParameters evaluates the matches_parameters rule to determine if evaluation parameters match expected parameters
MatchesParameters(ctx context.Context, policy *Policy, evaluationParams, expectedParams map[string]string) (bool, error)
// MatchesEvaluation evaluates the matches_evaluation rule using policy violations and expected parameters
MatchesEvaluation(ctx context.Context, policy *Policy, violations []string, expectedParams map[string]string) (bool, error)
}
type PolicyType ¶ added in v1.61.1
type PolicyType string
PolicyType represents the type of a policy (Rego or WASM)
const ( // PolicyTypeRego indicates a Rego-based policy PolicyTypeRego PolicyType = "rego" // PolicyTypeWASM indicates a WASM-based policy PolicyTypeWASM PolicyType = "wasm" )
func DetectPolicyType ¶ added in v1.61.1
func DetectPolicyType(source []byte) PolicyType
DetectPolicyType determines the policy type from source bytes WASM files start with magic bytes: 0x00 0x61 0x73 0x6d (\0asm) as documented at https://webassembly.github.io/spec/core/binary/modules.html#binary-module
type PolicyViolation ¶
PolicyViolation represents a policy failure
type RawData ¶ added in v1.42.0
type RawData struct {
Input json.RawMessage `json:"input"`
Output json.RawMessage `json:"output"`
}
type ResultFormatError ¶ added in v0.96.21
type ResultFormatError struct {
Field string
}
func (ResultFormatError) Error ¶ added in v0.96.21
func (e ResultFormatError) Error() string