eKuiper 1.8.0
Features
SQL & Graph
- Add when condition for analytic function by @superrxan in #1534
- General tensorflow function to call any TFlite models directly from SQL by @superrxan & @ngjaying in #1513
- Graph API: add switch node by @ngjaying in #1585
- Graph API: add script node by @ngjaying in #1586
- Statistic functions by @superrxan in #1591
Source & Sink
- Video source to handle video stream by @superrxan in #1491
- Format & schema updates
- File source to support stream and support more types like csv and lines.
- Support edgex nats message bus by @superrxan in #1474
Rule Runtime
Extension
- Wasm plugin initial support by @erfenjiao
- Portable plugin hot reload support by @ngjaying in #1524
Operation
- Update metadata/source api by @ngjaying in #1512
- Full data export import by @superrxan in #1573
Improvements
- feat(conf):Add mqtt link info for baetyl by @hannatao in #1527
- feat(function): allow resize function to output in raw format by @ngjaying in #1529
- refactor(parser): move stream management related keyword into common word by @ngjaying in #1557
- feat(edgex): support default edgex docker compose permission setting by @ngjaying in #1461
- fea(plugin): add arm64 labelImage plugin by @superrxan in #1459
- refactor(redis): switch all redis inference to goredis by @ngjaying in #1469
- test(service): add unit test for service manager by @ngjaying in #1603
Build/CI
- chore: change latest image to alpine image by @Rory-Z in #1485
- chore: update docker action version by @Rory-Z in #1515
- chore: fix upload artifact error in github workflow by @Rory-Z in #1526
Docs
- doc: schemas and uploads folder are moved from etc to data by @ngjaying in #1468
- doc: arch diagram updates by @ngjaying in #1564
- doc(source): doc for file source by @ngjaying in #1570
- feat(docs): add docs preview script by @Swilder-M in #1574
- fix(doc): typo for window filter by @ngjaying in #1472
- doc(lookup): lookup table tutorial by @ngjaying in #1480
- build(docker): change default image to alpine by @Rory-Z in #1481
- fix(docs): update docs docker image by @superrxan in #1482
- Doc fixes by @ngjaying in #1489
- doc(portable): add python plugin complete zip to fix the link by @ngjaying in #1539
- doc: fix dead link in quick start by @ngjaying in #1555
- doc: update readme.md by @jinfahua in #1560
- Schema doc by @ngjaying in #1553
- doc: reconstruct by @ngjaying in #1599
- doc updates by @ngjaying in #1601
- Update edgex_rule_engine_tutorial.md by @zhoumengxiong in #1578
- add go report card by @ngjaying in #1602
- doc: add more elaboration for custom static format extension by @ngjaying in #1606
- fix(docs): add ekuiper endpointurl to ekuiper manager by env by @superrxan in #1609
- fix(docs): add tutorial for when function by @superrxan in #1614
Fixes
- fix(op): analytic functions dependency by @ngjaying in #1471
- fix(connection): share connection do not take effect by @superrxan in #1476
- fix(window): time window should always triggered by time by @ngjaying in #1475
- fix(test): sort the keys to make result consistent by @ngjaying in #1477
- fix(rest): fix restapi plugins/sources/prebuild and plugins/sources/{name} conflict issue by @superrxan in #1478
- fix(config): do not overwirte sink yaml config by environment by @superrxan in #1479
- fix(plugin): build labelImage for tensorflow in alpine by @superrxan in #1483
- fix(plugin): remove labelImage plugin for alpine by @superrxan in #1484
- fix(conf): fix config overwritten by environment issue by @superrxan in #1492
- fix(func): avg/max/min should support int64 inputs by @ngjaying in #1496
- fix(row): add lock for ToMap to avoid concurrent map write by @ngjaying in #1497
- fix(meta): clean up for resource manager by @ngjaying in #1494
- fix(meta): update sql source json to add lookup configuration by @ngjaying in #1503
- fix(meta): remove meta data when plugin deleted by @superrxan in #1507
- fix(rule): obey triggered value when creating rules by @ngjaying in #1504
- fix(row): write once for toMap cache for 1.8 by @ngjaying in #1518
- fix(func): analytic depending on alias must run alias firstly for 1.8 by @ngjaying in #1523
- fix(rule): recover rule problem when using deleted plugin by @ngjaying in #1522
- fix(rule): rule start/stop should always send signal by @ngjaying in #1525
- fix(row): do not write out the internal fields for join tuple for 1.8 by @ngjaying in #1531
- fix(plugin): fix video and tflite build error by @superrxan in #1535
- fix(plugin): fix error in video source install script by @superrxan in #1537
- fix(rule): rule hang while restarting by @ngjaying in #1536
- fix: rule state and doc by @ngjaying in #1542
- fix(portable): fix restart rule with multiple portable symbol reference by @ngjaying in #1543
- fix(plugin): add ut for tflite by @superrxan in #1541
- fix(table): key should be case sensitive by @ngjaying in #1545
- fix(planner): do not move predicate for sliding window by @ngjaying in #1547
- Solve the abnormal problem of join clickhouse dimension table by @nickscut in #1561
- fix(build): add git for python runtime image by @superrxan in #1565
- fix(rule): update rule state in db when starting by @ngjaying in #1568
- fix(mqtt): add timeout to avoid potential hang by @ngjaying in #1567
- bugfixes for format and schema by @ngjaying in #1576
- fix(stream): strict validation defaults to false by @ngjaying in #1577
- fix(plugin): can not use timestamp from message as tdengine timestamp index by @superrxan in #1582
- Solve the problem of registering an external service reporting invalid file path by @nickscut in #1588
- fix(function): add stats function for built-in function by @superrxan in #1593
- fix: metrics and optional server by @ngjaying in #1596
- fix(function): fix int validation to allow int64 and other int types by @ngjaying in #1597
- fix(rule): must reload topo when rule start by @ngjaying in #1604
- fix(config): recover all rules when import data by @superrxan in #1605
- fix(metrics): remove prometheus metric when rule deleted by @ngjaying in #1607
- fix(meta): fix typo in meta json description by @superrxan in #1610
- fix(config): schema data config import export support by @superrxan in #1611
- fix(mqtt): connect timeout should be an error by @ngjaying in #1612
- fix: resolve null pointer exception by @logo306142054 in #1613
New Contributors
- @hannatao made their first contribution in #1527
- @nickscut made their first contribution in #1561
- @zhoumengxiong made their first contribution in #1578
- @logo306142054 made their first contribution in #1613
Full Changelog: 1.7.0...1.8.0