This is an automated email from the ASF dual-hosted git repository. kayx23 pushed a commit to branch fix-plugin-hub-sync in repository https://gitbox.apache.org/repos/asf/apisix-website.git
commit ca5f607127e164c70c0f12e59954e3394ce120b8 Author: kayx23 <[email protected]> AuthorDate: Tue May 12 18:45:52 2026 +0800 fix: sync plugin hub data and icon fallbacks --- website/static/data/plugins.json | 278 +++++++++++++++++++++++++++++++-------- 1 file changed, 226 insertions(+), 52 deletions(-) diff --git a/website/static/data/plugins.json b/website/static/data/plugins.json index ed359fbb1f4..9bbf985b7d8 100644 --- a/website/static/data/plugins.json +++ b/website/static/data/plugins.json @@ -8,35 +8,58 @@ }, { "name": "redirect", - "description": "The redirect Plugin can be used to configure redirects" + "description": "The redirect Plugin can be used to configure redirects", + "useDefaultIcon": true }, { "name": "echo", - "description": "The echo Plugin is to help users understand how they can develop an APISIX Plugin" + "description": "The echo Plugin is to help users understand how they can develop an APISIX Plugin", + "useDefaultIcon": true }, { "name": "gzip", - "description": "The gzip Plugin dynamically sets the behavior of gzip in Nginx" + "description": "The gzip Plugin dynamically sets the behavior of gzip in Nginx", + "useDefaultIcon": true + }, + { + "name": "brotli", + "description": "The brotli Plugin dynamically configures Brotli compression in NGINX", + "useDefaultIcon": true }, { "name": "real-ip", - "description": "The real-ip Plugin is used to dynamically change the client's IP address and port as seen by APISIX" + "description": "The real-ip Plugin is used to dynamically change the client's IP address and port as seen by APISIX", + "useDefaultIcon": true }, { "name": "server-info", - "description": "The server-info Plugin periodically reports basic server information to etcd" + "description": "The server-info Plugin periodically reports basic server information to etcd", + "useDefaultIcon": true + }, + { + "name": "inspect", + "description": "The inspect Plugin exposes runtime inspection information for APISIX", + "useDefaultIcon": true + }, + { + "name": "lago", + "description": "The lago Plugin reports usage and billing events to Lago", + "useDefaultIcon": true }, { "name": "ext-plugin-pre-req", - "description": "The ext-plugin-pre-req Plugin is for running specific external Plugins in the Plugin Runner before executing the built-in Lua Plugins" + "description": "The ext-plugin-pre-req Plugin is for running specific external Plugins in the Plugin Runner before executing the built-in Lua Plugins", + "useDefaultIcon": true }, { "name": "ext-plugin-post-req", - "description": "ext-plugin-post-req differs from the ext-plugin-pre-req Plugin in that it runs after executing the built-in Lua Plugins and before proxying to the Upstream" + "description": "ext-plugin-post-req differs from the ext-plugin-pre-req Plugin in that it runs after executing the built-in Lua Plugins and before proxying to the Upstream", + "useDefaultIcon": true }, { "name": "ext-plugin-post-resp", - "description": "The ext-plugin-post-resp Plugin is for running specific external Plugins in the Plugin Runner before executing the built-in Lua Plugins" + "description": "The ext-plugin-post-resp Plugin is for running specific external Plugins in the Plugin Runner before executing the built-in Lua Plugins", + "useDefaultIcon": true } ] }, @@ -57,15 +80,37 @@ }, { "name": "grpc-web", - "description": "The grpc-web Plugin is a proxy Plugin that can process gRPC Web requests from JavaScript clients to a gRPC service" + "description": "The grpc-web Plugin is a proxy Plugin that can process gRPC Web requests from JavaScript clients to a gRPC service", + "useDefaultIcon": true + }, + { + "name": "body-transformer", + "description": "The body-transformer Plugin transforms request and response bodies between structured formats", + "useDefaultIcon": true + }, + { + "name": "degraphql", + "description": "The degraphql Plugin translates GraphQL queries into upstream REST requests", + "useDefaultIcon": true + }, + { + "name": "exit-transformer", + "description": "The exit-transformer Plugin transforms response bodies before APISIX sends them to the client", + "useDefaultIcon": true }, { "name": "fault-injection", "description": "The fault-injection Plugin can be used to test the resiliency of your application. This Plugin will be executed before the other configured Plugins" }, + { + "name": "gm", + "description": "The gm Plugin enables Guomi cryptographic algorithms in APISIX TLS processing", + "useDefaultIcon": true + }, { "name": "mocking", - "description": "The mocking Plugin is used for mocking an API. When executed, it returns random mock data in the format specified and the request is not forwarded to the Upstream" + "description": "The mocking Plugin is used for mocking an API. When executed, it returns random mock data in the format specified and the request is not forwarded to the Upstream", + "useDefaultIcon": true } ] }, @@ -74,15 +119,15 @@ "plugins": [ { "name": "key-auth", - "description": "An authentication plugin that need to work with consumer to add key authentication to your Services" + "description": "An authentication plugin that needs to work with a Consumer to add key authentication to your Services" }, { "name": "jwt-auth", - "description": "An authentication plugin that need to work with consumer to securely authenticate a valid user requesting access" + "description": "An authentication plugin that needs to work with a Consumer to securely authenticate a valid user requesting access" }, { "name": "basic-auth", - "description": "An authentication plugin that need to work with consumer to add Basic Authentication to a Service or a Route" + "description": "An authentication plugin that needs to work with a Consumer to add Basic Authentication to a Service or a Route" }, { "name": "authz-keycloak", @@ -90,7 +135,8 @@ }, { "name": "authz-casdoor", - "description": "An authorization plugin that can be used to add centralized authentication with Casdoor" + "description": "An authorization plugin that can be used to add centralized authentication with Casdoor", + "useDefaultIcon": true }, { "name": "wolf-rbac", @@ -102,11 +148,12 @@ }, { "name": "cas-auth", - "description": "An authorization plugin can be used to access CAS (Central Authentication Service 2.0) IdP (Identity Provider) to do authentication, from the SP (service provider) perspective" + "description": "An authorization plugin can be used to access CAS (Central Authentication Service 2.0) IdP (Identity Provider) to do authentication, from the SP (service provider) perspective", + "useDefaultIcon": true }, { "name": "hmac-auth", - "description": "An authentication plugin that need to work with consumer to establish the integrity of incoming requests" + "description": "An authentication plugin that needs to work with a Consumer to establish the integrity of incoming requests" }, { "name": "authz-casbin", @@ -114,15 +161,28 @@ }, { "name": "ldap-auth", - "description": "An authorization plugin can be used to add LDAP authentication to a Route or a Service" + "description": "An authorization plugin can be used to add LDAP authentication to a Route or a Service", + "useDefaultIcon": true + }, + { + "name": "jwe-decrypt", + "description": "The jwe-decrypt Plugin decrypts JWE tokens in incoming requests", + "useDefaultIcon": true + }, + { + "name": "multi-auth", + "description": "The multi-auth Plugin supports multiple authentication methods on the same Route or Service", + "useDefaultIcon": true }, { "name": "opa", - "description": "An authorization plugin can be used to integrate with Open Policy Agente" + "description": "An authorization plugin can be used to integrate with Open Policy Agent", + "useDefaultIcon": true }, { "name": "forward-auth", - "description": "The forward-auth Plugin implements a classic external authentication model" + "description": "The forward-auth Plugin implements a classic external authentication model", + "useDefaultIcon": true } ] }, @@ -143,7 +203,8 @@ }, { "name": "ua-restriction", - "description": "The plugin allows you to restrict access to a Route or Service based on the User-Agent header with an allowlist and a denylist" + "description": "The plugin allows you to restrict access to a Route or Service based on the User-Agent header with an allowlist and a denylist", + "useDefaultIcon": true }, { "name": "referer-restriction", @@ -154,13 +215,29 @@ "description": "The plugin makes corresponding access restrictions based on different objects selected" }, { - "name": "CSRF", + "name": "csrf", "description": "Based on the Double Submit Cookie way, protect your API from CSRF attacks", - "beta": true + "useDefaultIcon": true + }, + { + "name": "chaitin-waf", + "description": "The chaitin-waf Plugin integrates Chaitin SafeLine WAF inspection with APISIX", + "useDefaultIcon": true + }, + { + "name": "oas-validator", + "description": "The oas-validator Plugin validates requests against an OpenAPI specification", + "useDefaultIcon": true + }, + { + "name": "ocsp-stapling", + "description": "The ocsp-stapling Plugin enables dynamic OCSP stapling for TLS certificates", + "useDefaultIcon": true }, { "name": "public-api", - "description": "The public-api is used for exposing an API endpoint through a general HTTP API router" + "description": "The public-api Plugin is used for exposing an API endpoint through a general HTTP API router", + "useDefaultIcon": true } ] }, @@ -169,11 +246,11 @@ "plugins": [ { "name": "limit-req", - "description": "The plugin limits request rate using the eaky bucket method" + "description": "The plugin limits request rate using the leaky bucket method" }, { "name": "limit-conn", - "description": "The plugin Limits request concurrency" + "description": "The plugin limits request concurrency" }, { "name": "limit-count", @@ -203,13 +280,80 @@ "name": "request-id", "description": "The request-id Plugin adds a unique ID to each request proxied through APISIX" }, + { + "name": "attach-consumer-label", + "description": "The attach-consumer-label Plugin injects labels from the authenticated consumer into the request context", + "useDefaultIcon": true + }, { "name": "proxy-control", - "description": "The proxy-control Plugin dynamically controls the behavior of the NGINX proxy" + "description": "The proxy-control Plugin dynamically controls the behavior of the NGINX proxy", + "useDefaultIcon": true }, { "name": "client-control", - "description": "The client-control Plugin can be used to dynamically control the behavior of NGINX to handle a client request, by setting the max size of the request body" + "description": "The client-control Plugin can be used to dynamically control the behavior of NGINX to handle a client request, by setting the max size of the request body", + "useDefaultIcon": true + }, + { + "name": "traffic-label", + "description": "The traffic-label Plugin evaluates labels on requests for traffic governance and routing", + "useDefaultIcon": true + } + ] + }, + { + "groupName": "AI", + "plugins": [ + { + "name": "ai-proxy", + "description": "The ai-proxy Plugin simplifies proxying requests to LLM providers compatible with the OpenAI API format", + "useDefaultIcon": true + }, + { + "name": "ai-proxy-multi", + "description": "The ai-proxy-multi Plugin extends ai-proxy with load balancing, retries, fallbacks, and health checks for LLM providers", + "useDefaultIcon": true + }, + { + "name": "ai-request-rewrite", + "description": "The ai-request-rewrite Plugin rewrites client requests with LLM-generated content before proxying upstream", + "useDefaultIcon": true + }, + { + "name": "ai-rate-limiting", + "description": "The ai-rate-limiting Plugin limits LLM usage by tracking and throttling token consumption", + "useDefaultIcon": true + }, + { + "name": "ai-prompt-decorator", + "description": "The ai-prompt-decorator Plugin prepends and appends predefined prompts to user input", + "useDefaultIcon": true + }, + { + "name": "ai-prompt-template", + "description": "The ai-prompt-template Plugin applies predefined prompt templates and accepts values for declared variables", + "useDefaultIcon": true + }, + { + "name": "ai-prompt-guard", + "description": "The ai-prompt-guard Plugin validates prompts against allow and deny patterns before forwarding them to LLM services", + "useDefaultIcon": true + }, + { + "name": "ai-aws-content-moderation", + "description": "The ai-aws-content-moderation Plugin uses AWS Comprehend to detect and block toxic request content", + "useDefaultIcon": true + }, + { + "name": "ai-aliyun-content-moderation", + "description": "The ai-aliyun-content-moderation Plugin uses Alibaba Cloud content moderation to inspect and block unsafe requests", + "useDefaultIcon": true + }, + { + "name": "ai-rag", + "description": "The ai-rag Plugin adds retrieval-augmented generation by fetching relevant context from external data sources", + "useDefaultIcon": true } ] }, @@ -218,7 +362,7 @@ "plugins": [ { "name": "zipkin", - "description": "Zipkin is a OpenTracing plugin" + "description": "Zipkin is an OpenTracing plugin" }, { "name": "skywalking", @@ -226,7 +370,8 @@ }, { "name": "opentelemetry", - "description": "The opentelemetry Plugin can be used to report tracing data according to the OpenTelemetry specification" + "description": "The opentelemetry Plugin can be used to report tracing data according to the OpenTelemetry specification", + "useDefaultIcon": true }, { "name": "prometheus", @@ -234,7 +379,8 @@ }, { "name": "node-status", - "description": "The node-status Plugin can be used get the status of requests to APISIX by exposing an API endpoint" + "description": "The node-status Plugin can be used to get the status of requests to APISIX by exposing an API endpoint", + "useDefaultIcon": true }, { "name": "datadog", @@ -242,11 +388,12 @@ }, { "name": "http-logger", - "description": "Http-logger is a plugin which push Log data requests to HTTP/HTTPS servers" + "description": "The http-logger Plugin pushes log data to HTTP and HTTPS servers" }, { - "name": "skywalking-loggerr", - "description": "The skywalking-logger Plugin can be used to push access log data to SkyWalking OAP server of HTTP" + "name": "skywalking-logger", + "description": "The skywalking-logger Plugin can be used to push access log data to SkyWalking OAP server of HTTP", + "useDefaultIcon": true }, { "name": "tcp-logger", @@ -258,7 +405,8 @@ }, { "name": "rocketmq-logger", - "description": "The rocketmq-logger Plugin provides the ability to push logs as JSON objects to your RocketMQ clusters" + "description": "The rocketmq-logger Plugin provides the ability to push logs as JSON objects to your RocketMQ clusters", + "useDefaultIcon": true }, { "name": "udp-logger", @@ -266,15 +414,17 @@ }, { "name": "clickhouse-logger", - "description": "The clickhouse-logger Plugin is used to push logs to ClickHouse database" + "description": "The clickhouse-logger Plugin is used to push logs to ClickHouse database", + "useDefaultIcon": true }, { "name": "syslog", - "description": "Sys pushes Log data requests to Syslog" + "description": "The syslog Plugin pushes log data to Syslog" }, { "name": "log-rotate", - "description": "The log-rotate Plugin is used to keep rotating access and error log files in the log directory at regular intervals" + "description": "The log-rotate Plugin is used to keep rotating access and error log files in the log directory at regular intervals", + "useDefaultIcon": true }, { "name": "error-log-logger", @@ -282,7 +432,7 @@ }, { "name": "sls-logger", - "description": "Sls-logger pushes Log data requests to ali cloud Log Server with RF5424" + "description": "The sls-logger Plugin pushes log data to Alibaba Cloud Log Service with RFC 5424" }, { "name": "google-cloud-logging", @@ -290,23 +440,33 @@ }, { "name": "splunk-hec-logging", - "description": "The splunk-hec-logging Plugin is used to forward logs to Splunk HTTP Event Collector (HEC) for analysis and storage" + "description": "The splunk-hec-logging Plugin is used to forward logs to Splunk HTTP Event Collector (HEC) for analysis and storage", + "useDefaultIcon": true }, { "name": "file-logger", - "description": "The file-logger Plugin is used to push log streams to a specific location" + "description": "The file-logger Plugin is used to push log streams to a specific location", + "useDefaultIcon": true }, { "name": "loggly", - "description": "The loggly Plugin is used to forward logs to SolarWinds Loggly for analysis and storage" + "description": "The loggly Plugin is used to forward logs to SolarWinds Loggly for analysis and storage", + "useDefaultIcon": true + }, + { + "name": "loki-logger", + "description": "The loki-logger Plugin pushes access logs to Grafana Loki", + "useDefaultIcon": true }, { "name": "elasticsearch-logger", - "description": "The elasticsearch-logger Plugin is used to forward logs to Elasticsearch for analysis and storage" + "description": "The elasticsearch-logger Plugin is used to forward logs to Elasticsearch for analysis and storage", + "useDefaultIcon": true }, { "name": "tencent-cloud-cls", - "description": "The tencent-cloud-cls Plugin uses TencentCloud CLSAPI to forward APISIX logs to your topic" + "description": "The tencent-cloud-cls Plugin uses TencentCloud CLSAPI to forward APISIX logs to your topic", + "useDefaultIcon": true } ] }, @@ -315,27 +475,33 @@ "plugins": [ { "name": "serverless", - "description": "There are two serverless Plugins in APISIX: serverless-pre-function and serverless-post-function." + "description": "There are two serverless Plugins in APISIX: serverless-pre-function and serverless-post-function.", + "useDefaultIcon": true }, { "name": "azure-functions", - "description": "The azure-functions Plugin is used to integrate APISIX with Azure Serverless Function as a dynamic upstream to proxy all requests for a particular URI to the Microsoft Azure Cloud" + "description": "The azure-functions Plugin is used to integrate APISIX with Azure Serverless Function as a dynamic upstream to proxy all requests for a particular URI to the Microsoft Azure Cloud", + "useDefaultIcon": true }, { "name": "openwhisk", - "description": "The openwhisk Plugin is used to integrate APISIX with Apache OpenWhisk serverless platfor" + "description": "The openwhisk Plugin is used to integrate APISIX with the Apache OpenWhisk serverless platform", + "useDefaultIcon": true }, { "name": "aws-lambda", - "description": "The aws-lambda Plugin is used for integrating APISIX with AWS Lambda as a dynamic upstream to proxy all requests for a particular URI to the AWS Cloud" + "description": "The aws-lambda Plugin is used for integrating APISIX with AWS Lambda as a dynamic upstream to proxy all requests for a particular URI to the AWS Cloud", + "useDefaultIcon": true }, { "name": "workflow", - "description": "The workflow plugin is used to introduce lua-resty-expr to provide complex traffic control features" + "description": "The workflow plugin is used to introduce lua-resty-expr to provide complex traffic control features", + "useDefaultIcon": true }, { "name": "openfunction", - "description": "The openfunction Plugin is used to integrate APISIX with CNCF OpenFunction serverless platform" + "description": "The openfunction Plugin is used to integrate APISIX with CNCF OpenFunction serverless platform", + "useDefaultIcon": true } ] }, @@ -344,15 +510,23 @@ "plugins": [ { "name": "dubbo-proxy", - "description": "The dubbo-proxy Plugin allows you to proxy HTTP requests to Apache Dubbo" + "description": "The dubbo-proxy Plugin allows you to proxy HTTP requests to Apache Dubbo", + "useDefaultIcon": true + }, + { + "name": "http-dubbo", + "description": "The http-dubbo Plugin proxies HTTP requests to Apache Dubbo services", + "useDefaultIcon": true }, { "name": "mqtt-proxy", - "description": "The mqtt-proxy Plugin is used for dynamic load balancing with client_id of MQTT. It only works in stream mode" + "description": "The mqtt-proxy Plugin is used for dynamic load balancing with client_id of MQTT. It only works in stream mode", + "useDefaultIcon": true }, { "name": "kafka-proxy", - "description": "The kafka-proxy plugin can be used to configure advanced parameters for the kafka upstream of Apache APISIX, such as SASL authentication" + "description": "The kafka-proxy plugin can be used to configure advanced parameters for the kafka upstream of Apache APISIX, such as SASL authentication", + "useDefaultIcon": true } ] }
