Commit Graph

8536 Commits

Author SHA1 Message Date
Zaiming (Stone) Shi
47a3096776 test: add test case for file path validation 2023-05-23 14:22:50 +02:00
Zaiming (Stone) Shi
2fa5b511bf chore: hide stale config 2023-05-23 14:20:49 +02:00
Zaiming (Stone) Shi
91150e6d83 chore: allow special chars in log dir
the current valdiator does not allow space and ':' in log file path
which is an unresonable restriction
2023-05-23 14:20:49 +02:00
Zaiming (Stone) Shi
e78ffb2dd4 chore: bump apps version 2023-05-23 13:04:28 +02:00
Zaiming (Stone) Shi
3bb1f7ab2b Merge remote-tracking branch 'origin/master' into 0503-no-telemetry-app-for-ee 2023-05-23 13:03:55 +02:00
Kjell Winblad
89ea1646be fix: IoTDB name for version option
The previous name for the version option was v1.0.x which is clearly
wrong since this option was tested against IoTDB version v1.1.0. This
commit fixes this by renaming the option to v1.x.

Fixes:
https://emqx.atlassian.net/browse/EMQX-9926
2023-05-23 10:57:05 +02:00
Kjell Winblad
d19ddb1832 fix: IoTDB bridge incoming payload needs to be parsed as JSON
There was an incorrect assumption that the data incoming to the IoTDB
bridge has already been parsed. This is fixed by parsing the payload as
JSON data if the payload is not already a map.

Fixes:
https://emqx.atlassian.net/browse/EMQX-9854
2023-05-23 10:14:45 +02:00
zhongwencool
3b6295a085
Merge pull request #10781 from zhongwencool/fix-bridge-test-failed
test: bridge test init dashboard listener failed
2023-05-23 11:16:57 +08:00
某文
1deb3c50c8 test: bridge test init dashboard listener failed 2023-05-23 10:28:01 +08:00
某文
67a30ee976 test: bridge test init dashboard listener failed 2023-05-23 10:16:43 +08:00
某文
ed1268ed30 Merge branch 'release-50' into 0522-merge-release-50-to-master 2023-05-23 07:56:35 +08:00
zhongwencool
26e31137c7
Merge pull request #10764 from HJianBo/remove-unused-comments
chore: remove unused conf comments
2023-05-23 07:53:25 +08:00
Zaiming (Stone) Shi
68f4ae70b2 chore: bump ee release version to e5.0.4-alpha.2 2023-05-22 22:41:19 +02:00
Zaiming (Stone) Shi
732a7be187 Merge remote-tracking branch 'origin/release-50' 2023-05-22 17:46:54 +02:00
Zaiming (Stone) Shi
1f44dd4579
Merge pull request #10756 from zmstone/0519-refactor-move-lib-ee-emqx_ee_conf-to-apps-emqx_enterprise
0519 refactor move lib ee emqx ee conf to apps emqx enterprise
2023-05-22 16:56:51 +02:00
Thales Macedo Garitezi
1c4c7fad92
Merge pull request #10740 from thalesmg/perf-buffer-worker-periodic-metrics-v50
perf(buffer_worker): update metrics periodically rather than immediately (v5.0)
2023-05-22 11:41:41 -03:00
Thales Macedo Garitezi
0877e4296a fix(dashboard): add missing function clause
Example error:
https://github.com/emqx/emqx/actions/runs/5045715277/jobs/9052482682#step:8:294

The previous change was not equivalent to the previous `maps:with/2`
behavior.
2023-05-22 11:35:04 -03:00
Thales Macedo Garitezi
65f973044f feat(pulsar): improve authn error check time and add connect timeout
Fixes https://emqx.atlassian.net/browse/EMQX-9910
2023-05-22 11:33:16 -03:00
Andrew Mayorov
3f882ddcc6
Merge pull request #10751 from ci/ct-flap-listener-api
fix(listen): wait until port is free when stopping ranch listeners
2023-05-22 17:00:45 +03:00
lafirest
88e4078885
Merge pull request #10747 from lafirest/fix/rule_funs_time_offset
fix: port the `emqx_calendar` from v4.4
2023-05-22 20:52:21 +08:00
Zaiming (Stone) Shi
0b9a32f49a chore: add BSL in apps/emqx_enterprise 2023-05-22 14:51:27 +02:00
Zaiming (Stone) Shi
40e8d5d039 refactor: rename lib-ee/emqx_ee_conf to apps/emqx_enterprise 2023-05-22 14:51:27 +02:00
Zaiming (Stone) Shi
3482c2c849 refactor: redefine default value for 'node.applications' in enterprise 2023-05-22 14:51:26 +02:00
lafirest
42f9c9aa9a
Merge pull request #10746 from lafirest/fix/events_api
fix: supports test the `$events/delivery_dropped` event by API
2023-05-22 20:50:03 +08:00
Andrew Mayorov
d22541e8b3
fix(ft): correct mistyped option in README 2023-05-22 15:32:08 +03:00
Thales Macedo Garitezi
0559d6f639 refactor(buffer_worker): use static fn for bumping counters 2023-05-22 09:12:08 -03:00
Thales Macedo Garitezi
9c71f4ecbd test: fix flaky test 2023-05-22 09:12:00 -03:00
Thales Macedo Garitezi
c74c93388e refactor: rename some variables and sum type constructors for clarity 2023-05-22 09:11:23 -03:00
Thales Macedo Garitezi
7d798c10e9 perf(buffer_worker): flush metrics periodically inside buffer worker process
Fixes https://emqx.atlassian.net/browse/EMQX-9905

Since calling `telemetry` is costly in a hot path, we instead collect
metrics inside the buffer workers state and periodically flush them,
rather than immediately as events happen.
2023-05-22 09:11:23 -03:00
Andrew Mayorov
092e112d62
Merge pull request #10767 from ci/ft-prop-flaky
test(ft): make proptest less aggressive
2023-05-22 12:45:24 +03:00
Andrew Mayorov
23542d1262
fix(listen): wait until port is free when stopping ranch listeners
Simple `cowboy:stop_listener/1` will not close the listening socket
explicitly, it was the source of test flaps before this fix.
2023-05-22 12:29:40 +03:00
Zhongwen Deng
cb5a596c57 fix: make sure swagger.json is fully generated 2023-05-22 16:58:13 +08:00
Andrew Mayorov
5b312a415b
Merge pull request #10759 from ci/ct-flap-clickhouse
fix(clickhouse): start app in tests
2023-05-22 11:11:15 +03:00
Andrew Mayorov
966f748551
test(ft): make proptest less aggressive
So that the chance of getting huge coverage and as a result, high
chance of running out of memory, is reduced.
2023-05-22 10:45:27 +03:00
William Yang
e824e1db39
Merge pull request #10698 from qzhuyan/perf/william/force-atom-conf-path
perf(config): enforcing atom key  path in hotcode path
2023-05-22 09:38:09 +02:00
firest
087dc59115 test: add test cases for the rule_test API 2023-05-22 15:25:35 +08:00
Zhongwen Deng
218fc4a839 refactor: add emqx_authz_file validate function 2023-05-22 14:54:23 +08:00
某文
082214d039 feat: add authz file rule validator 2023-05-22 14:25:05 +08:00
某文
27fca0ef3c fix: check authz's file rule before save to file 2023-05-22 14:22:20 +08:00
zhongwencool
c65e3a46b1
Merge pull request #10742 from zhongwencool/fix-authz-file-rule-check
fix: check authz's file source rules in pre_config_update
2023-05-22 14:15:18 +08:00
JianBo He
ce3ec351c7 chore: remove unused conf comments 2023-05-22 14:01:49 +08:00
Zhongwen Deng
96e7005de8 refactor: add emqx_authz_file validate function 2023-05-22 11:03:23 +08:00
firest
56a6b699ac fix: port the emqx_calendar from v4.4 2023-05-22 09:55:31 +08:00
某文
7c2aac64bc fix: bad cert file path in dashboard https listener 2023-05-21 07:41:46 +08:00
Zaiming (Stone) Shi
3e98b3b050
Merge pull request #10755 from zmstone/0517-fix-bridge-update-timeout-issue
0517 fix bridge update timeout issue
2023-05-20 06:19:26 +02:00
Andrew Mayorov
ba6b208df2
fix(clickhouse): start app in tests
Otherwise, depending on the test execution order, tests might
sometimes fail.

Moreover, ensure that applications describe their dependecies
correctly and avoid starting irrelevant apps in tests.
2023-05-19 23:08:40 +03:00
Thales Macedo Garitezi
bb4fef3cfd
Merge pull request #10752 from thalesmg/fix-pulsar-redact-auth-r50
fix(pulsar): redact error reason
2023-05-19 16:47:05 -03:00
Zaiming (Stone) Shi
cb76e5a241 docs: add changelog for 10755 2023-05-19 20:41:26 +02:00
Zaiming (Stone) Shi
0d8ffc0d59 fix(resource-manager): ensure no false creation
Update is implemented as remove + create.
If a dleete call is made while the create is in progress
the remove call is likely to timeout too.

This causes the follwing creation to falsely succeed,
because there is alreay a running child under the supervisor.

As a result, the resource is permanently removed after
resource_manager eventually handles the remove call.
2023-05-19 18:55:16 +02:00
Zaiming (Stone) Shi
f5e5c59763 refactor(resource-manager-sup): do not force kill resource manager
the shutdown timeout is now set to infinity so it will never
force kill a resource manager, otherwise there will be
resource leaks
2023-05-19 18:55:16 +02:00
Zaiming (Stone) Shi
21de0f8274 fix(buffer-worker-sup): fast stop
the timeout shutdown in child spec may
significantly slow down the deletion of a resource

this commit chagnes the shutdown to brutal kill

also, the pool worker removal code has been delete
because it's not necessary since the entier pool is
going to be force-delete later anyway
2023-05-19 18:55:16 +02:00
Zaiming (Stone) Shi
be90c63c78 chore(mqtt-connector): refine logging level
connect failure should be at warning level but not error,
the connecting state is visiable from dashbaord
also the resource manager logs connection failures in general
at warning level
2023-05-19 18:55:16 +02:00
Zaiming (Stone) Shi
5bbcf4b712 fix(mqtt-connector): faster shutdown 2023-05-19 18:55:16 +02:00
Zaiming (Stone) Shi
7eef86363a test: make erlfmt happy 2023-05-19 17:58:14 +02:00
Andrew Mayorov
9aaa0b6fe1
Merge pull request #9927 from emqx/file-transfer
feat: implement file transfer over mqtt
2023-05-19 18:35:13 +03:00
Thales Macedo Garitezi
4327e40740 fix(pulsar): redact error reason
Fixes https://emqx.atlassian.net/browse/EMQX-9940

Error log after fix:

```
2023-05-19T13:09:26.304769+00:00 [error] msg: failed_to_start_pulsar_client, mfa: emqx_bridge_pulsar_impl_producer:on_start/2, line: 104, instance_id: <<"bridge:pulsar_producer:pprodu">>, pulsar_hosts: pulsar://pulsar:6652, reason: {#{{"pulsar",6652} => #{error => 'AuthenticationError',message => "Unable to authenticate",request_id => 18446744073709551615}},{child,undefined,'pulsar_producer:pprodu:emqx@127.0.0.1',{pulsar_client,start_link,['pulsar_producer:pprodu:emqx@127.0.0.1',["pulsar://pulsar:6652"],#{conn_opts => #{auth_data => <<"******">>,auth_method_name => <<"basic">>},ssl_opts => []}]},transient,false,5000,worker,[pulsar_client]}}
```
2023-05-19 10:09:57 -03:00
lafirest
264404e180
Merge pull request #10511 from lafirest/fix/resource_safe_log
fix(resource): make some logging of the resource manager more secure
2023-05-19 20:42:21 +08:00
lafirest
1aa904d019
Merge pull request #10738 from lafirest/fix/tdengine_template
fix(tdengine): add supports for the `super table` feature in the SQL template
2023-05-19 20:41:50 +08:00
Andrew Mayorov
c440cd77b0
fix(test): prefer emqx_connector_http:join_paths/2 in api tests
It is more consistent with what HTTP servers are expecting, plus
not OS-specific as `filename:join/2`.
2023-05-19 15:37:01 +03:00
Thales Macedo Garitezi
8cfcc8fbaf
Merge pull request #10743 from thalesmg/fix-bridge-metric-aggregation-r50
fix(bridge_api): don't crash when formatting empty/unknown bridge metrics
2023-05-19 09:07:22 -03:00
某文
6cb9efd7d3 feat: add authz file rule validator 2023-05-19 18:41:59 +08:00
Andrew Mayorov
5c112602b8
test(evict): fix flapping testcase
Postpone enabling eviction agent so that target connection will not
get evicted too early.
2023-05-19 13:37:36 +03:00
Kjell Winblad
28dda39e39
Merge pull request #10724 from kjellwinblad/kjell/docs/missing_http_api_endpoint_descriptions/EMQX-9767
docs: make sure there is a summary for all API endpoints
2023-05-19 12:05:41 +02:00
firest
baeb96a6e4 chore: update changes 2023-05-19 15:36:18 +08:00
firest
0eea8438bf fix(resource): make some logging of the resource manager more secure 2023-05-19 15:28:19 +08:00
firest
fa799e95a4 fix: supports test the $events/delivery_dropped event by API 2023-05-19 14:20:26 +08:00
firest
5a08a7b9de fix(tdengine): minor improvement of code and changes 2023-05-19 11:14:31 +08:00
JianBo He
48ceb14755
Merge pull request #10737 from HJianBo/fix-mqtt-sn-bugs
Avoid urldecode clientid twice
2023-05-19 09:19:12 +08:00
Paulo Zulato
9c15720fee
Merge pull request #10726 from paulozulato/fix-large-health-check-interval
fix: validate range for some bridge options
2023-05-18 19:25:24 -03:00
Ilya Averyanov
9c48b016a9 fix(evacuation): handle expire interval correctly 2023-05-18 22:34:54 +03:00
Paulo Zulato
f9a75cb2a9 fix(oracle): hide password on stacktrace 2023-05-18 16:00:02 -03:00
Thales Macedo Garitezi
09ea2e2224 fix(bridge_api): don't crash when formatting empty/unknown bridge metrics
Fixes https://emqx.atlassian.net/browse/EMQX-9872
2023-05-18 14:25:13 -03:00
某文
52e2caa671 fix: check authz's file rule before save to file 2023-05-18 22:33:12 +08:00
Thales Macedo Garitezi
56634e5238
Merge pull request #10725 from thalesmg/bump-gproc-091-r50
chore: bump gproc -> 0.9.0.1 (r5.0)
2023-05-18 10:38:06 -03:00
Thales Macedo Garitezi
49424cc9a2
Merge pull request #10733 from thalesmg/fix-pulsar-sensitive-struct-r50
fix(pulsar): mark whole auth struct as sensitive, update dashboard version and improve bridge type matching errors (r5.0)
2023-05-18 10:15:10 -03:00
Paulo Zulato
5d289ade56 fix: validate range for some bridge options
Fixes https://emqx.atlassian.net/browse/EMQX-9864

Setting a very large interval can cause `erlang:start_timer` to crash.
Also, setting auto_restart_interval or health_check_interval to "0s"
causes the state machine to be in loop as time 0 is handled separately:

| state_timeout() = timeout() | integer()
| (...)
| If Time is relative and 0 no timer is actually started, instead the the
| time-out event is enqueued to ensure that it gets processed before any
| not yet received external event.
from "https://www.erlang.org/doc/man/gen_statem.html#type-state_timeout"

Therefore, both fields are now validated against the range [1ms, 1h],
which doesn't cause above issues.
2023-05-18 10:10:58 -03:00
firest
f1a3e5965e chore: update apps version && changes 2023-05-18 17:34:28 +08:00
firest
142125b9e4 test(tdengine): add test cases to cover the super table feature 2023-05-18 17:01:27 +08:00
JianBo He
26b69a5591 test(mqttsn): add test cases 2023-05-18 16:16:09 +08:00
firest
6ff77b221b fix(tdengine): add supports for the automatically create feature in the SQL template 2023-05-18 15:13:08 +08:00
JianBo He
c5398ab651 fix(gateway): avoid uri_decode twice
The url path has beed decoded in
0ebceb432f/src/cowboy_router.erl (L324-L330).
So, we don't need uri_decode in minirest callback again.
2023-05-18 14:55:12 +08:00
JianBo He
d77d5e33bc fix(mqttsn): Instantly refresh client info after subscribed/unsubscribed 2023-05-18 14:48:37 +08:00
zhongwencool
ba43a0e30f
Merge pull request #10734 from thalesmg/merge-r50-into-v50-a
merge `release-50` into `master`
2023-05-18 14:24:53 +08:00
zhongwencool
bf5ee41009
Merge pull request #10702 from zhongwencool/keepalive-backoff-rename
feat: deprecated keepalive_backoff, introduce keepalive_multiplier
2023-05-18 10:00:17 +08:00
某文
d4d25d2660 chore: don't lost previous's statval 2023-05-18 09:49:11 +08:00
Thales Macedo Garitezi
5d5c16a56d feat(bridges): use union member selector function for better error messages 2023-05-17 17:57:29 -03:00
Thales Macedo Garitezi
659cf64ad7 feat(pulsar): use an union member selector for better error messages 2023-05-17 17:56:53 -03:00
Thales Macedo Garitezi
f83f9a2d79 chore: bump app vsns 2023-05-17 14:56:11 -03:00
Thales Macedo Garitezi
447b76464b Merge branch 'release-50' into merge-r50-into-v50-a 2023-05-17 14:50:18 -03:00
Thales Macedo Garitezi
10f6edd6ea
Merge pull request #10717 from thalesmg/fix-bw-flush-timer-full-infl-r50
fix(buffer_worker): avoid setting flush timer when inflight is full
2023-05-17 14:49:27 -03:00
William Yang
727ad59995 chore(test): improve coverage 2023-05-17 16:58:49 +02:00
Thales Macedo Garitezi
dcccc0910a fix(pulsar): mark whole auth struct as sensitive (r5.0)
Fixes https://emqx.atlassian.net/browse/EMQX-9900

I tried to patch hocon itself to filter the sensitive data, but the
way it's currently structured doesn't seem to keep that field
metadata.  So, for now, we can just mark the whole auth union as
sensitive.
2023-05-17 11:50:22 -03:00
Thales Macedo Garitezi
b2afe4e90c
Merge pull request #10690 from thalesmg/perf-webhook-retry-async-reply-v50
perf(webhook): add async retries and evaluate reply callback in fresh process
2023-05-17 11:06:48 -03:00
Thales Macedo Garitezi
060efd6964 chore: bump gproc -> 0.9.0.1 (r5.0)
Includes this fix: https://github.com/uwiger/gproc/pull/193
2023-05-17 11:05:44 -03:00
Zhongwen Deng
e26ce5816e feat: hide keepalive_backoff, introduce keepalive_multiplier 2023-05-17 21:25:10 +08:00
zhongwencool
ea8ac877b0
Merge pull request #10713 from zhongwencool/put-webhook-request-timeout-into-resource-opts
feat: update wehbook's request_timeout into resource_opts
2023-05-17 21:20:42 +08:00
Thales Macedo Garitezi
bc7d0d5fd6 perf(webhook): evaluate replies in fresh process rather than in ehttpc
This surprisingly simple change yields a big performance improvement
in throughput.

While the previous commit achieves ~ 55 k messages / s
in throughput under some test conditions (100 k concurrent publishers
publishing 1 QoS 1 message per second), the simple change in this
commit improves it further to ~ 63 k messages / s.

Benchmarks indicated that the evaluating one reply function is
consistently quite fast (~ 20 µs), which makes this performance gain
counterintuitive.  Perhaps, although each call is cheap, `ehttpc`
calls several of these in a row when there are several sent requests,
and those costs might add up in latency.
2023-05-17 09:20:50 -03:00
Thales Macedo Garitezi
a7b41e1cdf perf(webhook): add retry attempts for async
This is a performance improvement for webhook bridge.

Since this bridge is called using `async` callback mode, and `ehttpc`
frequently returns errors of the form `normal` and `{shutdown,
normal}` that are retried "for free" by `ehttpc`, we add this behavior
to async requests as well.  Other errors are retried too, but they are
not "free": 3 attempts are made at a maximum.

This is important because, when using buffer workers, we should avoid
making them enter the `blocked` state, since that halts all progress
and makes throughput plummet.
2023-05-17 09:20:50 -03:00
Thales Macedo Garitezi
01cf7fc703 feat(webhook): use clientid for hash-loadbalancing ehttpc workers 2023-05-17 09:20:50 -03:00
Andrew Mayorov
c95ef71fb5
chore(ft): provide more details in README.md 2023-05-17 12:49:20 +03:00
Kjell Winblad
397dce0d78
Merge pull request #10654 from kjellwinblad/kjell/refactor/clickhouse_bridge/EMQX-9538
refactor: the clickhouse bridge to use the new bridge app structure
2023-05-17 11:19:33 +02:00
William Yang
cdf42760fa chore: little change avoid atom leak 2023-05-17 11:01:03 +02:00
Kjell Winblad
bce43978a2 refactor: the clickhouse bridge to use the new bridge app structure
Fixes:
https://emqx.atlassian.net/browse/EMQX-9538
2023-05-17 10:12:43 +02:00
Kjell Winblad
ab8b8ccaad docs: make sure there is a summary for all API endpoints
Many HTTP API endpoints did not have a summary when looking at the API
docs at "http://emqx_host_name:18083/api-docs". This has been fixed by
making sure there is a summary corresponding to all endpoints.

Fixes:
https://emqx.atlassian.net/browse/EMQX-9767
2023-05-17 09:58:56 +02:00
Ilya Averyanov
c54d04450c
Merge pull request #10723 from savonarola/0516-improve-rebalance-logging
Improve rebalance logging
2023-05-17 09:21:10 +03:00
某文
2b99a9b988 feat: hide resource_opts's request_timeout 2023-05-17 13:41:11 +08:00
lafirest
b5da9eb9ad
Merge pull request #10728 from lafirest/fix/port_ruleengine_export_colums
fix: cannot access columns exported by FOREACH in DO clause
2023-05-17 11:46:17 +08:00
firest
1f7ede90a4 chore: update app version && changes 2023-05-17 11:01:31 +08:00
firest
18043150be fix: cannot access columns exported by FOREACH in DO clause 2023-05-17 10:55:47 +08:00
JianBo He
0dd3325d70
Merge pull request #10711 from lafirest/fix/fix_infinity_bucket
fix(limiter): a bucket with an infinity rate shouldn't be added to limiter server
2023-05-17 10:40:59 +08:00
Ilya Averyanov
b71955e368 fix(ft): bump application versions 2023-05-17 00:29:15 +03:00
Ilya Averyanov
1a8cf0e392 Merge branch 'release-50' into file-transfer
* release-50:
  fix(pulsar): use a binary duration as default `health_check_interval`
  docs: add changelog entry
  docs: clarify description of bridge username and password
  chore: bump to v5.0.25
  fix(limiter): adjust type for compatibility
  fix(limiter): fix that update node-level limiter config will not working
  chore: upgrade dashboard to v1.2.4-1 for ce
  chore: upgarde rulesql to 0.1.6 to fix invaid utf8 input
  chore: add changelog for 10659
  fix: crash when sysmon.os.mem_check_interval = disabled
  chore: bump influxdb version && update changes
  refactor(influxdb): move influxdb bridge into its own app
  chore: add listener default changelog
  fix: ocsp cache SUITE failed
  fix: ensure atom key for emqx_config:get
  fix: only fill cerf_file default in server side
  fix: authn init is empty
  fix: bad listeners default ssl_options
