transport global is the low-code SFTP boundary. It moves files between a remote SFTP server and Storage or runs a bounded batch of supported file commands. It does not expose a remote shell and it does not own file retention, structured parsing, or ACLs.
Configure the connection Secret
Pass an active Secret’s unique name or ID as the final argument. Raw credentials are not accepted in low-code source. Password authentication can use flat JSON:hostKeyFingerprint in production when the installation requires server identity verification. Without a pin, the bridge accepts the key presented during that handshake and does not persist a caller-owned known_hosts record.
Import into Storage
Declare the final Storage destination in the import call. The transfer returns only after the upload session is finalized.storage.*. A namespace or folder ID is a target selector, not a permission grant.
For a known CSV feed, pass csv dialect settings such as delimiter, recordDelimiter, encoding, quote and escape in the import options. With computeStats: 'sync', malformed CSV fails finalization with STORAGE_CSV_INVALID before a file is published for downstream processing. The remote source remains in place; archive or rename it only after successful validation. Do not switch to quote: false as an automatic fallback for invalid standard CSV. See CSV dialect and validation.
To replace an existing entry, make replacement explicit:
STORAGE_SYNCHRONIZED, not merely from successful byte transfer.
Export from Storage
sftpExport() streams the Storage object to the remote path without loading the complete file into low-code memory.
Inspect and manage remote paths
sftpCommands() executes supported file commands in order within one leased connection. A batch transport response can succeed while an individual command reports an error, so inspect every result.
Design an idempotent polling workflow
A robust scheduled import usually follows this sequence:- list the bounded inbound directory;
- select files by an explicit naming and age rule;
- derive a stable source identity from remote path, size, modification time, or a partner manifest;
- skip a source identity already committed locally;
- import and finalize the Storage entry;
- validate authoritative metadata and, when required, structured statistics;
- rename the remote file into an archive or processed path;
- retain evidence that connects the remote identity, Storage entry, and Job run.
Runtime and security rules
- SFTP uses the executing identity’s Storage access; the connection Secret does not expand Storage permissions.
- Import creates or replaces a finalized Storage entry. Export reads an existing authorized entry.
- Healthy connections can be reused internally, but code must not rely on connection affinity or session state between calls.
- Debug execution does not perform the external SFTP side effect.
- Transfer failures retain status and a safe error category. Credentials, signed URLs and destination error bodies are omitted from returned diagnostics.
- Never log credentials, private keys, signed Storage URLs, or unrestricted directory listings.
- A timeout or disconnect can be ambiguous around a remote mutation. Inspect the remote path before repeating a destructive or overwriting command.
transport reference, Storage, Storage upload sessions, and Jobs.
