remove
Drop one or more fields from every record.
The remove filter deletes fields from each record. It accepts either
a single path or an array of paths. Both top-level fields and nested
paths (debug.internal.notes) are supported.
Minimal example
filters:
- type: remove
target: debugOptions
| property | type | default | description |
|---|---|---|---|
typerequired | "remove" | — | Module type discriminator. Must be `remove` for this module. |
id | string | — | Unique identifier within the pipeline. |
name | string | — | Human-readable name. |
description | string | — | — |
enabled | boolean | true | Whether module is active. |
tags | array<string> | — | — |
onError | string | "fail" | Default error action. Case-insensitive; normalized to lowercase by the runtime. |
targetrequired | union | — | Field path(s) to remove. Either a single non-empty string or a non-empty array of non-empty strings. Supports dot notation for nested paths. |
Multiple fields
target accepts an array of paths. The schema requires at least one
non-empty entry:
- type: remove
target:
- debug
- internal.notes
- metadata.auditWhen the path is missing
Removing a field that doesn't exist is a no-op — no error, the filter just continues. This is useful for "cleanup" filters that drop optional fields without caring whether each record actually has them.
Common patterns
Stripping internals before output
Most pipelines accumulate temporary fields during enrichment (cache
keys, internal IDs, debug data). Use remove right before the output
to keep the output clean:
filters:
- type: http_call
endpoint: …
# adds many fields, some of which we don't want to ship
- type: remove
target:
- _response
- _cache_key
- internalReset PII for non-production destinations
- type: remove
target:
- customer.full_name
- customer.phone
- customer.address