Repository navigation
v2.5.0-alpha.2
Pre-release
Pre-release
·
45 commits
to master
since this release
Second alpha of the 2.5.0 minor release. For preview and testing; production users stay on 2.4.x.
Full Changelog: v2.5.0-alpha.1...v2.5.0-alpha.2
⚠️ Breaking Changes
- File path access sandboxing (#4144): File sink, file source, and RPC import/export operations are now restricted to the data directory by default. Access to external filesystem paths requires configuring
allowExternalFileAccess: true. - Stream buffer full policies and deprecation of
disableBufferFullDiscard(#4133): Buffer behavior is now configured on stream definitions viaBUFFER_FULL_POLICY="block|dropOldest". The rule optiondisableBufferFullDiscardis deprecated. In multi-stream rules, all streams must resolve to the identical buffer policy, or rule planning will fail with a conflict error. - SQL sink and lookup nil key rejection (#4140): In SQL sink update/delete operations and lookup queries,
nilkey values inWHEREconditions now return an error instead of matching rows viaIS NULL.
New Features
- Stream buffer policies: support
BUFFER_FULL_POLICY="block|dropOldest"on stream definitions with shared-stream backpressure and cancellable blocked delivery by @ngjaying in #4133 - Cumulative analytic function
acc_distinct_collectand array index functionarray_positionsby @Yisaer in #4163 - Infinite SQL reconnect recovery across temporary database outages and non-blocking lookup table creation by @ngjaying in #4166
- Explicit connection identity in the connection pool separating shared connection keys from consumer reference IDs by @ngjaying in #4170
Security Hardening
- Block SSRF in gRPC executor, WebSocket client, and msgpack executor by enforcing
basic.enablePrivateNeton egress dialers by @ngjaying in #4143 - Restrict file source/sink and RPC import/export paths to the data directory sandbox, and enforce ID validation on plugin/service names by @ngjaying in #4144
- Parameterize SQL sink write queries with dialect-aware placeholders (
?,$N,@pN,:N), typed parameter binding, and driver parameter limit chunking by @ngjaying in #4140 - Parameterize SQL lookup query values with dialect-aware placeholders to eliminate SQL injection and literal formatting bugs by @ngjaying in #4139
Bug Fixes
- JOIN: determine left and right sides strictly from
FROM(left) andJOIN(right) instead ofONclause predicate mention order by @SahilRajputdotexe in #4189 - Conf: honor companion JSON schema property types during environment variable configuration overrides to prevent numeric-like strings (e.g. passwords, client IDs) from decoding as integers by @Dream95 in #4160
- Cache: exclude tracer runtime contexts from gob serialization to allow disk spill when OpenTelemetry tracing is enabled, and resume resend ticker immediately upon restoring cache entries on restart by @ngjaying in #4187 and #4186
- MQTT: fix MQTT v5 client reconnect resubscription by ensuring SUBSCRIBE packets always include topic filters by @fl0-m in #4185
- Cast: reject unterminated quoted time formats with explicit errors instead of panicking on trailing quotes, and preserve literal apostrophes in doubled quotes by @zjncs in #4124
- Rule: serialize stop checks under rule lock to avoid nil-pointer panic during topology auto-exit and explicit stop races by @ngjaying in #4167
- SQL: bound initial connection and lookup dial attempts to 10s to prevent blocking rule and lookup lifecycle operations by @Yisaer in #4155 and @ngjaying in #4161
- SQL: make SQL source, lookup, and sink database operations responsive to rule cancellation via context propagation by @Yisaer in #4147
- Startup: retry transient database write errors during startup
init.jsonimport up to 3 times before deferring initialization marker by @ngjaying in #4151 - Planner: resolve unqualified references to preceding direct
SELECTfield aliases in schema-less streams by @ngjaying in #4137 - Log: avoid oversized rule parse errors by reporting input byte size and SHA-256 fingerprint instead of full SQL/JSON dumps by @ngjaying in #4134
- XSQL: guard against nil dereference panic during empty join lookup when projection discards source fields by @Hanabi9248 in #4136
Performance
- Defer sink property template evaluation to once per batch in slice mode with batching sinks by @ngjaying in #4148
- Pre-size slice tuple sink content with row field capacity to eliminate incremental slice reallocations in projections by @ngjaying in #4149
Dependencies and Chores
- Bump
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttpfrom 1.43.0 to 1.45.0 by @dependabot[bot] in #4152 - Test: fix flaky
TestRulerace condition in server tests by @ngjaying in #4175
New Contributors
- @Hanabi9248 made their first contribution in #4136
- @fl0-m made their first contribution in #4185
- @SahilRajputdotexe made their first contribution in #4189