UAC Utility: UDMG Transfer

UAC Utility: UDMG Transfer

Disclaimer

Your use of this download is governed by Stonebranch’s Terms of Use.

Version Information

Template Name

Extension Name

Version

Status

UDMG Transfer

ue-udmg-mft

1 (Current 1.0.0)

Fixes and new Features are introduced.

Refer to Changelog for version history information.

Overview

Universal Data Mover Gateway (UDMG) is Stonebranch’s secure managed file-transfer (MFT) solution for orchestrating data movement across on-prem, cloud, and partner environments. It provides encrypted transfers, centralized credential and endpoint management, policy-based governance, and detailed auditing. UDMG integrates tightly with the Universal Automation Center (UAC), enabling unified security, logging, and access control across automated workflows.

This extension integrates the functionality of UDMG into UAC, allowing users to trigger and monitor UDMG file-transfer pipelines (UDMG 3.2+), by allowing transfers to be initiated programmatically as part of broader UAC workflows. Transfer completion is reflected directly in the task instance status, supporting reliable workflow chaining and ensuring secure data movement without manual intervention.

Key Features

Feature

Description

Trigger File Transfers through UDMG

Initiate UDMG file-transfer pipelines (UDMG 3.2+) directly from the task instance, enabling secure PUT/GET operations as part of automated workflows.

Cancellation Propagation

Automatically forwards task-instance cancellations to UDMG, ensuring that an in-progress transfer is also cancelled on the UDMG side for consistent and controlled workflow behavior.

Automatic Schedule or Transfer Information Retrieval upon Completion

Exposes extension output containing details about the created UDMG schedule or triggered transfer, allowing downstream workflow steps to access identifiers, statuses, and other execution metadata.


Requirements

This integration requires a Universal Agent and a Python runtime to execute the Universal Task.

Area

Details

Python VersionRequires Python 3.11, tested with Python 3.11.8
Universal Agent Compatibility
  • Compatible with Universal Agent for Windows x64 and version >= 7.6.0.0.
  • Compatible with Universal Agent for Linux and version >= 7.6.0.0.
Universal Controller CompatibilityUniversal Controller Version >= 7.6.0.0.
Universal Data Mover Gateway

This integration is tested using UDMG version 3.2.

Should retain compatibility with later versions as long as backward compatibility is preserved. 

Network and ConnectivityConnectivity towards a UDMG v3.2+ instance.

Supported Actions

There is a single Top-Level action controlled by the Action Field:

  • Initiate File Transfer

Action Output

Output Type

Description

Examples

EXTENSION

