SFTP file transfer — upload, download, list, and manage files on remote servers via SSH File Transfer Protocol.
| Property | Value |
|---|
| Type | custom |
| Authentication | basic |
| Category | Generic |
| Field | Type | Required | Description |
|---|
host | string | Yes | SFTP server hostname |
port | number | No | Port (default: 22) |
username | string | Yes | SSH username |
password | string | No | SSH password (if not using key auth) |
private_key | string | No | PEM-encoded SSH private key |
passphrase | string | No | Passphrase for the private key |
base_path | string | No | Base directory path (default: /) |
Upload a file to a remote SFTP server.
| |
|---|
| Endpoint | POST /upload |
| Method | POST |
Download a file from a remote SFTP server.
| |
|---|
| Endpoint | GET /download/{remotePath} |
| Method | GET |
List files and subdirectories in a remote SFTP directory.
| |
|---|
| Endpoint | GET /ls/{remotePath} |
| Method | GET |
Delete a file from a remote SFTP server.
| |
|---|
| Endpoint | DELETE /file/{remotePath} |
| Method | DELETE |
Create a directory on the remote SFTP server. Creates parent directories if needed.
| |
|---|
| Endpoint | POST /mkdir |
| Method | POST |
flow: generate-report-and-upload-sftp
description: Generate a CSV report, upload to partner SFTP server, and send confirmation email
- name: fetch-weekly-data
created_at: ">= now() - interval '7 days'"
- name: upload-to-partner
remotePath: /incoming/reports/weekly-{{ now | date("YYYY-MM-DD") }}.csv
content: report_data | to_csv
- name: send-confirmation
to: partner-ops@example.com
subject: "Weekly report uploaded"
body: "Report uploaded to /incoming/reports/weekly-{{ now | date('YYYY-MM-DD') }}.csv ({{ report_data | length }} rows)"
retry: 3x exponential(30s)