Releases: lf-edge/ekuiper
eKuiper 1.6.0 release
Overview
eKuiper 1.6.0 provides graph API as an alternative way to create rule in addition to SQL. It is friendly as the backend for a drag and drop UI and also more expressive then SQL. Beside this, we also highlight on enhancing SQL by adding more expressions and functions; on enhancing external connection by supporting protobuf format and enhancing various source/sink.
New Features
- Schema registry for protobuf by @ngjaying (#1271)
- Support protobuf as source/sink data format by @ngjaying (#1274)
- Config file upload REST api by @ngjaying (#1302)
- Support SQL in expression by @ngjaying (#1303)
- Rule graph API by @ngjaying (#1317)
- Lag function by @superrxan (#1321)
- SQL between expression by @ngjaying (#1327)
- SQL like expression by @ngjaying (#1327)
- SQL sink and TDEngine sink to support writing array data by @superrxan (#1331)
Improvements
- Helm chart: change ekuiper deployment type from stateful set to deployment by @brianbinbin (#1318)
- Rework sink cache and resend mechanism by @ngjaying (#1304)
- Time window align to nature time by @ngjaying (#1323)
- Unify rule status response to alwasy return JSON by @superrxan (#1335)
- Upgrade Go vesion to 1.18 by @ngjaying (#1337)
- Fix order by alias bug by @superrxan (#1299)
- Validate the native plugin in register time by @superrxan (#1301)
- EdgeX and MQTT source: do not exit the rule when disconnected by @superrxan (#1334)
Fixes
- Fix memory leak problem when starting rules multiple times by @ngjaying (#1309)
- Fix default array properties is null in the meta APIs by @superrxan (#1311)
- Filter must not apply on table before join align in planner by @ngjaying (#1316)
Docs
- Add Rule grap API description
- Add protobuf scheme upload description
- Add sink cache mechanism description
- Add SQL lag function description
- Add SQL IN/BETWEEN/LIKE clause description
Incompatible changes
During rework of sink cache mechanism, we delete some properties from etc/kuiper.yaml
and sink properties. Please update your rules which are dependant of these properties and try to migrate to the new properties.
Remove from etc/kuiper.yaml
: cacheThreshold, cacheTriggerCount, disableCache
Remove from sink properties: retryInterval, retryCount, cacheLength, cacheSaveInterval
New Contributors
- @brianbinbin made their first contribution in #1318
Full Changelog: 1.5.1...1.6.0
eKuiper 1.5.1 release
Overview
eKuiper 1.5.1 is a maintainance version that fixes several issues and add some properties to stabilize the product.
Most importantly, fix the instability connection issue with neuron. In order to reformat the output, add datatemplate
functionality for edgex and memory sink. For the mqtt connection, clear the session flag on server side. For documents, provide
documents for neuron integration and correct outdated message.
Fixes
- Fix connection lost prblem for neuron source when restarting the rule
- Fix the rule can not be deleted issue if the rule syntax become invalid because of funtion updated by plugins
- Let eKuiper home path in same place for dev docker images
- Fix CORS issue for authorization header in restful api
- Fix window_start() and window_end() can not use as parameters issue
Feature
- Add datatemplate support for edgex and memory sink
- Clear the mqtt session flag in server side when ekuiper have mqtt source or sink
Docs
- Provide a tutorial for neuron integration
eKuiper 1.5.0 release
Overview
eKuiper 1.5.0 enriches the functions and sources/sinks to extend the capability of computing and connecting. We also take a lot of efforts to improve the stability. Finally, we launch the community website https://ekuiper.org and host the brand-new doc there.
Breaking Changes
- Mqtt source
servers
property rename toserver
and allow only one server instead of an array. When starting docker image, usingdocker run -p 9081:9081 -d --name kuiper -e MQTT_SOURCE__DEFAULT__SERVER="tcp://broker.emqx.io:1883" lfedge/ekuiper:$tag
Features
- A series of functions to detect changes and deduplicate in a universal and flexible way. Checkout the examples.
- Build selective features to customize your eKuiper binary and to save disk and memory.
- Provide neuron source/sink to consume data from neuron and control neuron.
- Handle errors including panic in rule execution to avoid affecting other rules.
- Generic SQL pull source to pull data from various databases periodically.
- Generic SQL sink to write data to various databases.
- Data communication inside rules, shared sources or memory source/sink are now running in non-blocking mode to separate workloads between rules.
- Add function object_construct to grouping the select result.
- Separate context method to parse template and jsonpath so that sink plugins can leverage them for dynamic property parsing.
- Tdengine sink plugin to support sTable.
Fixes
- CLI query result now can show in multiple rows.
- Rule which does not specify option will have options like buffer size.
- Avoid message dropping in memory sink/source pair.
- Fix portable source plugin hang problem if receive timeout.
- Fix python plugin error is not shown for json dump error.
- Fix state mixing problem when invoking the same function multiple times in the same SQL clause.
Build
- Bring back Armv7 binary build
- Upgrade to go 1.17
- Sync doc to eKuiper.org
Docs
eKuiper 1.4.4 release
Overview
eKuiper 1.4.4 is a maintain version that fixes several issues.
Fixes
- Fix edgex source can not subscribe same topics for multiple rules when using share connection problem.
- Fix portable source plugin receive message hang problem .
- Fix tdengine plugin crash problem.
- Let eKuiper home path in same place for all docker images
eKuiper 1.4.3 release
Overview
eKuiper 1.4.3 is a maintenance version that fixes several issues.
Fixes
- Fix edgex source can not subscribe same topics for multiple rules when using share connection problem.
- Fix edgex source can not connect to mqtt broker problem.
- Fix mqtt source can not subscribe same topics for multiple rules when using share connection problem.
- Fix rule hang problem when python plugin has exited.
- Fix eKuiper can not run in armv7 problem.
- Fix tdengine plugin crash problem.
- Fix omitEmpty can not take effect when sendSingle is set problem.
- Return error when replace stream sql does not match name
Docs
eKuiper 1.4.2 release
Overview
eKuiper 1.4.2 is a minor version that fixes several issues.
Fixes
-
Fix a portable plugin function communication disorder problem
-
Cache isAggregate call result for portable plugin functions
-
Fix
parseDynamicProp
syntax conflict with mqtt topic that start with$
problem
Docs
eKuiper 1.4.1 release
Overview
eKuiper 1.4.1 fixed several defects and add some properties to stabilize the product . Firstly we provided an official docker image to help portable python plugins' develop and deployment. We also did some clean up work for portable plugins runtime. Secondly we optimized SQL runtime to reduce CPU consumption. Thirdly, We support Object
Type for EdgeX so users can define complex value type for devices. For example, user can define the device value in json format. Lastly, we cooperate closely with eKuiper-manager to make the eKuiper UI more easy use.
Features
- Support
Object
Type for EdgeX so that users can use complex value type. - Support certification based authentication for built-in http source/sink
- Optimize SQL runtime to reduce CPU consumption
Fixes
- Avoid panic when call window function in count window
- Fix anonymous field name duplicate problem
- Return detailed error message for installation failure in portable plugin
- Backend support for UI which makes UI more user friendly
Docs
eKuiper 1.4.0 release
Introduction
As a major release, eKuiper v1.4.0 brings many exciting features into the product. We introduce portable
plugin system to ease the development. build and deployment of plugin in addition to the native go plugin. Users can now use both go and python to compose a plugin and the system will be extended to more languages support in the future. We enable the built-in support of flexible rule pipeline by in-memory source and sink. Additionally, we extract a standalone connection layer(mqtt and edgeX now) so that the source, sink or user's plugin can share a connection instance to avoid connection overhead, which is required to connect to secure edgeX message bus.
Features
- Add portable plugin support, user can develop plugins in multiple languages
- portable plugin intrduction
- go sdk
- python sdk
- plugin develop help tool
- Support source/sink to share connections for mqtt or edgeX, please check this for more info
- Support secured edgeX sink by shared connection configuration since edgeX Jakarta, please check this for more info
- Add memory source and sink, please check this for more info
- KV storage implementation is now configurable. Provide redis as an alternative KV storage option in addition to default sqlite, please check the doc for how to configure the storage.
- eKuiper configuration can be overridden via environment variables, please check the doc for more info.
- Support JWT RSA256 Token authentication for rest API
- Support dynamic properties for some sinks such as mqtt sink dynamic topic, rest sink dynamic properties etc. Also export the context function to support dynamic properties so that customized plugin can also use dynamic properties.
- Retry mechanism now works for all sinks
Fixes
-
Mqtt source should stop executing after errors
-
Update tdengine client version to 2.2.0.5
-
Fix certification authentication bug in mqtt and http
-
Clean up the json description files of shipped sources, sinks and functions
-
Fix some SQL syntax validation issue
-
Return more message for get status when error happen
-
EdgeX sink support all type when meta is not specified
Docs
- Rule pipeline
- Portable Plugin
- Fix the typo in plugin management rest api
- Add connectionSelector property for mqtt/edgex source/sink
- Correct data compatibility comparison table
- Use JWT RSA256 Token authentication for rest api
- Add instructions on how to use share connection feature for edgeX Jakarta release
Thanks
- @rwadowski provides redis kv storage
- @rwadowski provides initial memory source/sink type
- @rwadowski provides config eKuiper by env variables
eKuiper 1.4.0-beta.1 release
Introduction
As a big milestone, eKuiper v1.4.0 will bring many exciting features into the product. User can start to try some of these features in eKuiper 1.4.0-beta.1. We introduce portable
plugin system to ease the development. build and deployment of plugin in addition to the native go plugin. Users can now use go and python to compose a plugin and the system can be easily extended to more language support. We enable the built-in support of flexible rule pipeline by memory source and sink. Additionally, we extract a standalone connection layer(mqtt and edgex now) so that the source, sink or user's plugin can share a connection instance to avoid connection overhead.
Features
- KV storage implementation is now configurable. Provide redis as an alternative KV storage option in addition to default sqlite, please check the doc for how to configure the storage.
- eKuiper configuration can be overwritten via environment variables, please check the doc for more info.
- Add portable plugin support, user can develop plugins in multiple languages
- portable plugin intrduction
- go sdk
- python sdk
- plugin develop help tool
- Support source/sink to share connections for mqtt or edgex, please check this for more info
- Add memory source and sink, please check this for more info
Fixes
- Mqtt source should stop executing after errors
- Update tdengine client version to 2.2.0.5
Docs
- Rule pipeline
- Portable Plugin
- Fix the typo in plugin management rest api
- Add connectionSelector property for mqtt/edgex source/sink
Thanks
- @rwadowski provides redis kv storage
- @rwadowski provides memory source/sink type
- @rwadowski provides config eKuiper by env variables
eKuiper 1.4.0-beta.0 release
Introduction
As a big milestone, eKuiper v1.4.0 will bring many exciting features into the product. User can start to try some of these features in eKuiper 1.4.0-beta.0. We introduce portable
plugin system to ease the development. build and deployment of plugin in addition to the native go plugin. Users can now use go and python to compose a plugin and the system can be easily extended to more language support. We enable the built-in support of flexible rule pipeline by memory source and sink. Additionally, we extract a standalone connection layer(mqtt and edgex now) so that the source, sink or user's plugin can share a connection instance to avoid connection overhead.
Features
- KV storage implementation is now configurable. Provide redis as an alternative KV storage option in addition to default sqlite, please check the doc for how to configure the storage.
- eKuiper configuration can be overwritten via environment variables, please check the doc for more info.
- Add portable plugin support, user can develop plugins in multiple languages
- portable plugin intrduction
- go sdk
- python sdk
- plugin develop help tool
- Support source/sink to share connections for mqtt or edgex, please check this for more info
- Add memory source and sink, please check this for more info
Fixes
- Mqtt source should stop executing after errors
- Update tdengine client version to 2.2.0.5
Docs
- Rule pipeline
- Portable Plugin
- Fix the typo in plugin management rest api
- Add connectionSelector property for mqtt/edgex source/sink
Thanks
- @rwadowski provides redis kv storage
- @rwadowski provides memory source/sink type
- @rwadowski provides config eKuiper by env variables