Releases: lf-edge/ekuiper
Releases · lf-edge/ekuiper
v2.3.0
SQL & Functions
- New
extractFunction: Added theextractfunction to easily retrieve data from nested structures. [Docs] - Single Conditional State Window: Introduced the single condition state window for advanced, event-driven windowing logic. [Docs]
- Enhanced
roundFunction: Theroundfunction now supports specifying the number of decimal places. [Docs] - Aggregate Function Access in WHERE Clause: Now supports accessing aggregate functions within the
WHEREclause. (e.g.,SELECT * FROM sim5 WHERE a > avg(a) GROUP BY countwindow(2)). - Multiple Stream/Table JOIN Support: Enabled joining data from multiple streams and tables.
- Slice Mode Updates: Implemented updates and improvements to Slice mode functionality.Added validation to detect and prevent operations in unsupported scenarios.
I/O & Sources/Sinks
- HTTP Pull Source State: HTTP Pull Source now supports state management similar to SQL Source.
- Streaming JSON for Sinks: Sinks now support streaming writes for JSON format output.
- Kafka Sink Dynamic Topic: Added support for dynamic topic configuration in Kafka Sink.
- SQL Source Support: Added support for the PostgreSQL
int4data type in SQL Source. - MQTT Source Multiple Topics: MQTT Source now supports subscribing to multiple topics using a comma-separated list (e.g.,
datasource="topic1,topic2"). [Docs] - WebSocket Scheme Configuration: WebSocket Source/Sink now supports scheme configuration (e.g.,
ws://orwss://). [Docs] - New Source: Added the Nexmark Source for benchmarking and testing.
- TFLite Plugin: Updated the TensorFlow version for the TFLite plugin.
- MQTT Source Session: Fixed issues related to MQTT source session configuration.
- WebSocket Client: Resolved issues in WebSocket client mode.
Operation & Management (Op)
- Stream Enhancement: Stream definition supports
VERSIONand quick configuration options. [Docs] - Preserved Rule Definition: Starting or stopping a rule no longer overwrites the original rule string definition.
- Plugin Configuration Location: Plugin configurations are now installed by default under the
datadirectory. - Pre-defined Rules Location: Pre-defined rules can now be configured under the
etcdirectory. - New API for Rule Schema: Introduced
GET /rules/{id}/schemato retrieve a rule's output schema. [Docs] - Schema Support: Schema now supports versioning. [Docs]
- Temporary Rules: Added support for temporary rules (
temp=true) which are not persisted and disappear after an eKuiper restart. - REST API Audit Log: Added an option to enable/disable REST API audit logs.
- pprof Integration: Support for configuring pprof on the same port as the REST service.
- Rule Restart Policy Update (Deprecation): Automatic rule restart is now handled by the timed global patrol mechanism. The legacy
restartStrategyconfiguration is deprecated and no longer takes effect. - Performance: Improved performance for reading source configurations.
- Support for EoF (End of File) Message.
- Service Shutdown Logic: Updated service shutdown logic to first close the REST service, preventing new requests while the service is stopping.
Build & Internal Refactoring
- Helm Chart Added: Officially released the Helm chart for eKuiper deployment. [Link]
- Shared Stream Refactoring: Major refactoring of the creation, startup, and stop logic for rules using shared streams. This resolves issues related to slow rule stopping and related start/stop anomalies.
- Schema Management Refactoring: Refactored schema management to support the registration of new schema types.
Full Change List
- feat: refactor sliding window by @Yisaer in #3744
- feat: support acc function condition by @Yisaer in #3749
- feat(slice): add slice mode by @ngjaying in #3756
- fix: fix lag default value by @Yisaer in #3758
- feat: support state window by @Yisaer in #3757
- fix(http): transport setting by @ngjaying in #3759
- fix(planner): donot share conn src by @ngjaying in #3765
- feat: portable plugin install in data dir by @Yisaer in #3773
- fix(planner): strict share conn by @ngjaying in #3781
- fix(edgex): tags field access by @ngjaying in #3782
- build(deps): bump oauth2 by @dependabot[bot] in #3789
- feat: support patch/put rule tags by @Yisaer in #3790
- fix: fix init plugin/sink meta by @Yisaer in #3791
- fix: validate window version by @Yisaer in #3793
- fix(window): state window logic by @ngjaying in #3794
- fix: graceful stop rule timeout by @Yisaer in #3792
- fix(kv): prepare ts query by @odaysec in #3767
- fix(checkpoint): gob register map[string]time.time by @ngjaying in #3795
- docs: file hook docs by @Yisaer in #3796
- fix(rule): upsert closed rule start failed by @ngjaying in #3799
- feat(contract): support EoF message by @ngjaying in #3800
- feat(source): support eof msg by @ngjaying in #3801
- refactor(schema): modularize schema by @ngjaying in #3802
- feat(schema): support zip by @ngjaying in #3805
- fix: fix roll done error handle by @Yisaer in #3806
- feat: support eval aggfunc in where condition by @Yisaer in #3803
- feat(mod): support register schema to format by @ngjaying in #3809
- fix: support sql source timestamp scan by @Yisaer in #3811
- feat(converter): support json writer by @ngjaying in #3812
- feat: support httppull state by @Yisaer in #3804
- feat(rest): API to get stream/rule runtime schema by @ngjaying in #3816
- fix: merge bugfixes by @ngjaying in #3817
- feat(rule): support temp rule by @ngjaying in #3818
- chore: merge slice mode updates by @ngjaying in #3819
- fix: remove gu plugin sink ack by @Yisaer in #3820
- test: fix random ut failure by @ngjaying in #3821
- feat(schema): schema message id multiple levels by @ngjaying in #3822
- fix(schema): compatible with path schema id by @ngjaying in #3823
- feat(schema): allow any type by @ngjaying in #3824
- fix(schema): merger schemaId parse by @ngjaying in #3825
- feat: support log rest api visit by @Yisaer in #3827
- feat: support dyn kafka sink topic by @Yisaer in #3831
- feat: sql source support pg int4 by @Yisaer in #3832
- feat: support mqtt subscribe multi topics by @Yisaer in #3830
- docs: add mqtt source multi topic doc by @Yisaer in #3835
- feat: support single condition state window by @Yisaer in #3836
- fix(schema): enable schema init by @ngjaying in #3837
- feat: add ci chart releaser by @eznix86 in #3833
- feat(module): pass props for merger by @ngjaying in #3839
- docs: add single condition statewindow doc by @Yisaer in #3838
- feat: support setreturning function extract by @Yisaer in #3840
- feat(schema): support versions by @ngjaying in #3841
- docs: add extract doc by @Yisaer in #3842
- feat(rule): init rule from both etc and data by @ngjaying in #3844
- docs: add inc blog by @Yisaer in #38...
v2.3.0-beta.7
What's Changed
- fix(topo): clean rule id for multi level subtopo by @ngjaying in #3895
- fix(stream): forbid to update stream shared option by @ngjaying in #3897
- fix(conv): register json writer by @ngjaying in #3899
- fix: fix tuple collector batcher by @Yisaer in #3898
- docs: rule and stream update by @ngjaying in #3896
Full Changelog: v2.3.0-beta.6...v2.3.0-beta.7
v2.3.0-beta.6
What's Changed
- refactor(rule): do not export topo by @ngjaying in #3873
- fix(io): fix websocket parse url rawQuery by @Yisaer in #3877
- feat(api): add run id to stream context by @ngjaying in #3886
- refactor(rule): state code structure by @ngjaying in #3879
- chore(rule): remove rule auto restart by @ngjaying in #3880
- feat: revise GetByPrefix by @Yisaer in #3884
- feat(topo): subtopo lifecycle refactor by @ngjaying in #3885
- ci: push chart to OCI by @Rory-Z in #3878
- fix: schema partial import save data into db by @Yisaer in #3888
- refactor(rule): run restart strategy periodically by @ngjaying in #3887
- fix(subtopo): runtime error should reject new rule by @ngjaying in #3890
- fix: revise CopyConfContent by @Yisaer in #3889
- docs: fix docs by @Yisaer in #3892
- feat: stop rest server first by @Yisaer in #3891
Full Changelog: v2.3.0-beta.5...v2.3.0-beta.6
v2.3.0-beta.5
What's Changed
- feat(serve): support pprof run in main server by @Yisaer in #3868
- docs: fix ack error doc by @Yisaer in #3869
- fix(rule): trigger should not change rule string by @ngjaying in #3867
- fix: fix window scanner by @Yisaer in #3872
- fix: fix lookup plan node by @Yisaer in #3866
- fix: fix websocket scheme props by @Yisaer in #3874
- feat(ext): update tflite by @ngjaying in #3863
- build(chart): update version and conf by @ngjaying in #3876
Full Changelog: v2.3.0-beta.4...v2.3.0-beta.5
v2.2.3
v2.3.0-beta.4
What's Changed
- fix(schema): enable schema init by @ngjaying in #3837
- feat: add ci chart releaser by @eznix86 in #3833
- feat(module): pass props for merger by @ngjaying in #3839
- docs: add single condition statewindow doc by @Yisaer in #3838
- feat: support setreturning function extract by @Yisaer in #3840
- feat(schema): support versions by @ngjaying in #3841
- docs: add extract doc by @Yisaer in #3842
- feat(rule): init rule from both etc and data by @ngjaying in #3844
- docs: add inc blog by @Yisaer in #3843
- docs(schema): add schema versioning by @ngjaying in #3845
- feat(stream): add version support by @ngjaying in #3846
- feat: support nexmark source by @Yisaer in #3848
- build(deps): bump cloudflare/circl by @dependabot[bot] in #3850
- feat(source): set props in extra option by @ngjaying in #3852
- fix(rule): do not wait if rule close err by @ngjaying in #3854
- feat: support statewindow checkpoint by @Yisaer in #3857
- fix(planner): validate duplicate fields by @ngjaying in #3858
- fix: fix websocket datasource path by @Yisaer in #3865
- fix: fix mqtt session config by @Yisaer in #3864
New Contributors
Full Changelog: v2.3.0-beta.3...v2.3.0-beta.4
v2.2.2
What's Changed
- fix(rule): upsert closed rule start failed by @ngjaying in #3798
- fix: fix roll done error handle by @Yisaer in #3807
- fix: cherry-pic fix to master-2.2 by @Yisaer in #3853
- fix: support sql source timestamp scan in #3811
- fix: remove go plugin sink ack #3820 in #3820
Full Changelog: v2.2.1...v2.2.2
v2.3.0-beta.3
What's Changed
- feat: support log rest api visit by @Yisaer in #3827
- feat: support dyn kafka sink topic by @Yisaer in #3831
- feat: sql source support pg int4 by @Yisaer in #3832
- feat: support mqtt subscribe multi topics by @Yisaer in #3830
- docs: add mqtt source multi topic doc by @Yisaer in #3835
- feat: support single condition state window by @Yisaer in #3836
Full Changelog: v2.3.0-beta.2...v2.3.0-beta.3
v2.3.0-beta.2
What's Changed
- fix: remove gu plugin sink ack by @Yisaer in #3820
- test: fix random ut failure by @ngjaying in #3821
- feat(schema): schema message id multiple levels by @ngjaying in #3822
- fix(schema): compatible with path schema id by @ngjaying in #3823
- feat(schema): allow any type by @ngjaying in #3824
- fix(schema): merger schemaId parse by @ngjaying in #3825
Full Changelog: v2.3.0-beta.1...v2.3.0-beta.2
v2.3.0-beta.1
What's Changed
- fix(schema): remove wildcard when having schema by @ngjaying in #3754
- feat: support median function by @Yisaer in #3755
- feat: refactor sliding window by @Yisaer in #3744
- feat: support acc function condition by @Yisaer in #3749
- feat(slice): add slice mode by @ngjaying in #3756
- fix: fix lag default value by @Yisaer in #3758
- feat: support state window by @Yisaer in #3757
- fix(http): transport setting by @ngjaying in #3759
- fix(planner): donot share conn src by @ngjaying in #3765
- feat: portable plugin install in data dir by @Yisaer in #3773
- fix(planner): strict share conn by @ngjaying in #3781
- fix(edgex): tags field access by @ngjaying in #3782
- build(deps): bump oauth2 by @dependabot[bot] in #3789
- feat: support patch/put rule tags by @Yisaer in #3790
- fix: fix init plugin/sink meta by @Yisaer in #3791
- fix: validate window version by @Yisaer in #3793
- fix(window): state window logic by @ngjaying in #3794
- fix: graceful stop rule timeout by @Yisaer in #3792
- fix(kv): prepare ts query by @odaysec in #3767
- fix(checkpoint): gob register map[string]time.time by @ngjaying in #3795
- docs: file hook docs by @Yisaer in #3796
- fix(rule): upsert closed rule start failed by @ngjaying in #3799
- feat(contract): support EoF message by @ngjaying in #3800
- feat(source): support eof msg by @ngjaying in #3801
- refactor(schema): modularize schema by @ngjaying in #3802
- feat(schema): support zip by @ngjaying in #3805
- fix: fix roll done error handle by @Yisaer in #3806
- feat: support eval aggfunc in where condition by @Yisaer in #3803
- feat(mod): support register schema to format by @ngjaying in #3809
- fix: support sql source timestamp scan by @Yisaer in #3811
- feat(converter): support json writer by @ngjaying in #3812
- feat: support httppull state by @Yisaer in #3804
- feat(rest): API to get stream/rule runtime schema by @ngjaying in #3816
- fix: merge bugfixes by @ngjaying in #3817
- feat(rule): support temp rule by @ngjaying in #3818
- chore: merge slice mode updates by @ngjaying in #3819
New Contributors
Full Changelog: v2.2.0-beta.1...v2.3.0-beta.1