The extension output provides the following information:

  • exit_code, status, status_description: General info regarding the task execution. In case of failure, it’s set according to the specific error that happened during the execution. A list of possible values is provided in the exit codes table in this document.

  • invocation.fields: The task configuration used for this task execution.

  • result.schedule_details: Information relating to the schedule created to accommodate transfer. Only available if the corresponding Extension Output option has been selected.

  • result.transfer_details: Information relating to the final transfer instance that’s tied to the created schedule. Only available if the corresponding Extension Output option has been selected.


 <Successful Execution Scenario>
{
	"exit_code": 0,
	"status_description": "File Transfer executed successfully.",
	"invocation": {
		"extension": "ue-udmg-mft",
		"version": "1.0.0",
		"fields": { ... },
	},
	"result": {
		"schedule_details": {
			"scheduleId": 143,
			"transferId": 201,
			"pipeline": "remote-to-local",
			"username": "credentials_username",
			"source": "/home/ue-dev/ftp_up/file.txt",
			"destination": "/data/",
			"schedule": "2025-12-08T15:54:59.092Z",
			"status": "Completed",
			"executedAt": "2025-12-08T15:55:00.875783675Z",
			"completedAt": "2025-12-08T15:55:00.982892203Z",
			"transferAttempt": [
				{
					"attemptNumber": 1,
					"transferId": 201,
					"startedAt": "2025-12-08T15:55:00.875790975Z",
					"completedAt": "2025-12-08T15:55:00.982891903Z"
				}
			]
		},
		"transfer_details": {
			"uuid": "de7-xxx-ad",
			"updatedAt": "2025-12-08T15:55:00.982291779Z",
			"transferId": 201,
			"sessionId": 201,
			"sessionUUID": "76b7-xxx-dbb090",
			"accountName": "credentials_username",
			"protocol": "SFTP",
			"pipeline": "remote-to-local",
			"endpointSource": "remote_sftp_server",
			"endpointSourceType": "remote:sftp:server",
			"endpointDestination": "local_fs",
			"endpointDestinationType": "local::filesystem",
			"source": "/home/ue-dev/ftp_up/bli.txt",
			"destination": "/data2/bli.txt",
			"workDirectory": "/home/udmg/dev",
			"progress": 17,
			"fileSize": 17,
			"isSend": false,
			"isSchedule": true,
			"scheduleId": 143,
			"status": "Completed",
			"startedAt": "2025-12-08T15:55:00.873122968Z",
			"completedAt": "2025-12-08T15:55:00.982291179Z"
		}
	}
}
 <Failed Execution Scenario>
{
	"exit_code": 1,
	"status_description": "Transfer Failed: Schedule with ID 124 resulted in failure, reason is 'Max 
retries exceeded. Last error: failed to get source file path '/filename.txt': object not found'",
	"invocation": {
		"extension": "ue-udmg-mft",
		"version": "1.0.0",
		"fields": { ... },
	},
	"result": {
		"schedule_details": {
			"scheduleId": 27,
			"transferId": 187,
			"pipeline": "remote-to-local",
			"username": "credentials_username",
			"source": "/filename.txt",
			"destination": "/data/ftp_up/",
			"schedule": "2025-11-25T16:25:38.783Z",
			"status": "Failed",
			"errorMessage": "Max retries exceeded. Last error: failed to get source file path '
/filename.txt': object not found",
			"executedAt": "2025-11-25T16:28:00.632465032Z",
			"completedAt": "2025-11-25T16:28:00.633933497Z",
			"transferAttempt": [
				{
					"attemptNumber": 1,
					"transferId": 187,
					"startedAt": "2025-11-25T16:26:00.714397687Z",
					"completedAt": "2025-11-25T16:26:00.715876153Z",
					"errorMessage": "failed to get source file path '/filename.txt': object not found"
				}
			]
		}
	}
}
 <Cancelled Execution Scenario>
{
	"exit_code": 0,
	"status_description": "File Transfer cancelled successfully",
	"invocation": {
		"extension": "ue-udmg-mft",
		"version": "1.0.0",
		"fields": { ... }
	},
	"result": {
		"schedule_details": {
			"id": 86,
			"pipeline": "local-to-remote",
			"username": "credentials_username",
			"source": "/data/filename.txt",
			"destination": "/ftp_up/",
			"schedule": "2025-10-21T13:07:09.478Z",
			"status": "Cancelled",
			"errorMessage": "Transfer schedule cancellation requested by ue-udmg-mft integration",
			"completedAt": "2025-10-21T13:07:13.141959231Z"
		}
	}
}


Configuration Examples

Example: Initiate a File Transfer, without polling for its completion

This task is a simple example for initiating a File Transfer on UDMG and immediately exiting.

Example: Initiate a File Transfer, polling for its completion and requesting all available information

This task uses initiates a File Transfer on UDMG verifying the connection with the specified CA bundle, waiting for its completion and retrieving all available information. All optional environment variables have been set to appropriate values.

Importable Configuration Examples

This integration provides importable configuration examples along with their dependencies, grouped as Use Cases to better describe end to end capabilities.

Those examples aid in allowing task authors to get more familiar with the configuration of tasks and related Use Cases. Such tasks should be imported in a Test system and should not be used directly in production.

Initial Preparation Steps

  • STEP 1: Go to Stonebranch Integration Hub and download the "UDMG Transfer" integration. Extract the downloaded archive on a directory in a local drive.

  • STEP 2: Locate and import the above integration to the target Universal Controller. For more information refer to the "How To" section in this document

  • STEP 3: For "UDMG Transfer", inside directory named "configuration_examples" you will find a list of definition zip files. Upload them one by one respecting the order presented below, by using the "Upload" functionality of Universal Controller: 

    • variables.zip

    • credentials.zip

    • tasks.zip

    • workflows.zip

  • STEP 4: Update the uploaded UAC Credential entity introduced with proper Username / Password

  • STEP 5: Update the UAC global variables introduced with variables.zip file. Their name is prefixed with "ue_udmg_mft". Review the descriptions of the variables as they include information on how they should be populated.

The "Upload" functionality of Universal Controller allows Users to import definitions exported with the "Download" functionality.

