Final
Synopsis
Terminates the processing of a pipeline gracefully without raising errors.
Schema
final:
- description: <text>
- if: <script>
- ignore_failure: <boolean>
- on_failure: <processor[]>
- on_success: <processor[]>
- tag: <string>
Configuration
Field | Required | Default | Description |
---|---|---|---|
description | N | - | Explanatory note for documentation |
if | N | - | Condition determining when to finalize processing |
ignore_failure | N | false | If true , condition evaluation errors are ignored |
on_failure | N | - | See Handling Failures |
on_success | N | - | See Handling Success |
tag | N | - | Identifier for the finalization point |
Details
This processor is particularly useful for:
- Creating breakpoints
- Implementing conditional termination
- Optimizing execution by early termination
- Preventing further pipelines from running
Typical uses:
-
Early Exit on Success
processors:
- append:
field: tags
value: processed
- final:
if: "ctx.tags.contains('processed')" -
Prevent Duplicate Processing
processors:
- set:
field: processed_by
value: pipeline_a
- final:
description: "Prevent other pipelines from processing" -
Conditional Pipeline Branch
processors:
- final:
if: "ctx.environment == 'production'"
description: "Skip test processors in production"
- set:
field: test_field
value: test_value
It is good practice to use detailed description
fields to document the finalization points. Also, consider adding cleanup tasks using on_success
, test conditional finalization thoroughly, and use tags for tracking finalization points in logs.
Once final
is used, no further processors in any pipeline will execute. Use with caution in multi-pipeline setups, and consider using if
to prevent unintended early termination.
Examples
Basic
Stopping processing after the field update... |
|
prevents further processing: |
|
Conditionals
Finalizing based on packet count... |
|
stops the process when the condition is met: |
|
Success
Executing cleanup on finalization... |
|
terminates the pipeline gracefully: |
|