You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by bz...@apache.org on 2022/12/07 02:45:53 UTC
[apisix-dashboard] branch master updated: feat: basic support Apache APISIX 2.15.0 (#2680)
This is an automated email from the ASF dual-hosted git repository.
bzp2010 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git
The following commit(s) were added to refs/heads/master by this push:
new 960ccca61 feat: basic support Apache APISIX 2.15.0 (#2680)
960ccca61 is described below
commit 960ccca612776f3a6f455d49e883cc049a5ab48c
Author: Zeping Bai <bz...@apache.org>
AuthorDate: Wed Dec 7 10:45:47 2022 +0800
feat: basic support Apache APISIX 2.15.0 (#2680)
---
api/conf/conf.yaml | 42 +-
api/conf/schema.json | 2643 ++++++++++++++++++++++++++++++++----
api/test/e2e/schema/schema_test.go | 22 +-
web/src/components/Plugin/data.tsx | 256 ++--
4 files changed, 2531 insertions(+), 432 deletions(-)
diff --git a/api/conf/conf.yaml b/api/conf/conf.yaml
index 13ce71b14..01d404882 100644
--- a/api/conf/conf.yaml
+++ b/api/conf/conf.yaml
@@ -91,49 +91,79 @@ oidc:
redirect_url: http://127.0.0.1:9000/apisix/admin/oidc/callback
scope: openid
-plugins: # plugin list (sorted in alphabetical order)
+plugins:
- api-breaker
+ - authz-casbin
+ - authz-casdoor
- authz-keycloak
+ - aws-lambda
+ - azure-functions
- basic-auth
- - batch-requests
+ # - batch-requests
+ - clickhouse-logger
+ - client-control
- consumer-restriction
- cors
+ - csrf
+ - datadog
# - dubbo-proxy
- echo
- # - error-log-logger
+ - error-log-logger
# - example-plugin
+ - ext-plugin-post-req
+ - ext-plugin-post-resp
+ - ext-plugin-pre-req
- fault-injection
+ - file-logger
+ - forward-auth
+ - google-cloud-logging
- grpc-transcode
+ - grpc-web
+ - gzip
- hmac-auth
- http-logger
- ip-restriction
- jwt-auth
- kafka-logger
+ - kafka-proxy
- key-auth
+ - ldap-auth
- limit-conn
- limit-count
- limit-req
+ - loggly
# - log-rotate
+ - mocking
# - node-status
+ - opa
- openid-connect
+ - opentelemetry
+ - openwhisk
- prometheus
- proxy-cache
+ - proxy-control
- proxy-mirror
- proxy-rewrite
+ - public-api
+ - real-ip
- redirect
- referer-restriction
- request-id
- request-validation
- response-rewrite
+ - rocketmq-logger
+ - server-info
- serverless-post-function
- serverless-pre-function
- # - skywalking
+ - skywalking
+ - skywalking-logger
- sls-logger
+ - splunk-hec-logging
- syslog
- tcp-logger
+ - traffic-split
+ - ua-restriction
- udp-logger
- uri-blocker
- wolf-rbac
- zipkin
- - server-info
- - traffic-split
diff --git a/api/conf/schema.json b/api/conf/schema.json
index 08a3b2eeb..db680cd5f 100644
--- a/api/conf/schema.json
+++ b/api/conf/schema.json
@@ -721,43 +721,6 @@
"type": "object"
},
"passive": {
- "default": {
- "healthy": {
- "http_statuses": [
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 226,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308
- ],
- "successes": 0
- },
- "type": "http",
- "unhealthy": {
- "http_failures": 0,
- "http_statuses": [
- 429,
- 500,
- 503
- ],
- "tcp_failures": 0,
- "timeouts": 0
- }
- },
"properties": {
"healthy": {
"properties": {
@@ -1055,22 +1018,67 @@
"type": "object"
},
"tls": {
+ "dependencies": {
+ "client_cert": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_key"
+ ]
+ },
+ "client_cert_id": {
+ "not": {
+ "required": [
+ "client_client",
+ "client_key"
+ ]
+ }
+ },
+ "client_key": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_cert"
+ ]
+ }
+ },
"properties": {
"client_cert": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
},
+ "client_cert_id": {
+ "anyOf": [
+ {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9-_.]+$",
+ "type": "string"
+ },
+ {
+ "minimum": 1,
+ "type": "integer"
+ }
+ ]
+ },
"client_key": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
+ },
+ "verify": {
+ "default": false,
+ "description": "Turn on server certificate verification, currently only kafka upstream is supported",
+ "type": "boolean"
}
},
- "required": [
- "client_cert",
- "client_key"
- ],
"type": "object"
},
"type": {
@@ -1344,43 +1352,6 @@
"type": "object"
},
"passive": {
- "default": {
- "healthy": {
- "http_statuses": [
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 226,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308
- ],
- "successes": 0
- },
- "type": "http",
- "unhealthy": {
- "http_failures": 0,
- "http_statuses": [
- 429,
- 500,
- 503
- ],
- "tcp_failures": 0,
- "timeouts": 0
- }
- },
"properties": {
"healthy": {
"properties": {
@@ -1678,22 +1649,67 @@
"type": "object"
},
"tls": {
+ "dependencies": {
+ "client_cert": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_key"
+ ]
+ },
+ "client_cert_id": {
+ "not": {
+ "required": [
+ "client_client",
+ "client_key"
+ ]
+ }
+ },
+ "client_key": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_cert"
+ ]
+ }
+ },
"properties": {
"client_cert": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
},
+ "client_cert_id": {
+ "anyOf": [
+ {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9-_.]+$",
+ "type": "string"
+ },
+ {
+ "minimum": 1,
+ "type": "integer"
+ }
+ ]
+ },
"client_key": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
+ },
+ "verify": {
+ "default": false,
+ "description": "Turn on server certificate verification, currently only kafka upstream is supported",
+ "type": "boolean"
}
},
- "required": [
- "client_cert",
- "client_key"
- ],
"type": "object"
},
"type": {
@@ -1728,22 +1744,6 @@
"type": "object"
},
"ssl": {
- "oneOf": [
- {
- "required": [
- "cert",
- "key",
- "sni"
- ]
- },
- {
- "required": [
- "cert",
- "key",
- "snis"
- ]
- }
- ],
"properties": {
"cert": {
"maxLength": 65536,
@@ -1844,6 +1844,15 @@
],
"type": "integer"
},
+ "type": {
+ "default": "server",
+ "description": "ssl certificate type, server to server certificate, client to client certificate for upstream",
+ "enum": [
+ "client",
+ "server"
+ ],
+ "type": "string"
+ },
"update_time": {
"type": "integer"
},
@@ -1854,6 +1863,39 @@
"type": "integer"
}
},
+ "if": {
+ "properties": {
+ "type": {
+ "enum": [
+ "server"
+ ]
+ }
+ }
+ },
+ "else": {
+ "required": [
+ "cert",
+ "key"
+ ]
+ },
+ "then": {
+ "oneOf": [
+ {
+ "required": [
+ "cert",
+ "key",
+ "sni"
+ ]
+ },
+ {
+ "required": [
+ "cert",
+ "key",
+ "snis"
+ ]
+ }
+ ]
+ },
"type": "object"
},
"stream_route": {
@@ -2156,43 +2198,6 @@
"type": "object"
},
"passive": {
- "default": {
- "healthy": {
- "http_statuses": [
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 226,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308
- ],
- "successes": 0
- },
- "type": "http",
- "unhealthy": {
- "http_failures": 0,
- "http_statuses": [
- 429,
- 500,
- 503
- ],
- "tcp_failures": 0,
- "timeouts": 0
- }
- },
"properties": {
"healthy": {
"properties": {
@@ -2490,22 +2495,67 @@
"type": "object"
},
"tls": {
+ "dependencies": {
+ "client_cert": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_key"
+ ]
+ },
+ "client_cert_id": {
+ "not": {
+ "required": [
+ "client_client",
+ "client_key"
+ ]
+ }
+ },
+ "client_key": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_cert"
+ ]
+ }
+ },
"properties": {
"client_cert": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
},
+ "client_cert_id": {
+ "anyOf": [
+ {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9-_.]+$",
+ "type": "string"
+ },
+ {
+ "minimum": 1,
+ "type": "integer"
+ }
+ ]
+ },
"client_key": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
+ },
+ "verify": {
+ "default": false,
+ "description": "Turn on server certificate verification, currently only kafka upstream is supported",
+ "type": "boolean"
}
},
- "required": [
- "client_cert",
- "client_key"
- ],
"type": "object"
},
"type": {
@@ -2697,43 +2747,6 @@
"type": "object"
},
"passive": {
- "default": {
- "healthy": {
- "http_statuses": [
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 226,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308
- ],
- "successes": 0
- },
- "type": "http",
- "unhealthy": {
- "http_failures": 0,
- "http_statuses": [
- 429,
- 500,
- 503
- ],
- "tcp_failures": 0,
- "timeouts": 0
- }
- },
"properties": {
"healthy": {
"properties": {
@@ -3031,22 +3044,67 @@
"type": "object"
},
"tls": {
- "properties": {
+ "dependencies": {
"client_cert": {
- "maxLength": 65536,
- "minLength": 128,
- "type": "string"
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_key"
+ ]
+ },
+ "client_cert_id": {
+ "not": {
+ "required": [
+ "client_client",
+ "client_key"
+ ]
+ }
},
"client_key": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_cert"
+ ]
+ }
+ },
+ "properties": {
+ "client_cert": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
+ },
+ "client_cert_id": {
+ "anyOf": [
+ {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9-_.]+$",
+ "type": "string"
+ },
+ {
+ "minimum": 1,
+ "type": "integer"
+ }
+ ]
+ },
+ "client_key": {
+ "maxLength": 65536,
+ "minLength": 128,
+ "type": "string"
+ },
+ "verify": {
+ "default": false,
+ "description": "Turn on server certificate verification, currently only kafka upstream is supported",
+ "type": "boolean"
}
},
- "required": [
- "client_cert",
- "client_key"
- ],
"type": "object"
},
"type": {
@@ -3078,6 +3136,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"break_response_body": {
"type": "string"
},
@@ -3098,6 +3183,10 @@
"type": "string"
}
},
+ "required": [
+ "key",
+ "value"
+ ],
"type": "object"
},
"type": "array"
@@ -3212,6 +3301,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -3240,6 +3356,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"callback_url": {
"pattern": "^[^%?]+[^/]$",
"type": "string"
@@ -3337,6 +3480,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"access_denied_redirect_uri": {
"maxLength": 2048,
"minLength": 1,
@@ -3474,6 +3644,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"authorization": {
"properties": {
"apikey": {
@@ -3564,6 +3761,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"authorization": {
"properties": {
"apikey": {
@@ -3633,6 +3857,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -3647,31 +3898,6 @@
"type": "auth",
"version": 0.1
},
- "batch-requests": {
- "metadata_schema": {
- "properties": {
- "max_body_size": {
- "default": 1048576,
- "description": "max pipeline body size in bytes",
- "exclusiveMinimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- },
- "priority": 4010,
- "schema": {
- "$comment": "this is a mark for our injected plugin schema",
- "properties": {
- "disable": {
- "type": "boolean"
- }
- },
- "type": "object"
- },
- "scope": "global",
- "version": 0.1
- },
"clickhouse-logger": {
"metadata_schema": {
"properties": {
@@ -3690,6 +3916,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -3768,6 +4021,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -3802,6 +4082,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"allowed_by_methods": {
"items": {
"properties": {
@@ -3889,16 +4196,43 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
- "allow_credential": {
- "default": false,
- "description": "allow client append credential. according to CORS specification,if you set this option to 'true', you can not use '*' for other options.",
- "type": "boolean"
- },
- "allow_headers": {
- "default": "*",
- "description": "you can use '*' to allow all header when no credentials,'**' to allow forcefully(it will bring some security risks, be carefully),multiple header use ',' to split. default: *.",
- "type": "string"
- },
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "allow_credential": {
+ "default": false,
+ "description": "allow client append credential. according to CORS specification,if you set this option to 'true', you can not use '*' for other options.",
+ "type": "boolean"
+ },
+ "allow_headers": {
+ "default": "*",
+ "description": "you can use '*' to allow all header when no credentials,'**' to allow forcefully(it will bring some security risks, be carefully),multiple header use ',' to split. default: *.",
+ "type": "string"
+ },
"allow_methods": {
"default": "*",
"description": "you can use '*' to allow all methods when no credentials,'**' to allow forcefully(it will bring some security risks, be carefully),multiple method use ',' to split. default: *.",
@@ -3955,6 +4289,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -4012,6 +4373,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -4105,6 +4493,33 @@
],
"minProperties": 1,
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"after_body": {
"description": "body after the modification of filter phase.",
"type": "string"
@@ -4344,6 +4759,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -4377,6 +4819,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"allow_degradation": {
"default": false,
"type": "boolean"
@@ -4415,6 +4884,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"allow_degradation": {
"default": false,
"type": "boolean"
@@ -4453,6 +4949,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"allow_degradation": {
"default": false,
"type": "boolean"
@@ -4492,6 +5015,33 @@
"$comment": "this is a mark for our injected plugin schema",
"minProperties": 1,
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"abort": {
"properties": {
"body": {
@@ -4570,6 +5120,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -4589,6 +5166,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"client_headers": {
"default": {},
"description": "authorization response header that will be sent tothe client when authorizing failed",
@@ -4678,6 +5282,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"auth_config": {
"properties": {
"entries_uri": {
@@ -4788,12 +5419,39 @@
"$comment": "this is a mark for our injected plugin schema",
"additionalProperties": true,
"properties": {
- "deadline": {
- "default": 0,
- "description": "deadline for grpc, millisecond",
- "type": "number"
- },
- "disable": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "deadline": {
+ "default": 0,
+ "description": "deadline for grpc, millisecond",
+ "type": "number"
+ },
+ "disable": {
"type": "boolean"
},
"method": {
@@ -4801,6 +5459,12 @@
"type": "string"
},
"pb_option": {
+ "default": [
+ "auto_default_values",
+ "disable_hooks",
+ "enum_as_name",
+ "int64_as_number"
+ ],
"items": {
"anyOf": [
{
@@ -4877,6 +5541,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
}
@@ -4890,6 +5581,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"buffers": {
"default": {
"number": 32,
@@ -5024,6 +5742,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
}
@@ -5052,8 +5797,34 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"auth_header": {
- "default": "",
"type": "string"
},
"batch_max_size": {
@@ -5149,6 +5920,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"blacklist": {
"items": {
"anyOf": [
@@ -5312,6 +6110,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"cookie": {
"default": "jwt",
"type": "string"
@@ -5351,6 +6176,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -5431,6 +6283,26 @@
"default": "kafka logger",
"type": "string"
},
+ "producer_batch_num": {
+ "default": 200,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "producer_batch_size": {
+ "default": 1048576,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "producer_max_buffering": {
+ "default": 50000,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "producer_time_linger": {
+ "default": 1,
+ "minimum": 1,
+ "type": "integer"
+ },
"producer_type": {
"default": "async",
"enum": [
@@ -5467,6 +6339,61 @@
},
"version": 0.1
},
+ "kafka-proxy": {
+ "priority": 508,
+ "schema": {
+ "$comment": "this is a mark for our injected plugin schema",
+ "properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "disable": {
+ "type": "boolean"
+ },
+ "sasl": {
+ "properties": {
+ "password": {
+ "type": "string"
+ },
+ "username": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "password",
+ "username"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "version": 0.1
+ },
"key-auth": {
"consumer_schema": {
"properties": {
@@ -5483,6 +6410,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -5521,14 +6475,41 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
- "base_dn": {
- "type": "string"
- },
- "disable": {
- "type": "boolean"
- },
- "ldap_uri": {
- "type": "string"
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "base_dn": {
+ "type": "string"
+ },
+ "disable": {
+ "type": "boolean"
+ },
+ "ldap_uri": {
+ "type": "string"
},
"uid": {
"type": "string"
@@ -5552,6 +6533,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"allow_degradation": {
"default": false,
"type": "boolean"
@@ -5651,16 +6659,34 @@
]
}
},
- "if": {
- "properties": {
- "policy": {
- "enum": [
- "redis"
- ]
- }
- }
- },
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"allow_degradation": {
"default": false,
"type": "boolean"
@@ -5720,6 +6746,15 @@
"count",
"time_window"
],
+ "if": {
+ "properties": {
+ "policy": {
+ "enum": [
+ "redis"
+ ]
+ }
+ }
+ },
"then": {
"properties": {
"redis_database": {
@@ -5759,6 +6794,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"allow_degradation": {
"default": false,
"type": "boolean"
@@ -5858,6 +6920,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -6000,6 +7089,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"content_type": {
"default": "application/json;charset=utf8",
"type": "string"
@@ -6050,6 +7166,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -6110,6 +7253,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"access_token_in_authorization_header": {
"default": false,
"description": "Whether the access token should be added in the Authorization header as opposed to the X-Access-Token header.",
@@ -6171,6 +7341,11 @@
"description": "Whether the ID token should be added in the X-ID-Token header to the request for downstream.",
"type": "boolean"
},
+ "set_refresh_token_header": {
+ "default": false,
+ "description": "Whether the refresh token should be added in the X-Refresh-Token header to the request for downstream.",
+ "type": "boolean"
+ },
"set_userinfo_header": {
"default": true,
"description": "Whether the user info token should be added in the X-Userinfo header to the request for downstream.",
@@ -6188,6 +7363,11 @@
},
"token_signing_alg_values_expected": {
"type": "string"
+ },
+ "use_pkce": {
+ "default": false,
+ "description": "when set to true the PKEC(Proof Key for Code Exchange) will be used.",
+ "type": "boolean"
}
},
"required": [
@@ -6300,6 +7480,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"action": {
"maxLength": 256,
"pattern": "\\A([\\w]|[\\w][\\w@ .-]*[\\w@.-]+)\\z",
@@ -6369,6 +7576,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -6386,6 +7620,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"cache_bypass": {
"items": {
"pattern": "(^[^\\$].+$|^\\$[0-9a-zA-Z_]+$)",
@@ -6489,10 +7750,37 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
- "disable": {
- "type": "boolean"
- },
- "request_buffering": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "disable": {
+ "type": "boolean"
+ },
+ "request_buffering": {
"default": true,
"type": "boolean"
}
@@ -6506,6 +7794,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -6537,6 +7852,33 @@
"$comment": "this is a mark for our injected plugin schema",
"minProperties": 1,
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -6594,6 +7936,11 @@
"minLength": 1,
"pattern": "^\\/.*",
"type": "string"
+ },
+ "use_real_request_uri_unsafe": {
+ "default": false,
+ "description": "use real_request_uri instead, THIS IS VERY UNSAFE.",
+ "type": "boolean"
}
},
"type": "object"
@@ -6605,6 +7952,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -6621,6 +7995,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -6684,14 +8085,45 @@
]
},
{
+ "not": {
+ "required": [
+ "append_query_string"
+ ]
+ },
"required": [
"http_to_https"
]
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"append_query_string": {
- "default": false,
"type": "boolean"
},
"disable": {
@@ -6746,6 +8178,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"blacklist": {
"items": {
"pattern": "^\\*?[0-9a-zA-Z-._\\[\\]:]+$",
@@ -6781,10 +8240,37 @@
"version": 0.1
},
"request-id": {
- "priority": 11010,
+ "priority": 12015,
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"algorithm": {
"default": "uuid",
"enum": [
@@ -6827,6 +8313,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"body_schema": {
"type": "object"
},
@@ -6874,6 +8387,33 @@
}
},
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"body": {
"description": "new body for response",
"type": "string"
@@ -6961,6 +8501,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"access_key": {
"default": "",
"type": "string"
@@ -7070,6 +8637,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
}
@@ -7084,6 +8678,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -7119,6 +8740,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -7186,6 +8834,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -7252,6 +8927,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"access_key_id": {
"type": "string"
},
@@ -7329,6 +9031,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -7402,6 +9131,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -7497,6 +9253,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -7566,6 +9349,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -7749,43 +9559,6 @@
"type": "object"
},
"passive": {
- "default": {
- "healthy": {
- "http_statuses": [
- 200,
- 201,
- 202,
- 203,
- 204,
- 205,
- 206,
- 207,
- 208,
- 226,
- 300,
- 301,
- 302,
- 303,
- 304,
- 305,
- 306,
- 307,
- 308
- ],
- "successes": 0
- },
- "type": "http",
- "unhealthy": {
- "http_failures": 0,
- "http_statuses": [
- 429,
- 500,
- 503
- ],
- "tcp_failures": 0,
- "timeouts": 0
- }
- },
"properties": {
"healthy": {
"properties": {
@@ -8083,22 +9856,67 @@
"type": "object"
},
"tls": {
+ "dependencies": {
+ "client_cert": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_key"
+ ]
+ },
+ "client_cert_id": {
+ "not": {
+ "required": [
+ "client_client",
+ "client_key"
+ ]
+ }
+ },
+ "client_key": {
+ "not": {
+ "required": [
+ "client_cert_id"
+ ]
+ },
+ "required": [
+ "client_cert"
+ ]
+ }
+ },
"properties": {
"client_cert": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
},
+ "client_cert_id": {
+ "anyOf": [
+ {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[a-zA-Z0-9-_.]+$",
+ "type": "string"
+ },
+ {
+ "minimum": 1,
+ "type": "integer"
+ }
+ ]
+ },
"client_key": {
"maxLength": 65536,
"minLength": 128,
"type": "string"
+ },
+ "verify": {
+ "default": false,
+ "description": "Turn on server certificate verification, currently only kafka upstream is supported",
+ "type": "boolean"
}
},
- "required": [
- "client_cert",
- "client_key"
- ],
"type": "object"
},
"type": {
@@ -8157,6 +9975,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"allowlist": {
"items": {
"minLength": 1,
@@ -8196,6 +10041,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -8258,6 +10130,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"block_rules": {
"items": {
"maxLength": 4096,
@@ -8296,6 +10195,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"appid": {
"default": "unset",
"type": "string"
@@ -8322,6 +10248,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -8378,6 +10331,33 @@
}
],
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"blacklist": {
"items": {
"anyOf": [
@@ -8453,6 +10433,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"burst": {
"minimum": 0,
"type": "integer"
@@ -8499,6 +10506,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"disable": {
"type": "boolean"
},
@@ -8564,6 +10598,33 @@
"schema": {
"$comment": "this is a mark for our injected plugin schema",
"properties": {
+ "_meta": {
+ "properties": {
+ "error_response": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object"
+ }
+ ]
+ },
+ "filter": {
+ "description": "filter determines whether the plugin needs to be executed at runtime",
+ "items": {
+ "type": "array"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "priority": {
+ "description": "priority of plugins by customized order",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
"batch_max_size": {
"default": 1000,
"minimum": 1,
@@ -8643,4 +10704,4 @@
"version": 0.1
}
}
-}
+}
\ No newline at end of file
diff --git a/api/test/e2e/schema/schema_test.go b/api/test/e2e/schema/schema_test.go
index 8dacca872..1ff105f0c 100644
--- a/api/test/e2e/schema/schema_test.go
+++ b/api/test/e2e/schema/schema_test.go
@@ -19,36 +19,36 @@ package schema
import (
"net/http"
- "github.com/onsi/ginkgo"
- "github.com/onsi/ginkgo/extensions/table"
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/ginkgo/extensions/table"
"github.com/apisix/manager-api/test/e2e/base"
)
-var _ = ginkgo.Describe("Schema Test", func() {
- table.DescribeTable("test schema basic", func(testCase base.HttpTestCase) {
+var _ = Describe("Schema Test", func() {
+ DescribeTable("test schema basic", func(testCase base.HttpTestCase) {
base.RunTestCase(testCase)
},
- table.Entry("get consumer schema of plugin", base.HttpTestCase{
+ Entry("get consumer schema of plugin", base.HttpTestCase{
Object: base.ManagerApiExpect(),
Method: http.MethodGet,
Path: "/apisix/admin/schema/plugins/jwt-auth",
Query: "schema_type=consumer",
Headers: map[string]string{"Authorization": base.GetToken()},
ExpectStatus: http.StatusOK,
- ExpectBody: "{\"dependencies\":{\"algorithm\":{\"oneOf\":[{\"properties\":{\"algorithm\":{\"default\":\"HS256\",\"enum\":[\"HS256\",\"HS512\"]}}},{\"properties\":{\"algorithm\":{\"enum\":[\"RS256\"]},\"private_key\":{\"type\":\"string\"},\"public_key\":{\"type\":\"string\"}},\"required\":[\"private_key\",\"public_key\"]},{\"properties\":{\"algorithm\":{\"enum\":[\"RS256\"]},\"vault\":{\"properties\":{},\"type\":\"object\"}},\"required\":[\"vault\"]}]}},\"properties\":{\"algorithm\": [...]
+ ExpectBody: `{"dependencies":{"algorithm":{"oneOf":[{"properties":{"algorithm":{"default":"HS256","enum":["HS256","HS512"]}}},{"properties":{"algorithm":{"enum":["RS256"]},"private_key":{"type":"string"},"public_key":{"type":"string"}},"required":["private_key","public_key"]},{"properties":{"algorithm":{"enum":["RS256"]},"vault":{"properties":{},"type":"object"}},"required":["vault"]}]}},"properties":{"algorithm":{"default":"HS256","enum":["HS256","HS512","RS256"],"type":"string"}," [...]
Sleep: base.SleepTime,
}),
- table.Entry("get schema of plugin `require-id`", base.HttpTestCase{
+ Entry("get route schema of plugin", base.HttpTestCase{
Object: base.ManagerApiExpect(),
Method: http.MethodGet,
Path: "/apisix/admin/schema/plugins/jwt-auth",
Headers: map[string]string{"Authorization": base.GetToken()},
ExpectStatus: http.StatusOK,
- ExpectBody: `{"$comment":"this is a mark for our injected plugin schema","properties":{"cookie":{"default":"jwt","type":"string"},"disable":{"type":"boolean"},"header":{"default":"authorization","type":"string"},"query":{"default":"jwt","type":"string"}}`,
+ ExpectBody: `{"$comment":"this is a mark for our injected plugin schema","properties":{"_meta":{"properties":{"error_response":{"oneOf":[{"type":"string"},{"type":"object"}]},"filter":{"description":"filter determines whether the plugin needs to be executed at runtime","items":{"type":"array"},"maxItems":20,"type":"array"},"priority":{"description":"priority of plugins by customized order","type":"integer"}},"type":"object"},"cookie":{"default":"jwt","type":"string"},"disable":{"typ [...]
Sleep: base.SleepTime,
}),
- table.Entry("get schema of non-existent plugin", base.HttpTestCase{
+ Entry("get schema of non-existent plugin", base.HttpTestCase{
Object: base.ManagerApiExpect(),
Method: http.MethodGet,
Path: "/apisix/admin/schema/plugins/non-existent",
@@ -57,7 +57,7 @@ var _ = ginkgo.Describe("Schema Test", func() {
ExpectBody: `schema of plugins non-existent not found`,
Sleep: base.SleepTime,
}),
- table.Entry("get schema of consumer", base.HttpTestCase{
+ Entry("get schema of consumer", base.HttpTestCase{
Object: base.ManagerApiExpect(),
Method: http.MethodGet,
Path: "/apisix/admin/schemas/consumer",
@@ -66,7 +66,7 @@ var _ = ginkgo.Describe("Schema Test", func() {
ExpectBody: `"properties":{"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"labels":{"description":"key/value pairs to specify attributes","patternProperties":{".*":{"description":"value of label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"plugins":{"type":"object"},"update_time":{"type":"integer"},"username":{"maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_]+$","type":"string"}}`,
Sleep: base.SleepTime,
}),
- table.Entry("get schema of non-existent resources", base.HttpTestCase{
+ Entry("get schema of non-existent resources", base.HttpTestCase{
Object: base.ManagerApiExpect(),
Method: http.MethodGet,
Path: "/apisix/admin/schemas/non-existent",
diff --git a/web/src/components/Plugin/data.tsx b/web/src/components/Plugin/data.tsx
index 7b1d49970..cd0adf40f 100644
--- a/web/src/components/Plugin/data.tsx
+++ b/web/src/components/Plugin/data.tsx
@@ -78,234 +78,242 @@ export enum PluginType {
* Plugin List that contains type field
*/
export const PLUGIN_LIST = {
- 'hmac-auth': {
- type: PluginType.authentication,
- },
- 'serverless-post-function': {
- type: PluginType.serverless,
- },
- 'mqtt-proxy': {
- type: PluginType.other,
- hidden: true,
+ 'api-breaker': {
+ type: PluginType.security,
},
- 'response-rewrite': {
- type: PluginType.other,
+ 'authz-casbin': {
+ type: PluginType.authentication,
},
- 'basic-auth': {
+ 'authz-casdoor': {
type: PluginType.authentication,
},
- 'error-log-logger': {
- type: PluginType.observability,
+ 'authz-keycloak': {
+ type: PluginType.authentication,
},
- 'fault-injection': {
- type: PluginType.security,
+ 'aws-lambda': {
+ type: PluginType.serverless,
},
- 'limit-count': {
- type: PluginType.traffic,
+ 'azure-functions': {
+ type: PluginType.serverless,
},
- prometheus: {
- type: PluginType.observability,
+ 'basic-auth': {
+ type: PluginType.authentication,
},
- 'proxy-rewrite': {
+ 'batch-requests': {
type: PluginType.other,
+ hidden: true,
},
- syslog: {
+ 'clickhouse-logger': {
type: PluginType.observability,
},
- 'traffic-split': {
+ 'client-control': {
type: PluginType.traffic,
},
- 'jwt-auth': {
- type: PluginType.authentication,
+ 'consumer-restriction': {
+ type: PluginType.security,
},
- 'kafka-logger': {
- type: PluginType.observability,
+ cors: {
+ type: PluginType.security,
},
- 'limit-conn': {
- type: PluginType.traffic,
+ csrf: {
+ type: PluginType.security,
},
- 'udp-logger': {
+ datadog: {
type: PluginType.observability,
},
- zipkin: {
- type: PluginType.observability,
+ 'dubbo-proxy': {
+ type: PluginType.other,
+ hidden: true,
},
echo: {
type: PluginType.other,
hidden: true,
},
- 'log-rotate': {
+ 'error-log-logger': {
type: PluginType.observability,
hidden: true,
},
- 'serverless-pre-function': {
- type: PluginType.serverless,
- },
- 'dubbo-proxy': {
+ 'example-plugin': {
type: PluginType.other,
hidden: true,
},
- 'node-status': {
+ 'ext-plugin-post-req': {
type: PluginType.other,
- hidden: true,
},
- 'referer-restriction': {
- type: PluginType.security,
+ 'ext-plugin-post-resp': {
+ type: PluginType.other,
},
- 'api-breaker': {
- type: PluginType.security,
+ 'ext-plugin-pre-req': {
+ type: PluginType.other,
},
- 'consumer-restriction': {
+ 'fault-injection': {
type: PluginType.security,
},
- cors: {
- type: PluginType.security,
+ 'file-logger': {
+ type: PluginType.observability,
},
- 'limit-req': {
- type: PluginType.traffic,
+ 'forward-auth': {
+ type: PluginType.authentication,
},
- 'proxy-mirror': {
+ 'google-cloud-logging': {
+ type: PluginType.observability,
+ },
+ 'grpc-transcode': {
type: PluginType.other,
},
- 'request-validation': {
- type: PluginType.security,
+ 'grpc-web': {
+ type: PluginType.other,
},
- 'example-plugin': {
+ gzip: {
type: PluginType.other,
- hidden: true,
+ },
+ 'hmac-auth': {
+ type: PluginType.authentication,
+ },
+ 'http-logger': {
+ type: PluginType.observability,
},
'ip-restriction': {
type: PluginType.security,
},
- 'key-auth': {
+ 'jwt-auth': {
type: PluginType.authentication,
},
- 'proxy-cache': {
- type: PluginType.other,
+ 'kafka-logger': {
+ type: PluginType.observability,
},
- redirect: {
+ 'kafka-proxy': {
type: PluginType.other,
- hidden: true,
},
- 'request-id': {
+ 'key-auth': {
+ type: PluginType.authentication,
+ },
+ 'ldap-auth': {
+ type: PluginType.authentication,
+ },
+ 'limit-conn': {
+ type: PluginType.traffic,
+ },
+ 'limit-count': {
+ type: PluginType.traffic,
+ },
+ 'limit-req': {
+ type: PluginType.traffic,
+ },
+ loggly: {
type: PluginType.observability,
},
- skywalking: {
+ 'log-rotate': {
type: PluginType.observability,
+ hidden: true,
},
- 'batch-requests': {
+ mocking: {
type: PluginType.other,
},
- 'http-logger': {
- type: PluginType.observability,
+ 'node-status': {
+ type: PluginType.other,
+ hidden: true,
+ },
+ opa: {
+ type: PluginType.authentication,
},
'openid-connect': {
type: PluginType.authentication,
},
- 'sls-logger': {
+ opentelemetry: {
type: PluginType.observability,
},
- 'tcp-logger': {
- type: PluginType.observability,
+ openwhisk: {
+ type: PluginType.serverless,
},
- 'uri-blocker': {
- type: PluginType.security,
+ prometheus: {
+ type: PluginType.observability,
},
- 'wolf-rbac': {
- type: PluginType.authentication,
+ 'proxy-cache': {
+ type: PluginType.other,
},
- 'authz-keycloak': {
- type: PluginType.authentication,
+ 'proxy-control': {
+ type: PluginType.other,
},
- 'grpc-transcode': {
+ 'proxy-mirror': {
type: PluginType.other,
},
- 'server-info': {
+ 'proxy-rewrite': {
type: PluginType.other,
- hidden: true,
},
- 'authz-casbin': {
- type: PluginType.authentication,
+ 'public-api': {
+ type: PluginType.security,
},
- 'ldap-auth': {
- type: PluginType.authentication,
+ 'real-ip': {
+ type: PluginType.other,
},
- datadog: {
- type: PluginType.observability,
+ redirect: {
+ type: PluginType.other,
+ hidden: true,
},
- 'skywalking-logger': {
- type: PluginType.observability,
+ 'referer-restriction': {
+ type: PluginType.security,
},
- 'azure-functions': {
- type: PluginType.serverless,
+ 'request-id': {
+ type: PluginType.observability,
},
- 'ua-restriction': {
+ 'request-validation': {
type: PluginType.security,
},
- 'splunk-hec-logging': {
- type: PluginType.observability,
+ 'response-rewrite': {
+ type: PluginType.other,
},
'rocketmq-logger': {
type: PluginType.observability,
},
- 'proxy-control': {
+ 'server-info': {
type: PluginType.other,
+ hidden: true,
},
- openwhisk: {
+ 'serverless-post-function': {
type: PluginType.serverless,
},
- opa: {
- type: PluginType.authentication,
+ 'serverless-pre-function': {
+ type: PluginType.serverless,
},
- 'grpc-web': {
- type: PluginType.other,
+ skywalking: {
+ type: PluginType.observability,
},
- 'google-cloud-logging': {
+ 'skywalking-logger': {
type: PluginType.observability,
},
- 'forward-auth': {
- type: PluginType.authentication,
+ 'sls-logger': {
+ type: PluginType.observability,
},
- 'aws-lambda': {
- type: PluginType.serverless,
+ 'splunk-hec-logging': {
+ type: PluginType.observability,
},
- 'clickhouse-logger': {
+ syslog: {
type: PluginType.observability,
},
- 'client-control': {
+ 'tcp-logger': {
+ type: PluginType.observability,
+ },
+ 'traffic-split': {
type: PluginType.traffic,
},
- csrf: {
+ 'ua-restriction': {
type: PluginType.security,
},
- 'ext-plugin-post-req': {
- type: PluginType.other,
- },
- 'ext-plugin-pre-req': {
- type: PluginType.other,
- },
- 'file-logger': {
- type: PluginType.observability,
- },
- gzip: {
- type: PluginType.other,
- },
- loggly: {
+ 'udp-logger': {
type: PluginType.observability,
},
- 'public-api': {
+ 'uri-blocker': {
type: PluginType.security,
},
- 'real-ip': {
- type: PluginType.other,
- },
- 'authz-casdoor': {
+ 'wolf-rbac': {
type: PluginType.authentication,
},
- mocking: {
- type: PluginType.other,
- },
- opentelemetry: {
+ zipkin: {
type: PluginType.observability,
},
+ 'mqtt-proxy': {
+ type: PluginType.other,
+ hidden: true,
+ },
};