Transformations
Mutate and transform requests and responses before forwarding them to the destination.
Templating language
Inject response headers
Extract values from a request header and inject it as a header to your response.
Generate request tracing headers
Use uuid() and random() CEL functions to inject a unique request ID and a random sampling value into …
Encode base64 headers
Automatically encode and decode base64 values in request headers.
Rewrite dynamic path segments
Use CEL functions to rewrite request paths in a header.
Create redirect URLs
Use CEL expressions to construct a redirect URL from context variables and forward it upstream as a …
Change request path and method
Use pseudo headers to conditionally rewrite the request path and HTTP method based on a request …
Promote query parameters to request headers
Read a query parameter from the request URI and inject it as a request header using a CEL …
Inject LLM model headers
Detect model fallback by injecting the requested and actual LLM model names as response headers …
Remove headers
Remove sensitive or internal headers from requests before they reach the upstream.
Inject response body fields
Learn how to return a customized response body and how to replace specific values in the body.
Filter and merge request body fields
Use filterKeys() and merge() CEL functions to strip unwanted fields from a JSON request body and …
Update response status
Update the response status based on the headers in a response.
Validate and set request body defaults
Use default() and fail() CEL functions to enforce required fields and apply default values on a JSON …
Enrich access logs
Log CEL context variables to access logs to inspect and debug transformation expressions at runtime.