Configuration

System Configuration

The system configuration of Glue42 Enterprise is located in the system.json file in the main configuration folder - %LocalAppData%\Tick42\GlueDesktop\config. This file allows you to alter system-wide configurations for window behavior, application stores, Gateway settings and much more. In most cases, the default configuration settings should suffice. For more details, see the system configuration schema.

See also the Glue42 Platform Features section of the documentation, as many of the platform features are configured via the system.json file.

The following examples demonstrate some of the available system level configurations.

Note that the globally defined properties in the system.json file will be overridden by the respective property definitions in the application configuration files.

Dynamic Gateway Port

The Glue42 Gateway starts on port 8385 by default. In environments where multiple user sessions run on the same machine (e.g., running Glue42 Enterprise as a Citrix Virtual App), using a predefined port won't work, as the first instance of Glue42 Enterprise will occupy that port and all other instances won't be able to connect. To avoid this, the Glue42 Gateway can be configured from the system.json file to choose dynamically a free port on startup.

To configure the Glue42 Gateway to use a random free port, go to the "configuration" object under the "gw" top-level key and set its "port" property to 0:

{
    "gw": {
        "configuration": {
            "port": 0
        }
    }
}

Application Stores

To configure Glue42 Enterprise to load application configuration files from a local path, use the "appStores" top-level key. Set the "type" property of the app store configuration object to "path" and specify a relative or an absolute path to the application definitions. The environment variables set by Glue42 Enterprise can also be used as values:

{
    "appStores": [
        {
            "type": "path",
            "details": {
                "path": "../config/apps"
            }
        },
        {
            "type": "path",
            "details": {
                "path": "%GD3-APP-STORE%"
            }
        },
        {
            "type": "path",
            "details": {
                "path": "%GLUE-USER-DATA%/apps"
            }
        }
    ]
}

To configure Glue42 Enterprise to load application definitions from a remote application store, set the the "type" property of the app store configuration object to "rest" and provide details about the remote application store:

{
    "appStores": [
        {
            "type": "rest",
            "details": {
                "url": "http://localhost:3000/appd/v1/apps/search",
                "auth": "no-auth",
                "pollInterval": 30000,
                "enablePersistentCache": true,
                "cacheFolder": "%LocalAppData%/Tick42/UserData/%GLUE-ENV%-%GLUE-REGION%/gcsCache/"
            }
        }
    ]
}

The only required properties for each app store configuration object are "type", which should be set to "rest", and "url", which is the address of the remote application store. You can also set the authentication, polling interval, cache persistence and cache folder.

Property Description
"auth" Authentication configuration. Can be one of "no-auth", "negotiate" or "kerberos".
"pollInterval" Interval in milliseconds at which to poll the REST service for updates.
"enablePersistentCache" Whether to cache and persist the configuration files locally (e.g., in case of connection interruptions).
"cacheFolder" Where to keep the persisted configuration files.

For details on working with remote store compliant with FDC3 App Directory standards, see the FDC3 Compliance section and the FDC3 App Directory documentation.

You can also use the Glue42 Server for hosting and retrieving application stores. The Glue42 Server is a complete server-side solution for providing data to Glue42. To configure Glue42 Enterprise to fetch application configurations from a Glue42 Server, set the "type" property of the app store configuration object to "server":

{
    "appStores": [
        {
            "type": "server"
        }
    ]
}

Application Preferences Store

Application preferences can be stored locally in a file, or remotely - using a REST service or the Glue42 Server. By default, application preferences are stored locally in the %LocalAppData%\Tick42\UserData\<ENV-REG>\prefs folder where <ENV-REG> must be replaced with the environment and region of your Glue42 Enterprise copy (e.g., T42-DEMO). To configure Glue42 Enterprise where to store application preferences, use the "store" property of the "applicationPreferences" top-level key:

{
    "applicationPreferences": {
        "store": {
            "type": "rest",
            "restURL": "https://my-rest-service.com",
            "restClientAuth": "no-auth",
            "newDataCheckInterval": 2000
        }
    }
}

The "store" key has the following properties:

Property Type Description
"type" "file" | "rest" | "server" The type of the app preferences store.
"restURL" string The URL of the REST service providing the app preferences. Valid only in "rest" mode.
"restClientAuth" "no-auth" | "negotiate" | "kerberos" The client authentication mechanism for the REST service. Valid only in "rest" mode.
"newDataCheckInterval" number Interval in seconds at which to check for new data from the REST or server store. Executed only if subscribers are available.

The "type" property accepts the following values:

Value Description
"file" Default. Application preferences will be saved locally in a file.
"rest" Application preferences will be saved using the REST service at the URL provided to the "restURL" property.
"server" Application preferences will be saved using the Glue42 Server (the Glue42 Server must be configured first).

Application Settings

  • Use the "titleFormat" property under the "applications" top-level key to set a format for the titles of application windows. Use the supported macros - {title} and {instanceIndex}:

Available since Glue42 Enterprise 3.10

{
    "applications": {
        "titleFormat": "{title} ({instanceIndex})"
    }
}

Title format

The value for the {title} macro is the title specified in the application configuration file. The {instanceIndex} macro is the consecutive number of the application instance. It is incremented for each new application instance starting from 1. If all instances are closed, the counter is reset. If some instances are closed while others are still running, the counter will continue to increment accordingly.

Note that if the application sets the title programmatically through any of the Glue42 APIs, the specified title format will be overridden. For web applications, the window title can be synced with the document title by using the "syncTitleWithDocumentTitle" property which will override the specified title format.

Window Settings

Global Glue42 Window settings are found under the "windows" top-level key of the system.json file of Glue42 Enterprise and can be overridden per application by the application configuration settings.

