Configuring Call Transformation in Legacy UI
Procedure
-
Sign in to the Boomi Cloud API Management (Control Center) dashboard.
-
Click API Definitions on the Get Started page or navigate to Design > APIs.
-
On the Manage your APIs with API Definitions page, in the Name column, select the API Definition link from the list. This opens the Endpoint Settings:
<your endpoint name>page. -
On the Endpoint:
<your endpoint name>page, in the Name column, select an endpoint link or settings icon next to the row you want to configure endpoint settings. -
Navigate to Call Transformations. On the Call Transformations page, specify the following information in these fields:
-
Processing Adapter:
com.mashery.proxy.customer.generic.sidecar-connector -
Perform Pre-processing: Enabled
-
Perform Post-processing Enabled
-
Data to make available for pre-processing: Enter the data one per line.
-
-
Click Save.
Sidecar Preprocess POST Request Call To Lambda Function with Client Request (Specifications)
Sidecar to Lambda Function Connection
| Field | Required Field Yes/No | Type | Description/Value | Example | Notes |
|---|---|---|---|---|---|
region | Yes | string | AWS region where Lambda function is hosted. | region: eu-west-1 | |
functionARN | Yes | string | AWS ARN to make Lambda function invocation. | functionARN: arn:aws:lambda:eu-west-1:190954361614:function:LambdaBasicAsync | |
roleARN | Yes | string | Role ARN which needs to be used for generating assume role credentials. | roleARN:arn:aws:sts::680833432085:role/tibco_sidecar_connector_fn1 | Role Name must begin with "tibco_sidecar_connector" |
externalIdKey | Yes | string | ExternalID specified in trust policy of role in IAM will be stored in AWS Parameter Store using Key and Value pair. Key for External ID needs to be specified in this parameter. Using this key, value for External ID will be retrieved from AWS Parameter Store. | externalIdKey :tibco/prod/trustKey | Inclusion of external ID strengthen security of AWS Lambda invocation. As external ID is secure parameter, it is stored in the AWS Parameter Store using secure string. This external ID specified in the trust policy of role which we want to assume in IAM. For successful generation of assume role credentials, this external ID must be sent to AWS Lambda. Please make sure that this external ID is present in all regions of Boomi AWS Parameter Store. |
sessionName | No | string | AWS Lambda session through assume role is created with this name. | sessionName:assume-role-lambda-access-poc | If not specified, session name will be specified in the AWS Lambda Request as "TIBCO_Mashery_SideCar_Connector" |
expirationDuration | No | integer | Assume Role credentials expiration duration in minutes. | expirationDuration:15 | Default value: 60 minutes. |
Supported Optional Configurations
| Field | Required Field Yes/No | Type | Description/Value | Example | Notes |
|---|---|---|---|---|---|
synchronicity | No | string | This parameter specifies whether request sent to AWS Lambda should be synchronously or asynchronously. If AWS Lambda function needs to be invoked synchronously, then its value should be request-response. If AWS Lambda function needs to be invoked asynchronously, then its value should be Event. | synchronicity:request-response | Possible values for Default value: |
include-response-headers | No | string | Specifies API client response headers to be included in the lambda sidecar input. | ||
skip-response-headers | No | string | Specifies API client response headers to be skipped in the lambda sidecar input. This option is mutually exclusive with include-response-headers. | ||
require-eavs | No | string | Specifies the mandatory application EAVs that must be set to a non-empty value before the request can be handled. These values are also included in the lambda sidecar input. | require-eavs: eav_1,eav_2,eav_3 | The EAVs ARE case-sensitive, and must be included exactly as they are known in Cloud API Management. All Application level EAVs configured must be present and set in Cloud API Management, otherwise block the call. |
include-eavs | No | string | Specifies the application EAVs to be included in the Lambda function input, if they are present. | ||
require-packageKey-eavs | No | string | Specifies the mandatory package key EAVs that must be set to a non-empty value before the request can be handled. These values are also included in the lambda sidecar input. | All Package Key EAVs configured must be present and set in Cloud API Management, otherwise block the call. | |
include-packageKey-eavs | No | string | Specifies the package key EAVs to be included in the Lambda function input, if they are present. | ||
max-payload-size | No | string | Max payload size that can be sent to Lambda function in KB. | max-payload-size: 50 | Default value: 10 Max is 1024 KB (1 MB). |
max-payload-condition | No | integer | Action to take on max_payload_size condition. Parameter can be set to either filtering or blocking. | max-payload-condition: filtering | Default value: blocking |
expand-input | No | string | Specifies what other values need to be included while sending request to Lambda function, such as requestPayload, remoteAddress, token, operation, routing. | expand-input: requestPayload, operation | |
sidecar-param-<parameter name> | No | string | In case parameter map needs to be sent to AWS Lambda request, define multiple parameters in the format sidecar-param-<parameter_name>:<parameter_value>. |
| Sidecar policy validates whether parameter value is string, boolean, integer or float, and adds that parameter to the request payload sent to AWS Lambda function. The following parameter map will be added in the request JSON sent to AWS Lambda function:
|
failSafe | No | boolean | Specifies whether failure of Lambda function should result in error or not. If failSafe is not specified and the lambda function throws an error, then error will be sent to client. | failSafe: true | Default value: false |
enable_error_set | No | boolean | Specifies whether error code and error message sent by policy should be overridden by defined error sets. | enable_error_set: true | Default value: false |
timeout | No | integer | Specifies timeout for Lambda function in milliseconds. | timeout : 500 | If timeout parameter is not specified, timeout will occur according to endpoint timeout. Sum of timeout specified in pre and post input configuration should be less than endpoint timeout. In case of timeout, |
Cloud API Management Gateway Sidecar Call Configuration to Lambda Function
Sidecar call to Lambda Function
| Field | Required Field Yes/No | Type | Description/Value | Example | Notes |
|---|---|---|---|---|---|
point | Yes | string | Describes if it is Sidecar preprocessor or postprocessor. |
| |
synchronicity | Yes | string | Parameter which can be set to either request-response or event. | synchronicity:request-response | request-response and event are supported. |
masheryMessageId | Yes | string | Cloud API Management Gateway unique identifier which links the inbound client request to the Lambda function. | ||
packageKey | Yes | string | Package key that was used by user client to make call to Cloud API Management Gateway. | ||
serviceId | Yes | string | Unique Id of the API service. | ||
endpointId | Yes | string | Unique Id of the service endpoint. |
Sidecar Postprocess POST Call To Lambda Function with Backend Response (Specifications)
Sidecar Policy request to Lambda function is a POST call.
Sidecar to Lambda Function Connection
| Field | Required Field Yes/No | Type | Description/Value | Example | Notes |
|---|---|---|---|---|---|
region | Yes | string | AWS region where Lambda function is hosted. | region: eu-west-1 | |
functionARN | Yes | string | AWS ARN to make Lambda function invocation. | functionARN: arn:aws:lambda:eu-west-1:190954361614:function:LambdaBasicAsync | |
roleARN | Yes | string | Role ARN which needs to be used for generating assume role credentials. | roleARN:arn:aws:sts::680833432085:role/tibco_sidecar_connector_fn2 | Role Name should begin with "tibco_sidecar_connector" |
externalIDKey | Yes | string | ExternalID specified in trust policy of role in IAM will be stored in AWS Parameter Store using Key and Value pair. Key for External ID needs to be specified in this parameter. Using this key, value for External ID will be retrieved from AWS Parameter Store. | externalIdKey:tibco/prod/trustKey | Inclusion of external ID strengthen security of AWS Lambda invocation. As external ID is secure parameter, it is stored in the AWS Parameter Store using secure string. This external ID specified in the trust policy of role which we want to assume in IAM policy. For successful generation of assume role credentials, this external ID must be sent to AWS Lambda. Please make sure that this external ID is present in all regions of Boomi AWS Parameter Store. |
sessionName | No | string | AWS Lambda session through assume role will be created with this name. | sessionName:assume-role-lambda-access-poc | If not specified, session name will be specified in the AWS Lambda Request as "TIBCO_Mashery_SideCar_Connector" |
expirationDuration | No | integer | Assume Role Credentials expiration duration in minutes. | expirationDuration:15 | Default value: 60 |
Supported Optional Configurations
| Field | Required Field Yes/No | Type | Description/Value | Example | Notes |
|---|---|---|---|---|---|
synchronicity | No | string | This parameter specifies whether request sent to AWS Lambda should be synchronously or asynchronously. If AWS Lambda function needs to be invoked synchronously, then its value should be request-response. If AWS Lambda function needs to be invoked asynchronously, then its value should be Event. | synchronicity: request-response | Possible values: Default value: |
include-response-headers | No | string | Specifies the API client response headers to be included in the lambda sidecar input. | ||
skip-response-headers | No | string | Specifies the API client response headers to be skipped in the lambda sidecar input. It is mutually exclusive with include-response-headers. | ||
require-eavs | No | string | Specifies the mandatory application EAVs that must be set to a non-empty value before the request can be handled. These values are also included in the lambda sidecar input. | require-eavs: eav_1,eav_2,eav_3 | The EAVs ARE case-sensitive, and must be included exactly as they are known in Cloud API Management. All Application level EAVs configured must be present and set in Cloud API Management, otherwise block the call. |
include-eavs | No | string | Specifies the application EAVs to be included in the lambda function input, if they are present. | ||
require-packageKey-eavs | No | string | Specifies the mandatory package key EAVs that must be set to a non-empty value before the request can be handled. These values are also included in the lambda sidecar input. | All Package Key EAVs configured must be present and set in Cloud API Management, otherwise block the call. | |
include-packageKey-eavs | No | string | Specifies the package key EAVs to be included in the Lambda function input, if they are present. | ||
max-payload-size | No | string | Max payload size that can be sent to Lambda function in KB. | max-payload-size: 50 | Default value: 10 Max is 1024 KB (1 MB). |
max-payload-condition | No | integer | Action to take on max_payload_size condition. Parameter can be set to either filtering or blocking. | max-payload-condition: filtering | Default value: blocking |
expand-input | No | string | Specifies what other values need to be included while sending request to lambda function, such as requestPayload, responsePayload, remoteAddress, token, operation, routing. | expand-input: requestPayload, operation | |
sidecar-param-<parameter name> | No | string | In case parameter map needs to be sent to AWS Lambda request, define multiple parameters in the format sidecar-param-<parameter_name>:<parameter_value>. |
| Sidecar policy validates whether parameter value is string, boolean, integer or float, and adds that parameter to the request payload sent to AWS Lambda function. The following parameter map will be added in the request JSON sent to Lambda:
|
failSafe | No | boolean | Specifies whether failure of Lambda function should result in error or not. The default value is false. | failSafe: true | Default value: false |
enable_error_set | No | boolean | Specifies whether error code and error message sent by policy should be overridden by defined error sets. | enable_error_set: true | Default value: false |
timeout | No | integer | Specifies timeout for Lambda function in milliseconds. | timeout: 500 | If timeout parameter is not specified, timeout will occur according to endpoint timeout. Sum of timeout specified in pre and post input configuration should be less than endpoint timeout. In case timeout occurs, |