Please find below an example of a configuration file that can be used by your system administrator to configure the parameters and initial settings of the Corti application for all the designed workstations:
It can be used to configure the most common API, Window viewer and Login options.
It can also be used to configure more integration-specific options, depending on the need of your organization.
The file shown below is a specification, but it should be detailed enough for your system administrator to be able to customize it according to your organization's needs.
That being said, feel free to reach out to us for any questions or doubts.
Configuration Specs
Configuration Specs
####################### User-settings Configuration Specs ######################
# This file is an example configuration file highlighting only the most common
# options. More options can be added depending on customer-specific integration
# configuration. Thus, please use this as a reference.
#
#
#============================ Api Options =============================
import { env } from 'core/environment';
export const userConfigSchema = {
properties: {
apiHost: {
type: 'string',
format: 'uri-reference',
default: 'beta',
},
'callSubscriber:configFileLocation': {
type: 'string',
format: 'windows-absolute-path',
},
#========================== Window Options ============================
'windowOptions:alwaysOnTop': {
type: 'boolean',
default: false,
},
'windowOptions:resizable': {
type: 'boolean',
default: true,
},
'windowOptions:movable': {
type: 'boolean',
default: true,
},
'windowOptions:rememberLastState': {
type: 'boolean',
default: true,
},
'windowOptions:defaultX': {
type: 'integer',
},
'windowOptions:defaultY': {
type: 'integer',
},
'windowOptions:defaultWidth': {
type: 'integer',
},
'windowOptions:defaultZoomLevel': {
type: 'number',
},
'childWindowOptions:defaultX': {
type: 'integer',
},
'childWindowOptions:defaultY': {
type: 'integer',
},
'childWindowOptions:defaultWidth': {
type: 'integer',
},
'childWindowOptions:defaultHeight': {
type: 'integer',
},
'alertWidgetWindowOptions:defaultX': {
type: 'integer',
},
'alertWidgetWindowOptions:defaultY': {
type: 'integer',
},
#========================== Login Options ============================
'login:enableRememberMe': {
type: 'boolean',
default: true,
},
'login:preferredAuthProvider': {
enum: ['native', 'ad'],
default: 'native',
},
},
additionalProperties: false,
};
File Location and Name
The user-settings config must be set in one of the following locations.
AppData Roaming Directory (default)
C:/Users/{user}/AppData/Roaming/Corti
Corti Installation Directory
e.g.
C:/Users/{user}/AppData/Local/Programs/Cortie.g.
C:/Program Files/Corti
Example File
{
"webappUrl": "https://{{environment_id}}.corti.app", // required
"apiHost": "http://localhost:5173", // on-premise only
"callSubscriber:configFileLocation": "C:/ProgramData/Corti/extension.json",
"windowOptions:movable": false,
"windowOptions:resizable": false,
"windowOptions:defaultX": 120,
"windowOptions:defaultY": 30,
"login:enableRememberMe": false
}
Login options
Regarding login options, there is the possibility to set up Corti so that by default the 'Keep me logged in' option is always checked.
This will allow Corti to remember the last user logged in and keep them logged in even if they exit the application.
If they log out, then they are properly logged out.
Similarly, if a user logs out of their Operative system/CAD system's user profile at the end-of-shift, the Corti client automatically logs out the user too.
If you do not want the Corti application to remember the last user logged in, in the config file it is possible to disable (set to false) the remember-me option.
"login:enableRememberMe": false
If this feature is false, if a user exits the application, the user will be logged off.
Window Options
There are three window types in the Corti application, each with their own configuration options.
Config Groups
windowOptions: This controls the primary window that contains the main application.
childWindowOptions: This controls any pop-up windows that the application might show, such as document viewers.
alertWidgetWindowOptions: This controls the widget used to show AI alerts.
Config Settings
Note, not all config groups support all settings. All configs are optional.
defaultX: An
integerthat determines the X coordinates of the monitor in pixels that the left-most part of the window.defaultY: An
integerthat determines the Y coordinates of the monitor in pixels that the left-most part of the window.defaultWidth: An
integerdetermining the default width in pixels of the window.defaultHeight: An
integerdetermining the default width in pixels of the window.defaultZoomLevel: A
numberthat sets the default zoom level to the specified level. The original size is 0 and each increment above or below represents zooming 20% larger or smaller to default limits of 300% and 50% of original size, respectively. A zoom level of -1 equates to an 80% zoom. Zoom is set to default on restart.alwaysOnTop: A
booleanproperty that determines whether the application should appear above all other windows.resizeable: A
booleanproperty that determines whether the window can be manually resized by user.movable: A
booleanproperty that determines whether the window can be moved by user.rememberLastState: A
booleanproperty that allows users to set a configuration (window size and location) and for the application to remember next time the application is restarted. This overrides default values. The state is only remembered for the primary window.
How to Use the CallSubscriber Config
If a customer has a setup where the phone extension is associated with a workstation/position rather than an individual user, you will need to use an additional config file. It is advised to store this file in a system directory rather than a user directory. We recommend using C:/ProgramData/Corti/extension.json
You set the path to this config file in the main user-settings config with the callSubscriber:configFileLocation option.
The file should look as follows, with 2101 an example extension for that position. Each position should have a unique extension.json file.
{
"phoneExtension": "2101"
}
