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, field existence, or field value✓✓✓
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, partial-last[:N], partial-first[:N], nullify, 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.