Commit Graph

213 Commits

Author SHA1 Message Date
JimMoen
2a1fba97da test(auth): resource use connector provided default port 2022-02-15 10:41:26 +08:00
JimMoen
ab7c2b72e3 refactor(connector): db connector provide default port 2022-02-15 00:51:48 +08:00
zhongwencool
498434826a feat(schema): schema support epoch_second, epoch_millisecond type. 2022-02-14 11:35:32 +08:00
zhongwencool
47b1dde7fd
Merge pull request #6949 from zhongwencool/add-qos-type
feat(schema): support qos type.
2022-02-09 16:13:11 +08:00
zhongwencool
36cf00108c feat(schema): support qos type. 2022-02-09 15:16:43 +08:00
Chris
d0b0b05aa4 fix: decouple suite tests 2022-02-08 14:53:01 +01:00
zhongwencool
5f2618912f chore(format): format port by ts 2022-02-08 11:03:54 +08:00
zhongwencool
b50ceac9bb chore(listener): change the listener binding format 0.0.0.0:port to :port. 2022-02-08 10:28:10 +08:00
zhongwencool
6a701e098f feat(shell): add restricted shell and user_default 2022-02-07 15:33:59 +08:00
zhongwencool
8041524d20 chore(dashboard): warning wehn stop dashboard listener not found. 2022-01-29 10:36:53 +08:00
zhongwencool
ec5d1b1463 feat(dashboard): support bind specific ip(port or ip:port). 2022-01-28 16:52:03 +08:00
Zaiming (Stone) Shi
d6f7ffec3c
Merge pull request #6881 from zmstone/refactor-upgrade-hocon-0.23.0
refactor: upgrade to hocon 0.23.0
2022-01-27 15:48:23 +01:00
Kian-Meng Ang
fc92e4c8bf docs: fix typos 2022-01-27 12:29:38 +01:00
Zaiming (Stone) Shi
252d7e85d9 refactor: call new hocon apis 2022-01-27 00:23:08 +01:00
JimMoen
b950042cbf refactor(api): prometheus swagger spec 2022-01-21 14:09:42 +08:00
JimMoen
d8f49f8a5f
Merge pull request #6732 from JimMoen/telemetry-api-refactor
refactor(api): telemetry api swagger spec
2022-01-14 09:36:54 +08:00
k32
6207e93e93 refactor(dashboard): Decorate remote procedure calls 2022-01-13 13:14:59 +01:00
JimMoen
82e3565344 chore: major mode file variable for Emacs 2022-01-13 15:53:47 +08:00
JianBo He
af2868e598 chore(dashboard): change root name emqx_dashboard > dashboard 2022-01-12 13:51:34 +08:00
zhongwencool
3bdfa183f3
Merge pull request #6666 from JimMoen/merge-5.0-beta.3-to-master
Merge 5.0 beta.3 to master
2022-01-06 18:20:30 +08:00
JimMoen
9a115b99a4 Merge remote-tracking branch 'emqx/release-5.0-beta.3' into merge-5.0-beta.3-to-master 2022-01-06 14:08:45 +08:00
Zaiming (Stone) Shi
63167cea70 chore: update copyright 2022-01-05 20:55:00 +01:00
zhongwencool
303707d69d fix: make sure authz headers is binary. 2022-01-05 15:11:16 +08:00
Zaiming (Stone) Shi
65b1ce80d9 chore: fix deps discrepancy 2022-01-03 11:47:43 +01:00
Zaiming (Stone) Shi
2898fa76e1 Merge remote-tracking branch 'origin/release-5.0-beta.3' into merge-5.0-beta.3-to-master 2022-01-03 11:39:06 +01:00
zhongwencool
d16362af96
Merge pull request #6547 from zhongwencool/trace-formatter
feat(trace): replace logger_formatter by emqx_trace_formatter
2021-12-30 23:40:59 +08:00
JimMoen
ff3707fbdc
Merge pull request #6565 from JimMoen/fix-redis-servers-field
fix(connector): redis cluster `servers` field
2021-12-30 19:33:12 +08:00
DDDHuang
c2e36b041b fix: dashboard return type 2021-12-30 18:53:09 +08:00
JimMoen
39c29b2396 fix(connector): redis cluster servers field 2021-12-30 15:37:53 +08:00
DDDHuang
db9d269034 fix(dashboard): batter auth failed response message 2021-12-30 10:29:20 +08:00
zhongwencool
43141dffee
Merge branch 'release-5.0-beta.3' into trace-formatter 2021-12-29 22:37:59 +08:00
DDDHuang
34dfc327f3 fix(api): auth failed with basic type check 2021-12-29 19:34:13 +08:00
zhongwencool
04313dc044 fix(trace): download trace api not working 2021-12-29 19:03:54 +08:00
zhongwencool
0712fc1e75 chore(schema): remove emqx_schema:unicode_binary/0 2021-12-28 23:50:12 +08:00
Thales Macedo Garitezi
0020cf592f
Merge remote-tracking branch 'origin/master' into build-with-mix-mkII 2021-12-28 11:28:40 -03: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
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
JimMoen
6f28e103d0 fix(dashobard): statistical diagram timestamp use UTC time 2021-12-20 19:21:19 +08:00
JimMoen
3a3226fc78 fix(dashboard): enable dashboard by default 2021-12-17 11:20:23 +08:00
zhongwencool
e4a21fd90d fix: merge from master 2021-12-15 16:24:25 +08:00
zhongwencool
f95ef04cf7
Merge branch 'master' into api-key-secret 2021-12-15 16:01:09 +08:00
Thales Macedo Garitezi
95de2d3467
fix(monitor): fix return value on badrpc
If the rpc in `emqx_dashboard_monitor_api:get_collect/1` fails, an
empty map is return.  But the current function expects a 4-tuple,
which results in a 500 error returned on such occasions.

