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.