package config

import "github.com/open-policy-agent/opa/v1/config"

Package config implements OPA configuration file parsing and validation.

Index

Types

type Config

type Config struct {
	Services                     json.RawMessage            `json:"services,omitempty"`
	Labels                       map[string]string          `json:"labels,omitempty"`
	Discovery                    json.RawMessage            `json:"discovery,omitempty"`
	Bundle                       json.RawMessage            `json:"bundle,omitempty"` // Deprecated: Use `bundles` instead
	Bundles                      json.RawMessage            `json:"bundles,omitempty"`
	DecisionLogs                 json.RawMessage            `json:"decision_logs,omitempty"`
	Status                       json.RawMessage            `json:"status,omitempty"`
	Plugins                      map[string]json.RawMessage `json:"plugins,omitempty"`
	Keys                         json.RawMessage            `json:"keys,omitempty"`
	DefaultDecision              *string                    `json:"default_decision,omitempty"`
	DefaultAuthorizationDecision *string                    `json:"default_authorization_decision,omitempty"`
	Caching                      json.RawMessage            `json:"caching,omitempty"`
	NDBuiltinCache               bool                       `json:"nd_builtin_cache,omitempty"`
	PersistenceDirectory         *string                    `json:"persistence_directory,omitempty"`
	DistributedTracing           json.RawMessage            `json:"distributed_tracing,omitempty"`
	Server                       *struct {
		Encoding json.RawMessage `json:"encoding,omitempty"`
		Decoding json.RawMessage `json:"decoding,omitempty"`
		Metrics  json.RawMessage `json:"metrics,omitempty"`
	} `json:"server,omitempty"`
	Storage *struct {
		Disk json.RawMessage `json:"disk,omitempty"`
	} `json:"storage,omitempty"`
	Extra map[string]json.RawMessage `json:"-"`
}

Config represents the configuration file that OPA can be started with.

func ParseConfig

func ParseConfig(raw []byte, id string) (*Config, error)

ParseConfig returns a valid Config object with defaults injected. The id and version parameters will be set in the labels map.

func (*Config) ActiveConfig

func (c *Config) ActiveConfig() (interface{}, error)

ActiveConfig returns OPA's active configuration with the credentials and crypto keys removed

func (Config) DefaultAuthorizationDecisionRef

func (c Config) DefaultAuthorizationDecisionRef() ast.Ref

DefaultAuthorizationDecisionRef returns the default authorization decision as a reference.

func (Config) DefaultDecisionRef

func (c Config) DefaultDecisionRef() ast.Ref

DefaultDecisionRef returns the default decision as a reference.

func (Config) GetPersistenceDirectory

func (c Config) GetPersistenceDirectory() (string, error)

GetPersistenceDirectory returns the configured persistence directory, or $PWD/.opa if none is configured

func (Config) NDBuiltinCacheEnabled

func (c Config) NDBuiltinCacheEnabled() bool

NDBuiltinCacheEnabled returns if the ND builtins cache should be used.

func (Config) PluginNames

func (c Config) PluginNames() (result []string)

PluginNames returns a sorted list of names of enabled plugins.

func (Config) PluginsEnabled

func (c Config) PluginsEnabled() bool

PluginsEnabled returns true if one or more plugin features are enabled.

Deprecated: Use PluginNames instead.

Source Files

config.go

Version
v1.4.2 (latest)
Published
May 2, 2025
Platform
linux/amd64
Imports
12 packages
Last checked
5 hours ago

Tools for package owners.