Skip to content

File Get

Description

File Get is a source node that downloads a file from an SFTP location and makes the file available to downstream nodes.

Use File Get when a pipeline needs to retrieve a source file before loading, transforming, validating, or delivering the data. By default, File Get passes the downloaded file forward as a stream handoff. It can also publish a durable artifact copy when the pipeline needs to preserve the downloaded file separately.

Field reference

Field Description
Protocol Required. File transfer protocol to use. File Get 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 sftp://, a path, slashes, backslashes, or whitespace.
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 download, such as /outgoing/data.csv. Use forward slashes. Backslashes and null bytes are rejected. This field supports expressions.
Max bytes Optional. Maximum number of bytes File Get may download. The configured value can lower, but not raise, the server-level File Get limit.
Output filename Optional. Filename used for the stream packet and optional artifact copy. When blank, SchemAlign uses the remote file name or a safe fallback name. This field supports expressions.
Format Optional. How SchemAlign should classify the downloaded file for metadata and downstream consumers. Supported values are auto, csv, json, xml, and txt. Defaults to auto.
Also publish artifact copy Optional. When enabled, SchemAlign writes a durable artifact copy in addition to the normal stream handoff. Defaults to off.
Keep artifact history Optional. When artifact publishing is enabled, controls whether prior artifact versions are retained. Defaults to on.
Allow global account Optional. Allows a global account to be selected when the project permits global accounts. Defaults to disabled.

When to use File Get

Use this node when the pipeline should:

  • download a file from an SFTP server
  • pass the downloaded file directly to a downstream SQL Loader, SQL Transform, or destination node
  • preserve the original downloaded file as an optional artifact copy
  • enforce a maximum download size
  • use runtime values in the remote path or output filename

File Get is a source node. It normally appears at the beginning of a pipeline branch or after a node that supplies a single-row parameter payload.

Common pipeline patterns

Pattern Use case
File Get -> SQL Loader -> SQL Transform Download a file, load it into SQL-accessible working data, then transform the result.
File Get -> SQL Transform Download a file and pass it to a transform path that can consume the stream handoff.
File Get -> File Put Copy or relay a file from one configured location to another.
File Get -> SQL Transform -> HTTP Response Download and transform a file as part of a request-driven workflow.

Expressions and upstream placeholders

File Get supports expressions in these fields:

Field Expression result type Example
Remote path String /exports/{{yyyymmdd}}/input.csv
Output filename String input_{{run_id}}.csv

File Get also supports single-brace upstream placeholders when it is connected to exactly one upstream node that produces a single-row parameter payload. For example, a prior node can publish a value named file_name, and File Get can use a remote path such as /exports/{file_name}.

Supported upstream parameter payload formats include text, CSV, TSV, JSON, and NDJSON when the payload resolves to one record or one scalar value. Multiple upstream nodes, multiple rows, or unsupported formats produce validation errors.

Authentication

File Get 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, Output filename, or expression values. Store credentials in an Account instead.

Output and artifact behavior

File Get always attempts to publish a stream handoff for downstream connected nodes.

Output Description
Stream packet The normal downstream handoff containing downloaded bytes, inferred or selected format, MIME type, filename, and source metadata.
Artifact copy Optional durable copy created only when Also publish artifact copy is enabled.
Run output metadata Includes status, mode, format, filename, MIME type, max byte limit, account reference, and remote path.

When artifact publishing is enabled, File Get writes the downloaded file into the run directory first, then publishes it through the artifact system. When artifact publishing is disabled, downstream connected nodes should consume the stream handoff directly.

Format handling

When Format is set to auto, SchemAlign infers the format from the remote path extension:

Remote path ending Inferred format
.json json
.xml xml
.csv csv
.tsv csv
.txt csv
Other or unknown csv

Set Format explicitly when the extension does not match how downstream nodes should treat the file.

Validation and common errors

Message or condition What it means How to fix it
file_get requires config.account_id No account was selected. Select an SFTP account that is available to the project.
file_get requires config.host Host is blank. Enter the SFTP host name or IP address.
file_get config.host must not include a URL scheme Host includes text such as sftp://. Enter only the host name or IP address.
file_get config.host must not include '/' or '\\' Host includes path characters. Move path content to Remote path.
file_get config.host must not contain whitespace Host contains spaces or line breaks. Remove whitespace from the host value.
file_get config.port must be an integer Port is not numeric. Enter a valid port number, usually 22.
file_get config.port must be between 1 and 65535 Port is outside the valid TCP port range. Enter a port between 1 and 65535.
file_get requires config.remote_path Remote path is blank. Enter the remote file path to download.
file_get config.remote_path must not contain backslashes Remote path uses Windows-style separators. Use forward slashes in the SFTP path.
file_get config.remote_path is too long Remote path exceeds the configured safety limit. Shorten the remote path.
file_get currently supports protocol=sftp only A protocol other than SFTP was configured. Use sftp.
Selected account has no username configured The account is missing a username. Update the account credentials.
Selected account is basic_auth but has no password The selected password-based account is incomplete. Add the password to the account credentials.
Selected 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.
Remote file too large or Downloaded file too large The file exceeds the effective max byte limit. Increase the allowed limit if appropriate, or download a smaller file.
Connector parameter binding supports exactly one upstream node The node has more than one upstream dependency for parameter binding. Connect only one upstream parameter source or remove upstream placeholders.
Upstream parameter CSV must contain exactly 1 data row The upstream parameter payload contains more than one CSV row. Make the upstream payload resolve to one row.
Upstream parameter JSON array must contain exactly 1 item The upstream JSON payload contains multiple array items. Make the upstream payload resolve to one item.
Unsupported upstream parameter payload format The upstream payload format cannot be used for placeholder binding. Use text, CSV, TSV, JSON, or NDJSON for parameter binding.

Security notes

  • Use Accounts for SFTP credentials; do not paste secrets into node fields.
  • Keep Allow global account disabled unless the project intentionally permits a global account.
  • Use Max bytes to reduce the chance of accidental large downloads.
  • Remote path and output filename expressions are runtime configuration and should be reviewed before production use.
  • File Get enforces project account scoping at runtime before using selected credentials.