act

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2024 License: Apache-2.0 Imports: 5 Imported by: 5

Documentation

Index

Constants

View Source
const (
	Signals  = "__signals__"
	Outputs  = "__outputs__"
	Terminal = "__terminal__"
	Name     = "name"
	Metadata = "metadata"
	Sync     = "sync"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Action

type Action struct {
	Name     string         `json:"name"`
	Metadata map[string]any `json:"metadata"`
	Sync     bool           `json:"sync"`
	Terminal bool           `json:"terminal"`
	Run      ActionFunc     `json:"-"`
}

Action is any action that can be performed by the system.

type ActionFunc

type ActionFunc func(logger zerolog.Logger, data map[string]any) (any, error)

ActionFunc is a function that can be used to run an action.

type IPolicy

type IPolicy interface {
	MustCompile(opts ...expr.Option) error
	Eval(ctx context.Context, input Input) (bool, error)
}

type Input

type Input struct {
	Name   string         `json:"name"`
	Policy map[string]any `json:"policy"`
	Signal map[string]any `json:"signal"`
	Sync   bool           `json:"sync"`
}

type Output

type Output struct {
	MatchedPolicy string         `json:"matchedPolicy"`
	Metadata      map[string]any `json:"metadata"`
	Verdict       bool           `json:"verdict"`
	Terminal      bool           `json:"terminal"`
	Sync          bool           `json:"sync"`
}

type Policy

type Policy struct {
	Name     string         `json:"name"`
	Policy   string         `json:"policy"`
	Metadata map[string]any `json:"metadata"`
	// contains filtered or unexported fields
}

func MustNewPolicy

func MustNewPolicy(
	name string, policy string, metadata map[string]any, opts ...expr.Option,
) *Policy

func NewPolicy

func NewPolicy(
	name string, policy string, metadata map[string]any, opts ...expr.Option,
) (*Policy, error)

func (*Policy) Eval

func (p *Policy) Eval(ctx context.Context, input Input) (bool, error)

func (*Policy) MustCompile

func (p *Policy) MustCompile(extraOpts ...expr.Option) error

type Signal

type Signal struct {
	Name     string         `json:"name"`
	Metadata map[string]any `json:"metadata"`
}

func (*Signal) ToMap

func (s *Signal) ToMap() map[string]any

Jump to

Keyboard shortcuts

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