Commit Graph

12978 Commits

Author SHA1 Message Date
Thales Macedo Garitezi
df0c67fe50
Merge pull request #12787 from thalesmg/mv-api-examples-m-20240326
docs(message validation): add swagger API examples
2024-03-27 09:06:58 -03:00
Ivan Dyachkov
33d9619271 chore: 5.6.0 2024-03-27 11:17:13 +01:00
Serge Tupchii
a3b730ff10 fix(emqx_session_mem): keep msg inflight insert timestamp in Inflight after retry 2024-03-27 11:31:51 +02:00
JianBo He
4f9daa0d4a chore: bump version to 5.6.0-rc.6 2024-03-27 14:04:27 +08:00
JianBo He
d82b6d216d chore: remove the duplicated time field
Fixes https://emqx.atlassian.net/browse/EMQX-12104
2024-03-27 12:09:21 +08:00
Ivan Dyachkov
f127bf53b3 chore: 5.6.0-rc.5 2024-03-26 17:52:57 +01:00
ieQu1
291cf689e2
Merge pull request #12786 from ieQu1/dev/check-core-emqx-vsn
fix(mria): Strictly check compatibility of the replicant with core
2024-03-26 17:49:37 +01:00
ieQu1
ba43da1b8e
fix(mria): Strictly check compatibility of the replicant with core 2024-03-26 16:32:01 +01:00
Thales Macedo Garitezi
da4a04c411
Merge pull request #12777 from thalesmg/test-flaky-conf-copy-m-20240325
test: attempt to fix flaky test
2024-03-26 11:52:12 -03:00
zmstone
78c5f8177c test: fix test case 2024-03-26 14:51:21 +01:00
Thales Macedo Garitezi
10a43db742 docs(message validation): add swagger API examples
Fixes https://emqx.atlassian.net/browse/EMQX-12102
2024-03-26 09:39:05 -03:00
zmstone
067f018337 test: fix test cases 2024-03-26 13:36:12 +01:00
zmstone
b1c9bb63d7 chore: delete dead code
hocon schema validator never validates 'undefined'
2024-03-26 13:20:48 +01:00
zmstone
c42e980442 feat(log): configurable time format
now logs can be configured to use 'epoch' or 'rfc3339' time format
2024-03-26 13:09:32 +01:00
Thales Macedo Garitezi
cc37030265
Merge pull request #12770 from thalesmg/mv-metrics-m-20240321
feat(message validation): implement metrics
2024-03-26 08:59:05 -03:00
zhongwencool
56a40d61ae fix: bpapi undef abort on old node 2024-03-26 13:06:56 +08:00
Ivan Dyachkov
2ae973821f chore: 5.6.0-rc.4 2024-03-25 20:00:10 +01:00
Zaiming (Stone) Shi
b06d3932af
Merge pull request #12768 from keynslug/fix/EMQX-12068/routing-schema-conflict
fix(routing): add heuristic for routing schema in empty cluster
2024-03-25 19:50:51 +01:00
Thales Macedo Garitezi
6259f95aab test: attempt to fix flaky test
```
   expected: {ok,<<...>>}
       got: {error,enoent}
      line: 187
   comment: #{node => 'emqx_conf_app_SUITE9@127.0.0.1'}
```
2024-03-25 14:36:22 -03:00
Thales Macedo Garitezi
0f426e6e77 feat(ds): make durable sessions handle will messages
Fixes https://emqx.atlassian.net/browse/EMQX-10431
2024-03-25 14:18:25 -03:00
Thales Macedo Garitezi
8c1a1d21a7 feat(session): pass will message down to session when creating/opening 2024-03-25 14:18:23 -03:00
Dennis Zhuang
64eeeb7494 chore: verify status code 2024-03-25 10:05:39 -07:00
ieQu1
8b963d5960
Merge pull request #12739 from ieQu1/dev/zone-durability
feat(sessds): Add zone overrides for session durability settings
2024-03-25 17:32:53 +01:00
zmstone
b8b0b809b4 chore: add a warning log if conflict is detected 2024-03-25 17:07:56 +01:00
zmstone
9411d6078e docs: remove unnecessary restart instruction 2024-03-25 16:50:51 +01:00
zmstone
d38545010a fix: case_clause 2024-03-25 16:43:24 +01:00
Ivan Dyachkov
c93145cb97 fix: function clause 2024-03-25 16:40:53 +01:00
zmstone
3aff9eb2a4 fix(route schema): allow boot if all peer nodes agree on one version 2024-03-25 16:33:27 +01:00
Ivan Dyachkov
fe3cc25855 chore: update instructions for routing schema conflict 2024-03-25 15:22:43 +01:00
Thales Macedo Garitezi
59ff43ec87 feat(message validation): implement metrics
Fixes https://emqx.atlassian.net/browse/EMQX-12071
2024-03-25 10:55:01 -03:00
Kjell Winblad
94c6e5bb38
Merge pull request #12727 from kjellwinblad/kjell/emqx_connector_info/EMQX-11427
refactor: add emqx_connector_info behavior
2024-03-25 14:31:40 +01:00
Andrew Mayorov
849fe0c2c8
feat(routing): add schema conflict resolution procedure
In the log message printed when a schema conflict in cluster routing
is detected.
2024-03-25 13:43:46 +01:00
Thales Macedo Garitezi
f393d75a1e
Merge pull request #12771 from thalesmg/test-another-flaky-monitor-m-20240322
test: attempt to fix flaky test
2024-03-25 09:19:20 -03:00
Kjell Winblad
e39fa5eaa9 docs(es_connector_info): add copyright header 2024-03-25 10:44:33 +01:00
JimMoen
3e97e5528e
Merge pull request #12765 from JimMoen/EMQX-12043/subscribers-count
fix(stats): `'subscribers.count'` contains shared-subscriber
2024-03-25 17:19:13 +08:00
JimMoen
5f7f9e43f9
fix(stats): 'subscribers.count' contains shared-subscriber 2024-03-25 15:12:57 +08:00
zhongwencool
2926518b3d
Merge pull request #12764 from zhongwencool/fix-bpapi-undef
fix: bpapi undef on old node
2024-03-25 13:37:37 +08:00
zmstone
df913f2450 docs: refine changelog 2024-03-23 14:11:30 +01:00
zmstone
22838f027a fix: mountpoint template render should not replace unknown as undefined
For backward compatibility, the unknown vars used in mountpoint
is kept unchanged.
e.g. '${unknown}/foo/bar' should be rendered as '${unknown}/foo/bar'
but not 'undefined/foo/bar'
2024-03-23 10:16:05 +01:00
zmstone
3136ec5958 feat: allow mountpoint to use client_attrs 2024-03-23 10:16:05 +01:00
zmstone
8e8fc6a3d1 test: fix config test 2024-03-23 10:16:05 +01:00
zmstone
5e9814d171 fix: add debug level logging for invalid client attributes 2024-03-23 10:16:05 +01:00
zmstone
0cf61932b6 feat: allow using client_attrs in authentication templates 2024-03-23 10:16:05 +01:00
zmstone
8254b801ae feat: support initialize client attribute from user property 2024-03-23 10:16:02 +01:00
zmstone
2fd0a2cd4d feat: support extracting initial client attrs from clientinfo 2024-03-23 10:16:02 +01:00
zmstone
c75840306b fix: restrict client_attr key and value string format
The keys and values are used to render templates for
authz rules, such as topic names, and SQL statements etc.
2024-03-23 10:16:02 +01:00
zmstone
9ec99fef4a feat: allow client_attr used in authz rules 2024-03-23 10:16:02 +01:00
zmstone
e5816f5a13 refactor: rename attr to client_attr
client_attr is unique enough for all contexts
so the name can be unified from external responses
to internal template rendering, and rule-engine template rendering
2024-03-23 10:16:02 +01:00
zmstone
cc4805b1ac feat: extract attrs field from http and jwt auth response 2024-03-23 10:16:02 +01:00
zmstone
f9d51484cc feat: introuce attrs field in clientinfo
the 'attrs' field is to be used as extra attributes extracted
from various client properties
for example, HTTP auth result can return an extra client_attributes
field in the result which will get merged into the original
attrs field in clientinfo
2024-03-23 10:16:02 +01:00
Dennis Zhuang
ef0fee52f4 fix: query_by_clientid with v0.7 sql api 2024-03-22 17:09:23 -07:00
Dennis Zhuang
1fcd06f4bc feat: update greptimedb client lib and ci version 2024-03-22 15:33:15 -07:00
Thales Macedo Garitezi
303d0ed81b test: attempt to fix flaky test 2024-03-22 16:29:00 -03:00
SergeTupchiy
70378052dd
Merge pull request #12769 from SergeTupchiy/EMQX-12058-handle-client-shutdown-errors
fix:(emqx_mgmt): handle client shutdown errors in call_client
2024-03-22 17:43:57 +02:00
Andrew Mayorov
cbc84900b2
chore: update bpapi versions dump 2024-03-22 16:24:52 +01:00
Ivan Dyachkov
9986de49d1 chore: make dyalizer happy 2024-03-22 16:16:49 +01:00
Ivan Dyachkov
be1886fb91 chore: make dyalizer happy and update changelog 2024-03-22 15:56:44 +01:00
Serge Tupchii
ed0b5ac939 fix(emqx_mgmt): handle client shutdown errors in call_client
The client process may be shutdown normally during/shortly before the call.
2024-03-22 16:47:02 +02:00
Andrew Mayorov
b81a11b790
chore(routing): mark function that is now an RPC target 2024-03-22 15:14:53 +01:00
Andrew Mayorov
ba276d807f
fix(routing): add heuristic for routing schema in empty cluster
When the cluster is empty but comprised of different versions of EMQX,
try to additionally ask the cluster nodes for the routing schema in use,
to be able to make more informed decisions.
2024-03-22 15:14:32 +01:00
Thales Macedo Garitezi
bc5775a988 fix(kafka_producer): handle ancient v1 config when migrating to actions
Fixes https://emqx.atlassian.net/browse/EMQX-12064
2024-03-22 09:45:27 -03:00
Serge Tupchii
d2a1a7f7cf chore: rename message_queue_too_long error reason to mailbox_overflow
`mailbox_overflow` is consistent with the corresponding config parameter:
 'force_shutdown.max_mailbox_size'
