Commit Graph

311 Commits

Author SHA1 Message Date
Shawn
e2721c144c feat(bridge): support http bridge 2021-09-27 22:01:18 +08:00
Shawn
69f3cce75d feat(rules): hook on bridges events and query bridges from rules 2021-09-26 23:00:08 +08:00
Shawn
e630e23846 fix(rules): dialyer failed to analysis the emqx_rule_sqlparser:parse/1 2021-09-26 23:00:08 +08:00
Shawn
0d26e50e87 fix(rules): parse outputs failed 2021-09-26 23:00:08 +08:00
Shawn
420ccf0f51 refactor(rules): change republish as an output 2021-09-26 23:00:08 +08:00
Shawn
f33e28af6d fix(rules): update test cases for emqx_rule_engine_SUITE 2021-09-26 23:00:08 +08:00
Shawn
7bc69b129a fix(rules): update test cases for rule metrics 2021-09-26 23:00:08 +08:00
Shawn
d4f20c82e0 feat(rules): support function outputs 2021-09-26 23:00:08 +08:00
Shawn
bd081913b5 refactor(rules): remove emqx_rule_actions 2021-09-26 23:00:08 +08:00
Shawn
af295a9b71 refactor(rules): remove resources and actions 2021-09-26 23:00:08 +08:00
Shawn
b055464f6b refactor(rule): remove CLIs for rules
We will have new CLIs based on HTTP API in the future.
2021-09-26 23:00:08 +08:00
JimMoen
9c95557bfc fix(emqx_types): type spec refs does not exist file. 2021-09-17 19:28:22 +08:00
zhouzb
43ce727632 chore(gen_id): using emqx_misc:gen_id/0, /1 2021-09-16 16:51:46 +08:00
JimMoen
deac54c847 chore(for editor): Add comments for Emacs major mode. 2021-09-16 15:43:30 +08:00
zhongwencool
86eb6605f1
Merge pull request #5623 from zhongwencool/cluster-call-api
feat(cluster-call): support confirm success after all mfa apply ok
2021-09-13 16:03:47 +08:00
Shawn
d46241fe2f feat(bridges): avoid clientid competition between bridges on different nodes 2021-09-10 14:21:17 +08:00
zhongwencool
0303e593c5 fix: undef function 2021-09-10 13:28:08 +08:00
zhongwencool
5a4428c53d Merge branch 'cluster-call-api' of https://github.com/zhongwencool/emqx into zhongwencool-cluster-call-api 2021-09-10 13:11:13 +08:00
Shawn
135c005467 fix(bridges): do not start any bridge by default 2021-09-10 11:43:03 +08:00
Shawn
eb8822ce41 feat(bridges): start one mqtt bridge worker for each in/out channel 2021-09-10 11:43:03 +08:00
Shawn
1dae970cd3 refactor(rule): move emqx_rule_utils.erl -> emqx_plugin_libs_rule.erl 2021-09-10 11:43:03 +08:00
Zaiming Shi
ec13463f4a refactor(schema): prepare for hocon schema doc generation 2021-09-03 11:02:31 +02:00
zhongwencool
ee2fccac02 fix: don't run mutil cluster-call on one transaction 2021-09-02 14:03:46 +08:00
Zaiming Shi
5165fd6b30 refactor(schema): implement new hocon_schema callbacks 2021-08-30 09:56:03 +08:00
zhongwencool
73238ed81f feat: emqx_resource support cluster_call 2021-08-26 17:23:39 +08:00
zhongwencool
e5129ead6d fix(CI): Error detected: 'Invalid reference to group api in emqx_rule_engine_SUITE:all/0' 2021-08-26 17:17:47 +08:00
DDDHuang
8125ec7d08
feat: topic metrics api (#5520) 2021-08-24 10:52:18 +08:00
k32
9c74fa42a5 chore(rlog): Use the new method of creating shards 2021-08-21 17:47:53 +02:00
Shawn
f3efc89192
refactor(config): replace all ':' with '=' in the *.conf (#5531) 2021-08-19 19:57:42 +08:00
Shawn
e8e95d39ef
refactor(config): move emqx_config:get/get_raw to emqx:get_config/get_raw_config (#5517) 2021-08-18 14:52:57 +08:00
turtleDeng
4dc5772103
chore(rule-metrics): remove hot upgrade code change 2021-08-17 09:15:27 +08:00
Zaiming Shi
b10fb4e95d refactor: unify all io:format calls to use the same macro 2021-08-01 09:36:59 +02:00
Zaiming Shi
5d59ac1f02 refactor(logging): delete log headers from all modules 2021-08-01 09:36:59 +02:00
Turtle
9e97de04c9 chore(plugins): delete emqx_plugins module attributes 2021-07-30 14:32:01 +08:00
Shawn
0704cbc986 refactor(config): change mqtt.session_expiry_interval to ms 2021-07-23 17:06:28 +08:00
DDDHuang
c11a8c6db6 refactor: clients api; status api; adapter minirest v1
The serious influence:

authn:
    api
authz:
    api; api test suit
dashboard:
    all closed
lwm2m:
    api;
modules:
    api(api_topic_metrics, modules_api); test suit(emqx_modules_SUITE)
prometheus:
    api
retainer:
    api; api test suit
rule_engine:
    api: api test suit
telemetry:
    api
2021-07-09 18:09:07 +08:00
k32
73ec8c47cc chore(rule_engine): Add an RLOG shard 2021-06-28 20:29:08 +02:00
Turtle
434beef3ad feat(rule-engine): Update the configuration file to hocon 2021-06-28 14:51:15 +08:00
Turtle
54aeacee14 feat(rule-engine): update the configuration file to hocon 2021-06-28 14:51:15 +08:00
Shawn
8e08e83090 fix(appup): relup for emqx_rule_registry failed 2021-06-28 11:41:53 +08:00
Shawn
c1b2163362 feat(rules): remove stats update from rule_engine_registry (#5029) 2021-06-28 11:41:53 +08:00
Shawn
a610c3d1f3 fix(rule): delete resource failed when searching dependent rules (#4996) 2021-06-28 11:40:51 +08:00
Zaiming Shi
4ee6c82714 test(emqx_rule_engine_SUITE): delegate app start to ct-helper (2.0.0) 2021-06-07 09:09:28 +02:00
z8674558
a9efdaeacd fix(emqx_rule_engine_SUITE): use emqx_ct_helpers:read_schema_configs 2021-06-01 17:06:09 +09:00
z8674558
31cbb7aa97 Merge branch 'master' of github.com:emqx/emqx into merge-master 2021-05-25 12:50:50 +09: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
4577f6653c fix(emqx_rule_engine): add appup 2021-05-14 05:41:00 +09:00
Turtle
a58357cfe3 feat(rule_engine): rule sql add null function 2021-05-14 05:41:00 +09: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
d904a1048b Merge remote-tracking branch 'origin/master' into merge-master-to-dev/v5.0 2021-04-30 15:09:31 +02: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
z8674558
b0c3c713b5 Merge branch 'master' of github.com:emqx/emqx into merge-master-to-v5 2021-04-13 00:09:17 +09: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
z8674558
971e6ca90e Merge branch 'master' of github.com:emqx/emqx into merge-master-to-v5 2021-04-07 20:29:08 +09: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
6c106207ff
Merge pull request #4293 from emqx/master
Auto-pull-request-on-2021-03-05
2021-03-10 20:57:45 +01: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
efd4ef8091 Merge branch 'dev/v5.0' of private:emqx/emqx into fix-merge-conflict-master-to-5.0 2021-03-04 22:12:09 +09: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
Zaiming Shi
5edef84332
Merge branch 'dev/v5.0' into fix-merge-conflict-master-to-5.0 2021-03-01 19:58:16 +01: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
Zaiming Shi
23269c13bc
Merge pull request #4229 from emqx/master
Auto-pull-request-on-2021-02-23
2021-02-24 09:57:51 +01: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
Zaiming Shi
13e8093583 Merge remote-tracking branch 'origin/dev/v4.3.0' into merge-dev-v4.3.0 2021-02-22 21:08:08 +01:00
Zaiming Shi
505ae24ded
Merge branch 'dev/v5.0' into resolve-dev/v4.3.0-to-dev/v5.0-conflict 2021-02-22 15:20:34 +01: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
c2cd2fd231 Merge remote-tracking branch 'origin/dev/v4.3.0' into dev/v5.0 2021-02-19 21:13:33 +01: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
Shawn
10dbb5bc96
Fix testcases warns (#3906) 2020-12-11 18:54:48 +08:00
Zaiming Shi
7bdd093ef5 Merge remote-tracking branch 'origin/dev/v4.3.0' into umbrella-fix-build 2020-12-11 08:55:57 +01:00
Zaiming Shi
3a91ff8a7b chore(proj): resync apps 2020-12-11 08:19:26 +01:00
ayodele.akingbule
b2efcef4b4 fix(emqx_rule_runtime): Dialyzer warnings 2020-12-10 23:34:36 +01:00
Zaiming Shi
c8b866dc63 fix(emqx_rule_engine): Dialyzer warnings 2020-12-10 11:22:38 +01:00
Zaiming Shi
5bb1da5896 fix(emqx_rule_engine_sup): discard ets:new return value 2020-12-10 11:22:38 +01:00
Zaiming Shi
8bb8dc5363 fix(emqx_rule_engine): Dialyzer warnings 2020-12-10 11:22:38 +01:00
Zaiming Shi
692f59afaf fix(emqx_rule_events): Dialyzer warnings 2020-12-10 11:22:38 +01:00
Zaiming Shi
3dc11bc9e1 fix(emqx_rule_funcs): Fix strng:pad calls 2020-12-10 11:22:38 +01:00
Zaiming Shi
526d6f74bb fix(emqx_rule_metrics): Fix type specs 2020-12-10 11:22:38 +01:00
Zaiming Shi
a504539097 fix(emqx_rule_registry): Dialyzer warning 2020-12-10 11:22:38 +01:00
Zaiming Shi
e58abd916c fix(rule_engine.hrl): Type spec, args map is keyed by binary 2020-12-10 11:22:38 +01:00
Zaiming Shi
bdfcc2da0e fix(emqx_rule_engine_api): Dialyzer warnings for no_match 2020-12-10 11:22:38 +01:00
Zaiming Shi
ff55b0ff45 fix(emqx_rule_runtime): Dialyzer warnings 2020-12-10 11:22:38 +01:00
Zaiming Shi
42ed274ec3 fix(emqx_rule_runtime): Dialyzer warnings 2020-12-10 11:22:38 +01:00
Zaiming Shi
764d5977c1 fix(emqx_rule_engine): Dialyzer warning related to generated code 2020-12-10 11:22:38 +01:00
Zaiming Shi
6a1aae52eb fix(emqx_rule_validator): Dialyzer warning 2020-12-10 11:22:38 +01:00
Shawn
15d048d8ec feat(funcs): add bitsize/1 and subbits/2,3,6 functions
Given following Rule SQL:

```
select
  subbits(payload, 1, 8) as firstByte,
  case
    when firstByte = 123 then 't/{'
    when firstByte = 125 then 't/}'
    else 't/' + str(firstByte)
  end as tp
from "t/#"
```

Input Payload: `{x}`
Output: `{"tp": "t/{", "firstByte": 123}`

Input Payload: `}x`
Output: `{"tp": "t/}", "firstByte": 125}`

Input Payload: `a`
Output: `{"tp": "t/97", "firstByte": 97}`
2020-12-10 11:26:07 +08:00
Shawn
573a4b2df8 chore(rule_engine): sync the code from rule-engine/dev/v4.3.0 2020-12-09 17:58:26 +08:00
Zaiming Shi
80e1d6cc9d chore(apps): delete LICENSE files for apps 2020-12-08 22:28:46 +01:00
Zaiming Shi
7fdbfba06a Merge branch 'umbrella-for-430-auto-sync' into umbrella-for-430 2020-12-08 22:09:59 +01:00
Zaiming Shi
2fda0a1565 chore(apps): Sync again all apps 2020-12-07 21:30:21 +01:00
Zaiming Shi
036eda27f6 chore(rebar): Delete profiles from apps' rebar.config
otherwise rebar3 crashes
2020-12-05 13:36:56 +01:00
Zaiming Shi
db792ec577 chore(apps): Sync again with 4.3.0 2020-12-05 03:02:35 +01:00
Zaiming Shi
8a12018863 Add more cleanups 2020-12-05 02:45:01 +01:00
Zaiming Shi
0fb5fb31a5 refactor(proj) sync 4.3.0 plugins with tracked files 2020-12-05 02:43:04 +01:00
Zaiming Shi
686c006d6e refactor(proj): Add apps 2020-12-04 22:11:53 +01:00
Zaiming Shi
73d02beace refactor(apps): Merge emqx_libs back to emqx
And move emqx app back to root level

After realising the challenges of developing plugins in standalone
rebar projects. it is perhaps more smooth to keep using emqx as
a rebar dependency
2020-12-04 19:58:58 +01:00
Zaiming Shi
2cbd2bc800 chore(app.src): use semver 4.3.0 for apps version base 2020-12-03 19:59:41 +01:00
Zaiming Shi
5bb0cccb53 refactor(build): Clean up app version management
Starting from 5.0.0, all apps in apps dir should follow semver
strictly. Do not use the umbrella project's release tags.

The universal tags made sense when we have applications scattered
in different repos. Now since this is an umbrella project, it is
enough to have a single package level version number corelated with
git tag.
2020-12-01 23:22:33 +01:00
terry-xiaoyu
e586119752 fix(project): point the hrl files to emqx_lib 2020-10-31 12:34:52 +08:00
terry-xiaoyu
0cd1c57a54 Migrate plugins from tag 4.2.2 2020-10-31 12:10:19 +08:00