YAML Tags

Logprep supports the custom YAML tags !include, !set_anchor and !load_anchor. Those can be used inside any YAML file that is loaded by Logprep.

Include tags

The tag !include PATH_TO_YAML_FILE loads a single YAML document from a local file path and inserts it in its place.

Included files can’t contain an !include tag.

Example:

Include tag
1filter: to_resolve
2generic_resolver:
3    field_mapping:
4        to_resolve: resolved
5    resolve_list: !include /path/to/resolve_list.yml

Anchor tags

Anchor tags work similar to regular YAML anchors, but are valid across different documents. Tags are set with !set_anchor(:[0-9])? and loaded with !load_anchor(:[0-9])?. Ten anchors can be active at the same time. If more then ten are set then the first will be removed until there are ten. !set_anchor and !load_anchor are shorthands for !set_anchor:0 and !load_anchor:0.

!set_anchor can’t be nested inside another !set_anchor.

Examples:

Anchor tag without shorthand
 1filter: to_resolve
 2generic_resolver:
 3    field_mapping:
 4        to_resolve: resolved
 5    resolve_list: !set_anchor:1
 6        one: foo
 7        two: bar
 8---
 9filter: to_resolve_2
10generic_resolver:
11    field_mapping:
12        to_resolve_2: resolved
13    resolve_list: !load_anchor:1
Anchor tag with shorthand
 1filter: to_resolve
 2generic_resolver:
 3    field_mapping:
 4        to_resolve: resolved
 5    resolve_list: !set_anchor
 6        one: foo
 7        two: bar
 8---
 9filter: to_resolve_2
10generic_resolver:
11    field_mapping:
12        to_resolve_2: resolved
13    resolve_list: !load_anchor
logprep.util.tag_yaml_loader.init_yaml_loader_tags(*loader_types: str) None

Add custom tags !include, !set_anchor and !load_anchor to the specified loader types.

Must be initialized before yaml files have been loaded to take effect.

Parameters:

*loader_types (str) – Types of loaders for which tags will be initialized (i.e. “safe” or “rt”).