gate

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: May 31, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusPass = "pass"
	StatusWarn = "warn"
	StatusFail = "fail"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AggregateResult

type AggregateResult struct {
	Availability   float64 `json:"availability"`
	Threshold      float64 `json:"threshold"`
	ThresholdDelta float64 `json:"threshold_delta"`
	Status         string  `json:"status"`
}

type DecisionReason added in v0.2.4

type DecisionReason struct {
	ID           string   `json:"id"`
	Scope        string   `json:"scope"`
	Profile      string   `json:"profile,omitempty"`
	EndpointID   string   `json:"endpoint_id,omitempty"`
	Metric       string   `json:"metric,omitempty"`
	Status       string   `json:"status"`
	Availability *float64 `json:"availability,omitempty"`
	Threshold    *float64 `json:"threshold,omitempty"`
	Delta        *float64 `json:"delta,omitempty"`
	Message      string   `json:"message"`
}

type EndpointResult

type EndpointResult struct {
	Profile        string  `json:"profile,omitempty"`
	EndpointID     string  `json:"endpoint_id"`
	Availability   float64 `json:"availability"`
	Threshold      float64 `json:"threshold"`
	ThresholdDelta float64 `json:"threshold_delta"`
	Status         string  `json:"status"`
}

type Evaluation

type Evaluation struct {
	Mode                  config.PolicyMode         `json:"mode"`
	Decision              string                    `json:"decision"`
	EvaluationRule        config.GateEvaluationRule `json:"evaluation_rule,omitempty"`
	FailedEndpoints       []string                  `json:"failed_endpoints"`
	FailedAssertions      []string                  `json:"failed_assertions,omitempty"`
	FailedProfiles        []string                  `json:"failed_profiles,omitempty"`
	EndpointResults       []EndpointResult          `json:"endpoint_results"`
	ProfileEvaluations    []ProfileEvaluation       `json:"profile_evaluations,omitempty"`
	CrossProfileAggregate *AggregateResult          `json:"cross_profile_aggregate,omitempty"`
	Reasons               []DecisionReason          `json:"reasons,omitempty"`
}

func Evaluate

func Evaluate(availability map[string]float64, policy config.Policy, modeOverride string) (Evaluation, error)

func EvaluateProfiles

func EvaluateProfiles(outputs []simulation.ProfileOutput, gateCfg config.GateConfig) (Evaluation, error)

type ProfileEvaluation

type ProfileEvaluation struct {
	Profile                 string           `json:"profile"`
	Decision                string           `json:"decision"`
	FailedEndpoints         []string         `json:"failed_endpoints"`
	FailedAssertions        []string         `json:"failed_assertions,omitempty"`
	EndpointsBelowThreshold int              `json:"endpoints_below_threshold"`
	EndpointResults         []EndpointResult `json:"endpoint_results"`
	Aggregate               *AggregateResult `json:"aggregate,omitempty"`
	Reasons                 []DecisionReason `json:"reasons,omitempty"`
}

Jump to

Keyboard shortcuts

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