Skip to main content

Remote SFTP Transfers - Pull

The Remote SFTP Transfer - Pull (Remote SFTP Server to Local Filesystem) Pipeline enables UDMG to act as an SFTP client, pulling files from the external SFTP server to the local UDMG filesystem. This Pipeline uses a two-part configuration approach: static Endpoint-specific settings configured in the UDMG Admin UI, and dynamic transfer parameters specified via API calls.

To configure this Pipeline, you must prepare:

  • Get external SFTP server details from the server administrator: hostname, port, username, password/SSH key, and destination directory path
  • Identify your local source directory and ensure UDMG has proper file permissions to read from it
  • Test connectivity to the external SFTP server (ping/telnet) and verify you can authenticate manually
  • Prepare API integration setup and have a role with domain-level permissions
info

To explore additional Pipeline configurations and their behaviors, see Pipeline Types.

Before You Begin

External SFTP Server Authentication

Pipelines where UDMG acts as a client—more specifically, those that contain a Remote SFTP Server Endpoint—require credentials to authenticate with the external SFTP server.

Unlike Pipelines, where UDMG acts as the server and relies on Accounts to supply credentials, these Pipelines define credentials directly within the Pipeline configuration.

This design enables each Pipeline to manage its own client authentication credentials independently. As a result, each Pipeline can only authenticate with one external system and use one distinct Credential Type at a time.

Supported Authentication Methods

UDMG supports three authentication methods when connecting to external SFTP servers. The external SFTP server configuration determines the required authentication method and must be provided by the server administrator.

info

Each Pipeline can only have one Credential Type associated with it at one time.

Transfer Initialization via Scheduled API

The Pipeline must be explicitly scheduled and triggered through the Transfers Scheduled API, using the configuration provided at the Pipeline level and API. You must first create the Pipeline using the Field Descriptions below, providing Endpoint-specific information. From there, to initiate a Transfer, you must submit an API request using the API Endpoint with the Pipeline name, the location and name of the file on the external SFTP server to be transferred, and the execution timestamp. Optionally, you can provide a specific destination path for where the file is to be transferred on UDMG. Transfers can be executed in real-time or scheduled for a specific future time.

This design enables precise control over file movement and allows each Transfer to be dynamically customized and scheduled.

API Endpoint

POST /api/v1/domains/${UDMG_DOMAIN_NAME}/transfers

The request body includes the following fields:

KeyDescriptionFormatRequired
pipelineName of the Pipeline.Exact match to the Pipeline's Name field.Yes
whenDate and time for executing the file transfer. If a date in the past is provided, the Transfer is initiated after the next system pending transfer check (transfer.checkInterval parameter is defaulted to every minute). Must be in RFC3339 format ("2025-01-01T00:00:00Z"). Yes
sourceThe exact path where the file to be transferred exists on the external SFTP server. The parameter is appended to the Pipeline's Virtual Path to create a full path. The full path is Virtual Path + destination parameter. Format: /[subdirectory]/[filename.ext] or /[file name.txt]Yes
destinationThe path where the file is to be transferred to on UDMG locally. The parameter is appended to the Pipeline's associated Root Path and Relative Path to create a full path. The full path is workDirectoryPath + Root Path + Relative Path + destination parameter. If the file needs to be added to a subdirectory, then it should be added to the parameter. The file name needs to be changed, then it should be changed with the parameter. If the field is left blank, then it is transferred to the workDirectoryPath + Root Path + Relative Path. Format: /[subdirectory]/[filename.ext] or /[same or new file name.txt]No

Example: Full Configuration and Path

UDMG GlobalSource Endpoint Path 1Source Endpoint Path 2Pipeline Path 1Pipeline Path 2Pipeline Scheduler API Parameter 1Pipeline Scheduler API Parameter 2
API ParameterworkingDirectoryPathpathtmprelativevirtualsourcedestination
GUI Field-Root PathTemporary PathRelative PathVirtual Path--
Examplehome/udmg/receivedfiles-/newfiles/ABC/DEF/test.txt/latest/
  • Resulting Source Path (full): /ABC/DEF/test.txt
  • Resulting Destination Path (full): /home/udmg/receivedfiles/newfiles/latest/test.txt

Example: Schedule a File Transfer via API

Use the following curl command to schedule a file transfer through the Transfers Scheduled API:

curl http://<UDMG_HOST>/api/v1/domains/${UDMG_DOMAIN_NAME}/transfers \
-X POST \
-H "Content-Type: application/json" \
-d '{
"pipeline": "SupplierA_Pipeline2",
"when": "2025-07-03T15:43:52.344Z",
"source": "/DEF/test.txt",
"destination": "/latest/"
}'

Example: Response (Transfer Scheduled)

Use the following curl command to view the list of scheduled transfers.

curl http://<UDMG_HOST>/api/v1/domains/${UDMG_DOMAIN_NAME}/transfers/scheduled
-X GET \
-H "Content-Type: application/json" \
{
"id": 1,
"pipeline": "SupplierA_Pipeline2",
"username": "robi",
"source": "/ABC/DEF/test.txt",
"destination": "/receivedfiles/newfiles/latest/test.txt",
"schedule": "2025-07-03T15:43:52.344Z",
"status": "Completed",
"executedAt": "2025-08-22T20:44:02Z",
"completedAt": "2025-08-22T20:44:02Z"
}

Adding a Pipeline

