Commit Graph

11705 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
27de9998a8
Merge pull request #9191 from zmstone/1020-fix-shared-dispatch
fix(shared): do not redispatch shared messages for certain shutdown
2022-10-20 18:59:45 +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
Zaiming (Stone) Shi
1686ca26fa
Merge pull request #9155 from zmstone/1014-publish-api-should-not-echo
fix(api): publish API only returns message ID
2022-10-14 11:52:17 +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
53fb8fcded docs: Add changelog 2022-10-14 10:06:45 +02:00
Zaiming (Stone) Shi
c2f176c1e7 fix(api): publish API only returns message ID 2022-10-14 09:49:46 +02:00
JianBo He
6f077c47e7
Merge pull request #9136 from emqx/enhance-flapping-detect-5
refactor: enhance the flapping detect accuracy
2022-10-13 09:49:43 +08:00
JianBo He
59c1b0d16e chore: update changes 2022-10-12 10:06:35 +08: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
firest
6d852b69a2 chore: update CHANGES 2022-10-09 10:13:09 +08:00
Ivan Dyachkov
9faaffd50b
Merge pull request #9115 from emqx/build-check-if-quicer-binary-present-before-trying-to-sign-it
build: check if quicer binary present before trying to sign it
2022-10-07 12:33:28 +02:00
Ivan Dyachkov
5654778bd9 build: check if quicer binary present before trying to sign it 2022-10-07 09:50:25 +02:00
Zaiming (Stone) Shi
f82ca4c0b0
Merge pull request #9101 from zmstone/1005-docs-update-docker-image-run-example
docs: remove descriptions about port 8081
2022-10-06 18:25:56 +02: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
Ivan Dyachkov
8003cbae34
Merge pull request #9089 from emqx/chore-always-respect-PKG_VSN
chore: respect PKG_VSN in pkg-vsn.sh
2022-10-05 15:45:16 +02:00
Ivan Dyachkov
5deba61dc4
Merge pull request #9095 from emqx/chore-fix-script-path-resolution-on-macos
chore: stat to resolve script dir on macos and readlink -f otherwise
2022-10-05 15:38:10 +02:00
Ivan Dyachkov
b3a7fd26dc chore: stat to resolve script dir on macos and realpath otherwise 2022-10-05 11:39:07 +02:00
Ivan Dyachkov
bc71149d79 chore: respect PKG_VSN in pkg-vsn.sh 2022-10-03 20:02:14 +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
Ivan Dyachkov
09500f1f45
Merge pull request #9077 from emqx/chore-reduce-docker-image-size
chore: don't keep tar.gz in the docker image
2022-09-29 16:36:52 +02:00
Ivan Dyachkov
0c782963c7 chore: don't keep tar.gz in the docker image 2022-09-29 15:38:28 +02:00
Zaiming (Stone) Shi
a769564005
Merge pull request #9073 from zmstone/support-4.x-in-dns-discovery-test
chore: supprot DNS discovery test for 4.x
2022-09-29 09:23:05 +02: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
Zaiming (Stone) Shi
d49675cde5 chore: supprot DNS discovery test for 4.x 2022-09-28 21:31:18 +02:00
Zaiming (Stone) Shi
c3f6c302ec
Merge pull request #8998 from zmstone/0918-build-force-fetch-tags-when-update-appup
chore: force fetch upstream tags before appup updates
2022-09-27 21:45:02 +02:00
Thales Macedo Garitezi
8d1b58b821
Merge pull request #9058 from thalesmg/mix-snk-kind
feat(mix): set `snk_kind` from `$kind` to `msg` in Mix build
2022-09-27 10:40:20 -03:00
Thales Macedo Garitezi
10c24a9f48
Merge pull request #9057 from thalesmg/fix-remove-extra-info-lwt-50
chore: remove extra information from denied lwt log
2022-09-27 08:53:27 -03: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
cf76267155 docs: add a string value quote example 2022-09-27 09:02:49 +02:00