8.1 KiB
title, keywords, description
| title | keywords | description | ||||
|---|---|---|---|---|---|---|
| Request/Response Editor |
|
Usage guide for the request/response editor plugin |
Features
The traffic-editor plugin allows you to modify request/response headers. Supported operations include delete, rename, update, add, append, map, and deduplicate.
Runtime Properties
Plugin execution phase: UNSPECIFIED
Plugin execution priority: 100
Configuration Fields
| Field Name | Type | Required | Description |
|---|---|---|---|
| defaultConfig | object (CommandSet) | No | Default command set, executed unconditionally |
| conditionalConfigs | array of object (ConditionalCommandSet) | No | Conditional command sets, executed based on conditions |
CommandSet Structure
| Field Name | Type | Required | Default | Description |
|---|---|---|---|---|
| disableReroute | bool | No | false | Whether to disable automatic route selection |
| commands | array of object (Command) | Yes | - | List of edit commands |
ConditionalCommandSet Structure
| Field Name | Type | Required | Description |
|---|---|---|---|
| conditions | array | Yes | List of conditions, see below |
| commands | array of object (Command) | Yes | List of commands, same as CommandSet |
Command Structure
| Field Name | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Command type, other fields depend on type |
set Command
Sets a field to a specified value. type field value is set.
Other fields:
| Field Name | Type | Required | Description |
|---|---|---|---|
| target | object (Ref) | Yes | Target field info |
| value | string | Yes | Value to set |
concat Command
Concatenates multiple values and assigns to the target field. type field value is concat.
Other fields:
| Field Name | Type | Required | Description |
|---|---|---|---|
| target | object (Ref) | Yes | Target field info |
| values | array of (string/Ref) | Yes | Values to concatenate, can be string or Ref |
copy Command
Copies the value from the source field to the target field. type field value is copy.
Other fields:
| Field Name | Type | Required | Description |
|---|---|---|---|
| source | object (Ref) | Yes | Source field info |
| target | object (Ref) | Yes | Target field info |
delete Command
Deletes the specified field. type field value is delete.
Other fields:
| Field Name | Type | Required | Description |
|---|---|---|---|
| target | object (Ref) | Yes | Field to delete |
rename Command
Renames a field. type field value is rename.
Other fields:
| Field Name | Type | Required | Description |
|---|---|---|---|
| source | object (Ref) | Yes | Original field info |
| target | object (Ref) | Yes | New field info |
Condition Structure
| Field Name | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Condition type, other fields depend on type |
equals Condition
Checks if a field value equals the specified value. type field value is equals.
| Field Name | Type | Required | Description |
|---|---|---|---|
| value1 | object (Ref) | Yes | Field to compare |
| value2 | string | Yes | Target value |
prefix Condition
Checks if a field value starts with the specified prefix. type field value is prefix.
| Field Name | Type | Required | Description |
|---|---|---|---|
| value | object (Ref) | Yes | Field to compare |
| prefix | string | Yes | Prefix string |
suffix Condition
Checks if a field value ends with the specified suffix. type field value is suffix.
| Field Name | Type | Required | Description |
|---|---|---|---|
| value | object (Ref) | Yes | Field to compare |
| suffix | string | Yes | Suffix string |
contains Condition
Checks if a field value contains the specified substring. type field value is contains.
| Field Name | Type | Required | Description |
|---|---|---|---|
| value | object (Ref) | Yes | Field to compare |
| substr | string | Yes | Substring |
regex Condition
Checks if a field value matches the specified regular expression. type field value is regex.
| Field Name | Type | Required | Description |
|---|---|---|---|
| value | object (Ref) | Yes | Field to compare |
| pattern | string | Yes | Regular expression |
Ref Structure
Used to identify a field in the request or response.
| Field Name | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Field type: request_header, request_query, response_header |
| name | string | Yes | Field name |
Example Configuration
{
"defaultConfig": {
"disableReroute": false,
"commands": [
{ "type": "set", "target": { "type": "request_header", "name": "x-user" }, "value": "admin" },
{ "type": "delete", "target": { "type": "request_header", "name": "x-remove" } }
]
},
"conditionalConfigs": [
{
"conditions": [
{ "type": "equals", "value1": { "type": "request_query", "name": "role" }, "value2": "admin" }
],
"commands": [
{ "type": "set", "target": { "type": "response_header", "name": "x-status" }, "value": "is-admin" }
]
},
{
"conditions": [
{ "type": "prefix", "value": { "type": "request_header", "name": "x-path" }, "prefix": "/api/" }
],
"commands": [
{ "type": "rename", "source": { "type": "request_header", "name": "x-old" }, "target": { "type": "request_header", "name": "x-new" } }
]
},
{
"conditions": [
{ "type": "suffix", "value": { "type": "request_header", "name": "x-path" }, "suffix": ".json" }
],
"commands": [
{ "type": "copy", "source": { "type": "request_query", "name": "id" }, "target": { "type": "response_header", "name": "x-id" } }
]
},
{
"conditions": [
{ "type": "contains", "value": { "type": "request_header", "name": "x-info" }, "substr": "test" }
],
"commands": [
{ "type": "concat", "target": { "type": "response_header", "name": "x-token" }, "values": ["prefix-", { "type": "request_query", "name": "token" }] }
]
},
{
"conditions": [
{ "type": "regex", "value": { "type": "request_query", "name": "email" }, "pattern": "^.+@example\\.com$" }
],
"commands": [
{ "type": "delete", "target": { "type": "response_header", "name": "x-temp" } }
]
}
]
}