Commit Graph

2628 Commits

Author SHA1 Message Date
zhongwencool
f6c61189c4 chore(HTTP): prometheus or json format by accept header 2021-12-02 10:30:50 +08:00
JimMoen
a58493f7a4 test(authz): fix test suite for schema check and app start 2021-12-02 10:12:10 +08:00
JimMoen
effa3b8b90 style: make elvis happy 2021-12-02 10:12:10 +08:00
JimMoen
d7ec368884 fix(authz): fix mongo resources create 2021-12-02 10:12:10 +08:00
JimMoen
68af284570 fix(authz): http source create and update 2021-12-02 10:12:10 +08:00
zhongwencool
e7a7d64004 feat(conf): skip/fast_forward tnx_id via cluster_call cli 2021-12-02 09:30:27 +08:00
zhouzb
b983a18cdf fix(auth): replace query with cmd 2021-12-01 20:24:43 +08:00
zhongwencool
c1a7d7bede fix(conf): emqx_conf return nest error 2021-12-01 16:08:49 +08:00
zhongwencool
25c4f4aa4e
Merge pull request #6339 from zhongwencool/swagger-ct-test
chore(swagger): add test for sub fields
2021-12-01 14:12:14 +08:00
tigercl
e888e1ef8d
Merge pull request #6338 from tigercl/fix/superuser
fix(authn): fix superuser when missing is_superuser_field
2021-12-01 14:00:56 +08:00
zhongwencool
1f6e2e7397 chore: add test for sub fields 2021-12-01 12:01:44 +08:00
zhouzb
6b8997cbda fix(authn): fix superuser when missing is_superuser_field 2021-12-01 09:23:36 +08:00
Zaiming (Stone) Shi
d2fa0a71f4 refactor: give psk auth a better namespace 2021-12-01 00:33:20 +01:00
k32
a92970a904 feat(mria): Add RPC-related configuration to the schema 2021-11-30 21:59:59 +01:00
Ilya Averyanov
6b65151f69
Merge pull request #6325 from savonarola/test-authn-resources-scram
chore(authn): add SCRAM mechanism tests
2021-11-30 12:16:20 +03:00
lafirest
e196f8150d
Merge pull request #6329 from lafirest/fix/event
fix(emqx_gateway): fix the function_clause error when client disconne…
2021-11-30 16:52:11 +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
tigercl
36cece7a49
Merge pull request #6314 from JimMoen/fix-re-escape
fix(authz): placehodler regular escape
2021-11-30 10:21:28 +08:00
Ilya Averyanov
e6d7e59c18
Merge pull request #6278 from savonarola/test-authn-resources-mongo
chore(authn): add MongoDB backend tests
2021-11-29 22:27:52 +03:00
Ilya Averyanov
4941b4d1a0
Merge pull request #6316 from savonarola/test-authn-resources-jwt
chore(authn): add JWKS backend tests
2021-11-29 22:03:41 +03:00
Ilya Averyanov
0baec8e27d chore(authn): unify Mongo type parameter naming 2021-11-29 21:39:28 +03:00
Ilya Averyanov
390575eafb chore(authn): add MongoDB backend tests 2021-11-29 21:17:56 +03:00
Ilya Averyanov
4580c03ebc chore(authn): add SCRAM mechanism tests 2021-11-29 20:49:45 +03:00
JianBo He
581cb6ac5d
Merge pull request #6268 from HJianBo/reduce-case-logs
test(gw): reduce useless log print
2021-11-29 11:03:40 +08:00
Ilya Averyanov
726e25d6ae chore(authn): add JWKS backend tests 2021-11-26 18:40:21 +03:00
Thales Macedo Garitezi
284619ef86
Merge pull request #6310 from emqx/test-fix-possible-flakiness
test(flakiness): prevent possible flakiness in test

