Add or Set Request Headers
The set header policy adds a header to the request in the inbound pipeline. This can be used to set a security header required by the downstream service. For example, if your backend service uses basic authentication you might use this policy to attach the Basic auth header to the request:
{
"export": "SetHeadersInboundPolicy",
"module": "$import(@zuplo/runtime)",
"options": {
"headers": [
{
"name": "Authorization",
"value": "Basic DIGEST_HERE",
"overwrite": true
}
]
}
}
When doing this, you most likely want to set the secret as an environment variable, which can be accessed in the policy as follows
{
"export": "SetHeadersInboundPolicy",
"module": "$import(@zuplo/runtime)",
"options": {
"headers": [
{
"name": "Authorization",
"value": "$env(BASIC_AUTHORIZATION_HEADER_VALUE)",
"overwrite": true
}
]
}
}
And you would set the environment variable BASIC_AUTHORIZATION_HEADER_VALUE
to
Basic DIGEST_HERE
.
Configuration#
{
"name": "my-set-headers-inbound-policy",
"policyType": "set-headers-inbound",
"handler": {
"export": "SetHeadersInboundPolicy",
"module": "$import(@zuplo/runtime)",
"options": {
"headers": [
{
"name": "HEADER_NAME",
"value": "HEADER_VALUE",
"overwrite": true
}
]
}
}
}
Options#
name
the name of your policy instance. This is used as a reference in your routes.policyType
the identifier of the policy. This is used by the Zuplo UI. Value should beset-headers-inbound
.handler/export
The name of the exported type. Value should beSetHeadersInboundPolicy
.handler/module
the module containing the policy. Value should be$import(@zuplo/runtime)
.handler/options
The options for this policy:headers
An array of name and value objects (with an optional
overwrite
boolean)