# Packages

Package configabs implements a TransformationProvider that replaces objects on the form: {$abs: "path"} with the value of current working folder + path.
Package configtest provides structs and logic for declarative configuration tests.
Package configenv implements a TransformationProvider that replaces objects on the form: {$env: "VAR"} with the value of the environment variable VAR.
Package hostcredentials implements a TransformationProvider that fetches credentials from the (oddly named) `host-secrets` service and replaces objects of the form: {$hostcredentials: [url, url]} with the credentials.
Package configpacket implements a TransformationProvider that replaces objects on the form: {$packet: "VARIABLE"} with a value loaded from https://metadata.packet.net/metadata, following VARIABLE values are supported: - instance-id - hostname - facility - instance-type - public-ipv4 - public-ipv6 If configuration property 'packetMetaDataUrl' this will be used instead of 'https://metadata.packet.net/metadata'.
Package configsecrets implements a TransformationProvider that replaces objects on the form: {$secret: "NAME", key: "KEY"} with the value of the key "KEY" taken from the secret NAME loaded from taskcluster-secrets.

# Functions

Load configuration from YAML config object.
LoadFromFile will load configuration options from a YAML file and validate against the config file schema, returning an error message explaining what went wrong if unsuccessful.
Providers returns a map of the registered TransformationProvider.
Register will register a TransformationProvider.
ReplaceObjects will traverse through the config object and replace all objects that has a the given '$' + key property with the value returned from replacement(obj).
Schema returns the configuration file schema.

# Interfaces

A TransformationProvider provides a method Transform(config) that knows how to transform the configuration object.