API reference
SSH and remote execution activities
Run commands and manage files and directories on remote machines over SSH and SFTP.
Run commands and manage files and directories on remote machines over SSH and SFTP. This page covers 3 activity types.
ssh_command#
SSH Command. Execute a command on a remote machine over SSH. No agent or special software required on the target — standard SSH access only.
| Input | Type | Required | Description |
|---|---|---|---|
host |
string | Yes | Hostname or IP address of the remote machine |
username |
string | Yes | SSH username |
command |
string | Yes | Command to execute on the remote machine |
port |
number | No | SSH port (default: 22) |
password |
string | No | SSH password (use password or privateKey, not both) Secret: stored encrypted. |
privateKeyPath |
string | No | Path to a private key file (PEM format) for key-based authentication |
privateKeyPassphrase |
string | No | Passphrase for the private key file, if it's encrypted Secret: stored encrypted. |
timeoutSeconds |
number | No | Connection and command timeout in seconds (default: 30) |
failOnNonZeroExit |
boolean | No | Throw an error if the command exits with a non-zero code (default: true) |
| Output | Type | Description |
|---|---|---|
output.exitCode |
number | Command exit code |
output.stdout |
string | Standard output from the remote command |
output.stderr |
string | Standard error from the remote command |
Config block example:
{
"host": "10.0.1.50",
"username": "deploy",
"command": "sudo systemctl restart my-service",
"timeoutSeconds": 30
}
ssh_dir#
SSH Directory. Remote directory operations over SSH/SFTP: list, create, delete, copy, and check existence
Operations: list, create, delete, copy, exists. Set with the operation input.
| Input | Type | Required | Description |
|---|---|---|---|
host |
string | Yes | Hostname or IP address of the remote machine |
username |
string | Yes | SSH username |
operation |
string | Yes | Operation: list, create, delete, copy, exists Allowed values: list, create, delete, copy, exists. Default: list. |
remotePath |
string | Yes | Remote directory path to operate on |
port |
number | No | SSH port (default: 22) |
password |
string | No | SSH password (use password or privateKey, not both) Secret: stored encrypted. |
privateKeyPath |
string | No | Path to a private key file (PEM format) for key-based authentication |
privateKeyPassphrase |
string | No | Passphrase for the private key file, if it's encrypted Secret: stored encrypted. |
pattern |
string | No | Glob filter pattern for list operation (e.g. *.log) |
recursive |
boolean | No | Recurse into subdirectories (delete operation, default: false) |
timeoutSeconds |
number | No | Connection timeout in seconds (default: 30) |
destinationPath |
string | Yes | Remote destination path to copy the directory to (copy operation) Used when operation is copy. |
overwrite |
boolean | No | Overwrite existing files at the destination (copy operation, default: false) Used when operation is copy. |
ignoreIfNotFound |
boolean | No | Do not throw if the remote directory does not exist (delete operation, default: false) Used when operation is delete. |
| Output | Type | Description |
|---|---|---|
output.files |
array | Array of file/directory entries (list operation) |
output.fileCount |
number | Number of items returned (list operation) |
output.success |
boolean | Whether the operation succeeded |
output.exists |
boolean | Whether the remote directory exists (exists operation) |
Config block example:
{
"host": "10.0.1.50",
"username": "deploy",
"operation": "list",
"remotePath": "/var/log/myapp",
"pattern": "*.log"
}
ssh_file#
SSH File. Remote file operations over SSH/SFTP: upload, download, read, write, delete, copy, and check existence
Operations: upload, download, read, write, delete, exists, copy. Set with the operation input.
| Input | Type | Required | Description |
|---|---|---|---|
host |
string | Yes | Hostname or IP address of the remote machine |
username |
string | Yes | SSH username |
operation |
string | Yes | Operation: upload, download, read, write, delete, exists, copy Allowed values: upload, download, read, write, delete, exists, copy. Default: read. |
remotePath |
string | Yes | Remote file path to operate on |
port |
number | No | SSH port (default: 22) |
password |
string | No | SSH password (use password or privateKey, not both) Secret: stored encrypted. |
privateKeyPath |
string | No | Path to a private key file (PEM format) for key-based authentication |
privateKeyPassphrase |
string | No | Passphrase for the private key file, if it's encrypted Secret: stored encrypted. |
storageId |
string | No | Use a governed Storage instead of a literal local path below (upload/download operations only) — the physical location is configured by an administrator and never exposed to the workflow. Used when operation is upload, download. |
areaId |
string | No | Storage Area within the Storage above — the RBAC boundary this operation is authorized against. Used when operation is upload, download. |
relativePath |
string | No | Local-side path relative to the Storage Area's root (upload/download operations only) Used when operation is upload, download. |
localPath |
string | Yes | Local file path (upload/download operations, ignored when a Storage is picked above) Used when operation is upload, download. |
content |
string | No | File content to write (write operation) |
timeoutSeconds |
number | No | Connection timeout in seconds (default: 30) |
destinationPath |
string | Yes | Remote destination path to copy the file to (copy operation) Used when operation is copy. |
overwrite |
boolean | No | Overwrite the destination if it already exists (default: false — errors instead of replacing it) Used when operation is write, upload, download, copy. |
ignoreIfNotFound |
boolean | No | Do not throw if the remote file does not exist (delete operation, default: false) Used when operation is delete. |
| Output | Type | Description |
|---|---|---|
output.success |
boolean | Whether the operation succeeded |
output.content |
string | File content (read operation) |
output.exists |
boolean | Whether the remote file exists (exists operation) |
output.remotePath |
string | Resolved remote path |
Config block example:
{
"host": "10.0.1.50",
"username": "deploy",
"operation": "upload",
"remotePath": "/var/data/report.pdf"
}