# 3.5. Upgrade to version 3

## 3.5.1. Introduction

SFTPPlus version 3 was released in 2015. It is no longer a supported version. The information on this page is provided for legacy deployments.

If you are still using SFTPPlus version 3 and you plan to upgrade to latest SFTPPlus version, get in touch with our support team. They can help you upgrade to the latest supported version.

## 3.5.2. Upgrading from version 2 to version 3

When upgrading from versions 2 to version 3, it is required to first uninstall the existing SFTPPlus version. Reinstall SFTPPlus and integrate the existing configuration in the new system.

There are significant changes for the logging and authentication parts.

The upgrade steps are describe below:

- It is recommended to perform the upgrade in a maintenance window and make sure there are no active file transfers.

- Stop the SFTPPlus service.

- Copy the configuration directory to a backup location. Optionally, consider copying the log files as well.

- Uninstall the SFTPPlus version running on your server.

- Download the latest version of SFTPPlus 3, and install it on your machine.

In version 3, the default configuration file is still named server.ini.

To enable the new authentication method for application and os accounts, you will need to update the authentications option inside the [server] section, and add a dedicated method for application accounts.

Below is what the relevant parts of the [server] configuration should look like:

    [server]
    authentications = application-uuid, os-uuid, OTHER-AUTH-UUID
    manager_authentications = application-uuid

    [authentications/03288e36-cf6b-4bd5-a9be-f421372f17e6]
    enabled = Yes
    type = application
    name = Application Accounts
    description = This authentication method allows authentication accounts
        defined in this configuration file.

    [authentications/6d51ed1e-35ec-41d7-8b51-53e56c716212]
    enabled = Yes
    type = os
    name = Operating System Accounts
    description = Accounts provided by the operating system.

To migrate the authentication of global SFTPPlus accounts, remove the sftpplus_webadmin option from the server section:

    [server]
    sftpplus_webadmin = http://wsftp.example.com:8080/SFTPPlus/

And replace it with a dedicated authentications method:

    [server]
    authentications = OTHER-AUTH-UUID, legacy-webadmin-uuid, MORE-AUTH-UUID

    [authentications/9g51ed1e-35ec-41d7-8b51-53e56c716313]
    enabled = Yes
    type = legacy-webadmin
    name = Legacy SFTPPlus Webadmin

    url = http://wsftp.example.com:8080/SFTPPlus/

To migrate the account report, create a new event handler. In the configuration file, replace:

    [report]
    database = sqlite-db-uuid

With a new event-handlers section:

    [event-handlers/8cace339-a2ee-4899-b64e-db2478821b9e]
    enabled = No
    type = account-activity
    name = Account activity
    description = Report last successful login for accounts and administrators.

    database = sqlite-db-uuid

To migrate the file log handler, remove the logs handler section:

    [logs/03288e36-cf6b-4bd5-a9be-f421372f17e6]
    enabled = Yes
    name = Default Local Log File
    description = Append logs to a file on the local filesystem.

    type = file

    path = log/server.log

And replace it with a dedicated event-handlers section:

    [event-handlers/00feb81f-a99d-42f1-a86c-1562c3281bd9]
    enabled = Yes
    name = Default Local Log File
    description = Append logs to a file on the local filesystem.

    type = local-file

    path = log/server.log

To migrate the Windows EventLog log handler, remove the logs handler section:

    [logs/f643a93d-94d5-4b41-b723-a63a00e3c902]
    enabled = Yes
    name = SFTPPlus Server
    description = Send logs to Windows Event Log Service on local machine.

    type = eventlog

And replace it with a dedicated event handler of type `windows-eventlog`:

    [event-handlers/515361f1-d976-4fe0-979b-0651e2bf591d]
    enabled = Yes
    name = STFPPlus
    description = Send logs to Windows Event Log Service on local machine.

    type = windows-eventlog

