Sentinel Up Client

>Overview

>Client Execution Modes

>Command Line Reference

>Sample Config File (with all possible values)

>Client Display Customization

>Localization and Language Customization

>Integration Strategies for Product Updates

Overview

Customers require the Sentinel Up client to receive the latest product updates. It serves as a bridge between Sentinel Up and your application, streamlining the transfer of product updates to customers. While customers can implement their own solution, we strongly recommend using Sentinel Up to download the client.

Upon logging into Sentinel Up, you can access a link to download the Sentinel Up Client along with instructions on how to execute the client in various scenarios.

Client Execution Modes

Command Line Reference

You can call the client as :

upclient [options] [mode]

If a configuration file named unclient.cfg/unclient.bin is present in the working directory, you can invoke the client without any parameters or include only your desired mode. The following modes are available:

Modes Description
-check Check for updates.
-update Runs update mode for a single product.
-download Runs update mode only but exits after download.
-execute Executes the downloaded update (associated with -download).
-messages Activates message mode.
-manager Activate the update mode for multiple products.
-register Registers the current version.
-unregister Unregisters the current version.
-clean Clears any version mapping for a specified product code.
-genconfig Generates a config file based on the provided parameters.

Options:

Options can also be specified via a config file:

Options Description

-url [url]

URL for the required Sentinel Up Server [Mandatory parameter].

-k [key]

Unique Sentinel Up key.

-t [key]

Unique Sentinel Up test key.

-vc [code]

Product version code.

- aid [id or file]

Activation id or path to the license file from which AID can be extracted.

-pc [code]

Product code.

-v [version]

Product version.

-i [img_file]

Main icon.

-c [custom]

Custom request value.

-s

Silent mode.

-r

Relaunch client in the temp directory (self-update).

-st

System tray icon (-check mode only).

-noproxy

Disable automatic proxy configuration.

-em

Enforce additional messages mode before terminating.

-to [seconds]

Sets a time-out for update check in seconds (default: 30)

-log [file]

Enables logging.

-qss [file]

Reads the stylesheet definition from the specified file.

-pk [file]

Signature public key file.

-config [file]

Loads parameter settings from file; defines name for -genconfig.

-l [lang-code]

Language code.

-sp [png_file]

Splash screen (PNG).

-ident [custom]

Additional client identifier (optional).

-exec [command]

Launches a command before terminating.

Sample Config file (with all possible values)

[General]
# -url [Server url]
url=10.164.29.232

# -aid [activation_ID]
aid=cd2e5ea8-5852-4000-abf3-c98d7e729a26


# -k [key]
key=73ddf26f0d79fdb70b5dcfe738fbe685

# -t [key]
test_key=54544df545544dfdfd45544df445

# -pc [code]
product_code=test_product

# -vc [code]
version_code=test_product_version_1_0


# -v [version]
version=1.0

# -i [image_file]
icon=images/left.png

# -s
silent=true

# -r
relaunch=true

# -st
systemtray=true

# -log [file]
log=/tmp/client.log

# -l [lang-code]
language=de

# -sp [png_file]
splash=images/splash_screen.png

# -exec [command]
exec_command=./sample_app -new-version [UN_VERSION] -update-result [UN_ERRORCODE]

# -qss [file]
stylesheet=stylesheets/gui.qss

# -pk [file]
public_key=signature/public.key

# -to [seconds]
timeout=10

# -em
enforce_messages=true

# -c [custom]
custom=NoServer

# -ident [custom]
identifier=code@UpdateClient.com

A config file can be generated using the -genconfig mode:

upclient -url **Server url** -k demo -pc test_product -v 1.0 -genconfig

Client Display Customization

You can customize the images and strings displayed in the client by modifying the style sheet for various visual elements within the client. Refer to the syntax reference for style sheets here.

To apply your style sheet, it should be located in the working directory and named unclient.qss, or you can specify it using the -qss parameter.

For customizing strings, you can use a custom QM file -even for the English language. The client searches for a client_en.qm file.

Localization and Language Customization

We have localized the application for Chinese, English, German, Japanese, Korean, Spanish, and Russian. These language files are embedded as resources within the application. While you have the option to modify the embedded resources, you can also change or extend translations externally. Once you create a new translation, place the QM file either in the working directory of the client or in a sub-folder named translations. The client first searches in the working directory and then in the translations sub-folder before using the embedded translation.

Integration Strategies for Product Updates

Updating product upon launch is a common strategy, and Sentinel Up offers versatile options for seamless integration into your product:

>Call Client at Launch: Execute the client before displaying any application dialog/window. If application closure is necessary, split the client call into -download and -execute, allowing your application to close right after -execute is invoked.

>Replace Application Launch with Client Call: Instead of launching your application, link the call to the client and configure the exec_command in your config file to start your application after the client completes its task.

In both scenarios, consider using the -sp parameter or the splash entry in the config file to display a splash screen indicating that updates are being sought.

Alternatively, you can trigger the client from a link in the start menu or other locations. Choose between splitting into download/execute, downloading silently and executing, or calling in normal mode.

For machines with multiple registered products, checking for updates system-wide is possible, utilizing functionalities like the system tray -st. The system tray can be used for a single product as well. The client doesn't include a time interval mechanism for checking updates; use the task scheduler on your OS for scheduled client calls.

These examples are not exhaustive. There are additional approaches or potential combinations that might suit your needs, depending on your preferences and the specific requirements of your product.