2023-05-17 00:27:55 +03:00
Zaiming (Stone) Shi
9b9731b943
Merge pull request #10473 from zmstone/0421-refactor-delete-unused-schema-field
0421 refactor delete unused schema field
2023-05-16 22:22:03 +02:00
Thales Macedo Garitezi
85089a3210 fix(buffer_worker): correctly flush the buffer workers when inflight table room is made
The previous commit uncovered another bug that was hidden by it:
`maybe_flush_after_async_reply` was sending a message to the wrong
PID.  It was sending a message to `self()` meaning to target a buffer
worker, but `self()` in that context is never the buffer worker, it's
the connector's worker.

This change also revealed a race condition where the buffer workers
could stop flushing messages.  So we piggy-backed on the atomic update
of the table size count to check if the buffer worker should be poked
to continue flushing.  This allows us to get rid of
`maybe_flush_after_async_reply` altogether.
2023-05-16 17:15:42 -03:00
Andrew Mayorov
b2ecbef0f1
Merge pull request #10715 from fix/EMQX-9897/preserve-peercert-until-connected
fix(chan): postpone trimming conninfo after `connected` hook run
2023-05-16 22:56:41 +03:00
Andrew Mayorov
3cd95f40e5
test(chan): verify hooks receive peercert until connected 2023-05-16 19:35:56 +03:00
Andrew Mayorov
967b2e72e0
test(emqx): remove peercert from clientinfo fixtures
According to typespec, there's no place for `peercert` in
`clientinfo()`.
2023-05-16 19:35:55 +03:00
Andrew Mayorov
b341a04955
fix(chan): postpone trimming conninfo until connected hooks run
Some users expect to get the peer certificate in `connected` hooks, but
the `conninfo` was trimmed before `connected` hooks run.
2023-05-16 19:35:55 +03:00
Ilya Averyanov
d4b60c5610 chore(rebalance): improve debug logging 2023-05-16 18:59:12 +03:00
Thales Macedo Garitezi
cebde87114 fix(pulsar): use a binary duration as default health_check_interval
Fixes https://emqx.atlassian.net/browse/EMQX-9885

The frontend needs the default value to match the duration (binary)
type to display correctly.
2023-05-16 11:29:29 -03:00
Thales Macedo Garitezi
657df05ad9 fix(buffer_worker): avoid setting flush timer when inflight is full
Fixes https://emqx.atlassian.net/browse/EMQX-9902

When the buffer worker inflight window is full, we don’t need to set a
timer to flush the messages again because there’s no more room, and
one of the inflight windows will flush the buffer worker by calling
`flush_worker`.

Currently, we do set the timer on such situation, and this fact
combined with the default batch time of 0 yields a busy loop situation
where the CPU spins a lot while inflight messages do not return.
2023-05-16 11:28:58 -03:00
Ilya Averyanov
c113a8ac6a
Merge pull request #10677 from savonarola/0511-fix-rule-api
fix(api): respond 404 on the deletion of nonexistent rule
2023-05-16 16:50:30 +03:00
Andrew Mayorov
6f8f21106b
fix(assert): use unpredictable binding names in macros
Also translate macro vars to ALLCAPS for consistency.
2023-05-16 16:46:05 +03:00
Andrew Mayorov
e3b822c1a0
chore: remove empty header
Co-authored-by: ieQu1 <99872536+ieQu1@users.noreply.github.com>
2023-05-16 16:45:41 +03:00
Andrew Mayorov
a7595ff468
chore: fixup copyright years 2023-05-16 16:45:07 +03:00
某文
a2aa6b4666 chore: make ci happy again 2023-05-16 21:29:52 +08:00
Andrew Mayorov
be3a0ce974
fix(maybe): correct apply/2 typespec
Co-authored-by: ieQu1 <99872536+ieQu1@users.noreply.github.com>
2023-05-16 16:26:26 +03:00
Andrew Mayorov
6813ea8e7a
test(client): dedicate separate testcase to peercert cleaning 2023-05-16 13:25:33 +03:00
Zaiming (Stone) Shi
a0454b9417
Merge pull request #10674 from zmstone/0511-feat-support-rule-engine-eval
Add an experimental feature: support external rule-engine SQL functions
2023-05-16 10:55:00 +02:00
firest
255f616d26 chore: bump emqx app version 2023-05-16 16:36:36 +08:00
William Yang
1c746ed289 perf(config): enforcing atom key path in hotcode path 2023-05-16 09:57:04 +02:00
某文
7d7c069257 feat: update wehbook's request_timeout into resource_opts 2023-05-16 15:32:43 +08:00
firest
50e7de9db2 fix(limiter): a bucket with an infinity rate shouldn't be added to limiter server 2023-05-16 13:30:41 +08:00
Thales Macedo Garitezi
5960cc530a fix(pulsar): use a binary duration as default health_check_interval
Fixes https://emqx.atlassian.net/browse/EMQX-9885

The frontend needs the default value to match the duration (binary)
type to display correctly.
2023-05-15 09:05:21 -03:00
Zaiming (Stone) Shi
3c64735b87 feat(rule_engine): support external SQL function provider 2023-05-15 08:58:40 +02:00
JianBo He
38fcb7a097 docs: hide the not-ready document links 2023-05-15 11:20:23 +08:00
JianBo He
383fec9dfc docs: fix invalid links 2023-05-15 11:18:09 +08:00
lafirest
67ada52808
Merge pull request #10682 from lafirest/fix/will_msg_timestamp
fix: update the will message timestamp when it is ready to publish
2023-05-12 22:25:32 +08:00
某文
5ef2a603a1 chore: bump to v5.0.25 2023-05-12 20:27:36 +08:00
firest
95a67f390f fix(limiter): adjust type for compatibility 2023-05-12 18:41:41 +08:00
zhongwencool
a953b951fe
Merge branch 'master' into sync-release-50-to-master 2023-05-12 18:01:58 +08:00
firest
a38b270b03 fix(limiter): fix that update node-level limiter config will not working 2023-05-12 17:39:49 +08:00
Zhongwen Deng
90549abec7 fix: crash when sysmon.os.mem_check_interval = disabled 2023-05-12 14:42:23 +08:00
lafirest
33d1872e8f
Merge pull request #10679 from lafirest/refactor/influxdb_dir
refactor(influxdb): move influxdb bridge into its own app
2023-05-12 14:31:29 +08:00
firest
dcd4640a57 fix: update the will message timestamp when it is ready to publish 2023-05-12 14:28:26 +08:00
zhongwencool
1aceed7b7c
Merge pull request #10672 from zhongwencool/fix-listener-default
fix: bad listeners default ssl_options
2023-05-12 14:28:23 +08:00
firest
7d46fe8390 chore: bump influxdb version && update changes 2023-05-12 11:48:56 +08:00
firest
6497bcae46 refactor(influxdb): move influxdb bridge into its own app 2023-05-12 11:48:49 +08:00
Thales Macedo Garitezi
64dc9ed46a perf(metrics): avoid increasing counters by 0
Some performance tests indicate that calling `telemetry` is costly in
hot paths.  Since increasing a counter by 0 is a no-op, we should
avoid calling `telemetry` if the amount to increase is 0.
2023-05-11 15:13:37 -03:00
Ilya Averyanov
49e9ace1c1 fix(api): respond 404 on the deletion of nonexistent rule 2023-05-11 23:12:59 +05:00
Thales Macedo Garitezi
c4f2dba9c5
Merge pull request #10643 from thalesmg/test-sanity-checks-v50
test: perform sanity checks when starting apps
2023-05-11 14:00:22 -03:00
某文
91f97f6c29 fix: ocsp cache SUITE failed 2023-05-11 21:26:23 +08:00
Ilya Averyanov
5fdcfad60c fix(ft): synchronize erlcloud deps 2023-05-11 16:18:45 +05:00
Ilya Averyanov
5b5d7ceac5 Merge branch 'release-50' into file-transfer
* release-50:
  fix(limiter): fix an error when setting `max_conn_rate` in a listener
  chore: bump erlcloud dependencies vsns
  chore: rename dynamo template files
  refactor(dynamo): move dynamo bridge into its own app
  chore: update changes && bump app versions
  fix: issues with the RabbitMQ config
  refactor(pgsql): move pgsql && matrix && timescale bridges into their own app
  fix: the iotdb password field so it has the password format
  chore: update changes
  refactor(tdengine): move tdengine bridge into its own app
  feat: deprecate listeners's authn http api
2023-05-11 16:15:38 +05:00
某文
6056b0e7a8 fix: ensure atom key for emqx_config:get 2023-05-11 17:40:03 +08:00
Zhongwen Deng
3d41449fde fix: only fill cerf_file default in server side 2023-05-11 17:33:18 +08:00
SergeTupchiy
0617a9b11c
Merge pull request #10653 from SergeTupchiy/convert-gateway-authn-certs
fix(emqx_gateway): convert and clear authentication certificates
2023-05-11 11:35:55 +03:00
Zhongwen Deng
78c2c53daa fix: authn init is empty 2023-05-11 16:26:47 +08:00
Zhongwen Deng
d9f9e951ec fix: bad listeners default ssl_options 2023-05-11 16:25:25 +08:00
zhongwencool
a736b633b0
Merge pull request #10607 from zhongwencool/log-conf-refactor
feat: simplify log configuration
2023-05-11 16:12:27 +08:00
lafirest
d3a7d6d9d8
Merge pull request #10668 from lafirest/fix/max_conn_rate
fix(limiter): fix an error when setting `max_conn_rate` in a listener
2023-05-11 15:49:44 +08:00
Zaiming (Stone) Shi
7566c25199 refactor: delete unused connector field 'base_url' 2023-05-11 09:04:55 +02:00
Zaiming (Stone) Shi
b3e35dac1c
Merge pull request #10584 from paulozulato/debug-ssl-handshake
feat: add log level configuration to ssl communication
2023-05-11 08:59:13 +02:00
firest
b7126257a5 fix(limiter): fix an error when setting max_conn_rate in a listener 2023-05-11 13:52:13 +08:00
JimMoen
fbd516d740
Merge pull request #10622 from JimMoen/refactor-dynamo-bridge
refactor(dynamo): move dynamo bridge into its own app
2023-05-11 11:00:50 +08:00
lafirest
c8758190b5
Merge pull request #10662 from lafirest/refactor/pgsql_dir
refactor(pgsql): move pgsql && matrix && timescale bridges into their own app
2023-05-11 10:05:51 +08:00
Andrew Mayorov
6b688d6646
fix(ft): anticipate repeated kickoffs + fix testcase 2023-05-10 17:35:53 +03:00
Kjell Winblad
296c870896
Merge pull request #10664 from kjellwinblad/kjell/fix/rabbitmq_and_iotdb_issues
Fix small RabbitMQ and IotDB issues
2023-05-10 14:48:20 +02:00
William Yang
ec6cac88c9
Merge pull request #10663 from qzhuyan/dev/william/fix-gateway-mqttsn-nolocal
chore(gateway-mqttsn): fix a minor bug
2023-05-10 13:13:48 +02:00
JimMoen
e32ab10d01
chore: rename dynamo template files 2023-05-10 18:49:21 +08:00
JimMoen
8914e006c2
refactor(dynamo): move dynamo bridge into its own app 2023-05-10 18:49:21 +08:00
firest
f6a2f752ff chore: update changes && bump app versions 2023-05-10 17:23:26 +08:00
Kjell Winblad
41f5eff014 fix: issues with the RabbitMQ config 2023-05-10 10:53:40 +02:00
William Yang
614f9bda51 chore(gateway-mqttsn): fix a minor bug 2023-05-10 10:53:00 +02:00
firest
066ed5c6ec refactor(pgsql): move pgsql && matrix && timescale bridges into their own app 2023-05-10 16:51:33 +08:00
lafirest
594ceaf9e6
Merge pull request #10650 from lafirest/refactor/tdengine_dir
refactor(tdengine): move tdengine bridge into its own app
2023-05-10 16:42:35 +08:00
Kjell Winblad
08af90daa9 fix: the iotdb password field so it has the password format 2023-05-10 10:38:40 +02:00
zhongwencool
7e720ca260
Merge pull request #10641 from thalesmg/bump-gproc-091-v50
chore: bump gproc -> 0.9.0.1
2023-05-10 16:16:26 +08:00
zhongwencool
48db98d75b
Merge pull request #10657 from zhongwencool/deprecated-listeners-authn
feat: deprecate listeners authn
2023-05-10 15:35:49 +08:00
Ilya Averyanov
8d9b785bd7 Merge branch 'release-50' into file-transfer
* release-50:
  chore(rebalance): fix app metadata
  chore(rebalance): move apps from lib-ee, add READMEs
  docs: refine zh tr
  docs: delete APL header from ee file
  docs: delete zh changelog
  chore(rebalance): review fixes
  chore(rebalance): rebase and review fixes
  feat(rebalance): port apps from 4.x
2023-05-10 11:55:23 +05:00
Zhongwen Deng
b80227a02a fix: crash when sysmon.os.mem_check_interval = disabled 2023-05-10 14:49:34 +08:00
Ilya Averyanov
42f5433aaf
Merge pull request #10655 from savonarola/0510-idempotent-fin
Make FT fin command idempotent
2023-05-10 11:39:43 +05:00
firest
0f979b3d24 refactor(tdengine): move tdengine bridge into its own app 2023-05-10 14:12:57 +08:00
Zhongwen Deng
83e7b30a80 feat: deprecate listeners's authn http api 2023-05-10 09:50:53 +08:00
Zhongwen Deng
1d609dacf7 test: update api_config test 2023-05-10 09:21:42 +08:00
Ilya Averyanov
244188982b fix(ft): add missing translations 2023-05-09 23:32:17 +05:00
Ilya Averyanov
45875bfee5 fix(ft): update s3 exporter tests to the new config 2023-05-09 23:32:17 +05:00
Ilya Averyanov
9381c895bb fix(ft): fix dialyzer issues 2023-05-09 23:32:16 +05:00
Andrew Mayorov
079b8e9476 fix(ft): silence warnings when some root is not yet mkdired 2023-05-09 23:32:16 +05:00
Andrew Mayorov
5e5f854ce1 feat(ft-conf): simplify schema of storage / exporter backends
Assumption is this changes will make `emqx_ft` config schema
user-friendlier and also more future-proof.
2023-05-09 23:32:16 +05:00
Ilya Averyanov
8ac881a140 chore(ft): handle multiple/concurrent fins more gracefully 2023-05-09 23:31:39 +05:00
Ilya Averyanov
7fa166f034 Merge branch 'release-50' into file-transfer
* release-50: (73 commits)
  feat: add RabbitMQ bridge
  docs: improve rule engine labels and descriptions
  chore: bump version && update changes
  refactor(rocketmq): move rocketmq bridge into its own app
  test: dashboard_listener_test crash
  chore: bump chart versions
  chore: bump ee version to e5.0.4-alpha.1
  test: fix inter-suite flakiness
  build: compatibility to make 4.4+
  feat: add IotDB bridge
  ci: ensure git safe dir in build_packages
  ci: ensure git safe dir
  test: check_oom's max_mailbox_size
  feat: rename max_message_queue_len to max_mailbox_size
  fix(buffer_worker): fix inflight count when updating inflight item
  chore: prepare for v5.0.25-rc.1 release
  docs: add change log entry
  fix: non_neg_integer() translated to minimum = 1 in bridge-api-en.json
  chore: `MQTT X` -> `MQTTX`
  chore: make sure brod_gssapi app is included in relese package
  ...
2023-05-09 23:30:22 +05:00
Ilya Averyanov
61deda3ea6 chore(rebalance): fix app metadata 2023-05-09 21:05:20 +05:00
Ilya Averyanov
8d83dc12e7 chore(rebalance): move apps from lib-ee, add READMEs 2023-05-09 20:51:24 +05:00
Ilya Averyanov
e683d28973 chore(rebalance): rebase and review fixes 2023-05-09 20:51:24 +05:00
Ilya Averyanov
609f7bd8fd feat(rebalance): port apps from 4.x 2023-05-09 20:51:22 +05:00
Serge Tupchii
b98a7168c4 fix(emqx_gateway): convert and clear authentication certificates 2023-05-09 17:32:44 +03:00
Thales Macedo Garitezi
5643c12930 chore: bump gproc -> 0.9.0.1
Includes fix: https://github.com/uwiger/gproc/pull/193

