Thales Macedo Garitezi
e586178479
chore: refactor azure blob connector to use new `erlazure` without `gen_server`
...
https://github.com/dkataskin/erlazure/pull/43 removes unnecessary usage of `gen_server`
from the driver.
2024-06-10 13:42:28 -03:00
Thales Macedo Garitezi
5629fe60c1
refactor: index positions rather than names
2024-06-10 13:33:22 -03:00
Thales Macedo Garitezi
8c7a7cf9db
refactor: apply review remarks
2024-06-10 11:17:13 -03:00
Thales Macedo Garitezi
e54cf2f218
refactor: use option to skip rendering as string
2024-06-10 10:49:39 -03:00
Thales Macedo Garitezi
d34558954d
refactor: improve api and module organization
2024-06-10 10:40:53 -03:00
Thales Macedo Garitezi
4aa1c3842f
fix: declare `emqx` as a dependency in `.app.src`
2024-06-10 09:53:29 -03:00
Thales Macedo Garitezi
aa416cc0ad
docs: fix stale comments and dates
2024-06-10 09:53:02 -03:00
zmstone
7a09b0470d
chore: cosmetic changes
2024-06-10 14:22:25 +02:00
Kjell Winblad
a885f0b41a
test(emqx_bridge_pgsql_SUITE): call test janitor
2024-06-10 13:45:27 +02:00
William Yang
a1aa9a4375
fix(ee): emqx no longer deps on emqx_auth_ext
2024-06-10 10:32:01 +02:00
zmstone
4347f3de3e
fix(bridge/mqtt): respect client ID prefix
2024-06-10 10:27:45 +02:00
William Yang
76cfc309a9
feat(tls): partial_chain not required
2024-06-10 10:25:44 +02:00
William Yang
7c37bf9965
feat(tls): ee only: TLS partial_chain and Keyusage
2024-06-10 10:24:48 +02:00
William Yang
e60380d205
chore: fix nit
2024-06-10 09:55:12 +02:00
William Yang
e9b813d8ef
chore: fix test
2024-06-10 09:54:54 +02:00
William Yang
1739bc0c24
feat(partial_chain): gateway support
2024-06-10 09:54:44 +02:00
zmstone
45dd7816d7
Merge remote-tracking branch 'origin/release-57'
2024-06-09 10:11:15 +02:00
William Yang
abbf2ef62f
chore(TLS-chain-test): update for OTP 26
2024-06-08 00:16:06 +02:00
William Yang
221b748b0f
test(partial_chain): update tcs for OTP-25
2024-06-08 00:16:01 +02:00
William Yang
463d1a1875
fix(test): tls_verify_partial_chain
2024-06-08 00:15:54 +02:00
William Yang
788cdbc6dd
fix(listener): remove partial_chain in wss opts
2024-06-08 00:15:51 +02:00
William Yang
3fc99315e0
chore: happy elvis
2024-06-08 00:15:45 +02:00
William Yang
c5dccdf526
feat(tls): update schema for TLS keyusage
2024-06-08 00:15:43 +02:00
William Yang
aa25e3badd
fix(tls): undefined keyusage
2024-06-08 00:15:39 +02:00
William Yang
9e5cfea8c0
test(tls): verify peer keyusage
2024-06-08 00:15:36 +02:00
William Yang
c5657029ab
feat(config): partial_chain
2024-06-08 00:15:34 +02:00
William Yang
f7ff9496e6
test: port listener tls partial_chain
2024-06-08 00:15:31 +02:00
William Yang
1ce13242a8
feat(tls): port partial_chain, part 1
2024-06-08 00:15:28 +02:00
Kjell Winblad
c13631102e
fix(PgSQL connector): typo in function name
2024-06-07 19:40:18 +02:00
Andrew Mayorov
b2f027c974
Merge pull request #13197 from keynslug/fix/EMQX-12522/conv-ssl
...
fix(bridge-s3): pass SSL options through `convert_certs/2`
2024-06-07 19:45:53 +03:00
Thales Macedo Garitezi
39615e1cb6
fix(rule actions): check `republish` action result for metrics
...
Fixes https://emqx.atlassian.net/browse/EMQX-12328
2024-06-07 11:17:43 -03:00
Thales Macedo Garitezi
28a3c77e88
chore: remove redundant health check call
...
Since `emqx_resource_manager:channel_health_check` already does a base resource health
check, the call was repeated.
2024-06-07 11:07:12 -03:00
Kjell Winblad
e63dcc84b0
fix: unused variable and better error message
2024-06-07 12:20:42 +02:00
Kjell Winblad
a3f3f96781
test(emqx_bridge_v2_pgsql_SUITE): fix broken test case
...
We have to delete the connector and action created by the previous step
of the test case so we don't get a name conflict.
2024-06-07 12:03:34 +02:00
JimMoen
78a196e215
Merge pull request #13189 from JimMoen/fix-apply-sqlserver-template
...
fix(utils_sql): improve insert sql regular expression
2024-06-07 13:50:19 +08:00
lafirest
eb215726d5
Merge pull request #13195 from lafirest/fix/typos
...
fix: fix typos
2024-06-07 09:04:16 +08:00
Thales Macedo Garitezi
ef36350bf6
feat: implement message transformation
...
Fixes https://emqx.atlassian.net/browse/EMQX-12517
2024-06-06 17:51:08 -03:00
Andrew Mayorov
8a85d7cb5a
fix(bridge-s3): pass SSL options through `convert_certs/2`
2024-06-06 19:37:38 +02:00
Andrew Mayorov
c17c788438
feat(connector): allow delegate `pre_config_update` to impls
2024-06-06 19:37:34 +02:00
zmstone
ebf17c8143
Merge remote-tracking branch 'origin/release-57' into 0606-merge-release-57-to-master
2024-06-06 17:43:36 +02:00
zmstone
2525bd0c16
perf: eliminate the loop-back fake async inet_reply message
...
Now that EMQX is on OTP 26 by default, the fake inet_reply
message when the send call returns ok only adds overhead.
For TCP (gen_tcp module), OTP 26 no longer supports direct port_command
so we had to swith to gen_tcp:send, then fake an async reply:
see https://github.com/emqx/esockd/pull/181
For TLS (ssl module), it has never supported async send anyway.
This commit switches to call Transport:send/2 directly,
this should result in one less loop-back message for each message.
For OTP 25 on which EMQX can still be compiled, one will have to
suffer the performance penalty for gen_tcp:send function to
do a non-optimized 'receive' for the send result.
2024-06-06 09:35:51 +02:00
zmstone
5c3f5d8085
perf: do not call inet getstat before each and every send
...
In a stress test environment, when alarm is enabled, there were
a lot of long_schedule warnings with the stacktrace pointing to
congestion alarm based inet:getstat function.
When alarm is disabled, the one single client is able to
hold 40,000 QoS 1 messages per second (inflight=32) throughput.
When alarm is enabled, its mqueue overflows.
This commit removes the call before each and every data send,
so to rely on emit_stats timer to trigger the congestion check.
2024-06-06 09:35:51 +02:00
firest
d4118c6e8e
fix: fix typos
2024-06-06 11:19:40 +08:00
JimMoen
dff31b293c
perf(utils_sql): pre-build regexp
2024-06-06 11:01:38 +08:00
zmstone
c41be7ee22
chore: fix dialyzer warning
2024-06-05 23:37:21 +02:00
Ilia Averianov
dc2e6d1695
Merge pull request #13163 from savonarola/0523-ds-shared-subs-dispatch
...
Inject shared subcription handling into durable session
2024-06-05 23:59:50 +03:00
Serge Tupchii
159da912c2
feat(emqx_dashboard_swagger): apply field validator in request body check
2024-06-05 19:35:04 +03:00
JimMoen
144264e0d8
test: add utils_sql test cases
2024-06-06 00:30:18 +08:00
JimMoen
627b8c45d2
fix(utils_sql): improve insert sql regular expression
2024-06-06 00:30:17 +08:00
Ilya Averyanov
b075b7120c
feat(sessds): implement dispatchig between CE/EE shared sub agents
2024-06-05 19:17:58 +03:00
Ilya Averyanov
60556abc4f
fix(dashboard_monitor): correctly merge old and new sample data
2024-06-05 18:49:52 +03:00
Kjell Winblad
2956e849eb
fix(pgsql connector): better msg when failing to remove statement
2024-06-05 16:58:14 +02:00
Kjell Winblad
336089f8a7
fix: bug found by dialyzer and make test case cleaner
2024-06-05 15:53:02 +02:00
Thales Macedo Garitezi
ae0379f974
Merge pull request #13181 from thalesmg/force-stop-connector-r57-20240604
...
fix(resource manager): force kill process if stuck when stopping/removing
2024-06-05 09:08:30 -03:00
lafirest
d79193fde4
Merge pull request #13177 from lafirest/sync-authn-com
...
feat: sync `client.check_authn_complete` to release-57
2024-06-05 19:51:10 +08:00
Thales Macedo Garitezi
5eab221f7c
Merge pull request #13175 from thalesmg/disable-prepared-statements-postgres-r57-20240603
...
feat(postgres): add `disable_prepared_statements` option
2024-06-04 12:29:53 -03:00
Thales Macedo Garitezi
f17aefe3d7
fix(action/source api): improve returned error message on timeout
2024-06-04 12:04:55 -03:00
zmstone
cda6d5f636
Merge pull request #13172 from zmstone/0603-add-redis-arg-formatter-to-rule-engine-funcs
...
feat(redis): add a rule function to help formatting redis args
2024-06-04 16:56:14 +02:00
Thales Macedo Garitezi
3013189cd7
fix(resource manager): force kill process if stuck when stopping/removing
...
Fixes https://emqx.atlassian.net/browse/EMQX-12357
2024-06-04 11:38:24 -03:00
Ilya Averyanov
9cdfbb0845
feat(sessds): make ds session be aware of shared subscriptions
2024-06-04 17:15:30 +03:00
Thales Macedo Garitezi
c07bc68e6f
feat(postgres): add `disable_prepared_statements` option
...
Fixes https://emqx.atlassian.net/browse/EMQX-12496
Some Postgres connections, such ones made to [PGBouncer](https://www.pgbouncer.org/ ) or
[Supabase in Transaction Mode](https://supabase.com/ ), do not support some session
features like prepared statements.
2024-06-04 10:11:25 -03:00
firest
87384cae32
fix(events): call `client.check_authn_complete` even if authentication fails
2024-06-04 17:55:39 +08:00
firest
92d26ff27b
chore: update change
2024-06-04 17:55:30 +08:00
firest
e4e53844d5
feat(events): add new hook && event `client.check_authn_complete`
2024-06-04 17:55:21 +08:00
Ilia Averianov
dc95218c68
Merge pull request #13144 from savonarola/0528-increase-bridge-buffer-drop-log-level
...
chore(bridges): increase log level for bridge buffer overflow reports
2024-06-04 12:37:50 +03:00
Kjell Winblad
572ca6433e
fix(pgsql connector): improvements due to suggestions from @thalesmg
...
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-06-04 10:11:45 +02:00
zhongwencool
a8a67a2ac9
Merge pull request #13151 from zhongwencool/authz-trace-log
...
chore: make authz's logs easier to understand
2024-06-04 11:12:09 +08:00
zmstone
aa7ce1f641
fix(bridge/redis): add test case for map_to_redis_hset_args
2024-06-03 23:05:43 +02:00
Kjell Winblad
f2ccfff803
fix(pgsql connector): handle prepared statement already exists
...
In a user's log file it was found that that the pgsql driver can end up
in a situation where the prepared statement for a channel/action is not
properly removed before a channel with the same name as the prepared
statement is added to the connector. This commit handles this by
attempting to remove the old prepared statement if one already exists
when adding channel.
Related issue:
https://emqx.atlassian.net/browse/EEC-1036
2024-06-03 16:14:26 +02:00
zmstone
e3ed7b59dd
feat(redis): add a rule function to help formatting redis args
...
The new function named 'map_to_redis_hset_args' can be used to format
a map's key-value pairs into redis HSET (or HMSET) arg list.
This new function is dedicated for redis to avoid abuse for other
data integrations.
2024-06-03 14:09:15 +02:00
Thales Macedo Garitezi
c5547543e0
Merge pull request #13069 from thalesmg/azure-blob-storage-action-m-20240508
...
feat: implement azure blob storage action
2024-06-03 08:56:37 -03:00
Ilia Averianov
193978af90
Merge pull request #13168 from savonarola/0530-fix-mgmt-test
...
chore(tests): improve test stability
2024-06-03 14:44:12 +03:00
zhongwencool
fda365a87b
chore: make authz's logs easier to understand
2024-06-03 18:01:57 +08:00
JimMoen
21624bc865
fix: get plugin app vsn from field `rel_apps`
2024-06-03 15:26:14 +08:00
zmstone
b6ff67d712
Merge pull request #13093 from zmstone/0522-upgrade-to-brod-3.18
...
chore: upgrade to brod 3.18.0
2024-06-02 15:06:40 +02:00
JimMoen
8d22a5a3ae
Merge pull request #13167 from JimMoen/fix-rule-events-i18n-todo
...
fix: missing rule event i18n in zh_cn
2024-06-02 18:23:20 +08:00
zmstone
9637b14543
fix: upgrade to brod 3.18.0 to fix unnecessary rebalance
2024-06-01 10:57:24 +02:00
Ilya Averyanov
57741a41e9
chore(tests): improve test stability
2024-05-31 22:27:31 +03:00
zmstone
fb07f40bea
test: fix default value of retry_interval in test case
2024-05-31 17:53:12 +02:00
zmstone
20c92407c7
feat: change message retry_interval default value to infinity
...
Previous Setting: The default value for `retry_interval` was 30 seconds.
New Default: The default `retry_interval` has been changed to 'infinity'.
With this update, EMQX will not automatically retry message deliveries
by default.
Compliance and Compatibility: Aligning with MQTT specification
standards, in-session message delivery retries are not typically
compliant. We recognize that some users depend on this feature, so the
option to configure retries remains available for backward
compatibility.
2024-05-31 17:53:12 +02:00
zmstone
37ce8d93a1
Merge pull request #13164 from zmstone/0530-http-acl-compatibility-with-v4
...
0530 http acl compatibility with v4
2024-05-31 16:28:30 +02:00
Thales Macedo Garitezi
347971e24a
fix: check `max_block_size` for direct transfers
2024-05-31 11:07:44 -03:00
Thales Macedo Garitezi
4859cebd9f
refactor: move `min_block_size` one level up
2024-05-31 11:07:44 -03:00
Thales Macedo Garitezi
9a1d3ea04f
chore: bump app vsns
2024-05-31 11:07:44 -03:00
Thales Macedo Garitezi
616f14ae53
fix: avoid uploading blocks too frequently and splitting large buffers
...
Fixes https://github.com/emqx/emqx/pull/13069#discussion_r1613706747
2024-05-31 11:07:44 -03:00
Thales Macedo Garitezi
af99829a21
refactor: move common templating logic to `emqx_connector_aggreg_buffer_ctx`
2024-05-31 11:07:44 -03:00
Thales Macedo Garitezi
c916c83c7c
feat: implement azure blob storage action
...
Fixes https://emqx.atlassian.net/browse/EMQX-12280
2024-05-31 11:07:44 -03:00
Thales Macedo Garitezi
60d24c6ad5
refactor: simplify resource_opts definition
2024-05-31 11:07:44 -03:00
Thales Macedo Garitezi
729441d1ce
refactor(connector aggregator): move shared schemas to app
2024-05-31 11:07:44 -03:00
Ilya Averyanov
db713cb656
chore(bridges): increase log level for bridge buffer overflow reports
...
Co-authored-by: Andrew Mayorov <encube.ul@gmail.com>
2024-05-31 16:35:18 +03:00
Thales Macedo Garitezi
c289c7d065
Merge pull request #13148 from thalesmg/EMQX-12251-fix-conn-api-timeout-case-clause-r571-20240528
...
fix(connector api): handle `timeout` when waiting for connector status
2024-05-31 10:07:35 -03:00
zmstone
6fe8a09e97
fix(authz/http): rename PH_ACCESS to VAR_ACCESS
2024-05-31 14:49:54 +02:00
JimMoen
45e2c81ebc
fix: missing rule event i18n in zh_cn
2024-05-31 17:51:47 +08:00
Ivan Dyachkov
29ad07ce29
Merge remote-tracking branch 'upstream/release-57' into 0531-sync-release-57
2024-05-31 07:32:26 +02:00
zmstone
ca32cf8d29
Merge branch 'emqx-12487-fix-authz-http-content-type' into 0530-http-acl-compatibility-with-v4
2024-05-30 22:30:20 +02:00
zmstone
a00d9f17b1
chore: upgrade kafka producer lib wolff to 1.10.4
...
wolff-1.10.4 handles message_too_large error code from Kafka.
It tries to split the too-large batch into single-call batches
(for EMQX, one call batch is always one message), and retry.
In case a single-call batch is too large, EMQX should increment
a failure counter.
2024-05-30 15:40:10 +02:00
zmstone
460081a22e
Merge pull request #13131 from zmstone/0527-handle-unicode-in-template-strings
...
0527 handle unicode in template strings
2024-05-30 15:37:43 +02:00
Ilya Averyanov
97f9c81e19
feat(auth): add legacy ${access} placeholder
2024-05-30 15:47:48 +03:00
Ivan Dyachkov
0c4da98b52
chore: update deps
2024-05-30 11:53:00 +02:00
Ivan Dyachkov
1129c18330
fix(authz_http): fix content-type header in http request
2024-05-30 11:36:13 +02:00