Commit Graph

282 Commits

Author SHA1 Message Date
JimMoen 6168745f90 chore: update copyright 2022-04-14 11:23:25 +08:00
Shawn ae8f03a188 fix(rules): deny POST /rules with an existing Id 2022-04-13 23:16:29 +08:00
EMQ-YangM 0dc26ba483 fix: create new version 2022-04-13 15:01:47 +08:00
EMQ-YangM 6600de710a fix: fix behavior of rule-engine when selection field does not exist
when the selection field does not exist, it should output field => undefined
2022-04-13 14:55:43 +08:00
EMQ-YangM 1886893fa1 fix: add zip_compress functions 2022-04-13 14:19:32 +08:00
DDDHuang 73ac4c1ff8 fix: random id ensure do not delete resource 2022-04-11 18:33:20 +08:00
EMQ-YangM 8530ecec4d fix: delete a resource before updating it 2022-04-08 11:46:10 +08:00
EMQ-YangM adf7d53ca5 fix: use concat replace flatten 2022-04-08 10:27:28 +08:00
EMQ-YangM 7606f55673 fix: update emqx_rule_engine.appup.src 2022-04-08 10:17:18 +08:00
EMQ-YangM 96b26bf4ce fix: discard rpc call failed data 2022-04-08 10:12:40 +08:00
Yang Miao 16dc0d6555
Merge pull request #7536 from EMQ-YangM/reset_cluster_metrics
feat: impl reset cluster metrics
2022-04-07 11:31:49 +08:00
Yang Miao 75486efb11
Merge pull request #7534 from EMQ-YangM/dev/v4.3.14
fix: change rule_speed record type
2022-04-07 10:37:27 +08:00
EMQ-YangM 1c32b08b21 feat: impl reset cluster metrics 2022-04-07 10:32:58 +08:00
EMQ-YangM 0e02e8df9d fix: change rule_speed record type 2022-04-07 09:50:31 +08:00
Thales Macedo Garitezi a1705f5653
fix: flaky test 2022-04-06 09:11:09 -03:00
Georgy Sychev 1a715c8708 feat(emqx_dashboard): subsciption to update password
emqx_dashboard restarted in ekka hook
Closes #3155
2022-04-05 10:40:09 +02:00
Zaiming (Stone) Shi 5b58eaa203 refactor(emqx_rule_engine): return not raise error for known reasons 2022-04-04 19:10:52 +02:00
Zaiming (Stone) Shi 67ce53b5fc fix(appup): re-generated emqx_rule_engine.appup.src 2022-04-02 23:25:36 +02:00
Zaiming (Stone) Shi a54813dd69 fix(appup): re-generate appup from 4.3.13 2022-04-02 23:00:41 +02:00
EMQ-YangM 299c369d80 feat: enhanced rule engine error handling when json parsing error 2022-04-02 16:24:07 +08:00
Xinyu Liu b84ef11935
Merge branch 'dev/v4.3.14' into dev/v4.3.14 2022-04-01 09:32:42 +08:00
Xinyu Liu 3cc0bb8284
Merge branch 'dev/v4.3.14' into fix_patter_match_v4.3 2022-04-01 09:14:34 +08:00
EMQ-YangM 326634c287 feat: impl api PUT /rules/{id}/reset_metrics 2022-03-31 18:00:57 +08:00
EMQ-YangM 510e4d31e4 fix: load_module emqx_rule_events 2022-03-31 13:48:12 +08:00
EMQ-YangM cead8c9056 fix: use masp:get/3 to avoid crash after match failure 2022-03-30 09:44:06 +08:00
DDDHuang 6ab0934674 fix(rule): connection test when creating a resource 2022-03-30 09:23:51 +08:00
zhongwencool 4ee586a738 fix: appup.src 2022-03-29 17:12:35 +08:00
Chris a1a37bcbee feat: Add mongo_date function to support saving timestamp as MongoDB Date object 2022-03-25 17:43:32 +01:00
JianBo He b76372e621 chore: remove duplicated emqx_rule_funcs in appup.src 2022-03-23 19:29:58 +08:00
Xinyu Liu 0d55b9242d
Merge branch 'main-v4.3' into resource_get_status_timeout 2022-03-23 17:59:59 +08:00
Shawn e8c7388aa4 chore: update appup file for emqx_rule_engine 2022-03-23 16:21:27 +08:00
zhongwencool b993595c6d fix: add emqx_rule_funcs to appup.src 2022-03-23 15:42:53 +08:00
Shawn 5275e6a30f fix(rule): get the cached status when calling emqx_rule_engine:get_resource_status/1 2022-03-23 15:33:50 +08:00
EMQ-YangM 62eff94249 feat(emqx_rule_funcs): add functions gzip, gunzip, zip, unzip 2022-03-22 15:16:31 +08:00
Shawn 5823751d7d chore: bump emqx_rule_engine to 4.3.9 2022-03-18 18:28:30 +08:00
Shawn 81ae2be760 fix(rules): enlarge precisions of floats to maximum 17 decimal places.
When printing floats to strings, we have to define a small decimal
limits to avoid print a too long and "inaccurate" float number:

