Skip to content

Tags: elastic/mito

Tags

v1.27.0

Toggle v1.27.0's commit message
lib: add streaming decode, stream producers, and emit macro

Add three composable features for processing large payloads in CEL
programs without materialising all records in memory:

- Opaque stream type (streamVal) wrapping io.Reader, with stream_gzip
  and stream_zip producers that wrap decompression readers around
  in-memory bytes.

- Lazy JSON stream decoder (decode_json_stream_lazy) that accepts
  stream, bytes, or string and returns a traits.Iterable decoding
  values on demand via json.Decoder.

- Emit macro that iterates a list or iterable, calling an Emitter
  callback for each element. Supports optional per-element cursor
  tracking. In the mito CLI, emitted events are printed to stderr.

v1.26.0

Toggle v1.26.0's commit message
mito,internal/fb: add -fb flag for filebeat-compatible config validation

When -fb is passed, mito validates the run configuration against the
same constraints the filebeat CEL input enforces: auth mutual
exclusion, per-method field requirements, resource URL, rate limit
and retry bounds, max_executions, and rejection of a "secret" key in
state. A secret_state config field is provided as the correct
alternative, injected into state.secret before execution.

Validation uses plain Go structs with yaml tags, not go-ucfg.
Behaviour under -fb is not covered by semver compatibility
guarantees since the validation rules track upstream filebeat.

v1.24.2

Toggle v1.24.2's commit message
lib,mod: handle map[any]any and []any from cel-go v0.27.0

cel-go v0.27.0 (cel-expr/cel-go#1261) changed ConvertToNative to
remap interface{} targets to map[any]any for maps and []any for
lists. This breaks type switches in makeMapStrings, makeStrings,
and mapStrings that expected the previous map[ref.Val]ref.Val and
[]ref.Val types.

Add cases for the new types, round-tripping through NativeToValue
and ConvertToNative with an explicit target type.

v1.23.2

Toggle v1.23.2's commit message
lib,mod: handle map[any]any and []any from cel-go v0.27.0

cel-go v0.27.0 (cel-expr/cel-go#1261) changed ConvertToNative to
remap interface{} targets to map[any]any for maps and []any for
lists. This breaks type switches in makeMapStrings, makeStrings,
and mapStrings that expected the previous map[ref.Val]ref.Val and
[]ref.Val types.

Add cases for the new types, round-tripping through NativeToValue
and ConvertToNative with an explicit target type.

v1.25.1

Toggle v1.25.1's commit message
lib,mod: handle map[any]any and []any from cel-go v0.27.0

cel-go v0.27.0 (cel-expr/cel-go#1261) changed ConvertToNative to
remap interface{} targets to map[any]any for maps and []any for
lists. This breaks type switches in makeMapStrings, makeStrings,
and mapStrings that expected the previous map[ref.Val]ref.Val and
[]ref.Val types.

Add cases for the new types, round-tripping through NativeToValue
and ConvertToNative with an explicit target type.

Retract v1.25.0 which shipped without this fix.

v1.25.0

Toggle v1.25.0's commit message
mod: update cel to v0.27.0

v0.27.0 is marked as a breaking release. The breaking change
(cel-expr/cel-go@c66b3130b) removes standard type names (int, string,
bool, etc.) from the environment's variable declarations. Before
this change, declaring a user variable with one of those names
caused an "overlapping identifier" error; now user variables can
shadow type names. Type resolution is unaffected because the
checker falls through to the type provider. We do not declare
any user variables with standard type names, so this has no
impact on mito.

[git-generate]
go get google.golang.org/genproto/googleapis/rpc@v0.0.0-20260319201613-d00831a3d3e7
go get github.com/google/cel-go@v0.27.0
go mod tidy

go run github.com/uber-go/gopatch@latest . << PATCH
@@
@@
- ast, iss = cel.NewStaticOptimizer(folder).Optimize(env, ast)
+ opt, err := cel.NewStaticOptimizer(folder)
+ if err != nil {
+     return nil, nil, nil, fmt.Errorf("failed to make new static optimizer: %v", err)
+ }
+ ast, iss = opt.Optimize(env, ast)

@@
@@
- return types.NewErr(err.Error())
+ return types.NewErr("%v", err)

@@
var x identifier
@@
- return types.ValOrErr(x, "no such overload for "+name)
+ return types.ValOrErr(x, "no such overload for %s", name)

PATCH

v1.24.1

Toggle v1.24.1's commit message
testdata: make example.com tests less brittle

v1.23.1

Toggle v1.23.1's commit message
testdata: make example.com tests less brittle

v1.22.1

Toggle v1.22.1's commit message
testdata: make example.com tests less brittle

v1.24.0

Toggle v1.24.0's commit message
lib: add timestamp and duration truncate methods