Skip to content

File Put

Description

File Put is a destination node that uploads the connected upstream stream or published artifact to an SFTP destination. Use it when a pipeline has produced file-like output that should be delivered to a configured remote path.

File Put consumes exactly one upstream payload. When a node has more than one upstream producer, use Input producer node (optional) to identify which upstream node should provide the file or stream.

Field reference

Field Description
Protocol Required. File transfer protocol to use. File Put currently supports sftp only.
Account Required. Account UUID used for SFTP authentication. The selected account must contain a username and either password-based or SSH key-based credentials.
Host Required. SFTP host name or IP address. Enter the host only. Do not include a URL scheme, path, username, slashes, backslashes, whitespace, or @.
Port Optional. SFTP port number. Defaults to 22. The value must be an integer between 1 and 65535.
Remote path Required. Remote file path to upload to. Use forward slashes. If the path ends with /, SchemAlign appends the upstream filename or a safe fallback filename. This field supports expressions.
Ensure remote directory exists Optional. When enabled, SchemAlign attempts to create missing remote parent directories before uploading the file. Defaults to on.
Input producer node (optional) Optional. Use only when this node has multiple upstream producers. Accepts graph node id formats such as 7, node_7, or node:7.
Prefer published artifact Optional. When enabled, SchemAlign prefers a published artifact copy before falling back to the in-memory stream handoff. Defaults to off.

When to use File Put

Use this node when the pipeline should:

  • upload a file produced by an upstream source or compose node
  • deliver transformed output to an SFTP location
  • copy an upstream file from one configured location to another
  • use a runtime value or date template in the remote upload path
  • prefer a published artifact when both a stream and artifact are available

File Put is a destination node. It normally appears at the end of a pipeline branch.

Common pipeline patterns

Pattern Use case
SQL Transform -> File Put Transform data, publish an output file, then upload it to SFTP.
File Get -> File Put Relay a retrieved file to a different configured destination.
HTTP Get -> SQL Loader -> SQL Transform -> File Put Retrieve API data, prepare it with SQL, and deliver a file output.
Inbound HTTP Request -> SQL Transform -> File Put Process an inbound request and write the result to SFTP.

Expressions and path templates

File Put supports expressions in Remote path. Use expressions when the upload path needs runtime values such as dates, run identifiers, or values prepared earlier in the pipeline.

Examples:

Remote path Result style
/outbound/{{yyyymmdd}}/result.csv Uses a system date value in the path.
/outbound/{{run_id}}/result.csv Includes the pipeline run id in the path.
/outbound/{{date}}/result.csv Uses the node's built-in date template format.
/outbound/{{timestamp}}/result.csv Uses the node's built-in timestamp template format.

File Put also keeps compatibility with existing date-slice templates such as {new Date().toISOString().slice(0,10)}. Unknown single-brace expressions are left intact by the node-level path renderer.

Use / as the path separator. Backslashes are rejected.

Input behavior

File Put requires a connected upstream producer. It can upload either:

Input mode Description
Stream Uploads bytes handed off directly from the upstream node. This is the default path for stream-producing nodes.
Published artifact Uploads a durable artifact file produced by an upstream node. Enable Prefer published artifact when the artifact copy should be used first.

The legacy input_artifact setting is no longer supported. Connect an upstream producer and use Input producer node (optional) only when multiple upstream nodes can feed the destination.

Authentication

File Put requires an SFTP account. The selected account must be available to the current project and must contain valid credentials.

Supported credential patterns are:

Account type Required credential details
Basic authentication Username and password.
SSH key Username and private key. A key passphrase may also be supplied when required by the key.

Do not place usernames, passwords, private keys, or key passphrases in Host, Remote path, or expression values. Store credentials in an Account instead.

Output behavior

After upload, File Put records a destination result that includes the upload status, protocol, host, port, resolved remote path, remote path template, uploaded filename, selected input producer, input mode, and account reference.

File Put also publishes a small destination-result payload handle for downstream runtime visibility. The destination-result payload is metadata about the upload, not a copy of the uploaded file contents.

Validation and common errors

Message or condition What it means How to fix it
file_put currently supports protocol=sftp only A protocol other than SFTP was configured. Use sftp.
host is required Host is blank. Enter the SFTP host name or IP address.
host must not include a scheme Host includes text such as sftp://. Enter only the host name or IP address.
host contains illegal characters Host includes whitespace, slashes, backslashes, or @. Remove path, userinfo, and invalid characters from Host.
port must be an integer Port is not numeric. Enter a valid port number, usually 22.
port must be between 1 and 65535 Port is outside the valid TCP port range. Enter a port between 1 and 65535.
file_put requires config.remote_path Remote path is blank. Enter the remote path to upload to.
file_put requires config.account_id or config.account_name No account was selected. Select an SFTP account that is available to the project.
file_put input_artifact is no longer supported An old configuration is trying to use the retired artifact selector. Connect an upstream producer and use Input producer node (optional) only when needed.
file_put expected upstream stream bytes but received no payload The selected upstream node did not provide stream bytes or an artifact. Check the upstream node output and graph connection.
file_put remote_path resolved to empty string Expression or template rendering produced a blank path. Review the Remote path expression or template.
remote_path must use '/' separators Remote path contains backslashes. Replace backslashes with forward slashes.
Account ... has no username configured The selected account is missing a username. Update the account credentials.
Account is basic_auth but has no password The selected password-based account is incomplete. Add the password to the account credentials.
Account is ssh_key but has no private_key The selected SSH key account is incomplete. Add the private key to the account credentials.
Unsupported SSH private key format The SSH key could not be parsed. Use a supported private key format.
Upstream artifact path is not available or not a file The selected artifact cannot be uploaded. Confirm the upstream node published an artifact and that the file exists.

Security notes

  • Use Accounts for SFTP credentials; do not paste secrets into node fields.
  • Keep Host limited to the destination host name or IP address.
  • Review Remote path expressions before production use.
  • File Put enforces project account scoping before using selected credentials.
  • File Put validates local artifact paths before uploading published files.