Commit Graph

5304 Commits

Author SHA1 Message Date
Zaiming (Stone) Shi
d1332b72e7 feat(api/publish): return detailed publish results
Prior to this change, the publish API returns 200 in most of
the cases.
This change provides more insights to the publish result.

For single message publish endpoint (`publish/`):

HTTP error codes are:

200: Everything is OK
202: No subscriber for the topic
400: When mesage is invalid message.
     e.g. bad topic name or QoS out of range.
503: Failed to dispatch the message. e.g. during EMQX restart.

The response body is a JSON object with two fields
`message_id`, and `publish_result`.
The `message_id` is a globally unique ID for tracing.
`publish_result` is `"OK"` when the message is delivered
to at least one subscriber.
Otherwise `"no_subscriber"`.
`publish_result` may also be some other informative
message to hint the failure result, the content of which
may change in the future.

For `publish/bulk` endpoint:

200: When all message in the bulk are published OK
202: If at least one message in the bulk had `"no_subscriber"` result
400: When mesage is invalid message. e.g. bad topic name or
     QoS out of range.
503: When there is at least one message failed at dispatch.

The reply body is a list of JSON objects having the same layout
as for hte `publish` endpoint.
2022-10-20 20:03:27 +02:00
Zaiming (Stone) Shi
c7a90d73b2 fix(shared): do not redispatch shared messages for certain shutdown
For takeover, there should be no message re-dispatch because
the messages will be retried by the new session.

