WarningLegacy version 5 documentation. View current documentation.

Config Reference

The configuration tree is built from many JSON files which use "$importConfig" as a way to include other JSON files. These JSON files will be found in your seed project's configs directory. At runtime, Finsemble assembles this full config tree, which you can access programmatically through the ConfigClient API.

Manifest Config - The top level config within the manifest file (i.e. not under "finsemble").

  • allowEvalInPreload false - Set to `true` to delete `unsafe-eval` and `script-src directives` from the content security policy.
  • Content-Security-Policy ["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.
  • finsemble - The root finsemble level config. This will be in the manifest file or pulled from imported config.
    • applicationRoot "https://localhost:3375" - Should point to the root of your application. Finsemble will use this to build URLs internally.
    • authentication Configurations related to authentication, including authentication profiles
      • [password profile name] Declare an authentication profile that uses simple password collection or any other type of custom authentication process.
        • adapter "PASSWORD" - Specify that this profile will use the Password adapter.
        • component "defaultAuthorization" - Specify which component to display in order to collect the user's credentials.
      • [OAuth profile name] Declare an authentication profile for an OAuth2 connection to a specific identity provider. This can be used to authenticate against OpenID providers.
        • adapter "OAUTH2" - Specify that this profile will use the OAuth2 adapter.
        • scope "openid" - The "scope" as specified by your IP.
        • client_id "XYZABC" - The client ID provided by your IP.
        • authorization_endpoint "https:/openid.c2id.com/login" - The authorization endpoint for your IP.
        • backchannel_endpoint "https://yoursite/authenticate" - Your backchannel endpoint URL.
        • redirect_url "$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.
      • startup When an authentication profile exists with the name "startup" then Finsemble stop booting until the user is authenticated (using any of the available adapter types).
    • components Configurations for components.
      • [component name] The name of the component you are configuring.
        • window Configurations that manage placement of the component on the screen.
          • Any valid parameter from `LauncherClient.spawn()` can be put in this section.
          • affinity 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 components together thoughtfully by setting them to the same value. See the Process Management tutorial for more information.
          • options
            • alwaysOnTop false - Boolean. When set to true, the window will always be on top (like a sticky note) of any window with alwaysOnTop set to false.
            • autoShow false - Boolean. 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.
            • isEvergreen false - 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 component accordingly. Or fetch the new component state in the Workspace 'load-complete' event in the case of a native component.
            • Content-Security-Policy - Custom content security policy string to override server's content security policy.
            • permissions - Change an application component'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.
            • resizable true - Boolean. When set to false, the window's edges cannot be resized by the end user and won't participate in Windows aero snap.
            • securityPolicy - Change an application component'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.
            • windowTitleWhiteList ".*(Inbox|Outbox|Today).*" - Regular expression string containing match criteria for the window titles. The named window title will be controlled by Assimilation.
            • windowTitleBlackList "Opening.\*" - Regular expression String containing match criteria for the window titles to be not assimilated. This named window will be ignored by Assimilation.
            • windowSpawnTimeout 30 - Number of seconds before a native application component spawn times out.
        • component Configurations specific to this component. Put any custom configurations for your components in this section.
          • displayName Changes the component's name in the app launcher and its label in the pinned item section.
          • preload false - 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.
          • spawnOnStartup false - When true, Finsemble will automatically launch this component when the application starts.
          • spawnOnHotkey ["ctrl","alt","a"] - The component will be launched when this global hotkey combination is activated by the end user.
          • singleton false - If set to `true`, the component will behave as a singleton; only a single instance can be launched. If the component has already been launched, attempting to launch it will bring it to front.
          • showDevConsoleOnVisiblefalse - If set to `true`, a Chrome developer console will spawn along with the component to assist with debugging.
        • foreign - This section contains configurations that other components and services read when they interact with this component.
          • services - Configurations for services that wish to interact with this component.
            • dockingService - (Deprecated as of version 3.6) Configurations related to the Window Service.
            • windowService - Configurations related to the Window Service.
              • isArrangeable true - (Deprecated as of version 3.6) If false then the Window Service will not interfere with the location and size of this component.
              • manageWindowMovement 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.

              • **Note:** If any of the following parameters are omitted, their values will default to `true` unless `manageWindowMovement`, `FSBLHeader`, and `dockable` are all `false`.

              • allowAutoArrange 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.
              • ignoreSnappingRequests false - (Deprecated as of version 3.6) If `true`, this window cannot be snapped. If `false`, the window can snap as usual.
              • allowSnapping true - If `true`, this window can be snapped. If `false`, this window cannot benefit from snapping.
              • ignoreTilingAndTabbingRequests false - (Deprecated as of version 3.6) If `true`, the window cannot tab or tile. If `false`, tiling and tabbing will work as usual.
              • allowTabbing false - 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.
              • allowTiling false - 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.
              • canGroup true - (Deprecated as of version 3.6) If `true`, the window can form groups with other windows. If `false`, this window cannot be placed into a group.
              • allowGrouping true - If `true`, the window can form groups with other windows. If `false`, this window cannot be placed into a group.
              • canMinimize true - (Deprecated as of version 3.6) If `true`, the window can be minimized to the taskbar. If `false`, the window cannot be minimized.
              • allowMinimize true - If `true`, the window can be minimized to the taskbar. If `false`, the window cannot be minimized.
            • workspace - Configurations related to the workspace service.
              • persistURL false - When true, the component will automatically persist it's URL through restarts and workspace reloads.
              • persistPath false - When true, the component will automatically persist its path through restarts and workspace reloads, even when the path changes in the config. Path is used for "native" or "assimilation" windows.
          • components - Configurations specific to other components that wish to interact with this component.
            • App Launcher - App launcher is a drop down menu that launches other components.
              • launchableByUser false - If true, then the App Launcher will include this component in its menu.
            • Toolbar - Configurations related to the global toolbar (at the top of the monitor).
              • iconURL "$applicationRoot/assets/img/Finsemble_Taskbar_Icon.png" - The icon to display when this component is pinned in the toolbar.
              • iconClass "ff-ungrid" - A CSS class character to display when this component is pinned in the toolbar. See "fin-font" or use font-awesome or similar.
            • Window Manager Configurations specific to the component's window title bar.
              • alwaysOnTopIcon false - When set to `true`, the window can be pinned so that it is always on top (like a sticky note).
              • componentCloseTimeout 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.
              • floatingTitlebarComponent FloatingTitlebar - 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.
              • FSBLHeader 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
                • hideMinimize false -When set to true, the Minimize icon will be hidden from the component's titlebar.
                • hideMaximize false -When set to true, the Maximize icon will be hidden from the component's titlebar.
                • hideClose false -When set to true, the Close icon will be hidden from the component's titlebar.
              • hackScrollbar true - 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}
              • persistWindowState false - If the component is part of the workspace, this tells Finsemble whether it should persist the position of the window when it moves.
              • showLinker false - Set to true to display the linker drop down in the window header.
              • title string - Set the title for your component. You can also do this programmatically through FSBL.Clients.WindowClient.setWindowTitle().
              • zoomDefault - Default zoom level to set for the component when using the zoom.js sample preload.
      • childWindowOptions Configuration for all child windows created via window.open for this component. This object is similar to the component's config. The properties below are all that have been tested. See the reference above for property definitions. Child windows may not join workspaces, group, tab, or tile.
        • foreign
          • components
            • Window Manager
              • FSBLHeader true Whether the child window should have the finsemble title bar injected into its DOM.
          • services
            • windowService
              • allowSnapping true Whether the child window should be allowed to snap to other windows.
              • manageWindowMovement true Whether the child windows movement should be managed by finsemble.
    • cssOverridePath "$applicationRoot/assets/css/finsemble-overrides.css" - (Deprecated) For white labeling.
    • debugServiceDelay 0 - (Deprecated) The amount of delay for the service to come online. On Windows 7, the debugger sometimes takes several seconds to appear. You can set this value if you need to debug a service on start-up. This is rarely used.
    • failedComponentCloseNotification false - Whether to throw a notification when a component fails to close within the time limit specified in `finsemble["Window Manager"].componentCloseTimeout`
    • feaURLWhitelist - A regex pattern that represents a URL whitelist. If set, components will **only** be able to navigate to URLs that match the regex pattern.
    • initialWorkspace [] - 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.
    • isAuthEnabled true - (Deprecated) Turns on authentication. For current methods to enable authentication, click here.
    • logger - Initial logger configuration that goes in the manifest
      • defaultClientLogLevels - Sets the initial log levels captured by the Central Logger. This should be placed in the manifest to configure logging levels at startup. These levels only take effect during the initial launch. The levels set in the Central Logger take precedence over this configuration.
        • Error - value indicating whether error level logs should be captured
        • Warn - value indicating whether warn level logs should be captured
        • Info - value indicating whether info level logs should be captured
        • Log - value indicating whether log level logs should be captured
        • Debug - value indicating whether debug level logs should be captured
        • Verbose - value indicating whether verbose level logs should be captured
    • moduleRoot "https://localhost:3375/finsemble" - Where you are serving the Finsemble core library from. This is important for resolving URLs internally.
    • preferences
      • workspaceService
        • promptUserOnDirtyWorkspace 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.
    • router - Configurations for Router's communication mechanism.
      • crossDomainTransport IPCBus - The interface for communicating between cross-domain components - When set to `IPCBus`, 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'.
      • transportSettings - The specific setting for certain transports.
        • FinsembleTransport - Configuration for the FinsembleTransport (IAC) if choosen as the communication mechanism for cross-domain components. IAC uses WebSocket as its communication protocol.
          • serverAddress ws://127.0.0.1:3376 - URI for the WebSocket server. To use a secure connection, use 'wss://localhost.chartiq.com:3376'
      • promptBeforeAllowingExternalApps false - If set to true, will prompt the user for permission before allowing applications that were not launched by Finsemble can connect with Finsemble.
    • scheduledRestart false - Set Finsemble to automatically restart.
      • These values can be overridden 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.
    • services - Configurations that are available when building services
      • [service name] - The name of the service. i.e., "launcherService", "storageService", etc.
        • visible false - Set to true in order to get a window for the service. Useful for debugging.
        • showDevConsoleOnVisible 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.
        • active true - Run the service
        • name "workspaceService" - The name of the service
        • html "$servicesRoot/workspace/workspace.html" - The location of the service code
    • servicesConfig Configurations that override the defaults for Finsemble's built-in services.
      • All Services Configs related to all services -- any of the below service's config can have these properties.
        • spawnAs "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.
        • affinity - 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.
        • visible false - Set this to `true` in order to reveal the hidden service window. This can be useful for debugging services.
        • active true - Set this to `false` to disable the service.
      • distributedStore
        • initialStores Foundations for any stores which should be seeded on startup
          • name The name of the store to seed
          • preferPreviousState 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.
          • foundation The data to seed into the store
      • docking Configs specific to the docking service
          • alwaysOnTopLevel null - The always on top level when setting components `alwaysOnTop` to true. See the Electron alwaysOnTop documentation for valid values.
          • enabled true - Allow windows to dock to each other or to the toolbar.
          • ALLOW_GROUPS_TO_SNAP true - Allows groups to snap to one another.
          • BUFFER_SIZE 20 - The zone around a window that will cause it to snap to other windows. This value is in pixels.
          • claimSpace
            • enabled true - If `true`, docked windows will behave like the Windows Taskbar and claimed space on the operating system
            • alwaysOnTop false - If `true`, docked windows that claim space will be always on top when docked.
          • enableWindowsAeroSnap false - 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 true - If set to `true`, a rectangular group will maintain its rectangularity when windows leave the group.
          • GROUP_MODE
            • enabled true - Whether to allow windows to group to one another.
            • behavior "explicit" - "implicit" grouping auto-groups windows that snap to one another. "explicit" group requires an additional API call (made by our windowHeader) to group windows.
          • groupTileBuffer 30 - Defines the size of the buffer in pixels wherein a dragged window will trigger a tile operation.
          • headerHeight 32 - This defines the height of the window title bar.
          • headerWidth 32 - This defines the width of the window title bar.
          • MINIMUM_HEIGHT 28 - The smallest height to allow a window to shrink on resize.
          • MINIMUM_WIDTH 98 - The smallest width to allow a window to shrink on resize.
          • RESIZE_EVENT_THROTTLE_PERIOD 0 - 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.
          • requireRectangularityForGroupResize 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.
          • SNAPPING_OPACITY 0.8 - The opacity windows change to when other windows encroach on their buffer zone.
          • tabbing
            • enabled true - Allows windows to tab onto each other and enables Tabbing in all components by default (which can be overridden in a components own config). Also necessary to enabling Tiling operations, which also require the tab header to be dragged.
          • tiling
            • enabled true - Allows windows to tile onto each other and enables Tiling in all components by default (which can be overridden in a components own config). Requires Tabbing to also be enabled.
          • undockDisbandsEntireGroup false - 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.
          • allowAppropriatedWindowsToGroup false - Allows windows spawned outside of Finsemble, then connected, to use Docking's snapping and grouping features
      • launcher
        • concurrentSpawnLimit Default is machine's number of processor cores divided by 2 - 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.
        • staggerPixels 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 "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.
        • search {} - Allows you to control the component search built into finsemble
          • enabled true
          • - Set to false to disable component search.
          • options {}
          • - An object containing fuse.js configuration options.
        • defaultPreloads {} - This is used to specify preloads that go into many components.
          • allComponents []
          • - An array of URLs that will be preloaded into all components.
          • launchableComponents []
          • - An array of URLs that will be preloaded into components that are launchable by the user.
      • logger
        • hotkeyShowCentralLogger ["ctrl","shift", "L"] - Sets the hotkey for showing the Central Logger. Leave this config out to disable the hotkey.
      • notifications
        • disableDotOnToolbarIcon false - Disables the dot on the toolbar notifications icon when there are unread notifications.
        • showDotOnToolbarIconForMutedNotifications false - Shows the new notification dot on the toolbar for muted notifications (if disableDotOnToolbarIcon is false)
        • notificationsCenterComponentType NotificationsCenter - Sets the component type for the notifications center.
        • defaultSnoozePeriodSeconds 180 - Sets the default period for which a notification will be snoozed.
        • maxNotificationsToRetain 1000 - The maximum number of notifications the service should store in memory.
        • maxNotificationRetentionPeriodSeconds 604800 - The maximum amount of time to retain notifications.
        • informationalNotificationToastPeriodSeconds 45 - The number of seconds a toast will show for informational notifications (notifications without actions).
        • proxyToWebApiFilter - Broadcast any notifications that match this filter to the Notification Web API to appear in the OS.
        • applyNotificationOverrides false - Enables Finsemble to display Finsemble Notifications triggered by a browser view.
        • defaultDismissButtonText Dismiss - The default button text to be displayed for the DISMISS.
        • types Provides a way of setting default values on notifications based on the INotification.type.
          • defaultDismissButtonText Dismiss - Will add a dismiss action to the Notification if one is not already set if one is not already set.
          • showDismissAction false - Add a dismiss action to the notification if one does not exist. Default set to false. - Please Note: From version 5.3 of notifications, the DISMISS Action is equivalent to marking a notification as read. Not to be confused with dismissing a toast.
          • defaults - 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.
      • storage Configuration for Storage Adapters
        • defaultStorage "IndexedDBAdapter" - The default storage model to use when saving and loading data.
        • dataStoreAdapters - A key-value map of storage adapters that the storage service will load up on application startup.
          • [adapterName] "[adapterPath]" - The keys in this object represent storage adapter names. The values are the paths to the adapters.
        • topicToDataStoreAdapters - This maps storage "topics" to adapters.
          • finsemble "IndexedDBAdapter" - Which storage adapter to use when persisting non-workspace-related information.
          • finsemble.workspace"IndexedDBAdapter" - Which storage adapter to use when persisting workspace information.
          • finsemble.workspace.cache "IndexedDBAdapter" - Which storage adapter to use when persisting data related to the activeWorkspace.
      • workspace
        • persistURL false - 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.
        • closeWorkspaceTimeout 30000 - Number of milliseconds 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.
        • closeFailureNotificationMessage - Override the default notification message that appears to the end user when closeWorkspaceTimeout is triggered. Set to "" to stop a message from being sent.
        • emptyWorkspaceName "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.
        • loadFailureNotificationMessage string - Override the default message that appears to users in a pop-up notification when a workspace fails to load.
        • search {} - Allows you to control the workspace search built into finsemble
          • enabled true
          • - Set to false to disable workspace search.
          • options {}
          • - An object containing fuse.js configuration options.
      • assimilation - Assimilation of native windows. This only works on Windows operating systems.
        • enabled true - Set to true to turn on Assimilation
        • port 8392 - Assimilation communicates with Finsemble's HTML services via a WebSocket. Set the port here.
        • throttle 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.
        • onlySpawned 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.
        • focusDelay 30 - Sets the delay (in milliseconds) 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.
        • eventIgnore 50 - Sets the threshold (in milliseconds) 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.
        • hideTitleBars false - Set to true to hide all Finsemble title bars for native applications.
      • linker - Configs related to the Linker service.
        • channels [{ "name": "group1", "color": "#8781BD", "border": "#797381" }] - You can configure the name and colors of channel icons of the Linker. A maximum of 20 channels can be configured. Each individual channel should at least have the name and color properties.
    • shutdownTimeout 10000 - Amount of time (in milliseconds) to give services to shutdown before forcibly quitting the application. Components get 2 seconds less than services.
    • stackedWindow Configuration tabbed and tiled windows
      • addReadyTimeout 6500 - Sets the time in milliseconds for a tabbed/tiled windows to become ready.
    • systemTrayIcon $moduleRoot/assets/img/Finsemble_Taskbar_Icon.png - Sets the location of the system tray icon (lower right corner of the terminal)
    • trustedPreloads 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.
    • Window Manager - Global settings for the window title bar
      • alwaysOnTopIcon false - 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.
      • componentCloseTimeout 5000 - Time (in ms) to wait for a component to close successfully. If the component hasn't closed within this limit, it will be force closed. You can override this setting for specific components in their config.
      • deliveryMechanism injection - Which delivery method to use for scripts (e.g., FSBL, title bar, etc.) - Valid values are:
        "injection" - Injects the code into the window.
        "preload" - Spawns the service in its own browser process (a.k.a. application). This gives the service dedicated CPU to maximize concurrency.
      • zoom - Configuration for the zoom.js preload
        • timeout 3000 - The number of milliseconds the zoom pop up should be displayed before it is hidden.
        • step 0.1 - How much the zoom should increase or decrease when zooming in or out.
        • max 5.0 - The maximum allowed zoom level.
        • min 0.2 - The minimum allowed zoom level.
    • workspaces [] - 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.
  • finsemble-electron-adapter - The config for finsemble-electron-adapter.
    • manifests - An object specifying allowed manifests. See the "Specifying Manifests at Run Time" section of the Deploying Your SmartDesktop Tutorial.
    • allowedManifestDomains - A list of allowed hostnames from which manifests can be used. See the "Specifying Manifests at Run Time" section of the Deploying Your SmartDesktop Tutorial
    • useDOMBasedMovement - true - Set to false to use native window movement with Electron.
    • logger - The logger for logging to a file. The log file location is %AppData%\Roaming\Electron\logs
      • logLevel 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.
      • transports {} - Transport level configuration.
        • console {} - The console transport controls where logs are output.
          • enable false - Boolean. When set to true, logs will be output to a terminal. When set to false, logs are output to file. See `logger` above.
    • disableZoom false - Disable the internal electron zoom action for "Ctrl +" and "Ctrl -"
  • splashScreenImage http://localhost:3375/assets/img/FinsembleSplash.svg - URL to use for splash screen image when starting Finsemble.
  • splashScreenTimeout 0 - 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.
  • waitForUpdate false - Boolean. When set to true, Finsemble will wait for updates, if available, to download and install, before continuing to start up the application.
  • disableWMICalls false - Boolean. When set to true, Finsemble will not make calls that require Windows Management Instrumentation Command-line (WMIC).