```
2> float_to_binary(0.3).
<<"2.99999999999999988898e-01">>
```

This fix sets precision of floats to 17 digits after the decimal point.

This precision is larger than precision of most `double` data type used by
databases(14 digits for mysql and 15 digits for pgsql).
2022-03-18 15:42:01 +08:00
Zaiming (Stone) Shi cca9e52c9a chore(appup): add missing appup instructions 2022-03-01 11:41:52 +01:00
Thales Macedo Garitezi cf1cc7e9db
chore(appup): update appup files 2022-02-24 17:14:47 -03:00
Zaiming (Stone) Shi 43c900bb5a chore: rename more descriptive EQM X to EMQX 2022-02-22 11:16:38 +01:00
Zaiming (Stone) Shi a5f6e94467 docs: EMQ X -> EMQX 2022-02-15 22:12:46 +01:00
Zaiming (Stone) Shi e09e5673eb docs(README): EMQ X -> EMQX 2022-02-15 16:15:25 +01:00
Thales Macedo Garitezi fdef292ef7
fix(appup): rm redundant `load_module` instruction after `update` 2022-02-10 09:31:36 -03:00
Thales Macedo Garitezi e053700441
style: please elvis checks 2022-02-09 11:02:05 -03:00
Thales Macedo Garitezi 5e223ac64f
chore(appup): update appup files 2022-02-09 09:54:39 -03:00
Thales Macedo Garitezi b968d4c416
fix(ctl): fix formatting when printing messages without arguments (4.3)
Without passing an empty argument list to `emqx_ctl:print`, formatting
instructions like `~n` are being printed literally.

