Web Client Configuration

The web client configuration is defined in the install directory, typically at these locations:

Configuration Location
App Config C:\Program Files\Sym3\Sym3 Operator\Sym3Web\Client\assets\config\config.prod.json
Language C:\Program Files\Sym3\Sym3 Operator\Sym3Web\Client\assets\i18n\en.json

App Config

The app config control the operation of the Sym3 Web Client and for typical use cases this configuration would not need any modification.

Connection Settings

The web client connects directly (via websocket) to the Sym3 server as well as the Alarm server. These servers are assumed to be on the same host. The following settings modify these connections:

"sym3Server": {
    "sslEnabled": false,
    "server": "*",
    "port": 27000
},
"sym3Alarms": {
    "sslEnabled": false,
    "server": "*",
    "port": 20013,
    "pollingInterval": 1000
}
Property Description
sslEnabled If the websocket is a secure websocket, this needs to be set to true.
server The host to connect tom or ‘*’ if the host is the same as the web client host. Example: “172.18.19.3” or “myhost.net”
port The web socket port to connect to.
pollingInterval number

Logging

The current logger options are limited to the web browser console. To modify the verbosity of logging, set the ’level’ property to one of ‘debug’, ‘info’, ‘warn’ or ’error’

"loggers": [
    {
        "name": "ConsoleLogger",
        "config": {
            "level": "Info"
        }
    }
]

Authentication

By default, authentication is disabled. However, there are two authentication methods supported:

Auth Mode Description
BCS Auth The standard authentication system bundled with Sym3 Operator.
OAuth Uses OAuth OIDC authentication methods. Sym3 Auth server is typically required for this.

General Options

Setting the ‘disabled’ property to ‘false’ to enable authentication. If the ‘bcsAuthConfig’ section exists, BCS Auth will be enabled. If this section does not exist, then the section ‘oauthConfig’ is expected to be valid to enable OAuth authentication.

The ‘required’ property, when set to true, requires valid authentication before the web client loads.

Session Timeout

This setting defines the session timeout behaviour. The defaultTimeoutConfig defines the default timeouts of no overrides match the current user. The timeout value is the total timeout time in seconds while the warning value determines the number of seconds before timeout to warn the user (timeout popup).

A timeout value of 0 means no timeout

Example:

"sessionTimeout": {
    "defaultTimeoutConfig": {
        "timeout": 300,
        "warning": 30
    }
},

When no user activity is detected for (300 - 30 = 270) seconds, the popup window will show, warning the user that their session will timeout. If no activity is detected for the remaining 30 seconds, the user is logged out.

Overrides

A collection of overrides can be defined to specify different timeout settings based on user information.

Property Description
timeoutConfig The ’timeout’ and ‘warning’ settings to apply to this override
usernames Optional: An array of user names to match. eg: usernames: [‘joe.schmoe’, ‘display.panel’]
claimValuesEqual Optional: Object defining claims and exact value matches. eg: claimValuesEqual: {‘department’: ‘HR’}
claimValuesIncludes Optional: Object defining claims and ‘contains’ values. eg: claimValuesIncludes: {‘roles’:‘operator’, ’email’: ‘@test.net’}

If multiple overrides apply to the same user, the shortest timeout value is used.

Example:

"sessionTimeout": {
    "defaultTimeoutConfig": {
        "timeout": 300,
        "warning": 30
    },
    "overrides": [
        {
            "timeoutConfig": {
                "timeout": 600,
                "warning": 30
            },
            "usernames": ["admin", "manager"]
        },
        {
            "timeoutConfig": {
                "timeout": 0,
                "warning": 0
            },
            "claimValuesEqual": {'isPanel': true}
        },
        {
            "timeoutConfig": {
                "timeout": 900,
                "warning": 30
            },
            "claimValuesIncludes": {'roles':'operator', 'email': '@test.net'}
        },
    ]
},

BCS Auth

The Sym3 REST API supports a secure login process where the username and password is sent to the API only in encrypted form. The only configuration required is the location of the API endpoint.

Property Description
apiHost The host machine name or IP. ‘*’ means the website host is used.
apiPort Optional: The port if different from the standard ports (80/443).
apiPath The endpoint path. ‘/sym3api/v1/auth’
sslEnabled This determines https or https

NOTE: Default installs have the api at http://localhost/sym3api/v1/auth

OAuth

This configuration is used for OAuth OIDC process. Please see Angular Auth OIDC Client Docs for details.

Language

The language files contain common phrases used in the application. To modify an existing language, simply edit the values of the json objects in one of these files. Dynamically adding a new language is not supported.

Sample Language File

{
    "general": {
        "not_found" : "Not found"
    },
    "session": {
        "timer": {
        "title": "Session Timeout",
        "message": "Your session will expire due to inactivity..."
        }
    },
    "splash": {
        "message": "A valid login is required to access Sym3 web client."
    },
    "auth": {
        "login": "Login",
        "cancel": "Cancel",
        "username": "Username",
        "password": "Password",
        .
        .
        .