UDMG File Transfer


Disclaimer

Your use of this download is governed by Stonebranch’s Terms of Use, which are available at https://www.stonebranch.com/integration-hub/Terms-and-Privacy/Terms-of-Use/

Overview

UDMG (Universal Data Mover Gateway) is a business-to-business MFT (Managed File Transfer) Solution. It provides the capabilities to securely manage File transfers with external business partners (i.e. Customers or Suppliers), and between any endpoint in today’s Hybrid-IT infrastructure, on-premises, or in the cloud (public and or private).

This Universal Extension provides the capability to perform file transfer where UDMG is the client and upload or download files to remote partners.

Version Information

Template NameExtension NameExtension Version
UDMG File Transferue-mft-transfer1.0.0

Software Requirements

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

Software Requirements for Universal Template and Universal Task

Requires Python 3.7.0 or higher. Tested with the Universal Agent bundled Python distribution.

Software Requirements for Universal Agent

Both Windows and Linux agents are supported.

  • Universal Agent for Windows x64 Version 7.1.0.0 and later with python options installed.
  • Universal Agent for Linux Version 7.1.0.0 and later with python options installed.

Software Requirements for Universal Controller

Universal Controller Version 7.2.0.0 and later.

Network and Connectivity Requirements

Universal Agent requires connectivity towards the UDMG server REST API.

Key Features

This Universal Extension provides the following key features:

  • Actions
    • Trigger a File Transfer on UDMG to download a file from a remote partner.
    • Trigger a File Transfer on UDMG to upload a file to a remote partner.
  • File Transfer Control
    • Capability to pause a partial transfer.
    • Capability to resume a paused transfer.
    • Capability to cancel a transfer (from planned, running, paused, or error status).
    • Task is synchronous with the UDMG transfer and terminates when the transfer is completed (either with success or error)
  • Input/Output
    • Capability for the UAC task author, to retrieve the list of partners from UDMG for a given protocol.
    • Capability for the UAC task author, to retrieve the list of transfer rules from UDMG for a given partner.
    • Monitor of the transfer with periodic polling from UDMG and display to output-only fields and extension output.
  • Other
    • Support for SFTP, HTTP, and HTTPS file transfer protocol

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. To import the Universal Template into your Controller, follow the instructions here.

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

Configure Universal Task

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

Input Fields

The input fields for this Universal Extension are described below.

FieldInput typeDefault valueTypeDescription
ActionRequiredPUTChoiceAction performed upon the task execution.
Available actions:
  • PUT
  • GET
ProtocolRequiredSFTPChoice
The transfer protocol.
Available values:
  • SFTP
  • HTTP
  • HTTPS

Note

The protocol serves as a filter for the Partner list. The actual protocol for the file transfer is the one that is configured on UDMG for the selected Partner

MFT ServerRequired-TextUDMG Server URL.
For example: http://localhost:8080/api
MFT CredentialsRequired-CredentialsUDMG Server Credentials. The Credentials definition should be as follows.
  • User Name as "Runtime User".
  • User Password as "Runtime Password".
The user must have read permissions for rules and partners, read/write permission for transfers
FileRequired-TextThe name of file,
  • local file for PUT
  • remote file for GET
PartnerRequired-Dynamic ChoiceDynamically fetched list of partner names.
The list is restricted to the partners that support the selected Protocol. The user can select the required partner name from a drop-down list.
RuleRequired-Dynamic ChoiceDynamically fetched list of transfer rules.
The list is restricted to the rules that are assigned to the selected Partner. The user can select the required rule from a drop-down list.
Partner AccountRequired-TextThe name of the account to use for the connection to the selected Partner.
The account credentials are configured on UDMG.
AdvancedOptionalFalseBooleanBy checking this field, more fields are available for advanced configuration.
Polling IntervalOptional5IntegerThe amount of time (in seconds) the task will wait before polling to check the transfer status.
Valid values from 0.

Task Examples

PUT a file to HTTPS partner

Example for sending a file to a HTTPS server.


The configuration on UDMG for the partner:

GET a file from an SFTP server

Example for downloading a file from an SFTP server.

The configuration on UDMG for the partner:

Task Execution

Dynamic Commands

Command NameAllowed Task Instance StatusDescription
PauseRUNNINGIssue the pause command on the UDMG transfer
ResumeRUNNINGIssue the resume command on the UDMG transfer

Cancelation

When the task instance is canceled on the Controller, a cancel command is issued on the UDMG transfer to attempt a graceful termination.

Task Output

Output Only Fields

The output fields for this Universal Extension are described below.