```
curl -su admin:public localhost:8888/api/v5/monitor/current | jq .
{
  "code": "INTERNAL_ERROR",
  "message": "error, function_clause, [{emqx_dashboard_monitor_api,format_current_metrics,[[#{},{0,0,0,0},{0,0,0,0}],{0,0,0,0}],[{file,\"emqx_dashboard_monitor_api.erl\"},{line,179}]},{emqx_dashboard_monitor_api,current_counters,2,[{file,\"emqx_dashboard_monitor_api.erl\"},{line,167}]},{minirest_handler,apply_callback,3,[{file,\"minirest_handler.erl\"},{line,112}]},{minirest_handler,init,2,[{file,\"minirest_handler.erl\"},{line,38}]},{cowboy_handler,execute,2,[{file,\"cowboy_handler.erl\"},{line,41}]},{cowboy_stream_h,execute,3,[{file,\"cowboy_stream_h.erl\"},{line,318}]},{cowboy_stream_h,request_process,3,[{file,\"cowboy_stream_h.erl\"},{line,302}]},{proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,226}]}]"
}
```
2021-12-14 17:56:32 -03:00
Thales Macedo Garitezi
0300403fc0
fix(admin): inconsistent return type on empty inputs
If an empty username or password are given during the initialization
of `emqx_dashboard_admin`, it'll return just the atom `ok`, which
breaks the expected `{ok, _}` in `emqx_dashboard_app:start/2`.

