Commit Graph

390 Commits

Author SHA1 Message Date
Thales Macedo Garitezi 8f4453fedb
fix(gateway): undo move headers to root `include`
Keeping headers in the src directory makes sense for the interfaces we
don't want to expose outside, but the `include_lib` directive fails to
compile under Mix. Changing `include_lib("emqx_gateway/src/...")` to
`-include("src/...")` pleases both Mix and Rebar.
2021-12-28 17:34:47 -03:00
Thales Macedo Garitezi 0020cf592f
Merge remote-tracking branch 'origin/master' into build-with-mix-mkII 2021-12-28 11:28:40 -03:00
JianBo He 8203b1f328 refactor(gw): simplify massive repeated codes 2021-12-27 16:50:39 +08:00
JianBo He 76b35910b7 chore(gw): fix elvis warnings 2021-12-27 16:03:31 +08:00
JianBo He fca5a3bc21 chore(gw): add cli testcases 2021-12-27 16:03:31 +08:00
Thales Macedo Garitezi e137555052
fix(tests): fix include paths that were moved 2021-12-22 15:15:19 -03:00
JianBo He b846193556
Merge pull request #6518 from HJianBo/gw-review-r2 2021-12-22 22:10:18 +08:00
Thales Macedo Garitezi 34d6dbca61
chore(mix): simplify build by using rebar3 for umbrella apps
By treating the apps in the umbrella as dependencies to be managed and
built by rebar3, we can simplify the maintenance of the release, at
the cost of increased build times: using Mix as before, it could track
changed files better than using rebar.  But the complexity and
possibility of discrepancies make it using rebar much more compelling.
2021-12-22 09:40:01 -03:00
JianBo He 1bcdbf3a06 chore(gw): make some fields required 2021-12-22 16:49:34 +08:00
JianBo He 6d4aac1600 chore(gw): improve http error messages 2021-12-22 16:49:33 +08:00
JianBo He 3fd9061418 fix(gw): save coap channel info 2021-12-22 16:49:33 +08:00
zhongwencool 2e10a5700c
Merge pull request #6515 from zhongwencool/fix-bann-utf8
fix(banned): create banned with utf8 failed by 500 response
2021-12-22 16:08:34 +08:00
zhongwencool b11a15fa00 fix(banned): create banned with utf8 failed by 500 2021-12-22 14:29:15 +08:00
Thales Macedo Garitezi 917575de5a
chore(mix): minimal elixir mix release build
This commit enables a minimal working build of EMQX release using
Mix.  However, to properly start the release, several configuration
steps are still missing.  A `mix_release.sh` script does a few hacks
to get the release built with Mix to start properly, by first assuming
that `make emqx` has been run prior to the release, ran once to
generate the `app.*.config` files, and then it copies that and some
other files to the expected places.