If the spawned process doesn't have enough time to be properly set up,
the returned stacktrace may be empty, making the test fail. By
synchronizing the startup, we know that the process will have a proper
stacktrace by the time of the assertion.
2021-11-26 08:09:05 -03:00
Ilya Averyanov
759b03a6ad
Merge pull request #6306 from savonarola/ct-output
chore(ct): remove verbose output during tests
2021-11-26 12:54:21 +03:00
JimMoen
1d3558ebe0 style: make elvis happy 2021-11-26 17:46:38 +08:00
zhongwencool
f697028b70
Fix ping not return pong (#6285)
* fix: ./bin/emqx ping return pong

* chore: waiting longer for logger flush log to disk

* fix: change swagger page's limit from 100 to 1000

* chore: type wrong

* fix: sync log to disk by logger_disk_log_h:filesync
2021-11-26 17:02:45 +08:00
JimMoen
b41c41570a fix(authz): placehodler regular escape 2021-11-26 15:39:42 +08:00
tigercl
124ba7a071
Merge pull request #6311 from emqx/release-5.0-beta.2
Sync bug fixes
2021-11-26 14:24:19 +08:00
tigercl
12d8ebcc15
Merge pull request #6303 from tigercl/fix/authn-jwt
fix(authn): fix jwt authn
2021-11-26 13:36:01 +08:00
zhouzb
349fd1608b style(authn): improve code formatting 2021-11-26 10:29:57 +08:00
Thales Macedo Garitezi
d6288a0b70
test(flakiness): prevent possible flakiness in test
If the spawned process doesn't have enough time to be properly set up,
the returned stacktrace may be empty, making the test fail.  By
synchronizing the startup, we know that the process will have a proper
stacktrace by the time of the assertion.
2021-11-25 17:15:07 -03:00
Ilya Averyanov
ea0fa24ce5 chore(ct): remove verbose output during tests 2021-11-25 18:30:50 +03:00
Ilya Averyanov
e6c2600718 chore(authn): add HTTP backend tests 2021-11-25 15:09:13 +03:00
zhouzb
ecd3c9f85c test(authn): add test cases for jwt authn 2021-11-25 19:03:11 +08:00
zhouzb
15654b5b28 fix(authn): add handling of invalid secret 2021-11-25 17:17:44 +08:00
zhouzb
d88bfdfe14 fix(authn): verify claims type is wrong 2021-11-25 16:42:08 +08:00
JimMoen
f74e34b6a5 fix(conf): change max_topic_levels default configuration 2021-11-25 10:11:24 +08:00
Thales Macedo Garitezi
db3f7ff749
feat(sys_mon): remove current_function
Since we now output `current_stacktrace`, `current_function` is now
redundant.
2021-11-24 12:16:16 -03:00
Thales Macedo Garitezi
a41d0d49bd
test(impossible_case): remove impossible case test
Since `emqx_vm:get_process_info/1` only accepts PIDs as arguments,
it's impossible for `emqx_sys_mon:procinfo/1` to return after
receiving the atom `undefined`.
2021-11-24 11:34:36 -03:00
Thales Macedo Garitezi
75a17431d5
feat(sys_mon): Add proc_lib:initial_call/1 and current_stacktrace
This adds the information from `proc_lib:initial_call/1` and the
current stacktrace from the process info to `emqx_sys_mon:procinfo/1`
to aid in debugging some warnings with no context such as the
following:

```
2021-11-23T12:33:59.387818+00:00 [warning] info: [{old_heap_block_size,45988046},{heap_block_size,22177879},{mbuf_size,0},{stack_size,40},{old_heap_size,22354134},{heap_size,7106339}], line: 130, mfa: emqx_sys_mon:handle_info/2, msg: large_heap, procinfo: [{pid,<0.2667.0>},{memory,579763664},{total_heap_size,68510672},{heap_size,22177879},{stack_size,40},{min_heap_size,233},{initial_call,{proc_lib,init_p,5}},{current_function,{gen,do_call,4}},{registered_name,[]},{status,running},{message_queue_len,360945},{group_leader,<0.1660.0>},{priority,normal},{trap_exit,false},{reductions,16493271},{last_calls,false},{catchlevel,4},{trace,0},{suspending,[]},{sequential_trace_token,[]},{error_handler,error_handler}]
```
2021-11-24 11:24:27 -03:00
Ilya Averyanov
3400a3b978
Merge pull request #6288 from savonarola/handle-authn-backends-own-validations
fix(authn): handle authn backends own validations
2021-11-24 15:18:11 +03:00
Ilya Averyanov
ac3707e4a9 fix(authn): handle authn backends own validations 2021-11-24 14:05:46 +03:00
zhouzb
fb6ab93f47 fix(dialyzer): fix redundant cases 2021-11-24 18:21:08 +08:00
zhouzb
261ca3d625 fix(connector): fix crash in health checking of mongo connection 2021-11-24 16:48:35 +08:00
DDDHuang
793da3d039 fix: add auto subscription swagger example 2021-11-24 16:47:33 +08:00
Tobias Lindahl
ca89a8da61
Merge pull request #6274 from emqx/persistent-sessions-ram-backend
feat(persistent_sessions): add choice between ram or disc backends in…
2021-11-24 09:25:14 +01:00
JimMoen
d7c7292321 fix(authz): placeholder regular replace 2021-11-24 11:10:30 +08:00
Ilya Averyanov
9f04ac5bfd
Merge pull request #6269 from savonarola/test-authn-resources-mysql-pgsql
chore(authn): add MySQL & PostgreSQL backend tests
2021-11-23 20:03:52 +03:00
Spycsh
fda2e86187
Merge pull request #6107 from Spycsh/slog
chore: refactor slog under emqx, conf and exhook
2021-11-23 16:39:06 +01:00
Tobias Lindahl
9a97a7a1c7 chore(persistent_session): remove quotes around boolean in config 2021-11-23 16:24:40 +01:00
Tobias Lindahl
df2dda2e10 chore(persistent_session): make more table creation parameterized 2021-11-23 16:23:47 +01:00
Tobias Lindahl
9eaedbf246 test(persistent_sessions): add back test groups lost in refactoring 2021-11-23 16:17:27 +01:00
Tobias Lindahl
46788ad31b chore(persistent_sessions): add descriptions of persistent session configs 2021-11-23 13:53:04 +01:00
Tobias Lindahl
0865fc6e57 test(persistent_sessions): increase wait time for cm unregister in test 2021-11-23 13:52:02 +01:00
Tobias Lindahl
6eb4a617bc test(persistent_sessions): make another attempt at fixing flaky test 2021-11-23 13:29:47 +01:00
zhouzb
4d92e2b6af fix(connector): fix options handling for mongo connector 2021-11-23 20:01:21 +08:00
Tobias Lindahl
08acb5d435 feat(persistent_sessions): add choice between ram or disc backends in mnesia 2021-11-23 11:51:21 +01:00
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