Docs
Environment Variables

Reading properties from environment variables

datagen can read (string) properties from environment variables. This allows you to configure the schema using shell-like expansions in strings. This is especially useful when using datagen in a containerized environment and when passing secrets to the schema, as any (string) value inside the schema, including plugin configurations, can be read from environment variables.

To read a property from an environment variable, use the ${ENV_VAR_NAME} or $ENV_VAR_NAME} syntax. Internally, datagen uses the shellexpand (opens in a new tab) crate for expanding environment variables. This means, default values can be used in the syntax, e.g. ${ENV_VAR_NAME:-default}.

Examples

Reading a property from an environment variable

{
  "type": "string",
  "value": "${MY_ENV_VAR}"
}

Assuming the environment variable MY_ENV_VAR is set to my-value, the above schema will generate the following value:

"my-value"

Reading a property from an environment variable with a default value

{
  "type": "string",
  "value": "${MY_ENV_VAR:-default}"
}

Assuming the environment variable MY_ENV_VAR is not set, the above schema will generate the following value:

"default"

Configure the upload-plugin using environment variables

{
  "options": {
    "serializer": {
      "type": "plugin",
      "pluginName": "upload_plugin",
      "args": {
        "url": "${UPLOAD_URL}",
        "auth": {
          "type": "basic",
          "username": "${UPLOAD_USERNAME}",
          "password": "${UPLOAD_PASSWORD}"
        }
      }
    }
  },
  "type": "string",
  "value": "my-value"
}