runtime

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2026 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultRegoVersion = RegoV1

Variables

This section is empty.

Functions

func RegisterStubBuiltins

func RegisterStubBuiltins(defs *StubBuiltinDefs)

Types

type BuildParams

type BuildParams struct {
	CapabilitiesJSONFile string
	Target               BuildTargetType
	OptimizationLevel    int
	Entrypoints          []string
	OutputFile           string
	Revision             string
	Ignore               []string
	Debug                bool
	Algorithm            string
	Key                  string
	Scope                string
	PubKey               string
	PubKeyID             string
	ClaimsFile           string
	ExcludeVerifyFiles   []string
	RegoVersion          RegoVersion
}

BuildParams contains all parameters used for doing a build.

type BuildTargetType

type BuildTargetType int

BuildTargetType represents the type of build target.

const (
	Rego BuildTargetType = iota
	Wasm
)

func (BuildTargetType) String

func (t BuildTargetType) String() string

type Config

type Config struct {
	LocalBundles                  LocalBundlesConfig `json:"local_bundles"`
	InstanceID                    string             `json:"instance_id"`
	PluginsErrorLimit             int                `json:"plugins_error_limit"`
	GracefulShutdownPeriodSeconds int                `json:"graceful_shutdown_period_seconds"`
	MaxPluginWaitTimeSeconds      int                `json:"max_plugin_wait_time_seconds"`
	Flags                         Flags              `json:"flags"`
	Config                        OPAConfig          `json:"config"`
}

type Flags

type Flags struct {
	EnableStatusPlugin bool `json:"enable_status_plugin"`
}

type LocalBundlesConfig

type LocalBundlesConfig struct {
	Watch              bool                       `json:"watch"`
	LocalPolicyImage   string                     `json:"local_policy_image"`
	FileStoreRoot      string                     `json:"file_store_root"`
	Paths              []string                   `json:"paths"`
	Ignore             []string                   `json:"ignore"`
	SkipVerification   bool                       `json:"skip_verification"`
	VerificationConfig *bundle.VerificationConfig `json:"verification_config"`
}

type Manifest

type Manifest struct {
	bundle.Manifest

	RequiredBuiltIns StubBuiltinDefs
}

func LoadManifest

func LoadManifest(path string) (*Manifest, error)

func NewManifest

func NewManifest() *Manifest

type MetadataEx

type MetadataEx struct {
	Metadata struct {
		RequiredBuiltins *StubBuiltinDefs `json:"required_builtins"`
	} `json:"metadata"`
}

type OPAConfig

type OPAConfig struct {
	Services                     map[string]any                  `json:"services,omitempty"`
	Labels                       map[string]string               `json:"labels,omitempty"`
	Discovery                    *discovery.Config               `json:"discovery,omitempty"`
	Bundles                      map[string]*bundleplugin.Source `json:"bundles,omitempty"`
	DecisionLogs                 *logs.Config                    `json:"decision_logs,omitempty"`
	Status                       *status.Config                  `json:"status,omitempty"`
	Plugins                      map[string]any                  `json:"plugins,omitempty"`
	Keys                         map[string]*keys.Config         `json:"keys,omitempty"`
	DefaultDecision              *string                         `json:"default_decision,omitempty"`
	DefaultAuthorizationDecision *string                         `json:"default_authorization_decision,omitempty"`
	Caching                      *cache.Config                   `json:"caching,omitempty"`
	PersistenceDirectory         *string                         `json:"persistence_directory,omitempty"`
}

func (*OPAConfig) DiscoveryCopy

func (c *OPAConfig) DiscoveryCopy() *discovery.Config

func (*OPAConfig) ServicesCopy

func (c *OPAConfig) ServicesCopy() map[string]any

type Option

type Option func(*Runtime)

func WithBuiltin1

func WithBuiltin1(decl *rego.Function, impl rego.Builtin1) Option

func WithBuiltin2

func WithBuiltin2(decl *rego.Function, impl rego.Builtin2) Option

func WithBuiltin3

func WithBuiltin3(decl *rego.Function, impl rego.Builtin3) Option

func WithBuiltin4

func WithBuiltin4(decl *rego.Function, impl rego.Builtin4) Option

func WithBuiltinDyn

func WithBuiltinDyn(decl *rego.Function, impl rego.BuiltinDyn) Option

func WithConfig

func WithConfig(cfg *Config) Option

func WithImport

func WithImport(imp string) Option

func WithImports

func WithImports(imp []string) Option

func WithPlugin

func WithPlugin(name string, factory plugins.Factory) Option

func WithRegoVersion

func WithRegoVersion(v ast.RegoVersion) Option

func WithStorage

func WithStorage(storageInterface storage.Store) Option

type RegoVersion

type RegoVersion int
const (
	RegoUndefined RegoVersion = iota
	// RegoV0 is the default, original Rego syntax.
	RegoV0
	// RegoV0CompatV1 requires modules to comply with both the RegoV0 and RegoV1 syntax (as when 'rego.v1' is imported in a module).
	// Shortly, RegoV1 compatibility is required, but 'rego.v1' or 'future.keywords' must also be imported.
	RegoV0CompatV1
	// RegoV1 is the Rego syntax enforced by OPA 1.0; e.g.:
	// future.keywords part of default keyword set, and don't require imports;
	// 'if' and 'contains' required in rule heads;
	// (some) strict checks on by default.
	RegoV1
)

func RegoVersionFromString

func RegoVersionFromString(v string) RegoVersion

func (RegoVersion) String

func (v RegoVersion) String() string

func (RegoVersion) ToAstRegoVersion

func (v RegoVersion) ToAstRegoVersion() ast.RegoVersion

type Runtime

type Runtime struct {
	Logger *zerolog.Logger
	Config *Config
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context) (*Runtime, error)

func (*Runtime) Build

func (r *Runtime) Build(params *BuildParams, paths []string) error

Build builds a policy bundle using OPA's compiler.

type StubBuiltin

type StubBuiltin struct {
	Name string         `json:"name"`
	Decl types.Function `json:"decl"`
}

type StubBuiltin1

type StubBuiltin1 StubBuiltin

type StubBuiltin2

type StubBuiltin2 StubBuiltin

type StubBuiltin3

type StubBuiltin3 StubBuiltin

type StubBuiltin4

type StubBuiltin4 StubBuiltin

type StubBuiltinDefs

type StubBuiltinDefs struct {
	Builtin1   []StubBuiltin1   `json:"builtin1,omitempty"`
	Builtin2   []StubBuiltin2   `json:"builtin2,omitempty"`
	Builtin3   []StubBuiltin3   `json:"builtin3,omitempty"`
	Builtin4   []StubBuiltin4   `json:"builtin4,omitempty"`
	BuiltinDyn []StubBuiltinDyn `json:"builtin_dyn,omitempty"`
}

type StubBuiltinDyn

type StubBuiltinDyn StubBuiltin

Jump to

Keyboard shortcuts

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