To migrate the WebAdmin HTTP Post Request log handler, remove the logs section for the Webadmin HTTP Post:

    [logs/e16af067-8974-4c0d-ae89-eb5f3d59fd65]
    name = Default_WebAdmin
    enabled = No
    name = WebAdmin HTTP Post
    description = Hook to WebAdmin over HTTP.

    type = http-post
    format = webadmin

    url = http://int.example.com/SFTPPlus/AuditAddSimple.php

And create a new event-handlers section as:

    [event-handlers/03288e36-cf6b-4kd5-a9be-f421372f17e6]
    enabled = No
    name = WebAdmin HTTP Post
    description = Send logs to Legacy WebAdmin over HTTP.

    type = http
    format = legacy-webadmin

    url = http://int.example.com/SFTPPlus/AuditAddSimple.php

To convert legacy SQLite/MySQL database loggers, you should delete section(s):

    [logs/0ef580fe-45cb-47e0-b434-c0e44557b364]
    enabled = Yes
    name = SQLite Legacy Log Handler
    description = Send logs to local SQLite file in legacy mode.

    type = sqlite
    path = log/server.db3

And add two new sections, one for the databases and one for the event handlers:

    [databases/27b8e2b1-7971-416d-af14-6a8aae2ac46e]
    enabled = Yes
    name = SQLite
    description = SQLite file database connection.

    type = sqlite
    path = log/server.db3

    [event-handlers/22a9d8fb-068d-4a63-8d5d-0ce94ef22a25]
    enabled = Yes
    name = SQLite Event Handler
    description = Store events in local SQLite file.
    type = database
    database = sqlite-db-uuid

If there is already a section for the desired database, you do not need to create a section for it, just make sure to use the existing database UUID.

Make sure your database UUID matches the one configured for the event handler in order to pair them.

For MySQL logger(s), you should delete the logs section:

    [logs/6d51ed1e-35ec-41d7-8b51-53e56c716212]
    enabled = No
    name = MySQL Legacy Log Handler
    description = Send logs to MySQL database in legacy mode.

    type = mysql

    address = 172.20.0.24
    port = 3306
    username = test
    password = test
    database = test

And create two new sections for databases and event-handlers:

    [databases/ac547e16-a3ff-4fc3-a6ab-142af2744f50]
    enabled = No
    name = MySQL
    description = MySQL database connection.

    type = mysql

    address = 172.20.0.24
    port = 3306
    username = test
    password = test
    database = test

    [event-handlers/7db823d8-05f8-4481-be98-b87a826ded28]
    enabled = No
    name = MySQL Event Handler
    description = Store events in a MySQL database
    type = database
    database = mysql-db-uuid

The above note on SQLite's database section also applies to MySQL's database section.

To migrate the Syslog log handler, remove the logs handler section:

    [logs/27a31405-a963-4fb9-b4ee-09d415b1a30a]
    enabled = Yes
    name = Syslog Backup
    description = Sends logs to backup syslog server.

    type = syslog

    url = udp://127.0.0.1:
    port = 514

And replace it with a dedicated event-handlers section:

    [event-handlers/1ee4337a-22f7-4a67-9a77-5c3a508a8158]
    enabled = Yes
    name = Syslog Backup
    description = Sends logs to backup syslog server.

    type = syslog

    url = udp://127.0.0.1:514

For converting the database log handler into an event handler, remove the logs section:

    [logs/bdfe8e48-5100-4d8a-bac1-441ebc04f9a7]
    enabled = Yes
    name = SQLite Log Handler
    description = Send logs to local SQLite file.
    type = database
    database = sqlite-db-uuid

And replace it with a dedicated event-handlers section:

    [event-handlers/681f5f5d-0502-4ebb-90d5-5d5c549fac6b]
    enabled = Yes
    name = Database Event Handler
    description = Send logs to local SQLite file.
    type = database
    database = sqlite-db-uuid

3.4. Upgrade to version 4
3.6. Upgrade to version 2