How to install the Process Request Data Into Headers integration from Azion Marketplace

Process Request Data Into Header is a serverless integration available at Azion Marketplace.

The purpose of this function is to stop a request whenever a request body field is empty. Using regex, the user can validate not only whether the field exists but also patterns. Additionally, they have the option to use any behavior they choose rather than a predetermined Deny Request.


To install the integration, follow these steps:

  1. Access Azion Console > Marketplace.
  2. On the Marketplace homepage, select the integration’s card.
  3. Once the integration’s page opens, click the Get It Now button, at the bottom-right corner of the page.

You’ll see a message indicating that your integration was successfully installed.


To instantiate the Process Request Data Into Header integration, follow the steps:

  1. On Azion Console, on the Products menu, select Edge Firewall in the SECURE section.
  2. Click the Add Rule Set button.
  3. Give an easy to remember name to your edge firewall.
  4. Select the domains you want to protect with the function.
  5. Turn the Edge Functions switch on.
  6. Click the Save button.

Done. Now you have instantiated the rule for your function.

To instantiate the Process Request Data Into Header integration, while still on the Edge Firewall page, select the Functions tab and follow these steps:

  1. Click the Add Function button.
  2. Give an easy to remember name to your instance.
  3. On the dropdown menu, select the Process Request Data Into Header function.

This action will load the function, showing a form with the function’s source code and, just above it, two tabs: Code and Args. By clicking the Code tab, you’ll be able to navigate through the source code but won’t be able to change it. Also, this function doesn’t address any argument on the Args tab, but you can test it using the curl command.

Curl CommandRequest headers added by the function
curl https://mydomain/functionX-Body-Error": "CT001
curl -H "Content-Type: application /x-www-form-urlencoded" --request POST --data 'param1=v1&param2=v2&param3=v3' https://mydomain/functionX-Body-Param1": "v1"
X-Body-Param2": "v2"
X-Body-Param3": "v3"
curl -H "Content-Type: application /json" --request POST --data '{"my_data": {"abc": {"def": {"g": "xyz","h": false,"e": null}}, "number": 1}}' https://mydomain/functionX-Body-My-Data-Abc-Def-G": "xyz"
X-Body-My-Data-Abc-Def-H": "false"
X-Body-My-Data-Number": "1"
curl -H "Content-Type: text /plain" --request POST --data 'plain=text' https://mydomain /functionX-Body-Error": "CT002"
curl -H "Content-Type: application /json" --request POST --data '{"my_data": {"abc": {"def": {"g": "xyz","h": false,"e": null}}, "number": 1}' https://mydomain/functionX-Body-Error": "FD001"

This integration can trigger errors. In this case, the errors will be appended to a new header called X-Body-Error.

Error CodeDescription
CT001The header Content-Type is missing or it’s null
CT002The header Content-Type has a value, but it isn’t supported by the function
FD001The request body isn’t correctly formatted and couldn’t be decoded

Setting up the Edge Firewall Rules Engine

Section titled Setting up the Edge Firewall Rules Engine

To finish, you have to set up the Rules Engine to configure the behavior and the criteria to run the integration.

Still in the Edge Firewall page, select the Rules Engine tab and follow these steps:

  1. Click the New Rule button.
  2. Name your rule something easy to remember.
  3. Select a criteria to run and catch the domain you want to run the integration on.
  4. Below, select a behavior to the criteria. In this case, it’ll be Run Function. Then, select the adequate Process Request Data Into Header function, according to the name you gave it in the instantiate step.
  5. Click the Save button.

Done. Now the Process Request Data Into Header integration is running for every request made to the domain you indicated.


Contributors