Commit Graph

542 Commits

Author SHA1 Message Date
Shawn
869dc1a081 fix(rules): ensure create_at unchanged after rule is updated 2022-03-16 00:38:42 +08:00
Shawn
0b4b3a7cf0 fix(dialyzer): some bad type specs 2022-03-11 18:33:08 +08:00
Shawn
590fa1b375 fix(rule): check request body for /rule_test crashes 2022-03-11 18:13:12 +08:00
Shawn
f924b9389d fix(rule): add swagger schema for events from bridge sources 2022-03-11 14:13:14 +08:00
Shawn
5ca0d4f856 fix(rule): rename the eventname of bridge sources to $bridges/mqtt:* 2022-03-10 23:03:35 +08:00
Shawn
3ca3470844 fix(rule_events): add descs for test columns 2022-03-10 22:49:29 +08:00
Shawn
c673e55a47 fix(rule): add SQL test examples for user properties
Porting from v4.4
2022-03-10 16:01:30 +08:00
Shawn
247b14c95f fix(mqtt_bridge): refine the message format from a mqtt bridge source 2022-03-10 15:57:33 +08:00
Zhongwen Deng
db584f79d6 feat: upgrade hocon to 0.25.0 to replace nullable with required. 2022-02-24 22:39:03 +08:00
Zhongwen Deng
574bbafc9b fix(schema): Ensure enum is atom or int. 2022-02-24 15:36:04 +08:00
Zaiming (Stone) Shi
1be3eb1446 chore: rename EMQX Broker to just EMQX 2022-02-19 12:51:34 +01:00
k32
5638bcb92b docs: Fix typos 2022-02-17 23:22:31 +01:00
Zaiming (Stone) Shi
0528262705 chore(app.src): EMQ X -> EMQX in .app.src files 2022-02-16 17:51:45 +01:00
Zaiming (Stone) Shi
b3d9605722 chore(conf): EMQ X -> EMQX in conf files 2022-02-16 17:50:41 +01:00
Zaiming (Stone) Shi
667d66eb1e docs(README): EMQ X -> EMQX 2022-02-15 16:19:26 +01:00
zhongwencool
f5415589e9 chore(schema): use emqx_schema:qos() instead of union integer. 2022-02-11 10:09:59 +08:00
Shawn
e6997dc1ce
Merge pull request #6942 from terry-xiaoyu/hook_delivery_drop
Hook delivery drop
2022-02-09 18:28:56 +08:00
Shawn
b69dca4f08 feat(rule): add testcase for '/delivery_dropped' 2022-02-08 20:37:40 +08:00
Shawn
b2f027bcf7 feat(rule): add 'delivery.dropped' hook for rules 2022-02-08 10:32:25 +08:00
Shawn
261e9929b6 fix(rule): deny POST empty rule ids 2022-02-08 09:57:44 +08:00
Zaiming (Stone) Shi
f7703c906e refactor: move plain_check impl to emqx_hocon 2022-01-29 10:16:55 +01:00
k32
052bd9081d docs(schema): Fix typos in the schema files 2022-01-27 22:39:19 +01:00
Zaiming (Stone) Shi
d6f7ffec3c
Merge pull request #6881 from zmstone/refactor-upgrade-hocon-0.23.0
refactor: upgrade to hocon 0.23.0
2022-01-27 15:48:23 +01:00
Kian-Meng Ang
fc92e4c8bf docs: fix typos 2022-01-27 12:29:38 +01:00
Zaiming (Stone) Shi
252d7e85d9 refactor: call new hocon apis 2022-01-27 00:23:08 +01:00
Zaiming (Stone) Shi
2105d1f22b test: call ct helpers to load config 2022-01-25 11:50:18 +01:00
k32
6e3b05d665 refactor(emqx_plugin): Decorate RPCs 2022-01-18 15:25:34 +01:00
Shawn
8cee9a9e47 fix(rule): compare to null variables should return false 2022-01-17 14:17:49 +08:00
JimMoen
82e3565344 chore: major mode file variable for Emacs 2022-01-13 15:53:47 +08:00
Shawn
2a2a00e0ad fix(rule): remove rules from all nodes in the cluster 2022-01-11 14:44:08 +08:00
Shawn
72d55c8c0d fix(rules): improve the names of the metrics 2022-01-07 09:35:00 +08:00
Shawn
67a60e1153 refactor(rule): add more metrics for rule and bridges 2022-01-07 09:34:54 +08:00
Zaiming (Stone) Shi
9f7b513a3f chore: fix copyright update script to include more files 2022-01-06 08:44:35 +01:00
Zaiming (Stone) Shi
63167cea70 chore: update copyright 2022-01-05 20:55:00 +01:00
Zaiming (Stone) Shi
2898fa76e1 Merge remote-tracking branch 'origin/release-5.0-beta.3' into merge-5.0-beta.3-to-master 2022-01-03 11:39:06 +01:00
Shawn
657ecef67b fix(resource): don't crash on resource stopped 2021-12-31 20:57:34 +08:00
Shawn
e299d8d138 fix(rule): rules not triggered after the ingress mqtt bridge received some msg 2021-12-31 15:47:03 +08:00
Shawn
94a5965560 fix(rule): dead lock when update configs for rules 2021-12-31 00:03:03 +08:00
Shawn
a42ab3d9da fix(rule): use emqx_conf:update/3 to make changes to all nodes 2021-12-31 00:03:03 +08:00
zhongwencool
4b6bba11eb feat(trace): struct log for trace 2021-12-29 00:26:54 +08:00
Thales Macedo Garitezi
0020cf592f
Merge remote-tracking branch 'origin/master' into build-with-mix-mkII 2021-12-28 11:28:40 -03:00
zhongwencool
668180388c feat(trace): replace logger_formatter by emqx_trace_formatter 2021-12-27 14:40:40 +08:00
Thales Macedo Garitezi
34d6dbca61
chore(mix): simplify build by using rebar3 for umbrella apps
By treating the apps in the umbrella as dependencies to be managed and
built by rebar3, we can simplify the maintenance of the release, at
the cost of increased build times: using Mix as before, it could track
changed files better than using rebar.  But the complexity and
possibility of discrepancies make it using rebar much more compelling.
2021-12-22 09:40:01 -03:00
Shawn
cd4227b851 fix(rules): don't show the module name 'emqx_rule_outputs' in outputs 2021-12-22 10:26:22 +08:00
Shawn
9b4b3d2e8c fix(rules): make the 'name' field of POST /rules mandatory 2021-12-22 10:26:22 +08:00
Shawn
5f050b149b fix(rules): the schema for unsubscribe is messing from rule_test API 2021-12-22 10:26:22 +08:00
Thales Macedo Garitezi
917575de5a
chore(mix): minimal elixir mix release build
This commit enables a minimal working build of EMQX release using
Mix.  However, to properly start the release, several configuration
steps are still missing.  A `mix_release.sh` script does a few hacks
to get the release built with Mix to start properly, by first assuming
that `make emqx` has been run prior to the release, ran once to
generate the `app.*.config` files, and then it copies that and some
other files to the expected places.