Sticky Button

Available since Glue42 Enterprise 3.11

To show the Sticky button on all Glue42 Windows:

{
    "windows": {
        "showStickyButton": true
    }
}

Sticky button

Jump List

Available since Glue42 Enterprise 3.15

To configure the jump list globally for all Glue42 Windows:

{
    "windows": {
        "jumpList": {
            "enabled": true,
            "categories": [
                {
                    "title": "System",
                    "actions": [
                        {
                            "type": "centerScreen",
                            "singleInstanceTitle": "Center on Primary Screen",
                            "multiInstanceTitle": "Center all on Primary Screen"
                        }
                    ]
                }
            ]
        }
    }
}

The "jumpList" object has the following properties:

Property Type Description
"enabled" boolean If true (default), will enable the jump list.
"categories" object[] Categorized lists with actions to execute when the user clicks on them.

Each object in the "categories" array has the following properties:

Property Type Description
"title" string Title of the category to be displayed in the context menu.
"actions" object[] List of actions contained in the category.

Each object in the "actions" array has the following properties:

Property Type Description
"type" string Type of the action to execute.
"singleInstanceTitle" string Title of the action to be displayed in the context menu when there is a single instance with a single taskbar icon.
"multiInstanceTitle" string Title of the action to be displayed in the context menu when there are multiple instances with grouped taskbar icons.

Downloading Files

To configure the global behavior of the Glue42 Windows when downloading files, use the "downloadSettings" property of the "windows" top-level key:

{
    "windows": {
        "downloadSettings": {
            "autoSave": true,
            "autoOpenPath": false,
            "autoOpenDownload": false,
            "enable": true,
            "enableDownloadBar": true,
            "path": "%DownloadsFolder%"
        }
    }
}

For more information, see the Glue42 Platform Features: Downloading Files.

Zooming

To set the zoom behavior of the Glue42 Windows, use the "zoom" property of the "windows" top-level key:

{
    "windows": {
        "zoom": {
            "enabled": true,
            "mouseWheelZoom": false,
            "factors": [25, 33, 50, 67, 75, 80, 90, 100, 110, 125, 150, 175, 200, 250, 300, 400, 500],
            "defaultFactor": 100
        }
    }
}

For more information, see the Glue42 Platform Features: Zooming.

Printing

Use the "CTRL + P" key combination to print a web page opened in a Glue42 Window. To enable or disable printing, or to configure the default print settings use the "print" property of the "windows" top-level key. The following example demonstrates configuring some of the available print settings:

{
    "windows": {
        "print": {
            "enabled": true,
            "silent": true,
            "color": false,
            "copies": 1,
            "footer": "https://my-domain.com/",
            "pageSize": "A4",
            "duplexMode": "longEdge"
        }
    }
}
Property Description
"enabled" Whether to enable or disable printing.
"silent" Whether to ask the user for print settings.
"color" Whether to print the page in color or in grayscale.
"copies" The number of copies to print.
"footer" A string that will be printed as a footer on each page.
"pageSize" The size of the printed page.
"duplexMode" Setting for duplex printing.

For more details on all available print properties and their values, see the "print" key in the system.json schema.

To enable or disable printing a web page as a PDF file, or to configure the default settings for printing to PDF, use the "printToPdfSettings" property of the "windows" top-level key. The following example demonstrates configuring some of the available settings for printing to a PDF file:

{
    "windows": {
        "printToPdfSettings": {
            "enabled": true,
            "autoSave": true,
            "autoOpenPath": true,
            "fullPath": "C:\\Users\\%USERNAME%\\Documents\\PDF",
            "usePrintShortcutKey": true,
            "pageSize": "A4",
            "printBackground": true,
            "printSelectionOnly": true
        }
    }
}
Property Description
"enabled" Whether to enable or disable printing to a PDF file.
"autoSave" Whether to auto save the PDF file.
"autoOpenPath" Whether to auto open the directory where the file was saved.
"fullPath" The default directory where PDF files will be saved.
"usePrintShortcutKey" Whether to use "CTRL + P" to print to a PDF file by default.
"pageSize" The size of the printed page.
"printBackground" Whether to print the page background.
"printSelectionOnly" Whether to print only the currently selected section of the page.

For more details on all available properties for printing to a PDF file and their values, see the "printToPdfSettings" key in the system.json schema.

The "print" and "printToPdfSettings" properties are also available under the "details" key of the configuration file for window applications. Use them to override the system-wide print settings.

User Agent

To specify a custom User-Agent request header to be sent when connecting to a server, use the "userAgent" property of the "windows" top-level key:

{
    "windows": {
        "userAgent": "custom-user-agent-string"
    }
}

Citrix Apps

Mind that the default system settings for the Citrix Virtual Apps support should work fine in most cases and usually it isn't necessary to make any modifications. If the default settings don't work for your specific environment, use the "citrix" top-level key to provide custom values.

The following configuration contains the default Citrix settings:

{
    "citrix": {
        "launcherPath": "%ProgramFiles(x86)%/Citrix/ICA Client/SelfServicePlugin",
        "launcherModule": "SelfService.exe",
        "launcherArguments": "-qlaunch \"$appName$\"",
        "launcherSpawnInterval": 1500
    }
}

The "citrix" key has the following properties:

Property Description
"launcherPath" Location of the Citrix module used to launch published Citrix Virtual Apps.
"launcherModule" The file name of the Citrix module used to launch published Citrix Virtual Apps.
"launcherArguments" The command line arguments used to launch published Citrix Virtual Apps.
"launcherSpawnInterval" Interval in milliseconds at which multiple launcher modules will be spawned.