```
Ignore.~nJoin the cluster successfully.~nCluster status: #{running_nodes =>
                      ['emqx@emqx-0.int.thalesmg','emqx@emqx-1.int.thalesmg',
                       'emqx@emqx-2.int.thalesmg','emqx@emqx-3.int.thalesmg',
                       'emqx@emqx-4.int.thalesmg'],
                  stopped_nodes => []}
```
2022-02-09 09:36:27 -03:00
EMQ-YangM 03d240c59e fix(emqx_rule_engine_metrics): fix code_change vsn value 2022-01-24 11:14:31 +08:00
Shawn 2d00373e49 fix(appup): update appup file for emqx_rule_engine_api 2022-01-19 19:51:25 +08:00
Shawn 70c6ac4e0d fix(rule): deny POST rules or resources with empty ids 2022-01-19 19:22:25 +08:00
Shawn eec566fe40 fix(rule): restore the metrics for actions in cluster 2022-01-14 10:33:32 +08:00
Shawn 4abcab8d52 fix(appup): update appup files for emqx,emqx_sn,rule_engine 2022-01-13 18:37:22 +08:00
Shawn 9f7f5070b2 fix(channel): update the calls to emqx_session APIs 2022-01-13 13:33:27 +08:00
Shawn 217acc0154 feat(rule): add new event 'delivery_dropped' 2022-01-12 20:11:08 +08:00
EMQ-YangM da8cd5d103 fix(rule_engine_metrics): fxi string:to_integer pattern match error 2022-01-11 22:09:38 -08:00
EMQ-YangM de58c8e7bc refactor(rule_engine_metrics): refactor code_change 2022-01-11 22:09:38 -08:00
EMQ-YangM 7605fa5e64 fix(rule_engine_metric): remove unused metrics 'overall_metrics' 2022-01-11 22:09:38 -08:00
Shawn 82c6eaa3aa
Merge branch 'main-v4.3' into main4.3 2022-01-10 12:31:12 +08:00
EMQ-YangM 3956eaddd7 fix(rule_engine_metrics): add more rulge_engine version to emqx_rule_engine.appup.src 2022-01-09 19:27:49 -08:00
Shawn fbeba39f0d fix(rule): compare to null variables should return false 2022-01-06 20:36:01 +08:00
Shawn b7bcb37eab fix(rule): restore metrics for actions 2022-01-06 20:18:05 +08:00
EMQ-YangM be81c65eda feat(rule_engine_metics): add hot upgrade feat 2022-01-06 00:47:17 -08:00
EMQ-YangM 2074dd63f9 test(rule_engine_metrics): add more test 2022-01-05 21:11:52 -08:00
EMQ-YangM 1211c658fc fix(emqx_rule_engine): change vsn to 4.3.7 2022-01-05 19:18:16 -08:00
EMQ-YangM fae49ad228 fix(rule_engine_metrics): remove more space 2022-01-05 19:03:28 -08:00
EMQ-YangM d7a3ade200 fix(rule_engine_matrics): remove more space 2022-01-05 19:00:59 -08:00
EMQ-YangM 2608798826 fix(rule_engine_metrics): fix RuleID reference 2022-01-05 18:56:34 -08:00
EMQ-YangM c214af2ac0 fix(rule_engine_metics): centralized statistics exception 2022-01-05 18:51:28 -08:00
EMQ-YangM e5993c9f72 refactor(rule_engine_metrics): remove function 'message()' 2022-01-05 02:08:40 -08:00
EMQ-YangM c2870b3322 test(rule_engint_metrics): add test for 'FOREACH' 2022-01-05 01:57:18 -08:00
EMQ-YangM 88913a9144 test(rule_engine_metrics): add test 't_metrics' 2022-01-05 01:20:53 -08:00
EMQ-YangM a5a8aa3b6d feat(rule_metrics): add more metrics to the rule engine 2022-01-05 00:20:06 -08:00
Zaiming Shi f1f2e51c99 fix: update appup 2021-11-08 16:17:54 +01:00
Turtle 9f843d618d fix(rule): fix rpc timeout extend the RPC timeout interval 2021-09-15 08:19:22 +08:00
Turtle 3ad0678892 fix(rule): fix edit rule fail in the cluster 2021-09-14 14:54:24 +08:00
Turtle ac0639f6b1 fix(actions): fix republish actions payload is null 2021-08-04 14:39:19 +08:00
Turtle 8fb9170df8 fix(rule-engine): fix rule status is not available after the emqx restart 2021-08-03 17:31:43 +08:00
Shawn 6724e59e7a fix(appup): relup for emqx_rule_registry failed 2021-06-21 12:18:39 +08:00
Shawn 5962c9c83c
feat(rules): remove stats update from rule_engine_registry (#5029) 2021-06-19 17:02:43 +08:00
Shawn c0367fb8dd
Delete resource failed when searching dependent rules (#4996) 2021-06-17 16:45:44 +08:00
k32 1e562d4bc6 chore(rule_engine): Don't import alias/1 BIF
Fixes: #4847
2021-05-22 01:40:07 +02:00
Shawn 4cd056cab5
fix(rule_engine): update status to false when refresh resource failed (#4821)
* fix(rule_engine): update status to false when refresh resource failed

* fix(dialyzer): ignore import_modules/1 created fun has no local return

* fix(appup): update appup for rule engine
2021-05-17 17:59:01 +08:00
Zaiming Shi ded494f544 fix(emqx_rule_engine): add appup 2021-05-11 14:25:46 +02:00
Turtle 80ef076cee feat(rule_engine): rule sql add null function 2021-05-08 17:15:07 +08:00
Zaiming Shi fbe15859f5 fix(emqx_rule_utils): http connectivity check ipv6 support 2021-04-28 10:43:36 +02:00
Shawn bea28d887c fix(rule_engine): refresh rules and then re-enable it 2021-04-27 15:45:25 +08:00
Shawn 6557b132a2 fix(rule_engine): only refresh enabled rules at bootup 2021-04-27 11:17:12 +08:00
Shawn 7198c018e2 fix(rule_engine): change the rule state when force enabled/disabled 2021-04-27 11:17:12 +08:00
Shawn 18688da0c1 fix(rule_engine): only auto re-enable the rule when it was force disabled 2021-04-27 11:17:12 +08:00
Shawn da81ab7988 fix(rule_engine): remove sleep before refresh rules 2021-04-27 11:17:12 +08:00
Shawn e3501acc02 fix(rule_engine): delete resource crashes when dependent rule exists 2021-04-27 11:17:12 +08:00
Shawn 3646e76a7a fix(rule_engine): re-enable rules after resource started 2021-04-27 11:17:12 +08:00
Shawn 9fd43ef882 fix(rule_engine): reformat some code for dependent rules discovery 2021-04-27 11:17:12 +08:00
DDDHuang 29592fe1b4
Fix rule engine build fail (#4673)
* fix: add rule engine resources time
2021-04-26 15:32:54 +08:00
Zaiming Shi d61b100cc9 chore: more copyright updates 2021-04-23 20:43:00 +02:00
Zaiming Shi 6354e75626 chore: update copyrights 2021-04-23 20:43:00 +02:00
DDDHuang 4178e1a023 fix: disable rule if build fail 2021-04-22 14:46:28 +08:00
Shawn 19a9bab3a4 feat(rule_engine): add rule sql functions for datetime rfc3339 2021-04-22 10:32:44 +08:00
Shawn b5edba7729 fix(rule_engine): load hooks to all the nodes in cluster 2021-04-12 09:41:28 +08:00
Zaiming Shi d8e410e770 fix(emqx_rule_engine): missing calls
some calls are for enterprise only
2021-04-11 22:55:39 +02:00
JianBo He 496e5381fb chore(rule-engine): compatible with the lower case hash string 2021-03-25 09:10:05 +08:00
JianBo He 277cab86d3 refactor: improve the speed of hexstr and binary conversions 2021-03-23 18:25:19 +08:00
wwhai 0d75ea874b fix(rule-engine): add 'undefined' type for create time 2021-03-19 08:57:19 +08:00
wwhai f7b34cb098 feat(rule-engine): list rule support order by timestrap 2021-03-12 17:35:13 +08:00
Zaiming Shi c752f3bec5
Refactor http lib add uri parse (#4292)
* feat(http_lib): Add uri parse to emqx_http_lib

* fix(webhook): call emqx_http_lib to parse uri

* fix(auth-http): Call emqx_http_lib to parse uri

* fix(rule-engine): call emqx_http_lib to parse uri
2021-03-06 13:35:02 +08:00
z8674558 1504164933 chore(src): fix dialyzer warnings (match values) 2021-03-03 20:06:31 +09:00
Zaiming Shi 8316f8cc34 fix(rule-engin-api): transform input config for update requests 2021-03-03 09:19:07 +08:00
Zaiming Shi dd06d70bce refactor(build): Move parse_transform module to root app
So we do not have to workaround the compile order issue
2021-03-02 08:40:19 +08:00
Shawn 6081d45d81
fix(rule): reformat some code
* fix(rule): reformat some code for rule-engine

* fix(lwm2m): change publish_update_when to publish_update_msg_when

Change the option name publish_update_when -> publish_update_msg_when.

Also change the object_list_changed to contains_object_list, as the
the later describes the default behavior correctly.

* fix(lwm2m): publish_update_msg_when -> update_msg_publish_condition
2021-03-01 20:15:12 +08:00
Shawn 6d83bc3e9b
fix(rule): destroy the actions when disabling the rule (#4232)
Merge the following PR from enterprise version:
https://github.com/emqx/emqx-rule-engine/pull/231
2021-02-24 13:24:23 +08:00
Shawn e201484163 fix(rule): incorrect merge for map_get/2,3 and map_put/3 2021-02-22 18:16:24 +08:00
Shawn 196fef0255 chore(rule): migrate rule-engine from enterprise version 2021-02-22 13:53:51 +08:00
Shawn 7778cd8623
Add hooks only when creating the rules (#4160)
* refactor(rules): add hook only when creating rules

* fix(rule): update hooks after application restarted

* fix(rule): remove the extra guard
2021-02-22 11:16:47 +08:00
Shawn 1e047e84c2
feat(resource): keep restart disconnected resources after emqx bootup (#4125)
* feat(resource): keep restart disconnected resources after emqx bootup

* feat(resource): improve the restart monitor

* fix(test): improve emqx_rule_monitor_SUITE

* fix(resource): refresh resource should be only applied on local node

* fix(test): improve the test case for restart_resource

* fix(resource): rename some functions
2021-02-20 17:10:50 +08:00
Shawn c2e1bc039b
feat(rule): add more sql functions #4143 (#4144) 2021-02-20 17:10:10 +08:00
Zaiming Shi 4a877a3a69 chore(apps): relocate some apps
emqx_telemetry is for opensource onlyh
emqx_rule_engiune is common
2021-02-19 11:24:41 +01:00
Zaiming Shi 8f477e8411 refactor(proj): Move opensource apps to lib-opensource
One step closer for better code abstraction for opensorce vs enterprise
So far this relocation is to make opensource to enterprise merges
conflict free.
2021-02-11 16:45:05 +01:00
Shawn 70a490114d fix(rulesql): proc cassandra cql with apostrophes failed 2021-02-05 15:30:16 +08:00
Shawn a2fa84255f
fix(rulesql): proc_sql_param_str incorrect with apostrophes #4135 (#4137) 2021-02-05 10:41:54 +08:00
wwhai 6eff70a646
fix(rule-engine): reply 500 when update resource failed (#4120) 2021-02-01 09:47:08 +08:00
wwhai a3206f5e0b fix(rule-engine): reformat code style 2021-01-29 19:32:05 +08:00
wwhai 3973c93534 fix(rule-engine): remove unused code 2021-01-29 17:16:00 +08:00
wwhai 7072355bc1 fix(rule-engine): fix test failure 2021-01-29 15:24:07 +08:00
wwhai 73655369af fix(rule-engine): reformat some code 2021-01-29 11:52:32 +08:00
wwhai f0993c6b0f
chore(style): improve the codes style 2021-01-28 20:01:59 +08:00
wwhai b5c435e211 fix(rule-engine): add format space 2021-01-27 19:01:11 +01:00
wwhai e7153c4266 fix(rule-engine): add cluster init callback 2021-01-27 15:06:12 +08:00
wwhai 81da182e1b feat(rule-engine): change init resource to test resource 2021-01-25 19:44:32 +08:00
wwhai f3420e8810 fix(rule-engine): fix update resource maybe remove resource 2021-01-25 10:56:58 +08:00
bignullnull 67bfb4f10a
fix(rule_engine): resource update problem and add cli (#3991) 2021-01-15 09:12:24 +08:00
JianBo He f2190dd5b5 chore(mnesia): explicitly specify the copy type for table 2021-01-14 15:46:16 +08:00
JianBo He 2a029b71c9 perf(mnesia): unify the copy types of all nodes 2021-01-14 15:46:16 +08:00
ayodele.akingbule 990be9c198 fix(emqx_rule_engine_api): fix dialyzer warnings 2021-01-04 14:14:55 +01:00
Shawn e518828d8f
fix(rule_engine): mechanism of restarting resources (#3980) 2021-01-04 11:52:57 +08:00
Ayodele 26021b37b3
Umbrella fix build (#3969)
* fix(dialyzer): dialyzer warning.
2021-01-04 09:10:22 +08:00
Shawn d86b5ef210 fix(rule_engine): compile warnings on the macro RAISE 2020-12-31 17:03:39 +08:00
Shawn a747cf16bd
fix(resource_cli): update the CLIs for resources (#3978) 2020-12-31 13:41:33 +08:00
bignullnull 37974f7376
fix(rule_engine): add resource reconnect check (#3974)
* fix(rule_engine): add resource reconnect check
* fix(rule_engine): add reason for RAISE macro
2020-12-31 12:51:01 +08:00
wwhai 903ce29ce0 fix(rule_engine): fix resource update maybe failure 2020-12-31 11:43:03 +08:00
bignullnull efb32e9903
test(rule_engine): add update resource unit test case (#3964)
* test(rule_engine): add update resource unit test case

* feat(rule_engine): add update resource support

Co-authored-by: wwhai <cnwwhai@gmail.com>
2020-12-28 14:59:28 +08:00
JianBo He 9e22f492c7 refactor(rule-engine): add proc_sql_param_str/2 to handle sql params 2020-12-28 10:51:13 +08:00
Shawn 6b5878cdd0 fix(test): solve verification issue when verify the resource numbers 2020-12-23 16:39:40 +08:00
zhanghongtong 3ef08f9ce3 test(meck): add meck unload after meck load 2020-12-22 13:39:49 +08:00
Shawn 443ff737ed fix(rule_engine): use rpc in emqx_rule_engine_api 2020-12-22 11:18:16 +08:00
Shawn e15c0c325e fix(rule_engine): nested_get value from binary was supported in 4.1 2020-12-22 11:18:16 +08:00
Shawn 86d20b060c fix(metrics): counters not created before incr 'rule.matched' 2020-12-22 11:18:16 +08:00
Shawn c3159420bb feat(funcs): add bitsize/1 and subbits/2,3,6 functions 2020-12-22 11:18:16 +08:00
Shawn e72cbd22c4 fix(rule_validator): fill default values when validating the params 2020-12-18 11:08:17 +08:00
Shawn 0a44270932
* fix(dialyzer): remove the dialyzer errors 2020-12-17 10:04:49 +08:00
ayodele.akingbule ec79523ea5 fix(emqx_rule_actions): fix Dialyzer warnings 2020-12-15 11:39:52 +01:00
ayodele.akingbule 8ee98e3f20 fix(emqx_rule_utils): fix Dialyzer warnings 2020-12-15 11:31:55 +01:00
Zaiming Shi d60212787b chore(build): remove emqx from app's applications list 2020-12-12 23:02:26 +01:00