Also, `emqx_telemetry` hangs the start procedure because it thinks
it's in an official release and tries to make a request.  We disable
it temporarily via config just to get a working build for now.
2021-12-21 13:51:22 -03:00
Shawn
a9c9d9d805 fix(rule): rename enabled to enable 2021-12-18 20:28:14 +08:00
Shawn
a44e18e869 fix(bridge): filter out some extra fields from the request body 2021-12-18 19:19:58 +08:00
Shawn
494c08f849 refactor(rule): add name field to request body of POST /rules 2021-12-18 06:34:44 +08:00
Zaiming (Stone) Shi
fcb7c2c70f docs: change <module> to {module} so markdown render will not crash
<module> is treated as an HTML tag
2021-12-12 19:34:29 +01:00
Shawn
affe69afd6 fix(rules): update the test cases for rule APIs 2021-12-07 09:48:47 +08:00
Shawn
416b9f8d7c refactor(rule): generate swagger from hocon schema for /rules 2021-12-07 09:48:47 +08:00
Shawn
24bded99d5 refactor(metrics): rename speed to rate in emqx_plugin_libs_metrics 2021-12-07 09:47:53 +08:00
Shawn
e07fce791f feat(connector): add examples to the swagger doc 2021-12-07 09:47:53 +08:00
Zaiming (Stone) Shi
d9a980c7e1 docs: fix config doc, avoid using <text> in doc body 2021-12-06 08:00:42 +01:00
Ilya Averyanov
ea0fa24ce5 chore(ct): remove verbose output during tests 2021-11-25 18:30:50 +03:00
Shawn
4c149f92c1 feat(bridge): support metrics for bridges 2021-11-23 09:36:10 +08:00
Shawn
a0e81226d7 fix(elvis): improve some code format 2021-11-22 19:10:00 +08:00
Shawn
9c93ea0338 feat(connector): add API for /connectors_test 2021-11-22 17:35:33 +08:00
Shawn
7d64013edd refactor(connector): add connector configs 2021-11-22 17:35:32 +08:00
Zaiming Shi
6edd862dd5 refactor: no more EMQX_ENTERPRISE compile flag
The compile flag was introduced in EQM X 4.3 series
where CE and EE code was diverged large enough which made
non-practicle to determin edition at runtime.

