Commit Graph

2518 Commits

Author SHA1 Message Date
Ilya Averyanov 8cc0b43de7 chore(authn): add MySQL & PostgreSQL backend tests 2021-11-23 11:52:51 +03:00
JianBo He 27270ca679 test(gw): fix elvis warnings 2021-11-23 16:36:11 +08:00
JianBo He 5204a1c6d4 test(gw): reduce useless log print 2021-11-23 16:01:40 +08:00
zhongwencool ef0e440d27
feat: http trace api for 5.0 (#6200)
* feat: port log trace http api for 5.0

* fix: name must printable unicode len<256

* fix: check-nl-at-eof warning

* fix: handler_id always atom
2021-11-23 13:49:12 +08:00
DDDHuang 6a60c17970
fix: add lw gateway endpoint placeholder support (#6267) 2021-11-23 12:08:45 +08:00
Shawn af5002733b
Merge pull request #6256 from terry-xiaoyu/resource_metrics2
Add metrics to emqx_resource and emqx_bridges
2021-11-23 11:14:25 +08:00
Thales Macedo Garitezi d7725f799c
fix(flaky_test): improve live connection count test on CI (#6257)
* fix(flaky_test): improve live connection count test on CI

It seems that a race condition that is triggered more often in CI can
make the test fail, possibly due to the ETS write not being seen by
the subsequent read in the test.

* style(elvis): fix NL in emqx_connector.conf
2021-11-23 11:12:45 +08:00
DDDHuang 21bd9bba55
fix: generate palce holder (#6250)
* fix: generate place holder

* style: whitespace cleanup

* refactor(authz): placeholder for athuz

* test: authz test suite for placeholder

* fix: lw place holder suite

* fix: auth n redis suite

Co-authored-by: JimMoen <LnJimMoen@outlook.com>
2021-11-23 10:56:43 +08:00
Shawn 46838a08cc fix(resource): update testcases for after_query functions 2021-11-23 10:41:45 +08:00
Shawn 6fb464fc05
Merge pull request #6059 from tigercl/fix/ssl
fix(ssl): fix API returns the certificate file name instead of the certificate content
2021-11-23 10:38:12 +08:00
Shawn 9aa63358e6 fix(resource): type spec for resource_data() 2021-11-23 10:04:31 +08:00
Shawn 29ad6d215e feat(resource): add metrics to emqx_resource 2021-11-23 10:04:31 +08:00
Shawn 4c149f92c1 feat(bridge): support metrics for bridges 2021-11-23 09:36:10 +08:00
JianBo He 50542ec441
Merge pull request #6248 from HJianBo/gw-improve-apis-1
Add authentication data management APIs for gateway
2021-11-23 09:12:04 +08:00
zhouzb 5aa8ba45d3 fix(authn): add the case when the instance does not exist 2021-11-22 23:30:05 +01:00
zhouzb 2b282b9666 fix(ssl): Return the content of certificates in HTTP response 2021-11-22 23:30:05 +01:00
zhouzb 81d425cb27 fix(ssl): fix the issue that the content of TLS certificate is not converted to path 2021-11-22 23:30:05 +01:00
Spycsh c89a663b53 chore: refactor slog under emqx, conf and exhook 2021-11-22 23:12:17 +01:00
Zaiming (Stone) Shi c202688abf
Merge pull request #6258 from tigercl/chore/dashboard
chore(dashboard): disable by default
2021-11-22 22:34:26 +01:00
Ilya Averyanov 071c2c99e8 refactor(authn resources): add `emqx_resource` and `emqx_authn` tests 2021-11-22 21:08:04 +03:00
Zaiming (Stone) Shi b59ad6b186
Merge pull request #6252 from JimMoen/fix-clients-cluster-query
fix(mgmt): fix broken `ets:continuation` been sent between nodes
2021-11-22 15:28:16 +01:00
zhouzb 63f1d88ed3 chore(dashboard): disable by default 2021-11-22 22:23:06 +08:00
Shawn a0e81226d7 fix(elvis): improve some code format 2021-11-22 19:10:00 +08:00
Shawn 37aeb28a79 fix(connector): test case conflict 2021-11-22 18:52:43 +08:00
JianBo He 1e2eac0fce test(gw): add tests for authm data-mgmt 2021-11-22 17:38:59 +08:00
JianBo He 4eb27ce25b fix(gw): fix bad paging params 2021-11-22 17:38:59 +08:00
JianBo He 7d9930b64e feat(gw): support data-management apis gw's authn 2021-11-22 17:38:59 +08:00
JianBo He 4f752fb5ab chore(gw): fix elvis warnings 2021-11-22 17:38:59 +08:00
JianBo He f033fad7b3 refactor(gw): deps on emqx_dasboard_swagger 2021-11-22 17:38:59 +08:00
Shawn f0c61068e8 fix(authn): test cases issues 2021-11-22 17:35:33 +08:00
Shawn ea3c809287 fix(emqx_conf): merge issues 2021-11-22 17:35:33 +08:00
Shawn 07e3e43a21 fix(authn): xref issues 2021-11-22 17:35:33 +08:00
Shawn 9c93ea0338 feat(connector): add API for /connectors_test 2021-11-22 17:35:33 +08:00
Shawn c66c6b53b2 feat(connector): add APIs for connector 2021-11-22 17:35:33 +08:00
Shawn bcf5f499da feat(connector): add APIs for connector 2021-11-22 17:35:33 +08:00
Shawn 4dac90f4a7 refactor(bridges): add POST /bridges for creating 2021-11-22 17:35:32 +08:00
Shawn c4668b4047 fix(bridge): load emqx_conf in testcases 2021-11-22 17:35:32 +08:00
Shawn 339749764d fix(bridge): update the testcases for HTTP bridges 2021-11-22 17:35:32 +08:00
Shawn 7d64013edd refactor(connector): add connector configs 2021-11-22 17:35:32 +08:00
Shawn cf3f2c3057 fix(dialyzer): remote the extra str/1 2021-11-22 17:35:32 +08:00
Shawn e41736f5cb fix(bridge): update testcases for bridge APIs 2021-11-22 17:35:32 +08:00
Shawn 7996d8f709 refactor(bridge): rename the APIs for emqx_bridge 2021-11-22 17:35:32 +08:00
Shawn 1e6884ee7d fix(bridge): convert confs for http bridge when creating 2021-11-22 17:35:32 +08:00
Shawn f01f9632c1 fix(bridge): cannot start mqtt bridge from config 2021-11-22 17:35:32 +08:00
Shawn 63f942a1b8 feat(bridge): add descriptions to the mqtt bridge schema 2021-11-22 17:35:32 +08:00
Shawn 0cbdaa0f40 refactor(bridge): update config struct for mqtt bridge 2021-11-22 17:35:32 +08:00
Shawn d046f9c6e7 fix(bridge): improve the schema of connector_http 2021-11-22 17:35:32 +08:00
Shawn dd9e2c4b24 refactor(bridge): the configs for http bridges 2021-11-22 17:35:32 +08:00
Zaiming (Stone) Shi 90a65b8d04
Merge pull request #6242 from emqx/update-otp-version-and-pkg-name-scheme
Update otp version and pkg name scheme
2021-11-22 10:34:24 +01:00
JimMoen 08899552fe fix(mgmt): fix broken `ets:continuation` been sent between nodes 2021-11-22 17:16:12 +08:00
tigercl 6da039cf4f
Merge pull request #6231 from tigercl/fix/http-authn
fix(authn): fix pick worker error and match more http response
2021-11-22 09:10:44 +08:00
Ilya Averyanov 3d449b5acf fix(authn): create authn chain tab in start_link 2021-11-21 19:52:29 +03:00
Zaiming Shi 6ca6d60858 fix(dashboard): change hash from sha3_256 to sha256
old version os has no support for it
2021-11-20 21:21:11 +01:00
Zaiming Shi a705bc1fc7 build: change package name scheme
`${PROFILE}-${PKG_VSN}-otp${OTP_VSN}-${SYSTEM}-${ARCH}.zip`
2021-11-20 20:44:48 +01:00
Zaiming Shi f84d1aa75e style: fix some elvis style check 2021-11-20 20:41:06 +01:00
Zaiming Shi 6edd862dd5 refactor: no more EMQX_ENTERPRISE compile flag
The compile flag was introduced in EQM X 4.3 series
where CE and EE code was diverged large enough which made
non-practicle to determin edition at runtime.

such approach made testing quite challenging as we'll have to
build with different compile flags inorder to run per-edition
test cases

In this commit, we try to retrieve edition info from EMQX's
description text, (put to PT for fast access) at runtime
so we can test ALL editions from a super-set edition (EE).
2021-11-20 20:41:06 +01:00
Ilya Averyanov 8621257809
Merge pull request #6240 from savonarola/reinit-authn-1
fix(authn): transfer chain tab to emqx_authentication_sup
2021-11-19 19:57:14 +03:00
Ilya Averyanov c86887491c fix(authn): transfer chain tab to emqx_authentication_sup
To preserve configuration after emqx_authentication crashes.
2021-11-19 16:41:22 +03:00
k32 c9a59968ef refactor(emqx_schema): Code style 2021-11-19 11:41:29 +01:00
k32 deccba3406 fix(schema): Improve configuration of the internal DB 2021-11-19 11:41:08 +01:00
tigercl a074cf24d0
Merge pull request #6219 from tigercl/fix/authz-certs
fix(authz): fix badmatch when reading certs
2021-11-19 11:25:29 +08:00
zhouzb 980a6ceae9 fix(authn): fix pick worker error and match more http response 2021-11-19 11:19:52 +08:00
JianBo He 905e58c93a
Merge pull request #5997 from HJianBo/gw-fixes-part3
Gateway improvement part.3
2021-11-19 09:29:51 +08:00
zhouzb 47851c2430 fix(authz): fix badmatch when reading certs 2021-11-18 14:36:59 +08:00
JimMoen e361cd5733
Fix dashboard APIs return (#6177)
* fix(dashboard_api): delete non-exist user wrongly return 204

* fix(dashboard): dashboard user should use `tags` not `tag`

* fix(dashboard): create/update user return 200 with full users list

* fix(dashboard): logout status code 204

* fix(dashboard): update pwd status code 204

* test: test suite for dashboard APIs

* refactor(dashboard): user info mnesia record name use description

* style: make elvis happy

* fix(api): dashboard swagger check request should not override env

* fix(dashboard): add/modify dashboard returns single record

* ci: update emqx-fvt version to new tag 1.0.2-dev1
2021-11-18 14:36:12 +08:00
JimMoen 53b51e31f0 fix(api_schema): add authn mongo missing fields 2021-11-18 12:41:40 +08:00
zhongwencool 33f5eec802
feat: set keepalive via http api (#6171)
* feat: set keepalive via http api

* fix: make cluster_rpc test case solider
2021-11-18 10:56:58 +08:00
Zaiming (Stone) Shi 8d653b6d39
Merge pull request #6173 from zmstone/refactor-retainer-use-ordered-set
[5.0] refactor(retainer): use ordered_set Mnesia table type
2021-11-18 00:28:57 +01:00
Tobias Lindahl e52d8138bf test(persistent_session_SUITE): fix another flaky test
Make sure that the connection process dies before terminating the
snabbkaffe trace.
2021-11-17 14:04:06 +01:00
Tobias Lindahl 5914b8ad3d
Fix flaky tests for persistent sessions (#6202)
* test(persistent_session_SUITE): remove redundant sleep and trap_exits

* test(persistent_session_SUITE): fix race for started snabbkaffe

Sometimes snabbkaffe was not started when publishing from a different
process. Wrap the publishing code in a ?check_trace to make sure it is
started, and make sure the publish process is truly down before ending
the trace.

* test(persistent_session_SUITE): fix takeover race

Make sure the previous session is unregistered before trying to
connect again. Sometimes the new session was trying to take over the
session that was shutting down still.
2021-11-17 18:55:11 +08:00
tigercl 7950e26774
Merge pull request #6193 from tigercl/feat/mongo-srv-5.0
feat(mongo srv): support srv record for mongo connector
2021-11-17 15:42:01 +08:00
JianBo He ad2dbb5a49 chore(gw-sn): append messge headers 2021-11-17 14:51:27 +08:00
zhongwencool 04c204374a
chore: All placeholders are placed in the same header file (#6190)
* chore: All placeholders are placed in the same header file

* feat: Separate placeholders from the rules engine
2021-11-17 14:40:48 +08:00
zhongwencool a7a5e2d1f4
fix: can't get default key if all key if default (#6181) 2021-11-17 14:27:51 +08:00
JimMoen 57075902a3
fix(mgmt_api): kickout non-existing clientid should return code `404` (#6180) 2021-11-17 12:29:27 +08:00
zhouzb f8a625a67f feat(mongo srv): support srv record for mongo connector 2021-11-17 12:12:30 +08:00
JianBo He d0bdf27e0c chore: fix elvis warnings 2021-11-17 11:04:09 +08:00
DDDHuang 7c48bcabed
fixt: generate api (#6124)
* fix: generate api

* fix: banned suite

* fix: generate api bad rpc

* fix: bad message suite

* fix: create banned with check existed
2021-11-17 10:55:48 +08:00
JianBo He f23d2f2c92 chore: refine case side-effect 2021-11-17 10:46:46 +08:00
JianBo He 814e01c0cb test(authz): deps on emqx_conf instead of meck emqx_schema 2021-11-17 10:46:38 +08:00
Tobias Lindahl ae5792fa64 chore(emqx_cm): remove unused tracepoints 2021-11-16 14:37:15 +01:00
Tobias Lindahl c9b86a8375 test: make testcases not rely on timer:sleep 2021-11-16 13:50:01 +01:00
Tobias Lindahl 05f3bc8c90 fix(emqx_cm): make takeover session less likely to hit a race 2021-11-16 13:49:45 +01:00
JimMoen c0e388e52a style: make elvis happy 2021-11-16 19:35:35 +08:00
Zaiming Shi ac693c0dcb refactor(retainer): use ordered_set Mnesia table type
ordered_set is compatible to set in all the existing APIs
and in addition, it provides a more deterministic traversing
cursor in case we want to change the current dirty_select
based "select ALL" implementation
2021-11-16 12:33:59 +01:00
JimMoen 1dc0a2e8b5 fix(mgmt_api): kickout non-existing clientid should return code `404` 2021-11-16 17:32:12 +08:00
JianBo He 883c1b2e59 chore(gw): remove needless lines 2021-11-16 10:00:54 +08:00
JianBo He cf1d98adc6 chore(gw): save cert files 2021-11-16 10:00:54 +08:00
JianBo He 5a08fa6a03 docs(gw): add gateway comment 2021-11-16 10:00:54 +08:00
JianBo He 1f067d6f3b docs(gw): add docs for gateway schema 2021-11-16 10:00:54 +08:00
JianBo He bc3f3b4c55 test(gw): more robust testing 2021-11-16 10:00:53 +08:00
JianBo He 287859fe36 chore(gw): integrate emqx-conf 2021-11-16 09:58:37 +08:00
JianBo He 0b36b73ee1 fix(emqx_conf): fix badmatch for returned error value 2021-11-16 09:58:37 +08:00
JianBo He cf17a55079 chore(gw): rename cm-registry shard name 2021-11-16 09:58:37 +08:00
JimMoen c05ecdbcb8
fix(api): DELETE success wrongly returned code 200 (#6135) 2021-11-16 09:28:57 +08:00
Zaiming Shi ff23e9dde1 test: sync with emqx_cm process before flushing emqx_pool 2021-11-15 22:27:16 +01:00
JianBo He a113b9b65d chore: fix elvis warnings 2021-11-15 22:26:46 +01:00
JianBo He 9e333ac8b3 fix(emqx_cm): fix typos 2021-11-15 22:26:46 +01:00
Zaiming Shi dd771c5568 fix(emqx_mgmt_cli): idempontent kick. now it always returns ok 2021-11-15 22:26:46 +01:00
Zaiming Shi 7e2ca9e287 fix(session): force kill session for 'kick' and 'discard'
Prior to this fix, 'kick' and 'discard' calls may timeout (or
fail for other reason), failures lead to only a log, then
continue to allow the new session to get registered.

As a result, in case a client is stuck, there is no way to
force it to step down, end up with multiple connections (sessions)
for the client ID in dashboard.

After this fix, the stale pids are notified to shutdown
via a gen_server:call, and forced with a exit(Pid, kill) for any
exception happend to the gen_server:call
2021-11-15 22:26:46 +01:00