Interceptor Context and Invocation Context

Interceptor Context

Interceptor context is a string to string map that can be shared with request flow interceptor and response flow interceptor. From the request interceptor, you can set it in the response body of the request interceptor, and Choreo Connect Router will add them to the request it made to the response interceptor. The following is a sample interceptor context.

{
  "interceptorContext": {
    "key1": "value1"
  }
}

Invocation Context

Invocation context describes the request information. This is an optional object that you can request from Choreo Connect Router to your interceptor service by referring it in the includes in Open API Definition. Invocation context has the following information.

{
  "invocationContext": {
    "requestId": "<unitaque_id_for_request>",
    "protocol": "<HTTP_protocol>",
    "scheme": "<secheme_http_or_https>",
    "apiName": "<API_name>",
    "apiVersion": "<API_version>",
    "vhost": "<virtual_host>",
    "basePath": "/petstore",
    "supportedMethods": "<supported_HTTP_methods_for_the_resource>",
    "method": "<invoked_HTTP_method>",
    "path": "<invoked_resource_path>",
    "pathTemplate": "<invoked_resource_path_template>",
    "source": "<client_IP>",
    "prodClusterName": "<production_endpoint_cluster_name>",
    "sandClusterName": "<sandbox_endpoint_cluster_name",
    "authenticationContext": {
      "token": "<raw_auth_token>",
      "tokenType": "<one of [API Key|JWT|Internal Key]>",
      "keyType": <"one of [PRODUCTION|SANDBOX]">
    }
  }
}
{
  "invocationContext": {
       "requestId": "75269e44-f797-4432-9906-cf39e68d6ab8",
       "protocol": "HTTP/1.1",
       "scheme": "https",
       "apiName": "PetStore",
       "apiVersion": "v1.0.0",
       "vhost": "localhost",
       "basePath": "/petstore",
       "supportedMethods": "GET POST",
       "method": "POST",
       "path": "/petstore/pet/1",
       "pathTemplate": "/pet/{petID}",
       "source": "192.168.8.332:8080",
       "prodClusterName": "carbon.super_clusterProd_localhost_Online-Storev1.0.0",
       "sandClusterName": "",
       "authenticationContext": {
           "token": "xxxxxxxxxxxxxxxx",
           "tokenType": "API Key|JWT Auth|Internal Key",
           "keyType": "PRODUCTION|SANDBOX",
       }
  }
}
Field Name Description
requestId Unique Id for the request
protocol HTTP protocol of the request (eg: HTTP/1, HTTP/1.1, HTTP/2)
scheme http or https
apiName Name of the API
apiVersion Version of the API
vhost Virtual Host of the invoked API
basePath API base path
supportedMethods HTTP methods supported by the invoked resource
method Invoked HTTP method
path Invoked resource path
pathTemplate Path template defined in the Open API Specification that the invoked resource path
source Client IP
prodClusterName Name of the production endpoint cluster
sandClusterName Name of the sandbox endpoint cluster
authenticationContext Authentication information of the request
Top