A new installer for OL Connect

Manuel Polling
OL Learn Data

An overview of the new installer for OL Connect that we are introducing with OL Connect 2022.1. This article explains the improvements, what has changed, and why.

Why a new installer

The installer for previous versions of OL Connect was mostly built in Java and contained a lot of custom code. The reasons for this are largely buried in history, but one of them was probably that the framework used would allow in place updates (i.e., only update the bits that actually have changed). This never materialized for other reasons, and we ended up with an installer that proved much harder to maintain and improve than we cared for.

So, last year we decided to bite the bullet and build a completely new installer. Our design goals were to minimize customization, rely on standard technology as much as possible, and capitalize on what the Windows MSI technology already brings out of the box, such as rollback. And this installer is now ready and part of the 2022.1 release. Note that this installer is for the OL Connect Server, Designer, and the related engines. The Connect Workflow installer has not been changed in the same way.

Benefits

An installer is not where people find the value in a product. It’s a utilitarian thing that just has to do its job reliably and not get in your way. That’s also what we focused on for this new installer.

Rollback

One of the nice benefits of Windows MSI is that it will roll back whatever was done if something goes wrong during installation or if the user cancels. The Connect installer now also supports this. In the future, an aborted installation will get you back to your starting point and will not get you stuck with half an installation that requires manual deletion.

There is an exception to this: when upgrading from a version that was still using the old installer, the uninstall of that version cannot be rolled back. However, you can reinstall that old version if needed, because the new version’s installation will have rolled back.

If you want to take advantage of rollback, think carefully when you are asked if you want to Remove user data. That data will not reappear after rollback. In general, there should be no issue with keeping the user data.

Stability

Even though the new installer cannot roll back to installations from before the 2022.1 version, it will still be more reliable when upgrading from those versions. The uninstallation of those older versions does not rely on the old installer’s logic and uses a more straightforward method that is more like the software removal tool used by Support when an installation has gone wrong.

Ease of use

We have made usability improvements in several places, using the “user knows best” principle, while still providing guard rails. For instance, we no longer have requirements for the database root password; no need for hassle in case of a simple test or trial, and we expect users to know that strong passwords should be used for serious installations.

Another example is that you can now skip the validation of the service account used for running Connect Server; the installer will then not attempt to start the service, so you can finish the installation even if that user has no profile folder yet (never logged on). Note: the account must exist, but you can create it even while the installer is running.

The installer will also do all the actual work without user interaction, including the uninstall of a previous version, so you can go get a coffee while it is working.

Security

A few more steps were taken to get a more secure installation out of the box: when using the packaged database, we no longer use the root user for the database connection. The database no longer runs as LocalSystem. Other auxiliary services are no longer registered if not needed.

What has changed

Database

With Connect 2022.1, we are switching the packaged database from MySQL to MariaDB. For new installations, this doesn’t really change anything, except for the name of the database system. When upgrading an installation that uses the packaged database, the database will be automatically migrated during the installation.

That’s assuming that the upgrade is not set to “Remove user data” and MariaDB is selected in the component selection. These other scenarios are explained below under Update installations.

Refreshed interface

The first thing noticeable about the installation wizard is the new look. It’s still “just an installation wizard”, but we think it does look refreshed. In addition, things are more aligned from page to page, and all the texts have been reviewed as well.

Setup exe instead of ISO

In the early days of OL Connect it still made sense to create ISO files for big installer packages. By now, these just get in your way. So, instead of an ISO, the installer is now a single executable that you can just download and run.

Desktop icons

The installer will no longer add the OL Connect program icons to your desktop. The old installer would just add them without permission, which I think is a bit rude. The program icons are still where they belong: in the Start menu. If you like program icons on your desktop, let us know and we will add an option so you can choose to have them.

Component selection

The component selection page defaults to a full setup, so you can just hit Next if you’re going for a quick trial install. Otherwise, just customize as desired. The Messenger can now explicitly be chosen or skipped when installing Designer. It’s only needed if you intend to use the Send to Workflow… feature of the Connect Designer.

The tree-view with its drop-down menus is what we got out of the box from InstallAware.

Database connection

Setting up the packaged database now requires two passwords. The first password is for root access to the database. Users should hold on to that password, and keep it safe, because it’s what you need in case of trouble shooting the database, or in case of certain manual changes. The software does not store this password anywhere, so it’s really up to the sysadmin to properly handle this.

The second password is what OL Connect uses to connect to the database, in combination with the configured username. This improves security, because for this user it’s possible to restrict its access rights to the database, which is not possible for root.

For both passwords, it is now up to the user to choose how strong they want that password to be. The old installer had some password requirements, which could get in your way, but they weren’t good enough to ensure a strong password.

Services and their accounts

Services that are not needed, are no longer running. Messenger is now explicitly chosen to be installed (or not), while before it would silently come along with Designer. MariaDB is running under a virtual account, which has less privileges than LocalSystem, and that’s considered good for security.

Silent installer properties