For kick, messages should not be re-dispatched for security reason.
i.e. if admin has identified that there are malicious messages
stored in persisted sessions, killing the session should not
cause messages to be re-dispatched
2022-10-20 13:51:48 +02:00
Ivan Dyachkov
f2db35db39 chore: delete unused function clause 2022-10-14 10:46:11 +02:00
Ivan Dyachkov
5a8cab46a9 test: update publish api test suite 2022-10-14 10:17:22 +02:00
Zaiming (Stone) Shi
c2f176c1e7 fix(api): publish API only returns message ID 2022-10-14 09:49:46 +02:00
JianBo He
56000cbf3e refactor: more rigorous checking of flapping to improve stability of the system
port: https://github.com/emqx/emqx/pull/9045
2022-10-12 10:03:47 +08:00
JianBo He
5a66c8b117
Merge pull request #9082 from HJianBo/update-api-docs
chore(i18n): enrich HTTP API desc
2022-10-12 09:36:11 +08:00
Zaiming (Stone) Shi
63774ba5d3
Merge pull request #9104 from zmstone/1005-fix-shared-sub-dispatch
fix(shared): re-dispatch inflight (QoS1) and mqueue messages
2022-10-09 11:41:30 +02:00
lafirest
d600c870af
Merge pull request #9060 from lafirest/fix/delayed_pub
fix(delayed): Improve time precision of delayed messages
2022-10-09 10:39:31 +08:00
Zaiming (Stone) Shi
1c29e2806a test(shared): add a test case to ensure shared dispatch retry
to ensure retry will not enter a dead loop
2022-10-05 22:33:49 +02:00
Zaiming (Stone) Shi
e8279a02ef fix(shared): re-dispatch inflight (QoS1) and mqueue messages
when session terminates (not due to take over)
shared delivery should be re-dispatched to other members
in the group
2022-10-05 22:33:48 +02:00
Zaiming (Stone) Shi
abb941d161 docs: remove port 8081
port 8081 is the management API in 4.x
in 5.0 api port is 18083 (same as for serving the dashboard)
2022-10-05 17:15:19 +02:00
JianBo He
d43b680f14 chore: add comments to explain/status cant be found in swagger docs 2022-10-01 09:40:27 +08:00
JianBo He
7d7b05ae4e chore: update app.src 2022-09-30 23:32:23 +08:00
JianBo He
93d3fec73f chore(i18n): correct tags name 2022-09-30 23:14:19 +08:00
JianBo He
6589a66710 Merge branch 'update-api-docs' of github.com:HJianBo/emqx into update-api-docs 2022-09-30 23:05:07 +08:00
JianBo He
a84c6f938c chore(swagger): caption tags name 2022-09-30 23:04:26 +08:00
JianBo He
9c6c13789e
chore: update apps/emqx_gateway/i18n/emqx_gateway_api_authn_i18n.conf
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2022-09-30 23:03:01 +08:00
JianBo He
8292572da6
chore: apply suggestions from code review
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2022-09-30 23:02:28 +08:00
JianBo He
d17c473dc2 chore(i18n): fix the bad desc for statsd 2022-09-30 18:57:08 +08:00
JianBo He
5b219deb4a Merge remote-tracking branch 'zibo/chore/api-desc' into update-api-docs 2022-09-30 18:48:05 +08:00
zhouzb
0975bf21a9 docs: improve api desc for statsd 2022-09-30 17:55:12 +08:00
JianBo He
5fa1e63392 chore(gw): update HTTP API docs for gateway 2022-09-30 17:44:36 +08:00
zhouzb
f08982be93 chore: improve api desc for alarms 2022-09-30 15:34:49 +08:00
zhouzb
d1a15f1a43 chore: improve api descs for banned 2022-09-30 15:05:01 +08:00
Zaiming (Stone) Shi
242a69359c
Merge pull request #9047 from HJianBo/remove-colon-port
Improve the `ip_port()` definition and `bind` print format
2022-09-29 05:56:50 +02:00
JianBo He
834910b6f6 chore: update app.src 2022-09-27 17:24:44 +08:00
JianBo He
39ad172377 chore: replace ip_port() wuth host_port() for all connectors 2022-09-27 15:19:42 +08:00
JianBo He
6581911d5c Merge remote-tracking branch 'stone/0922-upgrade-ip-port-schema' into remove-colon-port 2022-09-27 15:08:27 +08:00
Zaiming (Stone) Shi
00e4b4da5a fix(schema): support hostname.domain:port for mqtt bridge 2022-09-27 09:02:49 +02:00
firest
56816559d9 chore: bump emqx_modules && update CHANGES 2022-09-27 13:39:25 +08:00
firest
6836a502ac fix(delayed): Improve time precision of delayed messages
Use milliseconds internally in emqx_delayed to store the publish time, improving precision
2022-09-27 13:24:54 +08:00
JianBo He
607f68bab1 chore(schema): don't automaticly add ipv4 address if configured as
`:1883`
2022-09-27 13:01:39 +08:00
JianBo He
03eaa07c02 chore: add more comments for bind display perference 2022-09-27 12:51:00 +08:00
Thales Macedo Garitezi
129f09f88b chore: remove extra information from denied lwt log 2022-09-26 15:23:59 -03:00
JianBo He
c9904e78aa chore: remove colon port in HTTP-API and CLI
In the https://github.com/emqx/emqx/pull/8571, we add a colon before the
port. But it was not popular, so we removed ta in this PR
2022-09-26 17:30:54 +08:00
JimMoen
2984397e73 chore: apps vsn bump 2022-09-23 17:09:15 +08:00
JimMoen
fc3fdfb994 fix(build): apply PR#8956 changes 2022-09-23 17:09:10 +08:00
JimMoen
85835256f1 Merge tag 'v5.0.8' into merge-release-v5.0.8-into-master 2022-09-23 16:06:44 +08:00
firest
5ef1a978bd chore: bump slow subs version && update CHANGES 2022-09-22 17:59:11 +08:00
firest
89af9c4a5f fix(slow_subs): fix timestamp unit error and update config not work
1. The unit of `deliver_begin_at` is incorrectly used the `seconds`, the resulting is incorrect when `stats_type` is `internal` or `response`
2. The config update doesn't actually take effect, the `load` function always used the old config
2022-09-22 17:57:51 +08:00
Kjell Winblad
9ea0147a8c feat(rule engine jq function): config for changing implementation
This commit adds a rule engine configuration option for changing the
implementation module used for the rule engine function jq. The two
options are `jq_port` (uses Erlang port programs to interact with jq)
and `jq_nif` (uses an Erlang NIF library to interact with jq).

Thanks to @terry-xiaoyu (Xinyu Liu <506895667@qq.com>) for Chinese
translations
2022-09-22 09:02:30 +02:00
Ilya Averyanov
c11afc357e fix(auth): use empty strings for absent placeholder values 2022-09-20 15:20:55 +03:00
zhongwencool
8c718d891f
Merge pull request #9002 from zhongwencool/fix-listener-crash
fix: /listeners API crash when there are nodes still in initial conf
2022-09-20 15:25:03 +08:00
Zhongwen Deng
2551c51a8c fix: ct failed 2022-09-20 11:37:49 +08:00
ieQu1
62957b298b chore(ekka): Bump version to 0.13.5 2022-09-19 18:21:32 +02:00
Zhongwen Deng
0241185225 chore: Add test coverage for listeners API 2022-09-19 18:25:25 +08:00
Zhongwen Deng
386110ae1e fix: /listeners API crash when some nodes still in init configuration 2022-09-19 15:24:36 +08:00
Thales Macedo Garitezi
c20ad3733a fix: check for authorization on topic before publishing last will testament
fixes #8978

Without checking for authorization, a client can, on abnormal
termination, publish a message to any topic, including `$SYS` ones.
2022-09-16 17:31:22 -03:00
Thales Macedo Garitezi
dca522d7d3 test: add tests for publishing lwt when deny_action is disconnect 2022-09-16 15:11:54 -03:00