package logs
import "github.com/open-policy-agent/opa/plugins/logs"
Package logs implements decision log buffering and uploading.
Index ¶
- Constants
- type BundleInfoV1
- type Config
- type ConfigBuilder
- func NewConfigBuilder() *ConfigBuilder
- func (b *ConfigBuilder) Parse() (*Config, error)
- func (b *ConfigBuilder) WithBytes(config []byte) *ConfigBuilder
- func (b *ConfigBuilder) WithPlugins(plugins []string) *ConfigBuilder
- func (b *ConfigBuilder) WithServices(services []string) *ConfigBuilder
- func (b *ConfigBuilder) WithTriggerMode(trigger *plugins.TriggerMode) *ConfigBuilder
- type EventV1
- type Logger
- type Plugin
- func Lookup(manager *plugins.Manager) *Plugin
- func New(parsedConfig *Config, manager *plugins.Manager) *Plugin
- func (p *Plugin) Log(ctx context.Context, decision *server.Info) error
- func (p *Plugin) Reconfigure(_ context.Context, config interface{})
- func (p *Plugin) Start(ctx context.Context) error
- func (p *Plugin) Stop(ctx context.Context)
- func (p *Plugin) Trigger(ctx context.Context) error
- func (p *Plugin) WithMetrics(m metrics.Metrics) *Plugin
- type ReportingConfig
Constants ¶
const Name = "decision_logs"
Name identifies the plugin on manager.
Types ¶
type BundleInfoV1 ¶
type BundleInfoV1 struct { Revision string `json:"revision,omitempty"` }
BundleInfoV1 describes a bundle associated with a decision log event.
func (*BundleInfoV1) AST ¶
func (b *BundleInfoV1) AST() ast.Value
AST returns the BundleInfoV1 as an AST value
type Config ¶
type Config struct { Plugin *string `json:"plugin"` Service string `json:"service"` PartitionName string `json:"partition_name,omitempty"` Reporting ReportingConfig `json:"reporting"` MaskDecision *string `json:"mask_decision"` ConsoleLogs bool `json:"console"` Resource *string `json:"resource"` // contains filtered or unexported fields }
Config represents the plugin configuration.
func ParseConfig ¶
ParseConfig validates the config and injects default values.
type ConfigBuilder ¶
type ConfigBuilder struct {
// contains filtered or unexported fields
}
ConfigBuilder assists in the construction of the plugin configuration.
func NewConfigBuilder ¶
func NewConfigBuilder() *ConfigBuilder
NewConfigBuilder returns a new ConfigBuilder to build and parse the plugin config.
func (*ConfigBuilder) Parse ¶
func (b *ConfigBuilder) Parse() (*Config, error)
Parse validates the config and injects default values.
func (*ConfigBuilder) WithBytes ¶
func (b *ConfigBuilder) WithBytes(config []byte) *ConfigBuilder
WithBytes sets the raw plugin config.
func (*ConfigBuilder) WithPlugins ¶
func (b *ConfigBuilder) WithPlugins(plugins []string) *ConfigBuilder
WithPlugins sets the list of named plugins for decision logging.
func (*ConfigBuilder) WithServices ¶
func (b *ConfigBuilder) WithServices(services []string) *ConfigBuilder
WithServices sets the services that implement control plane APIs.
func (*ConfigBuilder) WithTriggerMode ¶
func (b *ConfigBuilder) WithTriggerMode(trigger *plugins.TriggerMode) *ConfigBuilder
WithTriggerMode sets the plugin trigger mode.
type EventV1 ¶
type EventV1 struct { Labels map[string]string `json:"labels"` DecisionID string `json:"decision_id"` Revision string `json:"revision,omitempty"` // Deprecated: Use Bundles instead Bundles map[string]BundleInfoV1 `json:"bundles,omitempty"` Path string `json:"path,omitempty"` Query string `json:"query,omitempty"` Input *interface{} `json:"input,omitempty"` Result *interface{} `json:"result,omitempty"` Erased []string `json:"erased,omitempty"` Masked []string `json:"masked,omitempty"` Error error `json:"error,omitempty"` RequestedBy string `json:"requested_by"` Timestamp time.Time `json:"timestamp"` Metrics map[string]interface{} `json:"metrics,omitempty"` // contains filtered or unexported fields }
EventV1 represents a decision log event. WARNING: The AST() function for EventV1 must be kept in sync with the struct. Any changes here MUST be reflected in the AST() implementation below.
func (*EventV1) AST ¶
AST returns the Rego AST representation for a given EventV1 object. This avoids having to round trip through JSON while applying a decision log mask policy to the event.
type Logger ¶
Logger defines the interface for decision logging plugins.
type Plugin ¶
type Plugin struct {
// contains filtered or unexported fields
}
Plugin implements decision log buffering and uploading.
func Lookup ¶
Lookup returns the decision logs plugin registered with the manager.
func New ¶
New returns a new Plugin with the given config.
func (*Plugin) Log ¶
Log appends a decision log event to the buffer for uploading.
func (*Plugin) Reconfigure ¶
Reconfigure notifies the plugin with a new configuration.
func (*Plugin) Start ¶
Start starts the plugin.
func (*Plugin) Stop ¶
Stop stops the plugin.
func (*Plugin) Trigger ¶
Trigger can be used to control when the plugin attempts to upload a new decision log in manual triggering mode.
func (*Plugin) WithMetrics ¶
WithMetrics sets the global metrics provider to be used by the plugin.
type ReportingConfig ¶
type ReportingConfig struct { BufferSizeLimitBytes *int64 `json:"buffer_size_limit_bytes,omitempty"` // max size of in-memory buffer UploadSizeLimitBytes *int64 `json:"upload_size_limit_bytes,omitempty"` // max size of upload payload MinDelaySeconds *int64 `json:"min_delay_seconds,omitempty"` // min amount of time to wait between successful poll attempts MaxDelaySeconds *int64 `json:"max_delay_seconds,omitempty"` // max amount of time to wait between poll attempts MaxDecisionsPerSecond *float64 `json:"max_decisions_per_second,omitempty"` // max number of decision logs to buffer per second Trigger *plugins.TriggerMode `json:"trigger,omitempty"` // trigger mode }
ReportingConfig represents configuration for the plugin's reporting behaviour.
Source Files ¶
buffer.go encoder.go mask.go plugin.go
- Version
- v0.33.1
- Published
- Oct 4, 2021
- Platform
- js/wasm
- Imports
- 28 packages
- Last checked
- 3 minutes ago –
Tools for package owners.