To run the installer completely silent, it now requires a command-line argument. Use

PReSConnectSetup.exe /s

In addition, a properties file is needed to configure the installation. This properties file must be named InstallProperties.ini. A few settings are required, so it’s not possible to do a silent installation without a properties file.

The presence of the properties file will also suppress the installation wizard even when the /s option is not supplied, but then the splash screen and language selection will still appear.

The properties file content has changed too. There are more properties, and the properties have changed. The section and property names are case insensitive, as are the Boolean values.

Properties file for silent installation

In the sample below, all properties are shown. The ones that have defaults are commented out.

[Installation]
product.Designer=true
product.PrintManager=false
product.MariaDB=true
product.Messenger=true
;not in PrintShop Mail Connect:
product.Server=true
;PReS Connect only:
product.ServerExtension=false 

;path="c:\Program Files\Objectif Lune\OL Connect"

;database.configure=true
database.rootpassword=secret
;database.system=mariadb
;database.system is required if product.MariaDB=false, choose one of mariadb, mysql, mssqlserver
;database.host=localhost
;database.port=3306
database.username=olconnect
database.password=secret
;database.remoteaccess=false
;database.remoteaccess defaults to true if product.Server=false
;database.instance= default is empty, only valid if database.system=mssqlserver
;database.schema=olconnect
;database.schema is required if product.MariaDB=false
;database.encryptedconnection=false

; server. properties are not for PrintShop Mail Connect
;server.connection.configure=true
;server.connection.host=
;server.connection.port=9340
;server.connection.user=olc-user
server.connection.password=secret

;RegisterService.connectServer=true
server.username=Administrator
server.password=secret

;RegisterService.licensing=false not needed for customer installations

;[Logging]
;verbose=false
;path="c:\ProgramData\Objectif Lune\Installation Logs"

;[Uninstall]
;remove = true
;keepdata = true

Command-line interface

The command-line of the installer has changed.

  • /s is needed for a silent install.
  • /l=<full\path\to\logfile.log> can be used for verbose logging to the specified file. For silent installations, this can also be controlled from the properties file.

Exit codes

The exit codes have been elaborated, which can make it easier to troubleshoot silent installations. An exit code of 0 still indicates success of course. When the installer fails, it will return a 3-digit code that can fall into the following categories:

2xx – pre-installation check failed

3xx – silent installation property missing or invalid

4xx – upgrade error

5xx – license file validation failed

6xx – invalid component selection (i.e., Connect Server and Server Extension, or no component), or invalid destination folder (including insufficient space)

7xx – installation aborted (by user)

8xx – failed to stop service(s)

Update installations

No rollback to older versions

As mentioned earlier, when updating from a pre-2022.1 version of Connect, the installer cannot roll back to that earlier version in case the installer is aborted for some reason. Instead, the installation of the new version will roll back, leaving the system in a state where it is possible to run the installer of that older version again.

The packaged database and updates

When updating from a pre-2022.1 installation that uses the packaged MySQL, there are a few options that will affect what happens with the existing database: the Remove user data option, and whether MariaDB is a selected component.

Component selection

Remove/keep user data option

Actions

MariaDB selected

Keep user data

Connect database migrated from MySQL to MariaDB.

MySQL data folder left intact (including the Connect database).

MariaDB selected

Remove user data

Connect database dropped in MySQL.

MySQL data folder removed if no other databases remain (besides system databases).

MariaDB not selected

Keep user data

MySQL data folder left intact (including the Connect database).

MariaDB not selected

Remove user data

Connect database dropped in MySQL.

MySQL data folder removed if no other databases remain (besides system databases).

What this shows, is that

  • we don’t delete data unless the user chooses to remove it,
  • customers can stick with MySQL if they want to, by installing MySQL themselves and unselecting MariaDB,
  • if customers have their own database schemas besides the Connect database, that data is preserved, but users must take care of that data themselves,
  • if the upgrade and migration of data is successful, the MySQL folders are still there and can be removed manually.

The data folder of the previously packaged MySQL database is C:\ProgramData\Objectif Lune\OL Connect\MySQL\

The data folder of the packaged MariaDB database is C:\ProgramData\Objectif Lune\OL Connect\MariaDB\

Tagged in: msi, rollback, stability



Leave a Reply

Your email address will not be published. Required fields are marked *

All comments (5)

  • Alex Schild

    So you talk about MSI installatipn but you describe an EXE installation with a InstallProperties.ini file and the use of the PreSConnectSetup.exe which does not exist anymore. So what is the correct silent installation if I have only a “PrintShopMail_Connect_Setup_x86_64-2022.1.4.exe” ?

  • Darren Keenan

    With future versions where the bundled version of MariaDB changes, will the new installer present a choice to upgrade the version of MariaDB?

    • Manuel Polling

      As long as we stay on the same major version, currently 10.6, we intend to have the database automatically upgrade when we package a newer version of MariaDB. This will not be a user choice, however. If you want full control over what database version you are running, you should download and install the database separately.