Prior to the fix, when using the `random` pool strategy, one of the
workers receives about double the load of other workers, which
decreases throughput of bridges like webhook.
2023-05-09 11:27:25 -03:00
William Yang
328add3a02
Merge pull request #10563 from qzhuyan/fix/william/no_local_filter_all
fix(mqtt): drop all local messages in session deliver
2023-05-09 15:29:12 +02:00
Kjell Winblad
70cf1533db feat: add RabbitMQ bridge 2023-05-09 14:32:26 +02:00
lafirest
5ebb96fcc8
Merge pull request #10648 from lafirest/refactor/rocketmq_dir
refactor(rocketmq): move rocketmq bridge into its own app
2023-05-09 17:55:10 +08:00
zhongwencool
05c71cece5
Merge pull request #10646 from zhongwencool/dashboard-test
test: dashboard_listener_test crash
2023-05-09 17:52:04 +08:00
Zhongwen Deng
428cc45c69 fix: filter disable file handler 2023-05-09 17:50:06 +08:00
firest
12491e08db chore: bump version && update changes 2023-05-09 15:58:02 +08:00
firest
a119100a0e refactor(rocketmq): move rocketmq bridge into its own app 2023-05-09 15:57:56 +08:00
Zhongwen Deng
ac6c8d840f test: dashboard_listener_test crash 2023-05-09 12:16:45 +08:00
Zhongwen Deng
c901f3a9d4 test: nodes's log test failed 2023-05-09 11:56:24 +08:00
lafirest
b94290db58
Merge pull request #10625 from lafirest/refactor/limiter_cfg
refactor(limiter): simplify limiter configuration
2023-05-09 11:40:05 +08:00
Zhongwen Deng
ad111a27f9 feat: alias log.file.to to log.file.file 2023-05-09 11:24:51 +08:00
Zhongwen Deng
14952658d5 chore: convert rotation struct to roation_count 2023-05-09 11:24:51 +08:00
Zhongwen Deng
bf87aebbba chore: upgrade hocon to 0.39.5 2023-05-09 11:24:51 +08:00
Zhongwen Deng
d31a44f96b feat: convert rotation from map to integer 2023-05-09 11:24:51 +08:00
某文
7b000157d0 feat: refactor log configuration 2023-05-09 11:24:51 +08:00
Zaiming (Stone) Shi
4456a32465 chore: bump ee version to e5.0.4-alpha.1 2023-05-08 22:08:51 +02:00
Zaiming (Stone) Shi
13dcb5732f Merge remote-tracking branch 'origin/release-50' into 0508-prepare-for-e5.0.4 2023-05-08 21:29:35 +02:00
Zaiming (Stone) Shi
a22dd399b6 Merge remote-tracking branch 'origin/master' into 0508-prepare-for-e5.0.4 2023-05-08 21:16:12 +02:00
Stefan Strigler
1ade7ce9a3
Merge pull request #10560 from sstrigler/EMQX-8390-5-0-x-io-tdb-bridge-port-conf-and-api-to-5-0
IoTDB Bridge
2023-05-08 20:27:01 +02:00
Paulo Zulato
77176787ca feat: add log level configuration to ssl communication
Fixes https://emqx.atlassian.net/browse/EMQX-9781
2023-05-08 15:11:49 -03:00
Paulo Zulato
83c4b2f2d4
Merge pull request #10568 from paulozulato/feat-shutdown-count
feat: add shutdown count
2023-05-08 15:07:51 -03:00
Thales Macedo Garitezi
306a732e5e test: perform sanity checks when starting apps
These are checks to detect inter-suite or inter-testcase flakiness
early.  One suite might forget one application running
and stop others, and then the `application:start/2' callback is never
called again for this application.

One example of this was that: i) `emqx_rule_engine` was left running by
one suite; ii) `emqx` app was stopped, taking `emqx_config_handler`
down with it and losing the rule engine handler; iii) another suite
that uses rule engine "started" it (a no-op) and then the config
handler was never installed again.
2023-05-08 14:00:23 -03:00
zhongwencool
f6c5644448
Merge pull request #10623 from zhongwencool/rename-max-message-queue-len
feat: rename max_message_queue_len to max_mailbox_size
2023-05-08 23:08:06 +08:00
Stefan Strigler
d231e708cb feat: add IotDB bridge 2023-05-08 16:19:01 +02:00
Zaiming (Stone) Shi
ddd68eff22 docs: add emqx_telemetry README 2023-05-08 15:16:27 +02:00
Zaiming (Stone) Shi
4a2e583e3f refactor: move telemetry to its own app 2023-05-08 15:16:27 +02:00
zhongwencool
74d0436fbf
Merge pull request #10636 from kjellwinblad/kjell/fix/mongo/max_overflow/EMQX-9714
fix: non_neg_integer() translated to minimum = 1 in bridge-api-en.json
2023-05-08 20:45:57 +08:00
William Yang
8545d3d4a7 test: subscribe with no_local, mixed pub from different clients 2023-05-08 14:40:37 +02:00
Zhongwen Deng
04e62f6a2d test: check_oom's max_mailbox_size 2023-05-08 20:27:52 +08:00
Zhongwen Deng
eaa129d0d7 feat: rename max_message_queue_len to max_mailbox_size 2023-05-08 20:27:52 +08:00
Thales Macedo Garitezi
eba627b365 fix(buffer_worker): fix inflight count when updating inflight item 2023-05-08 09:27:51 -03:00
Zaiming (Stone) Shi
0250718910 chore: prepare for v5.0.25-rc.1 release 2023-05-08 14:04:22 +02:00
Zaiming (Stone) Shi
f450dc49ba Merge remote-tracking branch 'origin/release-50' into 0508-prepare-for-e5.0.4 2023-05-08 14:03:42 +02:00
Zaiming (Stone) Shi
83257617cd
Merge pull request #10630 from zhongwencool/sync-release-50-to-master
Sync release 50 to master
2023-05-08 14:02:27 +02:00
Zaiming (Stone) Shi
3dba862f85
Merge pull request #10629 from zmstone/0506-add-kafka-gssapi-kerberos-auth
fix(kafka): ensure brod_gssapi and sasl_auth included in release
2023-05-08 13:57:33 +02:00
Zaiming (Stone) Shi
30da70692c
Merge pull request #10556 from sstrigler/wrap_auth_headers
fix(emqx_connector_http): wrap and unwrap auth headers
2023-05-08 13:43:24 +02:00
Kjell Winblad
a711ee21f3 fix: non_neg_integer() translated to minimum = 1 in bridge-api-en.json
The schema type non_neg_integer() should be translated to minimum 0 and
not 1 when generating the bridge-api-en.json file.

Fixes:
https://emqx.atlassian.net/browse/EMQX-9714
2023-05-08 12:38:16 +02:00
zhongwencool
1d64d343e0
Merge pull request #10340 from zhongwencool/systemd-stop-crash-log-v50
fix: systemctl stop don't stop port in the desired order
2023-05-08 17:05:35 +08:00
Zaiming (Stone) Shi
8803c9b326 chore: make sure brod_gssapi app is included in relese package 2023-05-08 10:59:38 +02:00
Zaiming (Stone) Shi
f2a223c1e9 chore: prepare for e5.0.3 release 2023-05-08 10:59:04 +02:00
Stefan Strigler
d920f415cd fix(emqx_logger): fix spec for set_log_level 2023-05-08 09:57:26 +02:00
Stefan Strigler
9e324e8523 style: fix typo
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-05-08 09:56:43 +02:00
Stefan Strigler
b639353cf4 fix(emqx_connector_http): wrap and unwrap auth headers
This so we don't have sensitive information in a process' state
2023-05-08 09:56:43 +02:00
Zhongwen Deng
14ecfce69f fix: systemd stop don't stop port in the desired order 2023-05-08 15:44:11 +08:00
William Yang
b6c7e55348
Merge pull request #10528 from qzhuyan/perf/william/force-config-atom-path
perf(config): ensure root keys of 'conf' config is atom
2023-05-08 09:37:18 +02:00
Zhongwen Deng
4f396a36a9 Merge remote-tracking branch 'upstream/master' into release-50 2023-05-08 14:58:03 +08:00
firest
d914d1ee1d refactor(limiter): simplify limiter configuration 2023-05-08 11:45:49 +08:00
Zaiming (Stone) Shi
aaf3bf27c4 fix(kafka): ensure brod_gssapi sasl_auth are include in release 2023-05-07 09:43:58 +02:00
zhongwencool
d7b10fc329
Merge pull request #10489 from zhongwencool/warning-config-unknown-key
feat: warning unknown config root key
2023-05-06 14:28:56 +08:00
JimMoen
4000fb6692
docs: refine link text after review 2023-05-06 10:52:16 +08:00
Zhongwen Deng
f45efbd12d feat: warning unknown config root key 2023-05-06 10:43:52 +08:00
JimMoen
d5dce771bd
refactor(sqlserver): move sqlserver bridge into its own app 2023-05-06 10:22:05 +08:00
William Yang
48cf089870 fix(mqtt): drop all local messages in session deliver 2023-05-05 18:38:18 +02:00
William Yang
08d67aac9f test: fix emqx_mqtt_caps_SUITE 2023-05-05 17:45:11 +02:00
Ilya Averyanov
dd3471bc22 Merge branch 'master' into file-transfer
* master: (194 commits)
  fix(limiter): update change && fix deprecated version
  chore: update changes
  perf(limiter): simplify the memory represent of limiter configuration
  ci(perf test): update tf variable name and set job timeout
  ci: fix artifact name in scheduled packages workflow
  fix: build_packages_cron.yaml workflow
  ci: move scheduled builds to a separate workflow
  build: check mnesia compatibility when generating mria config
  docs: fix a typo in api doc description
  feat(./dev): use command style and added 'ctl' command
  test: fix delayed-pubish test case flakyness
  refactor: remove raw_with_default config load option
  chore: add changelog for trace timestrap
  feat: increase the time precision of trace logs to microseconds
  chore: make sure topic_metrics/rewrite's default is []
  docs: Update changes/ce/perf-10417.en.md
  chore: bump `snabbkaffe` to 1.0.8
  ci: run static checks in separate jobs
  chore(schema): mark deprecated quic listener fields ?IMPORTANCE_HIDDEN
  chore: remove unused mqtt cap 'subscription_identifiers'
  ...
2023-05-05 16:50:18 +03:00
zhongwencool
fb3c0c1fe9
Merge pull request #10546 from zhongwencool/04-27-ssl_options
feat: organize the ssl_options
2023-05-05 20:51:19 +08:00
Zaiming (Stone) Shi
8ce2122516 chore: prepare to cut e5.0.3-rc.1 2023-05-05 12:56:34 +02:00
lafirest
335d948bce
Merge pull request #10591 from lafirest/fix/simplify_limiter_client_cfg
perf(limiter): simplify the memory represent of limiter configuration
2023-05-05 16:59:04 +08:00
Ilya Averyanov
cff7788b2e chore(ft): add s3 exporter tests 2023-05-05 11:55:09 +03:00
firest
7a96a9772d fix(limiter): update change && fix deprecated version 2023-05-05 16:26:06 +08:00
William Yang
e4f501417b
Merge pull request #10525 from qzhuyan/perf/william/avoid-new-map-when-get-mqtt-caps
perf(config): avoid build new map in emqx_mgmt_caps:get_caps
2023-05-05 10:22:08 +02:00
firest
4f47e65b7b perf(limiter): simplify the memory represent of limiter configuration 2023-05-05 16:21:21 +08:00
Zaiming (Stone) Shi
14e055f18b
Merge pull request #10578 from zmstone/0502-refactor-delete-stale-config-check-opt
0502 refactor delete stale config check opt
2023-05-04 16:32:49 +02:00
firest
277deee616 fix: add new sensitive keywords to redact checklist 2023-05-04 16:32:32 +08:00
zhongwencool
2bc1ddbd19
Merge pull request #10588 from zhongwencool/fix-array-default
chore: make sure topic_metrics/rewrite's default is []
2023-05-04 16:03:21 +08:00
Zaiming (Stone) Shi
06e25f5c72 test: fix delayed-pubish test case flakyness 2023-05-04 09:48:28 +02:00
Zaiming (Stone) Shi
856129984b refactor: remove raw_with_default config load option
This option was previously only in tests to avoid
emqx_conf app overwriting previously set configs with default values.

After a03f2dd64b, the issue for
test cases had been resolved.
This commit is to get rid of the option all together
2023-05-04 09:48:28 +02:00
Zhongwen Deng
06960853e0 feat: increase the time precision of trace logs to microseconds 2023-05-04 14:41:02 +08:00
Zhongwen Deng
b09ee540d0 chore: make sure topic_metrics/rewrite's default is [] 2023-05-04 14:29:54 +08:00
Paulo Zulato
f965fa7b9a feat: add shutdown count
Fixes https://emqx.atlassian.net/browse/EMQX-9008
Fixes https://emqx.atlassian.net/browse/EMQX-9219
2023-05-03 20:00:38 -03:00
William Yang
c38cec77a7
Merge pull request #10417 from qzhuyan/perf/william/no-make-ref-in-get-config
perf(config): eliminate make_ref() calls in config get calls
2023-05-03 16:56:44 +02:00
William Yang
2ded8e3836
Merge pull request #10577 from qzhuyan/dev/william/importance-mark-quic-listener
chore(schema): mark deprecated quic listener fields ?IMPORTANCE_HIDDEN
2023-05-03 13:23:32 +02:00
Andrew Mayorov
754045173e
chore: bump snabbkaffe to 1.0.8 2023-05-03 11:16:51 +03:00
Zaiming (Stone) Shi
66112fceed
Merge pull request #10572 from zmstone/0502-merge-release-50-back-to-master
0502 merge release 50 back to master
2023-05-03 09:01:35 +02:00
Ilya Averyanov
0272cf4473
Merge pull request #10571 from savonarola/0502-do-not-pullute-logs-on-metrics-stop
Do not complain on nonexisting ets while `emqx_topic_metrics` stops
2023-05-03 09:44:25 +03:00
William Yang
b418cc766d test: update emqx_gateway_conf_SUITE
for error return messages
2023-05-02 22:59:24 +02:00
William Yang
a4a5599636 chore(schema): mark deprecated quic listener fields ?IMPORTANCE_HIDDEN 2023-05-02 22:20:39 +02:00
Thales Macedo Garitezi
8aa7c014e7 perf(buffer_worker): avoid calling ets:info/2
(Almost?) fixes https://emqx.atlassian.net/browse/EMQX-9637

During the course of performance tests comparing the performance of
e5.0.3 and e4.4.16 regarding the webhook bridge in sync mode, we
observed that the throughput in e5.0.3 (sync) was much lower than in
e4.4.16: ~ 9 k msgs / s vs. ~ 50 k msgs / s, respectively.

Analyzing `observer_cli` output, we noticed that a lot of the time
both buffer workers and ehttpc processes was spent in `ets:info/2`.
That function was called to check the size of the inflight table when
updating metrics and checking if the inflight table was full.  Other
uses of `ets:info/2` were contained inside the arguments to some
`?tp/2` macro usages (https://github.com/kafka4beam/snabbkaffe/pull/60).

By using a specific record to track the size of the table, we managed
to improve the bridge performance to ~ 45 k msgs / s in sync mode.
2023-05-02 17:05:32 -03:00
William Yang
c7af43bd72 chore: bump app vsn emqx 5.0.25 2023-05-02 21:51:43 +02:00
William Yang
e5884e0e87 chore: remove unused mqtt cap 'subscription_identifiers' 2023-05-02 21:50:36 +02:00
William Yang
be6cd5705f fix(mqtt-cap): use global config as defaults
Don't use default values in module, use global mqtt config as default
2023-05-02 21:50:36 +02:00
William Yang
df0911be6e Revert "perf: keep defaults of zone.mqtt"
This reverts commit 6184bc02ee30aa2d022793762e626893a8a32599.
2023-05-02 21:50:36 +02:00
William Yang
77405d9cd7 perf: keep defaults of zone.mqtt 2023-05-02 21:50:36 +02:00
William Yang
265c9ea668 chore: bump emqx app vsn to 5.0.25 2023-05-02 21:50:36 +02:00
William Yang
3d7201502b perf(config): avoid build new map in emqx_mqtt_caps:get_caps 2023-05-02 21:50:36 +02:00
William Yang
77f67a9d07 perf(config): get_raw with 'binary' root key 2023-05-02 21:49:55 +02:00
William Yang
ce6343a4f3 perf(config): ensure root keys of 'conf' config is atom 2023-05-02 21:49:55 +02:00
Zaiming (Stone) Shi
a4bc15cfa1 Merge remote-tracking branch 'origin/master' into 0502-merge-release-50-back-to-master 2023-05-02 18:59:31 +02:00
Thales Macedo Garitezi
f6da18dc1b fix(webhook): consider {shutdown, closed} return as recoverable 2023-05-02 13:12:03 -03:00
Zaiming (Stone) Shi
d5f5f35787 Merge remote-tracking branch 'origin/release-50' into 0502-merge-release-50-back-to-master 2023-05-02 18:08:04 +02:00
Andrew Mayorov
90cf1ade74
chore: bump application versions
* emqx_connector 0.1.22
* emqx_bridge_gcp_pubsub 0.1.1
* emqx_bridge_kafka 0.1.2
* emqx_bridge_pulsar 0.1.1
* emqx_ee_connector 0.1.12
2023-05-02 17:29:22 +03:00
Andrew Mayorov
670709f746
feat(resource): ensure uniqueness through gproc
Also use it instead of a custom ETS table for simplicity and
better consistency. This has drawbacks though: expect slightly
increased load on gproc gen_server due to how `gproc:set_value/2`
works.
2023-05-02 17:29:22 +03:00
Andrew Mayorov
4575167607
feat(resource): drop manager_id() type 2023-05-02 17:29:20 +03:00
Andrew Mayorov
aaef95b1da
feat(resman): stop adding uniqueness to manager ids
Before this change, a separate `manager_id` / `instance_id` was used
as resource manager id, which made connector interface somewhat
inconsistent: part of function calls to connector implementation
used instance id as first argument while the rest used resource id
itself.
2023-05-02 17:28:26 +03:00
Thales Macedo Garitezi
2c4fd98ce5
Merge pull request #10559 from thalesmg/pulsar-more-tests-v50
test(pulsar): add more test cases for Pulsar Producer bridge
2023-05-02 10:16:17 -03:00
Thales Macedo Garitezi
654d274039
Merge pull request #10562 from thalesmg/fix-webhook-async-shutdown-normal-reply-r50
fix(webhook): treat `{shutdown, normal}` and `{closed, _}` async replies as retriable
2023-05-02 10:08:18 -03:00
Zaiming (Stone) Shi
0fd5fee4ca
Merge pull request #10547 from zmstone/0427-default-listeners-in-schema
0427 default configs in schema
2023-05-02 15:03:49 +02:00
Ilya Averyanov
791010a65c chore(topic_metrics): do not complain on nonexisting ets while topic metrics stop 2023-05-02 15:59:50 +03:00
Zaiming (Stone) Shi
4d60b0da1d
Merge pull request #10459 from zmstone/0420-delete-old-code
0420 delete old code
2023-05-02 13:27:51 +02:00
Zaiming (Stone) Shi
cad4144773
Merge pull request #10536 from zmstone/0118-for-better-test-coverage
0118 for better test coverage
2023-05-02 13:26:22 +02:00
Zaiming (Stone) Shi
2dd9191718 refactor: use different terms for config tombstone
there are 3 different kind of Erlang terms for tombstone related configs
1. the schema type (must be an atom)
2. the config value (must be a binary)
3. the config change comamnd (request) which is only used
   in the code, but never persisted
2023-05-02 13:24:59 +02:00
Zaiming (Stone) Shi
b1dfbf7984 refactor: move shared macros to header file 2023-05-02 13:24:59 +02:00
Zaiming (Stone) Shi
674f837f36 refactor(emqx_listeners): better variable names 2023-05-02 13:24:59 +02:00
Zaiming (Stone) Shi
29c9edeb4c test(emqx_delayed_SUITE): fix flaky test 2023-05-02 13:24:59 +02:00
Zaiming (Stone) Shi
37bf12c29e test(emqx_telemetry_SUITE): fix flakyness 2023-05-02 13:24:59 +02:00
Zaiming (Stone) Shi
c825102bed fix(authz): ensure acl.conf path template rendered 2023-05-02 09:10:04 +02:00
Zaiming (Stone) Shi
a3b1664c06 test: allow inter-test case config dependency for emqx_exhook_SUITE 2023-05-01 20:15:47 +02:00
Zaiming (Stone) Shi
b65a71b498 test: allow emqx_ws_connection_SUITE to run without erasing configs 2023-05-01 19:37:12 +02:00
Zaiming (Stone) Shi
95cb262067 test: fix authn test cases 2023-05-01 18:42:45 +02:00
Zaiming (Stone) Shi
a03f2dd64b test: allow pre-load configs before emqx_conf app 2023-05-01 15:35:33 +02:00
Zaiming (Stone) Shi
43c80ba635 chore: always init_load config wiht defaults populated
this effectively eliminates the need for raw_with_default
because it's now always set to true everywhere.
will remove it in a followup.
2023-04-30 21:24:46 +02:00
Zaiming (Stone) Shi
475dee32ee test(emqx_dashboard): refine spec error 2023-04-30 17:28:41 +02:00
Zaiming (Stone) Shi
57cc854a4a test(bridge): fix bridge map type filed converters
now the converters on map type fields only work at the wrapping map
level but not the values
2023-04-30 10:45:11 +02:00
Zaiming (Stone) Shi
03ae61569f test(authn): fix test case after authentication default value added 2023-04-30 10:18:18 +02:00
Zhongwen Deng
2ab0e30489 chore: seperate avail and default tls version 2023-04-30 10:48:54 +08:00
Zhongwen Deng
d8c4c6637b feat: mark ssl_options.password as low level 2023-04-30 10:48:54 +08:00
Zhongwen Deng
cc2d529562 feat: remove tlsv1.1,tlsv1,dtlsv1 from default ssl version 2023-04-30 10:48:54 +08:00
Zhongwen Deng
b0eca5bc00 feat: aliases etcd.ssl to etcd.ssl_options 2023-04-30 10:48:54 +08:00
Zaiming (Stone) Shi
2e9dca280c refactor(listener-schema): use a tombstone for deleted listeners 2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
c13a972bf0 test(emqx_management): add test group for listener API 2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
b3c0abf494 test(emqx_management): fix listeners api test cases 2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
dbf9bae7dc test(statsd): fix raw config default value 2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
4d705817d8 refactor(log): move default values to schema 2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
41f13330ba refactor: export EMQX_LOG_DIR 2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
a1551213c8 test: EMQX_ETC_DIR for test is app's etc dir 2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
e0dc5645ab fix(config): always fill defautls for all roots
prior to this commit, if a root existed in config files
it skips populating default values in raw config,
this made impossible to add default values for authz sources.
2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
5acf0e281e refactor: delete default authz config from emqx.conf 2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
7c5a9e0e20 refactor: move the env interpolation function to emqx_schema
also added test cases
2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
b0f3a654ee refactor: delete default listeners from default config
The new config overriding rule is very much confusing for
people who wants to persist listener config changes made from
dashboard

This commit moves the default values from default config file
to schema source code.
In order to support build-time cert path at runtime, there
is also a naive environment variable interplation feature added.
2023-04-29 22:10:19 +02:00
Zaiming (Stone) Shi
c58ffce75f fix(hocon): pin 0.38.2 with the map type value converter fixed 2023-04-29 22:10:19 +02:00
Thales Macedo Garitezi
a19621e533 fix(webhook): treat {shutdown, normal} and {closed, _} async reply as retriable
Apparently, the async reply returned by ehttpc can be `{shutdown,
normal}` or `{closed, "The connection was lost."}`, in which case the
request should be retried.

```
Apr 28 17:40:41 emqx-0.int.thales bash[48880]: 17:40:41.803 [error] [id: "bridge:webhook:webhook", msg: :unrecoverable_error, reason: {:shutdown, :normal}]
Apr 28 18:36:37 emqx-0.int.thales bash[53368]: 18:36:37.605 [error] [id: "bridge:webhook:webhook", msg: :unrecoverable_error, reason: {:closed, 'The connection was lost.'}]
```
2023-04-28 18:07:32 -03:00
Zaiming (Stone) Shi
7a81b96be0 fix(emqx_conf_app): print init_load failure to standard_error
logger may not get the chance to spit out the logs before the vm
dies, no matter how long sleep is added before init:stop(1)
2023-04-28 22:23:30 +02:00
Zaiming (Stone) Shi
d3a26b45be docs: update config note 2023-04-28 22:23:30 +02:00
Thales Macedo Garitezi
633eacad3b test(pulsar): add more test cases for Pulsar Producer bridge
Fixes https://emqx.atlassian.net/browse/EMQX-8400
2023-04-28 10:47:03 -03:00
Andrew Mayorov
bd9f129bb8
test(ft-api): also run testcases under cluster setup 2023-04-28 13:50:23 +03:00
Andrew Mayorov
a9866fede4
feat(ft-api): support paging in S3 storage exporter 2023-04-28 13:49:17 +03:00
Andrew Mayorov
75cceffa06
fix(ft-test): rename testcases for consistency 2023-04-28 13:49:17 +03:00
Andrew Mayorov
ed3756ea09
feat(ft-api): add paging support through cursors 2023-04-28 13:49:15 +03:00
Andrew Mayorov
573bb22ada
feat(ft-fs): introduce fs iterators concept + forward seeks
In order to support paging over filesystem contents, to serve REST
APIs effectively.
2023-04-28 13:47:50 +03:00
Andrew Mayorov
a79cf681f7
fix(s3): drop default from acl config field 2023-04-28 10:54:21 +03:00
Andrew Mayorov
811e449357
feat(ft-conf): provide global killswitch 2023-04-28 10:54:21 +03:00
Zaiming (Stone) Shi
6e36139a17 chore: bump to e5.0.3-alpha.5 2023-04-27 22:56:34 +02:00
Thales Macedo Garitezi
270fa5d19d
Merge pull request #10550 from thalesmg/fix-ocsp-disabled-r50
fix(ocsp): disable periodic refresh when listener or stapling are disabled
2023-04-27 17:22:44 -03:00
Thales Macedo Garitezi
928ca7d565
Merge pull request #10538 from thalesmg/rel-e503-alpha4
chore: bump release version to `e5.0.3-alpha.4`
2023-04-27 16:37:08 -03:00
Paulo Zulato
5f835627f9
Merge pull request #10498 from paulozulato/master
feat(oracle): Oracle Database integration
2023-04-27 16:05:23 -03:00
Thales Macedo Garitezi
2bb40787f7
Merge pull request #10552 from thalesmg/fix-flaky-banned-test-v50
test(banned): attempt to fix flaky test
2023-04-27 15:47:37 -03:00
Thales Macedo Garitezi
0bd4beae6e
Merge pull request #10549 from thalesmg/tests-is-ci-var-v50
ci: set `IS_CI=yes` when running tests
2023-04-27 14:12:31 -03:00
Thales Macedo Garitezi
d845c4807d fix(ocsp): disable periodic refresh when listener or stapling are disabled
Fixes https://emqx.atlassian.net/browse/EMQX-9773
2023-04-27 14:02:55 -03:00
Thales Macedo Garitezi
d0c4c70f74 test(banned): attempt to fix flaky test
Example failure:
https://github.com/emqx/emqx/actions/runs/4821105856/jobs/8587006829#step:8:4495

```
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
emqx_common_test_helpers:wait_for_down failed on line 434
Reason: {{t_session_taken,178,timeout},[{emqx_common_test_helpers,...},{...}|...]}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Testing lib.emqx.emqx_banned_SUITE: *** FAILED test case 4 of 5 ***
%%% emqx_banned_SUITE ==> t_session_taken: FAILED
%%% emqx_banned_SUITE ==> {{t_session_taken,178,timeout},
 [{emqx_common_test_helpers,wait_for_down,6,
                            [{file,"/__w/emqx/emqx/source/apps/emqx/test/emqx_common_test_helpers.erl"},
                             {line,434}]},
  {emqx_banned_SUITE,t_session_taken,1,
                     [{file,"/__w/emqx/emqx/source/apps/emqx/test/emqx_banned_SUITE.erl"},
                      {line,176}]},
  {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1782}]},
  {test_server,run_test_case_eval1,6,[{file,"test_server.erl"},{line,1291}]},
  {test_server,run_test_case_eval,9,[{file,"test_server.erl"},{line,1223}]}]}
