Universal Controller 7.3.0.0 Release Notes

Release Notes

Universal Controller release 7.3.0.0 contains the following high-level features. For a complete list of all the included features and fixes, please refer to the Universal Controller 7.3.x Maintenance list.

Architecture

Backlog

Title

Description

B-15913

Refactor 'generate list report' logic

The generate list report logic has been refactored to avoid unnecessary initialization of PDF related objects when generating reports of type CSV, TSV, or XML.

B-15889

Update jackson FasterXML dependencies

Upgraded to current level dependencies.

B-15816

Add parallel schema execution for maintenance updates

Performance improvement for maintenance updates.

B-16120

Node Heartbeat Monitor recovery mechanism

If the Cluster Node Heartbeat thread is not processing normally, then after 1 minute, an additional Heartbeat thread will be created to take over the Heartbeat processing and the previous Heartbeat thread will be informed to shutdown. This can happen repeatedly until either the Heartbeat processing has resumed normal operations or until the Heartbeat reaches the stale threshold (3 minutes) which will cause the Node to restart and cause a fail-over if there is another Cluster Node running in Passive mode.

Additionally, the time outs for each of the 3 database connection pools can be specified individually as follows:

  • uc.db.socket.timeout_in_seconds.client (default 1800)

  • uc.db.socket.timeout_in_seconds.server  (default 1800)

  • uc.db.socket.timeout_in_seconds.reserved (default 120)

For Oracle these timeouts are used by setting the following 2 properties:

  1. "oracle.jdbc.ReadTimeout"

  2. "oracle.net.READ_TIMEOUT"

For MySQL the timeout value is used as part of the JDBC connection URL by adding the following parameter:

  • &socketTimeout=

For SQLServer using the JTDS driver, the timeout is used as part of the JDBC connection URL by adding the following parameter:

  • ;socketTimeout=

The Heartbeat thread uses the reserved pool. Requests coming in from the client (UI & Web Services) will use the client pool and internal controller processing uses the server pool.

B-16136

Update MySQL JDBC driver (mysql-connecto


r-java-8.0.30).

The packaged MySQL JDBC driver has been upgraded.

Functions & Variables

Backlog

Title

Description

B-15840

New Variable functions equivalent to Output functions

The following new functions have been added for processing Variable data:

  • Task Instance Variable by XPath

    my_variable=
    <message>
      <code>10</code>
    </message>
    
    ${_varXPath('my_variable', '//code/text()')}
    > 10
  • Task Instance Variable by JsonPath

    my_variable=
    {
      "code": 10
    }
    
    ${_varJsonPath('my_variable', '$.code')}
    > 10
  • Task Instance Variable by JsonPath as Array

    my_variable=
    [
      {
        "message" : "Hello",
        "code" : 10
      },
      {
        "message" : "World!",
        "code" : 20
      }
    ]
    
    ${_varJsonPathAsArray('my_variable', '$[*].message', '', true)}
    >
    [
        "Hello",
        "World!"
    ]
  • Task Instance Variable Number of Lines

    my_variable=
    Line 1
    Line 2
    Line 3
    
    ${_varNumberOfLines('my_variable')}
    > 3
  • Task Instance Variable by Specific Line(s)

    my_variable=
    Line 1
    Line 2
    Line 3
    Line 4
    
    ${_varLines('my_variable', 2, 2)}
    >
    Line 2
    Line 3



  • Task Instance Variable by Line(s) Matching Regular Expression


    my_variable=
    Some_Text
    ABC=Some_String
    More_Text
    
    ${_varLinesByRegex('my_variable', '^ABC=')} /* Returns empty (the whole Line was not matched) */
    >
    
    ${_varLinesByRegex('my_variable', '^ABC=.*')}
    > ABC=Some_String

B-15841

Variable Path feature equivalent to Output Path feature.

Task Instance Variable Path. Returns a token representing the path to a temporary file containing the value of the specified variable.

