Sentinel Up Client
>Sample Config File (with all possible values)
>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

The single product update mode consistently delivers the latest update to customers for their specific version, without offering a choice between multiple updates. To use the single product update mode, you must specify a version code or product code with the current version and run the client with the mode -update (default):
upclient -url **Server url** -k your_api_key -pc your_product_code -v your_version **-update**
This command is instructing the upclient tool to connect to the Sentinel Up server using the provided API key, target a specific product with its code and version, and perform an update, ensuring that the product is running the latest version available on Sentinel Up.
The single product update mode can be further divided into sub-steps: the download/notification part and the update execution part. This division is beneficial if you wish to take actions before the update command is executed. For instance, you may want to download in silent mode, present your own notification and close your application before updating.
To perform these sub-steps, you can launch the client as follows:
upclient -url **Server url** -k your_api_key -pc test_product -v 1.0 -download
This command indicates the client to download the update for the specified product and version.
upclient -url **Server url** -k your_api_key -pc test_product -v 1.0 -execute
This command indicates the client to execute the downloaded update for the specified product and version.

The multiple products update mode install updates for multiple products installed on your customer's machine at the same time. You can enable your customer to install a specific update and ignore others.
Before launching the client, you need to register a new product:
upclient -url **Server url** -k your_api_key -pc test_product -v 1.0 -register
upclient -url **Server url** -k your_api_key -pc test_product2 -v 2.0 -register
You only need to register each product once. Typically, this registration occurs during product installation. Subsequently, you can use the upclient
with the -manager
option. Internally, the client checks for updates based on all registered products.
upclient -url **Server url** -k your_api_key -manager
To unregister (typically during product uninstallation or when you want to disable the update check for a specific product), use:
upclient -url **Server url** -k your_api_key -pc test_product -v 1.0 -unregister

The message mode enables communication with your customers through various means such as simple text, HTML-based notifications, or complex (form-based) web pages using webkit or an external browser. The method of display depends on your specific requirements and the chosen client.
To display messages, use:
upclient -url **Server url** -k your_api_key -pc test_product -v 1.0 -messages

The -check
parameter provides the option to perform a check exclusively for your product(s). This can be beneficial if you intend to provide a customized notification within your application or if you need to execute certain pre-steps before initiating the download and update process.
upclient -url **Server url** -k your_api_key -pc test_product -v 1.0 -check
To perform a silent check (without any dialog), add the -s
parameter to the above call. Additionally, to notify users system-wide, independent of your application, you can inform users about new updates or messages using the system tray switch.
upclient -url **Server url** -k your_api_key -pc test_product -v 1.0 -check -st
NOTE When using the -check
mode, you will receive additional error codes when the client terminates. In this mode, the following error codes are valid:
Error Code |
enum |
Description |
---|---|---|
0 |
Service::NOTHING |
No new updates or messages are available. |
1 |
Service::UPDATE |
New updates are available. |
2 |
Service::MESSAGE |
New messages are available. |
3 |
Service::UPDATE_MESSAGE |
Updates and messages are available. |
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.