Skip to content

Steps

A step is a single transformation applied to the pipeline payload. Steps run in the order they are listed. If any step fails, the pipeline stops.

All steps

StepWhat it doesJSONJSONLCSV
assertAssert record count or field existence
castConvert field types — int, float, bool, string, time
convertConvert payload format — json ↔ jsonl ↔ csv
countPrint current record count to stdout
dedupeRemove duplicate records by key fields
defaultFill missing or empty fields with a default value
filterKeep records matching a condition or nested all/any group
http-requestSend payload to an HTTP endpoint as a side effect, continue with the same payload
http-transformPOST/PUT/PATCH payload to an HTTP endpoint, continue with the response
limitTruncate to N records
logPrint record count and samples to stdout
normalizeNormalise string fields (lower, upper, trim, capitalize…)
redactReplace field values with mask, sha256, or REDACTED
renameRename fields
selectKeep only the specified fields
sortSort records by a field, ascending or descending
validate-jsonValidate records against a JSON Schema

Step syntax

Each step is a single-key object in the steps list:

yaml
steps:
  - normalize:
      fields:
        email: lower
  - redact:
      fields: [password]
      strategy: mask
  - filter:
      field: country
      equals: AU

The key is the step type. The value is the step's configuration. Each list item must contain exactly one step type.

Released under the MIT License.