2024-03-22 12:20:20 +02:00
JimMoen
42faffc320
refactor: uniform shared_sub table macros 2024-03-22 18:03:13 +08:00
zhongwencool
45eedbb9c6 fix: bpapi undef on old node 2024-03-22 17:02:09 +08:00
Kjell Winblad
2b684c7bcc fix(emqx_connector_info): refactoring based on thalesmg's comments 2024-03-22 09:29:26 +01:00
Serge Tupchii
5d77e1b01e fix: return not_implemented error for mqueue/inflight msgs queries 2024-03-22 10:02:31 +02:00
JimMoen
9b085b5797
fix(api_schema): removed metrics schema in api spec
- Followup [PR#6622](https://github.com/emqx/emqx/pull/6622).
2024-03-22 10:57:14 +08:00
Thales Macedo Garitezi
23ad37f566
Merge pull request #12762 from thalesmg/ds-fix-sync-egress-reply-m-20240321
fix(ds): add caller to pending replies before flushing and reply failures to sync callers
2024-03-21 16:42:42 -03:00
Thales Macedo Garitezi
cfd4a1297f
Merge pull request #12761 from thalesmg/test-fix-flaky-dash-mon-m-20240321
test: fix flaky test
2024-03-21 16:04:08 -03:00
Thales Macedo Garitezi
e17f663fa5
Merge pull request #12749 from thalesmg/mv-followup1-m-20240320
Follow up features and fixes for message validation - part 1
2024-03-21 16:03:49 -03:00
Thales Macedo Garitezi
796c04e7a8 test: fix flaky test
We should emit the trace event before replying to callers.

Example failure:

https://github.com/emqx/emqx/actions/runs/8378977952/job/22946318696#step:6:182

```
 =CRITICAL REPORT==== 21-Mar-2024::17:45:37.676024 ===
"check stage" failed: error
{assertMatch,[{module,emqx_ds_storage_bitfield_lts_SUITE},
              {line,270},
              {expression,"? of_kind ( emqx_ds_replication_layer_egress_flush , Trace )"},
              {pattern,"[ # { batch := [ _ , _ , _ ] } ]"},
              {value,[]}]}
Stacktrace: [{emqx_ds_storage_bitfield_lts_SUITE,
                 '-t_atomic_store_batch/1-fun-1-',1,
                 [{file,
                      "/__w/emqx/emqx/apps/emqx_durable_storage/test/emqx_ds_storage_bitfield_lts_SUITE.erl"},
                  {line,270}]},
             {emqx_ds_storage_bitfield_lts_SUITE,t_atomic_store_batch,1,
                 [{file,
                      "/__w/emqx/emqx/apps/emqx_durable_storage/test/emqx_ds_storage_bitfield_lts_SUITE.erl"},
                  {line,249}]}]
```
2024-03-21 15:47:29 -03:00
Thales Macedo Garitezi
68af211130 fix(ds): reply sync callers after raft store failure 2024-03-21 15:40:21 -03:00
Thales Macedo Garitezi
70737a437a fix(ds): add caller to pending replies before flushing 2024-03-21 14:39:21 -03:00
Ivan Dyachkov
93c80bc912 chore: 5.6.0-rc.3 2024-03-21 18:10:59 +01:00
Thales Macedo Garitezi
fa7ec231e3 test: fix flaky test 2024-03-21 14:07:09 -03:00
SergeTupchiy
e2a2295c99
Merge pull request #12759 from SergeTupchiy/EMQX-11808-remove-uploaded-invalid-backups
fix(emqx_mgmt_data_backup): remove invalid uploaded backup files
2024-03-21 18:58:48 +02:00
Thales Macedo Garitezi
00aa7b5621 feat: create new message.validation_failed hookpoint and rule engine event 2024-03-21 13:46:27 -03:00
Thales Macedo Garitezi
7d7c6685d4
Merge pull request #12753 from thalesmg/test-flaky-retry-m-20240321
test: attempt to stabilize flaky test
2024-03-21 13:43:51 -03:00
Serge Tupchii
40eccb10d6 fix(emqx_mgmt_data_backup): remove an uploaded backup file if it's not valid 2024-03-21 17:36:39 +02:00
Kjell Winblad
4bfc51c052 refactor(emqx_connector_info): improve documentation and type specs 2024-03-21 16:08:31 +01:00
Andrew Mayorov
7d6fde5960
fix(topics-api): respond with correct totals to paged queries 2024-03-21 16:02:16 +01:00
Thales Macedo Garitezi
e837791f94 fix(kafka-based bridges): avoid trying to get raw config for replayq dir
Fixes https://emqx.atlassian.net/browse/EMQX-12049
2024-03-21 11:49:00 -03:00
Thales Macedo Garitezi
64399b6861 test: attempt to stabilize flaky test 2024-03-21 11:04:14 -03:00
Kjell Winblad
89befa580e refactor(emqx_connector_info): remove code that is no longer needed 2024-03-21 11:58:54 +01:00
ieQu1
cada944350
feat(sessds): Expose relevant durable session info in the REST API 2024-03-21 10:37:04 +01:00
Kjell Winblad
a3b75eb39d refactor(remaining connectors): to use emqx_connector_info
This commit refactors the sqlserver, iotdb, elasticsearch, opents,
greptimedb, pulsar, tdengine, rabbitmq and s3 connectors to use the
`emqx_connector_info` behavior.
2024-03-21 09:47:57 +01:00
Thales Macedo Garitezi
62030e8942 feat(message validation): forbid repeated schema checks
Fixes https://emqx.atlassian.net/browse/EMQX-12054
2024-03-20 15:26:16 -03:00
Thales Macedo Garitezi
b8cd1c9020 feat(message validation api): add enable/disable HTTP API 2024-03-20 14:59:32 -03:00
Thales Macedo Garitezi
4944cc080e feat(message_validation): add ignore failure action 2024-03-20 14:31:43 -03:00
Thales Macedo Garitezi
8753e3583f feat(message_validation): add none log level 2024-03-20 14:31:26 -03:00
Thales Macedo Garitezi
e767f01e0a fix(message_validation): take enable into account 2024-03-20 13:57:12 -03:00
Thales Macedo Garitezi
7aa287c6c1 fix: add message validation schema to emqx_enterprise_schema 2024-03-20 13:37:01 -03:00
Ivan Dyachkov
49e0488498 chore: 5.6.0-rc.2 2024-03-20 17:11:37 +01:00
Zaiming (Stone) Shi
bede5a5b85
Merge pull request #12746 from zmstone/0320-add-throttle-log-for-auth-failure
feat: add authentication_failure throttled log
2024-03-20 17:06:36 +01:00
SergeTupchiy
27c1f1a4e4
Merge pull request #12732 from SergeTupchiy/EMQX-11861-client-mqueue-inflight-API-updates
EMQX-11861 client mqueue inflight api updates
2024-03-20 16:27:44 +02:00
Andrew Mayorov
7257fe526b
fix(ci): add ra to emqx app dependencies as well 2024-03-20 14:46:53 +01:00
zmstone
90fce21adc docs: add change log for #12746
also updated #12520 to include newly added throttled log id
2024-03-20 14:43:28 +01:00
zmstone
38e30622f3 chore(license): add LICENSE tag to logs 2024-03-20 14:42:01 +01:00
zmstone
2c81b56377 feat: add authentication_failure throttled log
also included changes:

1. add 'username' to log metadata
2. add 'tag' to authz warning logs
2024-03-20 14:42:01 +01:00
Zaiming (Stone) Shi
e5f9e7631d
Merge pull request #12736 from zmstone/0319-json-schema-draft-06-as-default-version
chore: upgrade to jesse 1.8.0 for draft-06 as default version
2024-03-20 14:39:37 +01:00
Kjell Winblad
27d109ce6d refactor(syskeeper connector): to use emqx_connector_info
This commit refactors the syskeeper connector to use the
`emqx_connector_info` behavior.
2024-03-20 14:29:02 +01:00
Serge Tupchii
cb5fdb3c79 fix: rework In-flight / Mqueue API
- use timestamp 'position' to find the next chunk of data
- add 'start' position to response meta
- sort In-flight messages by insertion time
- sort Mqueue messages by priority
2024-03-20 15:25:33 +02:00
Kjell Winblad
188ab71673 refactor(rocketmq connector): to use emqx_connector_info
This commit refactors the rocketmq connector to use the
`emqx_connector_info` behavior.
2024-03-20 14:02:18 +01:00
Kjell Winblad
aa368bb9d0 refactor(redis connector): to use emqx_connector_info
This commit refactors the redis connector to use the
`emqx_connector_info` behavior.
2024-03-20 13:49:28 +01:00
Kjell Winblad
12717baa0b refactor(mqtt connector): to use emqx_connector_info
This commit refactors the mqtt connector to use the
`emqx_connector_info` behavior.
2024-03-20 13:33:13 +01:00
Andrew Mayorov
e55e1dd1b2
chore: whitelist ra to make RPCs w/o BPAPIs 2024-03-20 13:20:25 +01:00
Andrew Mayorov
a8baff61ec
docs(dsrepl): describe briefly what n_sites is for 2024-03-20 13:20:25 +01:00
Andrew Mayorov
efac5c6197
test(ds): stabilize t_message_gc testcase 2024-03-20 13:20:25 +01:00
Andrew Mayorov
fe50a1711b
fix(ds-egress): drop pending batch on failures
Before this commit, messages in the current batch will be retried as
part of next batch. This could have led to message duplication which is
probably not what the user wants by default.
2024-03-20 13:20:25 +01:00
Andrew Mayorov
a1f5de3f5b
fix(dsrepl): turn memoize into a safer function 2024-03-20 13:20:24 +01:00
Andrew Mayorov
d39ca41070
chore(dsrepl): mark per-node add_generation RPC target obsolete
Also annotate internal exports with comments according with their
intended use.
2024-03-20 13:20:24 +01:00
Andrew Mayorov
35b18f9125
fix(dsrepl): properly handle error conditions in generation mgmt
Also update few outdated typespecs. Also make error reasons easier
to comprehend.
2024-03-20 13:20:24 +01:00
Andrew Mayorov
f2268aa69a
fix(dsrepl): use correct base dir for ra system stuff
Co-Authored-By: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-03-20 13:20:24 +01:00
Andrew Mayorov
404e919494
refactor(dsrepl): make shard allocator more robust and consistent
Co-Authored-By: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-03-20 13:20:24 +01:00
Andrew Mayorov
0e18bd6e80
fix(dsrepl): increase replication site id bitsize back
In order to minimize chances of site id collision to practically zero.
2024-03-20 13:20:24 +01:00
Andrew Mayorov
ac9700dd28
fix(dsrepl): split shard allocator into a separate module 2024-03-20 13:20:23 +01:00
Andrew Mayorov
1b647035d0
chore(dsrepl): make dialyzer a bit happier 2024-03-20 13:20:23 +01:00
Andrew Mayorov
611b3f0e07
feat(dsrepl): use more straightforward way to drop ra shards 2024-03-20 13:20:23 +01:00
Andrew Mayorov
74881e8706
feat(dsrepl): make storage layer unaware of granularity of time
Storage also becomes a bit more pure, depending on the upper layer to
provide the timestamps, which also makes it possible to handle more
operations idempotently.
2024-03-20 13:20:23 +01:00
ieQu1
783f769a98 fix(mgmt): Fix bulk kickout of durable sessions 2024-03-20 12:52:44 +01:00
Kjell Winblad
223bbc05fe refactor(mysql connector): to use emqx_connector_info
This commit refactors the mysql connector to use the
`emqx_connector_info` behavior.
2024-03-20 11:12:38 +01:00
Kjell Winblad
c6d7c57bbd refactor(clickhouse connector): to use emqx_connector_info
This commit refactors the clickhouse connector to use the
`emqx_connector_info` behavior.
2024-03-20 10:59:58 +01:00
Kjell Winblad
afa3da6d0d refactor(cassandra connector): to use emqx_connector_info
This commit refactors the cassandra connector to use the
`emqx_connector_info` behavior.
2024-03-20 10:50:44 +01:00
Kjell Winblad
159ab81904 refactor(influxdb connector): to use emqx_connector_info
This commit refactors the influxdb connector to use the
`emqx_connector_info` behavior.
2024-03-20 10:39:16 +01:00
Kjell Winblad
c1e6092013 refactor(oracle connector): to use emqx_connector_info
This commit refactors the oracle connector to use the
`emqx_connector_info` behavior.
2024-03-20 10:12:55 +01:00
JimMoen
808efe0f64
chore: rm outdated comment 2024-03-20 16:49:36 +08:00
JimMoen
b8b4c5a34a
fix(otel): cpu usage/idle metrics for opentelemetry 2024-03-20 16:48:21 +08:00
ieQu1
0547b32727
feat(sessds): Add zone overrides for session durability settings 2024-03-19 22:51:06 +01:00
ieQu1
611e4f6710
Merge pull request #12740 from ieQu1/dev/kick-durable-sessions
fix(sessds): Channel must destroy sessions that are kicked
2024-03-19 21:30:40 +01:00
Andrew Mayorov
e2db038e7c
Merge pull request #12734 from keynslug/fix/EMQX-12030/topics-api
fix(api-topics): expose persistent session topics in APIs
2024-03-19 21:08:23 +01:00
Andrew Mayorov
3cb36a5619
feat(ds-lts): extract timestamp from storage key itself
1. This avoids the need to deserialize the message to get the timestamp.
2. It also makes possible to decouple the storage key timestamp from the
   message timestamp, which might be useful for replication purposes.
2024-03-19 20:21:56 +01:00
Andrew Mayorov
5cc0246351
feat(dsrepl): allow to tune select ra options 2024-03-19 20:21:55 +01:00
Andrew Mayorov
54b5adf868
feat(dsrepl): allocate shards predictably
To ensure strictly optimal and fair shard allocation across
cluster. Before this commit it was quite easy to end up with
an allocation significantly skewed towards some node, because
of the nature of randomness and relatively small number of
shards.
2024-03-19 20:21:55 +01:00
Andrew Mayorov
d30c99512a
feat(utils-stream): add a few more stream combinators 2024-03-19 20:21:54 +01:00
Andrew Mayorov
887e151be5
fix(dsrepl): handle errors gracefully in shard egress process
Also add cooldown on timeout / unavailability.
2024-03-19 20:21:53 +01:00
Andrew Mayorov
e16aee99b4
chore(dsrepl): clarify how to perform leadership transfer in runtime 2024-03-19 20:21:18 +01:00
Andrew Mayorov
00d509f27b
feat(dsrepl): prefer local replica in read path
To optimize out any unnecessary RPCs. Given the load should be
smoothed evenly across the cluster, choosing non-leader node is
not a priority.
2024-03-19 20:11:42 +01:00
Andrew Mayorov
19305c223c
fix(dsrepl): require majority for replication-related tables 2024-03-19 20:11:42 +01:00
Andrew Mayorov
f89909f60c
fix(dsrepl): tolerate trigger election timeouts for existing servers 2024-03-19 20:11:42 +01:00
Andrew Mayorov
6c6ea50e42
fix(boot): add emqx_durable_storage to the list of restarted apps 2024-03-19 20:11:42 +01:00
Andrew Mayorov
3b59cf2ebf
feat(dsrepl): move shard allocation to separate process
That starts shard and egress processes only when shards are fully
allocated.
2024-03-19 20:11:41 +01:00
Andrew Mayorov
4dafbf21f6
fix(dsrepl): make db + shard part of machine state
It doesn't feel right, but right now is the easiest way to have it
in the scope of `apply/3`, because `init/1` doesn't actually invoked
for ra machines recovered from the existing log / snapshot.
2024-03-19 20:11:41 +01:00
Andrew Mayorov
d19128ed65
feat(dsrepl): cache shard metadata in persistent terms 2024-03-19 20:11:41 +01:00
Andrew Mayorov
e6c2c2fb07
feat(dsrepl): manage generations / db config through ra machine 2024-03-19 20:11:39 +01:00
Andrew Mayorov
5e94bdb932
feat(dsrepl): allocate shards once predefined number of sites online
Before this commit the most likely shard allocation outcome was
that all shard are allocated to just one node.
2024-03-19 20:11:03 +01:00
Andrew Mayorov
be793e4735
fix(dsrepl): reassign timestamp at the time of submission
This is needed to ensure total message order for a shard, and
guarantee that no messages will be written "in the past". which
may break replay consistency.
2024-03-19 20:11:01 +01:00
Andrew Mayorov
146f082fdc
feat(dsrepl): implement raft-based replication
Still very rough but mostly working.
2024-03-19 20:09:44 +01:00
Ivan Dyachkov
923fd0a2a6
Merge pull request #12737 from id/0319-sync-release56
sync release-56
2024-03-19 19:09:41 +01:00
Andrew Mayorov
f453bdf055
chore(topic-api): describe emqx_persistent_session_ds_router:stream/1 2024-03-19 18:51:06 +01:00
Andrew Mayorov
027b237f07
test(ds): stabilize t_session_replay_retry testcase 2024-03-19 18:33:38 +01:00
ieQu1
236685f714 fix(sessds): Channel must destroy sessions that are kicked 2024-03-19 17:49:04 +01:00
Kjell Winblad
df8c7152fc refactor(mongodb connector): to use emqx_connector_info
This commit refactors the mongodb connector to use the
`emqx_connector_info` behavior.
2024-03-19 16:09:30 +01:00
Kjell Winblad
c3d7d68cfc refactor(kinesis,pgsql,timescale,matrix connectors): emqx_connector_info
This commit refactors the kinesis, pgsql, timescale and matrix
connectors to use the `emqx_connector_info` behavior.
2024-03-19 15:57:23 +01:00
Ivan Dyachkov
f2dc940436 Merge remote-tracking branch 'upstream/release-56' into 0319-sync-release56 2024-03-19 15:20:08 +01:00
Thales Macedo Garitezi
a689ae72e3
Merge pull request #12711 from thalesmg/data-validation-m-20240311
feat: implement message validation
2024-03-19 11:12:28 -03:00
Andrew Mayorov
10ea367030
test(client-api): attempt to get rid of inter-testcase side effects 2024-03-19 14:56:50 +01:00
Andrew Mayorov
3129a8fa42
test(client-api): fix snabbkaffe crash noise in the CT logs 2024-03-19 14:55:28 +01:00
zmstone
b8505ebd54 chore: upgrade to jesse 1.8.0 for draft-06 as default version 2024-03-19 14:47:11 +01:00
Kjell Winblad
a3e631cda2 refactor(kafka connectors): to use emqx_connector_info
This commit refactors the `emqx_bridge_kafka` to use the
`emqx_connector_info` behavior. The `emqx_bridge_kafka` related
information can thus be removed from `emqx_connector_chema` and
`emqx_connector_resource`.
2024-03-19 14:41:23 +01:00
Kjell Winblad
b8ef357fef refactor(http connector): to use emqx_connector_info
This commit refactors the `emqx_bridge_http` to use the
`emqx_connector_info` behavior. The `emqx_bridge_http` related
information can thus be removed from `emqx_connector_chema` and
`emqx_connector_resource`.
2024-03-19 14:41:23 +01:00
Kjell Winblad
dc08fab0e8 refactor(hstreamdb connector): to use emqx_connector_info
This commit refactors the `emqx_bridge_hstreamdb` to use the
`emqx_connector_info` behavior. The `emqx_bridge_hstreamdb` related
information can thus be removed from `emqx_connector_ee_schema` and
`emqx_connector_schema`.
2024-03-19 14:41:20 +01:00
Kjell Winblad
d0bebe8b93 refactor(gcp_pubsub connectors): to use emqx_connector_info
This commit refactors the emqx_bridge_gcp_pubsub app to use the
emqx_connector_info behavior. The emqx_bridge_gcp_pubsub
related information can thus be removed from emqx_connector_ee_schema
and emqx_connector_schema.
2024-03-19 14:40:33 +01:00
Kjell Winblad
76d32b6e97 refactor(confluent connector): to use emqx_connector_info
This commit refactors the emqx_bridge_confluent to use the
emqx_connector_info behavior. The emqx_bridge_confluent related
information can thus be removed from emqx_connector_ee_schema and
emqx_connector_schema.
2024-03-19 14:39:43 +01:00
Kjell Winblad
795b668c4f refactor(azure_event_hub connector): to use emqx_connector_info
This commit refactors the emqx_bridge_azure_event_hub to use the
emqx_connector_info behavior. The emqx_bridge_azure_event_hub related
information can thus be removed from emqx_connector_ee_schema and
emqx_connector_schema.
2024-03-19 14:39:17 +01:00
Thales Macedo Garitezi
c478e375f6 refactor: change failure log configuration schema 2024-03-19 10:04:18 -03:00
JianBo He
c7db157ecd
Merge pull request #12735 from zhongwencool/fix-ban-crash
fix: don't crash when ban ip error
2024-03-19 20:57:54 +08:00
Thales Macedo Garitezi
2eac54bf54 chore: rm move API
Only `reorder` API will be supported, after discussions with product and frontend teams.
2024-03-19 09:55:55 -03:00
SergeTupchiy
92fd0e453a
Merge pull request #12719 from SergeTupchiy/EMQX-11900-multiple-clientid-username-clients-API
Support multiple clientid/username Qs params in clients API
2024-03-19 14:44:39 +02:00
Andrew Mayorov
e1b3263177
fix(sessds): make dialyzer a tad happier 2024-03-19 13:11:32 +01:00
JianBo He
24c04e715d
Merge pull request #12715 from zhongwencool/fix-source-replace-error
fix: cant replace source conf
2024-03-19 19:32:47 +08:00
zhongwencool
111cbbbe3c fix: don't crash when ban ip error 2024-03-19 19:10:36 +08:00
zhongwencool
d7c01a4fe0 fix: cant replace source conf 2024-03-19 18:53:51 +08:00
Andrew Mayorov
985f1c4879
fix(api-topics): expose persistent session topics in APIs 2024-03-19 11:01:26 +01:00
zhongwencool
9a44c6712a fix: otel metrics create view crash 2024-03-19 12:20:49 +08:00
Thales Macedo Garitezi
e8a8416e44 feat(message_validation): impose restrictions on validation name 2024-03-18 15:57:39 -03:00
Thales Macedo Garitezi
74c03377f2 feat(message_validation_api): implement reorder API 2024-03-18 14:30:52 -03:00
Thales Macedo Garitezi
bcb7fe96d5 refactor: remove ambiguity from api
In preparation for the "reorder" API
2024-03-18 13:20:05 -03:00
Thales Macedo Garitezi
96ffc9b174 refactor: export schema_check fn from schema registry 2024-03-18 13:11:39 -03:00
Thales Macedo Garitezi
cde87bce66 chore: add missing traces 2024-03-18 13:11:39 -03:00
Thales Macedo Garitezi
f84a996671 feat: implement message validation
Fixes https://emqx.atlassian.net/browse/EMQX-11980
2024-03-18 13:11:39 -03:00
Serge Tupchii
8f8b023429 refactor: simplify match spec holder construction 2024-03-18 18:00:26 +02:00
Serge Tupchii
b3d44125f6 feat: support multiple clientid / username Qs params in "/clients" API
Additionally, add an option to specify which Client info fields to return in the response.
2024-03-18 18:00:26 +02:00
Kjell Winblad
af3a604354 refactor: add emqx_connector_info behavior
This commit adds the behavior `emqx_connector_info`. The
`emqx_connector_info` behavior should be implement when creating a new
connector to provide information about the connector (such as connector
schema etc) to the `emqx_connetor` application.

The connector in the `emqx_bridge_dynamo` application has also been
refactored to use the new behavior (as a test to see that the behavior
is working as intended).

Fixes:
https://emqx.atlassian.net/browse/EMQX-11427
2024-03-18 13:50:23 +01:00
JianBo He
2a611e4508 chore: fix the error api desc 2024-03-18 18:27:28 +08:00
JianBo He
485d8dbbdb feat: add the get /source_types endpoint to return all supported source 2024-03-18 18:11:06 +08:00
JimMoen
889eb48368
fix(shared-sub): update stats when unsub shared topic filter 2024-03-16 20:43:05 +08:00
JimMoen
59e280dc54
test: cluster consistented metrics and label for nodes running/stopped
- `emqx_cluster_sessions_count`
- `emqx_cluster_sessions_max`
- `emqx_subscriptions_shared_count`
- `emqx_subscriptions_shared_max`
- `emqx_cluster_nodes_running`
- `emqx_cluster_nodes_stopped`
2024-03-16 20:43:04 +08:00
JimMoen
55a8488a4f
test: fields in /monitor_current
- `retained_msg_count`
- `shared_subscriptions`
2024-03-16 20:43:03 +08:00
JimMoen
02b3292025
fix: cluster nodes running/stopped with node name as label 2024-03-16 20:39:34 +08:00
JimMoen
0e25eb287b
fix(prom): cluster session count/max is cluster consistented 2024-03-16 20:39:33 +08:00
JimMoen
62f8f889e1
refactor: func rename to fix typo 2024-03-16 20:39:32 +08:00
JimMoen
e56bee618b
fix: shared_subscriptions is cluster consistented 2024-03-16 20:39:31 +08:00
Ivan Dyachkov
3f93780d8c
Merge pull request #12717 from id/0315-prep-5.6.0-rc.1
chore: 5.6.0-rc.1
2024-03-15 21:28:31 +01:00
Ivan Dyachkov
e28992d586 chore: 5.6.0-rc.1 2024-03-15 17:08:00 +01:00
Ivan Dyachkov
ea76dac760 chore: fix xref 2024-03-15 17:08:00 +01:00
Kjell Winblad
1fecd01405
Merge pull request #12708 from kjellwinblad/kjell/dynamo_bridge/update_error/EMQX-11984
fix: DynamoDB connector status check takes too long
2024-03-15 16:20:19 +01:00
ieQu1
c22735b3f5
Merge pull request #12707 from ieQu1/dev/store-ds-session-ip
Store peer name in the durable session metadata.
2024-03-15 16:15:29 +01:00
ieQu1
a93f747afa fix(sessds): Return peername of the disconnected client in the REST 2024-03-15 13:48:53 +01:00
ieQu1
b6cc9177a6 feat(sessds): Store peername in the persistent session state 2024-03-15 13:48:53 +01:00
SergeTupchiy
e35e8847b9
Merge pull request #12685 from SergeTupchiy/refactor-emqx-mgmt-call-client
Refactor emqx mgmt call client
2024-03-15 10:01:49 +02:00
Thales Macedo Garitezi
11ae04d810 test(ds): rm unused var warning 2024-03-14 17:16:24 -03:00
zmstone
d8bdb3c9aa fix(api/clients): drop expired sessions from durable storage 2024-03-14 20:57:53 +01:00
Kjell Winblad
4e9f2c8f5d fix: DynamoDB connector status check takes too long
The DynamoDB connector status checks takes very long when the server is
unavailable which makes the resource manager blocked for a long time.
This causes calls to update the Bridge config with the Bridge V1 API fail
due to a timeout when it calls the resource manager to remove the
channel.

A better fix would be to change the resource manager so that the status
check cannot block it for a long time. However, this is more complicated
so it needs to be done in a later commit. A new ticket has been created
for this task https://emqx.atlassian.net/browse/EMQX-12015 .

Fixes:
https://emqx.atlassian.net/browse/EMQX-11984
2024-03-14 17:21:55 +01:00
Thales Macedo Garitezi
2ebc8dcc55 fix(ds): use infinity timeout when storing batches 2024-03-14 10:17:18 -03:00
Thales Macedo Garitezi
e340ab7f1b
Merge pull request #12696 from thalesmg/fix-default-enable-r56-20240313
fix(bridges): fix default value for `enable` when attempting operations
2024-03-14 09:50:40 -03:00
ieQu1
69a9431471
Merge pull request #12665 from ieQu1/dev/sessds-hot-conf-disable
fix(sessds): Prevent hot update of session_persistence.enable config
2024-03-14 13:20:52 +01:00
Thales Macedo Garitezi
d11949ac51
Merge pull request #12694 from thalesmg/fix-kconsu-tm-validation-r56-20240313
fix(kafka_consumer): validate topic mapping in v2 schema
2024-03-14 09:19:41 -03:00
Kjell Winblad
93903eb04b
Merge pull request #12683 from kjellwinblad/kjell/kinesis2/fix/parameter_restrictions/EMQX-11983
fix(Amazon Kinesis Action): batch size restriction
2024-03-14 10:55:44 +01:00
Zaiming (Stone) Shi
cb77dea1e9
Merge pull request #12699 from zmstone/0313-fix-session-count-on-replicant-node
fix: do not crash on replicant node
2024-03-14 09:42:27 +01:00
lafirest
afb7075f82
Merge pull request #12695 from lafirest/fix/opents
perf(opents): Improve the message processing efficiency of opentsdb
2024-03-14 09:32:42 +08:00
JianBo He
45fe0787ca
Merge pull request #12689 from lafirest/fix/ld_log
fix(ldap): lower the log level of LDAB to `debug`
2024-03-14 09:21:44 +08:00
lafirest
4f97743652
Merge pull request #12687 from lafirest/fix/iotdb
fix(iotdb): Fix function_clause when the convert value is null
2024-03-14 08:52:18 +08:00
lafirest
35fb6ee656
Merge pull request #12688 from lafirest/fix/tdengine
fix(tdengine): enhanced health check result, make it more sense
2024-03-14 08:50:04 +08:00
Serge Tupchii
685f29d3f2 chore: upgrade hocon to 0.42.1
hocon 0.42.1 allows to use "b" or "B" (byte) unit in bytesize fields.
2024-03-13 19:30:28 +02:00
Thales Macedo Garitezi
4ac6d0716a
Merge pull request #12698 from thalesmg/test-flaky-conf-r56-20240313
test(conf): fix flaky config sync testcases
2024-03-13 13:47:23 -03:00
zmstone
ccd973d13e fix: do not crash on replicant node 2024-03-13 16:42:39 +01:00
Kjell Winblad
9d21372ff0
Merge pull request #12678 from kjellwinblad/kjell/dynamo_bridge/fix/error_log/EMQX-11934
fix: return error reason from dynamo connector status check
2024-03-13 15:27:08 +01:00
Andrew Mayorov
92088a5905 test(conf): fix flaky config sync testcases
Before the recent changes these testcases relied on the fact that
peer nodes that are part of the test cluster are started one after
the other. This is now not the case in general with `emqx_cth_cluster`,
so now we need to additionally find the "longest running node" in the
cluster before running test logic.
2024-03-13 11:26:49 -03:00
Thales Macedo Garitezi
b587ebac0c fix(bridges): fix default value for enable when attempting operations
Fixes https://emqx.atlassian.net/browse/EMQX-11999

Although the frontend doesn't send `enable` when creating a bridge/action/connector, the
default value in the schema is `true`, so when attempting to fetch it from the raw config
we should adhere to that default.
2024-03-13 11:25:22 -03:00
firest
a58ee801b2 fix(tdengine): enhanced health check result, make it more sense 2024-03-13 21:30:30 +08:00
firest
b156e55430 perf(opents): Improve the message processing efficiency of opentsdb 2024-03-13 21:06:52 +08:00
Thales Macedo Garitezi
a852695950 fix(kafka_consumer): validate topic mapping in v2 schema
Fixes https://emqx.atlassian.net/browse/EMQX-12008
2024-03-13 09:57:46 -03:00
Serge Tupchii
e514c4a2ac fix(emqx_mgmt_api_clients): check that max_payload_bytes is higher than 0 2024-03-13 14:00:30 +02:00
firest
e9febf231f fix(ldap): lower the log level of LDAB to debug 2024-03-13 19:20:40 +08:00
Kjell Winblad
7908e2d591
Merge pull request #12682 from kjellwinblad/kjell/hstream_bridge/fix/parameter_restrictions/EMQX-11939
fix(HStreamDB bridge/action): restrict configuration parameters
2024-03-13 11:40:53 +01:00
Kjell Winblad
9d999920be
Merge pull request #12681 from kjellwinblad/kjell/rocketmq_conn/remove_secret_from_logs/EMQX-11987
fix: redact secrets from RocketMQ debug log
2024-03-13 11:39:47 +01:00
JimMoen
d723a5edf7
Merge pull request #12670 from JimMoen/feat-shared-sub-count-monitor-current
feat(api): field `shared_subscriptions` in endpoint `/monitor_current`
2024-03-13 17:09:30 +08:00
Serge Tupchii
65be76aa06 refactor(emqx_mgmt): add call_client timeout and improve RPC error handling 2024-03-13 10:56:02 +02:00
firest
4b3c6f8330 fix(iotdb): Fix function_clause when the convert value is null 2024-03-13 11:28:07 +08:00
Serge Tupchii
8be02327b2 refactor(emqx_mgmt): avoid call_client RPC to all runing nodes if global cm_registry is enabled 2024-03-12 20:58:53 +02:00
Kjell Winblad
4cd434dbe3 docs(kinesis action): add description for action resource_opts 2024-03-12 18:38:39 +01:00
Thales Macedo Garitezi
1edf284fed test: trigger hocon validators when checking schema 2024-03-12 14:32:16 -03:00
Kjell Winblad
c90f4f5794 fix(DynamoDB connector): fix error in status check when no workers 2024-03-12 17:22:22 +01:00
Kjell Winblad
7e73b79b75 fix(Amazon Kinesis Action): batch size restriction
Make sure that the Amazon Kinesis action has the same batch size
restriction as the Amazon Kinesis bridge.

Fixes:
https://emqx.atlassian.net/browse/EMQX-11983
2024-03-12 12:52:54 +01:00
Kjell Winblad
da87abd9c8 fix(HStreamDB bridge/action): restrict configuration parameters
This commit restricts a few HStreamDB bridge/action parameters from
being any integer to being integers greater than 0. Lower values than 1
for these parameters resulted in runtime errors.

Fixes:
https://emqx.atlassian.net/browse/EMQX-11939
2024-03-12 11:01:15 +01:00
Kjell Winblad
fc4603c078 fix: redact secrets from RocketMQ debug log
Fixes:
https://emqx.atlassian.net/browse/EMQX-11987
2024-03-12 10:32:25 +01:00
Kjell Winblad
91514f3ace refactor: clean up over complicated code
This commit cleans up overly complicated code and handles
the case when the worker pool is empty.

Thank you @thalesmg for suggesting this change.

Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-03-12 10:22:29 +01:00
Kjell Winblad
1d1cdc1009 fix: return error reason from dynamo connector status check
Fixes:
https://emqx.atlassian.net/browse/EMQX-11934
2024-03-12 10:22:08 +01:00
JimMoen
0edeff4786
test: fix flaky 2024-03-12 15:21:17 +08:00
JimMoen
bc9084db79
test: cpu utilization value 2024-03-12 14:14:46 +08:00
JimMoen
0297c7b83b
refactor: conditional enclosed in parentheses 2024-03-12 14:14:45 +08:00
JimMoen
207f38c42a
fix(vm): cpu usage/idle handled by single worker 2024-03-12 14:14:44 +08:00
JianBo He
f24a76e770
Merge pull request #12668 from emqx/leap-year-bug-sql-fun
fix: port the changes for date_to_unix_ts SQL fun from 4.4
2024-03-12 10:48:31 +08:00
Andrew Mayorov
552968e5fe
test(conf): fix flaky config sync testcases
Before the recent changes these testcases relied on the fact that
peer nodes that are part of the test cluster are started one after
the other. This is now not the case in general with `emqx_cth_cluster`,
so now we need to additionally find the "longest running node" in the
cluster before running test logic.
2024-03-11 13:03:13 +01:00
Andrew Mayorov
d725206bcb
Merge pull request #12624 from keynslug/fix/EMQX-11901/ds-error-class
feat(sessds): handle recoverable errors during replay
2024-03-11 12:41:45 +01:00
SergeTupchiy
b673ad3e5c
Merge pull request #12673 from zmstone/0308-fix-base64-compatibility-on-otp25
fix(mgmt): avoid using base64:decode/2 and encode/2
2024-03-11 13:23:37 +02:00
JimMoen
a82d4e1f7a
fix: retained_msg_count and shared_subscriptions api schema 2024-03-11 17:44:11 +08:00
JimMoen
e7574a70fb
feat(api): field shared_subscriptions in endpoint /monitor_current 2024-03-11 17:44:10 +08:00
Serge Tupchii
980a4c3a4d fix(emqx_mgmt_api): use emqx_utils:bin_to_hexstr/2 2024-03-11 10:40:19 +02:00
Serge Tupchii
f376aa8072 refactor(emqx_mgmt_api_clients): remove unnecessary function 2024-03-11 10:39:09 +02:00
Zaiming (Stone) Shi
68682c4231
Merge pull request #12671 from kjellwinblad/kjell/rule_engine/fix/unescape_rules_from_dashboard/EMQX-11847
feat(rule engine SQL): add an `unescape` function
2024-03-08 17:57:31 +01:00
zmstone
2cc1c563df fix(mgmt): avoid using base64:decode/2 and encode/2
they are not available in otp 25
2024-03-08 16:46:54 +01:00
Thales Macedo Garitezi
d92fd3e42d
Merge pull request #12667 from thalesmg/ds-delete-m-20240307
feat(ds): implement `get_delete_streams`, `make_delete_iterator` and `delete_next` callbacks for builtin storage
2024-03-08 10:57:51 -03:00
Thales Macedo Garitezi
79d7821222
Merge pull request #12655 from thalesmg/fix-kconsu-status-r56-20240306
fix(kafka_consumer): check client connectivity
2024-03-08 10:53:44 -03:00
Thales Macedo Garitezi
6af01b916e feat(ds): implement get_delete_streams, make_delete_iterator and delete_next callbacks for builtin storage
Part of https://emqx.atlassian.net/browse/EMQX-11841
2024-03-08 09:56:46 -03:00
Thales Macedo Garitezi
5dfd864c1a
Merge pull request #12666 from thalesmg/test-flaky-machine-m-20240307
test(machine): attempt to stabilize flaky test
2024-03-08 08:57:35 -03:00
Kjell Winblad
5a6f96212d feat(rule engine SQL): add an unescape function
The added `unescape` function unescapes escape sequences, transforming
them back to their represented characters. The following escape
sequences are supported:

- Standard C escape sequences:
  - `\n` for newline (LF)
  - `\t` for horizontal tab (HT)
  - `\r` for carriage return (CR)
  - `\b` for backspace (BS)
  - `\f` for formfeed (FF)
  - `\v` for vertical tab (VT)
  - `\'` for single quote (')
  - `\"` for double quote (")
  - `\\` for backslash (\)
  - `\?` for question mark (?)
  - `\a` for alert (bell, BEL)

- Hexadecimal escape codes:
  - `\xH...` where `H...` is one or more hexadecimal digits (0-9, A-F,
    a-f), allowing for the encoding of arbitrary utf32 characters.

If an escape sequence is not recognized, or if the hexadecimal escape
does not form a valid Unicode character, the function generates an
exception.

Fixes:
https://github.com/emqx/emqx/issues/12460
https://emqx.atlassian.net/browse/EMQX-11847
2024-03-08 12:05:06 +01:00
Kjell Winblad
060e02c4c4
Merge pull request #12653 from kjellwinblad/kjell/rule_engine/fix/subbits/support_non_byte_sizes/EMQX-11943
fix(rule_engine): support non-byte sized input to bin2hexstr
2024-03-08 09:41:03 +01:00
Kjell Winblad
6054499607
Merge pull request #12657 from kjellwinblad/kjell/rule_engine/fix/fun_calls_as_array_items/EMQX-11953
fix(rule SQL): allow expressions as array items
2024-03-08 09:39:46 +01:00
Shawn
29111a2192 fix: dialyzer problems 2024-03-08 14:25:19 +08:00
Shawn
163d095dca fix: port the changes for date_to_unix_ts SQL fun from 4.4 2024-03-08 10:48:08 +08:00
Thales Macedo Garitezi
963e0de0c3 fix(kafka_consumer): check client connectivity
Fixes https://emqx.atlassian.net/browse/EMQX-11945
2024-03-07 14:22:03 -03:00
Andrew Mayorov
f7e3afde16
test(ds): avoid introducing new macros 2024-03-07 16:49:20 +01:00
Thales Macedo Garitezi
b52c9c0062 test(machine): attempt to stabilize flaky test 2024-03-07 10:23:02 -03:00
Andrew Mayorov
69427dc42d
test(ds): add tests for error mapping and replay recovery 2024-03-07 12:59:58 +01:00
Andrew Mayorov
e7e8771277
fix(sessds): set replay retry timer if initial replay/3 fails 2024-03-07 12:59:58 +01:00
Andrew Mayorov
09905d78cd
chore(ds): make error handling slightly simpler
Co-Authored-By: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-03-07 12:59:57 +01:00
Andrew Mayorov
b604c3dbd4
refactor(sessds): make replay error handling a bit more clear
Also leave a forgotten TODO.
2024-03-07 12:59:57 +01:00
Andrew Mayorov
3f3e33b2cb
fix(sessds): untangle pull and replay retry timers
And restore the convention that timer handler always manages only
its own timers.
2024-03-07 12:59:57 +01:00
Andrew Mayorov
b39c710ec2
fix(ds): tidy up few typespecs 2024-03-07 12:59:57 +01:00
Andrew Mayorov
1cf672e78d
feat(sessds): handle recoverable errors during replay 2024-03-07 12:59:57 +01:00
Andrew Mayorov
2146d9e1fe
feat(ds): introduce error classes in critical API functions
For now, only recoverable / unrecoverable errors are introduced.
2024-03-07 12:59:57 +01:00
SergeTupchiy
1f38813cb9
Merge pull request #12561 from SergeTupchiy/EMQX-11861-client-mqueue-inflight-API
feat: add client mqueue/inflight messages API
2024-03-07 13:20:31 +02:00
ieQu1
c62776edaf fix(sessds): Prevent hot update of session_persistence.enable config 2024-03-07 12:19:53 +01:00
Serge Tupchii
a2e761681e feat: add client mqueue/inflight messages API 2024-03-07 12:06:49 +02:00
zmstone
6a2731f2da Merge remote-tracking branch 'origin/master' into release-56 2024-03-07 09:36:37 +01:00
Zaiming (Stone) Shi
98034cb4dd
Merge pull request #12660 from zmstone/sync-5.5.1
Sync 5.5.1
2024-03-07 09:36:08 +01:00
Thales Macedo Garitezi
c62dd56a4a
Merge pull request #12661 from thalesmg/ds-atomic-store-m-20240305
feat(ds): add atomic store API
2024-03-06 17:48:28 -03:00
zmstone
f57f2fa1b7 chore: bump app version numbers 2024-03-06 19:37:06 +01:00
Thales Macedo Garitezi
df3ebc5c56
Merge pull request #12659 from thalesmg/test-flaky-pulsar-r56-20240306
test(pulsar): fix flaky test
2024-03-06 15:29:01 -03:00
Thales Macedo Garitezi
b421363661
Merge pull request #12656 from thalesmg/fix-gprodu-status-r56-20240306
fix(gcp_pubsub_producer): check for topic existence when creating action
2024-03-06 15:28:51 -03:00
Thales Macedo Garitezi
5d87d400f4 feat(ds): add atomic store API
Part of https://emqx.atlassian.net/browse/EMQX-11841
2024-03-06 15:24:14 -03:00
Thales Macedo Garitezi
dc16e59f2c fix(gcp_pubsub_producer): check for topic existence when creating action
Fixes https://emqx.atlassian.net/browse/EMQX-11949
2024-03-06 13:43:50 -03:00
zmstone
e99546e009 Merge remote-tracking branch 'origin/release-56' into sync-5.5.1 2024-03-06 17:27:54 +01:00
Thales Macedo Garitezi
eacd803a37 test(pulsar): fix flaky test 2024-03-06 12:07:02 -03:00
Thales Macedo Garitezi
fd7eacb953 test(elastic_search): fix flaky test 2024-03-06 11:38:22 -03:00
Kjell Winblad
c206ee37e0 fix(rule SQL): allow expressions as array items
Fixes:
https://github.com/emqx/emqx/issues/12465
https://emqx.atlassian.net/browse/EMQX-11953
2024-03-06 15:38:19 +01:00
Kjell Winblad
69114bc6c2 fix(rule_engine): support non-byte sized input to bin2hexstr
The rule engine subbits function can return a bitstring which size is
not divisible by 8. Therefore, it makes sense that the rule engine
function bin2hexstr can handle such bitstrings as well. This is fixed by
this commit.

Fixes:
https://github.com/emqx/emqx/issues/12586
https://emqx.atlassian.net/browse/EMQX-11943
2024-03-06 15:26:49 +01:00
Kjell Winblad
78d5f76f70
Merge pull request #12652 from kjellwinblad/kjell/rule_engine/fix/subbits/EMQX-11942
fix: add subbits/4 and subits/5 rule_engine functions
2024-03-06 15:20:30 +01:00
Zaiming (Stone) Shi
fc8b5d4522
Merge pull request #12646 from zmstone/0304-rule-engin-func-fix-zone-shift-in-date-string-parse
fix(rule_func): time zone shift at wrong precision
2024-03-06 13:22:30 +01:00
JianBo He
f1e9da9048
Merge pull request #12604 from thalesmg/test-gcp-consu-tm-m-20240227
test(gcp_pubsub_consumer): add test case for updating topic when there is a topic mapping
2024-03-06 09:13:41 +08:00
JianBo He
1737df05c7
Merge pull request #12641 from zmstone/0304-improve-text-log-formatter
0304 improve text log formatter
2024-03-06 09:12:18 +08:00
Kjell Winblad
8cf681ad3b
Merge pull request #12639 from kjellwinblad/kjell/fix_flaky_test_case/emqx_broker_SUITE.connected_client_count_group.quic.t_connected_client_count_transient_takeover
test(emqx_broker_SUITE): fix flaky test case
2024-03-05 18:02:07 +01:00
Ilya Averyanov
3285edc004
Merge pull request #12650 from savonarola/0305-refine-retainer-readme
chore(retainer): actualize README
2024-03-05 18:57:02 +02:00
Thales Macedo Garitezi
3ce8dcaa3f
Merge pull request #12643 from thalesmg/test-flaky-elasticsearch-m-20240304
test(elastic_search): fix flaky test
2024-03-05 13:53:42 -03:00
Thales Macedo Garitezi
24cb45a643 test(elastic_search): fix flaky test 2024-03-05 11:29:49 -03:00
Thales Macedo Garitezi
69dcc69761
Merge pull request #12640 from thalesmg/sync-r56-m-20240304
sync `release-56` to `master`
2024-03-05 10:44:28 -03:00
Kjell Winblad
365d054e01 fix: add subbits/4 and subits/5 rule_engine functions
The documentation for the family of subbits functions says that the
fifth and sixth parameters are optional (since they only make sense when
the forth parameter is 'integer'). However, before this commit
`subbits/4` and `subbits/5` did not exist.

Fixes:
https://emqx.atlassian.net/browse/EMQX-11942
https://github.com/emqx/emqx/issues/12587
2024-03-05 13:27:07 +01:00
Thales Macedo Garitezi
676df7eb30 test(gcp_pubsub_consumer): add test case for updating topic when there is a topic mapping
Checks that, if a migrated bridge originally has a `topic_mapping` and is later updated
with V2 APIs (without topic mapping in the input), then the new V2 `topic` field prevails.
2024-03-05 09:12:24 -03:00
Thales Macedo Garitezi
a840925a50
Merge pull request #12642 from thalesmg/ds-fix-drop-typespec-m-20240304
fix(ds): fix `drop_generation` typespec
2024-03-05 09:11:08 -03:00
Thales Macedo Garitezi
c5489fee90 Merge remote-tracking branch 'origin/release-56' into sync-r56-m-20240304 2024-03-05 09:08:59 -03:00
Ilya Averyanov
ce50aed930 chore(retainer): actualize README 2024-03-05 13:08:36 +03:00
Kjell Winblad
c8e42cf6b1 test(emqx_broker_SUITE): fix flaky test case 2024-03-05 10:14:07 +01:00
zmstone
cb0066d639 chore: add tag for logs from MQTT connection modules 2024-03-05 08:39:53 +01:00
Zaiming (Stone) Shi
00b21cf9c5
Merge pull request #12634 from zmstone/0304-breaking-no-escape-for-triple-quote-string-characters
chore: upgrade to hocon 0.42.0
2024-03-05 08:32:50 +01:00
lafirest
c2dcb507cf
Merge pull request #12637 from lafirest/merge-55
sync release-55 to master
2024-03-05 08:47:30 +08:00
Serge Tupchii
e725064a2a fix(emqx_conf_schema): use timeout_duration_s() type for log.throttling.time_window field 2024-03-04 22:41:28 +02:00
zmstone
9929025820 fix(rule_func): time zone shift at wrong precision 2024-03-04 21:25:49 +01:00
Thales Macedo Garitezi
61328eb91a chore: prepare e5.6.0-alpha.2 2024-03-04 15:37:58 -03:00
zmstone
3e3194fd21 chore: upgrade to hocon 0.42.0 2024-03-04 19:12:42 +01:00
Thales Macedo Garitezi
06334798a5 fix(ds): fix drop_generation typespec
This typespec fix will be used downstream by other backends.
2024-03-04 14:15:59 -03:00
zmstone
6c9eb16a95 refactor(logger): reorder log fields
tag > clientid > msg > peername > username > topic > [other fields]
2024-03-04 18:10:19 +01:00
Thales Macedo Garitezi
577ef41e45 Merge remote-tracking branch 'origin/release-55' into sync-r55-r56-20240304 2024-03-04 12:48:06 -03:00
Ivan Dyachkov
cdcab23c54
Merge pull request #12615 from id/0229-prepare-5.5.1-release
chore: prepare 5.5.1 release
2024-03-04 16:34:13 +01:00
lafirest
79f0720d14
Merge pull request #12635 from lafirest/fix/r551
fix(http): fix that sensitive headers may be printed in log when querying
2024-03-04 22:32:14 +08:00
Ivan Dyachkov
7780b4f1d7 chore: prepare 5.5.1 release 2024-03-04 15:15:10 +01:00
firest
6d9b2a95c3 Merge remote-tracking branch 'origin/release-55' 2024-03-04 20:47:20 +08:00
Thales Macedo Garitezi
0dd9990f24 Merge remote-tracking branch 'origin/release-55' into sync-r55-r56-20240304 2024-03-04 09:44:30 -03:00
Thales Macedo Garitezi
8b66ea7852
Merge pull request #12625 from thalesmg/test-retainer-extensions-m-20240301
test(retainer): extend test suite for usage by other backends
2024-03-04 09:40:32 -03:00
firest
c5eb09a72f fix(http): fix that sensitive headers may be printed in log when querying 2024-03-04 20:36:01 +08:00
JimMoen
3e7311ee31
Merge pull request #12619 from JimMoen/EMQX-11468/refactor/sqlserver
feat: refactor MS SQL Server bridge to connector and action
2024-03-04 18:05:14 +08:00
ieQu1
2e792da934
Merge pull request #12562 from ieQu1/dev/new-ds-schema
Refactor schema for the durable storage
2024-03-04 10:33:27 +01:00
JimMoen
4623b73f47
fix: sqlserver connector auto reconnect 2024-03-04 17:13:25 +08:00
JimMoen
2e3003e0f1
test: sqlserver bridge v2 2024-03-04 17:13:24 +08:00
JimMoen
1d58092176
fix: bridge v2 on_query matched ChannelId 2024-03-04 17:13:23 +08:00
JimMoen
00d50479f5
fix: compatible with bridge v1 2024-03-04 17:13:22 +08:00
JimMoen
9143d5994d
feat: refactor MS SQL Server bridge to connector and action 2024-03-04 17:13:21 +08:00
JimMoen
0a33f9d027
fix(calendar): leap year time to unix timestamp 2024-03-04 15:37:49 +08:00
Ivan Dyachkov
9f61239704 Merge remote-tracking branch 'upstream/release-56' into 0304-sync-release-56 2024-03-04 08:00:39 +01:00
Zaiming (Stone) Shi
e9a5670cce
Merge pull request #12581 from zmstone/0223-add-json-schema
feat: schema registry supports json schema
2024-03-02 10:09:31 +01:00
Thales Macedo Garitezi
08ef2c7b8b test(retainer): extend test suite for usage by other backends
Part of https://emqx.atlassian.net/browse/EMQX-11922
2024-03-01 17:27:15 -03:00
Ivan Dyachkov
a20478fff0 chore: update scripts and workflows for 5.6.x 2024-03-01 09:01:34 +01:00
Zaiming (Stone) Shi
fa275bf0a2 refactor(schema_registry): use one func for both encode and decode check 2024-03-01 07:20:59 +01:00
firest
1c1c4e497d chore: bump version && update change 2024-03-01 12:42:19 +08:00
firest
5a3a34cce7 fix(redact): enhanced the redact for sensitive headers 2024-03-01 12:30:26 +08:00
firest
0670272188 fix: Revert "fix: redact all headers from logs"
This reverts commit d8032f47ca.
2024-03-01 10:32:57 +08:00
zhongwencool
d56fb22208
Merge pull request #12595 from thalesmg/kafka-consumer-source-m-20240223
feat: migrate kafka consumer bridge to source + connector
2024-03-01 10:11:16 +08:00
Zaiming (Stone) Shi
b7e5ea2941 feat(schema_registry): add JSON schema 2024-02-29 21:03:52 +01:00
Thales Macedo Garitezi
5d94a910b9 test: reduce flakiness 2024-02-29 13:59:43 -03:00
Zaiming (Stone) Shi
21cf600242 chore: address previous review comments 2024-02-29 16:13:52 +01:00
Zaiming (Stone) Shi
66fbcdcefa test: fix a compile warning 2024-02-29 16:13:52 +01:00
Zaiming (Stone) Shi
5afe000ada
Merge pull request #12612 from zmstone/0226-fix-schema-registry-replication
refactor: change schema registry SERD_TAB to ets
2024-02-29 14:58:41 +01:00
Ilya Averyanov
5bb769e659
Merge pull request #12616 from savonarola/0229-ds-interface
feat(ds): export types
2024-02-29 15:42:42 +02:00
Thales Macedo Garitezi
16b3dc1166 refactor: use individual keys for subscriber id resources 2024-02-29 10:39:37 -03:00
zhongwencool
bc9de20024
Merge pull request #12540 from zhongwencool/bridge-pulsar-v2
feat: pulsar bridge v2
2024-02-29 21:25:11 +08:00
Thales Macedo Garitezi
0aa9a872a3 feat: check brod_sup for client id 2024-02-29 09:53:23 -03:00
William Yang
b82973b36b
Merge pull request #11868 from qzhuyan/fix/william/takeover-pub-willmsg
fix: willmsg not published in takeover
2024-02-29 13:14:18 +01:00
Ilya Averyanov
b706caf294 feat(ds): export types 2024-02-29 14:27:18 +03:00
Ilya Averyanov
f87c17b540
Merge pull request #12611 from savonarola/0228-ds-interface
feat(ds): update delete/count interface
2024-02-29 10:31:51 +02:00
Ilya Averyanov
d4519bda82
Merge pull request #12589 from savonarola/0222-retainer-interface
Make retainer pluggable
2024-02-29 10:31:15 +02:00
zhongwencool
3814203fa2 test(pulsar): add pulsar action v2 testcase 2024-02-29 16:23:37 +08:00
zhongwencool
e9e1daf962 chore: update some pulsar's desc 2024-02-29 16:23:37 +08:00
zhongwencool
650f9659a4 fix: create pulsar producer when on_add_channel 2024-02-29 16:23:37 +08:00
zhongwencool
7f1b4cef27 feat: pulsar bridge v2 2024-02-29 16:23:37 +08:00
zhongwencool
21e0ecfcce
Merge pull request #12583 from zhongwencool/wait-for-listener-stop
chore: wait_for cowboy listener release sock when stop_listener
2024-02-29 15:03:22 +08:00
lafirest
d2dda2535b
Merge pull request #12602 from lafirest/fix/iotdb_ping
fix(iotdb): use the `ping` API to check the status of the IOTDB connections
2024-02-29 12:26:10 +08:00
firest
0bebd66f05 fix(iotdb): make dialyzer happy 2024-02-29 10:51:12 +08:00
zhongwencool
49b508544e
chore: port not released msg
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2024-02-29 10:49:29 +08:00
Zaiming (Stone) Shi
10c1245125 refactor: change schema registry SERD_TAB to ets
Prior to this change, it's a mria/mnesia table
which may cause nodes to overwrite each other.
2024-02-28 23:13:07 +01:00
Ilya Averyanov
d5ae0e5c53 feat(ds): update delete/count interface 2024-02-28 22:51:24 +03:00
Zaiming (Stone) Shi
704eceb7c7
Merge pull request #12599 from zmstone/0227-refactor-log-config-template
docs: add log docs
2024-02-28 17:58:14 +01:00
Andrew Mayorov
ef4ae92da4
Merge pull request #12523 from keynslug/ft/bump-ekka-0.19.0
refactor: bump ekka to 0.19.0 w/o mnesia boot phase
2024-02-28 17:46:29 +01:00
Ilya Averyanov
dfdf7455d3 feat(retainer): make additional implementations pluggable
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-02-28 18:43:17 +03:00
Ilya Averyanov
d94066a10a chore(retainer): refactor types; remove hotwiring to builtin config 2024-02-28 18:43:16 +03:00
Ilya Averyanov
aa2ee9c409 chore(retainer): add backend creation to the behaviour 2024-02-28 18:43:16 +03:00
lafirest
d3fb72733e
Merge pull request #12610 from lafirest/fix/ldap_bind_health
fix(ldap): fixed that the connection to the LDAP connector could be disconnected after a period of time
2024-02-28 23:03:10 +08:00
lafirest
eaef753c36
Merge pull request #12608 from lafirest/fix/iotdb
fix(iotdb): fix function clause error when there is no `payload` field
2024-02-28 22:00:54 +08:00
Andrew Mayorov
20c4029b33
test(cluster-rpc): unload any mocks in end_per_suite/1
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-02-28 14:52:37 +01:00
firest
b9f644c355 fix(ldap): fixed that the connection to the LDAP connector could be disconnected after a period of time 2024-02-28 21:46:03 +08:00
firest
ce2552712f chore: bump version && update change 2024-02-28 18:32:08 +08:00
Andrew Mayorov
c3b044a37b
fix(api-topics): respond with count when it's cheap to compute 2024-02-28 11:28:33 +01:00
Andrew Mayorov
bd578a799e
fix(api-topics): avoid doing full scans over router tables 2024-02-28 10:52:44 +01:00
Andrew Mayorov
9bb0868628
test(api-topics): add testcase verifying paged queries work 2024-02-28 10:52:41 +01:00
firest
01207ef97b fix(iotdb): fix function clause error when there is no payload field 2024-02-28 16:54:01 +08:00
zhongwencool
660a1ce99d chore: use gen_tcp:recv timeout to wait socket closed 2024-02-28 16:18:32 +08:00
JimMoen
6fd04e33f5
fix(prom): skip cert info for disabled ssl/wss/quic listeners 2024-02-28 15:39:33 +08:00
JimMoen
5f125047f5
refactor: remove unnecessary lists fold for cerfile 2024-02-28 14:53:20 +08:00
JimMoen
812e8ef314
fix: try-catch for unknow reason to inhibit api crash 2024-02-28 14:53:19 +08:00
zhongwencool
4307aecefd chore: wait_for cowboy listener release sock when stop_listener 2024-02-28 14:24:15 +08:00
firest
c3a2cf6220 chore: update change && bump version 2024-02-28 13:18:48 +08:00
JimMoen
042a84c30f
fix(prom): api crash when tls cert file non existed 2024-02-28 11:35:55 +08:00
zhongwencool
aa7def425d fix: get grpc_timeout from hstreamdb connector config failed 2024-02-28 08:45:06 +08:00
Andrew Mayorov
28d664bae2
test(pulsar): simplify the test suite 2024-02-27 23:51:54 +01:00
Andrew Mayorov
367ffa8e80
feat(utils-fs): add function to compute relpaths naively 2024-02-27 23:41:50 +01:00
Thales Macedo Garitezi
6b9844ae82 feat: migrate kafka consumer bridge to source + connector
Fixes https://emqx.atlassian.net/browse/EMQX-11848
2024-02-27 17:52:33 -03:00
Thales Macedo Garitezi
787dcd0e86
Merge pull request #12577 from thalesmg/gcp-service-json-binary-m-20240223
feat(gcp_pubsub_bridges): make service account json a binary
2024-02-27 15:42:42 -03:00
Zaiming (Stone) Shi
ef99037335 docs: add log docs 2024-02-27 19:24:56 +01:00
Andrew Mayorov
6ea9d2a6d9
test(conf): simplify confsync test suite 2024-02-27 16:41:54 +01:00
Andrew Mayorov
ae79516fd2
test(cluster-rpc): ensure testsuite is side-effects-free 2024-02-27 16:41:54 +01:00
Andrew Mayorov
56eefe34d5
feat(cth-cluster): use workdir as cwd on each node 2024-02-27 16:41:53 +01:00
Andrew Mayorov
d60ff1e616
test(plugins): avoid using same workdir for different nodes 2024-02-27 16:41:53 +01:00
Andrew Mayorov
3a008c8b4c
refactor: bump ekka to 0.19.0 w/o mnesia boot phase 2024-02-27 16:41:50 +01:00
Thales Macedo Garitezi
8a204f2ac1
Merge pull request #12596 from thalesmg/fix-header-logging-r55-20240226
fix: redact all headers from logs
2024-02-27 11:19:51 -03:00
firest
77239da7ed fix(iotdb): use the ping API to check the status of the IOTDB connections 2024-02-27 22:07:41 +08:00
lafirest
02de92a53d
Merge pull request #12601 from lafirest/fix/eldap_log
fix(ldap): fix that logs of eldap will never be logged
2024-02-27 21:50:05 +08:00
JimMoen
2ded751237
test: nl not allowed for shared-sub 2024-02-27 18:24:30 +08:00
zhongwencool
54c542c795 chore: rename _probe_ to t_probe_ 2024-02-27 17:57:15 +08:00
zhongwencool
c67f2130f2 fix: check connector and bridge_v2 with the right schema 2024-02-27 17:57:10 +08:00
JimMoen
c6b1102b2b
fix(mgmt_client): nl not allowed for shared-sub 2024-02-27 17:51:39 +08:00
firest
f3237a1bf7 chore: bump emqx_ldap version 2024-02-27 17:48:34 +08:00
firest
5c69500c52 fix(ldap): fix that logs of eldap will never be logged 2024-02-27 17:48:22 +08:00
lafirest
9ae7ac04a2
Merge pull request #12597 from lafirest/fix/ldap_log
fix(ldap): fix that logs of eldap will never be logged
2024-02-27 17:40:44 +08:00
Zaiming (Stone) Shi
1567c5beb0
Merge pull request #12580 from zmstone/0224-delete-stale-macro
chore: delete stale macro
2024-02-27 09:58:06 +01:00
Zaiming (Stone) Shi
9c9a2b8494
Merge pull request #12592 from zmstone/0226-duration_s-min-value
chore: for dashboad add a 'minimum' attribute for duration_s type
2024-02-27 09:57:33 +01:00
firest
da13ec736c chore: bump emqx_ldap version 2024-02-27 16:08:47 +08:00
JimMoen
c1da7449fe
test(mgmt_api): bulk/unbulk sub/unsub shared topic filter 2024-02-27 16:01:12 +08:00
JimMoen
a76415c4f6
fix(mgmt): sub/unsub a share subscription to the client via http api
- `/clients/:clientid/subscribe`
- `/clients/:clientid/subscribe/bulk`
- `/clients/:clientid/unsubscribe`
- `/clients/:clientid/unsubscribe/bulk`
2024-02-27 16:00:45 +08:00
firest
6e73cfa2cf fix(ldap): fix that logs of eldap will never be logged 2024-02-27 15:47:46 +08:00
William Yang
6c7b7741d5 feat(quic): mqtt 5.0 graceful shutdown in takeover 2024-02-26 23:05:49 +01:00
William Yang
c8f9ffdc1f chore: update some comments 2024-02-26 22:24:16 +01:00
William Yang
88fc67b369 chore(willmsg): remove unreachable code 2024-02-26 22:24:16 +01:00
William Yang
d5247cb567 refactor: update notes for willmsg 2024-02-26 22:24:16 +01:00
William Yang
975c7429e5 chore: clean in tests 2024-02-26 22:24:13 +01:00
Thales Macedo Garitezi
d8032f47ca fix: redact all headers from logs
Fixes https://emqx.atlassian.net/browse/EMQX-11904

Since headers are usually used for authentication and the headers used for that are very
flexible, we redact all headers from logs to avoid leaking anything.
2024-02-26 18:04:12 -03:00
Zaiming (Stone) Shi
bb6a95bae8
Merge pull request #12590 from zmstone/0226-remove-mfa-from-logs
refactor: delete mfa from log metadata
2024-02-26 21:37:57 +01:00
Ilya Averyanov
5326cc80ed
Merge pull request #12594 from savonarola/0226-add-ds-delete-interface
chore(ds): add delete callbacks
2024-02-26 20:07:21 +02:00
Thales Macedo Garitezi
9ca5684b34
Merge pull request #12591 from thalesmg/dev-cls-m-20240226
test: make `clear_screen` safer
2024-02-26 13:40:16 -03:00
Ilya Averyanov
b010d34640 chore(ds): add delete callbacks 2024-02-26 17:35:13 +03:00
Serge Tupchii
5d4c85cd84 chore: list throttled log events in the change-log 2024-02-26 15:09:38 +02:00
Serge Tupchii
5b48b06d4a fix: trace throttled log events 2024-02-26 15:09:38 +02:00
Zaiming (Stone) Shi
652e977b3c chore: for dashboad add a 'minimum' attribute for duration_s type 2024-02-26 13:51:07 +01:00
Thales Macedo Garitezi
c6195fcf50 test: make clear_screen safer
Useful when iterating on the tests in a loop, to get rid of all the garbaged printed
before the test itself beings.

Only actually does anything if the environment variable `CLEAR_SCREEN` is set to `true`
and only clears the screen the screen the first time it's encountered, so it's harmless
otherwise.
2024-02-26 09:31:06 -03:00
Thales Macedo Garitezi
f2c372d9ff feat(gcp_pubsub_bridges): make service account json a binary
Fixes https://emqx.atlassian.net/browse/EMQX-11384

Today, service_account_json config field is an embedded object (map()).

This requires user to embed a JSON object into the config file instead of embedding it as
a string.

We should support binary() type as input, but keep supporting map() for backward
compatibility.
2024-02-26 09:21:07 -03:00
Zaiming (Stone) Shi
00c2aeb1ab refactor: delete mfa from log metadata 2024-02-26 12:15:00 +01:00
Zaiming (Stone) Shi
de5e4491f7
Merge pull request #12576 from zmstone/0223-hide-bridges-root-from-docs
docs: stop generating schema doc for 'bridges' root
2024-02-24 09:08:05 +01:00
Zaiming (Stone) Shi
94a01d23c1 chore: delete stale macro
EMQX_API_VERSION is no longer in use since 5.2.0
2024-02-24 09:06:25 +01:00
Zaiming (Stone) Shi
a3e81c5039 chore: prepare for release 5.5.1-rc.2 2024-02-24 08:59:51 +01:00
ieQu1
fe4c7cd2dc
fix(ds): Apply review remarks, and hide certain fields 2024-02-23 18:07:56 +01:00
ieQu1
e126393cbf
fix(ds): Fix schema checker warnings for DS schema 2024-02-23 15:39:52 +01:00
ieQu1
c18fc6a4bb
fix(sessds): Remove deprecated configuration parameters 2024-02-23 15:08:13 +01:00
ieQu1
91ddbbcc3f
fix(sessds): Replace min- and max- batch size with batch_size 2024-02-23 15:08:13 +01:00
ieQu1
94b0ab983d
docs(ds): Add descriptions for the builtin's egress config 2024-02-23 15:08:13 +01:00
ieQu1
17ab3c6362
chore(ds_schema): Use atoms for record and field names 2024-02-23 15:08:13 +01:00
ieQu1
24337ecec7
feat(sessds): Move config schema to a separate root 2024-02-23 15:08:13 +01:00
ieQu1
8907e5afb3
chore(sessds): Remove deprecated schema 2024-02-23 15:08:11 +01:00
Zaiming (Stone) Shi
2adfefe297 docs: stop generating schema doc for 'bridges' root 2024-02-23 14:51:57 +01:00
Zaiming (Stone) Shi
5af01c041b
Merge pull request #12559 from zmstone/0221-refactor-use-atom-fileds
refactor: use atoms for root config fields
2024-02-23 14:38:19 +01:00
Thales Macedo Garitezi
b60b19a29a fix(connectors): redact authorization headers when creating/updating connectors
Fixes https://emqx.atlassian.net/browse/EMQX-11895
2024-02-23 10:17:24 -03:00
Thales Macedo Garitezi
15f919e60f
Merge pull request #12564 from thalesmg/bw-support-batch-list-resp-m-20240221
feat(resource): allow `on_batch_query{,_async}` to return a list of individual results
2024-02-23 09:37:42 -03:00
zhongwencool
cd091b4f75
Merge pull request #12572 from zhongwencool/api-config-error-log
fix(api): more detail error when don't allow update readonly key
2024-02-23 17:29:00 +08:00
zhongwencool
f2619ce17a
Merge pull request #12571 from zhongwencool/delete-repeat-ci-test
test(bridge_v1): delete repeat probe_bridge_api code
2024-02-23 17:17:39 +08:00
zhongwencool
fbf4afc3c5 fix(api): more detail error when don't allow update readonly key 2024-02-23 16:43:15 +08:00
Zaiming (Stone) Shi
46877e979b chore: update copyright-year 2024-02-23 08:21:06 +01:00
zhongwencool
d7faab4195 test(bridge_v1): delete repeat probe_bridge_api code 2024-02-23 14:43:42 +08:00
lafirest
9f52b4fba8
Merge pull request #12566 from lafirest/fix/same_api
fix(api_key): enhanced bootstrap files for REST API keys
2024-02-23 10:57:37 +08:00
zhongwencool
11d3df2775
Merge pull request #12569 from zhongwencool/fix-rabbitmq-action-crash-dropped-metrics
fix: rabbitmq action failed to increase dropped metrics
2024-02-23 09:53:55 +08:00
zhongwencool
c08522bc1e
Merge pull request #12539 from zhongwencool/rocketmq-channel-status
fix: Rocketmq channel status
2024-02-23 09:50:10 +08:00
zhongwencool
51a6ada015 fix: rabbitmq action failed to increase dropped metrics 2024-02-23 08:35:00 +08:00
Thales Macedo Garitezi
eba74c1ca8
Merge pull request #12567 from thalesmg/fix-gcp-consumer-v1-api-m-20240222
fix(gcp_pubsub_consumer,mongodb_bridge): fix v1 config transformation for gcp pubsub consumer and mongodb bridges
2024-02-22 17:33:02 -03:00
Thales Macedo Garitezi
d003f77021 feat(resource): allow on_batch_query{,_async} to return a list of individual results
Fixes https://emqx.atlassian.net/browse/EMQX-11892

This allows callers of batching resources to receive results specific to their requests,
rather than a broad success or failure for the whole batch.
2024-02-22 16:26:02 -03:00
Andrew Mayorov
54499175d5
Merge pull request #12568 from keynslug/ft/EMQX-11888/s3-redact
fix(s3): try to obtain credentials with default lhttpc
2024-02-22 18:07:04 +01:00
William Yang
2ff33f98ef chore(willmsg): add come comments 2024-02-22 17:12:19 +01:00
William Yang
e5a3574d89 fix: maybe send willmsg 2024-02-22 17:12:16 +01:00
Andrew Mayorov
a30e8818fd
fix(s3-bridge): check for unobtainable credentials in healthcheck 2024-02-22 16:56:14 +01:00
Andrew Mayorov
69c7f858af
fix(s3): try to obtain credentials with default lhttpc
Otherwise `emqx_s3_client` will try to do it later by contacting the S3
endpoint instead of the metadata server.
2024-02-22 16:56:13 +01:00
Zaiming (Stone) Shi
88b1d9ba88 refactor: use atoms for root config fields and types 2024-02-22 16:51:40 +01:00
William Yang
6311b582ec test(willmsg): session taken over before willmsg delay /session expire 2024-02-22 16:39:27 +01:00
William Yang
5397402396 test(willmsg): test will delay and session expires
will delay > session expire
will delay < session expire

timer triggered events are handled in seq, exclude the case of
(will delay == session expire)
2024-02-22 16:39:27 +01:00
William Yang
dd62280e04 fix: handle delayed willmsg, part 1 2024-02-22 16:39:27 +01:00
William Yang
b76c701b1c test(takeover): add back the delay when takeover 2024-02-22 16:39:27 +01:00
William Yang
6243cf0b0c fix(kick): defer willmsg publish when conn terminates
because kick means shutdown connection AND delete session
2024-02-22 16:39:27 +01:00
William Yang
9da4896f57 fix(mqtt): ensure publish willmsg when session expires 2024-02-22 16:39:24 +01:00
William Yang
07eec31a8a fix: willmsg not published in takeover 2024-02-22 16:35:59 +01:00
Thales Macedo Garitezi
47757a0983 fix(mongodb_bridge): remove local_topic from v1 config transformation
Fixes https://emqx.atlassian.net/browse/EMQX-11893
2024-02-22 12:23:26 -03:00
Thales Macedo Garitezi
205b97f732 fix(gcp_pubsub_consumer): fabricate topic mapping when producing v1 config
Fixes https://emqx.atlassian.net/browse/EMQX-11891
2024-02-22 10:27:28 -03:00
Andrew Mayorov
ae8f59979d
fix(utils): handle improper lists as well in redact/1 2024-02-22 13:35:11 +01:00
zhongwencool
9893cc700b
Merge pull request #12565 from zhongwencool/fix-bpapi-bad-node
fix: bpapi announce's bad node name
2024-02-22 20:18:33 +08:00
firest
f0aeaadc48 fix(api_key): enhanced bootstrap files for REST API keys 2024-02-22 18:40:24 +08:00
Kjell Winblad
7bb9d5d8f6
Merge pull request #12543 from kjellwinblad/kjell/refactor/dynamodb/EMQX-11456
feat: refactor DynamoDB bridge to connector and action
2024-02-22 09:47:57 +01:00
zhongwencool
ccf607ee2c fix: bpapi announce's bad node name 2024-02-22 14:55:11 +08:00
Thales Macedo Garitezi
985a3e3062 test: remove unused var warning 2024-02-21 18:14:46 -03:00
SergeTupchiy
8e47503f7d
Merge pull request #12560 from SergeTupchiy/EMQX-11530-log-throttling-followup-fixes
fix: disable log throttling if primary log level is debug
2024-02-21 22:02:32 +02:00
Thales Macedo Garitezi
f31e9e6a15
Merge pull request #12555 from thalesmg/ds-move-count-to-mgmt-m-20240221
refactor(mgmt): move persistent session counting function to mgmt module
2024-02-21 16:36:29 -03:00
Serge Tupchii
ceb208f1eb fix: disable log throttling if primary log level is debug 2024-02-21 21:19:15 +02:00
Andrew Mayorov
7feb444e31
Merge pull request #12557 from keynslug/fix/s3-bridge-startup
fix(s3-bridge): anticipate repeated connector start requests
2024-02-21 15:13:48 +01:00
Kjell Winblad
9b6511b3e7
docs: fix spelling mistake in error message
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-02-21 14:57:55 +01:00
Kjell Winblad
4678df2229 build: bump emqx_bridge_gcp_pubsub version
The CI check ./scripts/apps-version-check.sh requires that
emqx_bridge_gcp_pubsub's version number is bumped.
2024-02-21 14:59:03 +01:00
Kjell Winblad
6561d989d6 feat: refactor DynamoDB bridge to connector and action
Fixes:
https://emqx.atlassian.net/browse/EMQX-11456
2024-02-21 14:58:48 +01:00
Andrew Mayorov
e98fb0db48
chore: bump emqx_bridge_gcp_pubsub version to 0.2.2 2024-02-21 14:28:58 +01:00
Andrew Mayorov
6b97983303
fix(s3-bridge): anticipate repeated connector start requests
Starting disconnected connector manually implies that there's no
attempt to stop it first.
2024-02-21 14:23:29 +01:00
zhongwencool
191b435a48 chore: bump gcp bridge app version 2024-02-21 21:15:27 +08:00
zhongwencool
ed23ad906a fix: rabbitmq source metrics not working 2024-02-21 21:10:23 +08:00
Zaiming (Stone) Shi
415d27a4c9
Merge pull request #12544 from zmstone/0220-delete-non-prod-code
0220 delete non prod code in emqx_resource.erl
2024-02-21 14:08:08 +01:00
Thales Macedo Garitezi
4118fcfdc6
Merge pull request #12486 from thalesmg/gcp-consumer-source-m-20240205
feat: convert `gcp_pubsub_consumer` to connector/source
2024-02-21 10:06:26 -03:00
Thales Macedo Garitezi
25cdc2a04b chore: bump version to 5.5.1-rc.1 2024-02-21 09:57:05 -03:00
Zaiming (Stone) Shi
b14e51d7c4 docs: delete useless comments 2024-02-21 13:33:29 +01:00
Thales Macedo Garitezi
03138f8345 refactor(mgmt): move persistent session counting function to mgmt module
Follow up to https://github.com/emqx/emqx/pull/12500#discussion_r1496634087
2024-02-21 09:12:56 -03:00
Thales Macedo Garitezi
529211b9ac
Merge pull request #12500 from thalesmg/ds-list-client-api-m-20240209
feat(ds): list disconnected persistent sessions in clients API
2024-02-21 09:02:27 -03:00
Andrew Mayorov
92c00ee21a
Merge pull request #12550 from keynslug/fix/bridge-s3-resopts
fix(bridge-s3): expose connector-level `resource_opts` properly
2024-02-21 11:37:55 +01:00
Zaiming (Stone) Shi
333eb34300 test: call emqx_resource:remove_local 2024-02-21 10:53:22 +01:00
Zaiming (Stone) Shi
de93d1c0a3 chore: add bpapi.versions 2024-02-21 10:53:22 +01:00
Zaiming (Stone) Shi
9c1d5e49dd chore: fix a typo 2024-02-21 10:53:22 +01:00
Zaiming (Stone) Shi
c8f9e12de1 refactor: deprecate emqx_resource_proto_v1 with v2 2024-02-21 10:53:22 +01:00
Zaiming (Stone) Shi
06e0a7f2ed refactor: delete emqx_resource:remove api
this api is only used in tests,
changed to call the _local flavor instead
2024-02-21 10:53:22 +01:00
Zaiming (Stone) Shi
8541d2efc1 refactor: delete emqx_resource:recreate
this api is only used in tests, changed to call the _local flavor
instead
2024-02-21 10:53:22 +01:00
Zaiming (Stone) Shi
1878fded5a refactor: delete emqx_resource:create/4 and /5
the functions are only used in tests,
now the tests are rewritten to call create_local/4 and /5 instead
2024-02-21 10:53:22 +01:00
Zaiming (Stone) Shi
0cbe626aed
Merge pull request #12549 from zmstone/0221-sync-release-55
Sync `release-55` with i18n fixes to master
2024-02-21 10:52:36 +01:00
Andrew Mayorov
d8b6ecd185
fix(bridge-s3): expose connector-level resource_opts properly 2024-02-21 10:49:04 +01:00
zhongwencool
ee02079661
Merge pull request #12548 from zhongwencool/fix-rabbitmq-source-crash
fix: bridge_v1 http api crash when create rabbitmq source
2024-02-21 16:34:43 +08:00
SergeTupchiy
f7a7b7c8e0
Merge pull request #12545 from SergeTupchiy/fix-typo-tls_gc
chore(emqx_tls_certfile_gc): fix typo
2024-02-21 10:11:13 +02:00
Zaiming (Stone) Shi
da340c92a1 Merge remote-tracking branch 'origin/master' into 0221-sync-release-55 2024-02-21 09:11:12 +01:00
Zaiming (Stone) Shi
80be84c401
Merge pull request #12491 from zmstone/docs-sync-changes-for-i18n
docs: fix i18n
2024-02-21 09:10:25 +01:00
zhongwencool
2a7a662c03 fix: bridge_v1 http api crash when create rabbitmq source 2024-02-21 15:30:05 +08:00
Thales Macedo Garitezi
65cfece0a3 chore: delete 5.5.bpapi2
> This particular warning won't be seen in the real life. Also, we need to start storing
bpapi files for each minor release, since the plan to use hot upgrade has been abandoned.

> ...The original procedure for BPAPI life cycle was designed under the assumption that
we'll support hot upgrade between minor releases, so we'll only ever need to keep one
BPAPI file per major release, and rewrite it whenever a new minor version is
released. We'll need to revisit it.

https://emqxio.slack.com/archives/C04H4RHKKEY/p1706862980546309
2024-02-20 17:35:28 -03:00
Thales Macedo Garitezi
d469f4158e chore: bump app vsns 2024-02-20 16:53:57 -03:00
Thales Macedo Garitezi
74dbbf6d9d Merge branch 'release-55' into sync-r55-m-20240220 2024-02-20 16:33:34 -03:00
Serge Tupchii
dd9f96211b chore(emqx_tls_certfile_gc): fix typo 2024-02-20 21:19:36 +02:00
Thales Macedo Garitezi
3a4c7f60e2 feat(ds): list disconnected persistent sessions in clients API
Fixes https://emqx.atlassian.net/browse/EMQX-11540

Note that not all information provided by disconnected in-memory sessions is available to
disconnected persistent sessions, nor does all of them make sense.
2024-02-20 14:52:55 -03:00
Zaiming (Stone) Shi
1de9e9dd01
Merge pull request #12541 from zmstone/0220-fail-fqdn-node-name-if-dns-discovery
Fail fast if node host is not IP address but cluster strategy is `dns` with `a` or `aaaa` record type
2024-02-20 17:48:02 +01:00
Thales Macedo Garitezi
b6689d178f fix(http_bridge): redact headers
Fixes https://emqx.atlassian.net/browse/EMQX-11864

```
2024-02-20T15:51:34.744509+00:00 [debug] msg: http_connector_received, mfa: emqx_bridge_http_connector:on_query_async/4(471), tag: QUERY_ASYNC, request: {"/bah",[{<<"Authorization">>,<<"******">>},{<<"content-type">>,<<"application/json">>},{<<"authorization">>,<<"******">>},{<<"content-type">>,<<"application/json">>}],<<"******">>}, state: #{port => 18083,request => #{path => [<<>>],body => undefined,headers => [{[<<"content-type">>],[<<"application/json">>]},{[<<"Authorization">>],#Fun<emqx_secret.0.85191762>}],method => [<<"undefined">>],max_retries => 2,request_timeout => 30000},host => "localhost",connect_timeout => 15000,pool_type => random,pool_name => <<"connector:http:p1">>,base_path => "/",installed_actions => #{<<"action:http:p1:connector:http:p1">> => #{path => [<<"/bah">>],body => undefined,headers => [{[<<"authorization">>],#Fun<emqx_secret.0.85191762>},{[<<"content-type">>],[<<"application/json">>]}],method => [<<"post">>],max_retries => 2,request_timeout => 30000,render_template_func => fun emqx_bridge_http_connector:render_template/2}}}, connector: <<"connector:http:p1">>, note: the request body is redacted due to security reasons
```
2024-02-20 12:57:13 -03:00
Zaiming (Stone) Shi
dc015e7a6f fix(schema): validate cluster strategy and node name
If cluster strategy is configured as `dns`, the node name
must be IP address
2024-02-20 16:09:54 +01:00
SergeTupchiy
f72558737c
Merge pull request #12520 from SergeTupchiy/EMQX-11530-log-throttling
feat: implement log throttling
2024-02-20 15:52:46 +02:00
Kjell Winblad
86c85f3b45
Merge pull request #12512 from kjellwinblad/kjell/refactor/hstreamdb/EMQX-11458
feat: refactor HStreamDB bridge to connector and action
2024-02-20 13:30:29 +01:00
Serge Tupchii
9bd0d1ba1b feat: enable log throttling for potentially flooding log events 2024-02-20 14:20:21 +02:00
Serge Tupchii
98ba300f7c feat: implement log throttling 2024-02-20 13:23:17 +02:00
zhongwencool
9639a977a3 fix: hidden batch_time for mongodb 2024-02-20 09:42:49 +08:00
zhongwencool
c7bfaf51fd chore: typo error (templete -> template) 2024-02-20 09:41:09 +08:00
zhongwencool
2561ff94ec fix: check channel id exist when get_channel_status 2024-02-20 09:38:33 +08:00
Thales Macedo Garitezi
146d89bd89 feat: convert gcp_pubsub_consumer to connector/source
Fixes https://emqx.atlassian.net/browse/EMQX-11471
2024-02-19 17:54:26 -03:00
Zaiming (Stone) Shi
fd13a661cf
Merge pull request #12535 from zmstone/0219-refactor-delete-non-prod-code
refactor: delete non-prod code
2024-02-19 19:04:59 +01:00
Thales Macedo Garitezi
11e4a295ed fix: use connector type for constructing resource id 2024-02-19 14:42:35 -03:00
Thales Macedo Garitezi
9a32895a1a feat: convert gcp_pubsub_consumer to connector/source
Fixes https://emqx.atlassian.net/browse/EMQX-11471
2024-02-19 14:42:35 -03:00
Zaiming (Stone) Shi
ad53523e6b refactor: delete non-prod code
So far the retainer backend type is always `built_in_database`.
The slightly over-engineered pre-implementation to support
another backend is likely not going to fly as the EMQX
resource frame work is mostly for auth and data integration.
i.e. not generic enough for retained messages.
2024-02-19 14:36:12 +01:00
Zaiming (Stone) Shi
68baa4dcaf docs: fix i18n 2024-02-19 13:57:44 +01:00
Thales Macedo Garitezi
bee7fa630b chore: bump app vsns 2024-02-19 09:05:13 -03:00
Thales Macedo Garitezi
dbb6725a47 fix(config): apply config upgrade to deprecated configs
Fixes https://emqx.atlassian.net/browse/EMQX-11845

Fixes https://github.com/emqx/emqx/issues/12452
2024-02-19 09:02:43 -03:00
Kjell Winblad
def95aa22b docs(HStreamDB bridge): make pool size descriptions better 2024-02-19 11:33:37 +01:00
Zaiming (Stone) Shi
866fea7648
Merge pull request #12530 from zmstone/0217-improve-frame-too-large-logging-context
0217 improve frame too large logging context
2024-02-19 11:33:31 +01:00
zhongwencool
2ac4bde102
Merge pull request #12487 from zhongwencool/rabbitmq-source-test
feat: don't publish mqtt message in rabbitmq's source
2024-02-19 17:36:12 +08:00
Zaiming (Stone) Shi
8b0e15e402 refactor: rename 'hint' to 'cause' for MQTT fram parse failure reason
'reason' is maybe the wrapping field's name, so it was not used.
'hint' however, per our logging convention, is usually a free text
description for human to read.
change to 'cause' here because the field is always an atom and
it's use as shutdown counter in esockd_connection_sup
2024-02-19 09:38:35 +01:00
Xinyu Liu
0fef19f86f
Merge pull request #12425 from emqx/clickhouse-bridge-v2
refactor: split clickhouse bridges to actions and connectors
2024-02-19 09:20:59 +08:00
Zaiming (Stone) Shi
668d3be390 test: for better test coverage 2024-02-18 19:23:35 +01:00
Zaiming (Stone) Shi
22dabcb3ea feat(mqtt): add more logging context for frame_too_large error 2024-02-18 18:33:12 +01:00
Shawn
ce0c27e802 fix: correct the swagger example for clickhouse connectors 2024-02-18 14:49:58 +08:00
JimMoen
6aae3ba2ed
refactor(prom_test): assert fun prefix 2024-02-18 10:42:40 +08:00
Shawn
8ae0e78786 refactor: split clickhouse bridges to actions and connectors 2024-02-18 10:01:53 +08:00
Shawn
451c8ecaf5 ci: add env vars to run clickhouse tests locally 2024-02-18 10:00:47 +08:00
JimMoen
c61b558423
test(prom): start mock pushgateway 2024-02-18 03:39:18 +08:00
JimMoen
ba1d24d054
test(prom_api): '/prometheus/auth' and '/prometheus/data_integration' 2024-02-18 02:32:25 +08:00
JimMoen
7bfabd7865
refactor: meck license checker for prom cases 2024-02-18 02:32:21 +08:00
JimMoen
d45d925529
test(prom_api): /prometheus/stats in prom/json format 2024-02-18 02:14:36 +08:00
JimMoen
9e16f33c31
test: /prometheus/stats endpoint format in json 2024-02-18 02:14:34 +08:00
Zaiming (Stone) Shi
52cfeee2b1
Merge pull request #12526 from zmstone/0216-fix-flaky-tests
test(listeners): try to stop all listeners after each test
2024-02-16 15:33:04 +01:00
Zaiming (Stone) Shi
9ffda0187f
Merge pull request #12525 from zmstone/0216-docs-add-ref-to-bridge_mode
docs: add a reference to the origin of is_bridge and bridge_mode
2024-02-16 15:32:52 +01:00
ieQu1
b7f3f48d38
Merge pull request #12524 from emqx/fix/bridge-stop-snabbkaffe
test(bridge_mqtt): Stop snabbkaffe servers
2024-02-16 15:17:29 +01:00
Zaiming (Stone) Shi
2b46cbab7a
Merge pull request #12517 from zmstone/0213-hocon-multiline-string-with-indentation
0213 hocon multiline string with indentation
2024-02-16 15:12:46 +01:00
Zaiming (Stone) Shi
f78c30c9ff test: reduce false warning messages in test logs 2024-02-16 14:38:51 +01:00
Zaiming (Stone) Shi
3fa262f9ca test(listeners): try to stop all listeners after each test
- Reduce the `eaddrinuse` flakiness
- Use ?FUNCTION_NAME as listener name to avoid name clashing between
  tests
- Call emqx:remove_config for adhoc listeners created for testing
  tombestone is designed for default listeners
2024-02-16 14:37:06 +01:00
ieQu1
8cfb22f0b8
fix(ds): Retry getting the shard leader 2024-02-16 12:42:48 +01:00
Zaiming (Stone) Shi
17a0513962 docs: add a reference to the origin of is_bridge and bridge_mode 2024-02-16 12:24:57 +01:00
ieQu1
59e4db98f7
test(bridge_mqtt): Stop snabbkaffe servers 2024-02-16 12:14:19 +01:00
Zaiming (Stone) Shi
497f631b7c
Merge pull request #12522 from zmstone/0216-upgrade-kafka-protocol
chore: upgrade kafka_protocol from 4.1.3 to 4.1.5
2024-02-16 11:47:31 +01:00
Zaiming (Stone) Shi
f57f617ba3 refactor(schema): ensure roots/0 and namespace/0 for all schema modules 2024-02-16 11:35:32 +01:00
Andrew Mayorov
a945892c52
Merge pull request #12508 from keynslug/fix/explicit-tab-mgmt
feat: manage mria tables explicitly during apps startup
2024-02-16 11:11:59 +01:00
Zaiming (Stone) Shi
242df0ffe9 chore: upgrade kafka_protocol from 4.1.3 to 4.1.5 2024-02-16 10:33:53 +01:00
Zaiming (Stone) Shi
a389d78b42 chore: delete stale code 2024-02-16 10:32:13 +01:00
Zaiming (Stone) Shi
b24321a8fc feat: upgrade to hocon-0.41.0
hocon 0.41.0 added support for multiline string indentation.
now there is no need to escape (unless there is backslash)
quotes and line feeds etc.
2024-02-16 10:32:13 +01:00
ieQu1
ab2a469aff
Merge pull request #12489 from ieQu1/dev/ds-retainer
Durable sessions support retained messages
2024-02-15 21:59:32 +01:00
Andrew Mayorov
4484578c1f
Merge pull request #12507 from keynslug/fix/gw-app-no-scan
fix(gateway): avoid scanning modules of known gateway apps
2024-02-15 17:11:49 +01:00
ieQu1
5f85105801 feat(sessds): Specialize the interval queue for positive numbers 2024-02-15 16:55:05 +01:00
ieQu1
3adbe65a58 refactor(sessds): Unify logic for QoS 1 and 2 2024-02-15 11:34:13 +01:00
ieQu1
c781240459 feat(sessds): Add support for the retainer
Note: this is currently not ideal. Retained messages won't be
redelivered.
2024-02-15 11:34:13 +01:00
Kjell Winblad
5e442fcbca fix: labels and descriptions 2024-02-15 11:08:08 +01:00
Andrew Mayorov
6514659733
test(mgmt): update and simplify testsuites setup 2024-02-15 11:04:58 +01:00
ieQu1
94254ec05b feat(sessds): Correct handling of gaps in the seqno series 2024-02-15 10:49:02 +01:00
Serge Tupchii
0d0e26d6af fix: set info level for potentially flooding log events 2024-02-15 11:02:03 +02:00
Andrew Mayorov
cffb52ab28
test(plugins): update and simplify test suite 2024-02-14 19:00:04 +01:00
Kjell Winblad
4e8dfb48b7 fix: elvis problems 2024-02-14 17:54:14 +01:00
Kjell Winblad
a153d758c3 feat: refactor HStreamDB bridge to connector and action
This commit also upgrades the hstreamdb_erl driver library and change
the action/bridge to use the new hstreamdb_erl.

Much of the code for the new API is copied from:
be1a1604dd/lib-ee/emqx_rule_actions/src/emqx_backend_hstreamdb_actions.erl

Fixes:
https://emqx.atlassian.net/browse/EMQX-11458
2024-02-14 17:34:35 +01:00
Serge Tupchii
7272ef25d4 feat(emqx_auth): implement API to re-order all authenticators/authz sources
Fixes: EMQX-11770
2024-02-14 14:35:46 +02:00
Andrew Mayorov
35bf805504
test(exhook): update and simplify testsuites setup 2024-02-13 21:02:39 +01:00
Andrew Mayorov
ece1c6c6dc
test(prometheus): update and simplify testsuites setup 2024-02-13 20:36:23 +01:00
Andrew Mayorov
a64850a84b
test(sso): update and simplify testsuites setup 2024-02-13 20:36:23 +01:00
Andrew Mayorov
b15e81baf2
test(slowsub): update and simplify testsuite setup 2024-02-13 20:36:23 +01:00
Andrew Mayorov
d0e507eba4
test(trie): fix testsuite setup 2024-02-13 20:36:22 +01:00
Andrew Mayorov
841fdea124
test(conf): update and simplify some testcases 2024-02-13 20:36:22 +01:00
Andrew Mayorov
0a9cbe3080
test(license): update and simplify tests 2024-02-13 20:36:22 +01:00
Andrew Mayorov
24dfa41722
feat(cth-suite): use cheaper heuristic for schema modules 2024-02-13 20:36:22 +01:00
Andrew Mayorov
8f2a4f7b19
fix(cth-suite): use cheaper check for loaded applications 2024-02-13 20:36:22 +01:00
Andrew Mayorov
82a4e6ef68
feat(psk): manage mria tables explicitly during startup
Also switch test suite to `emqx_cth_suite` tooling.
2024-02-13 20:36:22 +01:00
Andrew Mayorov
b07df487f0
feat(modules): manage mria tables explicitly during startup 2024-02-13 20:36:22 +01:00
Andrew Mayorov
b6d77c164e
feat(emqx-mgmt): manage mria tables explicitly during startup 2024-02-13 20:36:22 +01:00
Andrew Mayorov
21780e2126
feat(emqx-conf): manage mria tables explicitly during startup 2024-02-13 20:36:21 +01:00
Andrew Mayorov
8f7b0ac498
docs(jt808): fix doc references 2024-02-13 16:27:41 +01:00
Kjell Winblad
366827390e
Merge pull request #12488 from kjellwinblad/kjell/refactor/rocketmq_bridge/EMQX-11467
feat: refactor RocketMQ bridge to connector and action
2024-02-13 16:19:21 +01:00
Andrew Mayorov
0e1d27c836
fix(gateway): avoid scanning modules of known gateway apps
Since the set of known gateways is already predefined in `emqx_gateway_utils`
it makes no sense to scan over all modules just to find out the same set of
modules. Cutting out this scanning saves few seconds per each `emqx_conf`
application startup, which is especially noticeable when running tests.
2024-02-13 15:13:36 +01:00
Andrew Mayorov
6fbb6f6846
Merge pull request #12506 from keynslug/fix/EMQX-11830/recoverable
fix(s3-bridge): handle recoverable AWS errors
2024-02-13 12:44:23 +01:00
Andrew Mayorov
eff149e676
feat(emqx-auth-mnesia): manage mria tables explicitly during startup 2024-02-12 19:17:22 +01:00
Andrew Mayorov
21a5751575
feat(emqx): manage mria tables explicitly during startup 2024-02-12 19:17:09 +01:00
Andrew Mayorov
a4eac75b25
fix(s3-bridge): handle recoverable AWS errors 2024-02-12 18:20:03 +01:00
Ilya Averyanov
edd28be090
Merge pull request #12499 from savonarola/0209-emqx-banned-extended-rules
feat(banned): allow ban by clientid/username regexps, peerhost cidrs
2024-02-12 17:12:47 +02:00
Andrew Mayorov
a9fdf9f1f9
Merge pull request #12495 from keynslug/ft/EMQX-11830/s3-bridge-simple
feat(s3): introduce S3 connector and action
2024-02-12 16:05:22 +01:00
Andrew Mayorov
2b1231b980
fix(s3-bridge): ensure bridge and connector names are identical 2024-02-12 13:46:54 +01:00
Andrew Mayorov
0edc5b5992
docs(s3): fix README example 2024-02-12 10:44:18 +01:00
Kjell Winblad
976099f5fb fix: cleanups due to problems found by @thalesmg 2024-02-12 10:16:17 +01:00
Zaiming (Stone) Shi
d4fb3e83f6 chore: upgrade to wolff 1.10.2
Wolff 1.10.2 added an enhancement which makes Kafka resource health
checks more lightweight and lowers the chance of false resource alerts.
2024-02-12 09:05:44 +01:00
Ilya Averyanov
90fd2b26d3 feat(banned): allow ban by clientid/username regexps, peerhost cidrs 2024-02-10 17:59:22 +03:00
Andrew Mayorov
0515c5528f test: add facility for starting emqx_dashboard with emqx_cth_suite 2024-02-09 14:29:04 -03:00
Andrew Mayorov
c108262771
chore(s3-bridge): use emqx_connector_schema helper for brewity 2024-02-09 16:08:33 +01:00
Serge Tupchii
8ac8d14abd chore(emqx_mongodb): bump app vsn to 0.1.6 2024-02-09 16:29:42 +02:00
Serge Tupchii
c3b7d76102 perf: un-deprecate mongodb topology pool_size and set it to 10 by default
Benchmarks proved that it effects performance:
10 ecpool workers / 10 topology pool workers outperform
100 ecpool / 1 topology worker.

Fixes: EMQX-11825
2024-02-09 16:28:53 +02:00
Serge Tupchii
e248cd6c66 perf: upgrade mongodb-erlang to v3.0.23
Fixes: EMQX-11825
2024-02-09 16:18:32 +02:00
Andrew Mayorov
f476f4343b
fix(release): add emqx_bridge_s3 to applications list 2024-02-09 14:16:32 +01:00
Andrew Mayorov
2a4e37869e
fix(dashboard): provide full context in startup errors 2024-02-09 14:16:32 +01:00
Andrew Mayorov
802c760406
feat(s3): introduce S3 connector and action
This is a trivial connector based on `emqx_s3` and simple action
that maps each incoming event into an S3 object upload. Due to
current `emqx_s3` limitation this bridge is compatible with
backends providing S3 API with path-style bucket access.
2024-02-09 14:16:32 +01:00
SergeTupchiy
755b59b7fe
Merge pull request #12494 from SergeTupchiy/EMQX-11825-mongodb-connector-perf
Improve mongodb connector performance
2024-02-09 13:12:12 +02:00
Zaiming (Stone) Shi
cbebc59115
Merge pull request #12492 from zmstone/0208-fix-return-receive-maximum-in-connack
fix(emqx_channel): return Receive-Maximum in CONNACK when no error
2024-02-09 12:08:46 +01:00
Andrew Mayorov
8f66bd9ddf
fix(s3-client): make log levels saner 2024-02-09 12:03:41 +01:00
Andrew Mayorov
4ff04ab1f3
feat(s3): separate concepts to make app reusable in bridges 2024-02-09 12:03:41 +01:00
Zaiming (Stone) Shi
a74c828e19 test: add test case to cover Receive-Maximum in CONNACK 2024-02-09 10:42:48 +01:00
Andrew Mayorov
a5266f68ec
feat(s3): switch schema to use secrets with loader support
This will make applications using `emqx_s3` follow the same
conventions as bridges and support loading secrets from files
at runtime.
2024-02-08 22:43:20 +01:00
Serge Tupchii
1d9ce709f4 perf: un-deprecate mongodb topology pool_size and set it to 10 by default
Benchmarks proved that it effects performance:
10 ecpool workers / 10 topology pool workers outperform
100 ecpool / 1 topology worker.

Fixes: EMQX-11825
2024-02-08 20:39:19 +02:00
Serge Tupchii
c9ee5addb4 perf: upgrade mongodb-erlang to v3.0.23
Fixes: EMQX-11825
2024-02-08 20:00:26 +02:00
Thales Macedo Garitezi
64367d834b test(bridge_v2): actually check schema 2024-02-08 13:39:31 -03:00
Zaiming (Stone) Shi
cf22692c74 fix(emqx_channel): return Receive-Maximum in CONNACK when no error 2024-02-08 17:05:16 +01:00
Kjell Winblad
e284a83f73 feat: refactor RocketMQ bridge to connector and action
Fixes:
https://emqx.atlassian.net/browse/EMQX-11467
2024-02-08 16:21:58 +01:00
zhongwencool
a0f8e4f328 test: rafator rabbitmq test SUITE, delete redundance code 2024-02-08 12:38:18 +08:00
zhongwencool
90ba2977fe feat: don't publish mqtt message in rabbitmq's source 2024-02-08 12:38:18 +08:00
ieQu1
811edb32a2
Merge pull request #12485 from ieQu1/dev/ds-fix-unsubscribe
fix(ds): Fix unsubscribe logic related to the replay
2024-02-07 21:38:25 +01:00
ieQu1
19c6d1127f
refactor(sessds): Extract subscription mgmt logic to separate module 2024-02-07 15:27:11 +01:00
ieQu1
3000a8f286
fix(sessds): Postpone deletion of the subscription until fully acked 2024-02-07 14:51:02 +01:00
lafirest
3f13aed3de
Merge pull request #12481 from lafirest/fix/action_info
fix(tdengine): remove redundant codes
2024-02-06 11:39:25 +08:00
zhongwencool
eace8f2fcb
Merge pull request #12423 from zhongwencool/rabbitmq-e560
feat: rabbitmq bridge v2 integration
2024-02-06 09:55:05 +08:00
ieQu1
30eb54e86b fix(sessds): Delay unsubscribe until full ack of in-flight messages 2024-02-06 02:49:07 +01:00
ieQu1
a9c55f7568 feat(sessds): Consider #srs with only QoS0 messages fully acked 2024-02-06 02:49:07 +01:00
zhongwencool
d3db53626b
Merge pull request #12483 from zmstone/0205-docs-fix-typos
Improve emqx ctl conf cluster_sync CLI and help text
2024-02-06 09:11:35 +08:00
zhongwencool
3e599e5d8e chore: add maybe feature enable on rabbitmq_bridge 2024-02-06 07:57:13 +08:00
zhongwencool
e3cb49db8e chore: add copyright header 2024-02-06 07:57:13 +08:00
zhongwencool
688701eedb chore: add desc for rabbitmq source 2024-02-06 07:57:13 +08:00
zhongwencool
b444c82a42 feat: rabbitmq bridge v2 integration 2024-02-06 07:57:12 +08:00
ieQu1
280fcd8c52
Merge pull request #12437 from ieQu1/dev/optimize_make_filter
Optimize emqx_ds_bitmask_keymapper:make_filter function.
2024-02-05 17:32:28 +01:00
ieQu1
4665837cf0 fix(ds): Apply review remarks 2024-02-05 16:52:06 +01:00
Zaiming (Stone) Shi
d7b0456bb0 feat: rename emqx ctl cluster_sync 'tnxid' to 'inspect' 2024-02-05 16:50:55 +01:00
Thales Macedo Garitezi
e5b14a38ed
Merge pull request #12472 from thalesmg/fix-bridgev2-api-multicall-m-20240202
fix(bridge_v2_api): avoid calling nodes that do not support minimum bpapi
2024-02-05 10:28:28 -03:00
ieQu1
c7888ad1f1
Merge pull request #12475 from ieQu1/dev/lean-stream
Use a more compact data structure to represent streams
2024-02-05 13:55:24 +01:00
Thales Macedo Garitezi
e1ff276d76
Merge pull request #12471 from thalesmg/fix-config-upgrade-m-20240202
fix(config): apply config upgrade to deprecated configs
2024-02-05 09:05:12 -03:00
firest
b4a6be0e7c fix(tdengine): remove redundant codes 2024-02-05 18:50:31 +08:00
lafirest
571786b6c5
Merge pull request #12480 from lafirest/fix/td_v1_schema
fix(tdengine): keep the bridge schema still compatible with v1
2024-02-05 18:17:55 +08:00
ieQu1
698ba3f271 fix(ds): Optimize emqx_ds_bitmask_keymapper:make_filter
This optimization makes idle polling faster
2024-02-05 10:54:19 +01:00
ieQu1
8edbec5929 refactor(ds): Clarify the language used in ds_bitmapper 2024-02-05 10:54:18 +01:00
Zaiming (Stone) Shi
75023f2ca3
Merge pull request #12442 from ieQu1/dev/ds-license-apache
Relicense apps/emqx_durable_storage under Apache 2.0
2024-02-05 10:16:52 +01:00
firest
4a2c5a3161 fix(tdengine): keep the bridge schema still compatible with v1 2024-02-05 13:22:17 +08:00
zhongwencool
f7b0d1bc9d chore: add duplicated key assert in swagger.json 2024-02-04 11:53:37 +08:00
JimMoen
b1150a5f88
fix(schema): bridge oracle connector schema 2024-02-04 10:53:13 +08:00
ieQu1
2e2f3cb2aa fix(sessds): Avoid stream hash collisions 2024-02-03 21:15:54 +01:00
ieQu1
2e56810ea2 refactor(ds): Use a simple improper list to represent the streams 2024-02-03 21:15:54 +01:00
Thales Macedo Garitezi
76d242df9b fix(bridge_v2_api): avoid calling nodes that do not support minimum bpapi
Fixes https://emqx.atlassian.net/browse/EMQX-11834
2024-02-02 17:36:08 -03:00
Thales Macedo Garitezi
76401a302a fix(config): apply config upgrade to deprecated configs
Fixes https://emqx.atlassian.net/browse/EMQX-11845

Fixes https://github.com/emqx/emqx/issues/12452
2024-02-02 15:12:08 -03:00
Ivan Dyachkov
ed8660cb68
Merge pull request #12458 from id/0202-sync-release-55
sync release-55
2024-02-02 17:20:38 +01:00
SergeTupchiy
81433282be
Merge pull request #12467 from SergeTupchiy/autocluster-dns-aaaaa-record-type
feat(emqx_conf): support AAAA cluster dns record type
2024-02-02 18:13:06 +02:00
Zaiming (Stone) Shi
b1a05c7b59
Merge pull request #12326 from zmstone/0111-unregister-session-with-timestamp
0111 unregister session with timestamp
2024-02-02 17:00:23 +01:00
ieQu1
e0b5d9fae7
Merge pull request #12464 from ieQu1/dev/feat-ds-cli
feat(ds): Add a CLI interface to inspect status of DS databases
2024-02-02 14:14:48 +01:00
Serge Tupchii
5e0c3d4051 feat(emqx_conf): support AAAA cluster dns record type
Ekka autocluster DNS already supports AAAA records, so it's only needed to update enum in schema.
2024-02-02 12:13:29 +02:00
Kjell Winblad
fa0baf2f38
Merge pull request #12439 from kjellwinblad/kjell/refactor/oracle_bridge/EMQX-11464
feat: refactor Oracle bridge to connector and action
2024-02-02 10:53:15 +01:00
Ivan Dyachkov
84b6d7d720 fix: remove 5.5.bpapi2 file 2024-02-02 10:38:50 +01:00
ieQu1
3d2ac97c61 feat(ds): Add a CLI interface to inspect status of DS databases 2024-02-02 10:11:01 +01:00
Zaiming (Stone) Shi
f0569d8ae8 refactor: use mria:async_dirty to group dirty ops 2024-02-02 09:26:43 +01:00
lafirest
24d8a9ab00
Merge pull request #12449 from lafirest/feat/td
feat(tdengine): improve the TDengine bridge to v2 style
2024-02-02 16:17:01 +08:00
Ivan Dyachkov
dd490de2e1 chore: emqx 5.5.0 2024-02-02 08:48:56 +01:00
Ivan Dyachkov
f1c7e716ce chore: 5.5.0-rc.2 2024-02-02 08:48:56 +01:00
JianBo He
9aad7997ca chore: compatible the contet-type sytanx 2024-02-02 08:48:56 +01:00
Ivan Dyachkov
dae3a94670 chore: 5.5.0-rc.1 2024-02-02 08:48:56 +01:00
lafirest
c724d2127e
Merge pull request #12457 from lafirest/fix/opentsdb
fix(opents): change the schema of tags to object style
2024-02-02 15:33:50 +08:00
JimMoen
17d79026cd
test: fix emqx_connector_schema eunit missing fields 2024-02-02 14:43:25 +08:00
firest
5291adf2c0 fix(opents): change the schema of tags to object style 2024-02-02 13:07:49 +08:00
JimMoen
1a372ce39a
fix(swagger): no-need call common_fields when emqx_connector_schema:api_fields/3 used 2024-02-02 10:54:49 +08:00
firest
2241461acb chore: update change & bump version 2024-02-02 07:48:44 +08:00
Kjell Winblad
af3f43ffd5
fix: use emqx_resource macro for status
Thanks for the suggestion @thalesmg

Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-02-01 17:24:25 +01:00
ieQu1
98d1094d73 feat(sessds): Expose subscriptions in the REST API 2024-02-01 16:47:57 +01:00
Kjell Winblad
016fbd2c5c chore: remove commented out code 2024-02-01 16:18:37 +01:00
firest
dfad020c49 feat(tdengine): improve the TDengine bridge to v2 style 2024-02-01 23:14:24 +08:00
Kjell Winblad
a4272c71dc feat: refactor Oracle bridge to connector and action
Fixes:
https://emqx.atlassian.net/browse/EMQX-11464
2024-02-01 16:03:05 +01:00
Ilya Averyanov
ae1ef9d1bb
Merge pull request #12428 from savonarola/0130-simplify-boot-machine-runtime-deps
chore(emqx_machine): refactor injecting runtime deps
2024-02-01 16:32:53 +02:00
William Yang
80ff1b1657
Merge pull request #12434 from qzhuyan/fix/william/kafka-dont-stacktrace-when-no-partiion-count
kafka-bridge: dont stacktrace when no partition count
2024-02-01 15:09:45 +01:00
Zaiming (Stone) Shi
3e518c1876
Merge pull request #12427 from zmstone/0130-limit-kafka-partitions
0130 limit kafka partitions
2024-02-01 14:39:52 +01:00
Ilya Averyanov
6a092aeb69 chore(emqx_machine): refactor injecting runtime deps
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-02-01 16:13:49 +03:00
William Yang
16444b7da9 fix(bridge-kafka): no stacktrace when fetch topic partition count fail 2024-02-01 14:09:15 +01:00
Ivan Dyachkov
3ad71f75e6 chore: emqx 5.5.0 2024-02-01 11:07:02 +01:00
zhongwencool
42a4bc3382
Merge pull request #12435 from zhongwencool/dont-add-disable-resource-to-connector
fix: don't add disable bridge to connector's channel
2024-02-01 10:39:47 +08:00
JianBo He
0d5911d942
Merge pull request #12422 from zhongwencool/upgrade-erlfmt-to-v1.3.0
feat: upgrade erlfmt to support maybe syntax
2024-02-01 09:34:33 +08:00
zhongwencool
f9d16340e0 fix: don't add disable bridge to connector's channel 2024-02-01 09:12:43 +08:00
ieQu1
139f5dc3bd chore(ds): Remove an obsolete document; superceded by ./README.md 2024-02-01 00:14:08 +01:00
ieQu1
b50d6bf1fd chore(ds): Change the license to Apache 2.0
Due to technicalities parts of the original code were licensed under
BSL.
In preparations for the public release of the feature, the license has
been changed to Apache 2.0
2024-02-01 00:10:48 +01:00
Thales Macedo Garitezi
f7b12470dd test(ds): fix inter-suite flakiness
Attempt to mitigate this frequent source of flakiness:

```
=CRASH REPORT==== 31-Jan-2024::17:30:15.025404 ===
  crasher:
    initial call: emqx_ds_replication_layer_egress:init/1
    pid: <0.11312.0>
    registered_name: []
    exception error: no match of right hand side value {error,
                                                        no_leader_for_shard}
      in function  emqx_ds_replication_layer_egress:init/1 (/emqx/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl, line 93)
      in call from gen_server:init_it/2 (gen_server.erl, line 980)
      in call from gen_server:init_it/6 (gen_server.erl, line 935)
    ancestors: [<0.11310.0>,<0.11304.0>,emqx_ds_builtin_databases_sup,
                  emqx_ds_builtin_sup,emqx_ds_sup,<0.11236.0>]
    message_queue_len: 0
    messages: []
    links: [<0.11310.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 376
    stack_size: 28
    reductions: 231
  neighbours:
```
2024-01-31 15:42:26 -03:00
Thales Macedo Garitezi
d51deac222 fix(ds): use configured data dir for site storage 2024-01-31 15:42:26 -03:00
Zaiming (Stone) Shi
3b6fbff9a5 test: fix compile warnings 2024-01-31 19:32:57 +01:00
Zaiming (Stone) Shi
3b42a7425b feat(kafka_producer): add partitions_limit 2024-01-31 19:26:01 +01:00
Zaiming (Stone) Shi
53c217c383 refactor: micro optimization 2024-01-31 19:25:57 +01:00
Ilya Averyanov
b3657f1892
Merge pull request #12436 from savonarola/0131-fix-stream-replay
fix(sessds): fix renew stream logic
2024-01-31 18:25:17 +02:00
Ivan Dyachkov
3f71a98e5e chore: 5.5.0-rc.2 2024-01-31 17:06:54 +01:00
lafirest
a60aeed539
Merge pull request #12398 from lafirest/feat/api-docs
feat(dashboard): expose the `swagger_support` option
2024-01-31 23:31:56 +08:00
Ilya Averyanov
fe46434687 fix(sessds): fix renew stream logic 2024-01-31 18:02:29 +03:00
Kjell Winblad
2680fae9b6
Merge pull request #12420 from kjellwinblad/kjell/fix/kinesis/refactoring/problems/thanks_HJianBo
fix: kinesis schema problems found by @HJianBo
2024-01-31 15:52:45 +01:00
zhongwencool
e9c8446d57 feat: upgrade erlfmt to support maybe syntax 2024-01-31 20:06:49 +08:00
JianBo He
b787f28d27 chore: compatible the contet-type sytanx 2024-01-31 17:49:46 +08:00
Zaiming (Stone) Shi
38047108a4 test: add test coverage for emqx_cm_registry_keeper module 2024-01-31 09:50:12 +01:00
Zaiming (Stone) Shi
209331ad33 test: fix config test 2024-01-31 09:50:12 +01:00
Zaiming (Stone) Shi
87a2368e37 feat(metrics): add cluster_session guage 2024-01-31 09:50:12 +01:00
Zaiming (Stone) Shi
509ab6f35a feat(api): add /sessions_count api to count sessions 2024-01-31 09:50:12 +01:00
Zaiming (Stone) Shi
562a2736ae feat: add broker root to hot-config schema 2024-01-31 09:50:12 +01:00
Zaiming (Stone) Shi
e9318752e6 feat: store session unregistration timestamp in emqx_cm_registry table 2024-01-31 09:50:12 +01:00
Ilya Averyanov
5bc67cb288
Merge pull request #12432 from ieQu1/ds_ignore_fully_replayed_streams
fix(sessds): Stream scheduler must ignore fully replayed streams
2024-01-31 09:51:49 +02:00
firest
13df7fa46e fix(dashboard): add test case & update change 2024-01-31 14:14:56 +08:00
ieQu1
e843d9fd91 fix(sessds): Stream scheduler must ignore fully replayed streams 2024-01-31 00:20:54 +01:00
Ivan Dyachkov
a2ba8fc645 chore: 5.5.0-rc.1 2024-01-30 18:58:00 +01:00
Kjell Winblad
274f378c6e
fix: better delete of local_topic as suggested by @thalesmg
Co-authored-by:  Thales Macedo Garitezi <thalesmg@gmail.com>

Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-01-30 17:53:32 +01:00
lafirest
c7f1e44513
Merge pull request #12424 from lafirest/fix/opentsdb
feat(opentsdb): supports more flexible tags schema
2024-01-30 22:05:30 +08:00
Zaiming (Stone) Shi
55fdc83aa5 Merge remote-tracking branch 'origin/release-55' into 0130-syn-release-55-to-master 2024-01-30 12:06:43 +01:00
JianBo He
c0674913e2
Merge pull request #12421 from HJianBo/fix-import-users
fix(user_import): ensure the last record overwrites previous one
2024-01-30 18:49:35 +08:00
firest
81f96f1a68 feat(opentsdb): supports more flexible tags schema 2024-01-30 18:43:39 +08:00
SergeTupchiy
03ff6f2ddf
Merge pull request #12410 from SergeTupchiy/EMQX-11812-subscribe-performance-degraded
perf(emqx_broker): pick broker pool worker by topic/shard pair to dis…
2024-01-30 11:48:59 +02:00
Xinyu Liu
db3f285054
Merge pull request #12417 from emqx/port-msg-expiry-interval-from44
feat: configurable server side message_expiry_interval
2024-01-30 17:10:32 +08:00
Shawn
206af96a33 ci: update testcases for message-expiry-interval 2024-01-30 15:46:11 +08:00
JianBo He
4190682a16 chore: fix the data type and example value for cluster invitation result 2024-01-30 15:29:46 +08:00
JianBo He
aedfc8e8c0 fix(user_import): ensure the last record overwrites previous one 2024-01-30 14:14:20 +08:00
JianBo He
35c4ef2ee2
Merge pull request #12407 from zmstone/0126-script-to-update-bsl-license-convert-time
0126 script to update bsl license convert time
2024-01-30 09:54:34 +08:00
JianBo He
4688b36cdf
Merge pull request #12396 from HJianBo/import_user_2
feat(import_users): support user's password in plain text
2024-01-30 09:00:00 +08:00
Serge Tupchii
5007650bd2 perf(emqx_broker): pick broker pool worker by topic/shard pair to distribute the load more evenly.
Fixes: EMQX-11812
2024-01-29 20:57:10 +02:00
Thales Macedo Garitezi
cf0465dad4
Merge pull request #12411 from thalesmg/fix-cassandra-null-r55-20240126
fix(cassandra_bridge): correctly insert null values into columns
2024-01-29 14:09:12 -03:00
Kjell Winblad
b849b08dbc fix: kinesis schema problems found by @HJianBo
This commit fixes problems in schema found by @HJianBo here:

https://github.com/emqx/emqx/pull/12376#pullrequestreview-1848306286
2024-01-29 18:08:53 +01:00
ieQu1
7ee0a6aaa4
Merge pull request #12414 from ieQu1/dev/ds-readme
doc(ds): Update README
2024-01-29 18:01:03 +01:00
Zaiming (Stone) Shi
82403167c2 chore: update BSL license change date 2024-01-29 16:47:31 +01:00
Thales Macedo Garitezi
47f61ba68a fix(cassandra_bridge): correctly insert null values into columns
Fixes https://emqx.atlassian.net/browse/EMQX-11822
2024-01-29 11:32:00 -03:00
ieQu1
cb90d3c90c
Merge pull request #12415 from ieQu1/dev/remove-ds-conf-module
fix(ds): Remove unused module
2024-01-29 12:56:04 +01:00
Shawn
9f22c2c455 ci: add some sleep and retry to emqx_persistent_session_ds_SUITE 2024-01-29 18:18:18 +08:00
JianBo He
d12335c4c6 chore: add tests 2024-01-29 18:10:42 +08:00
JianBo He
d286b7e28c
Merge pull request #12404 from thalesmg/fix-action-metric-handler-r55-20240126
fix(resource_metrics): avoid detaching handler on crashes
2024-01-29 17:51:04 +08:00
Shawn
12da3c0986 feat: configurable server side message_expiry_interval 2024-01-29 17:29:52 +08:00
Ivan Dyachkov
fa6d65887d test(retainer): fix test cases 2024-01-29 08:42:36 +01:00
Ivan Dyachkov
e4b8d79444 fix(retainer): add default delivery rate in the schema 2024-01-29 08:04:58 +01:00
JianBo He
ab99a17c99 chore(utils_stream): simplfy the csv reader implementation 2024-01-29 11:10:50 +08:00
JianBo He
2e35024df1 test: update eunit tests 2024-01-29 10:49:07 +08:00
JianBo He
9915c85b0b chore(authn_mnesia): use emqx_utils_stream module to imporve reusability 2024-01-29 10:49:07 +08:00
JianBo He
8fc8106819 test: cover password_type and new data format 2024-01-29 10:49:07 +08:00
JianBo He
829887630d test: refine existed test cases 2024-01-29 10:49:07 +08:00
JianBo He
fed512689a chore: make elvis checking happy 2024-01-29 10:49:07 +08:00
JianBo He
e65cfb836c feat(import_users): support user's password in plain text 2024-01-29 10:49:07 +08:00
ieQu1
2479e1189a fix(ds): Remove unused module 2024-01-29 00:36:13 +01:00
ieQu1
96c527541b docs(ds): Update README 2024-01-28 20:27:20 +01:00
Zaiming (Stone) Shi
dbe2baa405
Merge pull request #12408 from zmstone/sync-release-55
Sync release 55
2024-01-27 19:20:58 +00:00
ieQu1
2c6a776318 fix(sessds): Stricter checks for PacketIds 2024-01-26 17:49:33 +01:00
ieQu1
eec56b0d6b fix(sessds): Improve comments 2024-01-26 17:49:33 +01:00
ieQu1
3c451c6ae6 test(sessds): Fix unstable tests 2024-01-26 17:49:33 +01:00
ieQu1
2d23212792 refactor(sessds): #ifs -> #srs 2024-01-26 17:49:33 +01:00
ieQu1
974760d331 test(sessds): Don't trap exits in the test 2024-01-26 17:49:33 +01:00
ieQu1
ebe2339810 fix(sessds): Use mria:async_dirty instead of transaction 2024-01-26 17:49:33 +01:00
ieQu1
f5b9bd30aa fix(sessds): Apply review remarks 2024-01-26 17:49:33 +01:00
ieQu1
39857626ce test(sessds): Fix failing tests 2024-01-26 17:49:33 +01:00
ieQu1
e7b03cdc59 test(sessds): Create a property-based test for the session state 2024-01-26 17:49:33 +01:00
ieQu1
893656f092 fix(sessds): Fix session garbage collection after the refactoring 2024-01-26 17:49:33 +01:00
ieQu1
963df8f941 fix(sessds): Delete the routes when the session expires 2024-01-26 17:49:33 +01:00
ieQu1
cff6c15e13 fix(sessds): Store the QoS as the MSB of the packet ID 2024-01-26 17:49:33 +01:00
ieQu1
978a3bfef3 refactor(sessds): Simplify representation of QoS tracks 2024-01-26 17:49:33 +01:00
ieQu1
1b4f69b44d refactor(sessds): Simplify data structure of ds_state pmap datatype 2024-01-26 17:49:33 +01:00
ieQu1
4f4831fe7f refactor(sessds): Factor out stream scheduler into its own module 2024-01-26 17:49:33 +01:00
ieQu1
82ef34998a feat(sessds): Index streams by a unique subid 2024-01-26 17:49:33 +01:00
ieQu1
3fb2064ea4 test(sessds): Add property-based tests for seqno generator 2024-01-26 17:49:33 +01:00
ieQu1
8e8d3af096 fix(sessds): Refactor emqx_persistent_session_ds to use CRUD module 2024-01-26 17:49:33 +01:00
ieQu1
2d08aa88d8 refactor(ds): Create a CRUD module for the persistent session 2024-01-26 17:49:33 +01:00
Thales Macedo Garitezi
6410f5a717 fix(resource_metrics): avoid detaching handler on crashes
Fixes https://emqx.atlassian.net/browse/EMQX-11821
2024-01-26 13:05:41 -03:00
Zaiming (Stone) Shi
2a40152721 Merge remote-tracking branch 'origin/release-55' into sync-release-55 2024-01-26 16:51:13 +01:00
William Yang
933c00c7ad
Merge pull request #12392 from qzhuyan/perf/william/ws-no-utf8-validate
perf: new ws listener option to disable UTF-8 validation
2024-01-26 16:01:04 +01:00
ieQu1
0933dc818e chore(ekka): Bump version to 0.18.4
Don't escalate the errors in etcd node discovery to the node level.

Fixes: #12255
2024-01-26 14:25:16 +01:00
Serge Tupchii
a56a5e9c3c chore: add copyright 2024-01-26 11:01:53 +02:00
Serge Tupchii
2d693402c5 refactor: split greptimedb bridge to actions and connectors 2024-01-26 11:01:53 +02:00
William Yang
726302ef6a perf: new ws listener option to disable UTF-8 validation 2024-01-26 09:55:17 +01:00
JimMoen
2e37f7514a
fix(prom_stats): compatibility with previous api format in json mode 2024-01-26 16:01:32 +08:00
JimMoen
308cde53b9
fix(prom_stats): merge cl_consistented data into per nodes data 2024-01-26 11:39:20 +08:00
JianBo He
e29a80d568
Merge pull request #12388 from qzhuyan/dev/william/per-listn-conn-cnt
feat: quic per listener conn count
2024-01-26 09:01:39 +08:00
Thales Macedo Garitezi
590746ddfa
Merge pull request #12400 from thalesmg/ds-fix-data-dir-schema-m-20240125
fix(ds): don't make data dir part of the schema
2024-01-25 15:52:11 -03:00
Thales Macedo Garitezi
8e31afe6c2 fix(ds): don't make data dir part of the schema
The data directory was ending up being persisted in the database schema.  This led to
issues when opening the DB on different nodes.
2024-01-25 14:44:06 -03:00
lafirest
0b6aee0ae9
Merge pull request #12393 from lafirest/fix/iotdb
fix(iotdb): change the `data` field to optional
2024-01-25 23:00:36 +08:00
firest
c37097a150 feat(dashboard): expose the swagger_support option 2024-01-25 22:58:16 +08:00
Kjell Winblad
5bf37cbe0a
Merge pull request #12376 from kjellwinblad/kjell/kinesis
feat: refactor kinesis bridge to connector and action
2024-01-25 14:58:40 +01:00
Thales Macedo Garitezi
b5567d9d9f
Merge pull request #12389 from thalesmg/ci-peer-cover-m-20240124
ci: start/flush cover when using peer
2024-01-25 10:00:50 -03:00
Kjell Winblad
2887a05ba3 refactor: simplify emqx_bridge_kinesis (thanks to @thalesmg's tips) 2024-01-25 12:48:31 +01:00
JimMoen
4dca1ef848
fix(prom_di): compatibility with bridge_v1 2024-01-25 19:37:15 +08:00
JimMoen
7b041683bb
fix(prom_di): action enable and status 2024-01-25 19:36:40 +08:00
JimMoen
beeedd33d1
fix(prom_mria): mria_data in init_acc 2024-01-25 19:36:39 +08:00
JimMoen
58b60181d7
fix(prom_mria): move mria callback into emqx_prometheus.erl
- they will return in same api endpoint.
2024-01-25 19:36:38 +08:00
Kjell Winblad
cfad0923cf chore: use macros for connector and action status atoms 2024-01-25 11:50:01 +01:00
firest
01f374d8e5 fix(iotdb): change the data field to optional 2024-01-25 18:29:41 +08:00
zhongwencool
3b0736fc67
Merge pull request #12387 from thalesmg/sync-r55-m-20240124
sync release-55 to master
2024-01-25 17:35:41 +08:00
zhongwencool
4f8accc31b
Merge branch 'master' into sync-r55-m-20240124 2024-01-25 16:09:05 +08:00
ieQu1
aeefbe9544 fix(ds): Cache database metadata in RAM 2024-01-25 16:01:44 +08:00
Thales Macedo Garitezi
846ad42a65 fix(ds): don't use env var for data dir default value
Fixes https://github.com/emqx/emqx/pull/12380
2024-01-25 16:01:44 +08:00
Thales Macedo Garitezi
024ffe2909 test(ds): reduce flakiness 2024-01-25 16:01:44 +08:00
Thales Macedo Garitezi
9003bc5b72 perf(ds): inherit only LTS paths containing wildcards when adding a new generation
Fixes https://github.com/emqx/emqx/pull/12338#discussion_r1462139499
2024-01-25 16:01:44 +08:00
Shawn
e4c683d6f8 chore: update ecql to 0.6.0 2024-01-25 16:01:44 +08:00
Shawn
5cd9f49558 ci: update generated connector name 2024-01-25 16:01:44 +08:00
Shawn
6a21766ce3 refactor: split cassandra bridges to actions and connectors 2024-01-25 16:01:44 +08:00
Shawn
497e735bf4 ci: add env vars to run cassandra tests locally 2024-01-25 16:01:43 +08:00
zhongwencool
186e1591df chore: document api-key path api only support bearerAuth 2024-01-25 16:01:43 +08:00
firest
b44420c14f fix(opentsdb): Enhanced the type support for template data 2024-01-25 16:01:43 +08:00
firest
83a8822798 chore(opents): bump version && update changes 2024-01-25 16:01:43 +08:00
firest
dad8a32e0b feat(opents): improve the OpentsDB bridge to v2 style 2024-01-25 16:01:43 +08:00
Thales Macedo Garitezi
878c9ee8b1 fix(ds): do not count persistent session-only routed messages as dropped
Fixes https://emqx.atlassian.net/browse/EMQX-11539
2024-01-25 16:01:43 +08:00
Thales Macedo Garitezi
d323fc7c27 feat(ps): add message gc 2024-01-25 16:01:43 +08:00
Thales Macedo Garitezi
7c0d37fdb9 feat(lts): inherit previous generation's lts when possible 2024-01-25 16:01:43 +08:00
Thales Macedo Garitezi
4a0fd756ae feat(ds): add list_generations and drop_generation APIs 2024-01-25 16:01:43 +08:00
Thales Macedo Garitezi
fb39e1eacc feat(ds): allow customizing the data directory
The storage expectations for the RocksDB DB may be different from our usual data
directory.  Also, it may consume a lot more storage than other data.

This allows customizing the data directory for the builtin DS storage backend.

Note: if the cluster was already initialized using a directory path, changing that config
will have no effect.  This path is currently persisted in mnesia and used when reopening
the DB.
2024-01-25 16:01:42 +08:00
JianBo He
51d32bd620 chore: improve http connector logs format 2024-01-25 16:01:42 +08:00
Ilya Averyanov
adf22f1f10 fix(mqtt_bridge): render valid messages from incomplete rule data 2024-01-25 16:01:42 +08:00
Serge Tupchii
a8c6280a5e test(emqx_cm_SUITE): use one helper function: emqx_pool:flush_async_tasks/1 2024-01-25 16:01:42 +08:00
Serge Tupchii
f52cc93d9d perf(emqx_cm): use a dedicated pool for channel cleanup
This is to isolate channels cleanup from other async tasks (like routes cleanup),
as channels cleanup can be quite slow under high network latency conditions.

Fixes: EMQX-11743
2024-01-25 16:01:42 +08:00
JianBo He
52a7b45d97 fix: upgrade ekka to 0.18.3 to ensure the leader correct 2024-01-25 14:47:59 +08:00
zhongwencool
3bc6e546e0 fix: reboot emqx_dashboard after emqx_licencse 2024-01-25 12:29:04 +08:00
Xinyu Liu
4eb0260eaf
Merge pull request #12381 from emqx/port-sql-funcs-from-emqx4
feat: port emqx/emqx-enterprise#1892, add some SQL functions
2024-01-25 11:12:58 +08:00
JianBo He
ff0fd65f9d
Merge pull request #12373 from JimMoen/fix-prom-data-aggre
Follow up #12299
2024-01-25 10:37:47 +08:00
JimMoen
a752119d05
fix(prom_di): use bridge_v2 metrics api 2024-01-25 09:22:22 +08:00
JimMoen
61dd362db0
fix(prom_di): api crash in connecting
- https://emqx.atlassian.net/browse/EMQX-11801
2024-01-25 09:22:21 +08:00
Thales Macedo Garitezi
ae387d1812 ci: start/flush cover when using peer
`cover` is not automatically started by `peer`.  Without starting/flushing it, we don't
get coverage data from peer nodes.
2024-01-24 18:02:47 -03:00
William Yang
9fb6688801 fix(quic): Per listener conn count 2024-01-24 21:36:25 +01:00
Thales Macedo Garitezi
a19cf253ae
Merge pull request #12359 from thalesmg/fix-connector-app-deps-r55-20240119
fix(machine_boot): inject connector/bridge apps as dependencies to `emqx_connector` app
2024-01-24 15:40:24 -03:00
ieQu1
7b5f2948fe test(ds): Fix flaky testcase 2024-01-24 19:33:30 +01:00
ieQu1
305a54f646 chore(ds): Update BPAPI version 2024-01-24 19:33:30 +01:00
ieQu1
eee221f1d0 feat(ds): Make egress batching configurable 2024-01-24 19:33:30 +01:00
ieQu1
137535a821 feat(ds): Introduce egress process for the builtin backend 2024-01-24 19:33:30 +01:00
ieQu1
ec93d8cf18
Merge pull request #12385 from ieQu1/ds-meta-ram-cache
fix(ds): Cache database metadata in RAM
2024-01-24 19:32:38 +01:00
ieQu1
9b7df302e8 fix(ds): Cache database metadata in RAM 2024-01-24 18:43:48 +01:00
Kjell Winblad
fa842736d2 feat: refactor kinesis bridge to connector and action
Fixes:
https://emqx.atlassian.net/browse/EMQX-11461
2024-01-24 18:31:03 +01:00
Thales Macedo Garitezi
5547a40ceb fix(ds): don't use env var for data dir default value
Fixes https://github.com/emqx/emqx/pull/12380
2024-01-24 11:39:14 -03:00
JimMoen
ace1303de2
fix(prom_auth): authz metric name: allow and deny
- https://emqx.atlassian.net/browse/EMQX-11799
2024-01-24 22:38:49 +08:00
JimMoen
5e02709de0
fix(prom_auth): authz_enable key from enable status
- https://emqx.atlassian.net/browse/EMQX-11800
2024-01-24 22:38:48 +08:00
Shawn
4afba8eb94 feat: port emqx/emqx-enterprise#1892, add some SQL functions 2024-01-24 18:50:57 +08:00
JimMoen
6e3ce4d644
fix(prom_stats): emqx_stats metric type should be gauge 2024-01-24 14:11:17 +08:00
JimMoen
4a1d1b6aeb
fix: topics and retained metrics are cluster consistented 2024-01-24 14:11:16 +08:00
JimMoen
731efd8b49
fix(prom): cluster aggre/unaggre labels 2024-01-24 14:11:15 +08:00
JimMoen
497ec04359
fix(prom): missing callback attribute 2024-01-24 14:11:14 +08:00
JianBo He
947a08d1d2
Merge pull request #12375 from thalesmg/fix-actions-reset-node-metrics-r55-20240123
fix(actions_api): reset metrics on all nodes
2024-01-24 09:17:09 +08:00
Thales Macedo Garitezi
77329209a2
Merge pull request #12368 from thalesmg/ds-inherit-wildcards-only-lts-m-20240122
perf(ds): inherit only LTS paths containing wildcards when adding a new generation
2024-01-23 17:14:51 -03:00
Thales Macedo Garitezi
67c9e9c8fc fix(actions_api): reset metrics on all nodes
Fixes https://emqx.atlassian.net/browse/EMQX-11796
2024-01-23 10:40:02 -03:00
Thales Macedo Garitezi
eecd7e084c test(ds): reduce flakiness 2024-01-23 09:47:03 -03:00
Thales Macedo Garitezi
1be5b6aaf3 fix(mqtt_action): use overridden resource_opts
Fixes https://emqx.atlassian.net/browse/EMQX-11790
2024-01-23 09:41:28 -03:00
Thales Macedo Garitezi
1eb47d0c16 perf(ds): inherit only LTS paths containing wildcards when adding a new generation
Fixes https://github.com/emqx/emqx/pull/12338#discussion_r1462139499
2024-01-23 09:20:28 -03:00
zhongwencool
a8eefe808f
Merge pull request #12371 from emqx/es-server-schema
chore: es's base_url to server
2024-01-23 17:17:19 +08:00
zhongwencool
6a9cbb3d97 test: add es's update test 2024-01-23 15:51:09 +08:00
Xinyu Liu
aafb683ec7
Merge pull request #12330 from emqx/bridge-v2-cassandra
refactor: split cassandra bridges to actions and connectors
2024-01-23 14:45:32 +08:00
zhongwencool
94692162b5
Merge pull request #12370 from zhongwencool/api-key-auth
chore: document api-key path api only support bearerAuth
2024-01-23 14:22:35 +08:00
Shawn
218af3fef4 chore: update ecql to 0.6.0 2024-01-23 14:14:23 +08:00
lafirest
9d2a207184
Merge pull request #12353 from lafirest/feat/optsdb
feat(opents): improve the OpentsDB bridge to v2 style
2024-01-23 13:49:33 +08:00
lafirest
dc458ff0db
Merge pull request #12366 from lafirest/fix/sys
fix(sysk): fix probe testing bugs for syskeeper
2024-01-23 13:49:28 +08:00
firest
51e8c955ff fix(connector): make the connector id unique when doing probe testing 2024-01-23 13:03:12 +08:00
zhongwencool
ada2785b5d chore: es's base_url to server 2024-01-23 12:20:34 +08:00
zhongwencool
0dbaaa5d94 chore: document api-key path api only support bearerAuth 2024-01-23 10:31:43 +08:00
firest
28867d07e6 fix(opentsdb): Enhanced the type support for template data 2024-01-23 10:00:56 +08:00
Thales Macedo Garitezi
609ba7e332 fix(ds): do not count persistent session-only routed messages as dropped
Fixes https://emqx.atlassian.net/browse/EMQX-11539
2024-01-22 16:58:45 -03:00
Thales Macedo Garitezi
d122340c13
Merge pull request #12338 from thalesmg/ds-message-gc-20240115
feat(ds): add message GC
2024-01-22 16:57:26 -03:00
Thales Macedo Garitezi
7035b4c8b3 feat(ps): add message gc 2024-01-22 14:53:17 -03:00
Thales Macedo Garitezi
db710c4be5 feat(lts): inherit previous generation's lts when possible 2024-01-22 14:53:17 -03:00
Thales Macedo Garitezi
75b08b525b feat(ds): add list_generations and drop_generation APIs 2024-01-22 14:53:17 -03:00
Thales Macedo Garitezi
39090d3732
Merge pull request #12340 from thalesmg/ds-db-data-path-m-20240116
feat(ds): allow customizing the data directory
2024-01-22 13:30:59 -03:00
Thales Macedo Garitezi
3207f0ea80 fix(machine_boot): inject connector/bridge apps as dependencies to emqx_connector app
Fixes https://emqx.atlassian.net/browse/EMQX-11771

For the same reasons as we inject `emqx_bridge_*` applications as dependencies to
`emqx_bridge` when starting the node.  Already configured connectors are started when
`emqx_connector` application starts, and may lead to crashes and noise in the logs.  One
example is to configure a mongodb bridge and restart the node.
2024-01-22 11:13:34 -03:00
firest
3f7b913e88 chore(opents): bump version && update changes 2024-01-22 20:45:18 +08:00
firest
e337e1dc40 feat(opents): improve the OpentsDB bridge to v2 style 2024-01-22 20:45:10 +08:00
firest
cd90b93550 fix(sysk): fix probe testing bugs for syskeeper 2024-01-22 20:27:48 +08:00
JianBo He
2706e005ff
Merge pull request #12354 from SergeTupchiy/EMQX-11751-dashboard-import-timeout-rel55
Apply brdige post config changes in parallel
2024-01-22 17:24:55 +08:00
JimMoen
2061d75b50
docs: prometheus api mode field description 2024-01-22 10:39:56 +08:00
JimMoen
2263df0242
fix(prom_push_gw): use format mode node for prometheus push gateway 2024-01-22 10:39:55 +08:00
JimMoen
b424f8ac12
feat(prom_stats): aggregated/unaggregated prometheus data 2024-01-22 10:39:54 +08:00
JimMoen
6b064dd8eb
fix(prom_stats): missing metric key
- follow https://github.com/emqx/emqx/pull/11497
2024-01-22 10:39:53 +08:00
JimMoen
c6c1a7fc28
refactor(prom): prom_auth and prom_di as prom_cluster behaviour 2024-01-22 10:39:52 +08:00
JimMoen
b480c5b371
fix(prom): use name mode and macros to put/get format mode 2024-01-22 10:39:51 +08:00
Shawn
0e1043f80c ci: update generated connector name 2024-01-22 10:34:40 +08:00
JianBo He
f7ae9ab489
Merge pull request #12351 from HJianBo/improve-the-http-connector-logs
chore: improve http connector logs format
2024-01-22 10:27:35 +08:00
Shawn
b32c0fb0d8 refactor: split cassandra bridges to actions and connectors 2024-01-22 10:16:46 +08:00
Shawn
29d767bd62 ci: add env vars to run cassandra tests locally 2024-01-22 10:16:46 +08:00
JimMoen
8cb12c6a74
refactor: use utils func for prom_auth and prom_di 2024-01-21 00:14:54 +08:00
JimMoen
c3da792323
feat(prom_di): cluster aggregated/unaggregated metrics 2024-01-21 00:14:53 +08:00
JimMoen
9627124d67
fix(prom_di): metric emqx_rule_enable 2024-01-21 00:14:52 +08:00
JimMoen
5534d5e9de
fix(bpapi): make static_check happy 2024-01-21 00:14:51 +08:00
JimMoen
5914eb5ca5
fix(prom_cert): rm cacertfile expiry epoch 2024-01-21 00:14:50 +08:00
JimMoen
4fb1ff2f9d
fix(prom_api): format-mode example value 2024-01-21 00:14:49 +08:00
JimMoen
57f3efde63
feat(prom_auth): cluster metrics with different format-mode 2024-01-21 00:14:48 +08:00
JimMoen
fb330f77e6
feat(prometheus): api format_mode parameter support
- node(default):
  The only supported format_mode for PushGateway.
  Return the current node's metrics.
  -  Without label `node_name` with content-type: `text/plain`.
  -  Without key `node_name` with content-type: `application/json`

- nodes_aggregated:
  Return all nodes metrics Arithmetic-Sum or Logical-Sum.
  See details in callback modules.
    - Logical-Sum for metrics named with `xxx_enable` or `xxx_status`.
    - Arithmetic-Sum for other metrics.
  `node_name` field:
    -  Without label `node_name` with content-type: `text/plain`.
    -  Without key `node_name` with content-type: `application/json`

- nodes_unaggregated:
  Return all nodes metrics without aggregated.
  `node_name` field:
    -  _With_ label `node_name` with content-type: `text/plain`.
    -  _With_ key `node_name` with content-type: `application/json`
2024-01-21 00:14:47 +08:00
JimMoen
94032aafb2
fix(prom_data_integration): fix metric type 2024-01-21 00:14:46 +08:00
JimMoen
c3e9533260
fix: prometheus auth metrics fields and type
- rm rate fields
- fix few fields type to counter
2024-01-21 00:14:45 +08:00
JimMoen
a18c4d193a
refactor: abstract function call 2024-01-21 00:14:44 +08:00
JimMoen
8f7964f435
feat(prom): data integration metrics in josn format 2024-01-21 00:14:42 +08:00
JimMoen
36f009b0c2
fix(prom): connectors specific data 2024-01-21 00:14:41 +08:00
JimMoen
76d9ace582
fix: connector_count contains bridge_v1 and bridge_v2 2024-01-21 00:14:40 +08:00
JimMoen
f457def201
fix: use id uniformly as the label key for rules and actions 2024-01-21 00:14:39 +08:00
JimMoen
4b23930fce
fix(prometheus): license expiry and schema_registry only for ee 2024-01-21 00:14:38 +08:00
JimMoen
38a90bd273
fix(prom_auth): authn && authz data response by josn 2024-01-21 00:14:37 +08:00
JimMoen
0dca9905dd
test(prometheus): {Registry, Collector} tuple 2024-01-21 00:14:36 +08:00
JimMoen
7832bbc0a4
fix(prom): schema registry not in ce edition 2024-01-21 00:14:35 +08:00
JimMoen
5158395bcf
feat(prometheus): data integration prom data 2024-01-21 00:14:34 +08:00
JimMoen
bf2e4d134a
refactor(prometheus): generic api response funcs 2024-01-21 00:14:33 +08:00
JimMoen
e0feb580b6
feat(prometheus): auth metrics with text/plain 2024-01-21 00:14:32 +08:00
JimMoen
092159b071
feat(prometheus): cert expiry epoch in endpoint /prometheus/stats 2024-01-21 00:14:31 +08:00
JimMoen
558c471392
feat(prometheus): license expiry at epoch as gauge 2024-01-21 00:14:30 +08:00
JimMoen
fae0cea17f
fix(license): make dialyzer happy 2024-01-21 00:14:29 +08:00
JimMoen
81ba166b49
feat(license): expiry epoch api 2024-01-21 00:14:28 +08:00
JimMoen
89128958ed
fix(dashboard): licence quota not provided to ce edition 2024-01-21 00:14:27 +08:00
JimMoen
ecd0da9fde
feat(dashboard): /monitor_current/nodes/{node} provide node_uptime 2024-01-21 00:14:26 +08:00
JimMoen
7bc3a5090d
fix(dashboard): meck emqx_retainer in SUITE 2024-01-21 00:14:25 +08:00
JimMoen
3d6b65aced
chore: emqx_dashboard_monitor:current_rate/0 not exported anymore 2024-01-21 00:14:24 +08:00
JimMoen
a35698009c
feat(dashboard): endpoint /monitor_current provides mor fields
- `retained_msg_count`
  Current retained_msg_count on each node and should be same on all nodes.

- `license_quota`
  Only for enterprise edition, provides the max limited connections num.
2024-01-21 00:14:23 +08:00
Serge Tupchii
dc15d37dcc perf(emqx_bridge/connector): load and unload bridges/connectors in parallel
This should reduce app start/stop time, when a large number of bridges/connectors are not healthy.
2024-01-19 21:44:31 +02:00
Serge Tupchii
d3a6870097 feat(emqx_utils): add pforeach/2,3 2024-01-19 21:44:31 +02:00
Serge Tupchii
a6568dec75 perf(emqx_bridge/connector): apply post config bridge/connector changes in parallel
This can greatly improve the performance when many bridges/connectors are being changed,
e.g. when a backup file is being imported.

Fixes: EMQX-11751
2024-01-19 21:44:31 +02:00
Serge Tupchii
54457b7093 feat(emqx_utils): allow infinity timeout in pmap/3 2024-01-19 19:34:04 +02:00
Thales Macedo Garitezi
a40a13b786
Merge pull request #12357 from thalesmg/fix-bridge-bpapi-interval-r55-20240119
fix(bridge_api): explicitly state bpapi version ranges
2024-01-19 13:08:44 -03:00
Thales Macedo Garitezi
57074015c6 feat(ds): allow customizing the data directory
The storage expectations for the RocksDB DB may be different from our usual data
directory.  Also, it may consume a lot more storage than other data.

This allows customizing the data directory for the builtin DS storage backend.

Note: if the cluster was already initialized using a directory path, changing that config
will have no effect.  This path is currently persisted in mnesia and used when reopening
the DB.
2024-01-19 13:07:24 -03:00
Thales Macedo Garitezi
d22092e3da fix(mqtt_source): don't attempt local publish when legacy config is absent
Fixes https://emqx.atlassian.net/browse/EMQX-11765
2024-01-19 10:54:05 -03:00
Thales Macedo Garitezi
e369c1b971 docs(mqtt_source): fix example qos 2024-01-19 10:54:05 -03:00
Thales Macedo Garitezi
4068258c78 fix(bridge_api): explicitly state bpapi version ranges
Fixes https://emqx.atlassian.net/browse/EMQX-11767

The currently supported version for a node may not be available at the time it's probed.
2024-01-19 10:20:57 -03:00
Zaiming (Stone) Shi
7d14a13b7b Merge remote-tracking branch 'origin/release-55' 2024-01-18 14:36:30 +01:00
Thales Macedo Garitezi
e219c3eda1
Merge pull request #12166 from kjellwinblad/kjell/mqtt_conn_action_3/EMQX-11489
feat: refactor MQTT bridge to source, action, and connector
2024-01-18 09:28:14 -03:00
Zaiming (Stone) Shi
6b462a9100
Merge pull request #12349 from zmstone/0118-fix-authz-cache-excludes-type
0118 fix authz cache excludes type
2024-01-18 10:32:38 +00:00
zhongwencool
1b432eadd8
Merge pull request #12348 from emqx/elasticsearch-e550
Elasticsearch e550
2024-01-18 18:06:48 +08:00
JianBo He
5b064e399f chore: improve http connector logs format 2024-01-18 17:29:23 +08:00
zhongwencool
dae835635c fix: don't crash in http SUITE 2024-01-18 16:45:46 +08:00
zhongwencool
59797cfea7 feat: es's update support doc_as_upsert 2024-01-18 16:44:56 +08:00
zhongwencool
91368a57ff test: add es docker CI test 2024-01-18 16:44:56 +08:00
zhongwencool
7f5fe91905 fix: es's action is atom not binary 2024-01-18 16:44:56 +08:00
aiotter
7802d6e018 chore: fix typos 2024-01-18 16:35:57 +08:00
Zaiming (Stone) Shi
556092b7d0 feat(authz/prometheus): add authz cache_miss counter 2024-01-18 09:01:17 +01:00
Zaiming (Stone) Shi
85b6a3454c fix(authz): use binary() type instead of string() for cache.excludes 2024-01-18 09:01:17 +01:00
lafirest
6d6242c27a
Merge pull request #12335 from lafirest/fix/type_clause
fix(iotdb): enhances type checking when converting value
2024-01-18 11:28:40 +08:00
Ilya Averyanov
74bf4042c5 fix(mqtt_bridge): render valid messages from incomplete rule data 2024-01-17 23:13:55 +03:00
firest
b2af7fdd70 fix(sysk): fix a update issue for the Syskeeper forwarder 2024-01-17 12:51:10 +08:00
firest
238ecc68cf fix(iotdb): enhances type checking when converting value 2024-01-17 12:00:15 +08:00
Zaiming (Stone) Shi
4fa906731d
Merge pull request #12333 from zmstone/0116-add-tags-for-action-and-connectors
feat: add 'tags' field for action and connector
2024-01-16 18:56:57 +00:00
Serge Tupchii
80e82db282 test(emqx_cm_SUITE): use one helper function: emqx_pool:flush_async_tasks/1 2024-01-16 19:42:37 +02:00
Serge Tupchii
b472b56883 perf(emqx_cm): use a dedicated pool for channel cleanup
This is to isolate channels cleanup from other async tasks (like routes cleanup),
as channels cleanup can be quite slow under high network latency conditions.

Fixes: EMQX-11743
2024-01-16 19:08:02 +02:00
Zaiming (Stone) Shi
01d52e37c4
fix: resource tag type should be binary string
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-01-16 17:35:22 +01:00
Thales Macedo Garitezi
2a41cad54f fix(sources): remote irrelevant resource_opts fields for sources
Since they don't use buffer workers, they shouldn't have buffer-related sub-fields.
2024-01-16 11:29:35 -03:00
Thales Macedo Garitezi
a8f9e5676f docs(mqtt_bridge): add API examples 2024-01-16 10:42:52 -03:00
Kjell Winblad
60fab6ee45 refactor: attempt to improve function names 2024-01-16 10:42:52 -03:00
Kjell Winblad
c6cd3adccb refactor: fix type upgrade calls and move compatiblitly logic
Some bridge V1 to V2 calls were wrong but did not seem to cause issues
(perhaps due to locking test coverage). This commit also move
compatibility logic from the API module to the emqx_bridge_v2 module
where most of the compatibility logic exists.
2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
440a543a85 docs: fix typo 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
938429f351 chore(mqtt_bridge): change schema to remote remote sub-fields and hide local
`local` is still needed for backwards compatibility
2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
007af20a30 test(bridge_v2_api): adapt more tests to sources 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
fc88a1ed1e test(sources_api): add some tests to cover /sources HTTP API
Also fixes a bug with `DELETE /sources/:id`
2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
8f304d3456 test(bridge_v2_api): refactor suite to use CT matrix 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
cc24fe6e93 feat(mqtt_consumer): add support for rule engine FROM 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
28de7c89c7 feat: add /sources* HTTP APIs 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
e6ccfa5b39 fix(mqtt_bridge): fixes after rebasing onto current master
Rebased on top of 7f57ec47d5
2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
6511693b2e refactor(action_api): prepare for /sources HTTP API 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
12dc9fbeb9 test(mqtt_bridge): fix assertion 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
862283ff7c test: fix expected connector name after name convention generation changed 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
7fc069da46 test: fix another broken test 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
1ad3100cad chore: add i18n 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
3597ee7c93 fix(mqtt_action): fix resource_opts schema 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
ab1b0dda67 refactor: fix typo 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
697c8f5ee1 test: fix broken tests 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
cc34660ab9 fix(actions): use backward-compatible ids 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
14b99737e9 fix(mqtt_bridge): add missing fields to POST api spec; fix test 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
7befe898d0 fix(mqtt_bridge): fix schema 2024-01-16 10:42:52 -03:00
Thales Macedo Garitezi
139da6d720 fix: don't double-write the transformed config; return a triplet in all cases 2024-01-16 10:42:52 -03:00
Kjell Winblad
2ecc775fb7 style: remove commented out code and fix copyright headers 2024-01-16 10:42:52 -03:00
Kjell Winblad
886ed55374 fix: don't call non-existing function 2024-01-16 10:42:52 -03:00
Kjell Winblad
145ed2e632 fix: elvis style error 2024-01-16 10:42:52 -03:00
Kjell Winblad
f199a0f24a feat: refactor MQTT bridge to source, action, and connector
This commit:

* refactors the MQTT V1 bridge into connector, source and action
* Extends the compatibility layer so it works for sources
* Fixes the MQTT bridge test suite so that all test cases passes

We still need to add a HTTP API handling sources. Also, we still need to
add HTTP API example schemes and examples for the MQTT
connector/action/source.

We should also make sure that we handle the corner cases of the MQTT V1
bridge automatic upgrade downgrade in a sufficiently good way:

* An error is currently thrown when converting an MQTT V1 bridge without
  egress or ingress config.
* If there is a source and action with the same name we will currently
  throw an error in the compatibility layer.
* We will also throw an error when converting an MQTT V1 bridge with
  both ingress and egress.

The above is probably the right thing to do  but we have to make sure
that we return a reasonable error to the user when this happens.

(partly)
Fixes:
https://emqx.atlassian.net/browse/EMQX-11489
2024-01-16 10:42:52 -03:00
Zaiming (Stone) Shi
996a851cf6 chore: format username as string in log formatter 2024-01-16 14:42:10 +01:00
Zaiming (Stone) Shi
541525c50f fix(authz): fix authz result logs
prior to this fix, it's always the default authz result logged at
warning level
2024-01-16 14:40:53 +01:00
Zaiming (Stone) Shi
1fe1a62fe2 test: fix already exported function warning 2024-01-16 14:00:34 +01:00
Zaiming (Stone) Shi
ab66986f16 feat: add 'tags' field for action and connector 2024-01-16 13:57:48 +01:00
JianBo He
b6d0365027
Merge pull request #12267 from HJianBo/new-timeout-param-for-invite
feat(cluster): supports inviting nodes to join the cluster in an asynchronous manner
2024-01-16 10:11:20 +08:00
Zaiming (Stone) Shi
58a54adbb4 Merge remote-tracking branch 'origin/master' into release-55 2024-01-15 17:58:48 +01:00
lafirest
04d3e0335b
Merge pull request #12328 from lafirest/fix/iotdb
fix(iotdb): ensure the `data` field is `required`
2024-01-15 23:26:36 +08:00
firest
50ce2384d9 fix(iotdb): ensure the data field is required 2024-01-15 20:29:58 +08:00
William Yang
d2d3ddb72a test(quic): listener port updates 2024-01-15 11:42:45 +01:00
William Yang
c77837a9ea feat(quic): support reload with new binding port 2024-01-15 11:33:25 +01:00
zhongwencool
90c2a5445c
Merge pull request #12295 from zhongwencool/elasticsearch
feat: support elasticsearch bridge
2024-01-15 14:13:38 +08:00
zhongwencool
ace443fc18 refactor: refactor es's action 2024-01-15 11:31:13 +08:00
JianBo He
4c40e754f4 chore: forward the async invite to leader node 2024-01-15 11:24:05 +08:00
zhongwencool
e49d3ca50c feat: support elasticsearch bridge 2024-01-15 09:33:44 +08:00
Shawn
e3fee93d9f fix: write quoted strings to influxdb failed 2024-01-15 09:29:09 +08:00
Shawn
1668e9ac7d fix: cannot write literal numbers to influxdb 2024-01-15 09:29:09 +08:00
JianBo He
93ef6766ef chore: apply suggestions from code review
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2024-01-13 15:29:58 +08:00
JianBo He
d2991dae03 chore: make dialyzer happy 2024-01-13 15:29:58 +08:00
JianBo He
81209e0ded chore: update changes 2024-01-13 15:29:58 +08:00
JianBo He
944137ad45 chore: format error message 2024-01-13 15:29:58 +08:00
JianBo He
6ff4c560e4 feat: support invite node in async mananer 2024-01-13 15:29:58 +08:00
JianBo He
a08f56db42 feat(cluster): expose the timeout parameter to invite node 2024-01-13 15:29:58 +08:00
Thales Macedo Garitezi
4736012d0a
Merge pull request #12317 from thalesmg/fix-mongo-batch-schema-m-20240112
fix(mongodb_action): make `batch_size` hidden and fixed in the API
2024-01-12 14:51:38 -03:00
Andrew Mayorov
eca2f972bc
Merge pull request #12237 from keynslug/fix/EMQX-11483/broker
feat(routing): add route sync process pool
2024-01-12 14:44:31 +01:00
Thales Macedo Garitezi
a5e7db793b fix(mongodb_action): make batch_size hidden and fixed in the API
Fixes https://emqx.atlassian.net/browse/ED-1171

The old bridge schema already had this override, but it had not been ported to actions.
2024-01-12 10:04:32 -03:00
lafirest
1c0ca72877
Merge pull request #12316 from lafirest/fix/iotdb
fix(iotdb): move the iot_version into IoTDB connector
2024-01-12 20:56:10 +08:00
Zaiming (Stone) Shi
61417f26d4 chore: bump versions to 5.5.x 2024-01-12 13:54:35 +01:00
Andrew Mayorov
b4eac25678
chore(broker): fix code style issue
Co-Authored-By: Zaiming (Stone) Shi <zmstone@gmail.com>
2024-01-12 13:54:23 +01:00
Thales Macedo Garitezi
d1ae6f5195
Merge pull request #12306 from thalesmg/fix-password-deobfuscate-m-20240111
fix(bridge_api): correctly deobfuscate secrets during dry run
2024-01-12 09:13:20 -03:00
firest
b15106c753 fix(iotdb): robustify type verification
1. let the type is not case sensitive
2. return error if type is invalid
2024-01-12 19:22:06 +08:00
Andrew Mayorov
2f98f1faaf
fix(route-sync): ensure batch sync preserve idemopotency 2024-01-12 11:57:26 +01:00
Andrew Mayorov
e21a3497c7
chore(route-sync): turn TODO into comment 2024-01-12 11:57:26 +01:00
Andrew Mayorov
8f4758d9d4
feat(route-sync): use the smallest possible min sync delay 2024-01-12 11:57:26 +01:00
Andrew Mayorov
2ac6cddf19
fix(route-sync): handle batch sync errors gracefully 2024-01-12 11:57:25 +01:00
Andrew Mayorov
a28fc7bfa8
feat(route-sync): do not run empty batches 2024-01-12 11:57:25 +01:00
Andrew Mayorov
2dffd44985
feat(route-sync): allow to enable syncer pool only on cores/replicants
So we would able to roll it out and test more gradually.
2024-01-12 11:57:25 +01:00
Andrew Mayorov
884f784c1c
refactor(router): don't emqx_broker_helper:monitor/1 in batches
As per out current understanding, this doesn't changes much in terms of
observability, since other nodes call `ekka:monitor(membership)` anyway,
so they will observe nodedowns without explicitly writing an entry into
the `?ROUTING_NODE` table.
2024-01-12 11:57:25 +01:00
Andrew Mayorov
d6f731c4fc
fix(route-sync): use public function as mria activity target 2024-01-12 11:57:25 +01:00
Andrew Mayorov
7d037cfe91
chore(route-sync): clarify why wait indefinitely for reply 2024-01-12 11:57:24 +01:00
Andrew Mayorov
498b7a922d
chore(syncer): fix code style issues
Co-Authored-By: Zaiming (Stone) Shi <zmstone@gmail.com>
2024-01-12 11:57:24 +01:00
Andrew Mayorov
0b3f5f7c37
feat(syncer): allow to turn syncer pool on/off through config 2024-01-12 11:57:24 +01:00
Andrew Mayorov
38e13f2337
fix(syncer): start syncer pool before broker pool
As the latter depends on the former.
2024-01-12 11:57:24 +01:00
Andrew Mayorov
a1ccf85c66
test(routesync): verify that syncer preserves consistency
Under a highly concurrent load. Be aware that this testcase is not
deterministic.
2024-01-12 11:57:24 +01:00
Andrew Mayorov
5aeff20f8b
fix(routesync): ensure causal relationships are preserved
At the cost of strict FIFO semantics though.
2024-01-12 11:57:23 +01:00
Andrew Mayorov
f92b5b3f32
feat(stream): add simple stream over process message queue 2024-01-12 11:57:23 +01:00
Andrew Mayorov
54f8b47455
feat(routing): add route sync process pool
Dedicated to synchronizing local state updates with the global view
of the routing state.
2024-01-12 11:57:18 +01:00
firest
0f1aaa65bc fix(iotdb): move the iot_version into IoTDB connector 2024-01-12 17:52:31 +08:00
JianBo He
9e85b53c39
Merge pull request #12296 from HJianBo/fix-delayed-message-http-api-500
fix(delayed): fix http 500 error
2024-01-12 09:37:41 +08:00
Thales Macedo Garitezi
79a4a041e4 fix(bridge_api): correctly deobfuscate secrets during dry run
Fixes https://emqx.atlassian.net/browse/EMQX-11733
2024-01-11 15:42:14 -03:00
Ilya Averyanov
ef0850c71f
Merge pull request #12305 from savonarola/1101-fix-channel-info-update
fix(conn): avoid storing incomplete channel info
2024-01-11 18:48:53 +02:00
Ilya Averyanov
4c66a1135b
Merge pull request #12303 from savonarola/0111-fix-indexing
fix(retainer): fix topic search by index
2024-01-11 18:44:56 +02:00
Ilya Averyanov
7b0b2a0527 fix(conn): avoid storing incomplete channel info 2024-01-11 18:08:13 +03:00
Ilya Averyanov
09d524144b fix(retainer): fix topic search by index 2024-01-11 16:00:58 +03:00
Thales Macedo Garitezi
6ddbfd7b43 fix(gcp_pubsub_producer): mark connector resource opts fields as deprecated
Fixes https://emqx.atlassian.net/browse/EMQX-11703
2024-01-11 09:53:36 -03:00
lafirest
c026d3f18a
Merge pull request #12300 from lafirest/fix/clients_api
fix(api): fix `api/v5/clients ` may crash when a client authenticate with JWT
2024-01-11 19:10:54 +08:00
lafirest
f042462d53
Merge pull request #12290 from lafirest/fix/retain_match
fix(retain): add `hasnext` into the meta data for the `GET /retain/messages`
2024-01-11 18:09:29 +08:00
firest
aca9942fd4 fix(api): fix api/v5/clients may crash when a client authenticate with JWT 2024-01-11 16:53:02 +08:00
firest
f896cf2f4f fix(retain): add hasnext into the meta data for the GET /retain/messages 2024-01-11 16:14:40 +08:00
JianBo He
596607d549 chore: update bpapi.versions 2024-01-11 14:56:02 +08:00
JianBo He
c4dd083fd9 fix(delayed): delete delayed messge on all nodes 2024-01-11 14:12:30 +08:00
JianBo He
eea0ec135f fix(delayed): fix http 500 error 2024-01-11 10:36:55 +08:00
JianBo He
b16920e796
Merge pull request #12285 from HJianBo/shorten-coap-params
feat(coap): support short param names
2024-01-11 09:09:09 +08:00
SergeTupchiy
8bea0711ac
Merge pull request #12196 from SergeTupchiy/EMQX-10891-route-cleanup-optimization
EMQX-10891 route cleanup optimization
2024-01-10 17:26:24 +02:00
Thales Macedo Garitezi
8532e0cf59
Merge pull request #12292 from thalesmg/fix-syskeeper-v2-only-m-20240110
fix(syskeeper_bridge): mark syskeeper forwarder as a v2-only action
2024-01-10 11:42:24 -03:00
Serge Tupchii
965ce5d446 perf: use mria:match_delete/2 to cleanup routes
This must be much more network efficient since both Mria and Mnesia
need only to replicate one op, e.g.: `{MatchPattern, clear_table}`
instead of replicating one per each key to be deleted.
2024-01-10 16:23:58 +02:00
Serge Tupchii
febaaefc38 chore: upgrade ekka to 0.18.1 (mria 0.8.1)
Mria 0.8.1 release implements `mria:match_delete/2` function
2024-01-10 16:23:58 +02:00
Thales Macedo Garitezi
b395924569
Merge pull request #12283 from thalesmg/fix-gcp-pubsub-produ-resopts-m-20240109
fix(gcp_pubsub_producer): fix connector `resource_opts` schema
2024-01-10 11:08:39 -03:00
Zaiming (Stone) Shi
7c8a36fc06
Merge pull request #12289 from zmstone/0108-support-acl-cache-masks
0108 support acl cache excludes
2024-01-10 13:40:29 +00:00
Andrew Mayorov
8d61f4665a
Merge pull request #12291 from keynslug/fix/bump-hocon-0.44.4
fix(conf): bump to hocon 0.40.4
2024-01-10 14:32:17 +01:00
Zaiming (Stone) Shi
1d46175a7d
Merge pull request #12286 from lafirest/fix/iotdb_enum
fix(iotdb): improve the schema by gathering atoms into enums
2024-01-10 13:25:53 +00:00
Thales Macedo Garitezi
b69fc9af15 fix(gcp_pubsub_producer): fix connector resource_opts schema
Fixes https://emqx.atlassian.net/browse/EMQX-11703
2024-01-10 10:13:11 -03:00
Thales Macedo Garitezi
787f952ad8 fix(syskeeper_bridge): mark syskeeeper as a v2-only action
Fixes https://emqx.atlassian.net/browse/EMQX-11706
2024-01-10 10:09:51 -03:00
Zaiming (Stone) Shi
6fcb2fdb05 test: fix test case flakyness 2024-01-10 13:52:00 +01:00
Zaiming (Stone) Shi
9e8a67fd68 feat: support authz cache exclusion config
now one can configure a list of topic-filters to avoid
caching ACL check results

for example

authorization.cache.excludes = ["nocache/#"]

this means ACL check results for topics having 'nocache/' prefix
will not be cached
2024-01-10 13:52:00 +01:00
lafirest
a1e86454e1
Merge pull request #12287 from lafirest/fix/sysk
fix(sysk): fix errors of proxy schema
2024-01-10 20:47:47 +08:00
Andrew Mayorov
8af9512a90
test(ft-conf): verify undefined password won't become ****** 2024-01-10 13:35:49 +01:00
Andrew Mayorov
ff2fb95e5d
fix(conf): bump to hocon 0.40.4
Which includes a bugfix for undefined sensitive values obfuscation.
2024-01-10 13:09:08 +01:00
Thales Macedo Garitezi
6d3c397be8
Merge pull request #12282 from thalesmg/fix-mysql-del-action-m-20240109
fix(mysql_bridge): allow deleting bridge when sql contains undefined fields
2024-01-10 09:03:19 -03:00
William Yang
8cd99cb0c8
Merge pull request #12274 from qzhuyan/dev/william/quic-listn-conf-reload
feat: quic listener conf reload
2024-01-10 11:52:52 +01:00
firest
423607bf88 fix(sysk): fix errors of proxy schema 2024-01-10 17:53:55 +08:00
JianBo He
3038ded59e chore: make static_check happy 2024-01-10 17:53:39 +08:00
firest
b29fd486af fix(iotdb): improve the schema by gathering atoms into enums 2024-01-10 15:12:42 +08:00
JianBo He
64613c6f0c feat(coap): support short param names
see: https://github.com/emqx/emqx/issues/10089
2024-01-10 14:52:59 +08:00
zhongwencool
3706c701fe
Merge pull request #12269 from HJianBo/return-detailed-error-message
chore: improve the error message if the parameter invalid
2024-01-10 14:02:59 +08:00
JianBo He
7b211b5a23
Merge pull request #12276 from lafirest/fix/iotdb_schema
fix(iotdb): improve the schema for IotDB
2024-01-10 10:21:01 +08:00
JianBo He
6ab8e31db0 test: fix failed tests 2024-01-10 09:53:22 +08:00
JianBo He
da0307faa9 chore: update apps/emqx_management/src/emqx_mgmt_api_clients.erl
Co-authored-by: William Yang <mscame@gmail.com>
2024-01-10 09:52:27 +08:00
JianBo He
f45298d14a chore: improve the error message if the parameter invalid 2024-01-10 09:52:27 +08:00
lafirest
3d7264c9ef
Merge pull request #12278 from lafirest/fix/limit
fix(api): adjust the maximum limit of page query to 10,000
2024-01-10 09:42:46 +08:00
JianBo He
adcda51eff
Merge pull request #12277 from HJianBo/feat-delete-delayed-messages-via-topic
feat: support to delete delayed messages via topic name
2024-01-10 09:05:19 +08:00
firest
4e046eaa3d chore: bump version && update changes 2024-01-10 06:58:01 +08:00
Thales Macedo Garitezi
abd4873091 fix(mysql_bridge): allow deleting bridge when sql contains undefined fields
Fixes https://emqx.atlassian.net/browse/EMQX-11655
2024-01-09 17:25:34 -03:00
Thales Macedo Garitezi
d0588b86b5 fix(mysql_bridge): check prepare statement error messages
Fixes https://emqx.atlassian.net/browse/EMQX-11648
2024-01-09 17:25:34 -03:00
Zaiming (Stone) Shi
98e94d8619 docs: fix typo in comments 2024-01-09 19:16:55 +01:00
William Yang
2201dec2f4 feat(quic): 3s cutoff time for fast_close 2024-01-09 17:29:28 +01:00
William Yang
2483a4ecff feat(quic): support listener config reload 2024-01-09 17:29:25 +01:00
firest
d1234e3f75 fix(api): adjust the maximum limit of page query to 10,000 2024-01-09 16:43:33 +08:00
William Yang
973f40041d chore: bump 0.0.311 2024-01-09 09:35:03 +01:00
firest
2bf7ac00a0 fix(iotdb): improve the schema for IotDB 2024-01-09 16:29:10 +08:00
lafirest
cc00dd80ee
Merge pull request #12272 from lafirest/feat/retain
feat(retain): add two new endpoints for retain API
2024-01-09 15:59:42 +08:00
JianBo He
9ce96bafa3 feat: support to delete delayed messages via topic name 2024-01-09 15:06:06 +08:00
lafirest
add1368f5d
Merge pull request #12270 from lafirest/fix/syskeeper
fix(sysk): improve the seakeeper schema
2024-01-09 14:41:42 +08:00
firest
23e9ed763e chore: bump version && update changes 2024-01-09 10:20:54 +08:00
zhongwencool
7365160eeb
Merge pull request #12275 from thalesmg/sync-r54-m-20240108
sync r54 into master
2024-01-09 10:05:06 +08:00
Thales Macedo Garitezi
7763b0fd34 chore: bump app vsns 2024-01-08 17:42:56 -03:00
Thales Macedo Garitezi
756980837c Merge branch 'release-54' into sync-r54-m-20240108 2024-01-08 17:39:42 -03:00
ieQu1
caf461fdf6 fix(ds): Don't start the supervision tree when feature is not in use 2024-01-08 17:59:19 +01:00
firest
c180325e0a feat(retain): add two new endpoints for retain API 2024-01-08 19:11:43 +08:00
firest
714abaf73b chore: bump syskeeper version 2024-01-08 15:47:39 +08:00
firest
2fb1569363 fix(sysk): improve the seakeeper schema 2024-01-08 15:25:56 +08:00
zhongwencool
ec34b6f41d refactor: remove redis_type from redis action 2024-01-08 15:09:37 +08:00
zhongwencool
3404f39fd2 chore: remove redundant redis action swagger example 2024-01-08 10:45:54 +08:00
lafirest
7f57ec47d5
Merge pull request #12261 from lafirest/fix/iotdb
feat(iotdb): improve the IoTDB bridge to v2 style
2024-01-08 09:46:07 +08:00
firest
6f4b22e376 test(iotdb): add template test case for IoTDB 2024-01-06 21:32:37 +08:00
firest
d221f34ce8 chore: bump version && update changes 2024-01-06 13:34:07 +08:00
firest
e20b024b6e fix(iotdb): fix iotdb testcases 2024-01-06 13:01:43 +08:00
Andrew Mayorov
803529968e
test(s3): fix httpc ssl opts 2024-01-05 19:35:13 +01:00
Ivan Dyachkov
06117c3a33 Merge remote-tracking branch 'upstream/release-54' into 0105-sync-r54 2024-01-05 14:20:38 +01:00
Ivan Dyachkov
d04ac08d1d chore: release 5.4.1 2024-01-05 11:48:28 +01:00
firest
d16458ccd0 feat(iotdb): improve the IoTDB bridge to v2 style 2024-01-05 16:54:31 +08:00
yr
37feeed560 fix: judgment condition always failure 2024-01-05 14:23:15 +08:00
Xinyu Liu
da3937b80e
Merge pull request #12247 from emqx/split_influxdb_connector_actions
refactor: split influxdb bridges to actions and connectors
2024-01-05 14:07:35 +08:00
Shawn
2f08471303 fix: cannot found desc for influxdb_parameters 2024-01-05 11:59:13 +08:00
Shawn
9714092525 fix: fix: update more influxdb testcases 2024-01-05 11:20:27 +08:00
Andrew Mayorov
304fe84434
fix(mysql): expect password may be missing from config 2024-01-04 15:16:27 +01:00
Shawn
8ebd233a46 chore: update influxdb-erl to 1.1.12 2024-01-04 10:20:52 +08:00
zhongwencool
90404b62a4 fix: incorrectly attempt to update the field value when the previous field don't have value 2024-01-04 10:12:34 +08:00
Shawn
19e2ec9748 fix: update influxdb testcases 2024-01-03 18:39:29 +08:00
zhongwencool
00e8a36dbe fix: the API prompt garbled characters for updating the configuration 2024-01-03 15:34:45 +08:00
JianBo He
57c0a7c5ef
Merge pull request #12235 from zhongwencool/ft-config-update-api
fix: ft config update api return raw config
2024-01-03 14:07:22 +08:00
Ivan Dyachkov
d4c83cf463 chore: tag 5.4.1-alpha.1 2024-01-02 14:37:45 +01:00
Shawn
904bd0270f chore: bump app versions 2024-01-02 18:04:06 +08:00
Shawn
7c7a0b2172 refactor: split influxdb bridges to actions and connectors 2024-01-02 18:01:22 +08:00
Andrew Mayorov
a87df28dfc
Merge pull request #12243 from keynslug/fix/EMQX-11483/route-async-repl
fix(router): rely on local sync state updates to propagate routes
2023-12-29 16:31:00 +01:00
Andrew Mayorov
5c91984ad7
chore: leave comment describing need for tighter synchronization 2023-12-29 14:04:48 +01:00
Ilya Averyanov
9e0f3ce53b feat(ds): restore original add_generation/update_db_config callback semantics 2023-12-29 13:12:15 +03:00
JimMoen
5e100f52b8
style: erlfmt all rebar.config files and bin/nodetool 2023-12-29 09:08:03 +08:00
JimMoen
a3f33cc8bc
chore: fix typos in code and suite 2023-12-29 09:07:51 +08:00
JimMoen
ed10827343
docs: README spell 2023-12-29 09:07:25 +08:00
Andrew Mayorov
b9627c420f
fix(router): rely on local sync state updates to propagate routes
Instead of (potentially lagging) global table state itself. Local
state should be the only source of truth anyway. Moreover,
synchronize parts of local state update logic through the broker
pool to ensure consistency.

The problem was that `emqx_router:has_route/2` check may observe a
stale route, which deletion is not yet replicated from the core node
to the local replicant node.

For example:
1. The only one subscriber per a given topic A unsubscribes from
   a replicant node.
2. The route to A is deleted by the emqx_broker.
3. Mria makes RPC to a core node, it succeeds and returns.
4. The client resubscribes or another client subscribes to the same
   topic A.
5. emqx_broker tries to add a route again:
   `emqx_router:do_add_route(Topic)`.
6. `emqx_router` checks if the route is present.
7. The stale route is present because deletion not replicated yet,
   so no route is being added.
8. Route deletion is replicated locally but it's too late:
   we already have a local subscriber without a route.

Co-Authored-By: Serge Tupchii <serge.tupchii@protonmail.com>
2023-12-28 19:16:31 +01:00
Andrew Mayorov
331bfaa535
fix(broker): avoid reclaiming per-topic counter twice 2023-12-28 17:43:50 +01:00
Andrew Mayorov
a8cd609ff4
chore(broker): simplify subscribe code path 2023-12-28 17:43:42 +01:00
Zaiming (Stone) Shi
2b61f5290d
Merge pull request #12236 from zmstone/1227-ensure-short-mqtt-bridge-clientid
fix(bridge/mqtt): ensure short clientid
2023-12-28 16:06:09 +01:00
zhongwencool
a6acebb4aa
Merge pull request #12240 from zhongwencool/ft-api-e-541
fix: return raw config when update ft's config
2023-12-28 22:25:22 +08:00
Andrew Mayorov
18dc9b2516
fix(s3): remove emqx_bridge_http from runtime dependencies
Otherwise it's impossible to test `emqx_s3` in isolation.
2023-12-28 14:13:22 +01:00
Andrew Mayorov
1d9374125c
chore: bump emqx_s3 to 5.0.13 2023-12-28 14:12:33 +01:00
Andrew Mayorov
33ef964582
fix(s3): handle extra configured headers correctly
* Header names in config become atoms.
  (Probably because of blanket `unsafe_atom_key_map/1` in `emqx_config`)
* Header names should be normalized to lowercase.
  (Otherwise signature will be incorrect)
2023-12-28 13:55:05 +01:00
Zaiming (Stone) Shi
4669c4d552 fix(bridge/mqtt): ensure short clientid
Some mqtt brokers do not allow long client IDs.
To make it compatible with this limitation, this commit
tries to limit the number of bytes under 23 with a best-effort
attempt to derive it from the bridge name.
2023-12-28 11:53:27 +01:00
zhongwencool
1fd67564ce fix: return raw config when update ft's config 2023-12-28 14:49:36 +08:00
JianBo He
b6391cf18c fix(bridge-http): compatible conf with the error format introduced in 5.3.2 2023-12-28 11:36:48 +08:00
zhongwencool
e645fa4874 fix: ft config update api return raw config 2023-12-27 21:13:47 +08:00
Serge Tupchii
423b8b4274 fix(emqx_opentelemetry): use converter to convert legacy metrics config
HOCON converter is cleaner and safer option,
that will also work for configurations defined in emqx.conf.
Previously used `upgrade_raw_conf/1` is currently not supported in hocon_cli (used in bin/emqx).

Fixes: EMQX-11643
2023-12-27 14:15:12 +02:00
zhongwencool
711a9a06c8
Merge pull request #12221 from thalesmg/test-flaky-retry-m-20231222
test: reduce flakiness
2023-12-27 14:30:25 +08:00
zhongwencool
11feab983f fix: clean rpc_commit when force_leave cluster 2023-12-26 15:25:58 +08:00
Zaiming (Stone) Shi
e421e9ce56 Merge remote-tracking branch 'origin/release-54' into 1222-sync-e5.4.0-build.2-to-master 2023-12-23 11:22:05 +01:00
Zaiming (Stone) Shi
f36b842d94 chore: prepare for e5.4.0 retag 2023-12-23 11:18:19 +01:00
Zaiming (Stone) Shi
86a018d921 chore: bump app versions 2023-12-22 21:28:26 +01:00
Zaiming (Stone) Shi
9fdac4af0c Merge remote-tracking branch 'origin/master' into 1222-sync-e5.4.0-build.2-to-master 2023-12-22 21:27:27 +01:00
Thales Macedo Garitezi
890970345b test: reduce flakiness 2023-12-22 15:31:56 -03:00
Zaiming (Stone) Shi
ac6e4cf2cc fix: config update for ft 2023-12-22 19:01:14 +01:00
Zaiming (Stone) Shi
733196aa83 chore: prepare for e5.4.0-build.2 2023-12-22 18:59:46 +01:00
Thales Macedo Garitezi
85963d3b45 test: restore connect timeout for test case 2023-12-22 14:10:24 -03:00
Zaiming (Stone) Shi
23ded313ec chore: update app versions 2023-12-22 15:29:22 +01:00
Zaiming (Stone) Shi
891fd972bd Merge remote-tracking branch 'origin/release-54' into 1221-prepare-bpapi-on-otp-26 2023-12-22 15:19:25 +01:00
Zaiming (Stone) Shi
5b5d4a6f68 chore: bump release version to e5.4.0-build.1 2023-12-22 14:00:12 +01:00
zhongwencool
a16bce8c24 fix: deobfuscate ft's secret keys in api 2023-12-22 13:13:44 +01:00
Zaiming (Stone) Shi
20543d55ef chore: bump app vsn 2023-12-22 13:13:30 +01:00
Zaiming (Stone) Shi
322b7bb7d2 chore: bump app vsn 2023-12-22 13:00:37 +01:00
Zaiming (Stone) Shi
ecc31217fd Merge remote-tracking branch 'origin/master' into 1221-prepare-bpapi-on-otp-26 2023-12-22 12:48:06 +01:00
Zaiming (Stone) Shi
17d3037a13 chore: add 5.4.bpapi 2023-12-22 12:47:41 +01:00
ieQu1
ec0693861a fix(static_checks): Prepare for OTP26 2023-12-22 12:02:30 +01:00
zhongwencool
2d5f7e0a6d
Merge pull request #12215 from thalesmg/sync-r54-m-20231221
sync r54 to master
2023-12-22 10:24:29 +08:00
Thales Macedo Garitezi
035f5f977e Merge remote-tracking branch 'origin/release-54' into sync-r54-m-20231221 2023-12-21 17:53:05 -03:00
Zaiming (Stone) Shi
f4286f3208 test(gcp_pubsub): increase wait timeout and fix falt injection 2023-12-21 20:59:51 +01:00
Zaiming (Stone) Shi
36d2929534 chore: prepare for release version 5.4.0 2023-12-21 19:51:12 +01:00
Zaiming (Stone) Shi
a9b1b82546
Merge pull request #12210 from keynslug/feat/EMQX-11579/schema-type-doc
feat(schema): provide type-level documentation snippets
2023-12-21 18:46:22 +01:00
Zaiming (Stone) Shi
d9b3280f30
Merge pull request #12214 from zhongwencool/update-actions-connectors
fix: emqx conf ctl load failed with connectors/actions
2023-12-21 17:39:44 +01:00
Andrew Mayorov
aa3f8d6735
fix(typedoc): meld it into the field doc in the meantime 2023-12-21 17:15:54 +01:00
Andrew Mayorov
85d7518a7d
feat(schema): provide type-level documentation snippets
For stuff like `duration()`, `bytesize()` and `secret()` for now.
2023-12-21 17:15:54 +01:00
zhongwencool
37930f1d3c fix: emqx conf ctl load failed with connectors/actions 2023-12-21 22:09:53 +08:00
zhongwencool
74f1ce0955
Merge pull request #12211 from zhongwencool/redis-resource-opts
fix: redis resource_opts not working
2023-12-21 22:08:41 +08:00
Thales Macedo Garitezi
18b69809da Merge branch 'release-54' into sync-r54-m-20231221 2023-12-21 10:05:13 -03:00
Thales Macedo Garitezi
d898573acf
Merge pull request #12208 from thalesmg/test-yet-another-attempt-r54-20231220
test(gcp_pubsub_consumer): yet another attempt to stabilize tests
2023-12-21 09:55:33 -03:00
zhongwencool
5d1a412d0c fix: redis resource_opts not working 2023-12-21 18:29:49 +08:00
lafirest
de02dd21ca
Merge pull request #12157 from lafirest/feat/dsgen
feat(ds): add an API for making new generations
2023-12-21 09:30:17 +08:00
Thales Macedo Garitezi
471877598e
Merge pull request #12209 from thalesmg/fix-schema-file-typo-r54-20231220
ci: fix typo in file name
2023-12-20 17:49:07 -03:00
Thales Macedo Garitezi
aeabff41c9 ci: fix typo in file name 2023-12-20 15:39:57 -03:00
Thales Macedo Garitezi
b2c82ab052 test(gcp_pubsub_consumer): yet another attempt to stabilize tests
Hopefully, should work better after https://github.com/emqx/emqx/pull/12197
2023-12-20 13:21:13 -03:00
Thales Macedo Garitezi
a43f49f8fa chore: prepare to tag 5.4.0-rc.1 2023-12-20 12:43:08 -03:00
Thales Macedo Garitezi
2b03ae8daf
Merge pull request #12205 from thalesmg/fix-list-v2-actions-in-v1-bridges-r54-20231220
fix(bridges_v1): don't list v2-only bridges in API
2023-12-20 12:37:16 -03:00
Andrew Mayorov
f39af14524
Merge pull request #12180 from keynslug/fix/gw-dtls-opts
fix(gw): use more conservative set of DTLS options
2023-12-20 15:24:56 +01:00
firest
612be8e280 fix(ds): make dialyzer happy 2023-12-20 22:09:03 +08:00
Thales Macedo Garitezi
b61ccf3373 fix(bridges_v1): don't list v2-only bridges in API
Fixes https://emqx.atlassian.net/browse/EMQX-11614
2023-12-20 10:46:35 -03:00
Andrew Mayorov
ccb9a977d6
test(gw-authn): switch to emqx_cth_suite + simplify testsuite 2023-12-20 14:38:18 +01:00
Andrew Mayorov
76c89ad372
test(gw-authz): switch to emqx_cth_suite + simplify testsuite
Also separate DTLS related MQTT-SN test config, so that it doesn't
leak into this test suite.
2023-12-20 14:37:49 +01:00
Serge Tupchii
333709164c refactor: change mria default shard transport from 'gen_rpc' to 'distr'
Erlang distribution seems to outperform gen_rpc (unless gen_rpc clients
are scaled up, but this is not easy to achive for shard transport as it
may reorder events).
2023-12-20 15:37:00 +02:00
Andrew Mayorov
32a64cf201
fix(gw): update DTLS listener setup according to esockd 5.11.x
Also drop unnecessary UDP default options.
2023-12-20 13:59:30 +01:00
Andrew Mayorov
62bb9938e7
test(exproto): switch to emqx_cth_suite + fix listener options 2023-12-20 13:59:30 +01:00
firest
ed38ca67d5 fix(ds): Unified the names of the add_generation API 2023-12-20 18:58:03 +08:00
Andrew Mayorov
5c5ecbe3cf
fix(gw): unbreak schema + transform DTLS options properly
Thus ensuring full backward compatibility. Unsupported options
(`gc_after_handshake`, `ocsp`) are silently ignored now. Also make
sure that UDP configuration are part of DTLS option set, as expected
by `esockd`.
2023-12-20 11:46:08 +01:00
Andrew Mayorov
3ea2bbefaa
test(mqttsn): generate TLS certificates for tests on the fly 2023-12-20 11:46:07 +01:00
Andrew Mayorov
3d679f7e26
test(cth-tls): add test helpers for TLS related activities
Currently, only certificate issuing and related utilities are there.
2023-12-20 11:46:07 +01:00
Andrew Mayorov
78d3f49fe4
fix(gw): use more conservative set of DTLS options 2023-12-20 11:46:04 +01:00
Andrew Mayorov
d3b32b64e1
Merge pull request #12201 from keynslug/feat/EMQX-11527/tls-hot-update
feat(listen): support hot config update of MQTT listeners
2023-12-20 09:45:12 +01:00
zhongwencool
a4fe4ceb9e chore: add example for clients api 2023-12-20 14:53:05 +08:00
JianBo He
cc15e3a03b
Merge pull request #12199 from zhongwencool/configs-put-bridge-v1-api
fix: support bridge v1 conf hocon-format in the put configs API.
2023-12-20 09:32:32 +08:00
JianBo He
1e288de1d9
Merge pull request #12203 from JimMoen/EMQX-11610-gw-OCPP-subscription-cnt
EMQX 11610 gw ocpp subscription cnt
2023-12-20 09:31:08 +08:00
Andrew Mayorov
a6c26ce992
test(listen): stabilize flaky testcase 2023-12-19 23:36:52 +01:00
Andrew Mayorov
baf46c9aa2
test(listen): also change CA on update and verify clients notice 2023-12-19 22:48:38 +01:00
JimMoen
465f71180a
fix(gw): return HTTP 400 for unimplemented handle call 2023-12-20 03:22:54 +08:00
Zaiming (Stone) Shi
9e24d08be3
Merge pull request #12202 from zmstone/1219-upgrade-gen_rpc-3.3.1
fix: upgrade to gen_rpc 3.3.1 which does not log cast args only arity
2023-12-19 19:41:46 +01:00
JimMoen
578a231a8d
fix(gw_ocpp): subscriptions cnt 2023-12-20 02:14:30 +08:00
JimMoen
d37c5cc798
fix(gw_ocpp): frame outgoing badmatch 2023-12-20 01:27:12 +08:00
JimMoen
af7b14ed3f
refactor(gw_ocpp): default conf macro readable 2023-12-20 01:27:12 +08:00
Thales Macedo Garitezi
55f0c1bbda
Merge pull request #12197 from thalesmg/test-more-flaky-fix-r54-20231218
test(gcp_pubsub_consumer): another attempt to stabilize flaky tests
2023-12-19 13:47:23 -03:00
Thales Macedo Garitezi
5b19e6b6f4
Merge pull request #12198 from thalesmg/sync-r54-m-20231218
sync r54 to master
2023-12-19 13:22:45 -03:00
Andrew Mayorov
7e4049620d
fix(listen): ensure limiter server state consistent with updates 2023-12-19 16:06:27 +01:00
Andrew Mayorov
4796f85dff
test(listen): verify SSL options of WSS listener are hot updateable 2023-12-19 16:06:27 +01:00
Andrew Mayorov
036048b9ab
feat(listen): support hot update of WS/WSS options as well
However, currently any transport option changes will cause listener to
restart, which slightly impacts the availability of the broker.
2023-12-19 16:06:27 +01:00
Andrew Mayorov
68bbbec556
chore: bump to esockd 5.11.1
With a typespec fix.
2023-12-19 16:06:27 +01:00
Andrew Mayorov
a20ef0376b
test(exproto): fix too small buffer size for listener
These options have not been picked up by the listener before esockd
5.11.0, so it was not apparent that they are not working.
2023-12-19 16:06:27 +01:00
Andrew Mayorov
fb2d4544b6
test(listen): verify that SSL options are hot-updateable 2023-12-19 16:06:26 +01:00
Andrew Mayorov
da0f0f947e
feat(listen): support hot config update of esockd-based listeners 2023-12-19 16:06:26 +01:00
Zaiming (Stone) Shi
2b6176aa60 fix: upgrade to gen_rpc 3.3.1 which does not log cast args only arity 2023-12-19 12:46:42 +01:00
Andrew Mayorov
cafd384466
chore: upgrade to esockd 5.11.0 2023-12-19 11:15:09 +01:00
zhongwencool
1c17121d44 chore: move redis_type into paramaters in actions 2023-12-19 17:09:08 +08:00
zhongwencool
a46b415c77 fix: support bridge v1 conf hocon-format in the put configs API. 2023-12-19 16:40:45 +08:00
Zaiming (Stone) Shi
2be898ca4d refactor(auth/jwt): support raw rules from jwt acl claim 2023-12-19 08:10:38 +01:00
Thales Macedo Garitezi
5128c11542 test(gcp_pubsub_consumer): another attempt to stabilize flaky tests 2023-12-18 17:37:58 -03:00
Thales Macedo Garitezi
cf9331a95f Merge branch 'release-54' into sync-r54-m-20231218 2023-12-18 17:21:08 -03:00
Andrew Mayorov
78f7d01b1c
test(listen): simplify test suite setup / teardown 2023-12-18 20:52:57 +01:00
Thales Macedo Garitezi
f61f267ac4
Merge pull request #12195 from thalesmg/test-redis-v2-r54-20231218
test(redis_action): add minimal smoke tests
2023-12-18 16:34:03 -03:00
Thales Macedo Garitezi
bd54a0f532
Merge pull request #12193 from thalesmg/fix-mysql-batch-update-r54-20231218
fix(mysql_bridge): forbid update statements with batch operations
2023-12-18 16:33:51 -03:00
Thales Macedo Garitezi
2c61b2bfbb fix(mysql_bridge): forbid update statements with batch operations
Fixes https://emqx.atlassian.net/browse/EMQX-11605
2023-12-18 15:05:14 -03:00
Zaiming (Stone) Shi
7338e394c8 perf: upgrade to wolff 1.9.1 for better performance
Upgrade from 1.8.0:
- wollf-1.9.0 has the global stats disabled by default
- wolff-1.9.1 improved client pid lookup performance
2023-12-18 18:54:21 +01:00
Thales Macedo Garitezi
f6bb948e6f test(redis_action): add minimal smoke tests 2023-12-18 14:39:13 -03:00
Thales Macedo Garitezi
2d11aca39f
Merge pull request #12186 from thalesmg/gcp-pubsub-local-topic-action-r54-20231215
fix(gcp_pubsub_producer): mark `local_topic` as hidden in action schema
2023-12-18 11:34:19 -03:00
Thales Macedo Garitezi
3f06ebcaf7
Merge pull request #12181 from thalesmg/fix-fill-default-v1-api-return-r54-20231215
fix(bridge_v1_api): fill defaults for v2 raw configs and fix redis connector schema
2023-12-18 11:34:07 -03:00
Zaiming (Stone) Shi
ef2cf71bea chore: bump version to 5.4.0-alpha.2 2023-12-18 13:51:21 +01:00
Zaiming (Stone) Shi
a9963e043b refactor(authz): improve logging
Move authz result logging to common place.

Prior to this change, the final result is not logged when
fallback to the default authorization.no_match config value.

Aso, if the result is provided by a hook callback,
it's also not logged.

After this change, only the final result is logged.
The authz chain resutls can be traced (or logged at debug level).
2023-12-17 22:32:26 +01:00
Zaiming (Stone) Shi
35504bd323 refactor: move ntoa (ip address formatting) code to emqx_utils 2023-12-17 21:03:16 +01:00
JimMoen
725e7a17bb
docs(gw_jt808): fix and reformat data exchange guide 2023-12-18 03:21:49 +08:00
JimMoen
f38ab4bd39
fix(gw_jt808): same struct proto.auth to persistent reg/auth URL 2023-12-18 01:37:11 +08:00
JimMoen
1e9c978f36
fix(gw_jt808): split anonymous true/false conf schema 2023-12-17 21:30:49 +08:00
Thales Macedo Garitezi
c29ada4666 fix(redis_bridge): fix connector schema and action info transformations 2023-12-15 17:33:39 -03:00
Thales Macedo Garitezi
6a5fdd4b55 fix(gcp_pubsub_producer): mark local_topic as hidden in action schema 2023-12-15 15:08:51 -03:00
Stefan Strigler
a5978aa39a
Merge pull request #12184 from sstrigler/EMQX-11587-use-common-functions-to-create-api-schemata-and-examples-in-action-implementations
refactor(emqx_bridge): common api_fields fn for actions
2023-12-15 19:02:14 +01:00
Thales Macedo Garitezi
432ddc5a3b fix(bridge_v1_schema): undo changing v1 schema to avoid confusion 2023-12-15 12:55:34 -03:00
JimMoen
79e7327042
Merge pull request #12178 from JimMoen/EMQX-11496-ocpp-re-enable-failed
EMQX 11496 ocpp re enable failed
2023-12-15 23:51:32 +08:00
SergeTupchiy
c5123e8cf7
Merge pull request #12182 from SergeTupchiy/EMQX-11596-convert-otel-exporter-certs
EMQX-11596 convert otel exporter certs
2023-12-15 15:58:20 +02:00
Stefan Strigler
ec74f77ad8 refactor(emqx_bridge): common api_fields fn for actions 2023-12-15 14:23:33 +01:00
Thales Macedo Garitezi
f94b943ec2 fix(bridge_v1_api): fill defaults for v2 raw configs
Fixes https://emqx.atlassian.net/browse/EMQX-11593
2023-12-15 10:18:42 -03:00
Serge Tupchii
78cc4338e6 fix(emqx_opentelemetry): convert exporter SSL files 2023-12-15 14:59:26 +02:00
Serge Tupchii
24db03a7df chore(emqx_opentelemetry): remove unused event functionality 2023-12-15 14:58:45 +02:00
Thales Macedo Garitezi
b703b671eb
Merge pull request #12170 from thalesmg/feat-bump-actions-failed-unk-r54-20231214
feat(rule_engine): also bump `unknown` counter for unrecoverable action errors
2023-12-15 09:40:03 -03:00
Zaiming (Stone) Shi
fc2ae4e5fa docs: use "invalid" and "bad" 2023-12-15 12:49:27 +01:00
JimMoen
fd6ee8f848
test: enable-disable gw ocpp 2023-12-15 18:01:06 +08:00
Zaiming (Stone) Shi
cf33b3b4b1 fix(emqx.app.src): add dependen apps in app.src 2023-12-15 10:40:33 +01:00
firest
31060733a5 feat(ds): add an API for making new generations 2023-12-15 16:08:52 +08:00
JimMoen
bce35b2dd8
Merge pull request #12163 from JimMoen/EMQX-11525-gw-jt808-cannot-list-client
fix(gw_jt808): cannot list client
2023-12-15 14:57:18 +08:00
JianBo He
f9f72d75fc
Merge pull request #12165 from JimMoen/EMQX-11498-ocpp-subscriptions
fix(gw_ocpp): handle subscriptions call
2023-12-15 14:44:08 +08:00
JianBo He
71a237aa12
Merge pull request #12176 from HJianBo/mqtt-sn-ack-disconnect
fix(mqttsn): ack the DISCONNECT packet even if it is not connected
2023-12-15 14:43:02 +08:00
zhongwencool
caf1f33bdf
Merge pull request #12175 from HJianBo/fix-ocpp-listener-bug
fix(ocpp): fix 500 return for `PUT ...gateway/ocpp/<listener_id>`
2023-12-15 14:12:00 +08:00
JianBo He
709c747b66 test: upgrade failed tests 2023-12-15 12:40:29 +08:00
zhongwencool
4cab42bbbe
Merge pull request #12173 from zhongwencool/authz-headers
feat: don't merge authz default headers if user already setting
2023-12-15 11:36:38 +08:00
zhongwencool
6e6b4dd44a
Merge pull request #12174 from zhongwencool/gateway-ocpp-swagger-example
fix: ocpp swagger example broken
2023-12-15 11:36:27 +08:00
JianBo He
8339bccc69 fix(mqttsn): ack the DISCONNECT packet even if it is not connected
MQTT-SN v1.2 spec:
"As with MQTT, the DISCONNECT message is sent by a client to indicate that it
 wants to close the connection. The gateway will acknowledge the receipt of that
 message by returning a DISCONNECT to the client."
2023-12-15 11:35:46 +08:00
Xinyu Liu
05f993a067
Merge pull request #12158 from emqx/update-redis-cluster-vsn
chore: update eredis_cluster to 0.8.3
2023-12-15 11:34:00 +08:00
JianBo He
f0fa48ad28 fix(ocpp): fix 500 return for PUT ...gateway/ocpp/<listener_id> 2023-12-15 11:06:14 +08:00
zhongwencool
f559ecbdf9 fix: ocpp swagger example broken 2023-12-15 10:42:30 +08:00
zhongwencool
7286f773ba feat: don't merge authz default headers if user already setting 2023-12-15 09:45:42 +08:00
JimMoen
944bb596c0
fix(gw_jt808): make static check happy 2023-12-15 09:25:03 +08:00
JimMoen
d1adcd464e
fix(gw_jt808): client keepalive timer 2023-12-15 09:25:03 +08:00
JimMoen
0b1838a5ff
fix(gw_jt808): subscriptions and channel stats 2023-12-15 09:25:03 +08:00
JimMoen
ec83ec7730
fix(gw_jt808): insert channel info 2023-12-15 09:25:03 +08:00
JimMoen
d4e964f633
refactor: move func section 2023-12-15 09:25:02 +08:00
JimMoen
01c6022104
fix(jt808): open jt808 conn session 2023-12-15 09:25:02 +08:00
zhongwencool
d9e179b364 fix: use microsecond precision as the primary key for audit logs to prevent duplication 2023-12-15 09:07:04 +08:00
Zaiming (Stone) Shi
d29d3f36f1 fix(exproto): ssl options for grpc client 2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
406a2d7a52 test: fix shared sub test case flaky 2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
8d90f6f067 test: trap exit to assert gen_server:start_link returns error tuple
otherwise it will raise an exit exception
2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
8a425d09bc test(s3): fix httpc ssl opts 2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
bfc02d1ccf test(pulsar): fix pulsar consumer ssl opts 2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
89a61bc3bc chore: pin erlcloud version 3.7.0.3
- upgraded from 3.7.0-emqx-2
- 3.7.0.3 is a dependency upgrade:
  - lhttpc upgraded from 1.6.2 to 1.6.3
  - lhttpc 1.6.3 fixed otp 26 compatibility
2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
aaf487062a fix(exproto): fix ssl client options 2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
a6357d92f8 fix(http): force enable ssl when https 2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
fa85c3061b test: fix emqx_ocsp_cache_SUITE error message match pattern 2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
19051f639b test: ensure verify_none to ssl client opts as default value 2023-12-14 22:21:31 +01:00
Zaiming (Stone) Shi
13541690cc test(influx): fix verify_peer test case
On OTP 26, cacerts or cacertfile must be provided when verify_peer
2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
778662de5d test(crl_cache): fix ssl options 2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
dca72e0052 test: fix mtls options 2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
06bfd878a0 test: fix compile warnings in test suites 2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
bd209678b3 chore(rabbitmq): upgrade rabbitmq dependency to v3.11.13.2
this tag has otp 26 compatibility fixed
2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
9487635957 test(mqtt-bridge): do not assert map key order
starting from otp 26, small maps (less than 32 fields), the atom
key orders are no longer deterministic
2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
077412fccd test(jwt): fix flaky test case
Ensure supervisor process is stopped properly after each test
2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
516b1dc346 chore(postgres): upgrade lib epgsql from 4.7.0.1 to 4.7.1.1
epgsql 4.7.1.1 has otp 26 compatibility fixed
2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
a0833282f2 fix(dialyzer): fix dialyzer warnings for emqx app standalone 2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
25d17ae68d test(ft/s3_uploader): wrong test case was put to wrong group 2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
b7531839cd fix(dialyzer): delete stale code 2023-12-14 22:20:01 +01:00
Zaiming (Stone) Shi
bcae3d67c7
Merge pull request #12169 from ieQu1/dev/bpapi-separate-for-otp26
fix(static_checks): Prepare for OTP26
2023-12-14 20:32:45 +01:00
JimMoen
da537a794b
fix(gw_ocpp): handle subscriptions call 2023-12-15 01:57:09 +08:00
Thales Macedo Garitezi
57a8f2351d feat(rule_engine): also bump unknown counter for unrecoverable action errors
Fixes https://emqx.atlassian.net/browse/EMQX-11494
2023-12-14 13:42:28 -03:00
Thales Macedo Garitezi
d5d05a1701
Merge pull request #12162 from thalesmg/fix-lookup-timeout-r54-20231213
fix(connector_api): avoid calling resource process to get channels
2023-12-14 13:36:26 -03:00
Zaiming (Stone) Shi
c22a3686ae fix(emqx_durable_storage): fix type specs 2023-12-14 17:35:32 +01:00
Thales Macedo Garitezi
a5d848515b fix: project sub-fields in action/connector resource_opts for some bridges
Fixes https://emqx.atlassian.net/browse/EMQX-11589
2023-12-14 12:09:32 -03:00
Zaiming (Stone) Shi
c1f2287b86 Merge remote-tracking branch 'origin/release-54' 2023-12-14 15:26:49 +01:00
ieQu1
02e2231734 fix(static_checks): Prepare for OTP26 2023-12-14 15:22:09 +01:00
Thales Macedo Garitezi
dbc8141930
Merge pull request #12125 from thalesmg/ds-cache-m-20231206
chore(ds): return DS key from `next` and add `update_iterator` callback
2023-12-14 10:23:25 -03:00
Thales Macedo Garitezi
a7fe5da8d6 fix(connector_api): avoid calling resource process to get channels
Fixes https://emqx.atlassian.net/browse/EMQX-11586
2023-12-14 10:22:46 -03:00
Thales Macedo Garitezi
ecd5c288e5
Merge pull request #12164 from zhongwencool/flaky-audit-max-size-test
test: audit max_size flaky test
2023-12-14 10:21:28 -03:00
lafirest
e9ee2a669f
Merge pull request #12160 from lafirest/fix/sso_ldap
fix(sso): Correctly handle wrapped passwords when updating
2023-12-14 11:56:24 +08:00
firest
f1bde41bf6 fix(sso): Correctly handle wrapped passwords when updating 2023-12-14 10:07:04 +08:00
zhongwencool
b35765708d test: audit max_size flaky test 2023-12-14 09:48:17 +08:00
firest
d278d3afb5 feat(ds): implemented the replayer scheduler 2023-12-13 23:52:02 +08:00
zhongwencool
b46438efc9
Merge pull request #12161 from zhongwencool/config-update-error-text
fix: ensure config update error text is readable
2023-12-13 21:03:25 +08:00
Thales Macedo Garitezi
edec431a6c
Merge pull request #12144 from thalesmg/fix-conn-schema-query-mode-r54-20231211
fix({action,connector}_schema): fix `resource_opts` subfields for connectors and actions, and remove redundant subfields from actions, use query mode from actions
2023-12-13 09:19:46 -03:00
zhongwencool
d8796ea985 test: flaky audit log test 2023-12-13 18:01:47 +08:00
zhongwencool
96d21d4dbe fix: ensure config update error text is readable 2023-12-13 17:07:28 +08:00
zhongwencool
60d9c1113d fix: audit create_at/duration_ms filter not working 2023-12-13 12:16:52 +08:00
zhongwencool
af3bbbbd44
Merge pull request #12153 from zhongwencool/http-headers-allow-delete
feat: don't merge default headers if user already setting
2023-12-13 09:58:22 +08:00
Shawn
61538d96b6 chore: update eredis_cluster to 0.8.3 2023-12-13 09:39:15 +08:00
zhongwencool
ccb947a0a1
Merge pull request #12152 from zhongwencool/license-watermark
fix: license watermark percent support float
2023-12-13 09:14:06 +08:00
zhongwencool
8e34d185ac
Merge pull request #12149 from zhongwencool/audit-boots-log
fix: incorrect behavior in audit logs during stop and start of EMQX
2023-12-13 09:13:51 +08:00
zhongwencool
a1cd1f7c63
Merge pull request #12148 from zhongwencool/bridge-http-action-without-path
fix: don't require path in http action(fill default path)
2023-12-13 09:13:34 +08:00
zhongwencool
3c43db2828
Merge pull request #12147 from zhongwencool/bridge-description
fix:add descriptions fields to bridge_v1
2023-12-13 09:13:17 +08:00
zhongwencool
c73b371a7a feat: don't merge default headers if user already setting one 2023-12-13 08:47:55 +08:00
Thales Macedo Garitezi
7f0cbcc323
Merge pull request #12155 from thalesmg/fix-conn-inconsistent-status-r54-20231212
fix(connector_api): return status reason when status is inconsistent
2023-12-12 17:23:22 -03:00
Thales Macedo Garitezi
4a71aa58ce fix(connector_api): return status reason when status is inconsistent
Fixes https://emqx.atlassian.net/browse/EMQX-11581
2023-12-12 11:29:34 -03:00
Thales Macedo Garitezi
6e49cce055 feat(connector_api): list disabled channels too
Fixes https://emqx.atlassian.net/browse/EMQX-11583
2023-12-12 11:20:33 -03:00
Thales Macedo Garitezi
d7b96af893
Merge pull request #12145 from thalesmg/fix-postgres-res-opts-schema-r54-20231211
fix(postgres_schema): fix usages of `resource_opts` in connector and action schemas
2023-12-12 11:02:55 -03:00
Serge Tupchii
3c3452c1dd fix(emqx_otel_schema): add enable field to SSL opts 2023-12-12 13:07:08 +02:00
Serge Tupchii
36b12a01c9 chore: fix typos in comments 2023-12-12 13:06:20 +02:00
Serge Tupchii
f529bda8b7 fix(opentelemetry_schema): decrease scheduled_delay/interval importance to medium
These fields should be shown in API schema.
2023-12-12 12:07:59 +02:00
Serge Tupchii
ea6f5764bb test: remove debug message 2023-12-12 12:05:46 +02:00
zhongwencool
1807df157c fix: license watermark percent support float 2023-12-12 17:27:31 +08:00
Stefan Strigler
71011ad084
Merge pull request #12142 from sstrigler/EMQX-11487-e-5-4-0-mongodb-test-connection-failed
mongodb test connection failed
2023-12-12 09:05:04 +01:00
zhongwencool
e2e7f96515 fix: incorrect behavior in audit logs during stop and start of EMQX 2023-12-12 14:29:39 +08:00
zhongwencool
363055a32e fix: add descriptions fields to bridge_v1 2023-12-12 10:18:18 +08:00
zhongwencool
cd1365d753 fix: don't require path in http action(fill default path) 2023-12-12 10:15:53 +08:00
Thales Macedo Garitezi
b80c9b0863 fix(actions_schema): remove redundant resource_opts subfields for actions
Buffer workers don't use those fields.
2023-12-11 16:58:43 -03:00
Thales Macedo Garitezi
30719d286a fix(http_bridge_schema): use correct resource_opts subfields for connector and action 2023-12-11 16:58:43 -03:00
Thales Macedo Garitezi
593283df93 fix(redis_bridge_schema): use correct resource_opts subfields for connector and action 2023-12-11 16:58:43 -03:00
Thales Macedo Garitezi
4fc14fb4ba
Merge pull request #12143 from thalesmg/fix-reply-to-async-r54-20231211
fix(actions): increment rule statistics even if channel is not installed
2023-12-11 15:35:35 -03:00
Thales Macedo Garitezi
f7adaa8911 fix(postgres_schema): fix usages of resource_opts in connector and action schemas
Fixes https://emqx.atlassian.net/browse/EMQX-11569
2023-12-11 15:03:20 -03:00
Thales Macedo Garitezi
fbbb55633d fix(connector_schema): remove query_mode from resource_opts
The connector query mode is inferred during its creation, and later it must be overridden
by an action, anyway.
2023-12-11 14:13:40 -03:00
Thales Macedo Garitezi
b4a5c141ad fix(actions): use action query mode instead of connector's query mode 2023-12-11 14:10:51 -03:00
Thales Macedo Garitezi
2495f59c91 fix(actions): increment rule statistics even if channel is not installed
Fixes new bug posted after https://emqx.atlassian.net/browse/EMQX-11494 was already fixed.

Also reduces the usage of error throwing for flow control a bit.
2023-12-11 14:01:30 -03:00
Stefan Strigler
a7c344ba29 fix(emqx_bridge): remove unused 2023-12-11 14:58:09 +01:00
Stefan Strigler
8e9cb6a928 style(emqx_bridge_mysql): minor cleanup 2023-12-11 14:54:10 +01:00
Stefan Strigler
31a7301f6f refactor(emqx_bridge): be more generic in to_bridge_v1_config 2023-12-11 14:50:38 +01:00
JimMoen
6552e0523a
Merge pull request #12141 from JimMoen/fix-shared-sub-api-internal-error
Fix shared sub api internal error
2023-12-11 21:43:09 +08:00
Stefan Strigler
be31486983 fix(emqx_utils): use deep_merge in unindent 2023-12-11 14:40:24 +01:00
Stefan Strigler
6143b3a2be fix(emqx_bridge_mongodb): use correct config when calling downgrade_type
Also limit result in mongodb ..._to_bridge_v1_config to not include more fields
than what's in the schema (most notably `description`).
2023-12-11 14:08:45 +01:00
Stefan Strigler
5d7ae4b980
Merge pull request #12132 from sstrigler/EMQX-11154-bridge-v-2-my-sql-support
feat(emqx_bridge_mysql): port to shared connectors
2023-12-11 13:56:34 +01:00
Zaiming (Stone) Shi
b6c11be159
Merge pull request #12138 from zmstone/1208-fix-dialyzer
fix(dialyzer): batch 3
2023-12-11 12:52:56 +01:00
zhongwencool
6ce2d96ae3
Merge pull request #12139 from zhongwencool/prometheus-api-get
fix: only return recommend setting when get prometheus api
2023-12-11 17:29:36 +08:00
zhongwencool
64c843088a
Merge pull request #12140 from zhongwencool/redis-schema-example
chore: update redis bridge example
2023-12-11 17:29:10 +08:00
lafirest
11622031c5
Merge pull request #12133 from lafirest/fix/ldap
fix(authn_ldap): Improve the type inference of method union
2023-12-11 17:05:51 +08:00
JianBo He
5b70baf624
Merge pull request #12121 from zhongwencool/cluster-rpc
fix: occasionally return stale view when updating configurations
2023-12-11 16:59:17 +08:00
Zaiming (Stone) Shi
d560366c14 test: fix some compile warnings 2023-12-11 09:43:13 +01:00
JimMoen
8c25371ff3
chore: bump gitignore for emqx standalone common test SUITES 2023-12-11 15:37:36 +08:00
JimMoen
7b60928288
fix(api): endpoint /v5/topics with invalid topic filter 2023-12-11 15:36:50 +08:00
zhongwencool
0595db3911 chore: update redis bridge example 2023-12-11 14:55:04 +08:00
zhongwencool
525a9e0adf fix: only return recommend setting when get prometheus api 2023-12-11 14:49:32 +08:00
JimMoen
47901c9fed
fix(exhook): client.authorize hook always uses real-topic
See: emqx_channel:do_check_sub_authzs/3, line: 1895
2023-12-11 14:11:18 +08:00
JimMoen
cfe3b2dcee
feat(exhook): subopts in on_client_subscribe/on_client_unsubscribe 2023-12-11 14:11:18 +08:00
JimMoen
46201a8796
feat(exhook): provide the peerport field
- both in `ConnInfo` and `ClientInfo`
2023-12-11 14:11:18 +08:00
JimMoen
68da627b4d
feat(channel): add peerport field in ClientInfo 2023-12-11 14:11:18 +08:00
JianBo He
b34e66bdf7
Merge pull request #12134 from lafirest/fix/gbt
fix(gbt): Add unimplemented command call
2023-12-11 13:46:07 +08:00
Zaiming (Stone) Shi
50f4aba5cd fix(dialyzer): batch 3 2023-12-09 15:50:09 +01:00
SergeTupchiy
107efda78f
Merge pull request #12136 from SergeTupchiy/upgrade-otel-1.4.7
Upgrade otel 1.4.7
2023-12-08 22:08:01 +02:00
Zaiming (Stone) Shi
5ad46ce077
Merge pull request #12129 from zmstone/1208-default-license-conn-25
refactor: update default enterprise license
2023-12-08 21:01:04 +01:00
Zaiming (Stone) Shi
1212ccc519
Merge pull request #12137 from zmstone/1207-fix-dialyzer
fix(dialyzer): batch 2
2023-12-08 20:31:17 +01:00
Thales Macedo Garitezi
66d043becd feat(ds): introduce update_iterator callback 2023-12-08 15:04:18 -03:00
Zaiming (Stone) Shi
ddbb8560fa fix(dialyzer): batch 2 2023-12-08 17:59:55 +01:00
Serge Tupchii
b5de58df2d chore: upgrade opentelemetry lib to 1.4.7-emqx 2023-12-08 18:44:19 +02:00
Stefan Strigler
71607aa2ad feat(emqx_bridge_mysql): port to shared connectors 2023-12-08 16:15:18 +01:00
Andrew Mayorov
76970c268e
fix(sessds): stop overwriting QoS0-only pubrange checkpoints
Through making `StreamRef` part of a record key. Otherwise with
QoS0-only streams the seqno doesn't change, thus ranges over
different streams will have the same `FirstSeqno`.
2023-12-08 14:33:47 +01:00
Andrew Mayorov
24710d0f56
fix(sessds): avoid accumulating QoS0-only ranges in memory 2023-12-08 14:31:18 +01:00
firest
1a8b59045b fix(gbt): Add unimplemented command call 2023-12-08 20:55:20 +08:00
firest
f4f45cf634 fix(authn_ldap): Improve the type inference of method union 2023-12-08 19:26:29 +08:00
Kjell Winblad
0c80c74554 fix: remove unnecessary prepare_statement from pgsql action 2023-12-08 09:59:19 +01:00
Zaiming (Stone) Shi
41679808fe chore: add version number in license apply link 2023-12-08 08:35:58 +01:00
Zaiming (Stone) Shi
e5cf9e40ac refactor: update default enterprise license 2023-12-08 08:25:20 +01:00
firest
e57d796df5 fix(ldap): Adjust logger level for authentication failures 2023-12-08 12:47:32 +08:00
zhongwencool
45c4fb33a8 fix: occasionally return stale view when updating configurations on different nodes concurrently 2023-12-08 09:56:31 +08:00
Thales Macedo Garitezi
f37c86afb9 Merge remote-tracking branch 'origin/release-54' into sync-r54-m-20231207 2023-12-07 13:30:04 -03:00
Thales Macedo Garitezi
2a6d72878f chore(ds): return DS message key along with batch 2023-12-07 11:36:08 -03:00
JimMoen
17e6703ba2
Merge pull request #12120 from qzhuyan/dev/william/bump-new-quicer
chore: bump emqtt 1.10.1 and quicer 0.0.307
2023-12-07 22:10:43 +08:00
William Yang
499f4d4bc5 chore(quicer): dialyzer 2023-12-07 13:52:48 +01:00
William Yang
583645d97b chore: bump emqtt 1.10.1 and quicer 0.0.308 2023-12-07 13:52:44 +01:00
Thales Macedo Garitezi
c45ed7b888 fix(connectors_api): fill default raw config values before returning
Fixes https://emqx.atlassian.net/browse/EMQX-11562
2023-12-07 09:44:48 -03:00
Thales Macedo Garitezi
c274450c5e
Merge pull request #12118 from thalesmg/fix-missing-type-name-api-actions-r54-20231206
fix(actions_api): add missing fields to API spec and returned data
2023-12-07 09:34:29 -03:00
Zaiming (Stone) Shi
7e3ed05f87
Merge pull request #12115 from zmstone/1206-fix-dialyzer
1206 fix dialyzer
2023-12-07 12:24:47 +01:00
JianBo He
bd985e52d7
Merge pull request #12072 from killme2008/feature/greptimedb-async-write
feat: implements async query mode for GreptimeDB data bridge
2023-12-07 19:21:44 +08:00
ieQu1
9b612cb0e7
Merge pull request #12119 from ieQu1/EMQX-10342
Make stream renew timer configurable
2023-12-07 10:42:23 +01:00
zhongwencool
253ea6093a
Merge pull request #12111 from zhongwencool/fix-token-not-found
fix: use sync_transaction when update admin/token
2023-12-07 09:56:20 +08:00
zhongwencool
850c6027d4
Merge pull request #12113 from zhongwencool/log-fix
fix: audit log format
2023-12-07 09:56:01 +08:00
Zaiming (Stone) Shi
7560016f0e fix(hocon): upgrade hocon from 0.40.0 to 0.40.1
fixed type spec, exported some public types from emqx_schema module
2023-12-06 20:39:26 +01:00
Zaiming (Stone) Shi
33a7282cdd fix(dialyzer): only include eunit when TEST is defined 2023-12-06 20:39:26 +01:00
Zaiming (Stone) Shi
9a6056ff2f refactor(emqx_machine): move system_monitor to included_applications
system_monitor has to be found in application (or included_applications)
otherwise dialyzer fails with Unknown function

Adding to 'applications' would cause a deadlock because one
cannot call application:ensure_all_started in the application/2
callback.
2023-12-06 20:39:26 +01:00
Zaiming (Stone) Shi
6b553e37c0 chore: pin ekka 0.17.0 previously 0.15.16
change summary:
1. otp 26
2. type spec fixes
3. dropped UDP mcast clustering
2023-12-06 20:39:26 +01:00
Zaiming (Stone) Shi
423b586c56 fix(dialyzer): fix some dialyzer issues found on otp 26 2023-12-06 20:32:49 +01:00
Zaiming (Stone) Shi
6affda8194 refactor(emqx_gateway_cm): no need to keep locker pid in state
For two reasons
1. Every other places computes the process register name from gwname
2. The ekka_locker api spec only accepts atom but not pid
2023-12-06 19:20:24 +01:00
Zaiming (Stone) Shi
71f9838fd7 chore: upgrade to emqtt 1.10.0 2023-12-06 19:18:15 +01:00
Zaiming (Stone) Shi
83206daa20 refactor(emqx_cm_locker): delete dead code 2023-12-06 19:18:15 +01:00
Zaiming (Stone) Shi
de61d9d609 chore: upgrade to jiffy from 1.0.5 to 1.0.6
1.0.5 has an unexported type which causes dialyzer to fail on otp 26
2023-12-06 19:18:15 +01:00
William Yang
64401cb6cc
Merge pull request #12042 from qzhuyan/dev/william/rel54/esockd-robustnes
fix: bump to esockd 8.9.9  improve robustness
2023-12-06 17:39:38 +01:00
Andrew Mayorov
074dc8ce11
test(emqx): switch rest of test suite to use emqx_cth_suite 2023-12-06 16:47:04 +01:00
ieQu1
371ec34992 feat(sessds): Make stream renew interval configurable 2023-12-06 16:04:53 +01:00
ieQu1
c43b3eb535 fix(sessds): Add debug logs for the session garbage collection 2023-12-06 15:37:23 +01:00
Thales Macedo Garitezi
fdeedc360e fix(actions_api): add missing fields to POST API schema 2023-12-06 11:13:09 -03:00
Thales Macedo Garitezi
2757b95850 fix(actions_api): fill raw config defaults before returning
Fixes https://emqx.atlassian.net/browse/EMQX-11541
2023-12-06 11:13:09 -03:00
Andrew Mayorov
c2c9de69b4
test(emqx): switch emqx_crl_cache_SUITE to use emqx_cth_suite 2023-12-06 14:34:41 +01:00
Andrew Mayorov
f06a1f10ef
test(emqx): switch most of testsuites to use emqx_cth_suite
For increased robustness and isolation.
2023-12-06 14:34:41 +01:00
Andrew Mayorov
d643330cb9
test(ocsp): switch test suite to use emqx_cth_suite
And simplify it slightly in the process.
2023-12-06 14:34:40 +01:00
Andrew Mayorov
7d80511b3a
test(emqx): switch select test suites to use emqx_cth_suite 2023-12-06 14:34:40 +01:00
Thales Macedo Garitezi
8a5b0d252d
Merge pull request #12110 from thalesmg/test-plugin-flaky-r54-20231205
test(cth_peer): use an exclusive current dir for each peer
2023-12-06 10:16:13 -03:00
Thales Macedo Garitezi
17b6143c30
Merge pull request #12102 from thalesmg/nit-postgres-log-m-20231205
chore(postgres): prettify logged errors
2023-12-06 10:10:02 -03:00
William Yang
c4956d99d1 fix: bump to esockd 8.9.9 improve listener robustness 2023-12-06 13:55:13 +01:00
Thales Macedo Garitezi
b82189fb4d test(cth_peer): use an exclusive current dir for each peer 2023-12-06 09:35:13 -03:00
Andrew Mayorov
43813e29c2
chore(emqx): drop legacy session persistence impl leftovers 2023-12-06 10:53:57 +01:00
SergeTupchiy
28ff53e99c
Merge pull request #11984 from SergeTupchiy/EMQX-10535-openetelmetry-tracing-new
Integrate OpenTelmetry tracing
2023-12-06 11:45:41 +02:00
Zaiming (Stone) Shi
d945a26c06
Merge pull request #12112 from zmstone/1206-refactor-delete-mcast-cluster-strategy
refactor: delete UDP multicast clustering strategy
2023-12-06 10:01:26 +01:00
zhongwencool
8965aa2a21 fix: audit log format 2023-12-06 16:58:04 +08:00
Andrew Mayorov
3798060543
Merge pull request #12109 from keynslug/test/emqx-cth-suite
test(emqx): switch select test suites to use `emqx_cth_suite`
2023-12-06 09:48:53 +01:00
Zaiming (Stone) Shi
d0732aa2a6 refactor: delete UDP multicast clustering strategy 2023-12-06 08:39:08 +01:00
zhongwencool
b015d08cba fix: use sync_transation when update admin/token 2023-12-06 09:04:27 +08:00
Thales Macedo Garitezi
e03b8fd80e chore(postgres): prettify logged errors
Fixes https://emqx.atlassian.net/browse/EMQX-11490
2023-12-05 15:55:18 -03:00
Andrew Mayorov
83bea2254d
test(ocsp): switch test suite to use emqx_cth_suite
And simplify it slightly in the process.
2023-12-05 19:16:37 +01:00
Andrew Mayorov
6f5228e991
test(emqx): switch select test suites to use emqx_cth_suite 2023-12-05 19:16:37 +01:00
Thales Macedo Garitezi
99399c6e95
Merge pull request #12098 from thalesmg/revert-downgrade-bridge-id-m-20231205
chore: stop downgrading action id in rule API responses
2023-12-05 14:26:23 -03:00
Thales Macedo Garitezi
f489de8860
Merge pull request #12100 from thalesmg/fix-password-action-probe-m-20231205
fix(bridges/actions api): correctly deobfuscate passwords when probing
2023-12-05 14:25:32 -03:00
Thales Macedo Garitezi
2579f8ea92
Merge pull request #12096 from thalesmg/fix-delete-deps-rules-m-20231204
fix(api): return list of dependent rule ids when trying to delete bridge/action
2023-12-05 14:24:50 -03:00
Serge Tupchii
938508b270 refactor(emqx_opentelemetry): pass only channel info to trace functions 2023-12-05 19:01:08 +02:00
Ivan Dyachkov
f5e184ec24
Merge pull request #12101 from id/1205-scheduled-build-of-release54
ci: run scheduled packages build of release-54
2023-12-05 17:37:38 +01:00
Thales Macedo Garitezi
f30c97f190 chore: bump app vsn 2023-12-05 13:26:02 -03:00
Thales Macedo Garitezi
deb3fcd606 Merge remote-tracking branch 'origin/master' into sync-m-r54-20231205 2023-12-05 13:25:45 -03:00
Serge Tupchii
195a23ae27 chore(emqx_opentelemetry): bump opentelemetry to v1.4.6-emqx 2023-12-05 18:18:31 +02:00
Serge Tupchii
85441fda0f test(emqx_opentelemetry): add trace test suite 2023-12-05 18:18:31 +02:00
Serge Tupchii
c8e69357cc feat(emqx_opentelemetry): use one global exporter config for all otel signals 2023-12-05 18:18:31 +02:00
Serge Tupchii
2a3f6b749c fix(emqx_opentelemetry): avoid using application:ensure_all_started/1 for better deadlock safety 2023-12-05 18:18:31 +02:00
Serge Tupchii
8d3f98eff2 fix(emqx_opentelemetry): fix dialyzer warnings 2023-12-05 18:18:31 +02:00
Serge Tupchii
60da6427ca fix: move openetelmetry deps to emqx_openetelmetry app
This is to fix elixir build, as mix can't find included opentelemetry hrl files.
2023-12-05 18:18:31 +02:00
ieQu1
2a50ec3f7d
Merge pull request #12104 from ieQu1/dev/gcp-logs
fix(bridge_gcp): Don't print config to the logs
2023-12-05 17:15:11 +01:00
Serge Tupchii
7fdc650448 feat: integrate OpenTelemetry traces 2023-12-05 18:11:00 +02:00
Thales Macedo Garitezi
e42f4155d3 fix(bridges/actions api): correctly deobfuscate passwords when probing
Fixes https://emqx.atlassian.net/browse/EMQX-11533
2023-12-05 11:49:50 -03:00
ieQu1
b2ca59dfa7 fix(bridge_gcp): Don't print config to the logs 2023-12-05 15:48:53 +01:00
Thales Macedo Garitezi
e5a4be11f5 chore: stop downgrading action id in rule API responses
Fixes https://emqx.atlassian.net/browse/EMQX-11405
2023-12-05 11:48:46 -03:00
Thales Macedo Garitezi
1b68fbff05 fix(api): return list of dependent rule ids when trying to delete bridge/action
Fixes https://emqx.atlassian.net/browse/EMQX-11523
2023-12-05 11:47:26 -03:00
Andrew Mayorov
286d483a3a
Merge pull request #12055 from keynslug/ft/EMQX-11474/subopts
fix(sessds): respect subscription options when publishing
2023-12-05 15:45:25 +01:00
Ivan Dyachkov
e995b3948e chore: bump emqx_gateway_coap version 2023-12-05 15:17:53 +01:00
Thales Macedo Garitezi
b6e8f5a37c
Merge pull request #12095 from thalesmg/fix-rule-test-api-m-20231204
fix(rule_api): fix sql test when testing against events
2023-12-05 08:57:54 -03:00
SergeTupchiy
7b9d12f20e
Merge pull request #12048 from SergeTupchiy/fix-coap_sub-opts
Fix COAP sub opts
2023-12-05 10:27:04 +02:00
Thales Macedo Garitezi
c1c7d1246f
Merge pull request #12084 from thalesmg/refactor-resource-status-state-m-20231201
refactor(resource_manager): use macros and better differentiate status from state
2023-12-04 17:55:27 -03:00
Thales Macedo Garitezi
d594b38ceb
Merge pull request #12083 from thalesmg/fix-connector-bws-m-20231201
fix(connector): don't start buffer workers for the connector itself
2023-12-04 16:14:15 -03:00
Thales Macedo Garitezi
984e2ccc74
Merge pull request #12082 from thalesmg/test-ensure-res-opts-conn-m-20231201
add missing `resource_opts` fields to connectors schemas
2023-12-04 16:13:32 -03:00
Thales Macedo Garitezi
cea857cb8e fix(rule_api): fix sql test when testing against events
Fixes https://emqx.atlassian.net/browse/EMQX-11449
2023-12-04 15:24:09 -03:00
Thales Macedo Garitezi
b2cd8aaab7 refactor: use single clause
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-12-04 10:02:05 -03:00
Thales Macedo Garitezi
ac2c99f996 test(connector): add test to ensure connector schema has resource_opts
https://emqx.atlassian.net/browse/EMQX-11509
2023-12-04 10:02:05 -03:00
Thales Macedo Garitezi
bb04a2d89e fix(bridge_redis): add resource_opts to connector schema 2023-12-04 10:02:05 -03:00
Thales Macedo Garitezi
87a13aa316 fix(bridge_mongo): add resource_opts to connector schema 2023-12-04 10:02:05 -03:00
Thales Macedo Garitezi
7a1288e802 fix(bridge_postgres): add resource_opts to connector schema 2023-12-04 10:02:05 -03:00
Thales Macedo Garitezi
3078de6e97 fix(bridge_syskeeper): add resource_opts to connector schema 2023-12-04 10:02:05 -03:00
Thales Macedo Garitezi
5bdfac52b8 fix(bridge_kafka_producer): add missing resource_opts sub-fields to connector schema 2023-12-04 10:02:05 -03:00
Thales Macedo Garitezi
626bcc1c62 fix(bridge_http): add resource_opts to connector schema 2023-12-04 10:02:05 -03:00
Thales Macedo Garitezi
10b1a8bbda feat(connector): add some resource_opts schema facilities 2023-12-04 10:02:05 -03:00
Dennis Zhuang
9920841deb chore: upgrade greptimedb client to v0.1.6 to fix the failed test 2023-12-04 20:30:33 +08:00
Dennis Zhuang
1d6ea685ef fix: another try to fix t_write_failure 2023-12-04 20:30:33 +08:00
Dennis Zhuang
97592e2e40 fix: test case t_write_failure 2023-12-04 20:30:33 +08:00
Dennis Zhuang
fbeb56e475 fix: test case t_write_failure 2023-12-04 20:30:33 +08:00
Dennis Zhuang
547acef01d feat: upgrade greptimedb client to v0.1.5 2023-12-04 20:30:33 +08:00
Dennis Zhuang
a694f3c92d fix: tests 2023-12-04 20:30:33 +08:00
Dennis Zhuang
8bc874c261 feat: supports async mode for greptimedb data bridge 2023-12-04 20:30:33 +08:00
Dennis Zhuang
90d0081df4 feat: upgrade greptimedb and client 2023-12-04 20:30:33 +08:00
Andrew Mayorov
130a5a5442
fix(ds): pass topics to emqx_topic:words/1 before feeding LTS tree
So that empty levels in topics will be properly mapped into `''` atoms.
2023-12-04 13:39:01 +03:00
Andrew Mayorov
92c4b29a4c
feat(topic): match empty topic levels more loosely
So that the result of `emqx_topic:tokens/1` would be perfectly
matchable with the result of `emqx_topic:words/1` of a topic filter
with empty levels.
2023-12-04 13:38:55 +03:00
Andrew Mayorov
b5c485cd55
test(sessds): add empty level topic subscription testcase 2023-12-04 13:38:42 +03:00
Serge Tupchii
e455433694 test(emqx_gateway): fix test failures caused by grpc-erl upgrade 2023-12-04 12:17:58 +02:00
JimMoen
cb992fcf55
Merge pull request #12059 from JimMoen/1130-fix-vm-time-warp
fix: vm.args use `multi_time_warp`
2023-12-04 11:56:08 +08:00
Andrew Mayorov
627c58b07d
fix(sessds): handle expire_awaiting_rel common timer with no-op
Otherwise, the channel crashes when the timer is triggered.
2023-12-02 15:00:30 +03:00
Andrew Mayorov
47bc747323
fix(sessds): drop everything related to session on CleanStart 2023-12-02 15:00:30 +03:00
Andrew Mayorov
ee9a98f0a4
chore: bump emqx_gateway_mqttsn to 0.1.7 2023-12-02 15:00:29 +03:00
Andrew Mayorov
fd26e690b8
refactor(sessds): move parts of message processing to replayer
To simplify the processing flow, reducing the number of back-and-forth
between the session and the replayer.
2023-12-02 15:00:29 +03:00
Andrew Mayorov
29ec73847a
fix(utils): make flattermap/2 results less variative 2023-12-02 14:38:04 +03:00
Andrew Mayorov
6255ee0833
fix(sessmem): avoid defining unsafe defaults in #session 2023-12-02 14:38:04 +03:00
Andrew Mayorov
b5ad0f9815
fix(test): subscribe with QoS 2 to receive QoS 2 message 2023-12-02 14:38:04 +03:00
Andrew Mayorov
1948719eec
test(sessds): unskip testcase related to QoS2 handling 2023-12-02 14:38:04 +03:00
Andrew Mayorov
3265d2f2aa
fix(sessds): respect subscription options when publishing 2023-12-02 14:38:03 +03:00
Andrew Mayorov
b5f39f89e3
feat(utils): add flattermap/2 as slightly more generic flatmap/2 2023-12-02 14:36:21 +03:00
Andrew Mayorov
508346f095
refactor(topicidx): split persistent term stuff off gbt-based index 2023-12-02 14:36:21 +03:00
Andrew Mayorov
88103c5f0e
refactor(session): pass config to SessionImpl:open/3 as well
* Anticipate that connection info may change during session takeover.
* Avoid persisting session conf as part of persistent session state.
2023-12-02 14:36:21 +03:00
Andrew Mayorov
6eba082992
Merge pull request #12075 from keynslug/fix/EMQX-11474/function-clause
fix(channel): expect there's no session yet on disconnect
2023-12-02 14:32:50 +03:00
Thales Macedo Garitezi
dc5e3b939c refactor(resource_manager): use macros and better differentiate status from state
Internally in `emqx_resource_manager`, there seems to be many points where the
`gen_statem` states are conflated with resource status, since their names coincide.  While
that works for now, introducing a new `gen_statem` state, an internal state, shouldn't
necessarily imply a new, externally facing resource status.

Here we also introduce the usage of some macros to avoid the pitfalls of making a typo in
a state/status name.
2023-12-01 18:23:05 -03:00
Zaiming (Stone) Shi
55621fbb86
Merge pull request #12074 from zmstone/1201-user-peer-module-for-all
test: replace 'slave' and 'ct_slave' with 'peer'
2023-12-01 21:35:40 +01:00
Thales Macedo Garitezi
29ae45c39d fix(connector): don't start buffer workers for the connector itself
Fixes https://emqx.atlassian.net/browse/EMQX-11448
2023-12-01 17:20:38 -03:00
Zaiming (Stone) Shi
6e30718818 test: allow join cluster later 2023-12-01 20:33:39 +01:00
ieQu1
3d2e95fe3e
Merge pull request #12081 from ieQu1/dev/gen-rpc-3.3.0
chore(gen_rpc): Bump version to 3.3.0
2023-12-01 17:57:33 +01:00
ieQu1
476c300ecf
Merge pull request #12070 from ieQu1/dev/ds-min-max-batch-size
Various minor fixes
2023-12-01 17:57:15 +01:00
ieQu1
d3b7478d70 chore(gen_rpc): Bump version to 3.3.0 2023-12-01 17:10:12 +01:00
Zaiming (Stone) Shi
ab7d57e1c5 test: delete debug level logging 2023-12-01 17:07:14 +01:00
Ivan Dyachkov
0e27d031a8 chore: 5.4.0-alpha.1 2023-12-01 16:54:03 +01:00
Zaiming (Stone) Shi
6a9cc20d4d test: wait for all nodes clustered 2023-12-01 16:37:39 +01:00
Zaiming (Stone) Shi
956b25cc4c
Merge pull request #12071 from zmstone/1201-sync-release-54
1201 sync release 54
2023-12-01 14:38:47 +01:00
Thales Macedo Garitezi
cb60880bab
Merge pull request #12067 from thalesmg/fix-kafka-check-client-m-20231130
fix(kafka_producer): add `resource_opts` to connector schema, and check for client connectivity
2023-12-01 09:55:12 -03:00
Andrew Mayorov
6b17920fea
fix(channel): expect there's no session yet on disconnect 2023-12-01 15:29:05 +03:00
Andrew Mayorov
cce474ce98
fix(session): include session term in stacktrace 2023-12-01 15:29:05 +03:00
Zaiming (Stone) Shi
1a78e7ae79 fix(connector): ensure webhook bridge convert to http connector 2023-12-01 11:56:37 +01:00
Zaiming (Stone) Shi
90b7486624 fix(redis): ensure schema namespace 2023-12-01 11:37:06 +01:00
ieQu1
e1ec560639 test(emqx): Fix flaky emqx_takeover_SUITE:t_takeover testcase
This testcase uses QoS1, so it must account for possible duplication
of the messages.
2023-12-01 10:06:18 +01:00
Zaiming (Stone) Shi
60d70b22dc chore: bump app vsn for emqx_auth_redis 2023-12-01 08:37:37 +01:00
Zaiming (Stone) Shi
7f4d91d490 Merge remote-tracking branch 'origin/release-54' into 1201-sync-release-54 2023-12-01 08:32:22 +01:00
ieQu1
e238602533 fix(ds): Update README 2023-12-01 08:27:05 +01:00
ieQu1
0ae618d010 fix(ds): Use emqx_rpc for calls that work with large binaries 2023-12-01 08:27:05 +01:00
ieQu1
0e625d814a feat(sessds): Make batch size configurable
This change affects flow control. It allows to configure maximum size
of a batch, as well as fetch threshold.
2023-12-01 08:27:05 +01:00
ieQu1
4717e56fb6 fix(sessds): Schedule poll immediately upon receiving an ack
This commit affects the flow control, and improves the throughput by
removing a delay between freeing up space in the in-flight window and
polling new messages.
2023-12-01 08:27:05 +01:00
ieQu1
38800c0260 refactor(sessds): Store timers in the session 2023-12-01 08:27:05 +01:00
Zaiming (Stone) Shi
22f7cc1622 test: replace 'slave' and 'ct_slave' with 'peer' 2023-12-01 08:07:09 +01:00
JimMoen
ee25d9bd9e
fix: vm.args use multi_time_warp
See also:
https://www.erlang.org/doc/apps/erts/time_correction#multi-time-warp-mode
2023-12-01 14:52:31 +08:00
ieQu1
69f1ca43c3 fix(sessds): Create a timer even if it's present in the map 2023-12-01 06:11:13 +01:00
ieQu1
1897e5c31b refactor(session): Use common naming conventions 2023-12-01 06:11:08 +01:00
ieQu1
d9e7544070 refactor(sessds): Introduce macros for the timers 2023-12-01 06:11:08 +01:00
ieQu1
0d245acdc1
Merge pull request #12066 from keynslug/fix/sessds-tc-flaky
test(sessds): wait client disconnect propagates to broker
2023-12-01 00:13:38 +01:00
Thales Macedo Garitezi
113a4ad4b1
Merge pull request #12057 from thalesmg/ds-session-gc-m-20231128
feat(ds): add session gc process
2023-11-30 17:51:52 -03:00
Thales Macedo Garitezi
0388e1c1c4 fix(kafka_producer): add resource_opts to connector schema, and check for client connectivity
Fixes https://emqx.atlassian.net/browse/EMQX-11494
2023-11-30 17:51:32 -03:00
Ivan Dyachkov
9fd2fa95a8 chore: bump apps versions 2023-11-30 20:01:12 +01:00
Thales Macedo Garitezi
684d637fed test(bridge_api): workaround strange config syncing problem
For some unknown reason, this test has difficulties in syncing the config correctly
between the nodes, while the equivalent in bridge_v2_api_SUITE doesn't.
2023-11-30 19:51:35 +01:00
Ivan Dyachkov
ec10c51073 Merge remote-tracking branch 'upstream/release-53' into 1129-sync-r53 2023-11-30 19:51:12 +01:00
Zaiming (Stone) Shi
dcb1c0680b
Merge pull request #12053 from zmstone/1129-prepare-for-otp26
1129 prepare for OTP 26
2023-11-30 19:38:40 +01:00
Andrew Mayorov
ec471c0557
test(sessds): wait client disconnect propagates to broker 2023-11-30 20:14:57 +03:00
Serge Tupchii
f54bda7063 fix(emqx_mgmt_api_data_backup): add count and hasnext meta paging params 2023-11-30 19:10:12 +02:00
Zaiming (Stone) Shi
81e75cf068 test: fix bulk-kick test case flakyness 2023-11-30 17:30:25 +01:00
Zaiming (Stone) Shi
5427ebc5f1 fix: log error when failed to install plugin
the error return is a map with details.
prior to this change only the reason is returned in the api response,
now the error map is logged at error level to help troubleshooting
2023-11-30 16:49:30 +01:00
Ivan Dyachkov
6dd92c382f chore: 5.3.2 release 2023-11-30 16:18:44 +01:00
Thales Macedo Garitezi
cf6cb3e4ad chore: set low importance to config 2023-11-30 11:55:57 -03:00
Thales Macedo Garitezi
1ab009f081 refactor: rename supervisor 2023-11-30 11:55:48 -03:00
Zaiming (Stone) Shi
eed253af82 test: implement a new node restart helper func 2023-11-30 15:11:38 +01:00
Thales Macedo Garitezi
880f5e8f89 feat(ds): add session gc process
Fixes https://emqx.atlassian.net/browse/EMQX-9744
2023-11-30 09:38:59 -03:00
Zaiming (Stone) Shi
cf72c04fdd test: fix peer node stop and plugin SUITE typo 2023-11-30 09:53:36 +01:00
Zaiming (Stone) Shi
f2db4cc7fc chore: upgrade to gen_rpc 3.2.2 2023-11-30 09:42:44 +01:00
Zaiming (Stone) Shi
640b0df319 test: do not add -master erl flag for peer nodes 2023-11-30 08:49:57 +01:00
zhongwencool
773bd8ecb2
Merge pull request #12047 from thalesmg/test-more-flaky-tests-r53-20231128
test(flaky): more adjustments
2023-11-30 09:33:55 +08:00
Zaiming (Stone) Shi
4ecfe2be30 test: use peer module for slave and ct_slave 2023-11-29 21:45:53 +01:00
Thales Macedo Garitezi
62b763a8f8 test(gcp_pubsub_consumer): even more adjustments 2023-11-29 15:12:47 -03:00
Ivan Dyachkov
7f5433f6dd chore: 5.3.2-rc.1 2023-11-29 18:20:15 +01:00
Thales Macedo Garitezi
fdafe2493e
Merge pull request #12041 from thalesmg/ds-estimate-last-alive-m-20231128
fix(ds_session): take conservative estimate of `last_alive_at` when bumping
2023-11-29 13:43:59 -03:00
Zaiming (Stone) Shi
6f35f25163 chore: upgrade esockd to 5.9.8 for OTP 26 2023-11-29 16:15:18 +01:00
Zaiming (Stone) Shi
1a563b4f65 chore: fix 0.0 match for OTP 26 2023-11-29 16:15:18 +01:00
Zaiming (Stone) Shi
14644988e0 chore: change triple-quotes to single-quotes 2023-11-29 16:15:18 +01:00
Zaiming (Stone) Shi
e6eb97e104 chore: upgrade dependency brod_gssapi to work with OTP 26 2023-11-29 16:15:18 +01:00
Zaiming (Stone) Shi
41194cacc8
Merge pull request #12030 from zhongwencool/redis-connector-v2-540
Redis connector v2 540
2023-11-29 16:13:09 +01:00
Kjell Winblad
a750fbbc52
Merge pull request #12051 from HJianBo/fix-http-bridge-bugs
Fix http bridge bugs
2023-11-29 15:48:51 +01:00
Zaiming (Stone) Shi
89cdfbca63 fix(emqx_vm): trim new-line in otp version string 2023-11-29 15:32:25 +01:00
Andrew Mayorov
ccef91437d
Merge pull request #12029 from keynslug/ft/EMQX-11049/qos2
feat(sessds): provide QoS2 message replay support
2023-11-29 14:10:16 +03:00
Serge Tupchii
009a15c7d0 fix(emqx_mgmt_api_data_backup): validate empty file in upload API
fixes EMQX-11488
2023-11-29 12:12:42 +02:00
Andrew Mayorov
d8691f1d64
refactor(sessds): rename marker → committed offset
For better clarity.
2023-11-29 13:04:42 +03:00
zhongwencool
0aec2f7605 feat: redis bridge v2 2023-11-29 16:06:46 +08:00
zhongwencool
8ec3857f4d
Merge pull request #12046 from savonarola/1128-fix-redis-54
[5.4] Fix Redis connector
2023-11-29 16:06:23 +08:00
William Yang
e90e843ff3
Merge pull request #12040 from qzhuyan/dev/william/quic-0.0.300
feat(quic): bump to quicer-0.0.303
2023-11-29 08:48:47 +01:00
JianBo He
d2e5f302a8 chore(http): add description for bridges v1 2023-11-29 13:47:59 +08:00
JianBo He
72bc046063 chore: avoid unnecessary default values being filled when querying via the v1 api.
see: https://emqx.atlassian.net/browse/EMQX-11482
2023-11-29 12:01:59 +08:00
JianBo He
d7bf8e97d2 chore: add tests case 2023-11-29 11:18:51 +08:00
Serge Tupchii
b0d4ba183e test: use emqx_cth_suite in emqx_coap_api_SUITE
`emqx_coap_api_SUITE` was failing with `emqx_authn_schema_not_injected`
(missing authn schema mods in persistent_term) if it was run standalone.
2023-11-28 20:02:21 +02:00
Serge Tupchii
3530ed66d5 fix(emqx_gateway_coap): take subscribe options from uri_query
Closes #12031
2023-11-28 20:02:21 +02:00
Thales Macedo Garitezi
095e7c4ecb test(flaky): more adjustments 2023-11-28 13:41:31 -03:00
Thales Macedo Garitezi
f6f61f4353
Merge pull request #12036 from thalesmg/test-more-flaky-tests-r54-20231127
test: attempting to stabilize more flaky tests
2023-11-28 13:40:49 -03:00
Ilya Averyanov
e5508105c7 fix(redis): start and load eredis app 2023-11-28 18:51:53 +03:00
Ilya Averyanov
55218e2df2 fix(redis): start and load eredis app 2023-11-28 18:51:19 +03:00
Zaiming (Stone) Shi
d93fdd8e9b
Merge pull request #12039 from zmstone/1128-sync-release-54
Sync release-54 to master
2023-11-28 15:52:49 +01:00
William Yang
64f6220cf5 feat(quic): bump to quicer-0.0.303 and emqtt 1.9.7 2023-11-28 14:43:47 +01:00
ieQu1
8a065ba6d0
Merge pull request #12027 from ieQu1/dev/ds-meta-persist-shard
fix(ds): Persist shard table
2023-11-28 14:33:57 +01:00
Thales Macedo Garitezi
f5c4fb5860 fix(ds_session): take conservative estimate of last_alive_at when bumping
Addresses https://github.com/emqx/emqx/pull/12024#discussion_r1407432154
2023-11-28 09:58:03 -03:00
Thales Macedo Garitezi
bd40b5c553 test(flaky): more adjustments 2023-11-28 09:48:40 -03:00
Ivan Dyachkov
2e11ab6a16 chore: 5.3.2-alpha.2 2023-11-28 13:46:28 +01:00
ieQu1
05e47254e2 fix(ds): Fixes related to the shards table 2023-11-28 12:59:09 +01:00
Zaiming (Stone) Shi
6c85e62d26 fix(schema): add namespaces 2023-11-28 12:07:42 +01:00
Zaiming (Stone) Shi
1b1cea24f3 Merge remote-tracking branch 'origin/release-54' into 1128-sync-release-54 2023-11-28 11:43:30 +01:00
Andrew Mayorov
34c9c022d0
chore(replayer): add comment describing what "until" means 2023-11-28 11:47:54 +03:00
JianBo He
bd6e9503e6 fix(http): compose the url and path in correctly format 2023-11-28 16:15:46 +08:00
zhongwencool
6e6e68c902
Merge pull request #12037 from zhongwencool/license-watermark-check
fix: validate error when set license's watermark to 100%
2023-11-28 16:04:39 +08:00
zhongwencool
29bcdb9a4a fix: validate error when set license's watermark to 100% 2023-11-28 13:16:16 +08:00
JianBo He
891ecc179d chore: fix flaky tests 2023-11-28 10:34:44 +08:00
JianBo He
c8b5c51bbc chore: fix failed test cases 2023-11-28 09:53:46 +08:00
JianBo He
cdb90ebe6b feat: rename webhook bridge to http bridge 2023-11-28 09:53:46 +08:00
JianBo He
dc99651690 test(bridge): ensure almost test cases passed 2023-11-28 09:53:46 +08:00
JianBo He
8954450c0b chore: fix compile warnings 2023-11-28 09:53:46 +08:00
JianBo He
96af7a74e8 feat: impl the http bridge v2 2023-11-28 09:53:46 +08:00
JianBo He
f9a1e747fd chore(http): break the bridge confs to connector and action parts 2023-11-28 09:53:46 +08:00
SergeTupchiy
3b1ae0f3df
Merge pull request #12017 from SergeTupchiy/EMQX-11319-data-backup-http-api
EMQX-11319 data backup http api
2023-11-27 19:23:54 +02:00
Thales Macedo Garitezi
e3fbf6c958 test: attempting to stabilize more flaky tests 2023-11-27 14:12:48 -03:00
Thales Macedo Garitezi
26e59f9508
Merge pull request #12024 from thalesmg/ds-session-expiry-m-20231124
feat(ds): session expiry
2023-11-27 14:11:38 -03:00
Stefan Strigler
ac370fed61
Merge pull request #12035 from sstrigler/EMQX-11382-a-new-field-should-be-added-to-the-interface-of-the-connector-to-return-the-actions-associated-with-it
feat(emqx_connector): add field 'actions' in API response
2023-11-27 17:39:44 +01:00
Zaiming (Stone) Shi
d933d0b9e0
Merge pull request #12016 from zmstone/1122-load-license-file
1122 load license file
2023-11-27 16:43:51 +01:00
Stefan Strigler
70978df5bb fix: use parse_id 2023-11-27 16:32:15 +01:00
Serge Tupchii
89fdbf3e73 fix(emqx_mgmt_cli): remove duplicated word in the log message 2023-11-27 17:30:58 +02:00
Serge Tupchii
64ee29af81 feat(emqx_management): implement data backup API 2023-11-27 17:30:58 +02:00
Andrew Mayorov
86685bdce2
feat(sessds): use integer tags for pubrange types 2023-11-27 18:27:15 +03:00
Andrew Mayorov
bb05281adb
refactor(sessds): add dedicated #ds_pubrange.tracks field
This slightly simplifies the replayer code.
2023-11-27 18:24:57 +03:00
Thales Macedo Garitezi
d88deb9ceb feat(ds): add session timer to bump last alive at timestamp 2023-11-27 12:19:52 -03:00
Stefan Strigler
048f4724a9 feat(emqx_connector): add field 'actions' in API response
Also unify schemas, use emqx_connector_schema for the generic parts.
2023-11-27 16:09:17 +01:00
Thales Macedo Garitezi
09c4e40511 refactor(ds): rename disconnected_at to last_alive_at, add more assertions 2023-11-27 11:48:44 -03:00
Thales Macedo Garitezi
f2dbddc315 test: attempting to stabilize more flaky tests 2023-11-27 11:36:32 -03:00
Thales Macedo Garitezi
6acdc6e432 feat: add /actions/:id/metrics/, /actions/:id/metrics/reset APIs
Fixes https://emqx.atlassian.net/browse/EMQX-11381
2023-11-27 11:33:11 -03:00
Andrew Mayorov
923898eadf
chore(chan): leave a TODO note for PUBREC handler 2023-11-27 09:55:46 +03:00
Andrew Mayorov
41973ee1fa
fix(sessds): please dialyzer with well-typed dummy msgs 2023-11-27 09:55:46 +03:00
Andrew Mayorov
46475fac66
feat(sessds): provide QoS2 message replay support 2023-11-27 09:55:45 +03:00
Andrew Mayorov
ce59cb71bb
chore: bump emqtt to 1.9.6 2023-11-27 09:55:45 +03:00
zhongwencool
b5a00ec6b2
Merge pull request #12023 from emqx/master
chore: sync master to release-54
2023-11-27 09:31:47 +08:00
ieQu1
bd7a84fe3e revert(ds): Don't duplicate the clean start in session_ds 2023-11-26 19:18:59 +01:00
Kjell Winblad
c85004b7ef chore: remove obsolete TODO 2023-11-24 21:22:27 +01:00
Kjell Winblad
c6c1d886f0 fix: make pgsql action schema properly 2023-11-24 21:19:26 +01:00
Thales Macedo Garitezi
839f9dbedb feat(ds): session expiry
Fixes https://emqx.atlassian.net/browse/EMQX-11048
2023-11-24 16:31:54 -03:00
Kjell Winblad
66945dcc5c fix: address more comments from @thalesmg 2023-11-24 20:31:29 +01:00
Kjell Winblad
30e248061f
fix: problems found by @thalesmg in code review
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-11-24 20:07:37 +01:00
Kjell Winblad
f070d80b1a fix: swagger examples for PostgreSQL, Matrix and Timescale 2023-11-24 18:50:52 +01:00
Kjell Winblad
d03674a505 fix: duplicate key in example 2023-11-24 17:59:56 +01:00
Kjell Winblad
fc7bedb81a fix: remove duplicated entry 2023-11-24 17:37:58 +01:00
Kjell Winblad
e920160805 fix: add enable and description fields to PostgreSQL connector 2023-11-24 17:33:39 +01:00
Kjell Winblad
3dca83c854 fix: all missing descriptions 2023-11-24 17:33:39 +01:00
Kjell Winblad
c5e281b84b fix: emqx_auth_postgresql test suites 2023-11-24 17:33:39 +01:00
Kjell Winblad
6ef9c6fe4a fix: ops 2023-11-24 17:33:39 +01:00
Kjell Winblad
f7296d549f fix: elvis problem 2023-11-24 17:33:39 +01:00
Kjell Winblad
64c015cf6f fix: unify the schema modules in emqx_bridge_pgsql 2023-11-24 17:33:39 +01:00
Kjell Winblad
b8f510d956 fix: add env variables about action info 2023-11-24 17:33:39 +01:00
Kjell Winblad
2e3028a8f8 fix(emqx_postgresql): fix lifecycle test 2023-11-24 17:33:39 +01:00
Kjell Winblad
dbe73c70b1 fix: dialyzer problem 2023-11-24 17:33:38 +01:00
Kjell Winblad
d5b62eead0 feat: split pgsql, matrix and timescale into connector action
This commit splits the bridges pgsql, matrix and timescale into
connector and action.

Fixes:
https://emqx.atlassian.net/browse/EMQX-11155
2023-11-24 17:33:35 +01:00
Stefan Strigler
f8f8cf9f30
Merge pull request #11963 from sstrigler/EMQX-11156-bridge-v-2-mongo-db-support
EMQX 11156 bridge v2 mongo db support
2023-11-24 16:49:57 +01:00
zhongwencool
8f548f4cbb
Merge pull request #12020 from thalesmg/sync-r53-m-20231124
chore: sync `release-53` to `master`
2023-11-24 22:54:53 +08:00
Stefan Strigler
c1ef773e77 fix: check for sane state after regular shutdown 2023-11-24 15:09:35 +01:00
Stefan Strigler
4e077c951b feat(emqx_bridge_mongodb): port mongodb to shared connector and actions 2023-11-24 15:09:35 +01:00
Thales Macedo Garitezi
261fe8a831 Merge remote-tracking branch 'origin/release-53' into sync-r53-m-20231124 2023-11-24 10:10:09 -03:00
ieQu1
2d4b9a7b9d
Merge pull request #12019 from ieQu1/ds-clean-start
Discard sessions when client connects with clean start = true
2023-11-24 13:35:39 +01:00
Thales Macedo Garitezi
e95ec5b150 test: fix another flaky test 2023-11-24 09:24:21 -03:00
Thales Macedo Garitezi
f8fd95c683 Merge remote-tracking branch 'origin/release-53' into sync-r53-m-20231124 2023-11-24 09:22:24 -03:00
Thales Macedo Garitezi
6a3c438194
Merge pull request #12009 from thalesmg/fix-kafka-get-bridges-r53-20231123
fix(bridge_api): don't mangle configs, use correct type as argument
2023-11-24 08:56:24 -03:00
Stefan Strigler
9ebbc9bbea refactor(emqx_bridge): use more simplistic function to validate connector 2023-11-24 10:07:11 +01:00
Stefan Strigler
d2901afd1b fix(emqx_bridge_kafka): match example in api schema 2023-11-24 10:07:11 +01:00
ieQu1
e616e0746a feat(ds): Implement a function for dumping persistent session state 2023-11-24 04:39:46 +01:00
ieQu1
8dfcb69e52 feat(ds): Discard session when client connects with CleanStart=1 2023-11-24 04:17:28 +01:00
ieQu1
e8d18b0e09
Merge pull request #12014 from ieQu1/ds-qos0
Support QoS0 messages in persistent_session_ds
2023-11-23 23:43:18 +01:00
ieQu1
449bafc27e fix(ds): LTS trie handles empty topic levels 2023-11-23 22:16:38 +01:00
ieQu1
a158f25a40 fix(ds): Fix return type of emqx_persistent_session_ds:publish 2023-11-23 22:16:38 +01:00
ieQu1
c5bb86db67 feat(ds): Support QoS 0 2023-11-23 22:16:38 +01:00
ieQu1
1da9ec1d7d
Merge pull request #12015 from ieQu1/ds-lts-dont-store-message
feat(ds): Don't store #message record in the DB
2023-11-23 18:56:45 +01:00