Also, `emqx_telemetry` hangs the start procedure because it thinks
it's in an official release and tries to make a request.  We disable
it temporarily via config just to get a working build for now.
2021-12-21 13:51:22 -03:00
JianBo He 5b1ed76a44 chore(gw-frame): export types for dialyzer check 2021-12-20 10:59:16 +08:00
JianBo He 92fd9c1eca chore(gw): fix adding subscription 2021-12-17 15:31:07 +08:00
JianBo He 52c78974d6 chore(gw): fix elvis warnings 2021-12-17 14:16:00 +08:00
JianBo He 561c95c31a feat(lwm2m): support subscribe/unsubscribe operations 2021-12-17 14:16:00 +08:00
JianBo He bfbf377a45 feat(coap): support subscribe/unsubscribe operations 2021-12-17 14:16:00 +08:00
JianBo He 6b8bdfd113 chore(gw): support to get subscriptions from coap 2021-12-17 14:16:00 +08:00
JianBo He 3443aeff18 fix(gw): handle discard/kick event 2021-12-17 14:16:00 +08:00
JianBo He a2823f2ad6 chore(gw): improve some type specs 2021-12-17 14:16:00 +08:00
JianBo He 5224da57dc
Merge pull request #6411 from HJianBo/gw-improve-apis-3
More precise gateway http-api examples
2021-12-10 16:52:49 +08:00
firest 8493b61cb5 refactor(eqmx_limiter): use the new hierarchical token bucket to replace the old ratelimit code 2021-12-10 14:37:23 +08:00
JianBo He fa11c6df9c test(gw): fix bad test cases 2021-12-10 10:41:38 +08:00
JianBo He 159ba63530 chore: upgrade grpc-erl to 0.6.4 2021-12-09 15:06:18 +08:00
JianBo He e662628581 chore(gw): fix bad default value in query-string 2021-12-09 14:50:28 +08:00
lafirest c9cbaeff95 fix(emqx_lwm2m): limit the max size of cmd record 2021-12-09 14:39:11 +08:00
JianBo He 028f1fa71c chore(gw): fix listener examples 2021-12-09 11:33:09 +08:00
JianBo He afb2cf19c2
Merge pull request #6297 from HJianBo/gw-improve-apis-2
Standardize HTTP-APIs return value and Status/Error Code
2021-12-08 18:02:13 +08:00
JianBo He 7c261b5356 chore(gw): improve examples for _gateway_api 2021-12-08 17:18:39 +08:00
JianBo He e48f10d2d6 chore(gw): ignore needless args 2021-12-08 11:33:11 +08:00
JianBo He a937a3d4dc chore(gw): fix bad argument type 2021-12-08 11:13:00 +08:00
JianBo He 0eff5358ca chore(gw): add examples for gw&client api 2021-12-08 10:52:27 +08:00
Zaiming (Stone) Shi 9276a5bc3c
Merge pull request #6394 from zmstone/fix-typo-in-hook-point-name
fix: typo takeovered -> takenover
2021-12-07 21:06:30 +01:00
Zaiming (Stone) Shi 5440b431a1 fix: typo takeovered -> takenover 2021-12-07 16:06:23 +01:00
JianBo He d735e2e755 chore: delete 500 error 2021-12-06 16:34:00 +08:00
JianBo He f1dbeb4bda chore: fix bad result match 2021-12-06 16:34:00 +08:00
JianBo He dab3e14686 fix(gw): fix static checking 2021-12-06 16:34:00 +08:00
JianBo He 7f04837ad2 fix(gw): fix elvis warnings 2021-12-06 16:34:00 +08:00
JianBo He 3f35604d16 refactor(gw): fix gateway http api schema 2021-12-06 16:34:00 +08:00
JianBo He f3f3f12635 refactor: improve the _api_clieints implement 2021-12-06 16:33:59 +08:00
JianBo He 01c50992e9 refactor: improve gw api 2021-12-06 16:33:38 +08:00
JianBo He 169848c027 feat(gw): return the created/updated resource info 2021-12-06 16:32:46 +08:00
JianBo He bc012d6554 chore(gw): change lwm2m&coap api path 2021-12-06 16:30:59 +08:00
Zaiming (Stone) Shi a723e41390 test: fix a flaky test which gets interfered by other test cases 2021-12-06 08:00:42 +01:00
Zaiming (Stone) Shi 5d3cb6ae1c refactor(authn): align authn config root name
authn configs are checked independently per-auth provider,
this was to make authn providers more plugable.

