VOOZH about

URL: https://developer.konghq.com/custom-plugins/handler.lua/

⇱ handler.lua - Kong Gateway | Kong Docs


Home / Custom plugins / Custom plugin reference
Edit this Page Edit Report an Issue Report

handler.lua

Uses: Kong Gateway
Related Documentation
Minimum Version
Kong Gateway - 3.4

A Kong Gateway plugin allows you to inject custom logic in Lua at several entry-points in the life-cycle of a request/response or a TCP stream connection as it is proxied by Kong Gateway. To do so, the file kong.plugins.{plugin_name}.handler must return a table with one or more functions with predetermined names. Those functions will be invoked by Kong Gateway at different phases when it processes traffic.

All functions take self as the first parameter. Except for init_worker and configure, they can also accept a second parameter: a table with the plugin’s configuration. configure instead receives an array of all configurations for the plugin.

Available contexts

The following functions are used to implement plugin logic at various entry-points of Kong Gateway’s execution life-cycle:

The HTTP module is used for plugins written for HTTP/HTTPS requests. It uses the following functions:

Function name

Kong Gateway phase

Nginx directives

Request protocols

Description

init_worker init_worker init_worker_by_* All protocols Executed upon every Nginx worker process’s startup.
configure
  • init_worker
  • timer
init_worker_by_* All protocols v3.4+ Executed every time the Kong Gateway plugin iterator is rebuilt (after changes to configure plugins).
certificate certificate ssl_certificate_by_*
  • https
  • grpcs
  • wss
Executed during the SSL certificate serving phase of the SSL handshake.
rewrite rewrite rewrite_by_* All protocols Executed for every request upon its reception from a client as a rewrite phase handler.

In this phase, neither the Service nor the Consumer have been identified, hence this handler will only be executed if the plugin was configured as a global plugin.

access access access_by_*
  • http(s)
  • grpc(s)
  • ws(s)
Executed for every request from a client and before it is being proxied to the upstream service.
response response
  • http(s)
  • grpc(s)
Replaces both header_filter() and body_filter(). Executed after the whole response has been received from the upstream service, but before sending any part of it to the client.
header_filter header_filter header_filter_by_*
  • http(s)
  • grpc(s)
Executed when all response headers bytes have been received from the upstream service.
body_filter body_filter body_filter_by_*
  • http(s)
  • grpc(s)
Executed for each chunk of the response body received from the upstream service. Since the response is streamed back to the client, it can exceed the buffer size and be streamed chunk by chunk. This function can be called multiple times if the response is large. See the lua-nginx-module documentation for more details.
ws_handshake ws_handshake access_by_* ws(s) Executed for every request to a WebSocket service just before completing the WebSocket handshake.
ws_client_frame ws_client_frame content_by_* ws(s) Executed for each WebSocket message received from the client.
ws_upstream_frame ws_upstream_frame content_by_* ws(s) Executed for each WebSocket message received from the upstream service.
log log log_by_*
  • http(s)
  • grpc(s)
Executed when the last response byte has been sent to the client.
ws_close ws_close log_by_* ws(s) Executed after the WebSocket connection has been terminated.

Note: If a module implements the response function, Kong Gateway will automatically activate the “buffered proxy” mode, as if the kong.service.request.enable_buffering() function had been called. Because of a current Nginx limitation, this doesn’t work for HTTP/2 or gRPC upstreams.

To reduce unexpected behavior changes, Kong Gateway does not start if a plugin implements both response and either header_filter or body_filter.

The Stream module is used for Plugins written for TCP and UDP stream connections. It uses the following functions:

Function name

Kong Gateway phase

Nginx directives

Description

init_worker init_worker init_worker_by_* Executed upon every Nginx worker process’s startup.
configure
  • init_worker
  • timer
init_worker_by_* v3.4+ Executed every time the Kong Gateway plugin iterator is rebuilt (after changes to configure plugins).
preread preread preread_by_* Executed once for every connection.
log log log_by_* Executed once for each connection after it has been closed.
certificate certificate ssl_certificate_by_* Executed during the SSL certificate serving phase of the SSL handshake.

All of those functions, except init_worker and configure, take one parameter which is given by Kong Gateway upon its invocation: the configuration of your plugin. This parameter is a Lua table, and contains values defined by your users, according to your plugin’s schema (described in the schema.lua module). The configure is called with an array of all the enabled plugin configurations for the particular plugin (or in case there is no active configurations to plugin, a nil is passed). init_worker and configure happens outside requests or frames, while the rest of the phases are bound to incoming request/frame.