To add a Remote SFTP Transfer - Pull Pipeline, follow these steps:

  1. From the Sidebar, select Configuration > Pipelines.
  2. Click Add Pipeline.
  3. Complete the Name for the new Pipeline.
  4. Select the Source Endpoint with a Remote SFTP Server Endpoint type.
  5. Select the Destination Endpoint with a Local Filesystem Endpoint type.
  6. Fill out the dynamic fields following the Field Descriptions table.
  7. Click Add.
warning

UDMG does not allow for the creation of identical Pipelines with unique names. The Pipeline must pass the Source Endpoint + Destination Endpoint + Endpoint-specific Configuration + Virtual Path uniqueness check. See Pipelines for more information on Pipeline validation checks.

Field Descriptions

NameDescriptionSpecificationsRequired
NameName of the Pipeline. Yes
DescriptionDescription for the Pipeline.No
Source Endpoint

The Source Endpoint is where files are retrieved, originated, or come from.

Select Remote SFTP Server from the dropdown menu.

Yes
Credentials NameThe client authentication Credentials used to authenticate to the external SFTP server.Must reference an already created Credential (Username and Password, Username and Key, or Username, Password, and Key). Yes
Destination Endpoint

The Destination Endpoint is where files are delivered to or sent.

Select Local Filesystem from the dropdown menu.

Yes
Virtual Path

The exact path or 'Remote Server Path' where the file to be transferred exists on the external SFTP server. The Transfers Scheduled API source parameter is appended to this path to create the full path.
The path must exist on the external remote SFTP server.

Format: /, /[path], or /[path]/[subdirectory]. The subdirectory and file name should not be included here if they are added within the source parameter. Yes
Relative PathThe path where the file is to be transferred to on UDMG locally. The path is used to create a full path. The full path is workDirectoryPath + Root Path + Relative Path + destination parameter. Format: /, /[path], or /[path]/[subdirectory]. The subdirectory and file name should not be included here if they are added within the destination parameter.Yes
Permissions

While this field is currently required by the form, it's not used in the remote transfer configuration.

The permissions on the external SFTP server are based on the permissions set on that server. The permissions to send the Transfer via the Transfers Scheduled API are based on the User's role.

Defaulted to Download/Read File, Upload/Write File, Overwrite File, Delete List, List File.Yes
Universal EventWhile this field is currently in the form, it's not used in the remote transfer configuration.No

Editing a Pipeline

To edit a Remote SFTP Transfer - Pull Pipeline, follow these steps:

  1. From the Sidebar, select Configuration > Pipelines.
  2. Click the Name of the Pipeline you want to edit.
  3. Click the Edit button above the Pipeline details.
  4. Edit details for the Pipeline.
    • The Source Endpoint and Destination Endpoint cannot be changed after creation.
  5. Click Update.
warning

Upon Pipeline update, UDMG checks for Endpoint Source + Endpoint Destination + Configuration + Virtual Path uniqueness.

Managing a Pipeline

All Pipelines support the ability to view the complete Pipeline and linked Endpoint details.

Viewing Pipeline Details

To view the details of a Remote SFTP Transfer - Pull Pipeline, follow these steps:

  1. From the Sidebar, select Configuration > Pipelines.
  2. Click the Name of the Pipeline you want to view.
  3. Click the Overview Tab or Details Tab to see additional Pipeline and Endpoint details.

Pipeline Metadata

Pipeline details include all parameters given in the Field Descriptions table, plus the following read-only metadata:

NameDescription
UUIDUniversally Unique Identifier of this Pipeline.
VersionVersion number of the configuration. Every change increases the number.
EnabledPipeline's Enabled status. If enabled, field is set to True.
CreatedDate and time this Pipeline was created.
UpdatedDate and time this Pipeline was last updated.

Enabling and Disabling Pipelines

Pipelines can be Enabled or Disabled to control their active status and ability to participate in file transfers. The status is defaulted to Enabled and can be changed after creation. The Configuration Item's Disabled status does not impact whether it can be configured. Also, Disabled Endpoints can be added to a Pipeline.

  • Enabled (default): The Pipeline is active and allows file transfers.
  • Disabled: The Pipeline is inactive and does not allow file transfers.

To enable or disable a Pipeline, follow these steps:

  1. From the Sidebar, select Configuration > Pipelines.
  2. Click the Name of the Pipeline you want to enable or disable.
  3. Click the Enable or Disable button above the Pipeline details.
  4. If the Pipeline is Disabled, then the button displays Enabled. If the Pipeline is Enabled, then the button displays Disabled.
  5. Click Update.
info

Changes to the Pipeline's Enabled/Disabled status are not active until the Transfers Scheduled API is triggered again. Disabling a Pipeline is a good alternative to deleting a Pipeline.

Deleting a Pipeline

To delete a Remote SFTP Transfer - Pull Pipeline, follow these steps:

  1. From the Sidebar, select Configuration > Pipelines.
  2. Click the Name of the Pipeline you want to delete.
  3. Click the Delete button above the Pipeline details.
  4. You will be asked to confirm the deletion. Click Delete.

Monitoring a Pipeline

To monitor and determine the status of a Pipeline, the Transfers page and Endpoints page must be monitored to track incoming Transfers and the Source and Destination Endpoints' individual statuses, respectively.

On the Transfers page, the following fields indicate the type of Remote Transfer.

  • Is Schedule: If Yes, then the Transfer was a Remote Transfer.
  • Is Send: If No, then the Remote Transfer was a pull scenario.