UAC Utility: Web Service
- 1 Disclaimer
- 2 Version Information
- 3 Overview
- 3.1 Key Features
- 4 Requirements
- 5 Supported Actions
- 5.1 Configuration examples
- 5.1.1 Example 1: No Authorization With Exit Code Mapping Task Configuration
- 5.1.2 Example 2: Basic Authorization Task Configuration for a POST request with JSON payload
- 5.1.3 Example 3: Token Authorization Task Configuration with URL Query parameters
- 5.1.4 Example 4: API Key Authorization Task Configuration
- 5.1.5 Example 5: OAuth2.0 Authorization Task Configuration
- 5.1.6 Example 6: Task Configuration with SSL Client Authentication
- 5.1.7 Example 7: Basic Authorization With Large URL
- 5.1.8 Example 8: Mulesoft
- 5.2 Action Output
- 5.2.1 Successful Execution
- 5.2.2 STDOUT Output
- 5.1 Configuration examples
- 6 Input Fields
- 7 Output Fields
- 8 STDOUT and STDERR
- 9 Exit Codes
- 10 SSL Client Authentication
- 11 SSL Certificate Authority File Discovery
- 12 Passing Credentials as Query Parameters, Headers, or as Form Data
- 13 Set Proxies with Environment Variables
- 14 How To
- 15 Integration Modifications
- 16 Document References
- 17 Known Issues
- 18 Changelog
- 18.1 ue-webservice 1.6.0 (2025-05-22)
- 18.1.1 Enhancements
- 18.2 ue-webservice 1.5.2 (2025-05-08)
- 18.2.1 Fixes
- 18.3 ue-webservice 1.5.1 (2025-05-02)
- 18.3.1 Fixes
- 18.4 ue-webservice 1.5.0 (2025-01-23)
- 18.4.1 Enhancements
- 18.5 ue-webservice 1.4.2 (2024-09-20)
- 18.5.1 Fixes
- 18.6 ue-webservice 1.4.1 (2023-10-18)
- 18.6.1 Fixes
- 18.7 ue-webservice 1.4.0 (2023-07-26)
- 18.7.1 Deprecations and Breaking Changes
- 18.7.2 Enhancements
- 18.8 ue-webservice 1.3.1 (2023-04-28)
- 18.8.1 Fixes
- 18.9 ue-webservice 1.3.0 (2023-03-23)
- 18.9.1 Enhancements
- 18.10 ue-webservice 1.2.1 (2022-12-22)
- 18.10.1 Enhancements
- 18.10.2 Fixes
- 18.11 ue-webservice 1.2.0 (2022-06-23)
- 18.11.1 Deprecations and Breaking Changes
- 18.11.2 Enhancements
- 18.11.3 Fixes
- 18.12 ue-webservice 1.1.0 (2022-03-10)
- 18.12.1 Enhancements
- 18.1 ue-webservice 1.6.0 (2025-05-22)
Disclaimer
Your use of this download is governed by Stonebranch’s Terms of Use.
Version Information
Template Name | Extension Name | Version | Status |
|---|---|---|---|
Web Service Integration | ue-webservice | V1 (Current 1.6.0) | Features and Bug Fixes are introduced |
Refer to the Changelog for version history information.
Overview
A Web service is a method of communication between two electronic devices over a network. This Universal Extension provides the capability to call endpoints of foreign APIs. It is beneficial for Stonebranch SaaS customers that are accessing the Universal Controller in the Stonebranch AWS Cloud and having their Universal Agents deployed in their data center. As the integration is triggered from the Universal Agent, no additional firewall port for the Universal Agent needs to be opened.
Key Features
Feature | Description |
|---|---|
Send HTTP(S)/REST requests | This integration supports sending requests over HTTP(S)/REST protocol, using the following methods:
|
Connectivity and Authentication Options | A variety of authentication options are supported:
Additionally, a Proxy server can be configured to be used between the Universal Agent and target endpoint. |
Custom exit code processing | This integration provides the capability to the user, to configure custom exit codes based on the web service response payload (Supported for JSON payloads). |
Requirements
This integration requires a Universal Agent and a Python runtime to execute the Universal Task.
Area | Details |
|---|---|
Python Version | Requires Python 3.7 or 3.11 Tested with the Universal Agent bundled Python distribution. |
Universal Agent | Both Windows and Linux agents are supported:
|
Universal Controller | Universal Controller Version >= 7.3.0.0. |
Network and Connectivity | The Universal Agent needs to have connectivity to the Web Service endpoint, and Access Token endpoint in case Authentication Type is “OAuth 2.0” and Proxy if the connection is through a Proxy. |
Supported Actions
This integration is responsible for sending HTTP(S)/REST requests.
Configuration examples
The following examples demonstrate the available authentication types, combined with some of the key features of this integration.
Example 1: No Authorization With Exit Code Mapping Task Configuration
Example of Universal Task where Authorization Type is None, and the user expects an exit code equal to "101" if the employee's first name is "John".
Example 2: Basic Authorization Task Configuration for a POST request with JSON payload
Example of Universal Task where Authorization Type is Basic.
Example 3: Token Authorization Task Configuration with URL Query parameters
Example of Universal Task where Authorization Type is Token, and URL Query parameters are used.
Example 4: API Key Authorization Task Configuration
Example of Universal Task where Authorization Type is API Key.
To see how to pass the API Key as HTTP Header refer to Passing Credentials as Query Parameters, Headers, or as Form Data.
Example 5: OAuth2.0 Authorization Task Configuration
Example of Universal Task where Authorization Type is OAuth 2.0 and Grant Type is Client Credentials.
To see how to pass credential fields as HTTP Headers, refer to Passing Credentials as Query Parameters, Headers, or as Form Data.
Example of Universal Task where Authorization Type is OAuth 2.0 and Grant Type is Password Credentials.
Example 6: Task Configuration with SSL Client Authentication
Example of a Universal Task with SSL Client Authentication.
Example 7: Basic Authorization With Large URL
Example of a Universal Task where Authorization Type is Basic, and the user attempts to access a URL exceeding 255 characters in length.
Example 8: Mulesoft
The following example shows the configuration of a task for a call to a Mulesoft API that has OpenID Connect access token enforcement and Client ID Enforcement policies enabled, and Okta is used as a Client Provider. OAuth2 Client Credentials flow is used in the following example.
Task Configuration
As is evident from the Client ID enforcement configuration, Client Credentials are also passed as HTTP Headers.
To see how to pass the client credentials as HTTP Headers, refer to Passing Credentials as Query Parameters, Headers, or as Form Data.
Action Output
Output Type | Description (Successful Execution) | Example (Successful Execution) |
|---|---|---|
EXTENSION | The extension output provides the following information:
| Successful Execution{
"exit_code": 0,
"status_description": "Task executed successfully.",
"invocation": {
"fields": { ...
},
},
"result": {
"code": 200,
"headers": [
{
"header": "Content-Encoding",
"value": "gzip"
},
{
"header": "Content-Type",
"value": "application/json"
},
{
"header": "Display",
"value": "staticcontent_sol, orig_site_sol"
},
{
"header": "Response",
"value": "200"
},
{
"header": "Vary",
"value": "Accept-Encoding,User-Agent,Origin"
},
{
"header": "Transfer-Encoding",
"value": "chunked"
}
],
"body": "{\"status\":\"success\",\"data\":[{\"id\":1,\"employee_name\":\"Tiger Nixon\",\"employee_salary\":320800,\"employee_age\":61,\"profile_image\":\"\"},
{\"id\":2,\"employee_name\":\"Garrett Winters\",\"employee_salary\":170750,\"employee_age\":63,\"profile_image\":\"\"}",
"body_json": {
"status": "success",
"data": [
{
"id": 1,
"employee_name": "Tiger Nixon",
"employee_salary": 320800,
"employee_age": 61,
"profile_image": ""
},
{
"id": 2,
"employee_name": "Garrett Winters",
"employee_salary": 170750,
"employee_age": 63,
"profile_image": ""
}
]
}
} |
STDOUT | If the field “Print Result Body To” is set to STDOUT, the body of the response will be printed here. | STDOUT Output{
"status": "success",
"data": [
{
"id": 1,
"employee_name": "Tiger Nixon",
"employee_salary": 320800,
"employee_age": 61,
"profile_image": ""
},
{
"id": 2,
"employee_name": "Garrett Winters",
"employee_salary": 170750,
"employee_age": 63,
"profile_image": ""
}
} |
Input Fields
Field | Type | Default value | Required | Description | Version Information |
|---|---|---|---|---|---|
Protocol | Choice | HTTP(S)/REST | Required | The communication protocol to be used towards the foreign API. | Introduced in version 1.0.0 |
HTTP Version | Choice | 1.1 | Required | The Hypertext Transfer Protocol version. | Introduced in version 1.0.0 |
Authorization Type | Choice | Basic | Required | The authorization type to be used for communicating with the foreign API. The following options are available.
| Introduced in version 1.0.0 New domain values added on 1.3.0 |
Credentials | Credentials | - | Optional | Credentials for "Basic" Authorization Type. The Credentials definition should be as follows.
Required when Authorization Type is "Basic". | Introduced in version 1.0.0 |
API Key | Credentials | - | Optional | Credentials for “API Key” Authorization Type. API Key should either be stored as the “Password” or “Token” Credential attribute, during Credential definition. API Keys can either be provided as URL Query Parameters or as Request Headers. Example configuration is described in section API Key Authorization Task Configuration. Required when Authorization Type is “API Key”. | Introduced in version 1.3.0 |
Grant Type | Choice | Client Credentials | Optional | The OAuth 2.0 Grant Type used to get the token. Supported Grant Types are the following.
Required when Authorization Type is "OAuth 2.0". | Introduced in version 1.3.0 |
Access Token URL | Text | Optional | The endpoint of the Authentication Server for the retrieval of access token. It is used to exchange the Client Credentials (and the Resource Owner Credentials in the case of "Password Credentials" Grant Type) for an access token. Required when Authorization Type is "OAuth 2.0". | Introduced in version 1.3.0 | |
Scope | Text | - | Optional | A space-separated list of scopes used during retrieval of an OAuth 2.0 access token. Required when Authorization Type is "OAuth 2.0". | Introduced in version 1.3.0 |
Client Credentials | Credentials | - | Optional | Used for retrieval of OAuth 2.0 access token. The Credential definition should be as follows.
Required when Authorization Type is "OAuth 2.0". | Introduced in version 1.3.0 |
Resource Owner Credentials | Credentials | - | Optional | Used for retrieval of OAuth 2.0 access token. The Credential definition should be as follows.
Required when Grant Type is "Password Credentials". | Introduced in version 1.3.0 |
Client Authentication | Choice | Send Client Credentials in Body | Optional | Controls whether the Client Credentials are sent in the request body or as a basic authentication header during retrieval of OAuth 2.0 access token. The following options are available.
Required when Authorization Type is "OAuth 2.0". | Introduced in version 1.3.0 |
Token | Large Text | - | Optional | The authentication access token. Required when Authorization Type is "Token". | Introduced in version 1.0.0 |
Add Authorization Data To | Choice | Request Header | Optional | Specifies where to include the Token in the request. The following options are available.
Required when Authorization Type is "Token" or "OAuth2.0". | Introduced in version 1.0.0 |
Authorization Header Prefix | Text | Bearer | Optional | The prefix for the Token. The token value is appended to the Authorization Header Prefix in the request Authorization header. For example: Bearer <token_value>. Required when Add Authorization Data To is "Request Header". | Introduced in version 1.0.0 |
Additional Credentials | Credentials | - | Optional | Additional credentials that might be required to be used either as Query Parameters or as HTTP Headers. For more information on how to pass credentials as part of URL Query Parameters refer to Passing Credentials as Query Parameters, Headers, or as Form Data. | Introduced in version 1.3.0 |
Use Large URL | Boolean | False | Required | Indicates whether the Large URL field should be used instead of the standard URL field. | Introduced in version 1.6.0 |
URL | Text | - | Optional | The URL to be called (maximum length of 255 characters). Required when Use Large URL is False. | Introduced in version 1.0.0 |
Large URL | Large Text | - | Optional | The URL to be called (exceeding 255 characters). Required when Use Large URL is True. | Introduced in version 1.6.0 |
HTTP Method | Choice | GET | Required | The HTTP method to be used in the request. The following options are available.
|