Adapters automatically add Content-Type and Accept headers based on the requestDatatype and responseDatatype defined in action.json. They also calculate and add a Content-Length header to any call that includes a payload. Both can be overridden. Authentication headers should be configured through auth_field and auth_field_format in the service instance configuration — not through the methods described here.
The right place to add a header depends on two questions:
Both static approaches override the headers the adapter sets automatically from requestDatatype.
Setting an incorrect requestDatatype can have unintended side effects beyond just the headers, since the default is JSON.
To add a static header to a specific call, define it in the headers object in action.json. See Action field definitions for details and examples.
To add a static header to all calls, define it in global_request.addlHeaders in the service instance configuration. See Request properties for details and examples.
To add a dynamic header — one whose value is not known until the call is made — pass it in addlHeaders on the reqObj in adapter.js. This requires exposing a parameter in the adapter method and in pronghorn.json to accept the dynamic value.
If the adapter method exposes an iapMetadata object, you can pass dynamic headers through that object without any code changes. See Add dynamic headers for details and examples.
A header is dynamic when its value is not known until the call is made. Static header configuration in action.json or the service instance configuration cannot accommodate this — the header value must be supplied at call time.
If the adapter method exposes an iapMetadata parameter, pass the headers inside an addlHeaders object on that parameter. You can construct the iapMetadata object usingItential Platform workflow capabilities such as query and merge.
Structure:
Example:
If the adapter method does not have an iapMetadata parameter, you can request that the Adapter Team add it. Note that adding iapMetadata requires creating new methods — Itential does not modify existing method signatures to avoid breaking changes.
If the adapter does not support iapMetadata, you can expose the dynamic header value as a parameter in the adapter method and set it in addlHeaders on the reqObj. This approach also requires updating pronghorn.json to match the new method signature.
See Call properties authentication for an example of this pattern applied to authentication, which follows the same approach.
If the header value does not change between calls, use the static header options instead.