-
Notifications
You must be signed in to change notification settings - Fork 517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Use JSONSchema to verify the original data submitted by users #986
Conversation
Codecov Report
@@ Coverage Diff @@
## master #986 +/- ##
==========================================
- Coverage 42.07% 41.00% -1.08%
==========================================
Files 23 24 +1
Lines 1414 1478 +64
==========================================
+ Hits 595 606 +11
- Misses 730 779 +49
- Partials 89 93 +4
Continue to review full report at Codecov.
|
} | ||
}`, | ||
Headers: map[string]string{"Authorization": token}, | ||
ExpectStatus: http.StatusBadRequest, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need to check the response body
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
any news?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed.
# Conflicts: # api/internal/route.go
api/filter/schema.go
Outdated
if err != nil { | ||
errMsg := fmt.Sprintf("init validator failed: %s", err) | ||
c.AbortWithStatusJSON(http.StatusBadRequest, consts.InvalidParam(errMsg)) | ||
log.Errorf(errMsg) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use log.Error
.
Doesn't the golangci-lint find this error?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed.
err = validator.Validate([]byte(reqBody)) | ||
assert.Nil(t, err) | ||
|
||
// config with not exists field, should be failed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not exists => non existent
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed.
@nic-chen I think we may need merge the |
@tokers @ShiningRush @gxthrj please take a look at this PR, need your confirm ^_^ |
|
||
func parseCert(crt, key string) ([]string, error) { | ||
if crt == "" || key == "" { | ||
return nil, errors.New("invalid certificate") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the error message is not accurate, should be "empty certificate or private key"
} | ||
|
||
//domain | ||
snis := []string{} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just use var snis []string
is OK.
} | ||
} else { | ||
if x509Cert.Subject.Names != nil && len(x509Cert.Subject.Names) > 1 { | ||
var attributeTypeNames = map[string]string{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use short assign way:
attributesTypeNames := ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why the length should be larger than 1.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why the length should be larger than 1.
fixed.
@@ -49,7 +49,7 @@ func (err ApiError) Error() string { | |||
} | |||
|
|||
func InvalidParam(message string) *ApiError { | |||
return &ApiError{400, 400, message} | |||
return &ApiError{400, 10000, message} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why changes the number, the number is too magic, can i reference some docs?
…pache#986) * fix: JSONSchema verification should be performed on the original data submitted by the user * fix: remove debug info * test: add test cases * fix: error info * fix: script data type * fix: script data type * fix: error * fix: error message * fix: CI failed * fix: error * fix: according to review * fix: e2e test case * fix: according to review
* fix: remote_addrs (apache#948) * test: fix CI unstable (E2E) (apache#953) * test: e2e test chash upstream hash on (consumer, header, cookie) (apache#936) related apache#908 * fix: hack to fix the checking of `remote_addrs` (apache#952) * fix: hack to fix the checking of `remote_addrs` * fix: use correct method to get object's length (apache#957) * fix: use correct method to get object's length * api(conf/conf.yaml): aligned comments (apache#969) * fix: increase the sleep time to fix e2e test unstable issue (apache#976) * feat: support disable property for json schema according to APISIX's change (apache#904) * feat: support disable property for json schema according to APISIX's change * feat: add etcd basic auth support (apache#951) * add etcd basic auth support * test: e2e test balancer (roundrobin upstream) (apache#972) close apache#988 * test: e2e test chash upstream with key (wrong key, vars) (apache#971) close apache#993 * fix: fix router name conflict in route_service_upstream_test.go. * fix(Plugin): use codemirror instead of form in plugin module (apache#898) * feat(plugin): added code mirror * chore: format codes * feat(Plugin): remove a7 plugin * feat(Plugin): remove @api7-dashboard/plugin * feat: added codes format * feat: use local icon files * feat: update ASF Release cfg * feat: update ASF Release cfg * feat(CI): supoort markdown links checker (apache#981) * fix: English spelling (apache#1002) * docs: optimize metrics document (apache#970) * docs: optimize metrics document * docs: modified style * docs: modified style * Update USER_GUIDE.zh-CN.md * Update USER_GUIDE.zh-CN.md * Update USER_GUIDE.md Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: change proxy target to localhost when test (apache#1001) * feat: change proxy target to localhost when test * Update frontend-e2e-test.yml * Update frontend-e2e-test.yml * docs(contributing): added commit message guidelines (apache#1007) * chore: enrich error log (apache#977) * chore: enrich error log * test: add test case for log caller * fix: test error * test * fix: use invalid ip * fix: cli test error * fix: typo * fix: spelling (apache#1004) * feat: added priority (apache#1006) * docs: update README's style (apache#1009) * docs: update README's style * Update README.zh-CN.md * docs: only keep English docs (apache#1011) related apache#1009 * feat: add access log for Manager API (apache#994) * feat: access log * feat: access log * chore: access log format * chore: access log format * test: add test case for access log * chore: add access log example * fix: according to review * test: add unit test for `logging` middleware * fix: license checker CI failed * release: new version 2.1.1 (apache#959) * docs: update CHANGELOG for v2.1.1 * docs: update CHANGELOG for v2.1.1 * docs: update CHANGELOG for v2.1.1 * docs: update deployment doc for v2.1.1 * docs: update CHANGELOG for v2.1.1 * feat(web): upgrade web version * docs: update README and changelog * feat(docs): update latest version to 2.1.1 * fix(docs): use correct apisix's version Co-authored-by: nic-chen <johz@163.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix(husky): pass the web folder (apache#1008) * fix(husky): unset git dir * chore: remove private flag * chore: remove useless env * chore(codes): format codes * chore(web): update version * feat: support to show version info when manager-api starting (apache#900) fix apache#866 fix apache#853 * fix: delete POST method in /apisix/admin/consumer (apache#852) (apache#868) fix apache#852 * Revert "fix: delete POST method in /apisix/admin/consumer (apache#852) (apache#868)" (apache#1019) This reverts commit 78db532. * feat: use Swagger to maintain API document for Manager API (apache#992) * feat: api doc * feat: api doc * feat: api doc * fix: CI failed * fix: remove useless comments * fix: according to review * fix: license * fix: according to review * fix: according to review * chore: remove useless doc file * fix: according to review * fix: typo * feat: remove husky from the web (apache#1018) * feat: remove husky from the web * chore: remove husky folder * fix: PATCH method bug (apache#1005) * fix: PATCH method bug * test: use sub path patch in e2e test * fix: lint * fix: naming stype * fix: according to review * fix: style * feat: add a unit test for consumer and remove implicit init (apache#859) * feat: add a unit test for consumer and remove implicit init * fix: add implict init function to compatible integration tests * chore: add other cosumer unit test and refacotor some code * fix: remove intergration instead of unit test * fix: add EOL for file * chore: use sub test to run table test * chore: test desc * chore: test desc Co-authored-by: Wen Ming <moonbingbing@gmail.com> * fix: Use JSONSchema to verify the original data submitted by users (apache#986) * fix: JSONSchema verification should be performed on the original data submitted by the user * fix: remove debug info * test: add test cases * fix: error info * fix: script data type * fix: script data type * fix: error * fix: error message * fix: CI failed * fix: error * fix: according to review * fix: e2e test case * fix: according to review * ci: support dependency bot (apache#1021) * ci: support dependency bot * Update dependabot.yml * feat: update api's version to 2.2-rc1 (apache#1025) * fix: remove the dependency on git from the build script (apache#1024) * fix: remove the dependency on git from the build script * ci: add test for release * ci: add test for release * test * fix error * fix error * ci: support gitleaks to scan hardcoded password (apache#1022) * ci: support codeql-analysis (apache#1020) * ci: support codeql-analysis * Update codeql-analysis.yml * Update codeql-analysis.yml * chore(deps): bump actions/setup-node from v1 to v2.1.3 (apache#1029) Bumps [actions/setup-node](https://github.com/actions/setup-node) from v1 to v2.1.3. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v1...27082ce) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ci: fix release test run failed (apache#1032) fix release test run failed * fix(plugin): Inject the disable property into every plugin's jsonschema, the same as manager-api. (apache#1031) uses the correct Proxy host fix apache#1027 fix apache#1028 * chore(deps): bump wei/wget from v1 to v1.1.1 (apache#1046) * refactor: 🧹 remove trailing whitespace (apache#1052) * feat(CI): add a GitHub Action to lint the Markdown (apache#1053) - Add a Markdownlint config file - Lint Markdown for MD038/no-space-in-code Spaces inside code span elements https://github.com/markdownlint/markdownlint/blob/master/docs/RULES.md#md038---spaces-inside-code-span-elements * docs: update CHANGELOG for v2.2 (apache#1037) * docs: update CHANGELOG for v2.2 Co-authored-by: nic-chen <johz@163.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat(CI): add a GitHub Action to lint the YAML (apache#1060) - add a `.yamllint` config file - lint some YAML * chore(deps): bump actions/setup-go from v1 to v2.1.3 (apache#1030) Bumps [actions/setup-go](https://github.com/actions/setup-go) from v1 to v2.1.3. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@v1...37335c7) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): update actions/setup-node requirement to v2.1.4 (apache#1062) Updates the requirements on [actions/setup-node](https://github.com/actions/setup-node) to permit the latest version. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/commits/c46424eee26de4078d34105d3de3cc4992202b1e) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: absolute Paths conf.WebDir (apache#1055) * fix: absolute Paths conf.WebDir * style: use filepath.Join to splicing path, change conf.WebDir to 'html/' * style: use success code to check test return Co-authored-by: fu_changjie <834876355@qq.com> * feat: Refactor frontend e2e (apache#1056) * feat: remove puppeteer dependency * feat: init cypress * feat: add login logout test case * feat: add crete and delete test case * feat: add e2e test serveUrl * feat: refactor fe e2e ci * feat: update package.json * feat: update package.json * feat: update package.json * docs: add front-end-e2e.md * feat: add ASF licenses * feat: add ASF licenses * fix: not cache cypress error * feat: Remove unuseful files * feat: update frontend-e2e-test.yml * feat: clean code * feat: add login with invalid credentials test case * feat: clean code * feat: Optimization test cases * feat: set english as default language * feat: set login default language * feat: add search route befofe delete * feat: support search route by label (apache#1061) * feat: support search route by label (apache#861) * doc: add search by route * feat: add more unit test * update: check the label parameter * fix: unit test * feat: implement API to get apisix instances status (apache#958) related apache#849 . * fix: create_and_delete_route wrong way to locate prometheus button (apache#1069) * feat(plugin): use ajv to validate data (apache#1047) * feat: use ajv to validate data * style: format codes * style: format codes * style: remove extra ; * style: format codes * docs: update README to remind that the master version should work with the APISIX master version. (apache#1071) * feat: refactor online debug for backend (apache#979) * feat: refactor online debug be * fix: update test * fix: upate e2e test * fix: e2e test * fix: e2e test * fix: debug * fix: debug * fix: case 2 * fix: more cases * fix: e2e * fix: e2e * fix: e2e * fix: e2e * fix: e2e * fix: e2e * fix: e2e * fix: e2e * fix: e2e * fix: e2e * fix: typo * fix: add Protocol to on debug rewarding * fix: ci * fix: ci * fix: ci * fix: enhancement refer to code review * fix: define global variable * fix: put route_online_debug into a separate file * fix: typo * fix: add license Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: refactor online debug for frontend (apache#978) * feat: refactor online debug fe * fix: lint errors * fix: update yarn.lock * fix: url required * fix: update refer to the review * fix: ci error * fix: update refer to view * fix: update yarn.lock * fix: add attr protocol to debug request * fix: update params name * fix: update yarn.lock * fix: update code review * fix: lint errors * fix: typo * fix: codemirror height * fix: update yarn.lock * feat: put server_info under the admin api (apache#1076) * feat: added info page (apache#949) * add: Static Info Pages * fix: 代码格式化,使用Select组件 * fix: 优化Select组件和表格联动 * fix: ./Info.less error not found. * fix: Format code * fix: delete console.log() * fix: Optimized code * fix: Optimized code * fix: Modify data, wait for api. * feat: integrate with API * fix: format codes * fix: i18n * fix: link to instructions for use * fix: format codes * fix: format codes * fix: format codes * fix: node type * Update web/src/pages/ServerInfo/List.tsx Co-authored-by: litesun <sunyi@apache.org> * fix: format codes Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: litesun <sunyi@apache.org> * feat(FE): update route e2e (apache#1074) * Update schema to master (apache#1080) * debug * fix: sort schema.json * fix: unit test remote_addr validate pattern * fix: update remote_addr validate failed msg Co-authored-by: nic-chen <johz@163.com> * feat: active check support custom port (apache#1078) * feat: active check support custom port * fix: omit null value * Update web/src/pages/Upstream/locales/en-US.ts Co-authored-by: litesun <sunyi@apache.org> Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: litesun <sunyi@apache.org> * feat: support to line feed (apache#1084) * chore: remove Lua dependency (apache#1083) * chore: remove Lua dependency * feat: use selector to choose methods (apache#1082) * fix: "method" can be null value * Update RequestConfigView.tsx Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: e2e test cases unstable (apache#1073) * Refactor publish offline be (apache#1081) * feat: support patch in route module * fix: add test cases refer to the code review * fix: define status in route struct * fix: set default status for route * test: update test cases * fix: update test cases * fix: test cases failed * fix: add sleep after create route * fix: update sleep * fix: test case * fix: use a same type for status Co-authored-by: nic-chen <johz@163.com> * feat: added websocket tab for route (apache#1079) * feat: added websocket tab for route * Update RequestConfigView.tsx Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: refactor publish/offline fe (apache#991) * feat: refactor online debug fe * fix: use PATCH instead of PUT * fix: bug * fix: code review * fix(FE): delete route error Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: litesun <sunyi@apache.org> * feat: upstream support set `pass_host` parameter (apache#1088) * feat: upstream support set `pass_host` parameter * feat: i18n * feat: support labels list (apache#1072) * feat: support labels list * feat(FE): allow user write FE e2e by using local manager-api server (apache#1090) * feat: add local manager-api mode when write FE e2e test case * feat: update package.json * fix: add protocol select (apache#1092) * fix: error throws when delete all params * fix: add protocol select * fix: add online debug to USER_GUIDE.md (apache#1091) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * test: add frontend e2e test (create and delete consumer with key-auth) (apache#1068) * test: add front e2e test (create and delete consumer with key-auth) * add invaild json check * test: modify indentation, modify method for access consumer page, add JSON.stringify * test : modify indentation * remove useless code, modify JSON.stringify() * chore: modify comment Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: misspelling (apache#1101) * ci: display more meaningful information when running E2E test cases failed (apache#1012) * ci: display more meaningful information when running E2E test cases fail * feat: provide the ability to view plugin type and other properties (apache#1111) * feat: add test cases for rejecting request data if it contains an empty array (apache#1112) * feat: add test cases for empty array * fix: when enable or disable existing SSL, an error occurred (apache#1064) * fix: when enable or disable existing SSL, an error occurred * fix: keep the code uniform * fix: lint * fix: keep the code uniform * fix: license * chore: add comment to note that json.Marshal and json.Unmarshal may cause the precision loss Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: YuanSheng Wang <membphis@gmail.com> * fix: not allowed to specify `create_time` and `update_time` when create/edit route, service, upstream and consumer (apache#1110) Related apache#933 . * feat: add spell checker (apache#1013) (apache#1107) Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: Alex Zhang <tokers@apache.org> * fix: delete POST method in /apisix/admin/consumer (apache#1109) fixed apache#852 related apache#868 * chore: introduce corba as the cli scafford (apache#773) related apache#739 * feat(FE): add service module (apache#1089) * feat: init service * feat: add service list page * feat: add service step header * feat: add basic information page * feat: add plugin page * feat: update license * feat: add create service * feat: add list operation * feat: add edit mode * feat: add service edit * feat: remove useless file * feat: clean code * feat: validate upstream form * feat: update codes * feat: update UpstreamForm * feat: add service_id in route step1 page * feat: update code * feat: update comment * feat: update route transform * fix: upstreamForm not update when upstream_id change * feat: add init upstreamFrom default value Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: add route group (apache#999) * feat: added route label search * fix: react key warning * feat: add label drawer * feat: add save and cancel button in drawer * feat: added edit feature in labelDrawer * fix: lost click event when div child is empty * feat: update route transform with labels * feat: add AutoComplete * feat: use form.list render labels * feat: clean code * fix: warning when click save button * feat: update fetchLabelList * feat: update create route * feat: update typing * Merge branch master into feat-route-group-1 * Update component.ts * feat: update code * feat: update i18n Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: when create a route without ID in request body by Admin API, it can't be displayed in Manager API (apache#1063) * fix: when the ID in body of a resource is empty, it cannot be displayed in the list * test: add test case * fix: unit test fail * fix: error * test: update test cases * test: update test cases * chore: naming style * test: add test cases for create route by POST * fix: unit test failed * fix: manager api host port for e2e * chore: sleep more time * chore: code refactor * fix: error * fix: unit test failed * fix: be consumer e2e test ci failed in pr#999 (apache#1118) * fix: be consumer e2e test ci failed in pr#999 * fix: online debug sleep Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: fix some sleep location in e2e test (apache#1123) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * chore: adjust directory structure of api (apache#1108) chore: adjust directory structure of api * fix: can not manual input in upstream (apache#1124) * fix: can not manual input * feat: update upstream Co-authored-by: 琚致远 <juzhiyuan@apache.org> * test: add frontend e2e test (smoke test for ssl) (apache#1096) * test: add frontend e2e test (smoke test for ssl) resolve apache#641 * fix: add waiting time * more test * fix: modify the delete method * test: used fixture instead of code * test: modify certificate.json to add `sni` * Update certificate.json Co-authored-by: YuanSheng Wang <membphis@gmail.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: litesun <sunyi@apache.org> * fix:value not change when upstream_id change (apache#1129) * fix: error check to ensure path id doesn't conflict body id (apache#1067) Co-authored-by: nic-chen <johz@163.com> * test: add frontend e2e test (smoke test for settings page) (apache#1105) * feat: support EWMA (apache#1131) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * test: enhance frontend e2e test stability (consumer) (apache#1116) * test: fix frontend e2e test (consumer test unstable) * chore: change comment to lowercase * chore: add ; symbol Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: YuanSheng Wang <membphis@gmail.com> * test: add frontend e2e test (smoke test for metrics page) (apache#1104) * test: add frontend e2e test (smoke test for metrics page) * fixed wrong case title * update the key name Co-authored-by: YuanSheng Wang <membphis@gmail.com> * test: add frontend e2e test (create_and_delete_upstream) (apache#1066) * test: add e2e for web-create_and_delete_upstream * move to upstream folder * chore: fix code style * chore: fix code style * chore: fix code style * test: use camelCase, modify upstream name, method to access upstream list page, modify indentation * remove useless code * fixed: CI failed * chore: modify comment * add comment * fixed code style * chore: fixed title * chore: title add `should` Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: YuanSheng Wang <membphis@gmail.com> Co-authored-by: litesun <sunyi@apache.org> * feat: support global rules for Manager API (apache#1057) * feat: support global rules * feat: improve upstream i18n (apache#1097) * feat: "upstream" i18n * feat: "menu" i18n * feat: "button" i18n * fix: 'query' button for 'search' * fix: e2e text * fix: i18n * fix: i18n * Update web/src/components/RightContent/AvatarDropdown.tsx * Update web/src/locales/en-US/menu.ts * Update web/src/locales/zh-CN/menu.ts * style: format codes (#1) Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: liuxiran <belovedxixi@126.com> * fix: click avatarDropdown setting, there will be a loading appeared (apache#1132) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat(FE): fetch category from manager-api (apache#1122) * feat: fetch category from manager-api * feat: add category sort * feat: use consumer_schema in consumer module * feat: use local PluginOrchestration components * feat: add license * feat: pluginOrchestration fetch type from manager-api * feat: remove json-schema * feat: add pluginOrchestration i18n * feat: add showList sort * feat: clean code * feat: update name Co-authored-by: juzhiyuan <juzhiyuan@apache.org> * fix: minish resync_delay for e2e test (apache#922) (apache#1139) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * test: add frontend e2e test (edit and search route) (apache#1093) * test: add frontend e2e test (edit and search route) * chore: modify code style * chore: add `should` * chore: add `should` * test: add sleepTime * feat: added useForceIntl hook * feat: improve testcase * feat: added license header * feat: use Search instead of Query * fix: should edit the route case Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com> * chore: add goreport card badge in README (apache#1142) Signed-off-by: imjoey <majunjiev@gmail.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com> * fix: fetch code from master branch instead of v2.0 in Dockerfile (apache#1146) Signed-off-by: imjoey <majunjiev@gmail.com> * feat(FE): add global plugin (apache#1106) * feat: init global plugin * feat: init list page * feat: update plugin list page interaction * feat: refactor codeMirror * feat: dont validateData when disable * feat: update * feat: init plugin config * feat: add schemaType in PluginDetail * feat: use drawer to render pluginDetail * global plugin access interface * feat: add plugin sort * fix: license * feat: add scope type * style: format codes * feat: update global plugin * feat: add card background * fix: consumer e2e * fix: lint Co-authored-by: juzhiyuan <juzhiyuan@apache.org> * fix: conflicted when update global rule (apache#1152) * fix: conflicted when update global rule * fix: unit test failed Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: protable search&reset button i18n (apache#1153) * fix: protable search&reset button i18n * fix: markdown lint check error * fix: update refer to code review * fix: update refer to the code review * fix: ssl Co-authored-by: litesun <sunyi@apache.org> Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: input validate for online debug url (apache#1164) * fix: input validate for online debug url * fix: update regular expression Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat(FE): version manager (apache#1157) * style: codes-format * feat: use labels form item * style: codes-format * feat: adjust buttons * style: 调整按钮位置 * feat: 增加警告标示 * feat: added version * feat: added version * fix: redirect * style: format codes * fix: style * fix: search labels with the same key (apache#1151) * fix: search labels with the same key (apache#1130) * fix: 2020 update to 2021 (apache#1179) * fix: correct Version and GitHash output for manager-api command (apache#1162) * bug: fix Version and add GitHash for manager-api command Signed-off-by: imjoey <majunjiev@gmail.com> * feat: git hash support generating .githash for apache release Signed-off-by: imjoey <majunjiev@gmail.com> * feat: Add testcase for the new githash info Signed-off-by: imjoey <majunjiev@gmail.com> * feat: add test case for .githash content validation Signed-off-by: imjoey <majunjiev@gmail.com> * feat: Remove git command dependency for getting git hash Signed-off-by: imjoey <majunjiev@gmail.com> * fix: allow empty plugins for global rule (apache#1180) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: improve upstream e2e testcase (apache#1187) * fix(cli): support running manager-api cmd in non-default diretory (apache#1184) * fix: Support version/githash for target api-run (apache#1200) Signed-off-by: imjoey <majunjiev@gmail.com> * fix: well handle with malformed auth token in request header (apache#1206) * fix: not panic if auth token is invalid Signed-off-by: imjoey <majunjiev@gmail.com> * do not record the false in log Signed-off-by: imjoey <majunjiev@gmail.com> * feat: sync bugfix PRs with the master branch (apache#1171) * fix(FE): delete global plugin failed (apache#1170) * fix: delete global plugin failed * fix: filter disable plugins * fix: update online debug api protocol validation and error msg (apache#1166) * fix: update validation and msg * Update api/internal/handler/route_online_debug/route_online_debug.go * fix: update refer to code review Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat(cli): Show GitHash for manager-api in branch v2.3 (backport apache#1162) (apache#1181) * fix: correct Version and GitHash output for manager-api command (apache#1162) * bug: fix Version and add GitHash for manager-api command Signed-off-by: imjoey <majunjiev@gmail.com> * feat: git hash support generating .githash for apache release Signed-off-by: imjoey <majunjiev@gmail.com> * feat: Add testcase for the new githash info Signed-off-by: imjoey <majunjiev@gmail.com> * feat: add test case for .githash content validation Signed-off-by: imjoey <majunjiev@gmail.com> * feat: Remove git command dependency for getting git hash Signed-off-by: imjoey <majunjiev@gmail.com> * feat: set VERSION to 2.3 in branch v2.3 Signed-off-by: imjoey <majunjiev@gmail.com> * fix(fe): route search with status (apache#1205) * fix(fe): route search with status * fix: version and status select box allowclear * fix: remove console * fix: set create_time/update_time as omitempty (apache#1203) Signed-off-by: imjoey <majunjiev@gmail.com> * fix(FE): service issues (apache#1209) * fix: omit checks when empty * fix: desc search * fix: omit checks when empty * feat: remove desc search * feat: add create service e2e test * feat: update code * feat: update code * chore: sync json schema from Apache APISIX 2.2 (apache#1177) * chore: sync json schema from Apache APISIX 2.2 * fix: remove schema of plugins that not enable by default * fix test cases for plugin skywalking which is not enable by default * chore: expose port for control API * fix: control API config * fix yaml format * fix CI failed * fix: log path * fix: log path Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: well handle with malformed auth token in request header (apache#1206) (apache#1210) * fix: not panic if auth token is invalid Signed-off-by: imjoey <majunjiev@gmail.com> * do not record the false in log Signed-off-by: imjoey <majunjiev@gmail.com> Co-authored-by: Joey <majunjiev@gmail.com> * fix: route list search query string (apache#1197) * fix: route list search qurey string * fix: well handle with malformed auth token in request header (apache#1206) * fix: not panic if auth token is invalid Signed-off-by: imjoey <majunjiev@gmail.com> * do not record the false in log Signed-off-by: imjoey <majunjiev@gmail.com> * feat: add search lables e2e * feat: add search route labels testcase * feat: update code * Update selector.json * Update search-route.spec.js Co-authored-by: Joey <majunjiev@gmail.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: litesun <sunyi@apache.org> Co-authored-by: liuxiran <belovedxixi@126.com> Co-authored-by: Joey <majunjiev@gmail.com> Co-authored-by: nic-chen <johz@163.com> Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com> * feat: Improve consumer for i18n (apache#1212) Signed-off-by: imjoey <majunjiev@gmail.com> * fix(be): change bodyParams to string to accept any content-type (apache#1202) * fix: change bodyParams to string to accept any content-type * fix: ci error * fix: change bodyparam to type string in e2e test case * fix: ci Co-authored-by: 琚致远 <juzhiyuan@apache.org> * chore: use the correct API version (apache#1215) Co-authored-by: litesun <sunyi@apache.org> * fix: online debug body params support content-type x-www-form-urlencoded (apache#1201) * fix: online debug body params support content-type x-www-form-urlencoded * fix: body code mirror support different mode * fix: use enum instead of real string * fix: lint error Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: add tips when plugin type is auth and schemaType is not consumer (apache#1219) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix(be): search by status on the route list page is invalid (apache#1207) * fix search by status on the route list page is invalid * Fix test cases and references * Update route.go * Update route.go * Format error repair * use strconv.Itoa Method conversion uint8 * chore: use the correct API version (apache#1215) Co-authored-by: litesun <sunyi@apache.org> fix: online debug body params support content-type x-www-form-urlencoded (apache#1201) * fix: online debug body params support content-type x-www-form-urlencoded * fix: body code mirror support different mode * fix: use enum instead of real string * fix: lint error Co-authored-by: 琚致远 <juzhiyuan@apache.org> feat: add tips when plugin type is auth and schemaType is not consumer (apache#1219) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * Fix indent format problem Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: added E2E test for plugins (apache#1214) * fix(FE): delete global plugin failed (apache#1170) * fix: delete global plugin failed * fix: filter disable plugins * fix: update online debug api protocol validation and error msg (apache#1166) * fix: update validation and msg * Update api/internal/handler/route_online_debug/route_online_debug.go * fix: update refer to code review Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat(cli): Show GitHash for manager-api in branch v2.3 (backport apache#1162) (apache#1181) * fix: correct Version and GitHash output for manager-api command (apache#1162) * bug: fix Version and add GitHash for manager-api command Signed-off-by: imjoey <majunjiev@gmail.com> * feat: git hash support generating .githash for apache release Signed-off-by: imjoey <majunjiev@gmail.com> * feat: Add testcase for the new githash info Signed-off-by: imjoey <majunjiev@gmail.com> * feat: add test case for .githash content validation Signed-off-by: imjoey <majunjiev@gmail.com> * feat: Remove git command dependency for getting git hash Signed-off-by: imjoey <majunjiev@gmail.com> * feat: set VERSION to 2.3 in branch v2.3 Signed-off-by: imjoey <majunjiev@gmail.com> * fix(fe): route search with status (apache#1205) * fix(fe): route search with status * fix: version and status select box allowclear * fix: remove console * fix: set create_time/update_time as omitempty (apache#1203) Signed-off-by: imjoey <majunjiev@gmail.com> * fix(FE): service issues (apache#1209) * fix: omit checks when empty * fix: desc search * fix: omit checks when empty * feat: remove desc search * feat: add create service e2e test * feat: update code * feat: update code * chore: sync json schema from Apache APISIX 2.2 (apache#1177) * chore: sync json schema from Apache APISIX 2.2 * fix: remove schema of plugins that not enable by default * fix test cases for plugin skywalking which is not enable by default * chore: expose port for control API * fix: control API config * fix yaml format * fix CI failed * fix: log path * fix: log path Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: well handle with malformed auth token in request header (apache#1206) (apache#1210) * fix: not panic if auth token is invalid Signed-off-by: imjoey <majunjiev@gmail.com> * do not record the false in log Signed-off-by: imjoey <majunjiev@gmail.com> Co-authored-by: Joey <majunjiev@gmail.com> * fix: route list search query string (apache#1197) * fix: route list search qurey string * fix: well handle with malformed auth token in request header (apache#1206) * fix: not panic if auth token is invalid Signed-off-by: imjoey <majunjiev@gmail.com> * do not record the false in log Signed-off-by: imjoey <majunjiev@gmail.com> * feat: add search lables e2e * feat: add search route labels testcase * feat: update code * Update selector.json * Update search-route.spec.js Co-authored-by: Joey <majunjiev@gmail.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: init cypress with plugin * style: codes format * feat: added come testcases * feat: use the correct api version * feat: added tip * feat: added tip * feat: added test cases * feat: added disable * feat: added disable * feat: added disable * style: codes format * feat: added ajv formats * feat: remove useless codes Co-authored-by: litesun <sunyi@apache.org> Co-authored-by: liuxiran <belovedxixi@126.com> Co-authored-by: Joey <majunjiev@gmail.com> Co-authored-by: nic-chen <johz@163.com> Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com> * fix: sync the preload packages in schema-sync.lua (apache#1216) (apache#1221) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: add plugin icon (apache#1220) * feat: add default plugin img * feat: add plugin edit drawer tips * feat: change icon opacity to 0.2 * feat: add plugin icon * feat: update style Co-authored-by: 琚致远 <juzhiyuan@apache.org> * fix: get and head request did not contain bodyparams (apache#1239) * feat: Add backport type in PR template (apache#1230) Signed-off-by: imjoey <majunjiev@gmail.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat(FE): skip Cypress binary install when build (apache#1248) * fix: incomplete label display apache#1044 (apache#1252) * fix: Adjust the grid layout. (apache#1253) * docs: added back docs for release 2.3 (apache#1258) * Update deploy.md * doc: add changelog for v2.3 (apache#1235) * Update CHANGELOG.md Co-authored-by: liuxiran <belovedxixi@126.com> Co-authored-by: Alex Zhang <zchao1995@gmail.com> Co-authored-by: liuxiran <belovedxixi@126.com> * feat: enhance plugin schema smoke test (apache#1261) * feat: add create_time/update_time for global_rule (apache#1218) * feat: support create_time/update_time for global_rule Signed-off-by: imjoey <majunjiev@gmail.com> * Update global_rule schema with new create_time/update_time Signed-off-by: imjoey <majunjiev@gmail.com> * Fix backend Unit test failure Signed-off-by: imjoey <majunjiev@gmail.com> * fix: use BEJSON to format schema.json * fix style and code conventions Signed-off-by: imjoey <majunjiev@gmail.com> Co-authored-by: liuxiran <belovedxixi@126.com> * fix(CI): Update lint workflow so that the Markdown and YAML linters run (apache#1254) Due to the ASF's policies changing we cannot use the original GitHub Actions for linting as they are not approved Lint some YAML Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: server info page time stamp display. (apache#1256) * fix: server info page time stamp display. * fix: format codes Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: litesun <sunyi@apache.org> * fix: create route display is truncated apache#1188 (apache#1266) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * test: add backend e2e test for service (apache#1128) * test: add backend e2e test for service * test: remove commented code * test: add service with limit-count plugin test * add service with all options * modify test case Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com> * docs: update README and added DockerHub badge (apache#1264) * docs: update README and added DockerHub badge * Update deploy-with-docker.md * Update deploy-with-docker.md * chore: modify the case's filename (apache#1272) Co-authored-by: 琚致远 <juzhiyuan@apache.org> * chore: Improve the http body check in e2e test case (apache#1250) * chore: improve the http body check in e2e testcase Signed-off-by: imjoey <majunjiev@gmail.com> * Restore the test case mistakenly delete Signed-off-by: imjoey <majunjiev@gmail.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com> * docs: add readme for install Apache APISIX Dashboard with RPM package (apache#1273) * docs: add readme for install Apache APISIX Dashboard with RPM package. * fixed typo * use a new file to have detailed * fixed typo * Update deploy-with-rpm.md * Update deploy-with-rpm.md * Update docs/deploy-with-rpm.md Co-authored-by: litesun <sunyi@apache.org> Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: litesun <sunyi@apache.org> * chore: fix punctuation problem (apache#1280) * chore: lint Markdown and remove unneeded rules (apache#1274) Lint Markdown for rules: - MD009/no-trailing-spaces - MD012/no-multiple-blanks - MD022/blanks-around-headings - MD031/blanks-around-fences * test: backend e2e test for route with jwt (no algorithm) (apache#1195) * test: backend e2e test for create consumer with jwt * chore: add sleeptime * fixed: test route with jwt-auth plugin * move the new case to route_with_auth_plugin_test.go * chore: modify case desc * chore: modify jwt token name * modify method for get the token of jwt * modify file name Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com> Co-authored-by: YuanSheng Wang <membphis@gmail.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> * docs: Update PULL_REQUEST_TEMPLATE (apache#1244) * Update PULL_REQUEST_TEMPLATE * Update .github/PULL_REQUEST_TEMPLATE Co-authored-by: liuxiran <belovedxixi@126.com> * Update PULL_REQUEST_TEMPLATE * Update PULL_REQUEST_TEMPLATE Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: liuxiran <belovedxixi@126.com> * fix: Delete excess content. (apache#1285) * fix(FE): Redirect plugin should not show in route step3 (apache#1276) * feat: filter redirect plugin in route step3 * feat: add e2e test case * feat: add comment * feat: update comment * fix: omit taobao mirror (apache#1283) * fix: remove body type json (apache#1287) * fix: set get called false in the declaration (apache#1281) (apache#1282) * fix: Support string type for the script field in Route (apache#1289) * Support string type for script field in Route Signed-off-by: imjoey <majunjiev@gmail.com> * Add validating lua code when create/update routes also improve the test case in unittest and e2e Signed-off-by: imjoey <majunjiev@gmail.com> * typo fix and style format Signed-off-by: imjoey <majunjiev@gmail.com> * Improve testcases Signed-off-by: imjoey <majunjiev@gmail.com> * Addtional check the Script via log in APISIX Signed-off-by: imjoey <majunjiev@gmail.com> * ngx.log print log in error.log, instead of access.log Signed-off-by: imjoey <majunjiev@gmail.com> * Use ngx.WARN instead of INFO to enable output Signed-off-by: imjoey <majunjiev@gmail.com> * chore: sync the latest JSON Schema (apache#1301) * fix: Client-side URL redirect (apache#1284) * fix: Client-side URL redirect * fix: client-side url redirection add else case Co-authored-by: liuxiran <belovedxixi@126.com> * fix: lint error * refactor: format codes inside web directory Co-authored-by: liuxiran <belovedxixi@126.com> * fix: Login page bottom white background. (apache#1298) * fix: Login page bottom white background. * fix: update * fix: Switch Language doesn't work. (apache#1306) * chore: move the authentication middleware into droplet framework (apache#1296) * chore: move the authentication middleware into droplet framework (apache#1295) * fix: ci test * fix: code style * update: panic if can't get http.Request * fix: fix misspell * fix: fix ci * fix: fix ci * doc: change the translate of consumer. (apache#1307) * docs: add demo site's infomation (apache#1309) * fix: document link error for plugins serverless-pre-function and serverless-pre-function (apache#1297) * fix#1260 * Update PluginDetail.tsx Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: i18n (apache#1310) * fix: i18n * Update en-US.ts Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: return back the data just created via POST method in manager API (apache#1277) * return saving object for store.Create Signed-off-by: imjoey <majunjiev@gmail.com> * Add backend e2e test for returning from Create-via-POST Signed-off-by: imjoey <majunjiev@gmail.com> * Fix incorrect HTTP method Signed-off-by: imjoey <majunjiev@gmail.com> * docs: added Good first issue to README (apache#1320) * fix: ssl config support set labels (apache#1054) * fix: ssl config support set labels (apache#1050) * fix: fix e2e test * fix: ssl e2e test * fix: fix e2e test * fix: ssl e2e test Co-authored-by: 琚致远 <juzhiyuan@apache.org> * feat: implement a way to set etcd client (apache#1323) * feat: pass context for `Get` and `List` (apache#1324) * fix: upgrade @umijs/preset-react >= 1.7.11 (apache#1321) * feat: Add returning value for HTTP PUT and PATCH methods (apache#1322) * Add returning value for Updating entity (PUT/PATCH) Signed-off-by: imjoey <majunjiev@gmail.com> * Fix missing return obj when create-if-not-exist Signed-off-by: imjoey <majunjiev@gmail.com> * Fix backend Unit and e2e test Signed-off-by: imjoey <majunjiev@gmail.com> * chore: fix spelling (apache#1327) * chore: add e2e test coverage (apache#1270) * feat: add domSelector and data (apache#1339) * align dashboard menu options to the left (apache#1338) * fix wrong Co-authored-by: litesun <sunyi@apache.org> Co-authored-by: idbeta <idbeta@gmail.com> Co-authored-by: nic-chen <33000667+nic-chen@users.noreply.github.com> Co-authored-by: 琚致远 <juzhiyuan@apache.org> Co-authored-by: Radhika <56536997+96RadhikaJadhav@users.noreply.github.com> Co-authored-by: John Bampton <jbampton@users.noreply.github.com> Co-authored-by: seven dickens <41516298+dickens7@users.noreply.github.com> Co-authored-by: YuanSheng Wang <membphis@gmail.com> Co-authored-by: nic-chen <johz@163.com> Co-authored-by: Peter Zhu <starszcan@gmail.com> Co-authored-by: Vinci Xu <277040271@qq.com> Co-authored-by: Wen Ming <moonbingbing@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: fu_changjie <31716848+Fuchange@users.noreply.github.com> Co-authored-by: fu_changjie <834876355@qq.com> Co-authored-by: liuxiran <belovedxixi@126.com> Co-authored-by: guoqqqi <72343596+guoqqqi@users.noreply.github.com> Co-authored-by: Alex Zhang <tokers@apache.org> Co-authored-by: Alex Zhang <zchao1995@gmail.com> Co-authored-by: kv <gxthrj@163.com> Co-authored-by: Jinchi Zhou <jinchizhou@gmail.com> Co-authored-by: Joey <majunjiev@gmail.com> Co-authored-by: JinChen <36916582+Jaycean@users.noreply.github.com> Co-authored-by: Kishani Kandasamy <53715187+KishaniKandasamy@users.noreply.github.com> Co-authored-by: Thanoshan MV <48581379+ThanoshanMV@users.noreply.github.com> Co-authored-by: Baoyuan <baoyuan.top@gmail.com>
Please answer these questions before submitting a pull request
Why submit this pull request?
Bugfix
New feature provided
Improve performance
Related issues
close bug: config route with non-existent fields should return 400 #918
close bug: JSON schema verification should be performed on the original data submitted by the user #955
Bugfix
The usual practice in Go is to bind the request body to a structure for subsequent processing of the request body.
This will cause a problem, that is, if there is no corresponding value in the request body for the fields defined in the structure,
the bound object will automatically be assigned a value of zero.
At this time, there may be problems with json schema verification.
Use JSONSchema to verify the original data submitted by users