policy

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: May 22, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultQuery = "result := data.attest.result"
)
View Source
const (
	PolicyMappingFileName = "mapping.yaml"
)

Variables

View Source
var PolicyEvaluatorCtxKey policyEvaluatorCtxKeyType

Functions

func RegoFunctions

func RegoFunctions(resolver oci.AttestationResolver) []*tester.Builtin

func WithPolicyEvaluator

func WithPolicyEvaluator(ctx context.Context, pe PolicyEvaluator) context.Context

sets PolicyEvaluator in context

Types

type MirrorSpec

type MirrorSpec struct {
	Domains []string `json:"domains"`
	Prefix  string   `json:"prefix"`
}

type MockPolicyEvaluator

type MockPolicyEvaluator struct {
	EvaluateFunc func(ctx context.Context, resolver oci.AttestationResolver, pctx *Policy, input *PolicyInput) (*Result, error)
}

func (*MockPolicyEvaluator) Evaluate

func (pe *MockPolicyEvaluator) Evaluate(ctx context.Context, resolver oci.AttestationResolver, pctx *Policy, input *PolicyInput) (*Result, error)

type Policy added in v0.1.4

type Policy struct {
	InputFiles []*PolicyFile
	Query      string
}

func ResolvePolicy

func ResolvePolicy(ctx context.Context, resolver oci.AttestationResolver, opts *PolicyOptions) (*Policy, error)

type PolicyEvaluator

type PolicyEvaluator interface {
	Evaluate(ctx context.Context, resolver oci.AttestationResolver, pctx *Policy, input *PolicyInput) (*Result, error)
}

func GetMockPolicy added in v0.1.4

func GetMockPolicy() PolicyEvaluator

func GetPolicyEvaluator

func GetPolicyEvaluator(ctx context.Context) (PolicyEvaluator, error)

gets PolicyEvaluator from context, defaults to Rego PolicyEvaluator if not set

func NewRegoEvaluator

func NewRegoEvaluator(debug bool) PolicyEvaluator

type PolicyFile

type PolicyFile struct {
	Path    string
	Content []byte
}

type PolicyInput

type PolicyInput struct {
	Digest      string `json:"digest"`
	Purl        string `json:"purl"`
	IsCanonical bool   `json:"isCanonical"`
}

type PolicyMapping

type PolicyMapping struct {
	Id          string              `json:"id"`
	Description string              `json:"description"`
	Origin      PolicyOrigin        `json:"origin"`
	Files       []PolicyMappingFile `json:"files"`
}

type PolicyMappingFile added in v0.1.4

type PolicyMappingFile struct {
	Path string `json:"path"`
}

type PolicyMappings

type PolicyMappings struct {
	Version  string          `json:"version"`
	Kind     string          `json:"kind"`
	Policies []PolicyMapping `json:"policies"`
	Mirrors  []PolicyMirror  `json:"mirrors"`
}

func LoadLocalMappings added in v0.1.4

func LoadLocalMappings(opts *PolicyOptions) (*PolicyMappings, error)

type PolicyMirror

type PolicyMirror struct {
	PolicyId string     `yaml:"policy-id"`
	Mirror   MirrorSpec `json:"mirror"`
}

type PolicyOptions

type PolicyOptions struct {
	TufClient       tuf.TUFClient
	LocalTargetsDir string
	LocalPolicyDir  string
}

type PolicyOrigin

type PolicyOrigin struct {
	Name   string `json:"name"`
	Prefix string `json:"prefix"`
	Domain string `json:"domain"`
}

type Result added in v0.1.4

type Result struct {
	Success    bool        `json:"success"`
	Violations []Violation `json:"violations"`
	Summary    Summary     `json:"summary"`
}

func AllowedResult added in v0.1.4

func AllowedResult() *Result

type Summary added in v0.1.4

type Summary struct {
	Subjects   []intoto.Subject `json:"subjects"`
	SLSALevels []string         `json:"slsa_levels"`
	Verifier   string           `json:"verifier"`
	PolicyURI  string           `json:"policy_uri"`
}

type Violation added in v0.1.4

type Violation struct {
	Type        string            `json:"type"`
	Description string            `json:"description"`
	Attestation *intoto.Statement `json:"attestation"`
	Details     map[string]any    `json:"details"`
}

Jump to

Keyboard shortcuts

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