Note that UDP streams don’t have real connections. Kong Gateway will consider all packets with the same origin and destination host and port as a single connection. After a configurable time without any packet, the connection is considered closed and the log function is executed.

handler.lua specification

Kong Gateway processes requests in phases. A plugin is a piece of code that gets activated by Kong Gateway as each phase is executed while the request gets proxied.

Phases are limited in what they can do. For example, the init_worker phase doesn’t have access to the config parameter because that information isn’t available when Kong Gateway is initializing each worker. On the other hand the configure function is passed with all the active configurations for the plugin (or nil if not configured).

A plugin’s handler.lua must return a table containing the functions it must execute on each phase.

Kong Gateway can process HTTP and stream traffic. Some phases are executed only when processing HTTP traffic, others when processing stream, and some (like init_worker and log) are invoked by both kinds of traffic.

In addition to functions, a plugin must define two fields:

  • VERSION is an informative field, not used by Kong Gateway directly. It usually matches the version defined in a plugin’s Rockspec version, when it exists.
  • PRIORITY is used to sort plugins before executing each of their phases. Plugins with a higher priority are executed first. See the plugin execution order section for more info about this field.

The following example handler.lua file defines custom functions for all the possible phases, in both http and stream traffic. It has no functionality besides writing a message to the log every time a phase is invoked. A plugin doesn’t need to provide functions for all phases.

local CustomHandler = {
 VERSION = "1.0.0",
 PRIORITY = 10,
}

function CustomHandler:init_worker()
 -- Implement logic for the init_worker phase here (http/stream)
 kong.log("init_worker")
end

function CustomHandler:configure(configs)
 -- Implement logic for the configure phase here
 --(called whenever there is change to any of the plugins)
 kong.log("configure")
end

function CustomHandler:preread(config)
 -- Implement logic for the preread phase here (stream)
 kong.log("preread")
end

function CustomHandler:certificate(config)
 -- Implement logic for the certificate phase here (http/stream)
 kong.log("certificate")
end

function CustomHandler:rewrite(config)
 -- Implement logic for the rewrite phase here (http)
 kong.log("rewrite")
end

function CustomHandler:access(config)
 -- Implement logic for the access phase here (http)
 kong.log("access")
end

function CustomHandler:ws_handshake(config)
 -- Implement logic for the WebSocket handshake here
 kong.log("ws_handshake")
end

function CustomHandler:header_filter(config)
 -- Implement logic for the header_filter phase here (http)
 kong.log("header_filter")
end

function CustomHandler:ws_client_frame(config)
 -- Implement logic for WebSocket client messages here
 kong.log("ws_client_frame")
end

function CustomHandler:ws_upstream_frame(config)
 -- Implement logic for WebSocket upstream messages here
 kong.log("ws_upstream_frame")
end

function CustomHandler:body_filter(config)
 -- Implement logic for the body_filter phase here (http)
 kong.log("body_filter")
end

function CustomHandler:log(config)
 -- Implement logic for the log phase here (http/stream)
 kong.log("log")
end

function CustomHandler:ws_close(config)
 -- Implement logic for WebSocket post-connection here
 kong.log("ws_close")
end

-- return the created table, so that Kong can execute it
return CustomHandler
Copied!

In the example above we are using Lua’s : shorthand syntax for functions taking self as a first parameter. An equivalent non-shorthand version of the access function would be:

function CustomHandler.access(self, config)
 -- Implement logic for the access phase here (http)
 kong.log("access")
end
Copied!

The plugin’s logic doesn’t need to be all defined inside the handler.lua file. It can be split into several Lua files, also called modules. The handler.lua module can use require to include other modules in the plugin.

For example, the following plugin splits the functionality into three files. access.lua and body_filter.lua return functions. They are in the same folder as handler.lua, which requires and uses them to build the plugin:

-- handler.lua
local access = require "kong.plugins.my-custom-plugin.access"
local body_filter = require "kong.plugins.my-custom-plugin.body_filter"

local CustomHandler = {
 VERSION = "1.0.0",
 PRIORITY = 10
}

CustomHandler.access = access
CustomHandler.body_filter = body_filter

return CustomHandler
Copied!
-- access.lua
return function(self, config)
 kong.log("access phase")
