> ## Documentation Index
> Fetch the complete documentation index at: https://doc.lucidworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# FTP Pro migration guide

> This guide provides instructions on migrating from the FTP V1 connector to the FTP Pro connector.

export const LwTemplate = ({title = "Key questions to get you started", icon = "sparkles", cta = "Powered by Agent Studio", linkHref = "https://lucidworks.com/demo/?utm_source=docs&utm_medium=referral&utm_campaign=docs_cta_ai"}) => {
  const [isLoaded, setIsLoaded] = useState(false);
  useEffect(() => {
    const timer = setTimeout(() => {
      setIsLoaded(true);
    }, 500);
    return () => clearTimeout(timer);
  }, []);
  return <div className="lw-template-container">
      <Card title={title} icon={icon}>
        {isLoaded && <span dangerouslySetInnerHTML={{
    __html: `<lw-template id="a029c1a9-28be-427e-b0e1-5d918920246a"></lw-template
            >`
  }} />}
        <Link href={linkHref} className="agent-studio-link text-left text-gray-600 gap-2 dark:text-gray-400 text-sm font-medium flex flex-row items-center hover:text-primary dark:hover:text-primary-light group-hover:text-primary group-hover:dark:text-primary-light">Powered by Lucidworks Agent Studio</Link>
      </Card>
    </div>;
};

This migration guide provides connector-specific tips to consider when migrating from the [FTP V1 connector](/docs/fusion-connectors/connectors/v1/ftp) to the [FTP Pro connector](/docs/fusion-connectors/connectors/ftp-pro).

Use this migration guide alongside the [general migration guide](/docs/fusion-connectors/migration-guide). The general guide contains migration instructions that apply to all connectors, such as creating an isolated collection for testing and comparing search results for the V1 and Pro connectors.

<LwTemplate />

## Prerequisites

To ensure a successful migration of your datasource data from the FTP V1 connector to the FTP Pro connector, verify that you have the following prerequisites:

* Access credentials for your FTP server
* Fusion 5.9.0 or later

<Warning>
  If you are using a Fusion API in any step of the migration, note that the formatting of many property names has changed in the Pro connector. Key changes include:

  * `max_bytes` is now `maxSizeBytes`
  * `max_docs` is now `maxItems`
  * `url` has been split into `server` and `paths` properties

  Consult the reference pages for the FTP V1 and FTP Pro connectors for all property names.
</Warning>

## Make a plan for removed fields in the Pro connector

The FTP Pro connector does not reproduce the field mapping settings from the V1 connector. In the V1 connector, these settings provided mapping of fields before the documents were sent to an index pipeline. These fields display in the **Field Mapping** section when the advanced settings are displayed.

These fields and settings must be manually recreated as stages in your Fusion index pipeline.

The following table displays the relevant fields in the V1 connector.

| V1 Field Block        | Migration Action Required                                       |
| --------------------- | --------------------------------------------------------------- |
| Initial Field Mapping | Move all rules to a Field Mapping Stage in your Index Pipeline. |
| Field Retention       | Use a Restrict Fields or Field Mapping stage to delete fields.  |
| Field Value Updates   | Use a Set Property stage in the pipeline.                       |
| Field Translations    | Use a Field Mapping stage to copy/move fields.                  |
| Unmapped Fields       | Re-implement using a Field Mapping "Default" behavior.          |

The **Crawl Bounds** field has been removed in the FTP Pro connector. This field allowed limiting crawls to a specific directory sub-tree, hostname, or domain. To replicate this behavior in the Pro connector, use the **Inclusive regexes** and **Exclusive regexes** fields to control which paths are crawled.

Two other fields have been removed from the Pro connector that require no action from you.

The **Solr Commit on Finish** field has been removed from the FTP Pro connector.

The **Validate access** field is built into the FTP Pro connector as a core feature.

No action is required for configuring these settings during the migration process.

## New fields

There are several new fields available in the FTP Pro connector to improve security, reliability, and performance.

### Enhanced authentication options

The Pro connector introduces new authentication methods, particularly for SFTP connections. If you are using an SFTP connection, edit these settings to make sure you are connecting securely to your SFTP server.

<ResponseField name="SSH Public Key Authentication" type="object">
  <Expandable title="properties">
    <ResponseField name="Private Key" type="string" required>
      SSH private key for authentication (PEM format). Supports RSA, DSA, ECDSA, and Ed25519 keys. This value is stored as a secret.
    </ResponseField>

    <ResponseField name="Passphrase" type="string">
      Optional passphrase to decrypt the private key if it is encrypted. Leave empty if the private key is not encrypted.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="Trusted SSH Host Key Fingerprint" type="string">
  SSH host key fingerprint to verify server identity for SFTP connections. Supports MD5 and SHA256 formats. If empty, verification is disabled. This is not recommended for production environments. Get your fingerprint in the command line with: `ssh-keyscan hostname | ssh-keygen -E md5 -lf -`
</ResponseField>

### Additional document filtering

The Pro connector adds new filtering capabilities:

<ResponseField name="Excluded file extensions" type="array">
  A set of file extensions to be skipped from the fetch. This complements the existing **Included file extensions** field to provide both allow-list and deny-list capabilities.
</ResponseField>