application.exe -file ${_varPath('my_variable')}
> application.exe -file $(ops_variable_path_my_variable_txt)

application.exe -file ${_varPath('my_variable', 'csv')}
> application.exe -file $(ops_variable_path_my_variable_csv)

B-06269

Allow variables and functions to be specified in Set Variable Action variable names.

Set Variable Actions can now use a variable as part of the variable name, for example a workflow has the following set variable action to set the current date / time in order to record the last run date for each region.

The Triggers that launch the workflow, one for each region, set the region variable to the region's 2-character short code, US, EU, AP, etc.

The Global variables are set as follows:

Lifecycle Management

Backlog

Title

Description

B-16147

Add promotion/promotion target support for personal access tokens

Personal Access Tokens can be used for promotion. This enables Single Sign-on users to perform promotions via the UI or APIs.

Security

Backlog

Title

Description

B-13974

Assignment to Business Service on Agent Registration

When a Universal Agent is first started and registers with a Universal Controller the Agent can be configured to join specific business services using one of the following methods:

  • Setting the business_services option in uags.conf

  • Setting the UAGBUSINESSSERVICES environment variable

  • Passing the uag_business_services command line argument to the ubrokerd script and console mode ubroker (Linux/Unix, Windows)

If the Agent’s configured business_services value changes after it has already registered with the Controller, the Agent must be stopped and deleted from the Controller before the Controller will honor the Agent’s configuration.

B-15894

Enhancement of Permissions on Agents associated to Business Services

New Agent Cluster option Strict Business Service Membership,to prevent Agents from being added to an Agent Cluster if the Agent’s Business Service Membership does not exactly match the Agent Cluster’s Business Service Membership.

Once an agent is added to a cluster with Strict Business Service Membership = true, the Member of Business Services for both the agent and the cluster are locked. Because changing Member of Business Services will result in un-matched Business Services for the agent and cluster, which violates the Strict Business Service Membership constraint.

B-14538

B-16121

B-16122

B-16123

B-16124

B-16125

B-16126

B-16131

B-16132



External Secrets Manager support for Credentials

Credential now support integration with external Secrets Managers:


Provider and Provider Parameters are introduced on the credentials definition, with a default local provider of Universal Controller.

You can select between the following Provider options.

  • Universal Controller

  • AWS Secrets Manager

  • Azure Key Vault

  • CyberArk Credential Provider

  • CyberArk Central Credential Provider

When switching the Provider option, the default Provider Parameters for each provider will be populated.

When switching to the Universal Controller provider, the Provider Parameters will not be displayed.

If a provider parameter is sensitive, it will be masked and encrypted, and the server will never send a secure parameter value to the client.

B-15832

B-16020

Email Connection OAuth 2.0 Authentication Method

Email Connections now support OAuth 2.0 as an authentication method.



UIP (Universal Integration Platform)

Backlog

Title

Description

B-16097

Inbound Webhook endpoint for third party Webhook integration with Universal Events

Universal Events now support external inbound webhooks, any application that supports outbound webhooks can generate Universal Events, this makes event driven automation even easier and more efficient than before.

B-15621

Universal Monitor - Add ability for Universal Monitor to pass variables to launched Universal Task Publisher

A new “Universal Task Publisher Variables” field has been added to the Universal Monitor in order allow customization of variables being passed down to the launched universal task publisher.

Variables order of precedence:

1) Universal Monitor - Universal Task Publisher Variables

2) Universal Monitor Trigger

3) Universal Monitor Publisher task

B-15626

Prevent Universal Monitor from specifying time scope in past if the selected System Template can only have a TTL of 0.

Prevent Universal Monitor from specifying time scope in past if the selected System Template can only have a TTL (Time to Live) of 0.

B-15607

Universal Template - Array Field with predefined values

When defining Array Fields for a Universal Template you can now optionally provide predefined list of names and/or values for user’s when they create new Tasks from the Template.