end
Copied!
-- body_filter.lua
return function(self, config)
 kong.log("body_filter phase")
end
Copied!

See the source code of the Key-Auth Plugin for an example of a real-life handler code.

Migrating from the BasePlugin module

The BasePlugin module is deprecated and has been removed from Kong Gateway. If you have an old plugin that uses this module, replace the following section:

-- DEPRECATED --
local BasePlugin = require "kong.plugins.base_plugin"
local CustomHandler = BasePlugin:extend()
CustomHandler.VERSION = "1.0.0"
CustomHandler.PRIORITY = 10
Copied!

With the current equivalent:

local CustomHandler = {
 VERSION = "1.0.0",
 PRIORITY = 10,
}
Copied!

You don’t need to add a :new() method or call any of the CustomHandler.super.XXX:(self) methods.

WebSocket Plugin Development

Handler Functions

Requests to services with the ws or wss protocol take a different path through the proxy than regular HTTP requests. Therefore, there are some differences in behavior that must be accounted for when developing plugins for them.

The following handlers are not executed for WebSocket services:

  • access
  • response
  • header_filter
  • body_filter
  • log

The following handlers are unique to WebSocket services:

  • ws_handshake
  • ws_client_frame
  • ws_upstream_frame
  • ws_close

The following handlers are executed for both WebSocket and non-Websocket services:

  • init_worker
  • configure
  • certificate (TLS/SSL requests only)
  • rewrite

Even with these differences, it’s possible to develop plugins that support both WebSocket and non-WebSocket services. For example:

-- handler.lua
--
-- I am a plugin that implements both WebSocket and non-WebSocket handlers.
--
-- I can be enabled for ws/wss services, http/https/grpc/grpcs services, or
-- even as global plugin.
local MultiProtoHandler = {
 VERSION = "0.1.0",
 PRIORITY = 1000,
}

function MultiProtoHandler:access()
 kong.ctx.plugin.request_type = "non-WebSocket"
end

function MultiProtoHandler:ws_handshake()
 kong.ctx.plugin.request_type = "WebSocket"
end


function MultiProtoHandler:log()
 kong.log("finishing ", kong.ctx.plugin.request_type, " request")
end

-- the `ws_close` handler for this plugin does not implement any WebSocket-specific
-- business logic, so it can simply be aliased to the `log` handler
MultiProtoHandler.ws_close = MultiProtoHandler.log

return MultiProtoHandler
Copied!

As seen above, the log and ws_close handlers are parallel to each other. In many cases, one can be aliased to the other without having to write any additional code. The access and ws_handshake handlers are also very similar in this regard. The notable difference lies in which PDK functions are available in each context. For instance, the kong.request.get_body() PDK function cannot be used in an access handler because it is fundamentally incompatible with this kind of request.

WebSocket requests to non-WebSocket services

When WebSocket traffic is proxied via an HTTP/HTTPS service, it’s treated as a non-WebSocket request. Therefore, the HTTP handlers (access, header_filter, etc) will be executed and the WebSocket handlers (ws_handshake, ws_close, etc) will not.

Plugin Development Kit

Logic implemented in those phases will most likely have to interact with the request and response objects or core components (e.g. access the cache, and database). Kong Gateway provides a Plugin Development Kit (or “PDK”) for such purposes: a set of Lua functions and variables that can be used by plugins to execute various gateway operations in a way that is guaranteed to be forward-compatible with future releases of Kong Gateway.

When you are trying to implement some logic that needs to interact with Kong Gateway (e.g. retrieving request headers, producing a response from a plugin, logging some error or debug information), you should consult the Plugin Development Kit reference docs.

Plugins execution order

Some plugins might depend on the execution of others to perform some operations. For example, plugins relying on the identity of the consumer have to run after authentication plugins. Considering this, Kong Gateway defines priorities between plugins execution to ensure that order is respected.

Your plugin’s priority can be configured via a property accepting a number in the returned handler table:

CustomHandler.PRIORITY = 10
Copied!

The higher the priority, the sooner your plugin’s phases will be executed in regard to other plugins’ phases (such as :access(), :log(), etc.).

All of the plugins bundled with Kong Gateway have a static priority. This can be adjusted dynamically using the ordering option. See Dynamic plugin ordering for more information.

The order of execution for the bundled plugins is:

