Commit Graph

10643 Commits

Author SHA1 Message Date
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