such approach made testing quite challenging as we'll have to
build with different compile flags inorder to run per-edition
test cases

In this commit, we try to retrieve edition info from EMQX's
description text, (put to PT for fast access) at runtime
so we can test ALL editions from a super-set edition (EE).
2021-11-20 20:41:06 +01:00
JimMoen
dcc5ae0642 test: API return code section 2021-11-15 16:30:44 +08:00
JimMoen
b3f9220d02 style: make elvis happy 2021-11-15 16:30:44 +08:00
JimMoen
106aa559e0 fix(api): DELETE success wrongly returned code 200 2021-11-15 16:30:44 +08:00
Zaiming Shi
d1abb30818 ci: fix elvis check 2021-11-04 15:27:10 +01:00
Zaiming Shi
56e2a9741f style: ensure newline at EOF for all files 2021-11-04 14:40:14 +01:00
zhongwencool
d784e63b9f
emqx_conf (#5939)
* feat(emqx_conf): move conf manager for emqx_machine to emqx_conf

* chore(emqx_conf): change emqx:get_config/2 to emqx_conf:get/2

* fix: common test failed

* fix: badmatch by typo wrong key

* fix(emqx_conf): get the wrong core nodes

* fix(emqx_conf): get core node's tnx_id not latest tnx_id

* fix: add ro_transation when copy conf file

* fix: delete debug info

* fix: change ekka_rlog to mria_rlog

* fix: remove cluster_rpc from emqx_machine.

* fix: don't call ekka:start/0 explicitly

* fix: ekka should be start in emqx_machine
2021-10-21 18:08:51 +08:00
k32
ff48322e0c chore(mria): ekka_mnesia:running_nodes -> mria:running_nodes 2021-10-18 22:04:05 +02:00
Tobias Lindahl
aa19c2a908 chore: Remove emqx_ct_helpers as dependency 2021-10-15 10:40:57 +02:00
Shawn
2e52ab9712 fix(rules): improve some code for emqx_rule_engine 2021-10-14 15:09:37 +08:00
Shawn
dce57a3f92 fix(rules): add description to the config 'ignore_sys_message'
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2021-10-14 15:09:37 +08:00
Shawn
0e7a3f89a9 feat(rules): support output functions in <<"Mod:Func">> format 2021-10-14 15:09:37 +08:00
Shawn
9c7eef5295 feat(rules): update rule_engine configs from APIs 2021-10-14 15:09:37 +08:00
Shawn
c3effca553 fix(rules): load rules from config file failed 2021-10-14 15:09:37 +08:00
Shawn
467805855d fix(rules): load rules from config file failed 2021-10-14 15:09:37 +08:00
Shawn
1ffae5d1b0 refactor(rule_engine): merge code for emqx_rule_registry and emqx_rule_engine 2021-10-14 15:09:37 +08:00
Shawn
b063b6f253 feat(rules): support configure rules in config file 2021-10-14 15:09:37 +08:00
lafirest
3524942766 fix: change all ~s in io format to ~ts
we should use unicode to replace latin1
2021-10-12 15:09:24 +08:00
zhongwencool
44a6f04a45 chore: reorganize shards position 2021-09-30 16:04:30 +08:00
Shawn
a9185f964e
fix(rules): improve specs and logs (#5821)
Co-authored-by: Zaiming Shi <zmstone@gmail.com>
2021-09-27 21:10:48 +02:00
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