blob: cd0adf40f999880e0f2cbece6c18f86d0c01db79 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import IconFont from '../IconFont';
export const PLUGIN_ICON_LIST: Record<string, any> = {
prometheus: <IconFont name="iconPrometheus_software_logo" />,
skywalking: <IconFont name="iconskywalking" />,
'jwt-auth': <IconFont name="iconjwt-3" />,
'authz-keycloak': <IconFont name="iconkeycloak_icon_32px" />,
'openid-connect': <IconFont name="iconicons8-openid" />,
'kafka-logger': <IconFont name="iconApache_kafka" />,
'basic-auth': <IconFont name="iconbasic-auth" />,
'hmac-auth': <IconFont name="iconhmac-auth" />,
cors: <IconFont name="iconcors" />,
'wolf-rbac': <IconFont name="iconwolf-rbac" />,
'key-auth': <IconFont name="iconkey-auth" />,
'request-validation': <IconFont name="iconrequest-validation" />,
'fault-injection': <IconFont name="iconfault-injection" />,
'consumer-restriction': <IconFont name="iconconsumer-restriction" />,
'api-breaker': <IconFont name="iconapi-breaker" />,
'ip-restriction': <IconFont name="iconip-restriction" />,
'uri-blocker': <IconFont name="iconuri-blocker" />,
'referer-restriction': <IconFont name="iconreferer-restriction" />,
'limit-conn': <IconFont name="iconlimit-connect" />,
'limit-req': <IconFont name="iconlimit-req" />,
'limit-count': <IconFont name="iconlimit-count" />,
'traffic-split': <IconFont name="icontraffic-split" />,
'serverless-post-function': <IconFont name="iconserverless-post-function" />,
'serverless-pre-function': <IconFont name="iconserverless-pre-function" />,
'response-rewrite': <IconFont name="iconresponse-rewrite" />,
'proxy-rewrite': <IconFont name="iconproxy-rewrite" />,
'proxy-mirror': <IconFont name="iconproxy-mirror" />,
'proxy-cache': <IconFont name="iconproxy-cache" />,
'grpc-transcode': <IconFont name="icongrpc-transcode" />,
'batch-requests': <IconFont name="iconbatch-request" />,
zipkin: <IconFont name="iconzipkin" />,
'udp-logger': <IconFont name="iconudp-logger" />,
'error-log-logger': <IconFont name="iconerror-logger" />,
'http-logger': <IconFont name="iconhttp-logger" />,
'request-id': <IconFont name="iconrequest-id" />,
'sls-logger': <IconFont name="iconsls-logger" />,
syslog: <IconFont name="iconsys-logger" />,
'tcp-logger': <IconFont name="icontcp-logger" />,
};
// This list is used to filter out plugins that cannot be displayed in the plugins list.
export const PLUGIN_FILTER_LIST: Record<string, { list: PluginComponent.ReferPage[] }> = {
redirect: { list: ['route'] }, // Filter out the redirect plugin on the route page.
'proxy-rewrite': { list: ['route'] },
};
export enum PluginType {
authentication = 'authentication',
security = 'security',
traffic = 'traffic',
serverless = 'serverless',
observability = 'observability',
other = 'other',
}
/**
* Plugin List that contains type field
*/
export const PLUGIN_LIST = {
'api-breaker': {
type: PluginType.security,
},
'authz-casbin': {
type: PluginType.authentication,
},
'authz-casdoor': {
type: PluginType.authentication,
},
'authz-keycloak': {
type: PluginType.authentication,
},
'aws-lambda': {
type: PluginType.serverless,
},
'azure-functions': {
type: PluginType.serverless,
},
'basic-auth': {
type: PluginType.authentication,
},
'batch-requests': {
type: PluginType.other,
hidden: true,
},
'clickhouse-logger': {
type: PluginType.observability,
},
'client-control': {
type: PluginType.traffic,
},
'consumer-restriction': {
type: PluginType.security,
},
cors: {
type: PluginType.security,
},
csrf: {
type: PluginType.security,
},
datadog: {
type: PluginType.observability,
},
'dubbo-proxy': {
type: PluginType.other,
hidden: true,
},
echo: {
type: PluginType.other,
hidden: true,
},
'error-log-logger': {
type: PluginType.observability,
hidden: true,
},
'example-plugin': {
type: PluginType.other,
hidden: true,
},
'ext-plugin-post-req': {
type: PluginType.other,
},
'ext-plugin-post-resp': {
type: PluginType.other,
},
'ext-plugin-pre-req': {
type: PluginType.other,
},
'fault-injection': {
type: PluginType.security,
},
'file-logger': {
type: PluginType.observability,
},
'forward-auth': {
type: PluginType.authentication,
},
'google-cloud-logging': {
type: PluginType.observability,
},
'grpc-transcode': {
type: PluginType.other,
},
'grpc-web': {
type: PluginType.other,
},
gzip: {
type: PluginType.other,
},
'hmac-auth': {
type: PluginType.authentication,
},
'http-logger': {
type: PluginType.observability,
},
'ip-restriction': {
type: PluginType.security,
},
'jwt-auth': {
type: PluginType.authentication,
},
'kafka-logger': {
type: PluginType.observability,
},
'kafka-proxy': {
type: PluginType.other,
},
'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,
},
'log-rotate': {
type: PluginType.observability,
hidden: true,
},
mocking: {
type: PluginType.other,
},
'node-status': {
type: PluginType.other,
hidden: true,
},
opa: {
type: PluginType.authentication,
},
'openid-connect': {
type: PluginType.authentication,
},
opentelemetry: {
type: PluginType.observability,
},
openwhisk: {
type: PluginType.serverless,
},
prometheus: {
type: PluginType.observability,
},
'proxy-cache': {
type: PluginType.other,
},
'proxy-control': {
type: PluginType.other,
},
'proxy-mirror': {
type: PluginType.other,
},
'proxy-rewrite': {
type: PluginType.other,
},
'public-api': {
type: PluginType.security,
},
'real-ip': {
type: PluginType.other,
},
redirect: {
type: PluginType.other,
hidden: true,
},
'referer-restriction': {
type: PluginType.security,
},
'request-id': {
type: PluginType.observability,
},
'request-validation': {
type: PluginType.security,
},
'response-rewrite': {
type: PluginType.other,
},
'rocketmq-logger': {
type: PluginType.observability,
},
'server-info': {
type: PluginType.other,
hidden: true,
},
'serverless-post-function': {
type: PluginType.serverless,
},
'serverless-pre-function': {
type: PluginType.serverless,
},
skywalking: {
type: PluginType.observability,
},
'skywalking-logger': {
type: PluginType.observability,
},
'sls-logger': {
type: PluginType.observability,
},
'splunk-hec-logging': {
type: PluginType.observability,
},
syslog: {
type: PluginType.observability,
},
'tcp-logger': {
type: PluginType.observability,
},
'traffic-split': {
type: PluginType.traffic,
},
'ua-restriction': {
type: PluginType.security,
},
'udp-logger': {
type: PluginType.observability,
},
'uri-blocker': {
type: PluginType.security,
},
'wolf-rbac': {
type: PluginType.authentication,
},
zipkin: {
type: PluginType.observability,
},
'mqtt-proxy': {
type: PluginType.other,
hidden: true,
},
};