Documentation ¶
Overview ¶
Package config defines the full configuration structure used by the Benthos service, including methods of normalising and linting user configuration.
Index ¶
- Variables
- func AddExamples(conf *Type, examples ...string)
- func JSONPointer(path string, object interface{}) (interface{}, error)
- func Lint(rawBytes []byte, config Type) ([]string, error)
- func Read(path string, replaceEnvs bool, config *Type) ([]string, error)
- func ReadWithJSONPointers(path string, replaceEnvs bool) ([]byte, error)
- type SanitisedConfig
- type Type
Constants ¶
This section is empty.
Variables ¶
var ErrExceededRefLimit = errors.New("exceeded limit of nested references")
ErrExceededRefLimit is returned when a configuration hierarchy results in nested references beyond a hard coded limit. This is intended to prevent looped references from blocking the service.
Functions ¶
func AddExamples ¶
AddExamples takes a configuration struct and a variant list of type names to add to it and injects those types appropriately.
For example, your variant arguments could be "kafka" and "amqp", which case this function will create a configuration that reads from Kafka and writes over AMQP.
func JSONPointer ¶
JSONPointer parses a JSON pointer path (https://tools.ietf.org/html/rfc6901) and either returns an interface{} containing the result or an error if the referenced item could not be found.
func Read ¶
Read will attempt to read a configuration file path into a structure. Returns an array of lint messages or an error.
func ReadWithJSONPointers ¶
ReadWithJSONPointers takes a config file path, reads the contents, performs a generic parse, resolves any JSON Pointers, marshals the result back into bytes and returns it so that it can be unmarshalled into a typed structure.
Types ¶
type SanitisedConfig ¶
type SanitisedConfig struct { HTTP interface{} `json:"http" yaml:"http"` Input interface{} `json:"input" yaml:"input"` Buffer interface{} `json:"buffer" yaml:"buffer"` Pipeline interface{} `json:"pipeline" yaml:"pipeline"` Output interface{} `json:"output" yaml:"output"` Manager interface{} `json:"resources" yaml:"resources"` Logger interface{} `json:"logger" yaml:"logger"` Metrics interface{} `json:"metrics" yaml:"metrics"` Tracer interface{} `json:"tracer" yaml:"tracer"` SystemCloseTimeout interface{} `json:"shutdown_timeout" yaml:"shutdown_timeout"` }
SanitisedConfig is a config struct of generic types, this is returned by Sanitised() and is a generic structure containing only fields of relevance.
type Type ¶
type Type struct { HTTP api.Config `json:"http" yaml:"http"` stream.Config `json:",inline" yaml:",inline"` Manager manager.Config `json:"resources" yaml:"resources"` Logger log.Config `json:"logger" yaml:"logger"` Metrics metrics.Config `json:"metrics" yaml:"metrics"` Tracer tracer.Config `json:"tracer" yaml:"tracer"` SystemCloseTimeout string `json:"shutdown_timeout" yaml:"shutdown_timeout"` }
Type is the Benthos service configuration struct.
func (Type) Sanitised ¶
func (c Type) Sanitised() (*SanitisedConfig, error)
Sanitised returns a sanitised copy of the Benthos configuration, meaning fields of no consequence (unused inputs, outputs, processors etc) are excluded.