Plugin Priority
Pre-Function
(pre-function)
1000000
AppDynamics
(app-dynamics)
999999
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
AI MCP OAuth2
(ai-mcp-oauth2)
1015
SAML
(saml)
1010
Header Cert Authentication
(header-cert-auth)
1009
JSON Threat Protection
(json-threat-protection)
1009
XML Threat Protection
(xml-threat-protection)
1008
Injection Protection
(injection-protection)
1007
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Access Control Enforcement
(ace)
955
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
AI Rate Limiting Advanced
(ai-rate-limiting-advanced)
905
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Service Protection
(service-protection)
901
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
AI MCP Proxy
(ai-mcp-proxy)
820
AI A2A Proxy
(ai-a2a-proxy)
819
Request Callout
(request-callout)
812
jq
(jq)
811
Datakit
(datakit)
810
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
AI Custom Guardrail
(ai-custom-guardrail)
785
AI Lakera Guard
(ai-lakera-guard)
784
AI GCP Model Armor
(ai-gcp-model-armor)
783
AI Semantic Response Guard
(ai-semantic-response-guard)
782
AI AWS Guardrails
(ai-aws-guardrails)
781
Route Transformer Advanced
(route-transformer-advanced)
780
Redirect
(redirect)
779
AI RAG Injector
(ai-rag-injector)
778
AI Request Transformer
(ai-request-transformer)
777
AI PII Sanitizer
(ai-sanitizer)
776
AI Semantic Prompt Guard
(ai-semantic-prompt-guard)
775
AI Azure Content Safety
(ai-azure-content-safety)
774
AI Prompt Template
(ai-prompt-template)
773
AI Prompt Decorator
(ai-prompt-decorator)
772
AI Prompt Guard
(ai-prompt-guard)
771
AI Proxy
(ai-proxy)
770
AI Proxy Advanced
(ai-proxy-advanced)
770
AI Prompt Compressor
(ai-prompt-compressor)
769
AI Response Transformer
(ai-response-transformer)
768
AI LLM as Judge
(ai-llm-as-judge)
767
AI Semantic Cache
(ai-semantic-cache)
765
Upstream OAuth
(upstream-oauth)
760
Standard Webhooks
(standard-webhooks)
759
Solace Consume
(solace-consume)
756
Solace Upstream
(solace-upstream)
755
Confluent Consume
(confluent-consume)
754
Kafka Consume
(kafka-consume)
753
Confluent
(confluent)
752
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
Metering & Billing
(metering-and-billing)
16
Solace Log
(solace-log)
15
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
Plugin Priority
Pre-Function
(pre-function)
1000000
AppDynamics
(app-dynamics)
999999
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
AI MCP OAuth2
(ai-mcp-oauth2)
1015
SAML
(saml)
1010
Header Cert Authentication
(header-cert-auth)
1009
JSON Threat Protection
(json-threat-protection)
1009
XML Threat Protection
(xml-threat-protection)
1008
Injection Protection
(injection-protection)
1007
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Access Control Enforcement
(ace)
955
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
AI Rate Limiting Advanced
(ai-rate-limiting-advanced)
905
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Service Protection
(service-protection)
901
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
AI MCP Proxy
(ai-mcp-proxy)
820
Request Callout
(request-callout)
812
jq
(jq)
811
Datakit
(datakit)
810
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
AI Lakera Guard
(ai-lakera-guard)
784
AI GCP Model Armor
(ai-gcp-model-armor)
783
AI Semantic Response Guard
(ai-semantic-response-guard)
782
AI AWS Guardrails
(ai-aws-guardrails)
781
Route Transformer Advanced
(route-transformer-advanced)
780
Redirect
(redirect)
779
AI RAG Injector
(ai-rag-injector)
778
AI Request Transformer
(ai-request-transformer)
777
AI PII Sanitizer
(ai-sanitizer)
776
AI Semantic Prompt Guard
(ai-semantic-prompt-guard)
775
AI Azure Content Safety
(ai-azure-content-safety)
774
AI Prompt Template
(ai-prompt-template)
773
AI Prompt Decorator
(ai-prompt-decorator)
772
AI Prompt Guard
(ai-prompt-guard)
771
AI Proxy
(ai-proxy)
770
AI Proxy Advanced
(ai-proxy-advanced)
770
AI Prompt Compressor
(ai-prompt-compressor)
769
AI Response Transformer
(ai-response-transformer)
768
AI LLM as Judge
(ai-llm-as-judge)
767
AI Semantic Cache
(ai-semantic-cache)
765
Standard Webhooks
(standard-webhooks)
760
Upstream OAuth
(upstream-oauth)
760
Solace Consume
(solace-consume)
756
Solace Upstream
(solace-upstream)
755
Confluent Consume
(confluent-consume)
754
Kafka Consume
(kafka-consume)
753
Confluent
(confluent)
752
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
Solace Log
(solace-log)
15
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
Plugin Priority
Pre-Function
(pre-function)
1000000
AppDynamics
(app-dynamics)
999999
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
AI MCP OAuth2
(ai-mcp-oauth2)
1015
SAML
(saml)
1010
Header Cert Authentication
(header-cert-auth)
1009
JSON Threat Protection
(json-threat-protection)
1009
XML Threat Protection
(xml-threat-protection)
1008
Injection Protection
(injection-protection)
1007
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
AI Rate Limiting Advanced
(ai-rate-limiting-advanced)
905
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Service Protection
(service-protection)
901
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
AI MCP Proxy
(ai-mcp-proxy)
820
Request Callout
(request-callout)
812
jq
(jq)
811
Datakit
(datakit)
810
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
AI GCP Model Armor
(ai-gcp-model-armor)
783
AI Semantic Response Guard
(ai-semantic-response-guard)
782
AI AWS Guardrails
(ai-aws-guardrails)
781
Route Transformer Advanced
(route-transformer-advanced)
780
Redirect
(redirect)
779
AI RAG Injector
(ai-rag-injector)
778
AI Request Transformer
(ai-request-transformer)
777
AI PII Sanitizer
(ai-sanitizer)
776
AI Semantic Prompt Guard
(ai-semantic-prompt-guard)
775
AI Azure Content Safety
(ai-azure-content-safety)
774
AI Prompt Template
(ai-prompt-template)
773
AI Prompt Decorator
(ai-prompt-decorator)
772
AI Prompt Guard
(ai-prompt-guard)
771
AI Proxy
(ai-proxy)
770
AI Proxy Advanced
(ai-proxy-advanced)
770
AI Prompt Compressor
(ai-prompt-compressor)
769
AI Response Transformer
(ai-response-transformer)
768
AI LLM as Judge
(ai-llm-as-judge)
767
AI Semantic Cache
(ai-semantic-cache)
765
Standard Webhooks
(standard-webhooks)
760
Upstream OAuth
(upstream-oauth)
760
Solace Consume
(solace-consume)
756
Solace Upstream
(solace-upstream)
755
Confluent Consume
(confluent-consume)
754
Kafka Consume
(kafka-consume)
753
Confluent
(confluent)
752
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
Solace Log
(solace-log)
15
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
Plugin Priority
Pre-Function
(pre-function)
1000000
AppDynamics
(app-dynamics)
999999
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
SAML
(saml)
1010
Header Cert Authentication
(header-cert-auth)
1009
JSON Threat Protection
(json-threat-protection)
1009
XML Threat Protection
(xml-threat-protection)
1008
Injection Protection
(injection-protection)
1007
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
AI Rate Limiting Advanced
(ai-rate-limiting-advanced)
905
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Service Protection
(service-protection)
901
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
Request Callout
(request-callout)
812
jq
(jq)
811
Datakit
(datakit)
810
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
AI AWS Guardrails
(ai-aws-guardrails)
781
Route Transformer Advanced
(route-transformer-advanced)
780
Redirect
(redirect)
779
AI RAG Injector
(ai-rag-injector)
778
AI Request Transformer
(ai-request-transformer)
777
AI PII Sanitizer
(ai-sanitizer)
776
AI Semantic Prompt Guard
(ai-semantic-prompt-guard)
775
AI Azure Content Safety
(ai-azure-content-safety)
774
AI Prompt Template
(ai-prompt-template)
773
AI Prompt Decorator
(ai-prompt-decorator)
772
AI Prompt Guard
(ai-prompt-guard)
771
AI Proxy
(ai-proxy)
770
AI Proxy Advanced
(ai-proxy-advanced)
770
AI Prompt Compressor
(ai-prompt-compressor)
769
AI Response Transformer
(ai-response-transformer)
768
AI Semantic Cache
(ai-semantic-cache)
765
Standard Webhooks
(standard-webhooks)
760
Upstream OAuth
(upstream-oauth)
760
Solace Upstream
(solace-upstream)
755
Confluent Consume
(confluent-consume)
754
Kafka Consume
(kafka-consume)
753
Confluent
(confluent)
752
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
Plugin Priority
Pre-Function
(pre-function)
1000000
AppDynamics
(app-dynamics)
999999
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
SAML
(saml)
1010
Header Cert Authentication
(header-cert-auth)
1009
JSON Threat Protection
(json-threat-protection)
1009
XML Threat Protection
(xml-threat-protection)
1008
Injection Protection
(injection-protection)
1007
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
AI Rate Limiting Advanced
(ai-rate-limiting-advanced)
905
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Service Protection
(service-protection)
901
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
Request Callout
(request-callout)
812
jq
(jq)
811
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
Route Transformer Advanced
(route-transformer-advanced)
780
Redirect
(redirect)
779
AI RAG Injector
(ai-rag-injector)
778
AI Request Transformer
(ai-request-transformer)
777
AI PII Sanitizer
(ai-sanitizer)
776
AI Semantic Prompt Guard
(ai-semantic-prompt-guard)
775
AI Azure Content Safety
(ai-azure-content-safety)
774
AI Prompt Template
(ai-prompt-template)
773
AI Prompt Decorator
(ai-prompt-decorator)
772
AI Prompt Guard
(ai-prompt-guard)
771
AI Proxy
(ai-proxy)
770
AI Proxy Advanced
(ai-proxy-advanced)
770
AI Response Transformer
(ai-response-transformer)
768
AI Semantic Cache
(ai-semantic-cache)
765
Standard Webhooks
(standard-webhooks)
760
Upstream OAuth
(upstream-oauth)
760
Confluent Consume
(confluent-consume)
754
Kafka Consume
(kafka-consume)
753
Confluent
(confluent)
752
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
Plugin Priority
Pre-Function
(pre-function)
1000000
AppDynamics
(app-dynamics)
999999
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
SAML
(saml)
1010
Header Cert Authentication
(header-cert-auth)
1009
JSON Threat Protection
(json-threat-protection)
1009
XML Threat Protection
(xml-threat-protection)
1008
Injection Protection
(injection-protection)
1007
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Service Protection
(service-protection)
915
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
AI Rate Limiting Advanced
(ai-rate-limiting-advanced)
905
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
jq
(jq)
811
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
Route Transformer Advanced
(route-transformer-advanced)
780
Redirect
(redirect)
779
AI Request Transformer
(ai-request-transformer)
777
AI Semantic Prompt Guard
(ai-semantic-prompt-guard)
775
AI Azure Content Safety
(ai-azure-content-safety)
774
AI Prompt Template
(ai-prompt-template)
773
AI Prompt Decorator
(ai-prompt-decorator)
772
AI Prompt Guard
(ai-prompt-guard)
771
AI Proxy
(ai-proxy)
770
AI Proxy Advanced
(ai-proxy-advanced)
770
AI Response Transformer
(ai-response-transformer)
768
AI Semantic Cache
(ai-semantic-cache)
765
Standard Webhooks
(standard-webhooks)
760
Upstream OAuth
(upstream-oauth)
760
Confluent
(confluent)
752
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
Plugin Priority
Pre-Function
(pre-function)
1000000
AppDynamics
(app-dynamics)
999999
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
SAML
(saml)
1010
Header Cert Authentication
(header-cert-auth)
1009
JSON Threat Protection
(json-threat-protection)
1009
XML Threat Protection
(xml-threat-protection)
1008
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
AI Rate Limiting Advanced
(ai-rate-limiting-advanced)
905
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
jq
(jq)
811
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
Route Transformer Advanced
(route-transformer-advanced)
780
AI Request Transformer
(ai-request-transformer)
777
AI Semantic Prompt Guard
(ai-semantic-prompt-guard)
775
AI Azure Content Safety
(ai-azure-content-safety)
774
AI Prompt Template
(ai-prompt-template)
773
AI Prompt Decorator
(ai-prompt-decorator)
772
AI Prompt Guard
(ai-prompt-guard)
771
AI Proxy
(ai-proxy)
770
AI Proxy Advanced
(ai-proxy-advanced)
770
AI Response Transformer
(ai-response-transformer)
769
AI Semantic Cache
(ai-semantic-cache)
765
Standard Webhooks
(standard-webhooks)
760
Upstream OAuth
(upstream-oauth)
760
Confluent
(confluent)
752
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
Plugin Priority
Pre-Function
(pre-function)
1000000
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
SAML
(saml)
1010
XML Threat Protection
(xml-threat-protection)
1008
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
AI Rate Limiting Advanced
(ai-rate-limiting-advanced)
905
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
jq
(jq)
811
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
Route Transformer Advanced
(route-transformer-advanced)
780
AI Request Transformer
(ai-request-transformer)
777
AI Azure Content Safety
(ai-azure-content-safety)
774
AI Prompt Template
(ai-prompt-template)
773
AI Prompt Decorator
(ai-prompt-decorator)
772
AI Prompt Guard
(ai-prompt-guard)
771
AI Proxy
(ai-proxy)
770
AI Response Transformer
(ai-response-transformer)
769
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
AppDynamics
(app-dynamics)
N/A
Plugin Priority
Pre-Function
(pre-function)
1000000
AppDynamics
(app-dynamics)
999999
Correlation ID
(correlation-id)
100001
Zipkin
(zipkin)
100000
Exit Transformer
(exit-transformer)
9999
Bot Detection
(bot-detection)
2500
CORS
(cors)
2000
JWE Decrypt
(jwe-decrypt)
1999
Session
(session)
1900
ACME
(acme)
1705
OAuth 2.0 Introspection
(oauth2-introspection)
1700
Mutual TLS Authentication
(mtls-auth)
1600
DeGraphQL
(degraphql)
1500
JWT
(jwt)
1450
OAuth 2.0 Authentication
(oauth2)
1400
Vault Authentication
(vault-auth)
1350
Key Auth
(key-auth)
1250
Key Authentication - Encrypted
(key-auth-enc)
1250
LDAP Authentication
(ldap-auth)
1200
LDAP Authentication Advanced
(ldap-auth-advanced)
1200
Basic Auth
(basic-auth)
1100
OpenID Connect
(openid-connect)
1050
HMAC Auth
(hmac-auth)
1030
JWT Signer
(jwt-signer)
1020
SAML
(saml)
1010
XML Threat Protection
(xml-threat-protection)
1008
WebSocket Validator
(websocket-validator)
1006
WebSocket Size Limit
(websocket-size-limit)
1003
Request Validator
(request-validator)
999
gRPC-Gateway
(grpc-gateway)
998
TLS Handshake Modifier
(tls-handshake-modifier)
997
TLS Metadata Headers
(tls-metadata-headers)
996
IP Restriction
(ip-restriction)
990
Request Size Limiting
(request-size-limiting)
951
ACL
(acl)
950
OPA
(opa)
920
Rate Limiting
(rate-limiting)
910
Rate Limiting Advanced
(rate-limiting-advanced)
910
GraphQL Rate Limiting Advanced
(graphql-rate-limiting-advanced)
902
Response Rate Limiting
(response-ratelimiting)
900
Route By Header
(route-by-header)
850
OAS Validation
(oas-validation)
840
jq
(jq)
811
Request Transformer Advanced
(request-transformer-advanced)
802
Request Transformer
(request-transformer)
801
Response Transformer
(response-transformer)
800
Response Transformer Advanced
(response-transformer-advanced)
800
Route Transformer Advanced
(route-transformer-advanced)
780
Kafka Upstream
(kafka-upstream)
751
AWS Lambda
(aws-lambda)
750
Azure Functions
(azure-functions)
749
Upstream Timeout
(upstream-timeout)
400
Proxy Cache
(proxy-cache)
100
Proxy Caching Advanced
(proxy-cache-advanced)
100
GraphQL Proxy Caching Advanced
(graphql-proxy-cache-advanced)
99
Forward Proxy Advanced
(forward-proxy)
50
Canary Release
(canary)
20
OpenTelemetry
(opentelemetry)
14
Prometheus
(prometheus)
13
HTTP Log
(http-log)
12
StatsD
(statsd)
11
Datadog
(datadog)
10
File Log
(file-log)
9
UDP Log
(udp-log)
8
TCP Log
(tcp-log)
7
Loggly
(loggly)
6
Kafka Log
(kafka-log)
5
Syslog
(syslog)
4
gRPC-Web
(grpc-web)
3
Request Termination
(request-termination)
2
Mocking
(mocking)
-1
Post-Function
(post-function)
-1000
Something wrong?

Help us make these docs great!

Kong Developer docs are open source. If you find these useful and want to make them better, contribute today!

Still need help?