B-15860

Universal Template - Auto Fit Text Type Plain Large Text Fields

Allow Auto Fit behavior for Large Text Fields (Large Text Field 1 - Large Text Field 4) when Text Type is Plain, comparable to when Text Type is JSON or YAML. 

B-13119

Universal Template - SAP Connection field type

A new Field type for SAP Connections is now available.

B-15842

Add ability to send output for a cancelled extension task in the task cancel message from UAG

Ability to send output for a cancelled extension task in the task cancel message from UAG

B-15837

Universal Extension - Task Instance Extension Status Field

This enhancement adds a new Task Instance base table field "Extension Status" that can be mapped to a single Output Only field from the extension template definition.

This allows Universal Extension Template developers to use a consistent output field to display status information for their extension.

B-14025

Universal Extension - Dynamic Configuration Refresh

The Universal Agent definition will reflect Universal Agent changes when a configuration refresh is performed for the following UIP related configuration options: 

  • Extension accept list 

  • Extension deploy on registration 

B-16167

Show Running Universal Task Publisher Status in Universal Monitor Instance Form and Universal Monitor Trigger

The task instance forms for the Universal Monitor and Universal Monitor Trigger now display the status of it’s corresponding Universal Task Publisher Instance.

User Experience

Backlog

Title

Description

B-16091

Reinstate Banner Background Color

The Banner Background Color system property has been reinstated:

B-14508

Multi-Update: Hide "Clear Field Value" checkbox for user-defined fields if they are required.

If User Defined fields for Tasks and/or Triggers are set as Required, the Multi Update Dialog for Tasks and/or Triggers does not show the “Clear Field Value” checkbox.

B-15629

Recently used items in Services are removed if user's roles are updated and access no longer permitted.

Recently used items in the services menu may have contained services that have had authorization removed. In this case, there will now be some cleanup performed to avoid this.

Web Services API

Backlog

Title

Description

B-10643

B-16146


Personal Access Token Authentication for Web Service APIs

You can now generate and use “Personal Access Token(s)” for Web Services API authentication. Optionally you can also disable the use of Basic Authentication for Web Services via a new Web Service Basic Auth Permitted System Property.

In the user definition if Web Service Access is allowed, the user or an administrator can generate Personal Access Tokens for API authorization:

If the Expiration is left unspecified, the token never expires.

Once generated a Personal Access Token cannot be viewed again.

  • You can now authenticate with a controller Web Service API by specifying the Personal Access Token as a Bearer token on the request Authorization header.

curl -H "Authorization: Bearer ucp_OyGyWb7ujBlTD0VACjUmeRSY5UrG81aRYMIQqeRA" https://localhost:8443/uc/resources/task?taskname=Example


  • While it is recommended you use the Authorization header, if required, you can alternatively pass the Personal Access Token using the access_token query parameter.

curl https://localhost:8443/uc/resources/task?access_token=ucp_OyGyWb7ujBlTD0VACjUmeRSY5UrG81aRYMIQqeRA&taskname=Example


  • You can manage Personal Access Tokens through a number of new Web Service API endpoints.

    • Create Personal Access Token

    • Revoke Personal Access Token

    • List Personal Access Tokens

    • Optionally list Personal Access Tokens on Read/List User Payloads

B-15853

List Task Instances - Add templateid and templatename query parameters

Template ID (Sysid) and Template Name have been added as query parameters for the Task List Web Services API.

For example:

<generic-query-filter>
      <name>*</name>
      <templateName>PGP Tasks</templateName>
</generic-query-filter>



B-15854

List Tasks/List Tasks Adv - Add templateid and templatename query parameters

Template ID (Sysid) and Template Name have been added as query parameters for the Advanced Task List Web Services API.

For example:

1https://localhost:8443/uc/resources/task/listadv?templatename=PGP+Tasks

B-15625

Agent Cluster - List Adv