in order to make environment variable overrides work for authn,
we need to have a unified view of the config layout,
no matter from root level, or partially checking per-provider
config independently, i.e. we try to use the same config envelop.
2021-12-04 09:33:14 +01:00
zhongwencool c1a7d7bede fix(conf): emqx_conf return nest error 2021-12-01 16:08:49 +08:00
lafirest cfe2954a88 fix(emqx_gateway): fix the function_clause error when client disconnect after connection created 2021-11-30 12:25:06 +08:00
Ilya Averyanov ea0fa24ce5 chore(ct): remove verbose output during tests 2021-11-25 18:30:50 +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
DDDHuang 6a60c17970
fix: add lw gateway endpoint placeholder support (#6267) 2021-11-23 12:08: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
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
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 9c93ea0338 feat(connector): add API for /connectors_test 2021-11-22 17:35:33 +08:00
JianBo He ad2dbb5a49 chore(gw-sn): append messge headers 2021-11-17 14:51:27 +08:00
JianBo He d0bdf27e0c chore: fix elvis warnings 2021-11-17 11:04:09 +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
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 cf17a55079 chore(gw): rename cm-registry shard name 2021-11-16 09:58:37 +08:00
zhongwencool 01f29ab052
chore(swagger): lwm2m2 http api to hocon (#6153) 2021-11-15 15:08:50 +08:00
Zaiming Shi b96a106463 style: make elvis happy 2021-11-10 22:54:58 +01:00
Zaiming Shi 9c1972020c test: fix flaky test emqx_stomp_SUITE:t_rest_clienit_inf 2021-11-10 22:51:18 +01:00
lafirest e8f6035c34
feat(emqx_lwm2m): add some lwm2m api (#6047) 2021-11-10 14:20:33 +08:00
JianBo He b36865e970 fix(api): escape the searching string 2021-10-26 10:34:03 +08:00
Ilya Averyanov e37ecc10a6 style(behaviour attrs): unify behaviour declarations 2021-10-21 15:10:59 +03:00
zhongwencool d784e63b9f
emqx_conf (#5939)
* feat(emqx_conf): move conf manager for emqx_machine to emqx_conf

* chore(emqx_conf): change emqx:get_config/2 to emqx_conf:get/2

* fix: common test failed

* fix: badmatch by typo wrong key

* fix(emqx_conf): get the wrong core nodes

* fix(emqx_conf): get core node's tnx_id not latest tnx_id

* fix: add ro_transation when copy conf file

* fix: delete debug info

* fix: change ekka_rlog to mria_rlog

* fix: remove cluster_rpc from emqx_machine.

* fix: don't call ekka:start/0 explicitly

* fix: ekka should be start in emqx_machine
2021-10-21 18:08:51 +08:00
k32 8e58699ff5
Merge pull request #5937 from k32/mria
feat(mria): Replace ekka_mnesia with mria
2021-10-20 13:15:23 +02:00
JianBo He 9d4268e5e6 test(gw): ensure subscription established 2021-10-20 10:40:35 +08:00
JianBo He 7c04dbc585 test(gw): eliminate side effect between tests 2021-10-20 10:40:35 +08:00
JianBo He 69df027ee9 chore(gw): use SLOG to replace LOG 2021-10-20 10:40:35 +08:00
JianBo He 2416fa4e13 chore(gw): return 204 if no authn config 2021-10-20 10:40:35 +08:00
JianBo He 46e0609544 test(gw): add clients HTTP-API tests 2021-10-20 10:40:35 +08:00
JianBo He 6f0d0ab473 test(gw): eliminate side effect between tests 2021-10-20 10:40:35 +08:00
JianBo He 1cf833e1c0 test(gw): ensure emqx_authn starting state 2021-10-20 10:40:35 +08:00
JianBo He 7b211d35b8 test(gw): add basic tests for http-api 2021-10-20 10:40:35 +08:00
JianBo He e56cbd8a30 chore(gw): refine test case 2021-10-20 10:40:35 +08:00
JianBo He 49adf2f7d2 chore(gw-lwm2m): set qmode to duration_s type 2021-10-20 10:40:35 +08:00
JianBo He e4adc07add chore(gw-exproto): refactor ssl options 2021-10-20 10:40:35 +08:00
JianBo He ac42a91fc2 chore(gw-exproto): retry the closed grpc stream 2021-10-20 10:40:35 +08:00
JianBo He fc2e358f01 chore(gw): add ssl feilds for exproto 2021-10-20 10:40:35 +08:00
JianBo He b637764095 chore(gw): return unloaded status instead of 404 2021-10-20 10:40:35 +08:00
JianBo He ec4198c91c feat(gw-lw): return the special fields for lwm2m 2021-10-20 10:40:35 +08:00
JianBo He 92a5c333af chore(gw-lwm2m): store lifetime in clientinfo 2021-10-20 10:40:35 +08:00
JianBo He cfc905aa1a fix(gw): insert channel info into ets table 2021-10-20 10:40:35 +08:00
JimMoen a8bb2a60b0 fix(gateway_api): client ip and port as two fields when clients query 2021-10-19 15:36:02 +08:00
k32 d14b8e7da9 chore(mria): ekka_rlog -> mria_rlog 2021-10-18 22:04:05 +02:00
k32 326923850c chore(mria): Get rid of copy_mnesia callback 2021-10-18 22:04:05 +02:00
k32 e14a62d4d6 chore(mria): ekka_mnesia:start/stop -> mria:start/stop 2021-10-18 22:04:05 +02:00
k32 9965d6e028 chore(mria): ekka_mnesia:create_table -> mria:create_table 2021-10-18 22:04:05 +02:00
k32 ae2056da1b chore(mria): Fix clear_table and ro_transaction calls 2021-10-18 22:04:05 +02:00
k32 ff48322e0c chore(mria): ekka_mnesia:running_nodes -> mria:running_nodes 2021-10-18 22:04:05 +02:00
k32 b515a45a4f chore(mria): Rename module: ekka_mnesia -> mria 2021-10-18 22:04:05 +02:00
Tobias Lindahl aa19c2a908 chore: Remove emqx_ct_helpers as dependency 2021-10-15 10:40:57 +02:00
JimMoen 40ab0064ae fix(api): invalid params HTTP Code 400 2021-10-14 18:57:33 +08:00
zhongwencool d80f20aca3
feat(swagger): define mgmt config_api by hocon schema (#5814)
* feat(swagger): define mgmt config_api by hocon schema

* fix: enum can't defined by integer, use union.

* fix: hocon schema union to enum
2021-10-13 14:04:43 +08:00
lafirest 3524942766 fix: change all ~s in io format to ~ts
we should use unicode to replace latin1
2021-10-12 15:09:24 +08:00
JimMoen 19456d84a5 style: code format fix 2021-10-12 10:37:45 +08:00
Zaiming (Stone) Shi 40963221f8
Merge pull request #5898 from zmstone/refactor-slog
Refactor slog
2021-10-11 16:15:44 +02:00
Zaiming Shi 7e9d7c4858 test(proper): move emqx_ct_proper_types to local repo
previously provided by emqx-ct-helpers
2021-10-11 15:28:12 +02:00
JimMoen 3960204ce3 refactor(mgmt_api): `select_table_with_count`. 2021-10-11 21:11:34 +08:00
JimMoen ea7aa5bc41 refactor(mgmt_api): use `select_table` congruously. 2021-10-11 21:11:34 +08:00
JimMoen b65c9908a1 refactor(mgmt_api): Clearer variable name. 2021-10-11 21:11:34 +08:00
JianBo He 45ca168216 test(gw): fix bad test cases 2021-09-30 15:51:02 +08:00
JianBo He ac3af8260d fix(gw): fix print client record error 2021-09-30 15:51:02 +08:00
JianBo He adaf3db719 refactor(gw): put conf operations into emqx_gateway_conf mod 2021-09-30 15:51:02 +08:00
JianBo He 642b588ad0 fix(gw): fix removing listener error 2021-09-30 15:51:02 +08:00
JianBo He 8e4256c06f chore(conf): refine config format 2021-09-30 15:51:02 +08:00
Zaiming Shi e7e8b8c77b fix(schema): check tlsv1.3 availability 2021-09-27 13:53:54 +02:00
lafirest acb5c693ba
Merge pull request #5767 from lafirest/fix/time_unit
fix(schema): fix some time unit in schema
2021-09-26 15:35:27 +08:00
JianBo He 8e78d29325 chore(gw): improve emqx_gateway_schema 2021-09-26 15:19:55 +08:00
JianBo He 791408cd99 refactor(gw): simplify code structure
1. Add the management API for listener's authn
2. Clarify responsed error messages
2021-09-26 15:19:55 +08:00
JianBo He 5ad1a8c232 chore(gw): fix test case errors 2021-09-26 15:19:55 +08:00
JianBo He f0ac62c513 refactor(gw): use emqx_gateway_conf to update conf 2021-09-26 15:19:55 +08:00
JianBo He b55a1f62c3 test(gw): more cases for emqx_gateway_conf 2021-09-26 15:19:55 +08:00
JianBo He d163e99d58 chore(gw): add cases for emqx_gateway_conf 2021-09-26 15:19:55 +08:00
JianBo He f68dfff0d6 refactor(gw): refactor config hot-upgrade mechnism 2021-09-26 15:19:55 +08:00
JianBo He a9e32ac106 chore(gw): fix gatway enable/1 not working 2021-09-26 15:19:55 +08:00
JianBo He d8176f4378 chore(gw): pass listener id into listener params 2021-09-26 15:19:55 +08:00
JianBo He 3e033b419c refactor(gw): integrate with authn 2021-09-26 15:19:55 +08:00
JianBo He eda94f5754 chore(gw): more comment for coap options 2021-09-26 15:19:55 +08:00
JianBo He aa03023811 chore(gw): http-api for loading gateway 2021-09-26 15:19:55 +08:00
lafirest e31e175e47 fix(schema): fix some time unit in schema 2021-09-26 14:38:53 +08:00
Zaiming Shi 97e1cf65b7 refactor(schema): make a client ssl options schema
client and server ssl options share some common fields
this commit make an abstraction for the common fields
then export server_ssl_options_schema/2 and client_ssl_options_schema/1
for other schema modules to call
2021-09-23 16:56:02 +02:00
Zaiming Shi fbd5701989 fix(emqx_schema): make ssl config schema right 2021-09-23 16:56:02 +02:00
JianBo He 2fe96a3ad0 chore(gw-lwm2m): format emqx_lwm2m_tlv_SUITE 2021-09-17 18:13:57 +08:00
JianBo He 6da1196244 chore(gw-lwm2m): refine emqx_tlv_SUITE cases 2021-09-17 18:13:57 +08:00
lafirest 24eb0ac7bb
Merge pull request #5721 from lafirest/test/coap_case
test(emqx_coap): add some test case
2021-09-17 09:46:50 +08:00
lafirest a83882a3b8
Merge pull request #5726 from lafirest/test/emqx_lwm2m
test(emqx_lwm2m): remove the lwm2m_coap dependency
2021-09-17 09:41:48 +08:00
JimMoen deac54c847 chore(for editor): Add comments for Emacs major mode. 2021-09-16 15:43:30 +08:00
lafirest acbbbbcd24 test(emqx_lwm2m): remove the lwm2m_coap dependency 2021-09-14 11:20:53 +08:00
lafirest 99566f12bb test(emqx_coap): add some test case 2021-09-14 11:11:30 +08:00
zhongwencool 86eb6605f1
Merge pull request #5623 from zhongwencool/cluster-call-api
feat(cluster-call): support confirm success after all mfa apply ok
2021-09-13 16:03:47 +08:00
JianBo He 94c51f9253 chore(gw): fix dialyzer warnings 2021-09-10 18:41:23 +08:00
JianBo He 18ed1c9794 chore(gw): add listeners apis 2021-09-10 18:41:23 +08:00
lafirest 9fd9e09721
Merge pull request #5708 from lafirest/test/emqx_lwm2m
test(emqx_lwm2m): add some time intervals between test operations
2021-09-10 18:02:42 +08:00
lafirest b8d4c12008 test(emqx_lwm2m): add some time intervals between test operations 2021-09-10 14:42:29 +08:00
Zaiming Shi cca3a4414f fix(bin/emqx): do not try to find vm.args file for cold_eval 2021-09-10 07:28:12 +02:00