Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action string
Action is the enum to capture the four types of actions to perform on an attribute.
const ( // INSERT adds the key/value to attributes when the key does not exist. // No action is applied to attributes where the key already exists. INSERT Action = "insert" // UPDATE updates an existing key with a value. No action is applied // to attributes where the key does not exist. UPDATE Action = "update" // UPSERT performs the INSERT or UPDATE action. The key/value is // inserted to attributes that did not originally have the key. The key/value is // updated for attributes where the key already existed. UPSERT Action = "upsert" // DELETE deletes the attribute. If the key doesn't exist, no action is performed. // Supports pattern which is matched against attribute key. DELETE Action = "delete" // HASH calculates the SHA-256 hash of an existing value and overwrites the // value with it's SHA-256 hash result. // Supports pattern which is matched against attribute key. HASH Action = "hash" // EXTRACT extracts values using a regular expression rule from the input // 'key' to target keys specified in the 'rule'. If a target key already // exists, it will be overridden. EXTRACT Action = "extract" // CONVERT converts the type of an existing attribute, if convertable CONVERT Action = "convert" )
type ActionKeyValue ¶
type ActionKeyValue struct {
// Key specifies the attribute to act upon.
// This is a required field.
Key string `mapstructure:"key"`
// Value specifies the value to populate for the key.
// The type of the value is inferred from the configuration.
Value any `mapstructure:"value"`
// A regex pattern must be specified for the action EXTRACT.
// It uses the attribute specified by `key' to extract values from
// The target keys are inferred based on the names of the matcher groups
// provided and the names will be inferred based on the values of the
// matcher group.
// Note: All subexpressions must have a name.
// Note: The value type of the source key must be a string. If it isn't,
// no extraction will occur.
RegexPattern string `mapstructure:"pattern"`
// FromAttribute specifies the attribute to use to populate
// the value. If the attribute doesn't exist, no action is performed.
FromAttribute string `mapstructure:"from_attribute"`
// FromContext specifies the context value to use to populate
// the value. The values would be searched in client.Info.Metadata.
// If the key doesn't exist, no action is performed.
// If the key has multiple values the values will be joined with `;` separator.
FromContext string `mapstructure:"from_context"`
// ConvertedType specifies the target type of an attribute to be converted
// If the key doesn't exist, no action is performed.
// If the value cannot be converted, the original value will be left as-is
ConvertedType string `mapstructure:"converted_type"`
// Action specifies the type of action to perform.
// The set of values are {INSERT, UPDATE, UPSERT, DELETE, HASH}.
// Both lower case and upper case are supported.
// INSERT - Inserts the key/value to attributes when the key does not exist.
// No action is applied to attributes where the key already exists.
// Either Value, FromAttribute or FromContext must be set.
// UPDATE - Updates an existing key with a value. No action is applied
// to attributes where the key does not exist.
// Either Value, FromAttribute or FromContext must be set.
// UPSERT - Performs insert or update action depending on the attributes
// containing the key. The key/value is inserted to attributes
// that did not originally have the key. The key/value is updated
// for attributes where the key already existed.
// Either Value, FromAttribute or FromContext must be set.
// DELETE - Deletes the attribute. If the key doesn't exist,
// no action is performed.
// HASH - Calculates the SHA-1 hash of an existing value and overwrites the
// value with its SHA-1 hash result. If the feature gate
// `coreinternal.attraction.hash.sha256` is enabled, it uses SHA2-256
// instead.
// EXTRACT - Extracts values using a regular expression rule from the input
// 'key' to target keys specified in the 'rule'. If a target key
// already exists, it will be overridden.
// CONVERT - converts the type of an existing attribute, if convertable
// This is a required field.
Action Action `mapstructure:"action"`
}
ActionKeyValue specifies the attribute key to act upon.
type AttrProc ¶
type AttrProc struct {
// contains filtered or unexported fields
}
AttrProc is an attribute processor.
func NewAttrProc ¶
NewAttrProc validates that the input configuration has all of the required fields for the processor and returns a AttrProc to be used to process attributes. An error is returned if there are any invalid inputs.
type Settings ¶
type Settings struct {
// Actions specifies the list of attributes to act on.
// The set of actions are {INSERT, UPDATE, UPSERT, DELETE, HASH, EXTRACT, CONVERT}.
// This is a required field.
Actions []ActionKeyValue `mapstructure:"actions"`
}
Settings specifies the processor settings.
Click to show internal directories.
Click to hide internal directories.