```
2023-04-27 13:19:26 -03:00
Paulo Zulato
43bb6f00ca fix(oracle): drop support for async queries
jamdb_oracle does not provide interface for performing async queries and
ecpool does not monitor the worker which calls jamdb_oracle, so it's
safer to keep support for sync queries only.
2023-04-27 13:07:20 -03:00
Paulo Zulato
dd90b2f498 feat(oracle): Oracle Database integration 2023-04-27 13:07:20 -03:00
Thales Macedo Garitezi
c984449bad
Merge pull request #10530 from thalesmg/fix-wait-ssl-crl-test-v50
test(crl): ensure ssl_manager is ready to avoid flakiness
2023-04-27 11:59:34 -03:00
Thales Macedo Garitezi
521b549049 test(peer): define cookie when using ct_slave module 2023-04-27 11:58:40 -03:00
Thales Macedo Garitezi
7853a4c36e chore: bump app vsns 2023-04-27 11:58:28 -03:00
Thales Macedo Garitezi
567413389c
Merge pull request #10519 from thalesmg/fix-flaky-res-test-v50
test(resource): fix flaky test
2023-04-27 09:33:40 -03:00
Thales Macedo Garitezi
99448151e9 test(crl): ensure ssl_manager is ready to avoid flakiness
Example failure: https://github.com/emqx/emqx/actions/runs/4806430125/jobs/8555021522?pr=10524#step:8:49138
2023-04-27 09:12:40 -03:00
Zhongwen Deng
e789e57b65 chore: change node.data_dir from hidden to low 2023-04-27 14:41:23 +08:00
firest
ce2f2217ee chore: bump versions 2023-04-27 10:36:50 +08:00
firest
262f0e8dd9 chore: update README 2023-04-27 10:31:19 +08:00
Thales Macedo Garitezi
7e24b35bb3 chore: bump release version to e5.0.3-alpha.4 2023-04-26 17:09:39 -03:00
Zaiming (Stone) Shi
0c284ce5fe chore: bump app versions 2023-04-26 20:50:06 +02:00
Zaiming (Stone) Shi
d89975c6ee test: add a test case for emqx_machine:node_status 2023-04-26 20:48:53 +02:00
Zaiming (Stone) Shi
51cd83e70f refactor: delete dead code 2023-04-26 20:48:53 +02:00
Ivan Dyachkov
31e54d0598
Merge pull request #10532 from id/0426-v5.0.24
0426 v5.0.24
2023-04-26 19:21:22 +02:00
Zaiming (Stone) Shi
75294a4f73
Merge pull request #10513 from zmstone/0424-EMQX-9689-stop-providing-desc-and-label-in-schemas-api
0424 emqx 9689 stop providing desc and label in schemas api (part 1)
2023-04-26 19:04:33 +02:00
Thales Macedo Garitezi
c53741a08c fix(buffer_worker): avoid sending late reply messages to callers
Fixes https://emqx.atlassian.net/browse/EMQX-9635

During a sync call from process `A` to a buffer worker `B`, its call
to the underlying resource `C` can be very slow.  In those cases, `A`
will receive a timeout response and expect no more messages from `B`
nor `C`.  However, prior to this fix, if `B` is stuck in a long sync
call to `C` and then gets its response after `A` timed out, `B` would
still send the late response to `A`, polluting its mailbox.
2023-04-26 13:18:28 -03:00
Ivan Dyachkov
35c48ef009 chore: v5.0.24 2023-04-26 18:02:44 +02:00
Zaiming (Stone) Shi
ed7a8659d2 feat: add a json format support for the /status API 2023-04-26 14:41:33 +02:00
Zaiming (Stone) Shi
9260b5ec6c test(emqx_dashboard): add test case for api/v5/schemas API 2023-04-26 14:41:33 +02:00
Zaiming (Stone) Shi
55c488fa95 refactor: stop generating static hot-conf and bridges schema files 2023-04-26 14:41:33 +02:00
Zaiming (Stone) Shi
28a68a0ec7 refactor: stop i18n support in hotconf and bridges
frontend team has decided to deal with translations all by themselves
2023-04-26 14:41:33 +02:00
Thales Macedo Garitezi
d78312e10e test(resource): fix flaky test 2023-04-26 09:25:33 -03:00
William Yang
15fe445c66
Merge pull request #10527 from qzhuyan/test/william/test-use-os-selected-port
fix(test): avoid port collision
2023-04-26 13:39:36 +02:00
William Yang
abf150518c fix(test): avoid port collision
Use OS selected free port to avoid port collision among the test runs.
2023-04-26 12:16:16 +02:00
William Yang
5ed3c3a92c perf(config): eliminate make_ref() calls in config get calls 2023-04-26 10:58:08 +02:00
SergeTupchiy
d398276852
Merge pull request #10518 from SergeTupchiy/upgrade-ekka-to-0.15.1-mria-0.5.2
chore: bump ekka to 0.15.1
2023-04-26 11:03:23 +03:00
zhongwencool
c78004001c
Merge pull request #10481 from HJianBo/hidden-bad-link
chore: hide bad links in README files
2023-04-26 15:22:30 +08:00
zhongwencool
62e1dbdb4e
Merge pull request #10521 from zhongwencool/sync-release-50-to-master
Sync release 50 to master
2023-04-26 14:27:51 +08:00
zhongwencool
713e050a79
Merge pull request #10512 from zhongwencool/hocon-0.39.3
feat: improved the storage format of Unicode characters in data files
2023-04-26 13:59:51 +08:00
zhongwencool
9d893b49eb
Merge branch 'master' into sync-release-50-to-master 2023-04-26 10:54:46 +08:00
Thales Macedo Garitezi
79cf5cad19
Merge pull request #10378 from thalesmg/pulsar-producer-e50
feat: implement Pulsar Producer bridge (e5.0)
2023-04-25 18:01:43 -03:00
Serge Tupchii
19b5ebff81 chore: bump ekka to 0.15.1
ekka 0.15.1 uses mria 0.5.2, which includes the following changes:
  - fix(mria_membership): call `mria_rlog:role/1` safely
  - feat: add extra field to ?rlog_sync table (for future use)
2023-04-25 23:21:07 +03:00
Thales Macedo Garitezi
b56a158a54 fix(pulsar): fix function return typespec 2023-04-25 14:29:40 -03:00
Thales Macedo Garitezi
f69ebdcd1a test(pulsar): teardown tls group 2023-04-25 14:27:24 -03:00
Thales Macedo Garitezi
4cc4c4ffaa style: format rebar.config file 2023-04-25 14:26:19 -03:00
Thales Macedo Garitezi
a703707803 chore: tag e5.0.3-alpha.3 2023-04-25 10:51:34 -03:00
Thales Macedo Garitezi
fe1c3cd1a7
Merge pull request #10503 from thalesmg/fix-kconsumer-flaky-test-v50
test: attempt to fix flaky test
2023-04-25 09:33:58 -03:00
Thales Macedo Garitezi
3138e2b3a1 chore: un-hide ocsp stapling config
Undoing https://github.com/emqx/emqx/pull/10160
2023-04-25 09:33:24 -03:00
Zhongwen Deng
308056f0fc feat: improved the storage format of Unicode characters in data files 2023-04-25 18:08:34 +08:00
Zhongwen Deng
d6208d8847 test: add test for depreated config file 2023-04-25 14:47:05 +08:00
JianBo He
699bd4b85b
Merge pull request #10451 from HJianBo/update-conf-plugin-readme
chore: update README files
2023-04-25 14:43:55 +08:00
Zhongwen Deng
f84fc6f8b9 fix: can't update authentication when cluster-override.conf 2023-04-25 11:59:06 +08:00
zhongwencool
79a235f8b5
Merge pull request #10491 from zhongwencool/rename-etcd-ssl-to-ssl_options
feat: rename etcd.ssl to etcd.ssl_options
2023-04-25 10:49:09 +08:00
Zhongwen Deng
3f689d0fdf feat: don't do rpc call to check deprecated file 2023-04-25 10:10:56 +08:00
zhongwencool
996d5eee45
Merge pull request #10493 from zhongwencool/remove-dashboard-default-username-conf
chore: remove dashboard's default username from emqx.conf
2023-04-25 09:45:30 +08:00
lafirest
29d3afd692
Merge pull request #10487 from lafirest/fix/limiter_instance
fix(limiter): optimize the instance of limiter
2023-04-25 09:43:04 +08:00
Andrew Mayorov
a420c92d28
fix(ft): fix typing issue 2023-04-24 21:51:54 +03:00
Andrew Mayorov
5efd590ca4
feat(ft): properly propagate config updates
Ensure that:
* Storage config might be removed.
* Local FS GC process is set up when Local FS storage is configured.
* Local FS GC process gets its timer reset on config updates.
* Storage / exporter gets chosen based on `type` only.
* Exporter config updates propagated as before.

Also employ `emqx_ft_schema:translate/1` instead of duplicating
defaults where applicable.
2023-04-24 21:51:54 +03:00
Thales Macedo Garitezi
e9fde12913 test: attempt to fix flaky test
Example failure: https://github.com/emqx/emqx/actions/runs/4789177314/jobs/8517116154#step:7:503
2023-04-24 15:19:33 -03:00
Serge Tupchii
99e892b5c4 chore: bump ekka to 0.15.0
ekka 0.15.0 uses mria 0.5.0, which adds several fixes, enhancements and features:
  - protect `mria:join/1,2` with a global lock
  - implement new function `mria:sync_transaction/4,3,2`, which waits for
    a transaction replication to be ready on the local node
    (if the local node is a replicant)
  - optimize `mria:running_nodes/0`
  - optimize `mria:ro_transaction/2` when called on a replicant node.

Fixes: EMQX-9588 (#10380), EMQX-9102, EMQX-9152, EMQX-9213
2023-04-24 20:52:20 +03:00
Thales Macedo Garitezi
377b143325 refactor: split parse_server into smaller functions, improve return type to use map 2023-04-24 14:17:29 -03:00
lafirest
2845469c48
Merge pull request #10490 from lafirest/fix/rmv_def_conn_limit
fix(limiter): remove the default limit of connect rate
2023-04-24 22:04:29 +08:00
Thales Macedo Garitezi
4f2262129b refactor: rename {first_,}key_dispatch partition strategy option 2023-04-24 10:28:26 -03:00
Thales Macedo Garitezi
4af6e3eb6e refactor: rm unused modules 2023-04-24 10:28:26 -03:00
Thales Macedo Garitezi
120d3e70ea chore: bump app vsns 2023-04-24 10:28:26 -03:00
Thales Macedo Garitezi
1e8dd70a11 chore: fix error message and rename variable 2023-04-24 10:28:26 -03:00
Thales Macedo Garitezi
180b6acd9e docs: remove auto-generated comment 2023-04-24 10:28:26 -03:00
Thales Macedo Garitezi
f4a3affd6f docs: change phrasing after review 2023-04-24 10:28:26 -03:00
Thales Macedo Garitezi
ad4be08bb2 feat: implement Pulsar Producer bridge (e5.0)
Fixes https://emqx.atlassian.net/browse/EMQX-8398
2023-04-24 10:28:26 -03:00
Thales Macedo Garitezi
f6da118ebd test: fix flaky test 2023-04-24 09:28:36 -03:00
Thales Macedo Garitezi
dc48032309 feat(schema): add support for schemes in server parser/validator 2023-04-24 09:28:36 -03:00
Thales Macedo Garitezi
4bcfbea056 refactor(kafka_consumer): follow up refactoring requested from previous pull request
Follow up from https://github.com/emqx/emqx/pull/10273
2023-04-24 09:28:36 -03:00
Thales Macedo Garitezi
26883eec02 test(kafka): fix innocuous test assertion 2023-04-24 09:28:36 -03:00
Thales Macedo Garitezi
8cfb24b5b4 docs(kafka_bridge): minor fixes to license and readme
Fixes https://emqx.atlassian.net/browse/EMQX-9481
2023-04-24 09:28:36 -03:00
lafirest
0e96b5d01e
Merge pull request #10483 from lafirest/fix/resource_aovid_crash
fix(resource): make sure resource will not crash when stopping
2023-04-24 20:16:01 +08:00
firest
6110aad23f chore: bump version && update changes 2023-04-24 18:17:23 +08:00
firest
feeb3df994 fix(api): add limiter API back which deleted by mistake 2023-04-24 18:09:17 +08:00
zhongwencool
22d6a2eaee
Merge pull request #10484 from zhongwencool/fix-copy-conf
fix: copy cluster-override.conf from old version
2023-04-24 17:06:07 +08:00
Zhongwen Deng
275967a49f chore: remove dashboard's default username from emqx.conf 2023-04-24 16:13:42 +08:00
Zaiming (Stone) Shi
366aa53c80
Merge pull request #10462 from zmstone/0430-EMQX-8434-shared-dispatch-ack-deprecated
chore: Hide config shared_dispatch_ack_enabled
2023-04-24 09:42:09 +02:00
Zhongwen Deng
db0c951e30 feat: don't do rpc call to check deprecated file 2023-04-24 15:31:02 +08:00
Ivan Dyachkov
988e4ec1aa
Merge pull request #10476 from id/e5.0.3-alpha.2
chore: e5.0.3-alpha.2
2023-04-24 09:08:29 +02:00
Zhongwen Deng
0b1a2dd193 feat: rename etcd.ssl to etcd.ssl_options 2023-04-24 14:40:30 +08:00
firest
7b51a49f84 fix(limiter): remove the default limit of connect rate 2023-04-24 14:09:23 +08:00
firest
c2e35a42b0 fix(limiter): optimize the instance of limiter
We can reduce a limiter container with all types are `infinity` to just a `infinity` atom
2023-04-24 10:43:55 +08:00
某文
8bfee90322 chore: make static_check happy 2023-04-23 20:06:51 +08:00
某文
6dcecfed40 chore: make static_check happy 2023-04-23 19:47:57 +08:00
某文
b4c16d37c7 chore: make static_check happy 2023-04-23 18:09:51 +08:00
某文
f96c1630e1 chore: pin emqx_conf to 0.17.0 2023-04-23 17:30:07 +08:00
某文
e0fd861863 chore: make static_check happy 2023-04-23 17:24:34 +08:00
某文
5593e38ed3 fix: copy cluster-override.conf from old version 2023-04-23 17:24:24 +08:00
某文
7af9c18caa fix: copy cluster-override.conf from old version 2023-04-23 15:43:18 +08:00
firest
7d2c336ab7 fix(resource): make sure resource will not crash when stopping 2023-04-23 15:31:08 +08:00
firest
5ad5d7ee8d fix(opents): adjust code structure 2023-04-23 14:28:14 +08:00
JianBo He
6e1d6f1991 chore: hide bad links in README files 2023-04-23 11:27:59 +08:00
firest
540518eac3 chore: add README for OpenTSDB bridge 2023-04-23 11:22:48 +08:00
firest
0b46acda87 test(opents): add test cases for OpenTSDB 2023-04-23 11:03:20 +08:00
firest
5074825075 feat(opents): OpenTSDB integration 2023-04-23 09:56:24 +08:00
Ilya Averyanov
69c4ba2a62 feat(ft): use new utils application 2023-04-22 22:50:19 +03:00
Ivan Dyachkov
6beb9e00b6 chore: e5.0.3-alpha.2 2023-04-22 20:09:40 +02:00
Zaiming (Stone) Shi
ceafc52ad6 refactor: use emqx_utils_ets for ets table creation 2023-04-22 09:07:15 +02:00
Ilya Averyanov
ebb75b275e feat(ft): update app versions 2023-04-21 17:52:13 +03:00
Ilya Averyanov
0211bcf030 Merge branch 'master' into file-transfer
* master: (279 commits)
  chore: shorten ct/run.sh script
  chore: rename cassandra_impl to cassandra_connector
  chore: fix mix.exs checking
  refactor(cassandra): move cassandra bridge into its own app
  chore: apply review suggestions
  chore: update changes/ce/fix-10449.en.md
  test: add a test for authn {}
  chore: add changlog for authn_http validation
  fix: always check authn_http's header and ssl_option
  chore: apply suggestions from code review
  fix(emqx_bridge): validate Webhook bad URL and return 'BAD_REQUEST' if it's invalid
  fix(emqx_alarm): add safe call API to activate/deactivate alarms and use it in resource_manager
  perf(emqx_alarm): use dirty Mnesia operations to activate an alarm
  ci: simplify find-apps.sh for ee apps
  perf(emqx_resource): don't reactivate alarms on reoccurring errors
  ci: check if Elixir files are formatted in pre-commit hook
  fix(dynamo): fix field name errors
  chore: remove *_collector for prometheus api's example
  chore: make plugins config to low level
  chore: re-split dynamo i18n file
  ...
2023-04-21 17:37:17 +03:00
某文
df31a8a342 test: conf_schema_tests failed 2023-04-21 20:29:14 +08:00
Zaiming (Stone) Shi
701a1f65f9 chore: Hide config shared_dispatch_ack_enabled 2023-04-21 13:59:55 +02:00
JianBo He
b270623c46 chore: rename cassandra_impl to cassandra_connector 2023-04-21 16:49:25 +08:00
JianBo He
cea0502160
chore: update apps/emqx_conf/README.md
Co-authored-by: ieQu1 <99872536+ieQu1@users.noreply.github.com>
2023-04-21 16:23:47 +08:00
Zhongwen Deng
1db38de71f chore: apply review suggestions 2023-04-21 15:32:16 +08:00
Zhongwen Deng
dc92b4f63f test: add a test for authn {} 2023-04-21 15:30:17 +08:00
Zhongwen Deng
397e28f5a4 chore: add changlog for authn_http validation 2023-04-21 15:30:05 +08:00
Zhongwen Deng
c1000ccaed fix: always check authn_http's header and ssl_option 2023-04-21 15:29:51 +08:00
JianBo He
5cc28a7b45 chore: fix mix.exs checking 2023-04-21 14:46:09 +08:00
JianBo He
bdce32e713 refactor(cassandra): move cassandra bridge into its own app 2023-04-21 14:45:38 +08:00
JianBo He
6532cfb337
Merge pull request #10452 from thalesmg/refactor-gcp-pubsub-bridge-v50
refactor(gcp_pubsub): move GCP PubSub Bridge to its own app
2023-04-21 14:42:00 +08:00
Zhongwen Deng
fdf9b2a383 chore: apply review suggestions 2023-04-21 12:19:38 +08:00
Zhongwen Deng
1e54d23d31 test: add a test for authn {} 2023-04-21 11:54:45 +08:00
Zhongwen Deng
2aef9ca215 chore: add changlog for authn_http validation 2023-04-21 11:54:45 +08:00
Zhongwen Deng
8e8ba6ce7e fix: always check authn_http's header and ssl_option 2023-04-21 11:54:45 +08:00
SergeTupchiy
0b105dcb8d
Merge pull request #10463 from SergeTupchiy/EMQX-9310-webhook-port-validation
fix(emqx_bridge): validate Webhook bad URL
2023-04-20 20:48:12 +03:00
Ilya Averyanov
8c4b32580e
Merge pull request #10420 from savonarola/0417-authn-authz-fix-path-quoting
Fix path joining and quoting in authn/authz
2023-04-20 18:03:04 +03:00
SergeTupchiy
b38ae7f78f
Merge pull request #10407 from SergeTupchiy/EMQX-9529-resource-manager-crash-on-alarm-timeout
fix(emqx_resource): call emqx_alarm safely and don't reactivate alarm on reoccurring errors
2023-04-20 17:53:56 +03:00
Zaiming (Stone) Shi
82e6ce53be
Merge pull request #10460 from zmstone/0420-sync-release-50-to-masteer
0420 sync release 50 to masteer
2023-04-20 16:41:50 +02:00
JianBo He
de8da7dc37
Merge pull request #10434 from HJianBo/improve-modules-promethues-readme
Improve modules promethues readme
2023-04-20 22:37:54 +08:00
JianBo He
5a7685a341
chore: apply suggestions from code review
Co-authored-by: ieQu1 <99872536+ieQu1@users.noreply.github.com>
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-04-20 22:26:29 +08:00
Serge Tupchii
45254d7d85 fix(emqx_bridge): validate Webhook bad URL and return 'BAD_REQUEST' if it's invalid
Fixes: EMQX-9310
2023-04-20 17:21:43 +03:00
Serge Tupchii
423a30fbb3 fix(emqx_alarm): add safe call API to activate/deactivate alarms and use it in resource_manager
Don't let 'emqx_resource_manager' crash because of emqx_alarm timeouts.

Fixes: EMQX-9529/#10357
2023-04-20 17:15:13 +03:00
Serge Tupchii
b960d2ecb3 perf(emqx_alarm): use dirty Mnesia operations to activate an alarm
Alarms are stored in a local content shard and all 'activate' operations
are serialized as they are called by one process ('emqx_alarm' gen_server), so
using dirty operations gives performance gain without sacrificing consistency.

Fixes: EMQX-9529/#10357
2023-04-20 17:15:13 +03:00
Serge Tupchii
b5eda9f0d1 perf(emqx_resource): don't reactivate alarms on reoccurring errors
Avoid unnecessary calls to activate an alarm if it has been already activated.

Fixes: EMQX-9529/#10357
2023-04-20 16:37:33 +03:00
Thales Macedo Garitezi
3f18c5e2e3
Merge pull request #10455 from thalesmg/fix-late-gen-server-replies-buf-worker-v50
fix(buffer_worker): avoid sending late reply messages to callers
2023-04-20 10:19:06 -03:00
Zhongwen Deng
4464a31fab chore: remove *_collector for prometheus api's example 2023-04-20 18:01:27 +08:00
Zhongwen Deng
bcc8f4313b chore: make plugins config to low level 2023-04-20 18:00:19 +08:00
zhongwencool
72685beb72
Merge pull request #10457 from HJianBo/hide-statsd
chore: deprecate statsd
2023-04-20 17:19:33 +08:00
Zaiming (Stone) Shi
415830a0a2 Merge remote-tracking branch 'origin/release-50' into 0420-sync-release-50-to-masteer 2023-04-20 11:03:39 +02:00
Kjell Winblad
7d3367467a
Merge pull request #10408 from kjellwinblad/kjell/rule_engine/add_missing_mongo_date_functions/EMQX-9244
feat: add mongo_date functions to the rule engine
2023-04-20 09:46:45 +02:00
JianBo He
794ddd8d73 chore: update changes 2023-04-20 14:23:55 +08:00
JianBo He
712f7b7454 chore: deprecate statsd 2023-04-20 14:15:09 +08:00
Thales Macedo Garitezi
cb995e2033 fix(buffer_worker): avoid sending late reply messages to callers
Fixes https://emqx.atlassian.net/browse/EMQX-9635

During a sync call from process `A` to a buffer worker `B`, its call
to the underlying resource `C` can be very slow.  In those cases, `A`
will receive a timeout response and expect no more messages from `B`
nor `C`.  However, prior to this fix, if `B` is stuck in a long sync
call to `C` and then gets its response after `A` timed out, `B` would
still send the late response to `A`, polluting its mailbox.
2023-04-19 18:27:10 -03:00
Thales Macedo Garitezi
a9bd91fcff refactor(gcp_pubsub): move GCP PubSub Bridge to its own app
Fixes https://emqx.atlassian.net/browse/EMQX-9536

Note: since GCP PubSub is not shared by any authn/authz backend,
there's no need to separate its connector into another app.
2023-04-19 13:24:32 -03:00
Andrew Mayorov
f06300cbed
fix(s3): mark S3 secrets as sensitive in schema 2023-04-19 19:05:12 +03:00
Andrew Mayorov
04523b3f81
fix(ft): restrict max filename length in transfers
Reject transfers with too long filenames right away, during `init`
handling, to avoid having to deal with filesystem errors later.
2023-04-19 18:48:40 +03:00
lafirest
8ccfbe9e16
Merge pull request #10448 from lafirest/fix/limiter_compatibility
fix(limiter): fix compatibility problem of configuration
2023-04-19 23:19:19 +08:00
JianBo He
eda2f0819d
chore: apply suggestions from code review 2023-04-19 21:22:01 +08:00
JianBo He
bd935e34e6
chore: update apps/emqx_modules/README.md 2023-04-19 21:12:24 +08:00
JianBo He
13f50b2ba9 chore: update README files 2023-04-19 21:05:10 +08:00
Thales Macedo Garitezi
cb3ef65775
Merge pull request #10439 from thalesmg/unhide-ocsp-config-v50
chore: un-hide ocsp stapling config
2023-04-19 09:21:10 -03:00
firest
4f0c891aa6 chore: bump version && update changes 2023-04-19 15:45:31 +08:00
firest
5455500647 fix(limiter): fix compatibility problem of configuration 2023-04-19 15:12:55 +08:00
lafirest
4591020ac3
Merge pull request #10435 from lafirest/fix/slow_subs_readme
chore: add README for slow subscriptions
2023-04-19 10:06:03 +08:00
JianBo He
d947b66327
chore: update apps/emqx_slow_subs/README.md 2023-04-19 09:51:19 +08:00
JianBo He
628a5e6eaf
Merge pull request #10402 from HJianBo/prepared-bridges-apps
chore: create dirs and README template for all ee bridges
2023-04-19 09:37:53 +08:00
Thales Macedo Garitezi
6a1ef5e68a
Merge pull request #10422 from thalesmg/fix-plugin-sync-single-node-v50
fix(plugins): attempt to extract plugin from current node on startup
2023-04-18 14:39:02 -03:00
Thales Macedo Garitezi
199cbc60d9 chore: un-hide ocsp stapling config
Undoing https://github.com/emqx/emqx/pull/10160
2023-04-18 14:38:03 -03:00
Zaiming (Stone) Shi
f361870ca7 refactor: hide sysmon.top config 2023-04-18 19:17:03 +02:00
Zaiming (Stone) Shi
12e549a3a2 refactor: change exhook config importance level from hidden to low 2023-04-18 19:17:03 +02:00
Zaiming (Stone) Shi
be70c7d385 refactor: change rule_engine config importance level from hidden to low 2023-04-18 19:17:03 +02:00
Zaiming (Stone) Shi
30fd9b10f7 refactor: change bridges config importance level from hidden to low 2023-04-18 19:17:03 +02:00
Zaiming (Stone) Shi
d51cc750de refactor: hide psk user_lookup_fun 2023-04-18 19:17:03 +02:00
Zaiming (Stone) Shi
4d67312bab refactor: set authz config at 'high' importance level
and authorization.sources at 'low' level
prior to this commit, the root was set to 'hidden'
which is not ideal because some may still want to configure
the sources from files
2023-04-18 19:17:03 +02:00
Zaiming (Stone) Shi
6bc33e86be refactor: set rpc config at 'low' importance level instead of 'hidden' 2023-04-18 19:17:03 +02:00
Zaiming (Stone) Shi
a30e08d06a refactor: set authn config at 'low' prio instead of 'hidden' 2023-04-18 19:17:03 +02:00
Zaiming (Stone) Shi
9efbb71ae8
Merge pull request #10441 from zmstone/0418-fix-flakyness
test: pick random port number for gcp pubsub mock server
2023-04-18 19:11:30 +02:00
Ivan Dyachkov
c858fba9d4 chore: v5.0.23 2023-04-18 17:34:28 +02:00
Ivan Dyachkov
dc78ecb41c chore: merge upstream/master 2023-04-18 17:33:32 +02:00
JianBo He
7de6c5b392 chore: update prometheus README 2023-04-18 22:47:26 +08:00
JianBo He
acea64790b chore: add README for emqx_modoules 2023-04-18 22:47:26 +08:00
JianBo He
46bbcf93f4
Merge pull request #10426 from zhongwencool/conf-changelog
chore: update config's changelog and emqx_conf.template
2023-04-18 22:16:45 +08:00
Thales Macedo Garitezi
89cd6cfede fix(plugins): attempt to extract plugin from current node on startup
Fixes https://emqx.atlassian.net/browse/EMQX-9605

Fixes https://github.com/emqx/emqx-elixir-plugin/issues/25

If an user happens to configure a plugin in a lone-node cluster via
environment variables, it would fail to start up as there are no other
nodes to copy the plugin from.  Here, we attempt to check if the
package is present in the current node but not yet extracted.
2023-04-18 11:10:23 -03:00
Andrew Mayorov
75813683be
Merge pull request #10371 from ft/EMQX-9257/resource-pool-switch
feat(respool): switch to `emqx_resource_pool`
2023-04-18 16:58:17 +03:00
Zaiming (Stone) Shi
97b8f00508 test: pick random port number for gcp pubsub mock server 2023-04-18 15:07:57 +02:00
zhongwencool
59182ee0fc
chore: update apps/emqx_conf/etc/emqx_conf.conf
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-04-18 21:07:16 +08:00
zhongwencool
9ca09383ba
chore: remove desc from emqx.conf
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-04-18 21:07:02 +08:00
某文
444196922c chore: update emqx.conf's note 2023-04-18 20:18:46 +08:00
某文
fbadfc06e4 feat: change exhook, rule_engine, bridge to low importance level instead of hidden 2023-04-18 20:15:19 +08:00
Zhongwen Deng
22a1d05d7b feat: hide ssl_options.user_lookup_fun 2023-04-18 20:13:44 +08:00
Zhongwen Deng
e3d6fa1f21 chore: update config's changelog and emqx_conf.template 2023-04-18 20:13:44 +08:00
Zaiming (Stone) Shi
d0a7e7c406
Merge pull request #10421 from zmstone/0417-refine-authn-schema-namespace
0417 refine authn schema namespace
2023-04-18 14:04:20 +02:00
ieQu1
c0d8e9c402
Merge pull request #10369 from ieQu1/fix-stats-api
fix(emqx_management): Ignore results from the nodes that are down
2023-04-18 12:36:55 +02:00
Andrew Mayorov
21e19a33ce
feat(respool): switch to emqx_resource_pool
Which was previously known as `emqx_plugin_libs_pool`. This is part
of the effort to get rid of `emqx_plugin_libs` application.
2023-04-18 12:51:14 +03:00
zhongwencool
4240720753
Merge pull request #10431 from zhongwencool/delete-trace-limiter-api
feat: delete trace/limiter config's hot update api
2023-04-18 17:40:39 +08:00
firest
69e334a77d chore: reorganize the README to follow template 2023-04-18 17:25:11 +08:00
firest
f3614b2c65 chore: add README for slow subscriptions 2023-04-18 17:13:06 +08:00
ieQu1
a6688ed07a refactor(emqx_management): Use emqx:running_node function 2023-04-18 10:24:39 +02:00
Zhongwen Deng
d0f30d2f7c feat: delete trace/limiter config's hot update api 2023-04-18 16:13:17 +08:00
Kjell Winblad
29584ca721 feat: add mongo_date functions to the rule engine
This commit adds mong_date built-in functions to the rule engine
SQL-like language. Corresponding functions already existed in EMQX 4.4
and this commit makes sure that EMQX 5.X also has these functions.

Fixes:
https://emqx.atlassian.net/browse/EMQX-9244
2023-04-18 10:01:35 +02:00
Zaiming (Stone) Shi
cd1197925f test: fix unit tests after type names changed 2023-04-18 09:48:28 +02:00
Zaiming (Stone) Shi
6dd7befaab refactor: unify authn authz type names 2023-04-18 09:48:28 +02:00
firest
721125a9f6 fix(retainer): mark flow-control as non-importance field 2023-04-18 15:34:42 +08:00
ieQu1
282bfee8ff feat(emqx): Add an API that returns the list of running nodes 2023-04-18 09:22:58 +02:00
ieQu1
a947df1ea3 fix(emqx_management): Ignore results from the nodes that are down 2023-04-18 09:22:56 +02:00
JianBo He
c53ccfea61 chore: fix typos 2023-04-18 13:48:55 +08:00
JianBo He
8cb9389d21 chore: apply suggestions from code review
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-04-18 09:36:42 +08:00
JianBo He
ec8d8b805f chore: add ee bridge apps 2023-04-18 09:36:41 +08:00
JianBo He
7eacbffae9 chore: create dirs and README template for all ee bridges 2023-04-18 09:36:41 +08:00
zhongwencool
ad3e529994 chore: update changes/ce/feat-10389.en.md
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-04-18 09:34:01 +08:00
某文
933e6727ba feat: node array support array(atom()) and comma_separated_atoms 2023-04-18 09:28:36 +08:00
Ilya Averyanov
88ca94b417 fix(auth): fix uri path handling
Fix uri path handling `emqx_connector_http`,
 HTTP authentication and authorization backends.
2023-04-17 23:57:56 +03:00
Kjell Winblad
0c727fc9b2
Merge pull request #10392 from kjellwinblad/kjell/rule_engine/add_missing_datetime_function/EMQX-9245
freat: add date_to_unix_ts/3 function to the rule engine
2023-04-17 18:09:44 +02:00
Ivan Dyachkov
c03a94bae9 chore: e5.0.3-alpha.1 2023-04-17 16:48:07 +02:00
Zaiming (Stone) Shi
466a28daf2 test: fix test cases to work with new exctption 2023-04-17 13:58:14 +02:00
Zaiming (Stone) Shi
373e7b33f9 test: allow tests to run without desc cache 2023-04-17 13:58:14 +02:00
Zaiming (Stone) Shi
6969c2a670 refactor: not leagal -> invalid 2023-04-17 13:58:14 +02:00
Zaiming (Stone) Shi
1aa5b528e9 feat: generate hotconf and bridge schema on the fly 2023-04-17 13:58:14 +02:00
Zaiming (Stone) Shi
56b9667436 refactor(emqx_conf): prepare for dynamic api schema generation 2023-04-17 13:58:14 +02:00
Zaiming (Stone) Shi
18974a8e11 refactor: make schema dump and swagger spec work with split desc files 2023-04-17 13:58:11 +02:00
JianBo He
f2fae16d3b fix(gw): load emqx applications before hocon configs checking 2023-04-17 13:56:39 +02:00
Ivan Dyachkov
9712aad7a8
Merge pull request #10413 from id/0416-e5.0.3-code-freeze
0416 e5.0.3 code freeze
2023-04-17 13:51:58 +02:00
zhongwencool
35c36e8872
Merge pull request #10415 from zhongwencool/authz-rule-and-or-improve
chore: short-circuit expressions on authz‘s and/or rules.
2023-04-17 18:21:04 +08:00
Kjell Winblad
37f42a486c test: improve proper test so it generates more cases 2023-04-17 12:03:13 +02:00
JianBo He
19eda3bc5f
Merge pull request #10410 from HJianBo/fix-load-gw-from-confs
fix(gw): load emqx applications before hocon configs checking
2023-04-17 18:01:31 +08:00
某文
e9e0ae7f0a chore: When matching authz's and/or rules, check the simple ones first to improve efficiency 2023-04-17 17:23:39 +08:00
Ivan Dyachkov
9fc8a498f8 chore: bump apps versions 2023-04-17 09:09:08 +02:00
firest
02f8d073f8 test(limiter): fix test errors and make spellcheck happy 2023-04-17 10:06:43 +08:00
firest
55376144ce fix(limiter): simplify the configuration of the limiter 2023-04-17 10:06:36 +08:00
zhongwencool
69d1a35c90
Merge pull request #10156 from zhongwencool/conf-refactor
feat: configuration priority ENV > emqx.conf > API
2023-04-16 13:45:35 +08:00
zhongwencool
bcbeae1da5
Merge pull request #10405 from zhongwencool/hide-dashboard-conf
feat: hide dashboard's default_username/default_password conf
2023-04-16 13:35:34 +08:00
Zhongwen Deng
98e8287260 fix: hidden password in dashboard https's shema 2023-04-16 13:30:12 +08:00
Zhongwen Deng
ad65fefac2 fix: rename emqx_misc to emqx_utils 2023-04-16 10:27:23 +08:00
Zhongwen Deng
782649020b Merge remote-tracking branch 'upstream/master' into deprecated-stats-conf 2023-04-16 10:17:38 +08:00
zhongwencool
3510ac63b9
Merge pull request #10406 from zhongwencool/hide-node
feat: hide node advance config
2023-04-16 09:57:42 +08:00
JianBo He
3a511c6229 fix(gw): load emqx applications before hocon configs checking 2023-04-15 19:41:07 +08:00
Zhongwen Deng
8461551f51 test: rename module from emqx_map_lib to emqx_utils_maps 2023-04-15 06:56:33 +08:00
zhongwencool
a00daa4d97
Merge branch 'master' into deprecated-stats-conf 2023-04-15 06:47:28 +08:00
zhongwencool
494ffe86ad
Merge branch 'master' into conf-refactor 2023-04-15 06:40:38 +08:00
Stefan Strigler
7df0493312
Merge pull request #10390 from sstrigler/EMQX-9549-new-emqx-utils-app-to-collect-utility-modules
New emqx_utils app to collect utility modules
2023-04-14 20:33:11 +02:00
Thales Macedo Garitezi
0e3a6d7f22
Merge pull request #10404 from thalesmg/buffer-mem-only-v50
feat(buffer_worker): set default queue mode to `memory_only`
2023-04-14 15:18:12 -03:00
Stefan Strigler
17d84fb5e0 Merge branch 'EMQX-9549-new-emqx-utils-app-to-collect-utility-modules' of github.com:sstrigler/emqx into EMQX-9549-new-emqx-utils-app-to-collect-utility-modules 2023-04-14 18:53:47 +02:00
Stefan Strigler
9ccfa643ce
style: fix wording
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-04-14 18:51:51 +02:00
Stefan Strigler
a20797160e style: remove unnecessary ifdef(TEST) 2023-04-14 18:45:25 +02:00
Zhongwen Deng
97a936ad4f test: fix failed test 2023-04-14 23:46:05 +08:00
Zhongwen Deng
8948be49e7 feat: hide node advance config 2023-04-14 23:29:41 +08:00
Stefan Strigler
16c49b2cc1 fix: undo wrong thinking about returned types from decode 2023-04-14 17:21:38 +02:00
Zhongwen Deng
8facd130f6 chore: update cluster_hocon_file/0 function 2023-04-14 23:19:38 +08:00
Stefan Strigler
24df1045de fix: test not updated after rebase 2023-04-14 16:40:25 +02:00
Thales Macedo Garitezi
e073bc90bc refactor(buffer_worker): rename s/queue/buffer/g 2023-04-14 11:37:19 -03:00
Thales Macedo Garitezi
14ed4a7ada feat(buffer_worker): set default queue mode to memory_only
Fixes https://emqx.atlassian.net/browse/EMQX-9367

For better user experience and performance for the average bridge, we
should change the default queue mode to `memory_only`, as was the
behavior of most bridges in e4.x.  This leads to better performance
when message rate is high enough and the remote resource is not
keeping up with EMQX.

Also, we set the default segment size to equal max queue bytes.
2023-04-14 11:37:19 -03:00
zhongwencool
7c5dead03a
chore: update cluster_hocon_file doc
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-04-14 22:30:35 +08:00
Stefan Strigler
53871e3a2c fix: stale ref to emqx_json after rebase 2023-04-14 16:30:27 +02:00
zhongwencool
bcce989906
chore: update has_deprecated_file doc
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-04-14 22:30:11 +08:00
Stefan Strigler
a9976287b5 fix: force proper calling decode to return proplist 2023-04-14 16:26:32 +02:00
Zhongwen Deng
99d6c5e179 feat: hide dashboard's default_username/default_password conf 2023-04-14 21:57:09 +08:00
Zhongwen Deng
3789ca2622 chore: revert stats desc 2023-04-14 21:31:34 +08:00
Zhongwen Deng
7934a1cea1 feat: hide overload_protection,conn_congestion,flapping_detect 2023-04-14 21:29:27 +08:00
某文
e5b85916b6 feat: hidden stats config 2023-04-14 21:29:27 +08:00
Zhongwen Deng
c0e6e79bcd feat: don't remove default value when save config 2023-04-14 21:17:34 +08:00
Zhongwen Deng
c21744c260 fix: hocon_pp crash when atom_key 2023-04-14 20:51:58 +08:00
Zhongwen Deng
fa753cf333 fix: failed ct test 2023-04-14 20:51:58 +08:00
Zhongwen Deng
7f870257b2 test: fix failed ct 2023-04-14 20:51:58 +08:00
Zhongwen Deng
a271ba5ff9 feat: don't check_permission on local.conf 2023-04-14 20:51:58 +08:00
Zhongwen Deng
5f4ea3b6d8 feat: deprecated cluster-override.conf 2023-04-14 20:51:58 +08:00
Zhongwen Deng
180f571765 feat: configuration priority ENV > emqx.conf > API 2023-04-14 20:51:58 +08:00
zhongwencool
57e8e2dae2
Merge pull request #10401 from zhongwencool/hide-conf-04-14
feat: hide shared_subscription_group,rpc,slow_subs
2023-04-14 20:36:10 +08:00
Thales Macedo Garitezi
4de13d2800 feat(buffer_worker): change default max queue bytes to 256 MB 2023-04-14 09:31:33 -03:00
Stefan Strigler
a295d0f134 fix: add rebar3_path_deps plugin 2023-04-14 14:29:25 +02:00
Stefan Strigler
1bad6ca67d fix: jiffy pretty print is a bit different from jsx 2023-04-14 13:41:34 +02:00
Stefan Strigler
92ca2f66f5 style: add original copyright header 2023-04-14 13:41:34 +02:00
Stefan Strigler
0f162fb50a test: add tests for emqx_utils_binary from original site 2023-04-14 13:41:34 +02:00
Stefan Strigler
badf962800 fix: stale call to emqx_misc 2023-04-14 13:41:34 +02:00
Stefan Strigler
d98f7222ff style: add comment to binary_string/1 2023-04-14 13:41:34 +02:00
Stefan Strigler
90520a5382 docs: add an actual README 2023-04-14 13:41:34 +02:00
Stefan Strigler
4f80690162 fix: byebye jsx 2023-04-14 13:41:34 +02:00
Stefan Strigler
19981757ae fix: add is_json 2023-04-14 13:41:34 +02:00
Stefan Strigler
062ce5f819 refactor: rename emqx_map_lib to emqx_utils_maps 2023-04-14 13:41:34 +02:00
Stefan Strigler
6e8665365b refactor: rename emqx_tables to emqx_utils_ets 2023-04-14 13:41:33 +02:00
Stefan Strigler
d0df086c80 refactor: rename emqx_api_lib to emqx_utils_api 2023-04-14 13:41:33 +02:00
Stefan Strigler
9c11bfce80 refactor: rename emqx_misc to emqx_utils 2023-04-14 13:41:27 +02:00
Stefan Strigler
1880da0a2e refactor: move binary_util to emqx_utils_binary 2023-04-14 13:35:15 +02:00
Stefan Strigler
f8e9e54393 refactor: move emqx_json to emqx_utils_json 2023-04-14 13:31:27 +02:00
JianBo He
a0cfac3a1a
Merge pull request #10386 from HJianBo/refactor-directoires
refactor(gw): rename all gateway application name
2023-04-14 19:26:53 +08:00
Kjell Winblad
a66d01d6f0
style: remove code duplication
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-04-14 12:48:03 +02:00
JimMoen
790d841697
Merge pull request #10363 from JimMoen/feat-mssqlserver-birdge
feat: implement Microsoft SQL Server bridge (e5.0)
2023-04-14 17:55:48 +08:00
Andrew Mayorov
5e92ba6fa9
Merge pull request #10359 from ft/EMQX-9136/no-ask-metrics
feat(resource): ask for metrics only when needed
2023-04-14 12:28:52 +03:00
Zhongwen Deng
be35ae2132 feat: hide shared_subscription_group,rpc,slow_subs 2023-04-14 17:14:11 +08:00
zhongwencool
1e07f37ab0
Merge pull request #10354 from zhongwencool/straightforward-log-info
feat: more straightforward log for force_shutdown reason
2023-04-14 10:15:32 +08:00
JimMoen
5841969877
feat: implement Microsoft SQL Server bridge (e5.0) 2023-04-14 10:02:45 +08:00
JimMoen
8ceeafb0de
chore: fix file license in lib-ee 2023-04-14 09:56:59 +08:00
zhongwencool
0553facfca
Merge pull request #10391 from zhongwencool/04-13-hide-conf
feat: hide ex_hook/rewrite/topic_metric/persistent_session_store
2023-04-14 09:39:29 +08:00
zhongwencool
626e814e9a
Merge pull request #10385 from zhongwencool/hide-conf
feat: hide data items from configuration files and documentation.
2023-04-14 09:38:34 +08:00
zhongwencool
835f66a8d2
Merge pull request #10375 from zhongwencool/trace-conf
feat: deprecated trace config
2023-04-14 09:22:12 +08:00
Ilya Averyanov
92ff2b7d6e feat(ft): make timeouts configurable 2023-04-14 01:58:14 +03:00
ieQu1
c5ad3c8f41 docs(emqx_machine): Improve README 2023-04-13 22:57:30 +02:00
Ilya Averyanov
e22c1c01ec feat(s3): make acl optional 2023-04-13 19:47:12 +03:00
JianBo He
9f99a72594 chore: refine tests 2023-04-14 00:45:22 +08:00
Thales Macedo Garitezi
9acfe00498
Merge pull request #10347 from thalesmg/refactor-kafka-bridge-dirs-v50
refactor(kafka_bridge): move kafka bridge into its own app
2023-04-13 13:26:36 -03:00
JianBo He
1759dd1157
Merge pull request #10368 from HJianBo/improve-gateway-readme
docs: update gateway README
2023-04-14 00:14:01 +08:00
Kjell Winblad
d3ccd8a65d feat: add date_to_unix_ts/3 function to the rule engine
Fixes:
https://emqx.atlassian.net/browse/EMQX-9245
2023-04-13 16:14:03 +02:00
zhongwencool
2334917e35
chore: apply suggestions from code review
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-04-13 21:59:26 +08:00
某文
58e31d5efd feat: hide ex_hook/rewrite/topic_metric/persistent_session_store/overload_protection 2023-04-13 21:52:35 +08:00
某文
c1163d1952 chore: share emqx_trace.hrl between code and test 2023-04-13 20:51:14 +08:00
某文
dd7dcfe373 fix: fix dialyzer warning 2023-04-13 20:04:03 +08:00
JianBo He
c7054886b1 chore: refine test cases 2023-04-13 17:50:58 +08:00
JianBo He
4dd0080e82 chore: fix unreachable links 2023-04-13 17:19:47 +08:00
JianBo He
40e4419a62
chore: update apps/emqx_gateway/README.md
Co-authored-by: Stefan Strigler <stefan@strigler.de>
2023-04-13 16:18:46 +08:00
JianBo He
aa9292e37e
chore: update apps/emqx_gateway/README.md
Co-authored-by: Stefan Strigler <stefan@strigler.de>
2023-04-13 16:18:34 +08:00
JianBo He
0a62d6c556 refactor(gw): rename all gateway application name 2023-04-13 14:53:47 +08:00
zhongwencool
cf2f00c937
Merge pull request #10381 from zhongwencool/hiden-auto-subscribe-conf
feat: hiden auto_subscribe conf
2023-04-13 14:42:59 +08:00
Zhongwen Deng
cc2beda37a feat: hiden rule_engine/bridge/authz/authn from doc/example 2023-04-13 14:42:21 +08:00
Zhongwen Deng
4ba4c6bf62 chore: only hiden root keys 2023-04-13 14:23:25 +08:00
Zhongwen Deng
a70930fed0 feat: hiden auto_subscribe conf 2023-04-13 09:26:16 +08:00
Thales Macedo Garitezi
871ee90b3e refactor(kafka_bridge): move kafka bridge into its own app
Fixes https://emqx.atlassian.net/browse/EMQX-9481
2023-04-12 13:54:45 -03:00
Ivan Dyachkov
1e33600190 chore: bump version to v5.0.22 2023-04-12 17:33:53 +02:00
Ivan Dyachkov
f01e2f358b
Merge pull request #10367 from id/0411-sync-release-50-back-to-master
0411 sync release 50 back to master
2023-04-12 17:23:17 +02:00
Ivan Dyachkov
bdffa925db chore: merge upstream/master release-50 2023-04-12 15:30:20 +02:00
Andrew Mayorov
9c9f39d0f7
feat(resman): also move out metrics collection for debugging
Now `emqx_resource:list_instances_verbose/0` will populate the metrics
for each instance, for the sake of simplicity.
2023-04-12 16:14:42 +03:00
JianBo He
d16b5c40d6
Merge pull request #10356 from HJianBo/async-batch-cassa
feat: support async and batch callback for cassandra connector
2023-04-12 20:59:36 +08:00
JianBo He
9774ad2cdd
chore: update apps/emqx_gateway/README.md 2023-04-12 20:54:08 +08:00
Zhongwen Deng
45254c5936 chore: add changelog for create trace 2023-04-12 17:59:14 +08:00
Stefan Strigler
f668ad7b9e
Merge pull request #10336 from sstrigler/EMQX-8507-rule-engine-need-a-new-api-to-crud-rule-engines-setting-configs
feat: add `/rule_engine` API endpoint
2023-04-12 11:44:42 +02:00
Zhongwen Deng
f161399bcc feat: deprecated trace config 2023-04-12 17:07:45 +08:00
lafirest
a49eea5838
Merge pull request #10355 from lafirest/fix/auto_sub_doc
chore: update README for auto subscribe
2023-04-12 15:47:58 +08:00
JianBo He
80f964bdbe
chore: update apps/emqx_gateway/README.md
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-04-12 10:44:37 +08:00
Thales Macedo Garitezi
914184697e
Merge pull request #10337 from thalesmg/schema-registry-v50
feat: implement schema registry for 5.0 (avro)
2023-04-11 16:46:27 -03:00
Stefan Strigler
e6f8682c47 fix: ensure we don't return 'rules' in rule_engine 2023-04-11 15:42:56 +02:00
ieQu1
bc463a1b1c
Merge pull request #10343 from ieQu1/emqx-machine-readme
doc(emqx_machine): Add readme
2023-04-11 15:15:32 +02:00
Stefan Strigler
8ef36f29ce fix: add 'rule_engine' as possible tag() value for spec 2023-04-11 12:03:42 +02:00
Stefan Strigler
b48fb17f4a fix: CHECK_PARAMS macro defines unused var 2023-04-11 12:03:42 +02:00
JianBo He
945c6bc757 docs: update gateway README 2023-04-11 17:26:33 +08:00
Andrew Mayorov
e70deae1c3
feat(resource): ask for metrics only when needed 2023-04-11 12:00:19 +03:00
JianBo He
aee85dc328 chore: fix flaky tests 2023-04-11 14:49:07 +08:00
JianBo He
d501c1ee9c chore: update changes 2023-04-11 14:04:41 +08:00
Ivan Dyachkov
a711ce6b93 chore: bump version to e5.0.2 2023-04-10 18:10:31 +02:00
Andrew Mayorov
37a520d797
fix(i18n): relocate i18n files to rel/i18n 2023-04-10 16:02:34 +03:00
firest
5a58dfc3a4 chore: update README for auto subscribe 2023-04-10 14:39:13 +08:00
Zhongwen Deng
c68909767a feat: more straightforward log for force_shutdown reason 2023-04-10 11:21:07 +08:00
ieQu1
c2ca9089ca docs(emqx_machine): Add readme 2023-04-08 13:22:52 +02:00
JianBo He
e186477531
Merge pull request #10278 from HJianBo/refactor-gw-dir
Refactor gateway application dirs
2023-04-08 09:42:14 +08:00
Andrew Mayorov
8daa38ef06
feat(ft-s3): store metadata in ASCII-safe format
Also ensure consistent encoding and decoding filenames throughout
the `emqx_ft` application.
2023-04-07 22:20:20 +03:00
Andrew Mayorov
0d86ef8d3a
fix(ft-s3): use AWS4 signed urls for S3 export URIs
This will ensure that the S3 export URIs are valid in all AWS regions.
2023-04-07 22:15:01 +03:00
Ilya Averyanov
b2fd2dcbc1 fix(ft): make configs user friendlier 2023-04-07 17:36:47 +03:00
Ilya Averyanov
7eeba32619 fix(s3): fix typings 2023-04-07 17:36:47 +03:00
Ilya Averyanov
52f3189779 fix(ft): fix default ft config 2023-04-07 17:36:47 +03:00
Ilya Averyanov
eae2478678 fix(ft): add descriptions for missing ft schema fields 2023-04-07 17:36:47 +03:00
Ilya Averyanov
bd7250cb13 fix(s3): fix hash pool type 2023-04-07 17:36:47 +03:00
Ilya Averyanov
4a144044b7 fix(ft): set default ft config in tests 2023-04-07 17:36:47 +03:00
Ilya Averyanov
918bdcae7d fix(ft): fix schema descriptions 2023-04-07 17:36:47 +03:00
Ilya Averyanov
8b13d249eb fix(ft): fix detection of ee apps in mix 2023-04-07 17:36:47 +03:00
Ilya Averyanov
7bcb60a84a fix(ft): fix config update tests 2023-04-07 17:36:47 +03:00
Ilya Averyanov
6e50b168a0 fix(ft): add empty strings for zh translations 2023-04-07 17:36:47 +03:00
Ilya Averyanov
f6461fe287 fix(ft): fix typings 2023-04-07 17:36:47 +03:00
Ilya Averyanov
2f1970adbc fix(ft): make ee schema aware of ee fields 2023-04-07 17:36:47 +03:00
Ilya Averyanov
18aa39f892 fix(ft): add emqx_ft_schema to ee schemas 2023-04-07 17:36:47 +03:00
Ilya Averyanov
d333187c5a docs(s3): update readme 2023-04-07 17:36:47 +03:00
Ilya Averyanov
820e06d756 fix(ft-s3): make controllable use of max_retries and request_timeout arguments 2023-04-07 17:36:47 +03:00
Ilya Averyanov
be99242e32 fix(ft-s3): fix review comments 2023-04-07 17:36:47 +03:00
Ilya Averyanov
d7a85242de fix(ft-s3): fix s3 listing 2023-04-07 17:36:47 +03:00
Ilya Averyanov
7d13862da5 fix(ft-s3): use uploader specific headers only for object creation 2023-04-07 17:36:47 +03:00
Ilya Averyanov
c7865e5eae fix(ft-s3): fix dependency dependencies 2023-04-07 17:36:45 +03:00
Ilya Averyanov
4fbabe5a76 fix(ft-s3): fix atom and variable naming 2023-04-07 17:27:01 +03:00
Ilya Averyanov
07ae50a54b fix(ft-s3): fix release settings 2023-04-07 17:25:23 +03:00
Ilya Averyanov
3ffa01e160 feat(ft-s3): fix logging level 2023-04-07 17:25:23 +03:00
Ilya Averyanov
ca22f11161 feat(ft-s3): fix logging 2023-04-07 17:25:23 +03:00
Ilya Averyanov
9bb72ee020 feat(ft-s3): fix behaviour specification 2023-04-07 17:25:23 +03:00
Ilya Averyanov
43f9737420 feat(ft-s3): integrate list API 2023-04-07 17:25:23 +03:00
Ilya Averyanov
5ac3543a76 feat(ft-s3): integrate exporter configs 2023-04-07 17:25:22 +03:00
Ilya Averyanov
8361223648 feat(ft-s3): extract checksum verification 2023-04-07 17:25:22 +03:00
Ilya Averyanov
818a5cacf2 feat(ft-s3): add initial integration 2023-04-07 17:25:22 +03:00
Ilya Averyanov
31b441a46e feat(s3): add S3 client application 2023-04-07 17:25:22 +03:00
Andrew Mayorov
28d87ca62d fix(ft-fs): move default config to the backend impl 2023-04-07 17:25:22 +03:00
Andrew Mayorov
258fabbf8b fix(fs-exp): reply with error when listing failed everywhere 2023-04-07 17:25:22 +03:00
Andrew Mayorov
11edfc1c6a fix(ft): comment out some clauses as "unreachable" 2023-04-07 17:25:22 +03:00
Andrew Mayorov
bef5cc9c0f fix(fs-fold): avoid folding through symlinked directories
Also a testsuite that verifies multilevel fold behaviour.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
6ad7ce55d2 fix(ft-conf): separate local segments storage settings
To make things less ambiguous.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
45e3b62dc4 refactor(ft): prefer plain files over exports in generic APIs
So there's no more `exports` magically becomings `files` in the
REST API which was slightly confusing.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
c24c7eca34 fix(ft-test): unbreak testcase by inhibiting local fs storage GC 2023-04-07 17:25:22 +03:00
Andrew Mayorov
23cd78b8d6 refactor(ft-asm): turn state data record into a map
Which should be more future-proof.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
b6b044f429 feat(ft): move out exporter concept into dedicated modules 2023-04-07 17:25:22 +03:00
Andrew Mayorov
54e54cc63d feat(api): provide utility to qualify API URIs 2023-04-07 17:25:22 +03:00
Andrew Mayorov
64f15f1fdb fix(ft-gc): ensure directories of complete transfers are GCed 2023-04-07 17:25:22 +03:00
Andrew Mayorov
2707b4500f feat(ft-fs): ensure filsystem-safe handling of client input
Also restrict the filenames clients may specify in a filemeta to some
safe subset, as a future proofing measure.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
9aec01e7a3 fix(ft-asm): use regular map for meta fragments
There's actually no need to use an ordered data structure at all.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
4132f5a5fb feat(ft): introduce exporter concept in local storage backend
The exporter is responsible for keeping fully transferred and
successfully assembled files. This was on the local storage itself
before. This abstraction is needed to give us an ability to
support S3 destinations more easily, just by swapping the storage
exporter.

Also implement local filesystem exporter and reimplement parts of
the `emqx_ft` API on top of it.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
2880c8f4eb fix(ft): unwrap error details when reader fails to start 2023-04-07 17:25:22 +03:00
Andrew Mayorov
45f00e14a9 feat(ft): ensure that clientid is always binary
For the sake of simplicity (e.g. transfer ids are now easier to
compare).
2023-04-07 17:25:22 +03:00
Andrew Mayorov
4f2600b9f1 feat(ft-gc): treat all transfer as incomplete
Since the concept of _complete transfers_ is being split out into
the _export_ concept, we lose knowledge of completeness in the GC.
Instead of asking exporters for transfer statuses we just treat all
transfer as incomplete when GCing.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
0d39546080 feat(wdgraph): add fold/3 which folds over graph edges 2023-04-07 17:25:22 +03:00
Andrew Mayorov
0c821cd3bd test(ft): inject configs through hocon subsystem
So that relevant parts of config would be initialized with defaults.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
e1dc48fa2b feat(fs-gc): wire gc up with emqx config 2023-04-07 17:25:22 +03:00
Andrew Mayorov
50c6eef2bc fix(fs-gc): do not hide enoents
Also use `file:read_link_info/2`, it actually fetches any file info
while also not following symlinks automatically, which is better for
GC usecases.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
bcd2099ce1 fix(fs-gc): make deletion empty transfer directories safer 2023-04-07 17:25:22 +03:00
Andrew Mayorov
344799f100 fix(fs-gc): add testcase on incomplete transfers GC
And fix logic that made GC delete incomplete segments prematurely.
2023-04-07 17:25:22 +03:00
Ilya Averyanov
15dc7c3e84 fix(test): fix node helper usage 2023-04-07 17:25:22 +03:00
Andrew Mayorov
715816e67b feat(ft): add GC logic and process for the FS storage backend 2023-04-07 17:25:22 +03:00
Andrew Mayorov
e9f98adca2 test: make content_gen emit meta with each chunk
Which will also contain total content size, to increase this tool's
utility.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
788e76ed2d test: make assembly proptests waste less memory 2023-04-07 17:25:22 +03:00
Andrew Mayorov
8e6f960c09 refactor(ft): employ emqx_wdgraph for coverage computation
Also describe how coverage problem maps to shortest path problem.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
b189ee463c feat: add weighted directional graph ADT with shortest path
Basically, separate what abstraction was in `emqx_ft_assembly` into
dedicated module with a compact interface and a basic testsuite.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
130601376a perf(ft-asm): express coverage through shortest path on graph
Coverage becomes the shortest path problem on graph where nodes are
offsets and edges are nodes' segments. Implement a simple Dijkstra
algorithm to find one.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
0c84fc28b0 perf(asm-ft): tradeoff optimality for computational complexity
Through squashing segments table into consecutive "runs".
2023-04-07 17:25:22 +03:00
Andrew Mayorov
97cfdf8eef test(ft-asm): add property tests for file assembly 2023-04-07 17:25:22 +03:00
Andrew Mayorov
0af7e2a002 perf(ft-asm): optimize away remote segments identical to local 2023-04-07 17:25:22 +03:00
Andrew Mayorov
15d967459c feat(ft): add segment checksum validation
Also downgrade validation errors to mere info messages.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
5998961f9f fix(ft): log errors where they might get lost 2023-04-07 17:25:22 +03:00
Andrew Mayorov
5014cc15f4 test(ft): do not rely on fs backend implementation details 2023-04-07 17:25:22 +03:00
Andrew Mayorov
93865a79e9 fix(ft): disallow empty fileids 2023-04-07 17:25:22 +03:00
Andrew Mayorov
75070102ec fix(ft): improve typespecs 2023-04-07 17:25:22 +03:00
Andrew Mayorov
2b925aa60b fix(ft): drop unrelated TODO 2023-04-07 17:25:22 +03:00
Andrew Mayorov
7ff253e80d test(ft): attempt to avoid gen_rpc config reset hacks 2023-04-07 17:25:22 +03:00
Andrew Mayorov
a3f47641f3 test(ft): describe the complex test case with comments
In order to make the test client model and behavior clearer.
2023-04-07 17:25:22 +03:00
Andrew Mayorov
10d4c4305a feat(maybe): add basic tests for the new module 2023-04-07 17:25:22 +03:00
Andrew Mayorov
2cf2a2d952 fix(ft): make fin packet parser stricter + safer 2023-04-07 17:25:22 +03:00
Andrew Mayorov
58115715dd fix(ft): require final size in fin packet
Otherwise there are situations when it's not entirely clear if a
transfer is really ready to be assembled. Since the `size` field
in a filemeta is not required (and rightly so), we need client to
tell us the final transfer size at the end of the process.

Also synthesize a testcase to show why it's needed.

Also worth noting that right now `fin` packets require final size,
even if a client already told us the size through filemeta. The
latter is regarded as serving informational purposes only (which
means that, for example, it might differ from the final size, or
some tranfer progress might show >100% somewhere because of that).
2023-04-07 17:25:22 +03:00
Ilya Averyanov
c073914f75 chore(ft): fix gen_rpc flakyness 2023-04-07 17:25:22 +03:00
Ilya Averyanov
228bf1a0ce chore(ft): fix typing issues 2023-04-07 17:25:22 +03:00
Ilya Averyanov
2c9cd1397d chore(ft): fix ?tp calls 2023-04-07 17:25:22 +03:00
Ilya Averyanov
1c61165a91 fix(ft): fix emqx_cm takover 2023-04-07 17:25:22 +03:00
Ilya Averyanov
c6b3f2c2ca feat(ft): add schema descriptions 2023-04-07 17:25:21 +03:00
Ilya Averyanov
bc0a15afd7 feat(ft): fix test for CI 2023-04-07 17:25:21 +03:00
Ilya Averyanov
16fa55e19a feat(ft): add API tests 2023-04-07 17:25:21 +03:00
Andrew Mayorov
6d9f780313 chore: remove unused code 2023-04-07 17:25:21 +03:00
Andrew Mayorov
f896fefa59 feat(ft): make storage backend fully async-aware
Introduce an ad-hoc concept of tasks that need to be kicked off
manually. Rework filesystem backend to accomodate for this change.
Adapt responder logic for that "kickoff" protocol.
2023-04-07 17:25:21 +03:00
Andrew Mayorov
2cdf486bf4 feat(ft): simplify responder mechanism
Make responder short-lived process responsible for a single task, and
manage them with supervisor + gproc.
2023-04-07 17:25:21 +03:00
Ilya Averyanov
f6a0598f27 feat(ft): add file transfer tests 2023-04-07 17:25:21 +03:00
Ilya Averyanov
2e889f4ac7 feat(ft): add emqx_ft tests and fixes 2023-04-07 17:25:21 +03:00
Ilya Averyanov
1d48a97fd2 feat(ft): fix remote reader handling of gen_rpc errors 2023-04-07 17:25:21 +03:00
Ilya Averyanov
c44fe92ef1 feat(ft): add assembler tests 2023-04-07 17:25:21 +03:00
Ilya Averyanov
eae3dc7b4b feat(ft): update BPAPI 2023-04-07 17:25:21 +03:00
Ilya Averyanov
bcfa22f343 fix(ft): use correct supervison strategy for emqx_ft_sup 2023-04-07 17:25:21 +03:00
Ilya Averyanov
9e4a37a398 fix(ft): fix typespecs 2023-04-07 17:25:21 +03:00
Ilya Averyanov
836ec213c9 feat(ft): add responder tests 2023-04-07 17:25:21 +03:00
Ilya Averyanov
8038a3fd4a feat(ft): add tests for remote reader 2023-04-07 17:25:21 +03:00
Ilya Averyanov
b7d0bad970 feat(ft): improve remote reader 2023-04-07 17:25:21 +03:00
Ilya Averyanov
0aefd4a8c7 feat(ft): add streaming of file content when downloading 2023-04-07 17:25:21 +03:00
Ilya Averyanov
197ce32669 feat(ft): add proxy module for emqx_ft_storage_fs 2023-04-07 17:25:21 +03:00
Ilya Averyanov
04e5378bda feat(ft): add API 2023-04-07 17:25:21 +03:00
Andrew Mayorov
92670bfe3d feat(ft): add fs storage bpapi and use it in assembler 2023-04-07 17:25:21 +03:00
Andrew Mayorov
7ed06b0a2a feat(ft-fs): allow to list all transfers in storage
This is rather simplistic and thus, temporary solution.
2023-04-07 17:25:21 +03:00
Andrew Mayorov
429eeaf029 feat(ft-fs): make list / read more generic
And usable in wider contexts as a consequence, for example querying and
fetching resulting files from remote nodes.
2023-04-07 17:25:21 +03:00
Andrew Mayorov
1308fa0e6b fix(ft-fs): put fragments into separate directories
In order to avoid potential filename collisions.
2023-04-07 17:25:21 +03:00
Andrew Mayorov
8298236908 refactor(ft): bring back userdata to filemeta schema 2023-04-07 17:25:21 +03:00
Ilya Averyanov
b4a42a447c feat(ft): removed replicated data 2023-04-07 17:25:21 +03:00
Ilya Averyanov
72e3eee6c9 feat(ft): add config & backend behaviour 2023-04-07 17:25:21 +03:00
Andrew Mayorov
97b831a160 fix(ft-fs): add missing read_segment/5 + fix atomic write 2023-04-07 17:25:21 +03:00
Andrew Mayorov
14b2a1013b fix(ft-asm): follow proper segment fragment type 2023-04-07 17:25:21 +03:00
Andrew Mayorov
1fedae8a16 fix(ft-asm): ensure module follows statem behaviour 2023-04-07 17:25:21 +03:00
Andrew Mayorov
7b77e96ab9 test(ft): add some basic assembler tests 2023-04-07 17:25:21 +03:00
Ilya Averyanov
cbff2e2309 feat(ft): improve robustness of asynchronous acks
* add auto ack after timeout
* add fin file transfer packet registration to avoid
duplication and multiple acks
2023-04-07 17:25:21 +03:00
Ilya Averyanov
d36ca18bff feat(ft): tie file transfer frontend and backend together 2023-04-07 17:25:21 +03:00
Andrew Mayorov
81e04ce93a feat(ft): introduce simple filesystem storage backend + assembler 2023-04-07 17:25:21 +03:00
Ilya Averyanov
aaaef30be6 feat(ft): add file transfer app and bootstrap replicated ft data structure 2023-04-07 17:25:21 +03:00
Ilya Averyanov
d976943f99 feat(ft): add basic hooks 2023-04-07 17:25:21 +03:00
JianBo He
502cc2b8b8 chore: fix common tests 2023-04-07 15:34:16 +08:00
Thales Macedo Garitezi
7c05304ff4 chore: bump version to e5.0.2-rc.6 2023-04-06 16:53:55 -03:00
Thales Macedo Garitezi
33100ecca6 feat: implement schema registry for 5.0 (avro)
Part of https://emqx.atlassian.net/browse/EMQX-9251

This ports part of the Schema Registry app from 4.x to 5.0.  Here,
only support for Avro is added.  Subsequent PRs will follow to add
support for other formats.
2023-04-06 16:28:45 -03:00
Thales Macedo Garitezi
4c24b08244 fix(rule_action): fix metrics for bridges returning async_return
Kafka Producer, when called asynchronously, will return
`{async_return, {ok, pid()}}`, which currently counts as an unknown failure.
2023-04-06 16:00:01 -03:00
Zaiming (Stone) Shi
11a7770d16 chore: bump version to e5.0.2-rc.5 2023-04-06 11:57:39 +02:00
JimMoen
bbb3fdb49e
fix: make emqx_api_lib compatible 2023-04-06 17:03:39 +08:00
Kjell Winblad
1938882f16
Merge pull request #10318 from kjellwinblad/kjell/feat/rule_engine_from_clause_support_both_string_types
feat(rule engine sql): enable both ' and " strings in FROM clause
2023-04-06 09:19:44 +02:00
JimMoen
ab807fba51
Merge pull request #10329 from kjellwinblad/kjell/EMQX-9138-e-5-0-2-ensure-that-the-error-messages-returned-are-consistent
fix: create consistent interface 'with_node' for API access
2023-04-06 14:47:42 +08:00
JianBo He
702ecbcb6e Merge remote-tracking branch 'upstream/master' into refactor-gw-dir 2023-04-06 10:44:59 +08:00
Stefan Strigler
b799af1f71 fix: don't create virtual type "rule_engine_api" 2023-04-05 16:46:19 +02:00
Stefan Strigler
9cfe9cc709 fix: don't allow rules to be set from /rule_engine 2023-04-05 16:28:54 +02:00
Serge Tupchii
9810c9f7e3 refactor(rule_engine): test 'ok' results in one dedicated function 2023-04-05 16:55:43 +03:00
Stefan Strigler
5cd8865a93 fix: deprecate and hide jq_implementation_module 2023-04-05 15:34:42 +02:00
Stefan Strigler
aea870f319 feat: add /rule_engine API endpoint 2023-04-05 15:19:31 +02:00
Stefan Strigler
f3446c48f7
Merge pull request #10315 from sstrigler/EMQX-8945-crash-for-bad-param-value-to-mqtt-delayed-messages-api-call
EMQX 8945 crash for bad param value to mqtt delayed messages api call
2023-04-05 13:44:22 +02:00
JianBo He
a3262486e5 chore: delete all LICENSE files under gateway dirs 2023-04-05 15:25:08 +08:00
Stefan Strigler
a39312e892
Merge pull request #10292 from sstrigler/EMQX-9253-readme-refine-emqx-management
EMQX Management README
2023-04-05 09:00:34 +02:00
Zaiming (Stone) Shi
a9bf633e03
Merge pull request #10320 from zmstone/0403-sync-release-50-back-to-master
0403 sync release 50 back to master
2023-04-04 23:31:24 +02:00
Thales Macedo Garitezi
5d5b7ea215
Merge pull request #10306 from thalesmg/enable-async-buffer-workers-all-bridges-v50
feat(bridges): enable async query mode for all bridges with buffer workers
2023-04-04 17:10:46 -03:00
Ivan Dyachkov
9d1a16aae1 feat: add emqx_rpc:multicall_on_running
also move emqx:is_running multicall to emqx_proto_v2:are_running
2023-04-04 20:40:47 +02:00
Ivan Dyachkov
3d7ceb01a0 fix(mgmt): fix stats api by applying filter to running_nodes 2023-04-04 19:58:43 +02:00
Ivan Dyachkov
c20da5ffa6 fix(emqx_dashboard): fix monitor_current api 2023-04-04 19:58:43 +02:00
Stefan Strigler
04626ce9cc fix: create consistent interface 'with_node' for API access 2023-04-04 16:54:14 +02:00
Zaiming (Stone) Shi
68c15ffd48 Merge remote-tracking branch 'origin/release-50' into 0403-sync-release-50-back-to-master 2023-04-04 16:42:58 +02:00
Zaiming (Stone) Shi
d25db3ace4 chore: bump version to e5.0.2-rc.4 2023-04-04 16:38:25 +02:00
Zaiming (Stone) Shi
9e17064e47
Merge pull request #10325 from zmstone/0404-delay-config-change-replay-until-handler-is-ready
0404 delay config change replay until handler is ready
2023-04-04 16:37:35 +02:00
SergeTupchiy
877b828d4a
Merge pull request #10327 from SergeTupchiy/EMQX-8786-fix-unknown-counter-inc-on-unrecoverable-err
fix(rule_engine): don't increment unknown counter on unrecoverable er…
2023-04-04 16:51:34 +03:00
Zaiming (Stone) Shi
5925ff07c2 test(emqx_cluster_rpc): fix test cases 2023-04-04 15:20:30 +02:00
Zaiming (Stone) Shi
eeb7b32bc8
Merge pull request #10317 from zmstone/0403-refactor-hide-listener-level-authentication
0403 refactor hide listener level authentication
2023-04-04 15:04:35 +02:00
Serge Tupchii
aca65ca2d4 fix(rule_engine): don't increment unknown counter on unrecoverable errors
Closes: EMQX-8786
2023-04-04 15:59:53 +03:00
Zaiming (Stone) Shi
196ca43fbb fix(emqx_conf_app): call the right API to retrieve core nodes 2023-04-04 14:19:48 +02:00
Thales Macedo Garitezi
0b6fd7fe14 fix(buffer_worker): check request timeout and health check interval
Port of https://github.com/emqx/emqx/pull/10154 for `release-50`

Fixes https://emqx.atlassian.net/browse/EMQX-9099

Originally, the `resume_interval`, which is what defines how often a
buffer worker will attempt to retry its inflight window, was set to
the same as the `health_check_interval`.  This had the problem that,
with default values, `health_check_interval = request_timeout`.  This
meant that, if a buffer worker with those configs were ever blocked,
all requests would have timed out by the time it retried them.

Here we change the default `resume_interval` to a reasonable value
dependent on `health_check_interval` and `request_timeout`, and also
expose that as a hidden parameter for fine tuning if necessary.
2023-04-04 08:58:36 -03:00
Zaiming (Stone) Shi
8fd9dd741e fix(emqx_conf_app): wait for tables ready beofre starting apps 2023-04-04 13:50:50 +02:00
Kjell Winblad
0e66eb5f3f feat(rule engine sql): enable both ' and " strings in FROM clause
This commit upgrades the rulesql dependency to version 1.5 instead of
1.4. The difference between these two versions is that strings surrounded
by ' and " are supported in FROM clauses in version 1.5, but in version
1.4, only strings surrounded by " are supported.

Fixes:
https://emqx.atlassian.net/browse/EMQX-9243
2023-04-04 10:36:48 +02:00
Zaiming (Stone) Shi
b16c516e6b refactor: rename cluster_rpc_handler to cluster_rpc_cleaner
this reflects what is actually does
2023-04-04 10:28:47 +02:00
firest
6b2419998d chore: bump emqx_authn version 2023-04-04 16:06:23 +08:00
firest
11b3264251 fix: redact the password to ****** in API examples
fix #10222
2023-04-04 16:02:45 +08:00
Thales Macedo Garitezi
a8f8228a12
Merge pull request #10308 from thalesmg/test-increase-peer-timeout-v50
test(peer): increase init and startup timeout for peer nodes
2023-04-03 15:46:13 -03:00
Zaiming (Stone) Shi
429b3d9efd Merge remote-tracking branch 'origin/master' into 0403-sync-release-50-back-to-master 2023-04-03 20:32:33 +02:00
Zaiming (Stone) Shi
2f2e8b8218 chore: bump version to e5.0.2-rc.3 2023-04-03 20:23:31 +02:00
Thales Macedo Garitezi
06048ae4ff
Merge pull request #10316 from thalesmg/flaky-crl-emqtt-test-v50
test(crl): fix flaky test (v5.0)
2023-04-03 15:12:36 -03:00
Thales Macedo Garitezi
f3ffc02bff feat(bridges): enable async query mode for all bridges with buffer workers
Fixes https://emqx.atlassian.net/browse/EMQX-9130

Since buffer workers always support async calls ("outer calls"), we
should decouple those two call modes (inner and outer), and avoid
exposing the inner call configuration to user to avoid complexity.

For bridges that currently only allow sync query modes, we should
allow them to be configured with async.  That means basically all
bridge types except Kafka Producer.
2023-04-03 14:49:51 -03:00
Thales Macedo Garitezi
8b5a717a1f test(peer): increase init and startup timeout for peer nodes
Attempt to stabilize tests that use cluster nodes.
2023-04-03 13:20:22 -03:00
Zaiming (Stone) Shi
2d6ca69ffb refactor: no support for listener level authentication for now 2023-04-03 16:49:35 +02:00
Zaiming (Stone) Shi
e978d86c86 chore: add doc_lift for authorization.sources
doc_lift is to make the doc render application to lift
this field to the root level and force the field's doc
to refernec it instead of expanding the structs in a nested way
2023-04-03 16:49:35 +02:00
Thales Macedo Garitezi
ed25ee6fec test(crl): fix flaky test (v5.0) 2023-04-03 10:58:31 -03:00
Stefan Strigler
0efa9c7a11 fix: pretty format error responses 2023-04-03 15:48:52 +02:00
Stefan Strigler
c1cb5357e1 fix: enable schema check 2023-04-03 15:48:33 +02:00
Thales Macedo Garitezi
ec1871ffde test(janitor): catch each callback invocation 2023-04-03 10:20:19 -03:00
JimMoen
53712e6146
fix: running nodes should not include replica nodes 2023-04-03 20:01:37 +08:00
Zaiming (Stone) Shi
5f6d318cf0 fix(i18n): fix missing docs for gateway configs 2023-04-03 13:12:24 +02:00
Zaiming (Stone) Shi
36000abf51 refactor: relocate i18n files for apps/emqx 2023-04-03 13:12:24 +02:00
JianBo He
205e97fdca chore(gw): update README files 2023-04-03 14:30:41 +08:00
zhongwencool
d63680cf25
Merge pull request #10307 from emqx/release-50
Sync release-50 back to master
2023-04-02 11:36:41 +08:00
Zaiming (Stone) Shi
b17548f382
Merge pull request #10265 from HJianBo/improve-some-options-desc
docs: improve some mqtt options description
2023-04-01 16:43:15 +02:00
JianBo He
b2d018f249 chore: fix test cases 2023-04-01 18:51:39 +08:00
JianBo He
3a3879f99f chore: update gateways deps 2023-04-01 12:59:43 +08:00
JianBo He
9577beaa4e chore: update rebar.conf in emqx_exproto 2023-04-01 12:24:09 +08:00
JianBo He
b24ff9bc6e test(gateway): refine all test cases 2023-04-01 12:24:09 +08:00
JianBo He
a70545b64a chore: split out exproto gateway 2023-04-01 12:24:09 +08:00
JianBo He
b58ce09658 chore: split out lwm2m 2023-04-01 12:24:09 +08:00
JianBo He
40c413ac05 chore: fix dialyzer warnings 2023-04-01 12:24:09 +08:00
JianBo He
0b6c5c4c91 refactor: split out emqx_coap application 2023-04-01 12:24:09 +08:00
JianBo He
786f030958 test: move tests into splited gateway dirs 2023-04-01 12:24:09 +08:00
JianBo He
159bcf329c refactor: make Stomp and MQTT-SN gateway as an independent apps 2023-04-01 12:24:09 +08:00
Thales Macedo Garitezi
53d760ec69
Merge pull request #10300 from thalesmg/fix-plugin-upload-v50
fix(plugins): create directory before uploading
2023-03-31 16:28:18 -03:00
Thales Macedo Garitezi
246a792965
Merge pull request #10273 from thalesmg/refactor-kprod-start-error-msg-rv50
fix: return friendly message when kafka producer and consumer fails to start (rv5.0)
2023-03-31 16:25:26 -03:00
Thales Macedo Garitezi
5011486b18 fix(kafka_consumer): return better error messages when probing kafka consumer bridge
Fixes https://emqx.atlassian.net/browse/EMQX-9422
2023-03-31 11:33:15 -03:00
Zaiming (Stone) Shi
9bbca07943
Merge pull request #10298 from emqx/release-50
Merge release-50 back to master
2023-03-31 15:35:51 +02:00
Zaiming (Stone) Shi
abf0329b60 test(emqx_banned_SUITE): fix flaky test case 2023-03-31 13:03:00 +02:00
Zaiming (Stone) Shi
bcde52383b docs: fix max batch size desc 2023-03-31 12:35:27 +02:00
William Yang
d9bec63733
Merge pull request #10284 from qzhuyan/docs/william/shared-subs
chore(docs): update shared_subscription_strategy
2023-03-31 09:44:12 +02:00
Stefan Strigler
7e31e60e90
style: fix wording 2023-03-31 09:19:48 +02:00
Stefan Strigler
1ff96f5314
style: fix wording
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-31 09:18:39 +02:00
Thales Macedo Garitezi
a2b82dae69 fix(plugins): create directory before uploading
Fixes https://emqx.atlassian.net/browse/EMQX-9434

Fixes https://github.com/emqx/emqx-elixir-plugin/issues/23
2023-03-30 17:51:16 -03:00
Zaiming (Stone) Shi
36043dd651
Merge pull request #10286 from zmstone/0330-exit-with-non-zero-code-if-conf-init-failed
0330 exit with non zero code if conf init failed
2023-03-30 17:41:14 +02:00
Stefan Strigler
7c597bfaa9 docs: give a better idea of what this application is supposed to do 2023-03-30 16:57:16 +02:00
Stefan Strigler
87a262edff docs: add README for EMQX Dashboard 2023-03-30 16:53:27 +02:00
Thales Macedo Garitezi
632bffd451 fix: return friendly message when kafka producer fails to start (rv5.0)
Fixes https://emqx.atlassian.net/browse/EMQX-9392

The returned information does not allow to diagnose the issue (i.e.: a
connection issue due to the wrong host and port, the wrong password
failing authn).  However, such information is printed to the logs.

This changes the returned error to the API so that the user is hinted
at looking at the logs for further investigation of the error.
2023-03-30 11:51:36 -03:00
Thales Macedo Garitezi
ad28d8418d
Merge pull request #10274 from thalesmg/fix-subs-api-egress-mqtt-v50
fix: handle subscription list api when there are `emqx:subscribe` internal subscriptions
2023-03-30 11:16:31 -03:00
lafirest
0af226dd5b
Merge pull request #10276 from lafirest/fix/banned_api
fix(i18n): fix the description error about the default value of `until`
2023-03-30 20:26:32 +08:00
William Yang
3c52faa55e chore(docs): update shared_subscription_strategy 2023-03-30 13:32:45 +02:00
William Yang
65ef9c9086
Merge pull request #10077 from qzhuyan/dev/william/quic-cert-password
feat(quic): support TLS password protected keyfile
2023-03-30 12:59:50 +02:00
Zaiming (Stone) Shi
494e4b639a chore: exit with non-zero status if config initialization failed 2023-03-30 12:52:51 +02:00
firest
f794666c7f fix(i18n): fix the description error about the default value of until 2023-03-30 17:12:45 +08:00
JianBo He
1ff8ecf604 chore: fix typos 2023-03-30 15:10:10 +08:00
JianBo He
3c495f8fd2
chore: update apps/emqx/i18n/emqx_schema_i18n.conf 2023-03-30 08:44:28 +08:00
JianBo He
758e610059
chore: apply suggestions from code review
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-30 08:42:08 +08:00
Thales Macedo Garitezi
806ee716ee fix(redis): remove required meta from schema
Since there's a default value, this field shouldn't be marked as
required.
2023-03-29 16:43:52 -03:00
Thales Macedo Garitezi
916ce99fd5 fix: handle subscription list api when there are emqx:subscribe subscriptions 2023-03-29 14:56:40 -03:00
Thales Macedo Garitezi
5089449203
Merge pull request #10260 from thalesmg/minor-refactor-basic-usage-rule-rv50
refactor(rule_engine): use more helper functions
2023-03-29 09:44:23 -03:00
Zaiming (Stone) Shi
80eb9d7542
Merge pull request #10252 from emqx/release-50
0327 merge release-50 to master
2023-03-29 12:33:17 +02:00
Kjell Winblad
8e0d315b7b
Merge pull request #10197 from kjellwinblad/0321-fix-inflight-window-hand-over-to-kjell
fix: add inflight window setting to the clickhouse bridge
2023-03-29 09:38:24 +02:00
JianBo He
fee4ff6a07
Merge pull request #10257 from HJianBo/gw-lwm2m-fixes
Fixed the issue where `auto_observe` was not working in LwM2M Gateway
2023-03-29 15:20:46 +08:00
JianBo He
27aa3f49aa docs: improve some mqtt options description 2023-03-29 15:02:01 +08:00
Zaiming (Stone) Shi
11c120f87c chore: bump emqx app vsn 2023-03-28 21:19:03 +02:00
Zaiming (Stone) Shi
4b428f7a29 chore: bump version to e5.0.2-rc.2 2023-03-28 21:18:21 +02:00
Thales Macedo Garitezi
64faccf50b test: fix flaky kafka consumer test 2023-03-28 14:50:55 -03:00
Thales Macedo Garitezi
d126c7dc62 refactor(rule_engine): use more helper functions
Follow up to
https://github.com/emqx/emqx/pull/10251#discussion_r1150710899 and
https://github.com/emqx/emqx/pull/10251#discussion_r1150720420
2023-03-28 13:46:56 -03:00
William Yang
ecc2cd1a94 test: password cert for SSL listener 2023-03-28 17:15:59 +02:00
Thales Macedo Garitezi
1824e7efcc fix(rule_engine): count referenced bridges in from clauses as dependencies (rv5.0)
Fixes https://emqx.atlassian.net/browse/EMQX-9325

Currently, ingress bridges referenced in the `FROM` clause of rules
are not being accounted as dependencies.

When we try to delete an ingress bridge that's referenced in a rule
like `select * from "$bridges/mqtt:ingress"`, that bridge does not
trigger an UI warning about dependent actions.
2023-03-28 10:31:10 -03:00
Zaiming (Stone) Shi
f5e9d3eab2 test: use valid config for jq function timeout 2023-03-28 14:29:24 +02:00
Zaiming (Stone) Shi
3f9ed08308 fix(emqx_schema): ocsp field use 'importance' to replace 'hidden' 2023-03-28 14:29:24 +02:00
Zaiming (Stone) Shi
d07987288a chore: add some example annotations for config importance level 2023-03-28 14:29:24 +02:00
Zaiming (Stone) Shi
5a19b6f73e chore: pin hocon 0.38.0 (with config importance level annotation) 2023-03-28 14:29:24 +02:00
Zaiming (Stone) Shi
486352eb6f fix(swagger): do not generate scheam for hidden args 2023-03-28 14:29:24 +02:00
Zaiming (Stone) Shi
fb29f8035b feat: make possible to dump full schema (including hidden fields) 2023-03-28 14:29:24 +02:00
Zaiming (Stone) Shi
c302405408 fix: fail fast if not able to load config 2023-03-28 14:29:24 +02:00
Zaiming (Stone) Shi
813ccd7df1 chore: hide node.perf configs
these configs are rarely needed by regular users
and if they are to be changed, it should be done by
someone who really understands what they mean
2023-03-28 14:29:24 +02:00
JianBo He
6db5a4872a test(lwm2m): cover auto_observe mechanism 2023-03-28 18:31:20 +08:00
JianBo He
6750618d9a fix(lwm2m): ignore unknown ObjectId to auto observe 2023-03-28 17:44:33 +08:00
Xinyu Liu
c607e4ed92
Merge pull request #10243 from terry-xiaoyu/remove-peercert-from-conninfo50
chore: remove peercert from the state of connection processes
2023-03-28 17:22:57 +08:00
Stefan Strigler
193905c7b9
Merge pull request #10237 from sstrigler/EMQX-9138-e-5-0-2-ensure-that-the-error-messages-returned-are-consistent
fix: create consistent interface 'with_node' for API access
2023-03-28 10:41:10 +02:00
Andrew Mayorov
89108594f0
Merge pull request #10212 from keynslug/test/EMQX-9269/cluster-env
test(bridge-api): also run testcases in cluster environment
2023-03-28 11:36:48 +03:00
Andrew Mayorov
40f7fd691e
test(dashboard): reuse emqx_mgmt_api_test_util in testsuites
To reduce the init / teardown complexity.
2023-03-27 23:41:19 +03:00
Andrew Mayorov
b14a420885
fix(test): delete mnesia schema in-between test suites
When using `emqx_common_test_helpers` at least. This should help
reduce the need for superfluous cleanups and test failures due to
unclean state.
2023-03-27 23:41:19 +03:00
Andrew Mayorov
d942a531e6
fix(test): avoid unnecessary cleanups
This might make some noise in the logs, depending on the testsuite
configuration, because some test setup might be missing required
applications.
2023-03-27 23:41:19 +03:00
Andrew Mayorov
11b5b7b638
test(bridge-api): also run testcases in cluster environment
Excluding a couple of testcases which does not make much sense running
in the cluster. Also try to reduce amount of "noise" in the testcases,
making them easier to comprehend.

Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-03-27 23:41:08 +03:00
Zaiming (Stone) Shi
7a6494cda6
Merge pull request #10242 from zmstone/0326-fix-logging-avoid-using-pid-as-log-data-field
fix: avoid uisng 'pid' as log data field
2023-03-27 16:13:50 +02:00
Stefan Strigler
64a1d84a44 fix: create consistent interface 'with_node' for API access 2023-03-27 12:14:48 +02:00
William Yang
cec77c2b65 test(quic): chasing flaky tc. 2023-03-27 11:54:08 +02:00
William Yang
169cc9f822 chore(quic): unhide TLS certfile password 2023-03-27 11:54:08 +02:00
Andrew Mayorov
9a93b745fc
fix(dashboard): use correct default for listeners map 2023-03-27 12:38:07 +03:00
firest
5c9538086f chore: bump emqx_plugin_libs.app.src 2023-03-27 13:54:38 +08:00
JianBo He
bfa5922209
Merge pull request #10140 from HJianBo/cassa
feat: support cassandra data bridge
2023-03-27 10:23:02 +08:00
JimMoen
798597c834
Merge pull request #10217 from JimMoen/conn-health-check-with-worker
fix: for connection used ecpool, let worker do health check fun
2023-03-27 09:51:52 +08:00
JianBo He
b77aeb69cb
Merge pull request #10172 from HJianBo/fix-typos-acl-file
fix(acl): fix wrong default ACL rules
2023-03-27 09:51:02 +08:00
Shawn
07ac2cd57a chore: remove peercert from the state of connection processes 2023-03-27 09:33:17 +08:00
Zaiming (Stone) Shi
19e136bb66 fix: avoid uisng 'pid' as log data field
Since it clashes with log metad data field
2023-03-26 10:33:18 +02:00
Zaiming (Stone) Shi
dd996ad1dc chore: bump app vsns 2023-03-24 21:47:15 +01:00
Zaiming (Stone) Shi
b37f186142 Merge remote-tracking branch 'origin/master' into 0324-merge-release-50-back-to-master 2023-03-24 21:47:15 +01:00
Thales Macedo Garitezi
ff272a2071
Merge pull request #10206 from thalesmg/decouple-buffer-worker-query-call-mode-v50
feat(buffer_worker): decouple query mode from underlying connector call mode
2023-03-24 13:49:00 -03:00
Zaiming (Stone) Shi
bf29919708
Merge pull request #10160 from thalesmg/hide-ocsp-v50
chore(ocsp): hide ocsp from schema for now
2023-03-24 15:32:47 +01:00
SergeTupchiy
f4472f66de
Merge pull request #10225 from SergeTupchiy/EMQX-9290-fix-plugin-name-clash
fix(emqx_management): resolve plugin name clashes
2023-03-24 16:17:20 +02:00
Serge Tupchii
b02d0088ea fix(emqx_management): resolve plugin name clashes
Allow installing a plugin if its name matches the beginning of another (already installed) plugin name.
For example: if plugin "emqx_plugin_template_a" is installed, it must not block installing plugin "emqx_plugin_template".

Closes: #10213, EMQX-9290
2023-03-24 16:11:31 +02:00
Stefan Strigler
8d084ed13b
Merge pull request #10226 from sstrigler/EMQX-9273-e-5-0-2-creating-a-data-bridge-the-name-verification-returned-an-incorrect-error-code-of-500
fix(emqx_bridge): don't crash on validation error
2023-03-24 14:48:03 +01:00
Thales Macedo Garitezi
166191abd6 chore(ocsp): hide ocsp from schema for now
We're going to release it in a later version.  So, for now, we'll just
hide it.
2023-03-24 10:04:16 -03:00
Stefan Strigler
fbfdaf44e0 fix(emqx_bridge): don't crash on validation error 2023-03-24 11:46:41 +01:00
Stefan Strigler
a8cfc1c7a1 fix(emqx_bridge): filter status_reason in config update 2023-03-24 11:46:41 +01:00
Stefan Strigler
4f63982d13
Merge pull request #10195 from sstrigler/EMQX-8982-html-tags-are-displayed-in-http-api-doc
fix: add summary to schemas where description has html
2023-03-24 08:56:34 +01:00
Ivan Dyachkov
0208fc8296 chore: e5.0.2-rc.1 2023-03-24 08:55:31 +01:00
Zaiming (Stone) Shi
9870f4834e
Merge pull request #10179 from kjellwinblad/kjell/fix/rule_engine_app_readme
docs: refine README.md for the emqx_rule_engine app
2023-03-24 08:28:11 +01:00
JimMoen
65f468f706
fix: for connection used ecpool, let worker do health check fun
let it be same with ecpool:pick_and_do/3 for checkfun use format as {M,F,A}
2023-03-24 10:39:58 +08:00
Thales Macedo Garitezi
f8d5d53908 feat(buffer_worker): decouple query mode from underlying connector call mode
Fixes https://emqx.atlassian.net/browse/EMQX-9129

Currently, if an user configures a bridge with query mode sync, then
all calls to the underlying driver/connector ("inner calls") will
always be synchronous, regardless of its support for async calls.

Since buffer workers always support async queries ("outer calls"), we
should decouple those two call modes (inner and outer), and avoid
exposing the inner call configuration to user to avoid complexity.

There are two situations when we want to force synchronous calls to
the underlying connector even if it supports async:

1) When using `simple_sync_query`, since we are bypassing the buffer
workers;
2) When retrying the inflight window, to avoid overwhelming the
driver.
2023-03-23 13:40:31 -03:00
Stefan Strigler
678400bc0a fix: add summary to schemas where description has html 2023-03-23 16:40:43 +01:00
Stefan Strigler
ba49316ec5 fix: use lower-case 2023-03-23 16:08:27 +01:00
William Yang
7e15f90bf5 chore(test): check openssl cmd returns 2023-03-23 15:06:21 +01:00
William Yang
88731fd145 feat(quic): support TLS password protected keyfile 2023-03-23 15:06:21 +01:00
Stefan Strigler
2803aff798
Merge pull request #10207 from sstrigler/EMQX-9286-use-label-from-i-18-n-files-as-summary-for-open-api-spec
feat(emqx_dashboard): use label as summary in OpenAPI spec
2023-03-23 14:58:21 +01:00
Kjell Winblad
35474578ca refactor: rename async_inflight_window to inflight_window everywhere 2023-03-23 14:21:57 +01:00
Kjell Winblad
9d3f369cca
docs: fix spelling mistake
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-03-23 14:09:57 +01:00
Serge Tupchii
e3541d8947 test: move dashboard specific cleanup call from emqx_common_test_helpers to the relevant test suite 2023-03-23 11:59:43 +02:00
Serge Tupchii
50bbf4f231 chore: bump ekka to 0.14.6
ekka 0.14.6 uses mria 0.4.2, which unregisters mnesia_hook upon stopping mria.
This fixes mnesia_hook errors on restarting mria.

Closes: EMQX-9101
2023-03-23 11:59:43 +02:00
JianBo He
8cbbc9f271 Merge remote-tracking branch 'upstream/master' into cassa 2023-03-23 11:53:17 +08:00
Thales Macedo Garitezi
ddffba0355
Merge pull request #10154 from thalesmg/fix-buffer-worker-default-req-timeout
fix(buffer_worker): calculate default `resume_interval` based on `request_timeout` and `health_check_interval`
2023-03-22 20:21:04 -03:00
Thales Macedo Garitezi
84f7e9c320
Merge pull request #10209 from thalesmg/fix-lwt-banned-then-kicked-v50
fix(last_will_testament): don't publish LWT if client is banned when kicked out
2023-03-22 18:30:31 -03:00
Thales Macedo Garitezi
cb65cded88 fix(last_will_testament): don't publish LWT if client is banned when kicked
Fixes https://emqx.atlassian.net/browse/EMQX-9288

Related issue:
https://github.com/emqx/emqx/issues/10192#issuecomment-1478809900
2023-03-22 16:47:58 -03:00
Thales Macedo Garitezi
8844b22c80
docs: improve descriptions
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-22 15:32:09 -03:00
Thales Macedo Garitezi
127a075b66 test(dynamo): attempt to fix dynamo tests
Those tests in the `flaky` test are really flaky and require lots of
CI retries.

Apparently, the flakiness comes from race conditions from restarting
bridges with the same name too fast between test cases.  Previously,
all test cases were sharing the same bridge name (the module name).
2023-03-22 14:34:37 -03:00
Stefan Strigler
2662f79ec0 feat(emqx_dashboard): use label as summary in OpenAPI spec 2023-03-22 16:29:51 +01:00
Thales Macedo Garitezi
61cb03b45a fix(buffer_worker): change the default resume_interval value and expose it as hidden config
Also removes the previously added alarm for request timeout.

There are situations where having a short request timeout and a long
health check interval make sense, so we don't want to alarm the user
for those situations.  Instead, we automatically attempt to set a
reasonable `resume_interval` value.
2023-03-22 11:47:36 -03:00
lafirest
84def357a9
Merge pull request #10143 from lafirest/feat/rocketmq
feat(bridges): integrate RocketMQ into data bridges
2023-03-22 20:43:22 +08:00
Zaiming (Stone) Shi
e43aa5d841
Merge pull request #10199 from zmstone/0321-merge-release-50-to-master
0321 merge release 50 to master
2023-03-22 10:20:48 +01:00
Zaiming (Stone) Shi
db6afb40b0
Merge pull request #10174 from zmstone/0320-upgrade-esockd-to-5.9.6
fix: upgrade esockd from 5.9.4 to 5.9.6
2023-03-22 09:50:38 +01:00
Andrew Mayorov
af7b2215ca
fix(bridge-api): unflatten nodes' bridge lists back
Bridge lists were erroneously flattened in cad6492c. This causes
bridge listing fail in emqx clusters consisting of more than 1 node.
2023-03-22 11:35:09 +03:00
firest
9853d00cad feat(bridges): integrate RocketMQ into data bridges 2023-03-22 10:36:52 +08:00
JianBo He
65c2da7ef5 Merge remote-tracking branch 'ce/master' into cassa 2023-03-22 09:30:50 +08:00
Andrew Mayorov
bf35419b52
Merge pull request #10190 from keynslug/fix/EMQX-9269/bridge-list
fix(bridge-api): unflatten nodes' bridge lists back
2023-03-22 00:53:03 +03:00
Zaiming (Stone) Shi
e6091db351 Merge remote-tracking branch 'origin/release-50' into 0321-merge-release-50-to-master 2023-03-21 22:03:31 +01:00
Stefan Strigler
6c24b3a77d
Merge pull request #10196 from sstrigler/EMQX-9201-the-case-is-not-correct-for-some-of-menu
Emqx 9201 the case is not correct for some of menu
2023-03-21 19:42:10 +01:00
Thales Macedo Garitezi
4bbbaf8b13
Merge pull request #10164 from thalesmg/crl-v50-mkIII
feat(crl): add crl check support
2023-03-21 14:42:01 -03:00
Kjell Winblad
27b8445337 fix: add inflight window setting to the clickhouse bridge
This commit makes sure the inflight window setting is present for the
clickhouse bridge. It also changes emqx_resource_schema that previously
removed the inflight window setting from resources with query mode
`always_sync`. We don't need to do that because all bridges that uses
the buffer worker queue will get async call handling even if the bridge
don't support the async callback.

Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-21 17:14:03 +01:00
Stefan Strigler
327b782210 style: lower case in descriptions 2023-03-21 17:04:42 +01:00
Andrew Mayorov
d9b1b1c802
fix(bridge-api): unflatten nodes' bridge lists back
Bridge lists were erroneously flattened in cad6492c. This causes
bridge listing fail in emqx clusters consisting of more than 1 node.
2023-03-21 18:59:27 +03:00
Stefan Strigler
981268911a style: make summary lower-case 2023-03-21 16:56:37 +01:00
Stefan Strigler
3880862c81 fix(emqx_bridge): return 503 for inconsistency in bridge setup 2023-03-21 15:07:43 +01:00
Stefan Strigler
4b0ea562a2 refactor(emqx_bridge): consistently use macros for http response 2023-03-21 15:07:41 +01:00
Stefan Strigler
84fc64822e style: fix wording for nxdomain and malformed_username_or_password
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-21 15:02:29 +01:00
Stefan Strigler
8af3fb4ee7 feat: move human readable error translations to emqx_misc 2023-03-21 15:02:29 +01:00
Stefan Strigler
c1384b6e6e feat(emqx_resource): include error with alarm for resource_down 2023-03-21 15:02:29 +01:00
Stefan Strigler
53825b9aba fix(emqx_bridge): propagate connection error to resource status 2023-03-21 15:02:29 +01:00
Zaiming (Stone) Shi
fd23800370
Merge pull request #10180 from zmstone/0320-add-emqx_ctl-readme
docs: add readme for emqx_ctl app
2023-03-21 11:33:16 +01:00
William Yang
7d8fc3d2ad
Merge pull request #10185 from qzhuyan/dev/william/bump-quicer
chore(build): Support fetching binary for macOS M1 [quicer 0.0.114]
2023-03-21 11:32:33 +01:00
William Yang
092daf409a chore(testlib): update include for CI of emqtt lib 2023-03-21 09:03:31 +01:00
William Yang
b6e583143f chore: bump quicer 0.0.114
for fetching quicer binary for macOS M1 builds.
2023-03-21 09:01:25 +01:00
Kjell Winblad
89782e6d21
docs: add info about that rule engine can handle different types of structured data
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-21 06:26:04 +01:00
JianBo He
b059bad08a
chore(acl): fully match dashboard username
Co-authored-by: Ilya Averyanov <av@rubybox.dev>
2023-03-21 09:06:46 +08:00
Thales Macedo Garitezi
f2b54588e7 docs: improve descriptions
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-20 18:09:38 -03:00
Thales Macedo Garitezi
7a71d64686 feat(crl): add crl check support 2023-03-20 18:09:38 -03:00
Ilya Averyanov
ee403423b9
Merge pull request #10166 from savonarola/0318-mix-build
chore(mix): fix mix builds
2023-03-20 22:37:21 +02:00
Zaiming (Stone) Shi
c739d9957c docs: add readme for emqx_ctl app 2023-03-20 19:35:17 +01:00
Zaiming (Stone) Shi
6f71898546 fix: upgrade esockd from 5.9.4 to 5.9.6
changes in esockd are

* 5.9.5: added API to retrieve SNI
* 5.9.6: avoid error log if socket is closed before sending
         proxy protocol headers
2023-03-20 19:27:32 +01:00
Kjell Winblad
08e249dc4d docs: refine README.md for the emqx_rule_engine app
This commit adds more content to the readme file of the `emqx_rule_engine`
app. The aim of the changes are to make it easier to understand what the
rule engine is and what it does.

Fixes:
https://emqx.atlassian.net/browse/EMQX-9229
2023-03-20 16:53:55 +01:00
Erik Timan
2d75c7d6d9 fix(emqx_bridge): remove metrics from non-dedicated bridge API endpoints
Metrics should only be exposed via the /bridges/:id/metrics endpoint,
and not in other operations such as getting the list of all bridges, or
in the response when a bridge has been created. This commit removes all
traces of metrics for the non-dedicated API endpoints.
2023-03-20 09:43:11 +01:00
JianBo He
377127ce72 fix(acl): fix wrong default ACL rules 2023-03-20 13:53:57 +08:00
JianBo He
12942b676d Merge remote-tracking branch 'upstream/master' into cassa 2023-03-20 09:50:27 +08:00
zhongwencool
6a668c35db
Merge pull request #10167 from zhongwencool/fix-swagger-doc-500-crash
fix: swagger doc 500 crash
2023-03-19 16:28:32 +08:00
Zhongwen Deng
b529a0bce1 test: add swagger.json api test 2023-03-19 13:05:32 +08:00
Zhongwen Deng
f8573ae8d7 fix: swagger doc 500 crash 2023-03-19 12:34:06 +08:00
Ilya Averyanov
39f22585d0 chore(mix): fix mix builds 2023-03-19 01:39:56 +02:00
Zaiming (Stone) Shi
149afe863f chore: e5.0.2/v5.0.21 code freeze 2023-03-17 13:19:44 +01:00
Thales Macedo Garitezi
cf1cce011b
Merge pull request #9564 from thalesmg/kafka-source-ee50
feat: implement kafka consumer (ee5.0)
2023-03-17 09:04:53 -03:00
Zaiming (Stone) Shi
1bf72c4d2e
Merge pull request #10155 from zmstone/0316-build-schema-dump-per-lang
build: generate per-lang schema dump
2023-03-17 11:45:35 +01:00
Zhongwen Deng
3c1254d873 fix: newly created listeners have no limiter restrictions 2023-03-17 14:32:42 +08:00
JianBo He
c0a216a740 feat(bridge): support cassandra bridge 2023-03-17 11:34:48 +08:00
Zaiming (Stone) Shi
ad1deedd0e build: generate per-lang schema dump 2023-03-16 21:25:21 +01:00
Thales Macedo Garitezi
20414d7373 fix(buffer_worker): check request timeout and health check interval
Fixes https://emqx.atlassian.net/browse/EMQX-9099

The default value for `request_timeout` is 15 seconds, and the default
resume interval is also 15 seconds (the health check timeout, if
`resume_interval` is not explicitly given).  This means that, in
practice, if a buffer worker ever gets into the blocked state, then
almost all requests will timeout.

Proposed improvement:

- `request_timeout` should by default be twice as much as
health_check_interval.
- Emit a alarm if `request_timeout` is not greater than
`health_check_interval`.
2023-03-16 13:46:45 -03:00
Thales Macedo Garitezi
966276127e test: trying to make tests more stable 2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
3954b7bde2 fix(bridges): function clause when a non-ingress bridge coexists with an egress bridge
This was not caught by our tests because we always test bridge types
in isolation.  So, if the config only contains ingress-only bridges,
the `on_message_publish` hook is never installed.

In a real system, if there are bridges of mixed types in the config,
the hook might be installed, and `emqx_bridge:get_matched_bridge_id`
would crash when iterating over the ingress bridges.
2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
947e014132 test: improve cluster node helpers
* Add option to start autocluster.  This is useful for scenarios where
a cluster is already running and has some configurations set (via
config handler/cluster rpc) and later another node joins.

* Improve mnesia data directory isolation for nodes.  A new dir is set
so that we may avoid intra and inter-suite flakiness due to dirty
tables and schema.

* The janitor is now called synchronously.  This ensures the cleanup
is done before the test pid dies.
2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
d464e2aad5 refactor: rename test resource prefix
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
66eb4ef069 test: fix inter-suite flakiness 2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
f31f15e44e chore(kafka_producer): make schema changes more backwards compatible
This will still require fixes to the frontend.
2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
03342923b9 fix(bridge): use the same dry run prefix
Kafka Producer and Consumer bridges rely on this prefix for detecting
a dry run and avoid leaking atoms.  At some point, this prefix was
changed, effectively disabling the check in Kafka Producer.
2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
1f31a87974 fix(bridge): improve macro var usage
Co-authored-by: ieQu1 <99872536+ieQu1@users.noreply.github.com>
2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
969fa03ecc feat: implement kafka consumer 2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
094e4a2eeb chore: fix typespec 2023-03-16 13:43:01 -03:00
Thales Macedo Garitezi
b9e92173cf test: improve cluster helper
1) Make each node have its own isolated data dir to avoid false
negatives.
2) Allow parameterizing the peer module.
3) Fix cluster RPC after a node joins the cluster.
2023-03-16 13:42:59 -03:00
Thales Macedo Garitezi
561c25f0e3 feat: update snabbkaffe -> 1.0.7 2023-03-16 13:42:38 -03:00
Thales Macedo Garitezi
91a57faa95
Merge pull request #10128 from thalesmg/ocsp-v50-mkII
feat: add ocsp stapling support to mqtt ssl listener (5.0)
2023-03-16 13:10:48 -03:00
JimMoen
1688cb7df2
Merge pull request #10152 from JimMoen/refine-changes
chore: refine changes for merged PRs
2023-03-16 21:11:52 +08:00
Thales Macedo Garitezi
a614bdc94a chore(ocsp): catch unexpected error when fetching ocsp response 2023-03-16 09:55:52 -03:00
Thales Macedo Garitezi
d1f58d6e2d refactor: replace macro by simple function 2023-03-16 09:32:40 -03:00
Thales Macedo Garitezi
e5645a7b21 refactor: rename macros 2023-03-16 09:18:16 -03:00
Kjell Winblad
884dddec79
Merge pull request #10136 from kjellwinblad/kjell/fix/default_value_ui
fix: schema default value so that it shows up correctly in UI
2023-03-16 12:20:08 +01:00
JimMoen
afd29b69c4
chore: refine i18n doc punctuation 2023-03-16 18:22:29 +08:00
Ivan Dyachkov
e3d4deb8a0
Merge pull request #10147 from id/chore-minor-improvements
Chore minor improvements
2023-03-16 08:18:43 +00:00
Andrew Mayorov
816667d85c
Merge pull request #10123 from fix/EMQX-9136/lookup-busy-resources
perf(bridge-api): ask nodes' bridge listings in parallel
2023-03-16 00:07:12 +03:00
Ivan Dyachkov
5258b4c6e9 chore: bump ekka to 0.14.5
to make use of erlang-rocksdb 1.7.2-emqx-9
2023-03-15 19:54:55 +01:00
Thales Macedo Garitezi
164440fe83 test(resource): fix flaky test
Sometimes this test might retry more times, so we check the prefix
of the trace only.
2023-03-15 14:25:55 -03:00
Thales Macedo Garitezi
03b95073fc test: fix inter-suite flakiness 2023-03-15 14:25:41 -03:00
Andrew Mayorov
a9bc8a4464
refactor(resman): rename ets_lookup → lookup_cached
That way we hide the impementation details + the interface becomes
cleaner and more obvious.
2023-03-15 19:17:30 +03:00
Andrew Mayorov
29907875bf
test(bufworker): set batch_time for batch-related testcases
By default it's `0` since e9d3fc51. This made a couple of tests prone
to flapping.
2023-03-15 19:17:30 +03:00
Andrew Mayorov
e411c5d5f8
refactor(resman): work with state cache atomically
Also ensure that cache entries are always consistent with `Data`,
so that most of the code could rely on reading the cached entry
most of the time.
2023-03-15 19:17:30 +03:00
Andrew Mayorov
b3e7e51094
test(bridge): drop unnecessary cleanup routines
Since `end_per_testcase` cleans out all the resources anyway.
2023-03-15 19:17:29 +03:00
Andrew Mayorov
cad6492c99
perf(bridge-api): ask bridge listings in parallel
Also rename response formatting functions to better clarify their
purpose.
2023-03-15 19:17:29 +03:00
Thales Macedo Garitezi
0deb9925c1 docs: improve descriptions
Co-authored-by: William Yang <mscame@gmail.com>
2023-03-15 10:30:02 -03:00
Zhongwen Deng
60677bc400 chore: remove unuse code 2023-03-15 20:40:54 +08:00
Ivan Dyachkov
c9b736ae23
Merge pull request #10141 from id/0315-chore-merge-release-50-to-master
0315 chore merge release 50 to master
2023-03-15 12:11:54 +00:00
Kjell Winblad
13a35cc045 fix: schema default value so that it shows up correctly in UI
This complements PR https://github.com/emqx/emqx/pull/10124.
The default values for duration_ms() fields needs to be formatted
as a binary string with unit to show up correctly in the dashboard
UI.
2023-03-15 11:04:16 +01:00
Thales Macedo Garitezi
04378f242c feat(ocsp_cache): give ocsp cache table an heir 2023-03-14 16:09:06 -03:00
Thales Macedo Garitezi
f6707d1dd0 test: fix how ocsp client is run in tests
For some yet unknown reason the old test version using `open_port`
does not work in OTP 25, but works fine in OTP 24.  There are no
messages at all received from The openssl client port program in OTP
25.
2023-03-14 16:09:06 -03:00
Thales Macedo Garitezi
63ef2f9b79 feat: save uploaded OCSP issuer pem like other ssl certs 2023-03-14 16:09:06 -03:00
Thales Macedo Garitezi
158f054187 docs: improve descriptions
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-03-14 16:09:06 -03:00
Thales Macedo Garitezi
57e38c8502 refactor(ocsp): add reusable type for normalized binary URLs 2023-03-14 16:09:05 -03:00
Thales Macedo Garitezi
067747c2de docs: improve descriptions
Co-authored-by: ieQu1 <99872536+ieQu1@users.noreply.github.com>
2023-03-14 16:08:47 -03:00
Thales Macedo Garitezi
52263a0448 feat: add ocsp stapling and crl support to mqtt ssl listener 2023-03-14 16:08:47 -03:00
Thales Macedo Garitezi
422597a441 test: fix flaky tests 2023-03-14 16:08:47 -03:00
Thales Macedo Garitezi
65fee34fe4 test: fix inter-suite test teardowns 2023-03-14 16:08:47 -03:00
Thales Macedo Garitezi
4880a849b9 chore: update emqtt -> 1.8.5
Needed for OCSP / CRL tests because of a bug that makes emqtt hang
forever on TLS handshake errors.
2023-03-14 16:08:47 -03:00
SergeTupchiy
9f9d16dd48
Merge pull request #10117 from SergeTupchiy/EMQX-8889_copy_plugins_on_joining_a_cluster
fix: copy plugins to a new node joining a cluster
2023-03-14 21:07:12 +02:00
Zaiming (Stone) Shi
6cbc17f110
Merge pull request #10135 from zmstone/0314-upgrade-to-hocon-0.37.0
chore: upgrade to hocon 0.37.0
2023-03-14 19:55:41 +01:00
Stefan Strigler
255117f2c4 chore: bump vsn e5.0.2-alpha.1 2023-03-14 19:51:35 +01:00
Serge Tupchii
bde4215a11 fix: copy plugins to a new node joining a cluster
Closes: EMQX-8889
2023-03-14 20:42:57 +02:00
William Yang
fffb92ebb7 test(quic): make tc run independent 2023-03-14 11:46:24 +01:00
William Yang
4c28b9f839 chore(test): use power of 2 recvbuff size in quic test
Make msquic assertions happy while in debug mode.
2023-03-14 11:46:24 +01:00
Zaiming (Stone) Shi
18b145ab67 chore: upgrade to hocon 0.37.0
hocon 0.37.0 introduced schema field aliases
this change does not impact anything until we start using aliases
2023-03-14 11:39:55 +01:00
zhongwencool
4f1da5e9fa
Merge pull request #10132 from zhongwencool/systemd-stop-crash-log
fix: stop port apps when emqx_machine_terminator shutdown
2023-03-14 17:40:26 +08:00
zhongwencool
d853085259
Merge pull request #10119 from zhongwencool/fix-statsd-empty-server
fix: don't allow empty string in server_port schema
2023-03-14 16:37:15 +08:00
Zhongwen Deng
0738444da9 fix: stop port apps when emqx_machine_terminator shutdown 2023-03-14 15:39:50 +08:00
Andrew Mayorov
a530ccbe3d
Merge pull request #10095 from fix/EEC-782/mysql-prepstmt-exhaustion
fix(mysql): be explicit that batch queries are parameterless
2023-03-14 10:21:45 +03:00
Zhongwen Deng
80205d9704 chore: apply code review 2023-03-14 10:54:05 +08:00
Zhongwen Deng
ee2847dcd9 test: make schema test happy 2023-03-14 09:17:45 +08:00
Zhongwen Deng
5be4d97c42 fix: don't allow empty string in server_port schema 2023-03-14 09:17:45 +08:00
Thales Macedo Garitezi
823128dfc7
Merge pull request #10127 from thalesmg/rm-rebar3-emqx-app-master
chore: remove committed rebar3 binary
2023-03-13 16:33:57 -03:00
Kjell Winblad
87ede1b1f7
Merge pull request #10124 from kjellwinblad/kjell/mongodb/default_heartbeat
fix: increase heartbeat time to avoid extreme MongoDB logging
2023-03-13 18:56:49 +01:00
Thales Macedo Garitezi
25c28eab81 chore: remove committed rebar3 binary
We already set up our custom rebar3 binary in CI, so this doesn't need
to be committed.  It is also outdated with our currently used version.
2023-03-13 14:11:39 -03:00
Stefan Strigler
62aec87c56
Merge pull request #10107 from sstrigler/EMQX-9147-bridges-api-fix-handling-unknown-bridge-id
Bridges API: fix handling unknown bridge-id
2023-03-13 16:40:46 +01:00
Kjell Winblad
1cf01197bb fix: increase heartbeat time to avoid extreme MongoDB logging
Our MongoDB driver creates a new temporary connection, for every active
connection, to just do a single heartbeat test. There is configurable
delay between every heartbeat test. When the user has an EMQX cluster
with a MongoDB bridge (to a MongoDB replica set), there will be a lot of
connections. Furthermore, as MongoDB creates a log entry every time a
new connection is created, the log will be flooded with info about new
connection. One user have reported more than 1MB of log data in a 10
minute period.

This commit tries to fix this by increasing the default delay between
heartbeats. A better fix would be to change the MongoDB driver so that
it does not create a new connection just to do a heartbeat check, but
this is more complicated so we leave this to the future. We might also
swap out the current MongoDB driver to something better.

Fixes:
https://github.com/emqx/emqx/issues/9851
2023-03-13 14:58:53 +01:00
Zaiming (Stone) Shi
0c5ab5183a
Merge pull request #10109 from zmstone/0308-stop-releasing-schema.json-in-rel-package
0308 stop releasing schema.json in rel package
2023-03-13 14:27:15 +01:00
Andrew Mayorov
53bc27e0f4
refactor(bridge): avoid unnecessary maps:to_list/1 when listing 2023-03-13 14:49:38 +03:00
Andrew Mayorov
686bf8255b
fix(bridge): reply emqx_resource:get_instance/1 from cache
The resource manager may be busy at times, so this change ensures that
getting resource instance state will not block. Currently, no users of
`emqx_resource:get_instance/1` do seem to be relying on state being
"as-actual-as-possible" guarantee it was providing.
2023-03-13 14:35:08 +03:00
Kjell Winblad
baf39fe080
Merge pull request #10098 from kjellwinblad/kjell/fix/mongo_authz_crash
fix: mongodb authz crash
2023-03-13 10:46:49 +01:00