New Advanced Agent Cluster List Web service API that supports URL query parameters and returns the complete definition(s) matching the query.

B-15878

Monitoring API Enhancements

The Universal Controller Metrics (Prometheus) Web Service API has been enhanced to include the following information:

  • OMS server Status and Last Connected Server and Last Connected Time

  • License Expiration Date

  • Cluster Nodes actual/licensed 

  • Distributed Agents actual/licensed 

  • z/OS Agents actual/licensed 

  • Task Definitions actual/licensed 

  • Monthly Task Executions actual/licensed 

B-13268

List Task Instance with Output

A new Web Service API (Advanced List API) end point that returns task instance output along with selected task instance meta data.

This API does not retrieve task instance output, but only returns whatever output is already in the database.

{
      "name": "*",
      "instanceOutputType": "STDOUT",
      "responseFields": "name,businessServices,status,startTime,endTime",
      "updatedTimeType": "today"
 } 
[ {
  "businessServices" : [ "QA_Ops" ],
  "endTime" : "2022-08-10 13:41:20 +0000",
  "name" : "QA_sample",
  "output" : [ {
    "attemptCount" : 1,
    "commandName" : null,
    "outputData" : "[empty]",
    "outputFileName" : null,
    "outputType" : "STDOUT"
  } ],
  "startTime" : "2022-08-10 13:41:20 +0000",
  "status" : "SUCCESS",
  "sysId" : "16601367702211025607OKO044T0DQ84"
}, {
  "businessServices" : [ "QA_Ops" ],
  "endTime" : "2022-08-10 15:58:00 +0000",
  "name" : "TEST : Variable Functions",
  "output" : [ {
    "attemptCount" : 1,
    "commandName" : null,
    "outputData" : "[BusinessService_github_demo.json,Script_dev-uac_compose_file.json,Script_dev-uac_copy_import.json]\n[\n[\n",
    "outputFileName" : null,
    "outputType" : "STDOUT"
  }, {
    "attemptCount" : 2,
    "commandName" : null,
    "outputData" : "[BusinessService_github_demo.json,Script_dev-uac_compose_file.json,Script_dev-uac_copy_import.json]\n[\n[\n",
    "outputFileName" : null,
    "outputType" : "STDOUT"
  } ],
  "startTime" : "2022-08-10 15:57:59 +0000",
  "status" : "FAILED",
  "sysId" : "1660140660404071560E2UHGZ4FUY0SE"
}]



Workload Analytics

Backlog

Title

Description

B-05760

Attach Reports to Email Tasks in additional formats, comparable to Run Report Web Service API

Reports attached to Email Tasks are now available in additional formats.

E-01732

Allow specification of Critical End Points for Critical Path Calculations

For Workflows with the Calculate Critical Path option Specified. One or more Tasks (including Sub Workflows) can be designated as Critical End Points for the purposes of Critical Path Calculations.

B-14640

Manual Launch Reason

A new system property Task Launch Reason Required causes the task Launch Confirmation Window to be displayed and require a reason to be provided when set to true the default value is false.

Workload Automation

Backlog

Title

Description

B-15836

Variable / Function Evaluation for for Workflow Edge Conditions

A new Variable option is available in the Workflow Edge Condition selection window. The Variable option is available for all task types. This allows workflow dependencies to be made conditional based upon variable and function output evaluation.

B-06269

Allow variables and functions to be specified in Set Variable Action variable names.

You are now allowed to use variables and functions as part of the name field in Set Variable Actions.

B-14158

Mutually Exclude a Task from Itself

You can now set a task not to run against itself. This can be set via a new Mutually Exclude With Self checkbox in the General section of the Task Definition.

B-14639

Limit Number of Agents in Agent Cluster

You can now specify a limit to the number of Agents that can become members of an Agent Cluster.

B-10132

Add System Affinity field to zOS Task

zOS tasks now support the ability to override the System or System Affinity parameter.