🚀 Features
Section titled “🚀 Features”Implement move operator
Section titled “Implement move operator”Apr 17, 2025 · @raxyte · #5117
We added a new move operator that moves a field into another, effectively a
smart renaming such as ctx.message=status.msg moves the values from
status.msg into the field message of a record ctx and drops status.msg.
Add optimizations for if
Section titled “Add optimizations for if”Apr 16, 2025 · @dominiklohmann · #5110
The mo suffix allows for specifying durations in terms of months. For example,
3mo returns a duration equivalent to three months. The unit has alternative
spellings month and months, and is defined as one twelfth of a year.
Add a hidden field to diagnostics
Section titled “Add a hidden field to diagnostics”Apr 16, 2025 · @dominiklohmann · #5119
The output of the diagnostics operator now includes an additional hidden
field that is set to true for pipelines that are not visible on the Pipelines
page of the Tenzir Platform, e.g., because they’re run under-the-hood by the
platform or interactively in the Explorer.
Fix panic in head 0 | write_json arrays_of_objects=true
Section titled “Fix panic in head 0 | write_json arrays_of_objects=true”Apr 15, 2025 · @dominiklohmann · #5115
write_json arrays_of_objects=true now works correctly with an empty input,
returning an empty JSON array instead of running into a panic.
Implement from_http
Section titled “Implement from_http”Apr 14, 2025 · @raxyte · #5114
from_http <host:port>, server=true creates an HTTP/1.1 server that listens on
a specified hostname and port. In the future, the load_http operator’s HTTP
client will be integrated with this operator as well, eventually superseding
load_http.
🔧 Changes
Section titled “🔧 Changes”Add optimizations for if
Section titled “Add optimizations for if”Apr 16, 2025 · @dominiklohmann · #5110
1y in TQL now equals 365.2425 days, which is the average length of a year in
the Gregorian calendar. This aligns the duration literal with the years
function and how the Tenzir Platform renders durations.
Implement file_content(path:string)
Section titled “Implement file_content(path:string)”We added a new function file_contents to read bytes from a file with an
absolute path.
Make TQL2 the default
Section titled “Make TQL2 the default”Apr 8, 2025 · @dominiklohmann · #5086
TQL2 is now the default and only option for writing pipelines with Tenzir. The
environment variable TENZIR_TQL2, the configuration option tenzir.tql2 have
no more effect. Using the command-line option --tql2 results in an error.
🐞 Bug Fixes
Section titled “🐞 Bug Fixes”Add optimizations for if
Section titled “Add optimizations for if”Apr 16, 2025 · @dominiklohmann · #5110
Operators that interact with state in the node that is not local to the
pipeline, e.g., context::update, now properly work when used inside an if
statement. Previously, pipelines of the form if … { context::update … } failed
at runtime.
Branches in if statement no longer run on a single thread, and instead
properly participate in the thread pool. This fixes performance problems when
running complex pipelines inside branches. Note that this causes the output of
the if operator to be unordered between its branches.
Literal values of type time in expressions failed to parse when they used
subsecond prevision or a time-zone offset. This no longer happens.