# SFTP Setup Guide (Client-Hosted)

## Overview

Finley uses SFTP data transfer to take in customer asset tapes on a regular cadence. This guide walks you through our preferred data transfer setup.

### Authentication

#### Option A - SSH Key-based authentication

The SSH key-based authentication method is **more secure**. In order to set this up, the client-hosted SFTP server must support key-based authentication.&#x20;

1. Provide a username and supported key type to the Finley support team via email. Please provide the following information to <support@finleycms.com>:&#x20;
   1. Your SFTP username&#x20;
   2. The SSH key type and bit strength - Finley is able to support the following key types and bit-strength:&#x20;
      1. RSA 4096-bit **(Recommended)**&#x20;
      2. ECDSA 256-bit&#x20;
      3. ECDSA 384-bit&#x20;
2. **Finley sends you a public key via email.** Finley will generate SSH key pairs and will provide the **Public Key** for SSH key-based authentication.&#x20;
3. **You will configure an authentication authorized\_key.** This step may vary depending on how your SFTP server is configured.&#x20;
4. **Finley conducts the connection test.** The Finley support team will confirm the SFTP connection has been established and try to fetch test file(s) from your SFTP server(s). Please upload a “test.txt” file to your SFTP server so the Finley support team can verify the SFTP connection.

#### Option B - Password-based authentication

Finley is also able to use password-based authentication if SSH key-based authentication is not configured on your SFTP server.

1. **Email a username and password to the Finley support team.** Please generate an SFTP username and password for the Finley data-poller, and send them to <support@finleycms.com> via an encrypted email.
   1. Note: If you are not able to send an encrypted email, please let us know the password length and constraints (supported characters, required characters, etc).  Finley will generate our own password with the provided constraints and send it via an encrypted email.
2. **The client configures password authentication.** This step may vary depending on how your SFTP server is configured.
3. **Finley conducts the connection test.** The Finley support team will try to establish an SFTP connection and try to fetch test file(s) from your SFTP server(s).  Please upload a “test.txt” file to your SFTP server, so the Finley support team can verify the SFTP connection.

### Data Poller Details

The Finley SFTP data-poller uses the short-polling method to determine if any files need to be fetched from your SFTP server.

**High-water mark.** The data-poller utilizes a high-water mark to reduce the number of files to fetch.  In short, we keep track of the timestamp (high-water mark) from our last successful fetch attempt and only try to fetch any files that are newer than that timestamp.  In order to enable this optimization, please make sure the directories and files on your SFTP server have accurate timestamps for the “last modified” time. &#x20;

We are also able to disable this feature; however, this will increase the load on your SFTP server. **If the modified timestamp cannot be accurately set, please let the Finley Support team know.**

**Polling Interval.** The data-poller is configured to poll for new files in 1-hour intervals by default. The polling interval can be modified per the client's request. The shortest polling interval is 1 min.

## Questions?

If you have any questions, please reach out to <support@finleycms.com> and our team would be glad to help!&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.finleycms.com/core-capabilities/data-integrations/sftp-setup-guide-client-hosted.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