The order indicated above ensures that the dependencies of the imported entities need to be uploaded first. 

How to "Upload" Definition Files to a Universal Controller

Login to Universal Controller and:

  • STEP 1: Click on "Tasks" → "All Tasks"

  • STEP 2: Right click on the top of the column named "Name"

  • STEP 3: Click "Upload..."

In the pop-up "Upload..." dialogue:

  • STEP 1: Click "Choose File".

  • STEP 2: Select the appropriate zip definition file and click "Upload".

  • STEP 3: Observe the Console for possible errors.

Use Case 1: Local File Processing via UDMG Transfer (SFTP)

Description
In this Use Case, the workflow demonstrates how to retrieve a file from a remote SFTP server using the Stonebranch UDMG service, process the file locally, and then transfer it back to the same or a different remote SFTP server.
The tasks configured demonstrate the following capabilities among others:
  • File transfer from and to a remote SFTP server using the ue-udmg-mft (UDMG Transfer) extension.
  • Monitoring of transfer and automatic setting of variables based on information exposed by UDMG Transfer Task's Extension Output.

The components of the solution are described below:

"UC1: UDMG MFT - Transfer from Remote A to Local" – Uses the ue-udmg-mft extension to transfer a file from a remote SFTP server to the local system via the UDMG service. Output variables are set with the local file path.

"UC1: UDMG MFT - File Processing Task" – Performs local processing or alteration of the retrieved file (for example, text replacement using sed) by referencing the variables set in the previous step.

"UC1: UDMG MFT - Transfer from Local to Remote B" – Uses the ue-udmg-mft extension to transfer the processed file to the same or a different remote SFTP server.

How to Run

Execution Steps:

STEP 1: Manually start the workflow. This triggers "UC1: UDMG MFT - Transfer from Remote A to Local", which downloads the file from the remote SFTP server and sets variables pointing to the local file path.

STEP 2: Once the file is available locally, "UC1: UDMG MFT - File Processing Task" runs, allowing users to modify the file using standard tools and the provided path variables.

STEP 3: After processing completes, "UC1: UDMG MFT - Transfer from Local to Remote B" uploads the modified file to the target SFTP server.

Expected Results:

  • The file is successfully transferred from the remote SFTP server via UDMG.
  • Variables are set, enabling immediate access to the local file path.
  • The file is processed locally as defined by the workflow.
  • The processed file is successfully transferred to the target remote SFTP server.

Input Fields

Name

Type

Description

Version Information

Action

Choice

The action performed upon the task execution.

  • Initiate Transfer

Introduced in 1.0.0

UDMG Server Base URLText

The Base URL of the UDMG Server to connect to, e.g. https://<udmg-host>:<port>. 

Introduced in 1.0.0

Enable SSL VerificationCheckbox

Enable to verify the UDMG instance's SSL certificate. Disable to skip verification. A path to a certificate bundle may be specified via the UE_SSL_CERT environment variable.

Introduced in 1.0.0

DomainText

The UDMG domain to connect to. Either the domain's name or ID can be specified.

Introduced in 1.0.0

Domain CredentialsBoolean

Credentials to be used to connect to aforespecified domain.

Introduced in 1.0.0

PipelineChoice

The pipeline upon which to initiate a File Transfer.

Introduced in 1.0.0

Path to Source FileText

Relative path to the file that is to be transferred.

Introduced in 1.0.0

Path to DestinationText

Relative path to the location where the transferred file should be placed.

Introduced in 1.0.0

Wait for Success or FailureCheckbox

Specifies whether the extension should wait for the transfer's completion.

Introduced in 1.0.0

Polling IntervalInt

The interval at which to check the status of ongoing transfer.

Only available if Wait for Success or Failure is selected.

Introduced in 1.0.0

Extension Output OptionsChoice

Controls whether additional information is printed to Extension Output. Available options are:

  • Include Schedule Details

  • Include Transfer Details

Only available if Wait for Success or Failure is selected.

Introduced in 1.0.0


Output Fields

The following output-only fields provide better visibility during the execution of Universal Task Instances.

Name

Type

Description

Version Information

Task UUID

Text

UUID of deployed task instance

Introduced in 1.0.0

TransferID

Text

ID assigned from UDMG to ongoing transfer

Introduced in 1.0.0

ScheduleID

Text

ID assigned from UDMG to ongoing schedule

Introduced in 1.0.0


