Expand description
Native (built-in) plugins implemented in Rust. Each submodule provides one
node type; instances are constructed by crate::plugins::create_plugin.
Modules§
- acl
- Group-based access control plugin (
acl). - api_
breaker - Circuit breaker (
api-breaker), ported from APISIX’sapisix/plugins/api-breaker.lua. - attach_
consumer_ label - Consumer-label header injection plugin (
attach-consumer-label). - authz_
casbin - Embedded Casbin authorization plugin (
authz-casbin). - authz_
casdoor - Casdoor authorization plugin (
authz-casdoor). - authz_
keycloak - Keycloak UMA authorization plugin (
authz-keycloak). - aws_
lambda - AWS Lambda serverless-upstream plugin (
aws-lambda). - azure_
functions - Azure Functions serverless-upstream plugin (
azure-functions). - basic_
auth - HTTP Basic authentication plugin (
basic-auth). - body_
transformer - The
body-transformernode — rewrites the request and/or response body from a template. - brotli
- The
brotlinode — compresses the response body with brotli when the client accepts it and the response matches the configured content types and minimum size. Port of APISIX’sbrotliplugin (response-phase: place afterupstream, beforeclient). - cas_
auth - CAS authentication plugin (
cas-auth). - clickhouse_
logger - ClickHouse access-logger (
clickhouse-logger). - client
- The
clientnode — the fixed terminal point of every policy graph. - consumer_
restriction - Consumer allow/deny list plugin (
consumer-restriction). - cors
- CORS plugin (
cors). - csrf
- CSRF protection plugin (
csrf). - data_
mask - The
data-masknode — masks sensitive fields in the request before they reach loggers or the upstream: query parameters, headers, and JSON body fields can be removed, replaced with a fixed value, or partially rewritten with a regex substitution. - datadog
- The
datadognode — ships request metrics to a Datadog agent over DogStatsD (UDP) in batches. - degraphql
- The
degraphqlnode — exposes a GraphQL upstream through a plain REST route: the incoming request is rewritten into a standard GraphQL POST ({"query": ..., "variables": ..., "operationName": ...}) with variables harvested from the client’s query parameters and JSON body. - dingtalk_
auth - DingTalk authentication plugin (
dingtalk-auth). - echo
- The
echonode — replaces or wraps the response body and adds response headers. A response-phase node: place it afterupstream(betweenupstreamandclient) so it sees the upstream response. - elasticsearch_
logger - Elasticsearch access-logger (
elasticsearch-logger). - error_
handler - The
error-handlernode — turns accumulated gateway errors into a JSON error response. Typically wired to other nodes’ error ports. - error_
log_ logger - The
error-log-loggernode — a reinterpreted subset of APISIX’serror-log-loggerplugin. - error_
page - The
error-pagenode — replaces the body and content type of gateway-generated error responses (404, 500, 502, 503) with configured pages. Port of APISIX’serror-pageplugin (response-phase: place afterupstream, beforeclient). - exit_
transformer - The
exit-transformernode — reshapes gateway-generated responses (“exits”: auth rejections, rate-limit denials, upstream failures, …) with a status-code remap and a body template. Reinterpreted subset of APISIX’sexit-transformerplugin (response-phase: place afterupstream, beforeclient). - faas
- Shared helpers for the serverless / function-as-a-service upstream plugins
(
azure-functions,openfunction,openwhisk). - fault_
injection - Fault injection plugin (
fault-injection) — a faithful subset of Apache APISIX’sfault-injectionplugin for chaos/resilience testing. - feishu_
auth - Feishu / Lark authentication plugin (
feishu-auth). - file_
logger - The
file-loggernode — appends per-request access-log entries as newline-delimited JSON to a local file, mirroring APISIX’sfile-loggerplugin. - forward_
auth - Forward-authentication plugin (
forward-auth). - google_
cloud_ logging - The
google-cloud-loggingnode — ships access-log entries to Google Cloud Logging in batches. - gzip
- The
gzipnode — compresses the response body with gzip when the client accepts it and the response matches the configured content types and minimum size. Port of APISIX’sgzipplugin (response-phase: place afterupstream, beforeclient). - hmac_
auth - HMAC request-signing authentication plugin (
hmac-auth). - http_
logger - The
http-loggernode — ships access logs to an arbitrary HTTP endpoint in batches. - ip_
restriction - IP allow/deny list plugin (
ip-restriction). - jwe_
decrypt - JWE decryption plugin (
jwe-decrypt). - jwt_
auth - JWT authentication plugin (
jwt-auth). - key_
auth - API-key authentication plugin (
key-auth). - lago
- The
lagonode — meters API traffic into Lago, an open-source usage-based billing platform. - ldap_
auth - LDAP Basic-auth plugin (
ldap-auth). - limit_
conn - Concurrent-request limiting (
limit-conn), ported from APISIX’sapisix/plugins/limit-conn. - limit_
count - Fixed-window request-count limiting plugin (
limit-count). - listener
- The
listenernode — the fixed entry point of every policy graph. - logging
- The
loggingnode — emits a structured JSON access-log line for the current request/response viatracing(targetaccess_log). - loggly
- The
logglynode — ships access logs to SolarWinds Loggly in batches via the HTTP/S bulk endpoint. - loki_
logger - The
loki-loggernode — ships access logs to a Grafana Loki push API in batches. - mocking
- Mocking plugin (
mocking) — a faithful subset of Apache APISIX’smockingplugin: responds with a configured mock instead of proxying upstream. Useful for stubbing APIs during development and testing. - multi_
auth - Multi-authentication plugin (
multi-auth). - oas_
validator - The
oas-validatornode — validates the incoming request against an OpenAPI 3 (OAS 3) specification before it reaches the upstream. - opa
- Open Policy Agent authorization plugin (
opa). - openfunction
- OpenFunction serverless-upstream plugin (
openfunction). - openid_
connect - OpenID Connect authentication plugin (
openid-connect). - opentelemetry
- Distributed tracing via OpenTelemetry (
opentelemetry). - openwhisk
- Apache OpenWhisk serverless-upstream plugin (
openwhisk). - prometheus
- The
prometheusnode — a thin parity node over featherbit’s built-in Prometheus metrics. - proxy_
cache - Response caching (
proxy-cache), ported from APISIX’sapisix/plugins/proxy-cache. - proxy_
mirror - Request-mirroring plugin (
proxy-mirror). - proxy_
rewrite - The
proxy-rewritenode — rewrites the request path and adds/removes headers on either the request or the response, depending onphase. - rate_
limit - Token-bucket rate limiting plugin (
rate-limit). - real_ip
- The
real-ipnode — rewrites the client address seen by the rest of the pipeline (context.request.remote_addr) from a request variable such ashttp_x_forwarded_fororhttp_x_real_ip. - redirect
- The
redirectnode — answers the request with an HTTP redirect instead of proxying it upstream. - referer_
restriction - Referer allow/deny list plugin (
referer-restriction). - request_
id - The
request-idnode — ensures every request carries a unique id header and optionally echoes it on the response. - request_
size_ limit - Request body size limit plugin (
request-size-limit). - request_
validation - The
request-validationnode — validates request headers and/or body against JSON Schemas before the request reaches the upstream, rejecting non-conforming requests with a configurable status code. - response_
rewrite - The
response-rewritenode — rewrites the status code, body, and headers of the response before it reaches the client. Port of APISIX’sresponse-rewriteplugin (response-phase: place afterupstream, beforeclient). - serverless_
post_ function - The
serverless-post-functionnode — runs one or more inline Lua functions against theContext, threading it through each in sequence. - serverless_
pre_ function - The
serverless-pre-functionnode — runs one or more inline Lua functions against theContext, threading it through each in sequence. - skywalking
- Distributed tracing with Apache SkyWalking — a start/end node pair
wrapped around the
upstreamnode. - skywalking_
logger - The
skywalking-loggernode — ships access-log entries to a SkyWalking OAP (Observability Analysis Platform) HTTP endpoint in batches. - sls_
logger - Alibaba Cloud SLS (Simple Log Service) access-logger (
sls-logger). - splunk_
hec_ logging - The
splunk-hec-loggingnode — ships access logs to a Splunk HTTP Event Collector (HEC) in batches. - syslog
- The
syslognode — ships per-request access-log entries to a remote syslog server as RFC 5424 framed messages, over TCP or UDP, mirroring APISIX’ssyslogplugin (apisix/plugins/syslog/init.lua). - tcp_
logger - The
tcp-loggernode — ships per-request access-log entries to a remote TCP endpoint (a log collector such as Logstash, Fluentd, or a raw TCP sink), mirroring APISIX’stcp-loggerplugin. - tencent_
cloud_ cls - Tencent Cloud CLS (Cloud Log Service) access-logger (
tencent-cloud-cls). - traffic_
label - Traffic labeling plugin (
traffic-label) — a faithful subset of Apache APISIX’straffic-labelplugin: match requests with condition expressions and tag them, picking among weighted actions. - traffic_
split - Traffic-split plugin (
traffic-split) — a port of Apache APISIX’straffic-splitplugin for weighted / conditional traffic steering (canary, blue-green, A/B). - ua_
restriction - User-Agent allow/deny list plugin (
ua-restriction). - udp_
logger - The
udp-loggernode — ships per-request access-log entries to a remote UDP endpoint, mirroring APISIX’sudp-loggerplugin. - upstream
- The
upstreamnode — forwards the request to a backend target over HTTP, with round-robin, least-connections, or IP-hash load balancing across the configured targets, and writes the backend’s reply intoContext.response. - uri_
blocker - URI block-rule plugin (
uri-blocker). - wolf_
rbac - Wolf-RBAC authorization plugin (
wolf-rbac) — token-check subset. - workflow
- Workflow plugin (
workflow) — a faithful subset of Apache APISIX’sworkflowplugin: declarative traffic rules evaluated in order, where the first matchingcasetriggers its action. - zipkin
- Distributed tracing via Zipkin / B3 propagation (
zipkin).