FieldTypeDescription
Transfer IDTextThe unique identifier of the transfer on UDMG
Transfer StatusTextThe current status of the transfer
One of PLANNED, RUNNING, PAUSED, INTERRUPTED, DONE, CANCELLLED or ERROR
Transfer Start TimeTextThe date and time the transfer has started
Transfer End TimeTextThe date and time the transfer has ended
Transfer StepTextThe current processing step of the transfer
One of NONE, PRE TASKS, DATA, POST TASKS, ERROR TASKS or FINALIZATION
Transfer ProgressIntegerThe progress (in bytes) of the data transfer
Error CodeTextThe error code of the transfer (if an error occurred)
Error MessageTextThe error message (if an error occurred)
Transfer Task NumberTextThe number of the task in the processing step. Especially for the steps 'PRE TASKS', 'POST TASKS', and 'ERROR TASKS'
Local FileTextLocal file path
Remote FileTextRemote file path

Exit Codes

The exit codes for this Universal Extension are described below.

Exit CodeStatus Classification CodeStatus Classification DescriptionStatus Description
0SUCCESSSuccessful ExecutionSUCCESS
1FAILFailed ExecutionFAIL: < Error Description >
2AUTHENTICATION_ERRORBad credentialsAUTHENTICATION_ERROR: Account cannot be authenticated.
3AUTHORIZATION_ERRORInsufficient PermissionsAUTHORIZATION_ERROR: Account is not authorized to perform the requested action.
10CONNECTION_ERRORBad connection data or connection timed outCONNECTION_ERROR: < Error Description >
11CONNECTION_ERRORExtension specific connection errorCONNECTION_ERROR: 404 page not found
20DATA_VALIDATION_ERRORInput fields Validation ErrorDATA_VALIDATION_ERROR: 400 bad request:
21TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeUnknown
22TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeInternal
23TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeUnimplemented
24TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeConnection
25TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeConnectionReset
26TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeUnknownRemote
27TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeExceededLimit
28TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeBadAuthentication
29TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeDataTransfer
30TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeIntegrity
31TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeFinalization
32TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeExternalOperation
33TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeWarning
34TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeStopped
35TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeCanceled
36TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeFileNotFound
37TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeForbidden
38TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeBadSize
39TRANSFER_STATUS_ERRORTransfer Execution ErrorTRANSFER_STATUS_ERROR: Transfer failed with error code: TeShuttingDown
100TRANSFER_STATUS_CANCELUnexpected Transfer StatusTRANSFER_STATUS_CANCEL: Unexpected CANCELLED status

See description of the Transfer Error Code: https://doc.waarp.org/waarp-gateway/0.5.1/fr/reference/errorcodes.html

Extension Output

In the context of a workflow, subsequent tasks can rely on the information provided by this integration as Extension Output.

The Extension output contains attribute result. Attribute result contains the following sub-attributes:

AttributeTypeDescription
transfer_idstringThe unique identifier of the transfer on UDMG
statusstringThe current status of the transfer
One of PLANNED, RUNNING, PAUSED, INTERRUPTED, DONE, CANCELLLED or ERROR
startstringThe date and time the transfer has started
stopstringThe date and time the transfer has ended
stepstringThe current processing step of the transfer
One of NONE, PRE TASKS, DATA, POST TASKS, ERROR TASKS or FINALIZATION
progressnumberThe progress (in bytes) of the data transfer
error_codestringThe error code of the transfer (if an error occurred)
error_msgstringThe error message (if an error occurred)
task_numberstringThe number of the task in the processing step. Especially for the steps 'PRE TASKS', 'POST TASKS', and 'ERROR TASKS'
local_filestringLocal file path
remote_filestringRemote file path

An example of the Extension Output for an upload to HTTPS is presented below.

{
    "exit_code": 0,
    "status_description": "SUCCESS",
    "invocation": {
        "fields": {
            "credentials_user": "admin",
            "credentials_password": "****",
            "action": "PUT",
            "protocol": "https",
            "mft_server": "http://b2bmft.stonebranch.com:9180/api",
            "file": "hello.txt",
            "partner": "beeceptor",
            "rule": "beeceptor_send",
            "user": "bee",
            "advanced": false,
            "transfer_date": null,
            "polling_interval": 5
        }
    },
    "result": {
        "status": "SUCCESS",
        "mft_transfer": {
            "transfer_id": "237",
            "start": "2022-06-28T14:06:19.135894+00:00",
            "stop": "2022-06-28T14:06:20.836079+00:00",
            "status": "DONE",
            "step": null,
            "progress": 20,
            "task_number": null,
            "error_code": null,
            "error_msg": null,
            "local_file": "/atests/work/out/hello.txt",
            "remote_file": "/hello.txt"
        }
    }
}

STDOUT and STDERR

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

Document References

This document references the following documents.

Document LinkDescription
Universal TemplatesUser documentation for creating, working with and understanding Universal Templates and Integrations.
Universal TasksUser documentation for creating Universal Tasks in the Universal Controller user interface.
CredentialsUser documentation for creating and working with credentials.
Resolvable Credentials Permitted PropertyUser documentation for Resolvable Credentials Permitted Property.