Other Config - Two independent configuration files support the installer and the local web server for hosting Finsemble files.

  • The installer config is under configs/other/installer.json.
  • installer - Configurations that define Finsemble's installer
    • icon "./assets/installer/icons/win/icon.ico" - Path to an icon to be used for your executable. This is relative to the root of the finsemble-seed.
    • outputDirectory "./pkg-production" - Path where you would like the installer executable to be placed. This is relative to the root of the finsemble-seed.
    • name "xyz-prod" - Name of your SmartDesktop. This will be used for the EXE and Windows metadata. Allowed characters for installer names include: alphanumerics, spaces, dashes, underscores, and periods. Other characters are not allowed.
    • companyName "Cosaic" - Name of your company. This will be used for the name of the Windows start menu folder that contains the installed Finsemble app.
    • authors "Cosaic" - Name of the author of the application for the EXE and Windows metadata.
    • companyName "Cosaic" - Name of your company. This will be used for the name of the Windows start menu folder that contains the installed Finsemble app.
    • description "xyz-prod description" - Description for your application. Used in the file description field of the exe properties.
    • certificateFile "null" - The path to an Authenticode Code Signing Certificate.
    • certificatePassword "null" - The password to decrypt the certificate given in certificateFile.
    • signWithParams "null" - Params to pass to signtool. Specifying a time server is recommended (e.g. '/tr http://timestamp.digicert.com'.
  • The web server config is under configs/other/server=environment-startup.json.
  • server-environment-startup - Configurations available during runtime startup
    • serverPort 3375 - The port through which Finsemble is provided when run from the seed project.
    • serverConfig "http://localhost:3375/configs/application/manifest-local.json" - The address of your manifest file.
    • electronDebug true - Set to `true` to enable debugging of the main Electron window process.
    • breakpointOnStart false - Set to `true` in order for Finsemble to immediately stop on a breakpoint when it is started. This can be very useful for debugging startup issues. The application will not launch until you've attached a debug console via chrome://inspect.
    • chromiumFlags - Set command line flags (or "switches") for Chromium in the Finsemble Electron Adapter container.
      • remote-debugging-port 8080 - Enables remote debugging over HTTP on the specified port. Useful when debugging the installer.


Further reading

Read the API documentation about the Config Client for additional information.

See LauncherClient.spawn() for more information on configuring components.

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