ruleEngine

package
v1.9.0 Latest Latest
Warning

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

Go to latest
Published: Jul 6, 2024 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	BuiltInProxyRule, _  = newBuiltIn("*", constants.PolicyProxy)
	BuiltInDirectRule, _ = newBuiltIn("*", constants.PolicyDirect)
	BuiltInRejectRule, _ = newBuiltIn("*", constants.PolicyReject)
)
View Source
var ErrNotFound = errors.New("not found")

Functions

func GetRuleIds

func GetRuleIds() ([]string, error)

Types

type Domain

type Domain struct {
	RuleType constants.RuleType `json:"ruleType"`
	Payload  string             `json:"payload"`
	Policy   constants.Policy   `json:"policy"`
}

func NewDomainRule

func NewDomainRule(ruleType constants.RuleType, payload string, policy constants.Policy) (*Domain, error)

func (Domain) GetPolicy added in v0.13.0

func (d Domain) GetPolicy() constants.Policy

func (Domain) Match

func (d Domain) Match(value string) bool

func (Domain) Type

func (d Domain) Type() constants.RuleType

func (Domain) Value

func (d Domain) Value() string

type Engine

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

func New

func New(name string, extraRules []string) (*Engine, error)

func (*Engine) Match

func (e *Engine) Match(value string, types []constants.RuleType) (Rule, error)

type IpCidr

type IpCidr struct {
	RuleType constants.RuleType `json:"ruleType"`
	Payload  string             `json:"payload"`

	Policy constants.Policy `json:"policy"`
	// contains filtered or unexported fields
}

func NewIpCidrRule

func NewIpCidrRule(payload string, policy constants.Policy) (*IpCidr, error)

func (IpCidr) GetPolicy added in v0.13.0

func (i IpCidr) GetPolicy() constants.Policy

func (IpCidr) Match

func (i IpCidr) Match(value string) bool

func (IpCidr) Type

func (i IpCidr) Type() constants.RuleType

func (IpCidr) Value

func (i IpCidr) Value() string

type Process added in v1.7.0

type Process struct {
	RuleType constants.RuleType `json:"ruleType"`
	Payload  string             `json:"payload"`
	Policy   constants.Policy   `json:"policy"`
}

func NewProcessRule added in v1.7.0

func NewProcessRule(ruleType constants.RuleType, payload string, policy constants.Policy) (*Process, error)

func (Process) GetPolicy added in v1.7.0

func (p Process) GetPolicy() constants.Policy

func (Process) Match added in v1.7.0

func (p Process) Match(value string) bool

func (Process) Type added in v1.7.0

func (p Process) Type() constants.RuleType

func (Process) Value added in v1.7.0

func (p Process) Value() string

type Rule

type Rule interface {
	Match(value string) bool
	Value() string
	GetPolicy() constants.Policy
	Type() constants.RuleType
}

func Parse

func Parse(name string, extraRules []string) ([]Rule, error)

func ParseItem

func ParseItem(rawRuleType, value, rawPolicy string) (Rule, error)

func ParseRawValue added in v0.12.0

func ParseRawValue(line string) (Rule, error)

Jump to

Keyboard shortcuts

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