Transformations
Agentgateway uses transformation Transformation The process of modifying HTTP requests or responses as they pass through agentgateway. Transformations can change headers, body content, and other request/response attributes. templates that are written in Common Expression Language (CEL) CEL (Common Expression Language) A simple expression language used throughout agentgateway to enable flexible configuration. CEL expressions can access request context, JWT claims, and other variables to make dynamic decisions. . CEL is a fast, portable, and safely executable language that goes beyond declarative configurations. CEL lets you develop more complex expressions in a readable, developer-friendly syntax.
To learn more about how to use CEL, refer to the following resources:
Header transformation
You can add, set, or remove request and response headers with agentgateway’s transformation policies.
' followed by double quotes ". This way, the string is interpreted as a string value. If you provide the value without quotes or with double quotes only, it is interpreted as a CEL expression.binds:
- port: 3000
listeners:
- routes:
- backends:
- ai:
name: openai
provider:
openAI:
# Optional; overrides the model in requests
model: gpt-3.5-turbo
policies:
backendAuth:
key: "$OPEN_AI_APIKEY"
cors:
allowOrigins:
- "*"
allowHeaders:
- "*"
transformations:
request:
add:
x-gateway: '"agentgateway"'
response:
add:
x-served-by: '"agentgateway"'
remove:
- server
- x-content-type-optionsbinds:
- port: 3000
listeners:
- gatewayName: my-gateway
routes:
- backends:
- ai:
name: openai
provider:
openAI:
# Optional; overrides the model in requests
model: gpt-3.5-turbo
policies:
backendAuth:
key: "$OPEN_AI_APIKEY"
cors:
allowOrigins:
- "*"
allowHeaders:
- "*"
gatewayPolicies:
- name: global-transformations
target:
gateway: my-gateway
policy:
transformations:
request:
add:
x-gateway: '"agentgateway"'
response:
add:
x-served-by: '"agentgateway"'Body transformation
You can provide a custom body for a request or response.
' followed by double quotes ". This way, the string is interpreted as a string value. If you provide the value without quotes or with double quotes only, it is interpreted as a CEL expression.transformations:
request:
body:
'"This is a custom request body."'
response:
body:
'"This is a custom response body."'