Configuration Reference

This document is a complete reference of Finsemble's config options (settings). It is generated from the JSON schema file node_modules/@finsemble/finsemble-core/configs/schemas/finsemble.schema.json. Required fields are highlighted in green. Hover over any field to get the complete "dot notation" config path.

Config files are located in /public/configs. You may use "$importConfig" as a way to reference JSON files from one another.

Finsemble's "manifest" is the top level config and is used to bootstrap your SmartDesktop. Within the manifest, finsemble contains all config that is not directly related to bootstrapping. By convention we consider "finsemble" to be the root of config. So for instance, the full path to a config item would be written as finsemble.foo.bar.

  • manifestmanifest (object) Highest level manifest object, which includes "finsemble" configuration.
    • allowEvalInPreloadmanifest.allowEvalInPreload (boolean) Set to `true` to delete `unsafe-eval` and `script-src directives` from the content security policy..
    • appAssetsmanifest.appAssets (array) Manifest array of external assets to be automatically downloaded by FEA (as Zip files) and unpacked for use as native applications..
        • aliasmanifest.appAssets[].alias (string) The downloaded asset is referred to in capplication configurations by alias. Replace the window.path field of a native application with window.alias to use the appAsset.
        • srcmanifest.appAssets[].src (string) URI from which to download a Zip file containing the asset.
        • targetmanifest.appAssets[].target (string) The path within the appAsset Zip file to use to launch the application. This will usually be a path to a .exe, .jar or .bat file..
        • versionmanifest.appAssets[].version (string) A version number for the asset to be downloaded. FEA will only download an asset if it has not already downloaded and cached a copy of the asset with the specified version number..
    • Content-Security-Policymanifest.Content-Security-Policy (string "respect-server-defined-csp") Overwrite the default content security policy for all components. Replace `respect-server-defined-csp` with a custom policy string to activate.
    • devtools_portmanifest.devtools_port (number 9090) Manifest property to set Chromium devTools port. .
    • disableWMICallsmanifest.disableWMICalls (boolean true) (Deprecated) When set to true, Finsemble will not make calls that require Windows Management Instrumentation Command-line (WMIC). This option fills GPU information for the getHostSpecs method and will be removed in a future version..
    • finsemble*finsemble (object) Finsemble's root runtime config. This can be found int "manifest-local.html"..
      • accessibleLinker*finsemble.accessibleLinker (boolean) (DEPRECATED).
      • appd*finsemble.appd (object) Contains Finsemble's app configurations. App config is the primary way that Finsemble learns about apps. Finsemble uses this to create its launcher menus and for driving data integration (interop)..
        • appd[]finsemble.appd[] (object) AppD entries describe apps. (This format follows the FDC3 AppD specification)..
          • appId*finsemble.appd[].appId (string) A unique identifier for the app. This is used programmatically and is not necessarily the same as the app name. It can be any unique string. For instance, there may be more than one app with the same name, such as with different versions..
          • contactEmailfinsemble.appd[].contactEmail (string) Email address to contact for information about the app. (Used when apps are picked out of a third party app catalog.).
          • descriptionfinsemble.appd[].description (string) Textual description of the app..
          • imagesfinsemble.appd[].images (array) Set of "screenshots" that describe the app. (This is used when picking apps out of an app catalog.).
          • intentsfinsemble.appd[].intents (array) The set of intents that this app will be listening for. (See Interop tutorial).
            • intents[]finsemble.appd[].intents[] (object) An intent (following the FDC3 format).
              • contextsfinsemble.appd[].intents[].contexts (array) An optional filter stating that this app only handles intents for *these* context types. (Some intents don't have a context type while others may have one or more possible context types.).
              • displayNamefinsemble.appd[].intents[].displayName (string) Friendly printable name for the intent. This will appear in the "UI Resolver" when an end user is asked to decide which app to send the intent (whenever there is more than one possible resolution)..
              • name*finsemble.appd[].intents[].name (string) The official name of the intent. This name is referenced in interop config..
          • manifest*finsemble.appd[].manifest (object) The name of the component you are configuring.
            • bootParamsfinsemble.appd[].manifest.bootParams (object) Boot parameter properties.
            • childWindowOptionsfinsemble.appd[].manifest.childWindowOptions (object) Configuration for all child windows created via window.open for this app. Child windows may not join workspaces, group, tab, or tile. childWindowOptions supports the same properities as component....
            • componentfinsemble.appd[].manifest.component (object) Properties associated with how Finsemble manages this application.
              • centralLoggerNamePrefixfinsemble.appd[].manifest.component.centralLoggerNamePrefix (string) Prefixes the windowDisplayName for the entry in the Central logger..
              • displayNamefinsemble.appd[].manifest.component.displayName (string) Changes the applications's name in the launcher and its label in the pinned item section..
              • enableGrpcfinsemble.appd[].manifest.component.enableGrpc (boolean) Enables GRPC. Can be used from Browserview based applications. grpc is a global variable available at window.grpc or at fin.grpc. Note: sandbox is disabled for these applications..
              • preloadfinsemble.appd[].manifest.component.preload (boolean,string,array) A preload is a JavaScript file that is inserted into browser page and runs before any other content. Specify a full path for your preloads. You can specify a list of files to be included. Learn more about preloads in Integrating HTML Applications..
              • showDevConsoleOnVisiblefinsemble.appd[].manifest.component.showDevConsoleOnVisible (boolean) If set to `true`, a Chrome developer console will spawn along with the application to assist with debugging..
              • singletonfinsemble.appd[].manifest.component.singleton (boolean) If set to `true`, the application will behave as a singleton; only a single instance can be launched. If the application has already been launched, attempting to launch it will bring it to front..
              • spawnOnHotkeyfinsemble.appd[].manifest.component.spawnOnHotkey (array) The application will be launched when this global hotkey combination is activated by the end user. Example: ["ctrl","alt","a"].
              • spawnOnStartupfinsemble.appd[].manifest.component.spawnOnStartup (boolean) When true, Finsemble will automatically launch this application when the application starts..
            • customfinsemble.appd[].manifest.custom (object) This area is free-form and can support any custom elements associated with the app..
            • foreignfinsemble.appd[].manifest.foreign (object ) This section contains configurations that other applications and services read when they interact with this component..
              • componentsfinsemble.appd[].manifest.foreign.components (object ) Configurations specific to other applications that wish to interact with this app..
                • App Launcherfinsemble.appd[].manifest.foreign.components.App Launcher (object ) App launcher is a drop down menu that launches other application..
                  • launchableByUserfinsemble.appd[].manifest.foreign.components.App Launcher.launchableByUser (boolean) If true, then an App Launcher menu may include this application..
                • Toolbarfinsemble.appd[].manifest.foreign.components.Toolbar (object) Configurations related to the global toolbar (at the top of the monitor)..
                  • iconClassfinsemble.appd[].manifest.foreign.components.Toolbar.iconClass (string) A CSS class character to display when this application is pinned in the toolbar. See "fin-font" or use font-awesome or similar..
                  • iconURLfinsemble.appd[].manifest.foreign.components.Toolbar.iconURL (string) The icon to display when this application is pinned in the toolbar..
                • Window Managerfinsemble.appd[].manifest.foreign.components.Window Manager (object) Configurations specific to an app's window title bar..
                  • alwaysOnTopIconfinsemble.appd[].manifest.foreign.components.Window Manager.alwaysOnTopIcon (boolean) When set to `true`, all windows can be pinned so that they are always on top (like a sticky note). You can override this setting for specific components in their config..
                  • componentCloseTimeoutfinsemble.appd[].manifest.foreign.components.Window Manager.componentCloseTimeout (number 5000) Time (in ms) to wait for the component to close successfully. If the component hasn't closed within this limit, it will be force closed..
                  • deliveryMechanismfinsemble.appd[].manifest.foreign.components.Window Manager.deliveryMechanism (string "injection") Which delivery method to use for scripts (e.g., FSBL, title bar, etc.) - Valid values are: "injection" - Injects the code into the window..
                    		"injection"
                    		"preload"
                    
                  • floatingTitlebarComponentfinsemble.appd[].manifest.foreign.components.Window Manager.floatingTitlebarComponent (string) This config sets which component Finsemble will use as a title bar for native application components. By default, the only value is "FloatingTitlebar." This config exists in the event you wish to customize this behavior with a customized title bar component and created a configuration for it in components.json.
                  • FSBLHeaderfinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader (boolean,object true) This config controls the Finsemble window title bar UI component. FSBLHeader can be true, false or an object. If true then the window title bar will be injected into the component and the maximize, minimize, and close buttons will be displayed. If false, the title bar will not be displayed. If an object, you can tweak several details as to whether buttons are shown or how content is loaded under the title bar. The parameters of the object are the same as the params from WindowClient.injectHeader.
                    • hackScrollbarfinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader.hackScrollbar (boolean) Unless set to false, a window's vertical scrollbar will be positioned underneath the Finsemble window title bar using html{ overflow-y: none} and body{ overflow-y: auto}.
                    • hideClosefinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader.hideClose (boolean) Value indicating whether the close button is hidden in the component titlebar.
                    • hideMaximizefinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader.hideMaximize (boolean) When set to true, the Maximize icon will be hidden from the component's titlebar..
                    • hideMinimizefinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader.hideMinimize (boolean) When set to true, the Minimize icon will be hidden from the component's titlebar..
                    • persistWindowStatefinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader.persistWindowState (boolean) If the component is part of the workspace, this tells Finsemble whether it should persist the position of the window when it moves..
                    • showLinkerfinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader.showLinker (boolean) (DEPRECATED Set this to true only when using deprecated linkerClient. The linker will now automatically display when the FDC3 Interop client is activated with an API call. `showLinker: false` will override, preventing the linker from being displayed if you have a use case where you don't want to display the linker..
                    • titlefinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader.title (boolean) (DEPRECATED) Sets the title in the window title bar. Instead, please set the title in your HTML and Finsemble will pick it up..
                    • zoomDefaultfinsemble.appd[].manifest.foreign.components.Window Manager.FSBLHeader.zoomDefault (number) Default zoom level to set for the component when using the zoom.js sample preload..
                  • zoomfinsemble.appd[].manifest.foreign.components.Window Manager.zoom (object) Configuration for the zoom.js preload.
                    • maxfinsemble.appd[].manifest.foreign.components.Window Manager.zoom.max (number 5) The maximum allowed zoom level..
                    • minfinsemble.appd[].manifest.foreign.components.Window Manager.zoom.min (number 0.2) The minimum allowed zoom level..
                    • stepfinsemble.appd[].manifest.foreign.components.Window Manager.zoom.step (number 0.1) How much the zoom should increase or decrease when zooming in or out..
                    • timeoutfinsemble.appd[].manifest.foreign.components.Window Manager.zoom.timeout (number 3000) The number of milliseconds the zoom pop up should be displayed before it is hidden..
              • servicesfinsemble.appd[].manifest.foreign.services (object) Configurations for services that will interact with this application..
                • windowServicefinsemble.appd[].manifest.foreign.services.windowService (object) Configurations that the window service will apply to this app..
                  • allowAutoArrangefinsemble.appd[].manifest.foreign.services.windowService.allowAutoArrange (boolean true) If `true`, the window can be auto arranged. If `false`, will disable the window's ability to be auto arranged by the Window Service..
                  • allowGroupingfinsemble.appd[].manifest.foreign.services.windowService.allowGrouping (boolean true) If `true`, the window can form groups with other windows. If `false`, this window cannot be placed into a group..
                  • allowMinimizefinsemble.appd[].manifest.foreign.services.windowService.allowMinimize (boolean true) If `true`, the window can be minimized to the taskbar. If `false`, the window cannot be minimized..
                  • allowSnappingfinsemble.appd[].manifest.foreign.services.windowService.allowSnapping (boolean true) If `true`, this window can be snapped. If `false`, this window cannot benefit from snapping..
                  • allowTabbingfinsemble.appd[].manifest.foreign.services.windowService.allowTabbing (boolean) If `true`, the window's titlebar will include a tab header that can be dragged or have other tabs dropped onto it. If `false`, tabbing will be disabled for this window..
                  • allowTilingfinsemble.appd[].manifest.foreign.services.windowService.allowTiling (boolean) If `true`, the window can be tiled on by other windows by dragging tab headers onto its body (below the titlebar). If `false`, tiling will be disabled for this window..
                  • isArrangablefinsemble.appd[].manifest.foreign.services.windowService.isArrangable (boolean) (DEPRECATED) as of 3.6.
                  • manageWindowMovementfinsemble.appd[].manifest.foreign.services.windowService.manageWindowMovement (boolean true) If `true`, the Window Service will manage the window's movement. Unless otherwise specified by the following params, this means the Window Service can perform actions on this window: move, group, snap, minimize, maximize, etc. **Note:** If this parameter is omitted and either `foreign.components.Window Manager.FSBLHeader` or if the `window.dockable` is `true`, this will be `true` as well..
                • workspacefinsemble.appd[].manifest.foreign.services.workspace (object) Configurations related to the workspace service..
                  • persistPathfinsemble.appd[].manifest.foreign.services.workspace.persistPath (boolean) When true, the application will automatically persist its path through restarts and workspace reloads, even when the path changes in the config. Path is used for "native" (aka "assimilation") windows..
                  • persistURLfinsemble.appd[].manifest.foreign.services.workspace.persistURL A global config for application URL persistence. When true, components automatically save their last URL instead of using the one in the config. The application config will override the global config..
            • interopfinsemble.appd[].manifest.interop (object) Interop (data integration) related config for this app.
              • autoConnectfinsemble.appd[].manifest.interop.autoConnect (boolean) If set to true then the app will automatically connect to the Interop service. In most cases, this will cause the linker to display. If set to false (the default) then the app will connect upon the first call to any `fdc` function. .
              • selectConnectfinsemble.appd[].manifest.interop.selectConnect (array) (Experimental). Interop messaging rules to support no-code integration of modules. It allows you to specify precisely which modules can communicate and in what way..
                • selectConnect[]finsemble.appd[].manifest.interop.selectConnect[] (object) A specific selectConnect rule that consists of one or more properties..
                    • authorize[]finsemble.appd[].manifest.interop.selectConnect[].authorize[] (object) When set, messages will be restricted to apps that meet the authorization criteria. Note: using 'authorize' is the same as using both 'to' and 'from'..
                      • namefinsemble.appd[].manifest.interop.selectConnect[].authorize[].name (string) When set, messages will be delivered to or received from apps with this name only. App name is verified by Finsemble..
                  • ccfinsemble.appd[].manifest.interop.selectConnect[].cc (string) The name of a valid selectConnect module. When cc is set, that module will receive a copy of the message. cc works on both outgoing and incoming traffic..
                  • contextTypefinsemble.appd[].manifest.interop.selectConnect[].contextType (string) Apply this rule only to this specific context type. (optional).
                    • from[]finsemble.appd[].manifest.interop.selectConnect[].from[] (object) When set, messages can be received only from apps that meet the authorization criteria..
                      • namefinsemble.appd[].manifest.interop.selectConnect[].from[].name (string) When set, messages will be received only from apps with this name. App name is verified by Finsemble..
                  • fwdfinsemble.appd[].manifest.interop.selectConnect[].fwd (string) The name of a valid selectConnect module. When fwd is set, that module will receive the message *instead* of the original description. fwd is intended primarily for outgoing traffic but will also work on incoming traffic..
                    • to[]finsemble.appd[].manifest.interop.selectConnect[].to[] (object) When set, messages will be sent only to apps that meet the authorization criteria..
                      • namefinsemble.appd[].manifest.interop.selectConnect[].to[].name (string) When set, messages will be sent only to apps with this name. App name is verified by Finsemble..
              • useLinkerfinsemble.appd[].manifest.interop.useLinker (boolean) The linker is turned on by default for any app that uses FDC3. Set this flag to false in order to turn off the linker for this app. For instance, if your app only uses App Channels (i.e. 'well known' named channels)..
            • windowfinsemble.appd[].manifest.window (object) Configurations that manage placement of the application's window on the screen. Any valid parameter from `LauncherClient.spawn()` can be put in this section..
              • affinityfinsemble.appd[].manifest.window.affinity (string) You can control which processes are isolated and which are grouped through the affinity config. In this way, you can strike a balance between performance and memory footprint. This config is a string. Group applications together thoughtfully by setting them to the same value. See the Process Management tutorial for more information..
              • dockablefinsemble.appd[].manifest.window.dockable (array,boolean) Parts of the monitor that the component can dock to. Valid values are `top` and `bottom`. The `[]` value is equal `false`. The `true` value is equal `['top', 'bottom']`..
                		true
                		false
                		[]
                		["top"]
                		["bottom"]
                		["top","bottom"]
                
              • optionsfinsemble.appd[].manifest.window.options (object) Low level window behavior options.
                • alwaysOnTopfinsemble.appd[].manifest.window.options.alwaysOnTop (boolean) When set to true, the window will always be on top (like a sticky note) of any window with alwaysOnTop set to false..
                • autoShowfinsemble.appd[].manifest.window.options.autoShow (boolean true) When set to true, the window will be visible when it is spawned. When set to false, the window will be spawned as an invisible window..
                • Content-Security-Policyfinsemble.appd[].manifest.window.options.Content-Security-Policy (array,string) Custom content security policy (CSP) that will override the CSP received from this app's HTTP server. This can be a string or an array of strings. See https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP.
                • contextMenufinsemble.appd[].manifest.window.options.contextMenu (boolean) A flag to show the context menu when right-clicking on a window. Gives access to the Developer Console for the Window. Default: true.
                • cornerRoundingfinsemble.appd[].manifest.window.options.cornerRounding Specifies corner rounding for a window.
                • isEvergreenfinsemble.appd[].manifest.window.options.isEvergreen (boolean) When set to true, the window will hide and show when switching between workspaces rather than opening and closing. The same singleton instance of the window is used across multiple workspaces. **Note**: Tabbing and tiling is set to false for Evergreen components. If you're using set/getComponentState, the state is different per workspace. Listen for the 'component-state-changed' event on the window to update your application accordingly. Or fetch the new state in the Workspace 'load-complete' event in the case of a native application..
                • opacityfinsemble.appd[].manifest.window.options.opacity (number 1) Sets the opacity of the window..
                • permissionsfinsemble.appd[].manifest.window.options.permissions (object) Change an application's individual permissions to be different than from those in its security policy by adding additional configs under this config. See the Security Policies tutorial for more information..
                • resizablefinsemble.appd[].manifest.window.options.resizable (boolean true) When set to false, the window's edges cannot be resized by the end user and won't participate in Windows aero snap..
                • securityPolicyfinsemble.appd[].manifest.window.options.securityPolicy (string) Change an application's security policy to "trusted" or "untrusted" by setting this config. You can also set the security policy to a unique configuration. See the Security Policies tutorial for more information..
                • windowSpawnTimeoutfinsemble.appd[].manifest.window.options.windowSpawnTimeout (number 30) Number of seconds before a native application component spawn times out..
          • manifestTypefinsemble.appd[].manifestType (string) The type of manifest. This is always equivalent to "finsemble" and can be omitted..
          • name*finsemble.appd[].name (string) The name of the app. This shouold be a user friendly name and can contain spaces. There may be more than one app with the same name. (See also AppId).
          • publisherfinsemble.appd[].publisher (string) The name of the organization who publishes the app. (This is used when picking apps out of third party catalogs.).
          • releaseNotesfinsemble.appd[].releaseNotes (string) Release notes for this version of the app..
          • supportEmailfinsemble.appd[].supportEmail (string) An email address to contact for support with this app..
          • tagsfinsemble.appd[].tags (array) A set of searchable tags. (Used when picking apps out of an app catalog).
          • versionfinsemble.appd[].version (string) The version of the app. This should follow semantic versioning rules..
      • applicationRoot*finsemble.applicationRoot (string "https://localhost:3375") Should point to the root of your application. Finsemble will use this to build URLs internally..
      • authenticationfinsemble.authentication (object) Contains authentication profiles. The special “STARTUP” profile will be run when your SmartDesktop launches..
        • authentication[]finsemble.authentication[] (object) Declare an authentication profile that uses simple password collection or any other type of custom authentication process..
          • adapter*finsemble.authentication[].adapter (string) The authentication "adapter" (module) which will be used for this authentication profile. (See the Authentication Tutorial)..
            		"PASSWORD"
            		"OAUTH2"
            
          • authorization_endpointfinsemble.authentication[].authorization_endpoint (string) When used with OAUTH2 adapter, the authorization endpoint for your Identity Provider (IP)..
          • backchannel_endpointfinsemble.authentication[].backchannel_endpoint (string) When used with OAUTH2 adapter, your backchannel endpoint URL..
          • client_idfinsemble.authentication[].client_id (string) When used with OAUTH2 adapter, the "client ID" provided by your Identity Provider (IP)..
          • componentfinsemble.authentication[].component (string) The UI component to use for this authentication profile. Typically this would be "authentication.html" used by the "PASSWORD" adapter to display a user/login form..
          • redirect_urlfinsemble.authentication[].redirect_url (string "$applicationRoot/components/authentication/oauthResponse.html") The component to handle the response from your IP. If you don't provide this, *components/authentication/oauthResponse.html* will be used..
          • scopefinsemble.authentication[].scope (string,null openid) When used with OAUTH2 adapter, the "scope" as specified by your Identity Provider (IP)..
      • availableDashbarItemsfinsemble.availableDashbarItems (object) Available dashbar items to list in dashbar user preferences.
      • bootConfig*finsemble.bootConfig (object) Boot/startup configuration parameters used by the System Manager..
        {
            "bootConfig": {
                "defaults": {
                    "startServiceTimeout": 10000,
                    "startComponentTimeout": 15000
                }
            }
        }
        
        • defaultsfinsemble.bootConfig.defaults (object) Default startup-up properties for System Manager.
          • startComponentTimeoutfinsemble.bootConfig.defaults.startComponentTimeout (number 15000) Default timeout value in milliseconds for components.
            • minimum: 0
          • startServiceTimeoutfinsemble.bootConfig.defaults.startServiceTimeout (number 15000) Default timeout value in milliseconds for services.
            • minimum: 0
            • maximum: 999999
      • configSchemaURLfinsemble.configSchemaURL (string) URL of this schema. Used for run-time verification of configuration. .
      • configVersionfinsemble.configVersion (string) Version of this schema. .
      • failedComponentCloseNotificationfinsemble.failedComponentCloseNotification (boolean) If true throw a notification when a component fails to close within the time limit specified in `finsemble["Window Manager"].componentCloseTimeout`.
      • feaURLWhitelistfinsemble.feaURLWhitelist (string) A regex pattern that represents a URL whitelist. If set, components will **only** be able to navigate to URLs that match the regex pattern..
      • globalHotkeys*finsemble.globalHotkeys (object) .
      • importConfigfinsemble.importConfig (array) Defines an array of JSON URLs to be imported into the top-level finsemble object. Note that this will overwrite any existing config settings, with two exceptions: New services defined under finsemble.services will be added to the list of existing services (as opposed to replacing the existing list of services). New components defined under finsemble.components will be added to the list of existing components (as opposed to replacing the list of existing components)..
      • importThirdPartyConfigfinsemble.importThirdPartyConfig (array) This import is essentially the same as importConfig with one notable difference: the imported configuration settings cannot overwrite any existing settings. In this case, the settings for any potential overwrite will be discarded with a warning message written to the Config Service's log..
      • initialWorkspacefinsemble.initialWorkspace (string) The workspace name specified by this config will be the first one presented to an end user the very first time they start the SmartDesktop. This overrides the default behavior set by the config: finsemble.workspaces. After the very first instance of the SmartDesktop, Finsemble will load the last workspace loaded or any workspace specified by user preferences..
      • loggerfinsemble.logger (object) .
      • menusfinsemble.menus Legacy config to configure menus. Still used in some configuration examples.
      • moduleRoot*finsemble.moduleRoot (string "https://localhost:3375/finsemble") Where you are serving the Finsemble core library from. This is important for resolving URLs internally..
      • notificationURLfinsemble.notificationURL (string) .
      • preferences*finsemble.preferences (object) User Perferences.
        • promptUserOnDirtyWorkspacefinsemble.preferences.promptUserOnDirtyWorkspace (boolean true) When set to `false`, the user's workspace automatically saves to the last configuration when switching workspaces or closing Finsemble. When set to `true`, the user is prompted to save the current workspace configuration..
      • routerfinsemble.router (object) Configurations for Router's communication mechanism..
        {
            "router": {
                "crossDomainTransport": "IPCBus",
                "sameDomainTransport": "SharedWorker",
                "transportSettings": {
                    "FinsembleTransport": {
                        "serverAddress": "ws://127.0.0.1:3376"
                    }
                }
            }
        }
        
        • crossDomainTransportfinsemble.router.crossDomainTransport (string "IPCBus") The interface for communicating between cross-domain components - When set to `IPCBus`, the default,, all cross-domain components will use IPC to communicate. When set to `FinsembleTransport`, cross-domain components will use IAC. You might switch the `crossDomainTransport` if you are having connection issues involving firewalls, your CSP, etc. Available values are 'IPCBus' and 'FinsembleTransport'..
          		"IPCBus"
          		"SharedWorker"
          		"FinsembleTransport"
          
        • promptBeforeAllowingExternalAppsfinsemble.router.promptBeforeAllowingExternalApps (boolean) (DEPRECATED) this capability will be deprecated in order to support freestanding apps.
        • sameDomainTransportfinsemble.router.sameDomainTransport (string "SharedWorker") The transport for components and services with Finsemble's domain. .
          		"IPCBus"
          		"SharedWorker"
          		"FinsembleTransport"
          
        • trafficSnapMinCountSizefinsemble.router.trafficSnapMinCountSize (number) if traffic snapshot enable, then filter from output if not this many messages for the channel/topic.
        • trafficSnapshotMillisecondsfinsemble.router.trafficSnapshotMilliseconds (number) if defined how often to take the traffic snapshot for diagnostics.
        • transportSettingsfinsemble.router.transportSettings (object ) The specific setting for certain transports..
          • FinsembleTransport*finsemble.router.transportSettings.FinsembleTransport (object) Configuration for the FinsembleTransport (IAC) if chosen as the communication mechanism for cross-domain components. IAC uses WebSocket as its communication protocol..
            • serverAddress*finsemble.router.transportSettings.FinsembleTransport.serverAddress (string "ws://127.0.0.1:3376") URI for the WebSocket server. To use a secure connection, use 'wss://localhost.chartiq.com:3376'.
      • scheduledRestartfinsemble.scheduledRestart (boolean,object) Set Finsemble to automatically restart. These values can be overriden by the user through user preferences. hour 0 - The hour when Finsemble should restart. This is in 24 hour time according to the user's local machine's timezone. minute 0 - The minute when Finsemble should restart. dialogTimeout 10000 - When it is time to restart, the user is presented with a dialog to confirm or cancel. Since resets occur at night while the machine is unattended, most often the dialog will time out and Finsemble will reset. The `dialogTimeout` specifies how long to wait for a user response in milliseconds..
      • servicesConfig*finsemble.servicesConfig (object) Configurations that override the defaults for Finsemble's built-in services. (Defaults are stored in "finsemble.services" and cannot be directly overridden..
        • assimilationfinsemble.servicesConfig.assimilation (object) Assimilation of native windows. This only works on Windows operating systems..
          • activefinsemble.servicesConfig.assimilation.active (boolean true) Set this to `false` to disable the service..
          • affinityfinsemble.servicesConfig.assimilation.affinity (string) Only applicable for `spawnAs: "window"`. When set, the service window will be given process affinity based on the string passed in. This allows aggregation of services to a specific browser process..
          • enabledfinsemble.servicesConfig.assimilation.enabled (boolean true) Set to true to turn on Assimilation.
          • eventIgnorefinsemble.servicesConfig.assimilation.eventIgnore (number 50) Sets the threshold (in miliseconds) from the previous event before which focus/restore events are dropped. Certain sequences of minimize/restore/focus events can create an unwanted loop of events; therefore, restore and focus events are throttled with this property..
          • focusDelayfinsemble.servicesConfig.assimilation.focusDelay (number 30) Sets the delay (in miliseconds) between the focus event being received and the actual focusing of the window. This is necessary because the focus event is called simultaneously with minimize/restore events, which causes issues with docking groups..
          • hideTitleBarsfinsemble.servicesConfig.assimilation.hideTitleBars (boolean) Set to true to hide all Finsemble title bars for native applications..
          • onlySpawnedfinsemble.servicesConfig.assimilation.onlySpawned (boolean true) This Boolean tells assimilation whether it should restrict its scope to external applications spawned by Finsemble. If true, only applications launched from Finsemble will be controlled. If false, it will try to control the movements of all windows on the desktop..
          • portfinsemble.servicesConfig.assimilation.port (number 8392) Assimilation communicates with Finsemble's HTML services via a WebSocket. Set the port here..
          • spawnAsfinsemble.servicesConfig.assimilation.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
          • throttlefinsemble.servicesConfig.assimilation.throttle (number 15) Windows sends dozens of events per second when a window is moved. This value tells the application how often to collect those events. You may see performance degradations if you set the throttle below 5..
          • visiblefinsemble.servicesConfig.assimilation.visible (boolean) Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services..
        • distributedStorefinsemble.servicesConfig.distributedStore (object) Distributed Store configuration.
          • activefinsemble.servicesConfig.distributedStore.active (boolean true) Set this to `false` to disable the service..
          • affinityfinsemble.servicesConfig.distributedStore.affinity (string) Only applicable for `spawnAs: "window"`. When set, the service window will be given process affinity based on the string passed in. This allows aggregation of services to a specific browser process..
          • initialStores*finsemble.servicesConfig.distributedStore.initialStores (array) Foundations for any stores which should be seeded on startup.
              • foundationfinsemble.servicesConfig.distributedStore.initialStores[].foundation (object) The data to seed into the store.
                    • Advanced App Launcherfinsemble.servicesConfig.distributedStore.initialStores[].foundation.appFolders.folders.Advanced App Launcher (object) Definition for AdvanceAppLauncher application folder.
                    • Favoritesfinsemble.servicesConfig.distributedStore.initialStores[].foundation.appFolders.folders.Favorites (object) Definition for AdvanceAppLauncher application folder.
              • namefinsemble.servicesConfig.distributedStore.initialStores[].name (string) The name of the store to seed.
              • preferPreviousStatefinsemble.servicesConfig.distributedStore.initialStores[].preferPreviousState (boolean true) Advanced App Launcher specific config to control the loading of data. If true, any changes from a previous run will be overridden and the state will be restored on every restart to the initial config provided. If true and no foundation is provided, nothing will be affected..
          • spawnAsfinsemble.servicesConfig.distributedStore.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
          • visiblefinsemble.servicesConfig.distributedStore.visible (boolean) Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services..
        • dockingfinsemble.servicesConfig.docking (object) Configs specific to the docking service.
          • activefinsemble.servicesConfig.docking.active (boolean true) Set this to `false` to disable the service..
          • affinityfinsemble.servicesConfig.docking.affinity (string) Only applicable for `spawnAs: "window"`. When set, the service window will be given process affinity based on the string passed in. This allows aggregation of services to a specific browser process..
          • ALLOW_GROUPS_TO_SNAPfinsemble.servicesConfig.docking.ALLOW_GROUPS_TO_SNAP (boolean true) Allows groups to snap to one another..
          • allowAppropriatedWindowsToGroupfinsemble.servicesConfig.docking.allowAppropriatedWindowsToGroup (boolean) Allow Appropriated Windows (Freestanding Applications and windows opened with window.open) to group.
          • alwaysOnTopLevelfinsemble.servicesConfig.docking.alwaysOnTopLevel (string "normal") The always on top level when setting components `alwaysOnTop` to true. See the Electron alwaysOnTop documentation for valid values..
          • BUFFER_SIZEfinsemble.servicesConfig.docking.BUFFER_SIZE (number 20) The zone around a window that will cause it to snap to other windows. This value is in pixels..
          • claimSpacefinsemble.servicesConfig.docking.claimSpace (object) Settings for claiming space on Desktop at the operating System level. Windows Only..
            • alwaysOnTopfinsemble.servicesConfig.docking.claimSpace.alwaysOnTop (boolean) If true, docked windows that claim space will be always on top when docked.
            • enabledfinsemble.servicesConfig.docking.claimSpace.enabled (boolean true) If true, docked windows will behave like the Windows Taskbar and claimed space on the operating system.
          • enableWindowsAeroSnapfinsemble.servicesConfig.docking.enableWindowsAeroSnap (boolean) If `true`, windows aero snap keyboard shortcuts (WINDOWS KEY + UP, RIGHT, DOWN, or LEFT arrow key) will move the current window when pressed. Windows will move the window and Finsemble will respond by updating bounds within the Window Service. If `false` (default), these actions will be cancelled by Finsemble..
          • fillHolesOnUndock*finsemble.servicesConfig.docking.fillHolesOnUndock (boolean true) If set to `true`, a rectangular group will maintain its rectangularity when windows leave the group..
          • fillHolesOnUndock finsemble.servicesConfig.docking.fillHolesOnUndock If set to `true`, a rectangular group will maintain its rectangularity when windows leave the group..
            • enabledfinsemble.servicesConfig.docking.GROUP_MODE.enabled (boolean true) Whether to allow windows to group to one another..
          • groupTileBuffer*finsemble.servicesConfig.docking.groupTileBuffer (number 30) Defines the size of the buffer in pixels wherein a dragged window will trigger a tile operation..
          • headerHeight*finsemble.servicesConfig.docking.headerHeight (number 32) This defines the height of the window title bar..
          • headerWidthfinsemble.servicesConfig.docking.headerWidth (number 32) This defines the width of the window title bar..
          • MINIMUM_HEIGHTfinsemble.servicesConfig.docking.MINIMUM_HEIGHT (number 28) The smallest height to allow a window to shrink on resize..
          • MINIMUM_WIDTH*finsemble.servicesConfig.docking.MINIMUM_WIDTH (number 98) The smallest width to allow a window to shrink on resize..
          • requireRectangularityForGroupResize*finsemble.servicesConfig.docking.requireRectangularityForGroupResize (boolean true) If a group of windows forms a rectangle, it can be resized. By turning this to `false`, the user can resize any shaped group by grabbing a corner that is not on another window's edge..
          • RESIZE_EVENT_THROTTLE_PERIODfinsemble.servicesConfig.docking.RESIZE_EVENT_THROTTLE_PERIOD (number) Value (in milliseconds) to throttle resize events. If you find that the quantity of resize events is causing poor performance, tweak this value until you are happy with the performance..
          • SNAPPING_OPACITYfinsemble.servicesConfig.docking.SNAPPING_OPACITY (number 0.8) The opacity windows change to when other windows encroach on their buffer zone..
          • spawnAsfinsemble.servicesConfig.docking.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
            • enabledfinsemble.servicesConfig.docking.tabbing.enabled (boolean) Allows windows to tab onto each other..
            • enabledfinsemble.servicesConfig.docking.tiling.enabled (boolean) Allows windows to tile onto each other..
          • undockDisbandsEntireGroup*finsemble.servicesConfig.docking.undockDisbandsEntireGroup (boolean) By default, when a user clicks the "Undock" button in the title bar, it will leave the group without destroying that group. Set this value to `true` if you would like to eliminate the group when the user clicks the "Undock" button..
          • visiblefinsemble.servicesConfig.docking.visible (boolean) Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services..
        • hotkeysfinsemble.servicesConfig.hotkeys (object) Hotkeys service config options.
          • spawnAsfinsemble.servicesConfig.hotkeys.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
        • interopfinsemble.servicesConfig.interop (object) Interop Service config options.
          • affinityfinsemble.servicesConfig.interop.affinity (string) Only applicable for `spawnAs: "window"`. When set, the service window will be given process affinity based on the string passed in. This allows aggregation of services to a specific browser process..
          • bootParamsfinsemble.servicesConfig.interop.bootParams (object) Boot parameter properties.
          • showDevConsoleOnVisiblefinsemble.servicesConfig.interop.showDevConsoleOnVisible (boolean true) Automatically spawns a dev console when visible is true. Note that if a service is set to type "script" then you should not use this but instead debug serviceManager.html..
          • spawnAsfinsemble.servicesConfig.interop.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
          • visiblefinsemble.servicesConfig.interop.visible (boolean) Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services..
        • launcherfinsemble.servicesConfig.launcher (object) Launcher Service config options.
          • activefinsemble.servicesConfig.launcher.active (boolean true) Set this to `false` to disable the service..
          • affinityfinsemble.servicesConfig.launcher.affinity (string) Only applicable for `spawnAs: "window"`. When set, the service window will be given process affinity based on the string passed in. This allows aggregation of services to a specific browser process..
          • concurrentSpawnLimitfinsemble.servicesConfig.launcher.concurrentSpawnLimit (number) This specifies the number of components that can be spawned concurrently during Workspace load. The default is machine's number of processor cores divided by 2. More than one window per core can potentially cause performance issues on processor-intensive components. Defaults to the machine's number of processor cores divided by 2.
            • minimum: 1
          • defaultPreloadsfinsemble.servicesConfig.launcher.defaultPreloads (object) This is used to specify preloads that go into many components..
            • allComponentsfinsemble.servicesConfig.launcher.defaultPreloads.allComponents (array ) An array of URLs that will be preloaded into all components..
              • allComponents[]finsemble.servicesConfig.launcher.defaultPreloads.allComponents[] (string) A URL of a preload.
            • launchableComponentsfinsemble.servicesConfig.launcher.defaultPreloads.launchableComponents (array ) An array of URLs that will be preloaded into components that are launchable by the user..
              • launchableComponents[]finsemble.servicesConfig.launcher.defaultPreloads.launchableComponents[] (string) A URL of a preload.
          • searchfinsemble.servicesConfig.launcher.search (object) Allows you to control the component search built into finsemble.
            • enabledfinsemble.servicesConfig.launcher.search.enabled (boolean true) Set to false to disable component search..
            • optionsfinsemble.servicesConfig.launcher.search.options (object) An object containing fuse.js configuration options..
          • spawnAsfinsemble.servicesConfig.launcher.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
          • staggerPixels*finsemble.servicesConfig.launcher.staggerPixels (number 40) Set the amount of "stagger" pixels when components are launched on top of another. Staggering is like laying cards out on a table..
          • unknownComponent*finsemble.servicesConfig.launcher.unknownComponent (string "nonConfiguredComponent") This corresponds to a component's key in one of your component JSON files. Our default is the "nonConfiguredComponent". The unknown component serves as a placeholder for a component that a user loses permissions to. The unknown component will show up as a substitute to an existing component when Finsemble cannot find this component's configuration (e.g., the user no longer has access to this component). This unknown component will be saved to the workspace so that the original component will return in the future if Finsemble is able to find it..
          • visiblefinsemble.servicesConfig.launcher.visible (boolean) Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services..
        • linkerfinsemble.servicesConfig.linker (object) Linker config options.
          • enabledfinsemble.servicesConfig.linker.enabled (boolean) Set this to `true` in order to use Linker Client on client side. Otherwise the FDC3 client will be used..
        • loggerfinsemble.servicesConfig.logger (object) Central Logger config options.
          • activefinsemble.servicesConfig.logger.active (boolean true) Set this to `false` to disable the service..
          • affinityfinsemble.servicesConfig.logger.affinity (string) Only applicable for `spawnAs: "window"`. When set, the service window will be given process affinity based on the string passed in. This allows aggregation of services to a specific browser process..
          • defaultClientLogLevelsfinsemble.servicesConfig.logger.defaultClientLogLevels (object) Sets the default logging state of each client in the Central Logger if no previous state is found.
            • Debugfinsemble.servicesConfig.logger.defaultClientLogLevels.Debug (boolean) Set to 'true' to see 'Debug' as a default client logging level.
            • Errorfinsemble.servicesConfig.logger.defaultClientLogLevels.Error (boolean true) Set to 'true' to see 'Error' as a default client logging level.
            • Infofinsemble.servicesConfig.logger.defaultClientLogLevels.Info (boolean) Set to 'true' to see 'Info' as a default client logging level.
            • LocalOnlyfinsemble.servicesConfig.logger.defaultClientLogLevels.LocalOnly (boolean) Set to 'true' to see 'LocalOnly' as a default client logging level.
            • Logfinsemble.servicesConfig.logger.defaultClientLogLevels.Log (boolean true) Set to 'true' to see 'Log' as a default client logging level.
            • Verbosefinsemble.servicesConfig.logger.defaultClientLogLevels.Verbose (boolean) Set to 'true' to see 'Verbose' as a default client logging level.
            • Warnfinsemble.servicesConfig.logger.defaultClientLogLevels.Warn (boolean true) Set 'true' to see 'Warn' as a default client logging level.
          • hotkeyShowCentralLoggerfinsemble.servicesConfig.logger.hotkeyShowCentralLogger (array ctrl,shift,L) Sets the hotkey for showing the Central Logger. Leave this config out to disable the hotkey..
          • spawnAsfinsemble.servicesConfig.logger.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
          • visiblefinsemble.servicesConfig.logger.visible (boolean) Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services..
        • notificationsfinsemble.servicesConfig.notifications (object) configs specific to the notifications service.
          • applyNotificationOverridesfinsemble.servicesConfig.notifications.applyNotificationOverrides (boolean) The applyNotificationOverrides enables Finsemble to display notifications triggered by a browser view..
          • defaultDismissButtonTextfinsemble.servicesConfig.notifications.defaultDismissButtonText (string "Dismiss") If the service needs to add dismiss actions to the button. The text will default to the value set here as a last resort. There is a hardcoded value if this not set..
          • defaultSnoozePeriodSecondsfinsemble.servicesConfig.notifications.defaultSnoozePeriodSeconds (number 300) The default snooze period for notifications.
          • disableDotOnToolbarIconfinsemble.servicesConfig.notifications.disableDotOnToolbarIcon (boolean) Disables the dot on the toolbar notifications icon when there are unread notifications..
          • informationalNotificationToastPeriodSecondsfinsemble.servicesConfig.notifications.informationalNotificationToastPeriodSeconds (number 45) The number of seconds a toast will show for informational notifications (Any notifications without actions).
          • maxNotificationRetentionPeriodSecondsfinsemble.servicesConfig.notifications.maxNotificationRetentionPeriodSeconds (number 604800) The maximum amount of time to retain notifications in seconds.
          • maxNotificationsToRetainfinsemble.servicesConfig.notifications.maxNotificationsToRetain (number 1000) The maximum number of notifications the service should store in memory.
          • newNotificationHaloPeriodSecondsfinsemble.servicesConfig.notifications.newNotificationHaloPeriodSeconds (number 180) The default period for new notifications halo.
          • notificationsCenterComponentTypefinsemble.servicesConfig.notifications.notificationsCenterComponentType (string "NotificationsCenter") The notifications center component type.
          • proxyToWebApiFilterfinsemble.servicesConfig.notifications.proxyToWebApiFilter (object,boolean) Broadcast any notifications that match this filter to the Notification Web API to appear in the OS..
              • exclude[]finsemble.servicesConfig.notifications.proxyToWebApiFilter.exclude[] (object) For any values on a notification not already set, these default values will be set on the Notification object. All fields in here should match those in the INotification interface.
              • include[]finsemble.servicesConfig.notifications.proxyToWebApiFilter.include[] (object) For any values on a notification not already set, these default values will be set on the Notification object. All fields in here should match those in the INotification interface.
          • showDotOnToolbarIconForMutedNotificationsfinsemble.servicesConfig.notifications.showDotOnToolbarIconForMutedNotifications (boolean) Shows the new notification dot on the toolbar for muted notifications (if disableDotOnToolbarIcon is false)..
          • toastTimeoutOnActionableNotificationsfinsemble.servicesConfig.notifications.toastTimeoutOnActionableNotifications (boolean true) If set to false, Actionable Notification Toasts will stay on screen until manually removed..
          • typesfinsemble.servicesConfig.notifications.types (object) 'types' provide a way of setting default values on notifications based on the INotification.type.
            • defaultfinsemble.servicesConfig.notifications.types.default 'default' is a reserved name. If there any notifications with notification.type that do not match any of the keys in the config. The values in default will be applied..
            • defaultfinsemble.servicesConfig.notifications.types.default (object) object Type. The values inside this object will only be applied to notifications with the property 'type' set to the key value..
              • defaultDismissButtonTextfinsemble.servicesConfig.notifications.types.default.defaultDismissButtonText (string "Dismiss") Will add a dismiss action to the Notification if one is not already set..
              • defaultsfinsemble.servicesConfig.notifications.types.default.defaults (object) For any values on a notification not already set, these default values will be set on the Notification object. All fields in here should match those in the INotification interface.
              • showDismissActionfinsemble.servicesConfig.notifications.types.default.showDismissAction (boolean) Add a dismiss action to the notification if one does not exists. Default set to false..
            • types[]finsemble.servicesConfig.notifications.types[] (object) object Type. The values inside this object will only be applied to notifications with the property 'type' set to the key value..
              • defaultDismissButtonTextfinsemble.servicesConfig.notifications.types[].defaultDismissButtonText (string "Dismiss") Will add a dismiss action to the Notification if one is not already set..
              • defaultsfinsemble.servicesConfig.notifications.types[].defaults (object) For any values on a notification not already set, these default values will be set on the Notification object. All fields in here should match those in the INotification interface.
              • showDismissActionfinsemble.servicesConfig.notifications.types[].showDismissAction (boolean) Add a dismiss action to the notification if one does not exists. Default set to false..
        • searchfinsemble.servicesConfig.search (object) Search service config options.
          • spawnAsfinsemble.servicesConfig.search.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
        • storagefinsemble.servicesConfig.storage (object) Storage Service config options.
          • activefinsemble.servicesConfig.storage.active (boolean true) Set this to `false` to disable the service..
          • affinityfinsemble.servicesConfig.storage.affinity (string) Only applicable for `spawnAs: "window"`. When set, the service window will be given process affinity based on the string passed in. This allows aggregation of services to a specific browser process..
          • dataStoreAdapters*finsemble.servicesConfig.storage.dataStoreAdapters (object) Storage adapters that the storage service will load up on application startup..
            • IndexedDBAdapterfinsemble.servicesConfig.storage.dataStoreAdapters.IndexedDBAdapter (string "$applicationRoot/adapters/indexedDBAdapter.js") indexedDB adapter .js file.
            • LocalStorageAdapterfinsemble.servicesConfig.storage.dataStoreAdapters.LocalStorageAdapter (string "$applicationRoot/adapters/localStorageAdapter.js") local storage adapter .js file.
          • defaultStorage*finsemble.servicesConfig.storage.defaultStorage (string "IndexedDBAdapter") The default storage model to use when saving and loading data..
          • spawnAsfinsemble.servicesConfig.storage.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
            • finsemble*finsemble.servicesConfig.storage.topicToDataStoreAdapters.finsemble (string "IndexedDBAdapter") Which storage adapter to use when persisting non-workspace-related information..
            • finsemble.notificationsfinsemble.servicesConfig.storage.topicToDataStoreAdapters.finsemble.notifications (string "IndexedDBAdapter") Sets the storage adapter for notification persistence.
            • finsemble.workspace*finsemble.servicesConfig.storage.topicToDataStoreAdapters.finsemble.workspace (string "IndexedDBAdapter") Which storage adapter to use when persisting workspace-related information..
            • finsemble.workspace.cache*finsemble.servicesConfig.storage.topicToDataStoreAdapters.finsemble.workspace.cache (string "IndexedDBAdapter") Which storage adapter to use when caching workspace-related information..
          • visiblefinsemble.servicesConfig.storage.visible (boolean) Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services..
        • windowfinsemble.servicesConfig.window (object) Window Service config options.
          • additionalWorkspaceFieldsfinsemble.servicesConfig.window.additionalWorkspaceFields (array) Additional fields for window data that are allowed to be stored in the Workspace.
          • ignoreFieldsForDirtyingWorkspacefinsemble.servicesConfig.window.ignoreFieldsForDirtyingWorkspace (array) Changes in these fields do not cause workspaces to be dirty.
        • workspacefinsemble.servicesConfig.workspace (object) Configurations related to the workspace service..
          • activefinsemble.servicesConfig.workspace.active (boolean true) Set this to `false` to disable the service..
          • affinityfinsemble.servicesConfig.workspace.affinity (string) Only applicable for `spawnAs: "window"`. When set, the service window will be given process affinity based on the string passed in. This allows aggregation of services to a specific browser process..
          • closeFailureNotificationMessagefinsemble.servicesConfig.workspace.closeFailureNotificationMessage (string) Override the default notification message that appears to the end user when closeWorkspaceTimeout is triggered. Set to "" to stop a message from being sent..
          • closeWorkspaceTimeoutfinsemble.servicesConfig.workspace.closeWorkspaceTimeout (number 30000) Number of miliseconds the workspace service should wait for all of the windows to close when switching to another workspace. Workspaces are locked until a close action completes or times out. If this timeout value is exceeded the user will be provided with a notification and an empty workspace will be loaded. Set to null for no timeout..
          • disableDirtyShutdownCheckfinsemble.servicesConfig.workspace.disableDirtyShutdownCheck (boolean) Disable the check for dirty shutdown when Workspace Service starts that causes the last active workspace to be used.
          • emptyWorkspaceNamefinsemble.servicesConfig.workspace.emptyWorkspaceName (string "Empty Workspace") Allows you to set the name of the empty workspace created if the user has no workspaces and no default workspace is configured, or a workspace switch fails..
          • loadFailureNotificationMessagefinsemble.servicesConfig.workspace.loadFailureNotificationMessage (string) Override the default message that appears to users in a pop-up notification when a workspace fails to load..
          • persistURLfinsemble.servicesConfig.workspace.persistURL A global config for component URL persistence. When true, components automatically save their last URL instead of using the one in the config. The component config will overwrite the global config..
          • searchfinsemble.servicesConfig.workspace.search (object) Allows you to control the workspace search built into finsemble.
            • enabledfinsemble.servicesConfig.workspace.search.enabled (boolean true) Set to false to disable workspace search..
            • optionsfinsemble.servicesConfig.workspace.search.options (object) An object containing fuse.js configuration options..
          • spawnAsfinsemble.servicesConfig.workspace.spawnAs (string "window") Valid values are:
            "window" - Spawns the service as a child window of the Service Manager.
            "process" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
            "script" - Spawns the service as a script running in the Service Manager window. This minimizes memory footprint. This setting can only be used with the following services: assimilation, storage, hotkeys, linker, search and workspace.
            .
            		"window"
            		"process"
            		"script"
            
          • visiblefinsemble.servicesConfig.workspace.visible (boolean) Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services..
      • shutdownTimeoutfinsemble.shutdownTimeout (number 30000) Amount of time (in milliseconds) to give services to shutdown before forcibly quitting the application. Components get 2 seconds less than services..
        • minimum: 10000
      • stackedWindowfinsemble.stackedWindow (object) Configuration for tabbed and tiled windows.
        • addReadyTimeoutfinsemble.stackedWindow.addReadyTimeout (number 6500) Sets the time in miliseconds for a tabbed/tiled windows to become ready..
      • systemTrayComponent*finsemble.systemTrayComponent (string) .
      • systemTrayIconfinsemble.systemTrayIcon (string) Sets the location of the system tray icon (lower right corner of the terminal).
      • trustedPreloadsfinsemble.trustedPreloads (array) An array of URLs for preload files that should be considered 'trusted' and can therefore be preloaded into any component. All URLs must be fully qualified and point to a JavaScript file..
      • waitForUpdatefinsemble.waitForUpdate (boolean) When set to true, Finsemble will wait for updates, if available, to download and install, before continuing to start up the application..
      • Window Manager*finsemble.Window Manager (object) Global options for the windowTitleBar. See "Window Manager" under appd.manifest for options....
      • workspaces*finsemble.workspaces (array) An array of workspaces to be presented to the user the first time they start Finsemble. By default, the first workspace listed in the array will be the one first presented to an end user the first time they load their SmartDesktop..
        • workspaces[]finsemble.workspaces[] (object) Template for config specified workspace.
          • defaultfinsemble.workspaces[].default (boolean) If set to true then this workspace will be the default that is loaded the first time the app is run.
          • name*finsemble.workspaces[].name (string) Name of the workspace.
          • permanentfinsemble.workspaces[].permanent (boolean) If set to true then this workspace cannot be deleted or renamed by end users.
        • Blank Templatefinsemble.workspaceTemplates.Blank Template (object) Template for config specified workspace.
          • defaultfinsemble.workspaceTemplates.Blank Template.default (boolean) If set to true then this workspace will be the default that is loaded the first time the app is run.
          • name*finsemble.workspaceTemplates.Blank Template.name (string) Name of the workspace.
          • permanentfinsemble.workspaceTemplates.Blank Template.permanent (boolean) If set to true then this workspace cannot be deleted or renamed by end users.
    • finsemble-electron-adapterfinsemble-electron-adapter (object) Finsemble's Electron Adapter config (this is dynamically added to manifest).
      • allowedManifestDomainsfinsemble-electron-adapter.allowedManifestDomains (array) Allow the ability to specify manifest urls at run time by setting the allowed domains where the hostname matches one of the entries. Every subdomain needs an entry. Wildcards are not allowed..
      • disableZoomfinsemble-electron-adapter.disableZoom (boolean) Disable the internal electron zoom action for "Ctrl +" and "Ctrl -"..
      • downloadUpdatesViaElectronfinsemble-electron-adapter.downloadUpdatesViaElectron (boolean) Downloads the Electron/Squirrel autoUpdate packages to the local machine before checking for, and performing updates. The files are downloaded using the same proxy and headers Electron uses..
      • loggerfinsemble-electron-adapter.logger (object) The logger for logging to a file. The log file location is %AppData%/Roaming/Electron/logs.
        • logLevelfinsemble-electron-adapter.logger.logLevel (string "debug") The lowest level at which the logger will push messages to a file. Available log levels from highest to lowest are: 'error', 'warn', 'log','info', 'debug', and 'verbose'. Note: This level is set after the manifest is read by the Electron Adapter. As a result, you may see some debug messages prior to the log level being set..
          		"error"
          		"warn"
          		"log"
          		"info"
          		"debug"
          		"verbose"
          
        • transportsfinsemble-electron-adapter.logger.transports (object) Transport level configuration..
          • consolefinsemble-electron-adapter.logger.transports.console (object) The console transport controls where logs are output..
            • enablefinsemble-electron-adapter.logger.transports.console.enable (boolean) When set to true, logs will be output to a terminal. When set to false, logs are output to file. See `logger` above..
      • manifestsfinsemble-electron-adapter.manifests (object) Allow the ability to specify manifest environments at run time by adding entries for each environment.
        {
            "manifests": {
                "dev": "http://localhost:3375/configs/application/manifest-local-dev.json",
                "qa": "http://localhost:3375/configs/application/manifest-local-qa.json"
            }
        }
        
      • useDOMBasedMovementfinsemble-electron-adapter.useDOMBasedMovement (boolean true) Set to false to use native window movement with Electron.
    • removePathInSpawnExternalAppsmanifest.removePathInSpawnExternalApps (boolean) Set to false to allow spawning by path.
    • splashScreenImagemanifest.splashScreenImage (string "http://localhost:3375/assets/img/FinsembleSplash.svg") URL to use for the splash screen when starting Finsemble. The URL can point to either an HTML page or SVG file. Both HTML and SVG splash screen's support transparency. Use an HTML splash screen if you want to use a .PNG image with transparent background or desire more flexibility in styling or animating your spash screen..
    • splashScreenTimeoutmanifest.splashScreenTimeout (number) Amount of time (in milliseconds) to show the splash screen. The default value 0 causes the splash screen to hide in the `user` stage. This is after the UI Components have loaded and the same time that Workspace components start loading. If you set it to a negative number, you must call `FSBL.System.hideSplashScreen()` in a component when you want to hide the splash screen..
    • startup_app*manifest.startup_app (object) Manifest property for the initial startup app, which reference Finsemble's System Manager..
      {
          "startup_app": {
              "name": "ChartIQ Local",
              "url": "http://localhost:3375/finsemble/services/systemManager/systemManager.html",
              "uuid": "Finsemble",
              "requireHandshake": true,
              "applicationIcon": "http://localhost:3375/assets/img/Finsemble_Taskbar_Icon.png"
          }
      }
      
      • cornerRoundingmanifest.startup_app.cornerRounding Specifies corner rounding for a window.
      • name*manifest.startup_app.name (string) The name and uuid must be alphanumeric characters and spaces. Don't use any other characters.
      • uuid*manifest.startup_app.uuid (string) The name and uuid must be alphanumeric characters and spaces. Don't use any other characters.

Further reading

For a discussion about dynamic configuration, as opposed to the static configuration described here, check out the Dynamic Configuration tutorial.