<ResponseField name="Minimum File Size" type="integer" default="0">
  Specifies the minimum file size for content download (bytes). This field complements the existing **Maximum File Size** field. When set to a positive value, files below the minimum file size are indexed with metadata only. The default (0) means no minimum size.
</ResponseField>

### Connection and retry settings

The FTP Pro connector automatically detects and retries the connection when transient errors happen (for example, 4xx connection errors or timeouts) and does not attempt a retry in the case of permanent errors (for example, 5xx connection errors or permission failures). New connection management fields provide better control over timeouts and error handling.

<ResponseField name="Connection Properties" type="object">
  <Expandable title="properties">
    <ResponseField name="Connection Timeout" type="integer" default="30000">
      Maximum time (in milliseconds) to establish a connection to the server. Range: 1 to 300000 (5 minutes).
    </ResponseField>

    <ResponseField name="Data Timeout" type="integer" default="60000">
      Maximum time (in milliseconds) to wait for a server response or data during operations. Range: 1 to 900000 (15 minutes).
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="Retry Properties" type="object">
  <Expandable title="properties">
    <ResponseField name="Retry Count" type="integer" default="3">
      Number of attempts a request will be retried. Set to 0 to disable retrying. Maximum: 36 attempts.
    </ResponseField>

    <ResponseField name="Maximum Delay Time" type="integer" default="60000">
      The maximum wait time in milliseconds between retries. Range: 1000 to 300000 (5 minutes).
    </ResponseField>
  </Expandable>
</ResponseField>

## Changes to connection settings

The FTP Pro connector has restructured the server configuration settings. In the V1 connector, you provided a single **Start link** URL (for example, `ftp://ftp.example.com:21/example_folder/`), and the FTP V1 connector used the URL scheme to detect the connection type. The Pro connector separates the connection settings into discrete fields, and now you explicitly select the connection type.

<ResponseField name="Server Properties" type="object" required>
  <Expandable title="properties" defaultOpen="true">
    <ResponseField name="Protocol" type="string" default="FTP" required>
      The allowed protocol types are FTP, FTPS, or SFTP. The protocol type is now explicitly selected rather than inferred from the URL scheme.
    </ResponseField>

    <ResponseField name="Hostname" type="string" default="127.0.0.1" required>
      The server hostname.
    </ResponseField>

    <ResponseField name="Port" type="integer" default="21" required>
      The server port. Use 21 for FTP or FTPS. Use 22 for SFTP. Change this value if your FTP server uses a different port.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="Paths" type="array">
  List of directory or file paths to retrieve. If empty, the crawl starts from the root directory (`/`). In the V1 connector, you could only specify one starting path in the URL. The Pro connector allows multiple starting paths.
</ResponseField>

**Migration example:**

V1 configuration:

```
url: ftp://ftp.example.com:21/documents/public/
```

Pro configuration:

```
server.protocols: FTP
server.host: ftp.example.com
server.port: 21
paths: ["/documents/public/"]
```

## Fetch settings

Some fetch settings that were previously hardcoded into the V1 connector are now exposed and configurable in the Pro connector. These fetch settings provide configuration options at the system level to control fetch behavior and performance. Click the **Advanced** toggle to expose these settings. Then select the checkbox next to **Core Properties**, and select the checkbox next to **Fetch Settings**.

To enable asynchronous parsing for the FTP Pro connector, the **Async Parsing** field is also available in the Fetch Settings section.

<Frame caption="FTP Pro fetch settings">
  <img src="https://mintcdn.com/lucidworks/nSpFApMGvbGVqHP1/assets/images/connectors/solr-pro-fetch-settings.png?fit=max&auto=format&n=nSpFApMGvbGVqHP1&q=85&s=8f35d1555683c597003ac685434fec38" width="1744" height="792" data-path="assets/images/connectors/solr-pro-fetch-settings.png" />
</Frame>

<Note>
  The default number of fetch threads has changed from 1 in the V1 connector to 5 in the Pro connector. This means the Pro connector creates five concurrent connections to your FTP server by default. Review your FTP server's connection limits and adjust the **Fetch Threads** setting if necessary to avoid connection errors or rate limiting.
</Note>

## Changed default values

Some fields have different default values in the V1 and Pro connectors. You should evaluate the new default values, determine if these values make sense for your use case, and change the values as needed.

The following table displays the changed default fields and their values in the Pro connector.

| Field name          | V1 Default                    | Pro Default                   | Notes                                                                                                                                                                       |
| :------------------ | :---------------------------- | :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Maximum File Size   | `max_bytes: 10485760` (10MB)  | `maxSizeBytes: 0` (unlimited) | The Pro connector now attempts to download files of any size by default. Set an appropriate limit to prevent memory issues.                                                 |
| Fetch Threads       | `max_threads: 1`              | `numFetchThreads: 5`          | The Pro connector creates five times more concurrent connections by default. Verify your FTP server can handle this load, or adjust the default value in the Pro connector. |
| Maximum Level Depth | `crawl_depth: -1` (unlimited) | `maxDepth: 0` (unlimited)     | Semantic change: -1 vs 0 to indicate no limit.                                                                                                                              |

<Warning>
  The change from a 10MB default file size limit to unlimited is a critical change. Without setting an explicit limit in the Pro connector, you may encounter memory issues when crawling servers that contain large files. Set the **Maximum File Size** field to an appropriate value for your use case.
</Warning>
