Documentation
¶
Overview ¶
Package interfaces provides necessary interfaces and implementations for implementing engine plugins
Index ¶
- type Action
- type ActionCmd
- type ActionOpt
- type ActionType
- type ActionsParams
- type EvalParams
- type EvalStatusParams
- func (e *EvalStatusParams) GetActionsErr() evalerrors.ActionsError
- func (e *EvalStatusParams) GetEvalErr() error
- func (e *EvalStatusParams) GetEvalStatusFromDb() *db.ListRuleEvaluationsByProfileIdRow
- func (e *EvalStatusParams) GetProfile() *pb.Profile
- func (e *EvalStatusParams) GetRule() *pb.Profile_Rule
- func (e *EvalStatusParams) GetRuleType() *pb.RuleType
- func (e *EvalStatusParams) SetActionsErr(ctx context.Context, actionErr evalerrors.ActionsError)
- func (e *EvalStatusParams) SetEvalErr(err error)
- type Evaluator
- type Ingester
- type Result
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action interface {
Class() ActionType
Type() string
GetOnOffState(*pb.Profile) ActionOpt
Do(ctx context.Context, cmd ActionCmd, setting ActionOpt, entity protoreflect.ProtoMessage,
params ActionsParams, metadata *json.RawMessage) (json.RawMessage, error)
}
Action is the interface for a rule type action
type ActionCmd ¶
type ActionCmd string
ActionCmd is the type that defines what effect an action should have
type ActionOpt ¶
type ActionOpt int
ActionOpt is the type that defines what action to take when remediating
const ( // ActionOptOn means perform the remediation ActionOptOn ActionOpt = iota // ActionOptOff means do not perform the remediation ActionOptOff // ActionOptDryRun means perform a dry run of the remediation ActionOptDryRun // ActionOptUnknown means the action is unknown. This is a sentinel value. ActionOptUnknown )
func ActionOptFromString ¶
ActionOptFromString returns the ActionOpt from a string representation
type ActionType ¶
type ActionType string
ActionType represents the type of action, i.e., remediate, alert, etc.
type ActionsParams ¶
type ActionsParams interface {
GetEvalErr() error
GetEvalStatusFromDb() *db.ListRuleEvaluationsByProfileIdRow
GetRuleType() *pb.RuleType
GetProfile() *pb.Profile
GetRule() *pb.Profile_Rule
}
ActionsParams is the interface used for processing a rule type action
type EvalParams ¶
type EvalParams interface {
GetRule() *pb.Profile_Rule
}
EvalParams is the interface used for a rule type evaluator
type EvalStatusParams ¶
type EvalStatusParams struct {
Profile *pb.Profile
Rule *pb.Profile_Rule
RuleType *pb.RuleType
ProfileID uuid.UUID
RepoID uuid.UUID
ArtifactID uuid.NullUUID
PullRequestID uuid.NullUUID
EntityType db.Entities
RuleTypeID uuid.UUID
EvalStatusFromDb *db.ListRuleEvaluationsByProfileIdRow
// contains filtered or unexported fields
}
EvalStatusParams is a helper struct to pass parameters to createOrUpdateEvalStatus to avoid confusion with the parameters' order. Since at the moment, all our entities are bound to a repo and most profiles are expecting a repo, the RepoID parameter is mandatory. For entities other than artifacts, the ArtifactID should be 0 that is translated to NULL in the database.
func (*EvalStatusParams) GetActionsErr ¶
func (e *EvalStatusParams) GetActionsErr() evalerrors.ActionsError
GetActionsErr returns the actions' error
func (*EvalStatusParams) GetEvalErr ¶
func (e *EvalStatusParams) GetEvalErr() error
GetEvalErr returns the evaluation error
func (*EvalStatusParams) GetEvalStatusFromDb ¶
func (e *EvalStatusParams) GetEvalStatusFromDb() *db.ListRuleEvaluationsByProfileIdRow
GetEvalStatusFromDb returns the evaluation status from the database
func (*EvalStatusParams) GetProfile ¶
func (e *EvalStatusParams) GetProfile() *pb.Profile
GetProfile returns the profile
func (*EvalStatusParams) GetRule ¶
func (e *EvalStatusParams) GetRule() *pb.Profile_Rule
GetRule returns the rule
func (*EvalStatusParams) GetRuleType ¶
func (e *EvalStatusParams) GetRuleType() *pb.RuleType
GetRuleType returns the rule type
func (*EvalStatusParams) SetActionsErr ¶
func (e *EvalStatusParams) SetActionsErr(ctx context.Context, actionErr evalerrors.ActionsError)
SetActionsErr sets the actions' error
func (*EvalStatusParams) SetEvalErr ¶
func (e *EvalStatusParams) SetEvalErr(err error)
SetEvalErr sets the evaluation error
type Ingester ¶
type Ingester interface {
// Ingest does the actual data ingestion for a rule type
Ingest(ctx context.Context, ent protoreflect.ProtoMessage, params map[string]any) (*Result, error)
// GetType returns the type of the ingester
GetType() string
// GetConfig returns the config for the ingester
GetConfig() protoreflect.ProtoMessage
}
Ingester is the interface for a rule type ingester
type Result ¶
type Result struct {
// Object is the object that was ingested. Normally comes from an external
// system like an HTTP server.
Object any
// Fs is the filesystem that was created as a result of the ingestion. This
// is normally used by the evaluator to do rule evaluation. The filesystem
// may be a git repo, or a memory filesystem.
Fs billy.Filesystem
}
Result is the result of an ingester