Environment Variables

Environment Variables can be set from Environment Variables task definition table. The following environment variables can affect the behavior of the extension.


Environment Variable Name

Description

Version Information

UE_HTTP_TIMEOUT

Specifies the timeout (in seconds) for HTTP requests made by the Task Instance. A higher value allows for slower responses, while a lower value enforces stricter time constraints. If not set, a default of 60 seconds is used. When a timeout happens, the Task Instance ends in failure.

Introduced in 1.0.0

UE_SSL_CERT

Used to specify the local path to CA Bundle to be used for SSL Verification. If not set, and Enable SSL Verification has been selected, the system default CA Bundle will be used.

Introduced in 1.0.0

UE_SCHEDULE_POLLING_INTERVAL

Specifies how often the schedule should be polled for transfer initiation.

Introduced in 1.0.0

Cancelation and Rerun

  • In case of cancellation, monitoring of the transfer is halted. The cancellation is propagated to UDMG, cancelling the ongoing file transfer, and retrieving information relevant to the schedule and transfer before exiting.

  • In case of rerun the extension follows the same execution flow as the initial execution. As such, the transfer will once again be initiated, with the result depending on the state of the source and target directories. Note that in case the transfer has already been completed and the file remains unchanged on both systems, the transfer will be instantly completed on the UDMG side.

Exit Codes

Exit Code

Status

Status Description

Meaning
0

Success

“SUCCESS: Task executed successfully. “

Successful Execution
1

Failure

“Execution Failed: <<Error Description>>”

Generic Error. Raised when not falling into the other Error Codes.
2

Failure

“Authentication Error: Account cannot be authenticated.“

Bad credentials
3

Failure

“Authorization Error: Account is not authorized to perform the requested action.“

Insufficient permissions
10

Failure

“Timeout Exceeded Error: Timeout Error.“

Timeout Error produced by any requests towards UDMG instance.
20

Failure

“Data Validation Error: <<Error Description>>“

Input fields validation error.
40

Failure

“Polling Error: <<Error Description>>“

Error during file transfer progress polling.

STDOUT and STDERR

STDOUT of this integration is empty

STDERR provides additional information to the user, the verbosity of which is tuned by the Log Level Task Definition field.

STDOUT and STDERR provide additional information to the User. The populated content can be changed in future versions without notice. Backward compatibility is not guaranteed.

How To 

Import Universal Template

To use the Universal Template, you first must perform the following steps.

  1. This Universal Task requires the Resolvable Credentials feature. Check that the Resolvable Credentials Permitted system property has been set to true.

  2. Import the Universal Template into your Controller,

  3. When the files have been imported successfully, refresh the Universal Templates list; the Universal Template will appear on the list.

Modifications of this integration, applied by users or customers, before or after import, might affect the supportability of this integration. For more information refer to Integration Modifications.

Configure Universal Task

For a new Universal Task, create a new task, and enter the required input fields.

Integration Modifications

Modifications applied by users or customers, before or after import, might affect the supportability of this integration. The following modifications are discouraged to retain the support level as applied for this integration.

  • Python code modifications should not be done.

  • Template Modifications

    • General Section

      • "Name", "Extension", "Variable Prefix", and "Icon" should not be changed.

    • Universal Template Details Section

      • "Template Type", "Agent Type", "Send Extension Variables", and "Always Cancel on Force Finish" should not be changed.

    • Result Processing Defaults Section

      • Success and Failure Exit codes should not be changed.

      • Success and Failure Output processing should not be changed.

    • Fields Restriction Section
      The setup of the template does not impose any restrictions. However, concerning the "Exit Code Processing Fields" section.

      1. Success/Failure exit codes need to be respected.

      2. In principle, as STDERR and STDOUT outputs can change in follow-up releases of this integration, they should not be considered as a reliable source for determining the success or failure of a task.

Event Template configuration related to “Metric Label Attributes” & “Optional Metric Labels” is allowed. However, administrators should be cautious of high cardinality scenarios that might occur.

Users and customers are encouraged to report defects, or feature requests at Stonebranch Support Desk.

Document References

This document references the following documents:


Document Link

Description

Universal Templates

User documentation for creating, working with and understanding Universal Templates and Integrations.

Universal Tasks

User documentation for creating Universal Tasks in the Universal Controller user interface.

Changelog

ue-udmg-mft-1.0.0 (2025-12-19)

Initial Version release