```
{'EXIT',
 {{failed_to_start_app,emqx_dashboard,
   {emqx_dashboard,
    {bad_return,
     {{emqx_dashboard_app,start,[normal,[]]},
      {'EXIT',
       {{badmatch,ok},
        [{emqx_dashboard_app,start,2,
          [{file,
            "/home/thales/dev/emqx/emqx/apps/emqx_dashboard/src/emqx_dashboard_app.erl"},
           {line,32}]},
         {application_master,start_it_old,4,
          [{file,"application_master.erl"},{line,293}]}]}}}}}}}}
```
2021-12-14 17:51:50 -03: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
zhongwencool
0614c157ec fix(elvis): elvis warning 2021-12-09 16:42:10 +08:00
zhongwencool
cf11f3f8ee feat(api-key): support api_key/secret 2021-12-09 16:42:10 +08:00
Zaiming (Stone) Shi
5525cb3262 refactor: only apply environment variables on base config 2021-12-06 08:00:42 +01:00
zhongwencool
1f6e2e7397 chore: add test for sub fields 2021-12-01 12:01:44 +08:00
Zaiming (Stone) Shi
d2fa0a71f4 refactor: give psk auth a better namespace 2021-12-01 00:33:20 +01: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
zhouzb
63f1d88ed3 chore(dashboard): disable by default 2021-11-22 22:23:06 +08:00
Shawn
f0c61068e8 fix(authn): test cases issues 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
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
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
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
b3f9220d02 style: make elvis happy 2021-11-15 16:30:44 +08:00
JimMoen
106aa559e0 fix(api): DELETE success wrongly returned code 200 2021-11-15 16:30:44 +08:00
DDDHuang
1476accd63
fix: monitor bad mnesia write & rpc call (#6060) 2021-11-15 15:28:19 +08:00
DDDHuang
bc6e49804f
feat: support CORS request
feat: support CORS request
2021-11-11 20:27:39 +08:00
zhongwencool
7a5da76197
Mgmt http api banned (#5998)
* fix(swagger): don't transform [log,publish] to a list.pwd

* chore: replace banned-api by hocon schema

* fix(api): code style warning
2021-11-11 16:35:29 +08:00
zhongwencool
eea789451b
feat: sha3_256 dashboard account's password (#6084) 2021-11-09 15:41:28 +08:00
Ilya Averyanov
796553b5ea fix(authn api): eliminate possible atom leak 2021-11-01 16:51:48 +03:00
Ilya Averyanov
800b4b32c7
refactor(authn api): use config schemas for request validations (#5999) 2021-11-01 17:52:03 +08:00
zhongwencool
e62fde321c
Emqx alarm (#5994)
* chore(alarm): normalize_message outside emqx_alarm

* chore(alarm): don't cache config in emqx_alarm; remove dirty_write/read; add desc/example to alarm; add more test

* chore(alarm_api): alarm_api with hocon schema

* fix: activted's nullable is true

* fix(swagger): translate map to object

* fix(cluster_rpc): debug failed cluster_rpc test

* fix: Update schema description

Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>

Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2021-10-28 18:03:51 +08:00
Zaiming (Stone) Shi
4dbe3ccf71
refactor(dashboard): rename 'password' field to 'pwdhash' (#5990)
* refactor(dashboard): rename 'password' field to 'pwdhash'

rename as it is not plaintext password stored in db

* refactor(emqx_dashboard): rename records

* test(emqx_dashboard_token): add test case to cover match specs
2021-10-26 20:41:33 +08:00
zhongwencool
90795a6f42
Rewrite http api with hocon schema (#5980)
* feat: rewrite http api with hocon

* fix: crash when default_username is empty

* chore: udpate rewrite api with emqx_conf's cluster_rpc

* fix: spec wrong
2021-10-22 17:01:29 +08: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
37a1c45af0 fix(dialyzer): Fix problems found by dialyzer 2021-10-18 22:04:05 +02:00
k32
07ea6e5689 fix(mria): Fix startup sequence 2021-10-18 22:04:05 +02: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
zhongwencool
c73205a589
Ct helpers migrate (#5943)
* chore: common test

* chore: delete emqx_ct_helpers deps
2021-10-18 13:45:52 +08:00
Tobias Lindahl
aa19c2a908 chore: Remove emqx_ct_helpers as dependency 2021-10-15 10:40:57 +02:00
Zaiming (Stone) Shi
c5b2bc86a2
chore(dashboard): enable by default (#5926) 2021-10-14 21:05:02 +08:00
lafirest
8a2c5e2422 feat(rate_limiter): implement hierarchical token buckets 2021-10-14 10:20:05 +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
Zaiming Shi
e9991dca02 chore(dashboard): Allow test mode of the dashboard 2021-09-30 09:28:47 +02:00
DDDHuang
e62af95d0d fix: close dashboard before beta 1 2021-09-30 09:45:48 +08:00
zhongwencool
776604a90b chore(dashboard): make dirty operation into ekka_mnesia transation 2021-09-26 21:42:26 +08:00
zhongwencool
cae79a0584 feat(swagger): move public page/limit/error_code to emqx_dashboard_swagger module 2021-09-24 21:51:53 +08:00
zhongwencool
7e494afd98 fix(swagger): desc must be binary 2021-09-24 15:55:49 +08:00
zhongwencool
8c441673c2 feat(delayed_api): support hocon schema 2021-09-24 15:22:05 +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
zhongwencool
29b96bae2e fix(dashboard): create user return 405 2021-09-23 11:25:02 +08:00
zhongwencool
085d8e8efa chore(schema): restore space 2021-09-22 16:41:00 +08:00
zhongwencool
96fad3d225 chore(swagger): support check_schema option, default is false. 2021-09-22 13:37:08 +08:00
zhongwencool
39423665e9 chore(swagger): check hocon schema with #{override_env => false} 2021-09-22 09:07:14 +08:00
zhongwencool
dab5fbf285 feat(swagger): swagger support hocon schema 2021-09-21 21:41:16 +08:00
JimMoen
deac54c847 chore(for editor): Add comments for Emacs major mode. 2021-09-16 15:43:30 +08:00