engine

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2021 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ActivatedKey = "activated"
	EffectKey    = "effect"
	ErrorKey     = "error"
	MessageKey   = "message"
	ResultKey    = "result"
)

Variables

View Source
var (
	ErrPolicyNotExecutable = errors.New("policy not executable")
	ErrUnexpectedResult    = errors.New("unexpected result")
)
View Source
var ErrNoPoliciesMatched = errors.New("no matching policies")

ErrNoPoliciesMatched indicates that no policies were matched.

Functions

This section is empty.

Types

type CheckOpt added in v0.9.0

type CheckOpt func(*checkOptions)

CheckOpt defines options for engine Check calls.

func WithWriterTraceSink added in v0.9.0

func WithWriterTraceSink(w io.Writer) CheckOpt

WithWriterTraceSink sets an engine tracer with an io.Writer as the sink.

func WithZapTraceSink added in v0.9.0

func WithZapTraceSink(log *zap.Logger) CheckOpt

WithZapTraceSink sets an engine tracer with Zap set as the sink.

type Conf

type Conf struct {
	DefaultPolicyVersion string `yaml:"defaultPolicyVersion"`
	NumWorkers           uint   `yaml:"numWorkers"`
}

func (*Conf) Key

func (c *Conf) Key() string

func (*Conf) SetDefaults

func (c *Conf) SetDefaults()

func (*Conf) Validate

func (c *Conf) Validate() error

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context, compileMgr *compile.Manager, auditLog audit.Log) (*Engine, error)

func NewEphemeral

func NewEphemeral(ctx context.Context, compileMgr *compile.Manager) (*Engine, error)

func (*Engine) Check

func (engine *Engine) Check(ctx context.Context, inputs []*enginev1.CheckInput, opts ...CheckOpt) ([]*enginev1.CheckOutput, error)

type EvalResult added in v0.9.0

type EvalResult struct {
	PolicyKey             string
	Effects               map[string]effectv1.Effect
	EffectiveDerivedRoles map[string]struct{}
}

type Evaluator added in v0.9.0

type Evaluator interface {
	Evaluate(context.Context, *enginev1.CheckInput) (*EvalResult, error)
}

func NewEvaluator added in v0.9.0

func NewEvaluator(rps *runtimev1.RunnablePolicySet, t *tracer) Evaluator

type KV added in v0.9.0

type KV func() (string, string)

KV is a function that returns a key-value pair.

func KVActivated added in v0.9.0

func KVActivated() KV

KVActivated produces a KV for component activation.

func KVEffect added in v0.9.0

func KVEffect(effect effectv1.Effect) KV

KVEffect produces a KV for setting default effect.

func KVError added in v0.9.0

func KVError(err error) KV

KVError produces a KV for an error.

func KVMsg added in v0.9.0

func KVMsg(msg string, params ...interface{}) KV

KVMsg produces a KV for a free-form message.

func KVResult added in v0.9.0

func KVResult(result bool) KV

KVResult produces a KV for a condition result.

func KVSkip added in v0.9.0

func KVSkip() KV

KVSkip produces a KV for skipping evaluation.

type NoopTraceSink added in v0.9.0

type NoopTraceSink struct{}

NoopTraceSink implements a sink that does nothing.

func (NoopTraceSink) Enabled added in v0.9.0

func (NoopTraceSink) Enabled() bool

func (NoopTraceSink) WriteEvent added in v0.9.0

func (NoopTraceSink) WriteEvent(component []string, data ...KV)

type TraceSink added in v0.9.0

type TraceSink interface {
	Enabled() bool
	WriteEvent(component []string, data ...KV)
}

TraceSink is the interface for sinks that receive trace events from the engine.

type WriterTraceSink added in v0.9.0

type WriterTraceSink struct {
	// contains filtered or unexported fields
}

WriterTraceSink implements TraceSink using an io.Writer.

func NewWriterTraceSink added in v0.9.0

func NewWriterTraceSink(w io.Writer) *WriterTraceSink

func (*WriterTraceSink) Enabled added in v0.9.0

func (wts *WriterTraceSink) Enabled() bool

func (*WriterTraceSink) WriteEvent added in v0.9.0

func (wts *WriterTraceSink) WriteEvent(component []string, data ...KV)

type ZapTraceSink added in v0.9.0

type ZapTraceSink struct {
	// contains filtered or unexported fields
}

ZapTraceSink implements TraceSink using a Zap logger.

func NewZapTraceSink added in v0.9.0

func NewZapTraceSink(log *zap.Logger) *ZapTraceSink

func (*ZapTraceSink) Enabled added in v0.9.0

func (zts *ZapTraceSink) Enabled() bool

func (*ZapTraceSink) WriteEvent added in v0.9.0

func (zts *ZapTraceSink) WriteEvent(component []string, data ...KV)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL