Skip to main content
Feedback

Configuring Endpoint Call Processing

Procedure

  1. Sign in to the Boomi Cloud API Management (Control Center) dashboard.

  2. Click API Definitions on the Get Started page or navigate to Design > APIs.

  3. 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.

  4. 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.

  5. 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.

  6. Click Save.

Sidecar Preprocess POST Request Call To Lambda Function with Client Request (Specifications)

Sidecar to Lambda Function Connection

Field

Required Field

Yes/No

TypeDescription/ValueExampleNotes
regionYesstringAWS region where Lambda function is hosted.region: eu-west-1
functionARNYesstringAWS ARN to make Lambda function invocation.functionARN: arn:aws:lambda:eu-west-1:190954361614:function:LambdaBasicAsync
roleARNYesstringRole ARN which needs to be used for generating assume role credentials.roleARN:arn:aws:sts::680833432085:role/ tibco_sidecar_connector_fn1Role Name must begin with "tibco_sidecar_connector"
externalIdKeyYesstringExternalID 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.

sessionNameNostringAWS Lambda session through assume role is created with this name.sessionName:assume-role-lambda-access-pocIf not specified, session name will be specified in the AWS Lambda Request as "TIBCO_Mashery_SideCar_Connector"
expirationDurationNointegerAssume Role credentials expiration duration in minutes.expirationDuration:15Default value: 60 minutes.

Supported Optional Configurations

Field

Required Field

Yes/No

TypeDescription/ValueExampleNotes
synchronicityNostring

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 synchronicity - request-response, event.

Default value: request-response

include-response-headersNostringSpecifies API client response headers to be included in the lambda sidecar input.
skip-response-headersNostringSpecifies API client response headers to be skipped in the lambda sidecar input. This option is mutually exclusive with include-response-headers
require-eavsNostringSpecifies 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-eavsNostringSpecifies the application EAVs to be included in the Lambda function input, if they are present.
require-packageKey-eavsNostringSpecifies 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-eavsNostringSpecifies the package key EAVs to be included in the Lambda function input, if they are present.
max-payload-sizeNostringMax payload size that can be sent to Lambda function in KBmax-payload-size: 50

Default value: 10

max is 1024 KB i.e. 1 MB

max-payload-conditionNointegerAction to take on max_payload_size condition. Parameter can be set either filtering, blockingmax-payload-condition: filteringDefault value: blocking
expand-inputNostringSpecified what other values needs to be included while sending request to Lambda function like requestPayload, remoteAddress, token, operation, routingexpand-input: requestPayload, operation
sidecar-param-<parameter name>NostringIn case parameter map needs to sent to AWS Lambda request, then you can define multiple parameters in the format sidecar-param-<parameter_name>:<parameter_value>

sidecar-param-parameter_x:This is string

sidecar-param-parameter_y:true

sidecar-param-parameter_z:1234

Sidecar connector validates whether parameter value is string, boolean, integer or float, accordingly that parameter is added to the request payload which is sent to AWS Lambda function.

Suppose in pre-input configuration, below sidecar params are defined:

sidecar-param-parameter_x:This is string

sidecar-param-parameter_y:true

sidecar-param-parameter_z:1234

Then below parameter map will be added in the request json which is sent to AWS Lambda function:

{"params":{"parameter_x":"This is string", "parameter_y":true, "parameter_z":1234}}

failSafeNobooleanSpecifies whether failure of Lambda function should result in error or not. Its default value is false. It means that if failSafe is not specified, in that case if lambda function throws an error, then error will be sent to client.failSafe: trueDefault value: false
enable_error_setNobooleanSpecifies whether error code and error message sent by connector should be overridden by defined error sets.enable_error_set: trueDefault value: false.
timeoutNointegerSpecifies 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 then endpoint timeout.

In case of timeout occurs, 504_Gateway_Timeout error will occur.

Cloud API Management Gateway Sidecar Call Configuration to Lambda Function

Sidecar call to Lambda Function

Field

Required Field

Yes/No

TypeDescription/ValueExampleNotes
pointYesstringDescribes if it is Sidecar preprocessor or postprocessor.

point: PreProcessor

point: PostProcessor

 
synchronicityYesstringparameter which can be set to either request-response,eventsynchronicity:request-responsesynchronicity request-response and event is supported.
masheryMessageIdYesstringCloud API Management Gateway unique identifier which links the inbound client request to the Lambda function.  
packageKeyYesstringPackage key that was used by user client to make call to Cloud API Management Gateway.  
serviceIdYesstringUnique Id of the API service.  
endpointIdYesstringUnique Id of the service endpoint.  

Sidecar Postprocess POST Call To Lambda Function with Backend Response (Specifications)

Sidecar Connector request to Lambda function is a POST call.

Sidecar to Lambda Function Connection

Field

Required Field

Yes/No

TypeDescription/ValueExampleNotes
regionYesstringAWS region where Lambda function is hostedregion: eu-west-1 
functionARNYesstringAWS ARN to make Lambda function invocationfunctionARN: arn:aws:lambda:eu-west-1:190954361614:function:LambdaBasicAsync 
roleARNYesstringRole ARN which needs to be used for generating assume role credentialsroleARN:arn:aws:sts::680833432085:role/tibco_sidecar_connector_fn2Role Name should be start with "tibco_sidecar_connector"
externalIDKeyYesstringExternalID 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.

sessionNameNostringAWS Lambda session through assume role will be created with this name.sessionName:assume-role-lambda-access-pocIf not specified session name will be specified in the AWS Lambda Request as "TIBCO_Mashery_SideCar_Connector"
expirationDurationNointegerAssume Role Credentials expiration duration in minutes.expirationDuration:15Default value: 60

Supported Optional Configurations

Field

Required Field

Yes/No

TypeDescription/ValueExampleNotes
synchronicityNostring

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 synchronicity - request-response, event.

Default value: request-response

include-response-headersNostringSpecifies the API client response headers to be included in the lambda sidecar input.
skip-response-headersNostringSpecifies the API client response headers to be skipped in the lambda sidecar input. It is mutually exclusive with include-response-headers
require-eavsNostringSpecifies 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-eavsNostringSpecifies the application EAVs to be included in the lambda function input, if they are present.
require-packageKey-eavsNostringSpecifies 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-eavsNostringSpecifies the package key EAVs to be included in the Lambda function input, if they are present.
max-payload-sizeNostringMax payload size that can be sent to Lambda function in KBmax-payload-size: 50

Default value: 10

max is 1024 KB i.e. 1 MB

max-payload-conditionNointegerAction to take on max_payload_size condition. Parameter can be set either filtering, blockingmax-payload-condition: filteringDefault value: blocking
expand-inputNostringSpecifies what other values need to be included while sending request to lambda function like requestPayload, responsePayload, remoteAddress, token, operation, routingexpand-input: requestPayload, operation
sidecar-param-<parameter name>NostringIn case parameter map needs to be sent to AWS Lambda request, define multiple parameters in the format sidecar-param-<parameter_name>:<parameter_value>

sidecar-param-parameter_x:This is string

sidecar-param-parameter_y:true

sidecar-param-parameter_z:1234

Sidecar connector validates whether parameter value is string, boolean, integer or float, accordingly that parameter is added to the request payload sent to AWS Lambda function.

Then below parameter map will be added in the request JSON sent to Lambda:

{"params":{"parameter_x":"This is string", "parameter_y":true, "parameter_z":1234}}

failSafeNobooleanSpecifies whether failure of Lambda function should result in error or not. The default value is false.failSafe: trueDefault value: false
enable_error_setNobooleanSpecifies whether error code and error message sent by connector should be overridden by defined error sets.enable_error_set: trueDefault value: false
timeoutNointegerSpecifies 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, 504_Gateway_Timeout error will occur.

On this Page