Skip to main content

Changelog

Links to previous versions of the documentation (3.7 and later) can be found under each version's header. For info about upgrading, see Upgrading Finsemble

8.16.2

Finsemble currently uses Electron version 37.2.0. (Chromium - 138.0.7204.97)

Release 07-03-25

Enhancements

  • Added more logging to detect root cause of "Window Taking Long Time to Load" warnings. (FIN-2246)
  • Added safety checks and logging to gets from storage in the workspace service. (FIN-2248)
  • Added more logging and port-in-use check to assimilation (FIN-2234)

8.16.1

Release 06-30-25

Bug fixes

  • Fixed a bug where RouterClient.RemoveListener threw exception in Finsemble.Core. (FIN-2247)

8.16.0

Finsemble currently uses Electron version 37.1.0. (Chromium - 138.0.7204.35)

Release 06-27-25

Enhancements

  • Increased connectivity time for assimilation. (FIN-2234)
  • Capture and log any connection error codes. (FIN-2234)
  • Increased default socket timeout and keep alive time to 10s and 1 minute respectively. (FIN-2235)

Bug fixes

  • Fixed a bug where dynamically added apps were not in the "Favorites" folder after Finsemble restart. (FIN-2236)
  • Fixed a bug where AuthenticationClient.GetCurrentCredentials() stuck sometimes in .net client. (FIN-2221)
  • Fixed a bug where native applications were not closed on Finsemble shutdown. (PR8646)
  • Fixed a bug where maximized web components didn't restore window state on workspace reloading. (PR8647)

8.15.2

Finsemble currently uses Electron version 35.5.1. (Chromium - 134.0.6998.205)

Release 06-10-25

Enhancements

  • Added the "external" windowType, which launches a native application without trying to assimilate it. (FIN-2214)
  • Added the ability to specify the user-agent for child windows. (FIN-2226)
  • Added the ability to automatically close windows that have crashed or become unresponsive. (FIN-2227)
  • Added AssimilationService shutdown logic. (PR8562)
  • Added the downloadPath property to the download-update event information. (FIN-2229)

Bug fixes

  • Fixed an issue where the appId for custom apps added by the Advanced App Launcher wasn't the app name. (PR8556)
  • Fixed a bug where the "keep-alive handshake failed" error appeared multiple times for single disconnection. (FIN-2200)
  • Prevent orphaned FDC3 instances from existing after reload/refresh. Orphans can cause FDC3 resolver to pop up unnecessarily (FIN-2225)

8.15.1

Finsemble currently uses Electron version 35.4.0. (Chromium - 134.0.6998.205)

Release 05-22-25

Enhancements

  • Enhanced shutdown logic of Assimilation to help with resource cleaning. (PR8534)
  • Added additional logging in JS and .Net around socket communication area. (PR8525)
  • Added the ability for Assimilation to use ENV variables in the log path. (FIN-2210)
  • Added retry of deleting app asset folder when downloading new app asset and log error if file cannot be deleted. (FIN-2203)

Bug fixes

  • Fixed a bug where a singleton application was not highlighted in the tab collection, when opened at second time. (FIN-2183)
  • Fixed a bug where findIntent() returned an entry for singletons that were already running (FIN-2192)
  • Fixed findIntentsByContext() return values, to filter out pending apps and running singletons (FIN-2192)
  • Fixed a stack overflow bug on Finsemble restart. (FIN-2200)
  • Fixed an infinite loop when adding a window to a tab collection(FIN-2209)

8.15.0

Finsemble currently uses Electron version 35.2.2. (Chromium - 134.0.6998.205)

Release 05-02-25

Enhancements

  • Added the name of the saved workspace to the WorkspaceClient "save-complete" event. (FIN-2162)
  • Added more logging in Assimilation. (FIN-2165)
  • Added retry logic to preload download and writing. (FIN-2164)

Bug fixes

  • Fixed a bug where a singleton application was not highlighted in the tab collection, when opened at second time. (FIN-2183)

Documentation

  • Fixed the description for NotificationClient.unmute. (PR8444)

8.14.7

Release 04-02-25

Bug fixes

  • Fixed an issue with autoAssociate, joinMultipleChannels set to false, and redirecting apps. (PR8413)

8.14.6

Release 03-21-25

Finsemble currently uses Electron version 33.4.6. (Chromium - 130.0.6723.191)

Enhancements

  • Added ability to not persist arguments for native applications. (FIN-1516)

Bug fixes

  • Fixed a bug where fdc3.findIntent() could return the titlebar instanceId in the appIdentifier. (FIN-2169)

8.14.5

Release 03-14-25

Finsemble currently uses Electron version 33.4.5. (Chromium - 130.0.6723.191)

Enhancements

  • Finsemble JAR is compiled to the 1.8 language level

Bug fixes

  • Fixed a bug where the intent resolver would be shown when calling raiseIntent for a singleton twice. (FIN-2110)

8.14.4

Release 03-06-25

Finsemble currently uses Electron version 33.4.2. (Chromium - 130.0.6723.191)

Enhancements

  • Added more assimilation logging, specifically to openAssetApp. (FIN-2115)
  • Added the ability to set the visibility of a window removed from a tab collection. (FIN-2147)

Bug fixes

  • Fixed a bug where Central Logger Config page was unresponsive for large config. (FIN-2149)
  • Fixed a bug where a hidden window would appear after a workspace reload. (FIN-2146)
  • Fixed a bug where application in tab collection was closed before the close-requested event. (FIN-2153)

8.14.3

Release 02-17-25

Finsemble currently uses Electron version 33.4.1. (Chromium - 130.0.6723.191)

Enhancements

  • Update version in Assimilation file to match release version (PR8280)
  • Added more logging in assimilation. (FIN-2115)

Bug fixes

  • Fixed a bug where the native client would throw a NullReferenceException while reconnecting. (FIN-2086)
  • Fixed a bug where rapid fdc3.raiseIntent calls that resolve to a singleton app returning the NoAppsFound error. (FIN-2110)
  • Fixed a bug where the window size would increase when tabbing onto a maximized window. (FIN-2120)

8.14.2

Release 01-14-25

Finsemble currently uses Electron version 33.3.1. (Chromium - 130.0.6723.170)

Enhancements

  • Added catch and log of exceptions in assimilation for socket message handlers and for each thread started. (FIN-2085)
  • Removed Electron warning which appears in some cases on reconnect. (FIN-2102)

Bug fixes

  • Fixed a bug where multiple notifications with same id would be shown. (FIN-2091)
  • Fixed a bug where undefined bounds were applied to Web window on setBounds call. (FIN-2090)

8.14.1

Release 12-12-24

Bug fixes

  • Fixed a bug where non-resizable web apps would move when an attempt to maximize the window occurred. (FIN-2069)
  • Fixed a bug in Java whereby some FDC3 operations would fail because of improper registration. (FIN-2077)
  • Fixed a bug where the native client would throw a NullReferenceException while reconnecting. (FIN-2086)
  • Fixed an issue where bounds would not be saved if the app was windowless. (FIN-1983)

8.14.0

Release 12-06-24

Finsemble currently uses Electron version 33.3.0. (Chromium - 130.0.6723.152)

Security

  • Removed unused dependencies from Finsemble DLLs and examples. (PR8141)
  • Updated dependency versions for Finsemble DLLs and examples. (PR8141)

Bug fixes

  • Fixed a bug involving evergreen singleton native applications. (FIN-1983)
  • Fixed an issue with long workspace names pushing the buttons off of the toolbar. (PR8159)
  • Fixed an issue where custom tab titles could be an empty string. (PR8159)
  • Added "mailto" to the default list of allowed protocols for openUrlWithBrowser. (FIN-2065)

Dependency Updates

  • Advanced @types/react to 18.3.12

8.13.2

Release 11-20-24

Finsemble currently uses Electron version 31.7.5. (Chromium - 126.0.6478.234)

Bug fixes

  • Fixed a bug where native app didn't receive intent if loaded from a workspace. (FIN-2076)
  • Fixed a bug that prevented Finsemble from starting if updates could not be downloaded. (FIN-2078)

8.13.1

Release 11-15-24

Finsemble currently uses Electron version 31.7.4. (Chromium - 126.0.6478.234)

Bug fixes

  • Fixed a bug where some mailto links were not delegated to the OS. (FIN-2065)
  • Fixed a bug where FinsembleWindow.AddEventListener() in .Net client threw a NRE exception. (FIN-1983)

8.13.0

Release 10-22-24

Finsemble currently uses Electron version 31.7.1. (Chromium - 126.0.6478.234)
Finsemble Assimilation has been updated to Assimilation version 8.13.0.

Bug fixes

  • Updated Assimilation to use the same device id hashing algorithm as Chrome\Electron 31+. (PR8054)
  • Fixed window resize issue with grouped windows. (FIN-2047)
  • Fixed location from which windowSpawnTimeout was read. (FIN-2033)
  • Fixed issue where cursor position was wrong at the end of a native window drag. (FIN-1983)
  • Fixed a bug where arrow keys didn't move the cursor in the Toolbar's menu inputs. (PR8080)
  • Fixed a bug where ConfigService threw schema validation exceptions when the assimilation asset wasn't downloaded. (PR8089)
  • Hide New App form in Advanced App Launcher when the menu blurs. (PR8093)
  • Fixed an issue where windows could not be grouped when positioned via API. (FIN-2054)

8.12.2

Release 09-27-24

Enhancements

  • font-finance.css was slimmed down by eliminating unused icons. (FIN-1609)
  • Lazy CSS evaluation now supports string evaluation in addition to style-loader lazy loading. (FIN-1609)

Bug fixes

  • Fixed bug where authenticationService would timeout before the authentication task. (FIN-2001)
  • Fixed a bug where window.location.reload() would open in a new window in some cases. (FIN-2030)
  • Eliminate walkSchemaForDefaults error in configService. (PR8041)
  • Fixed a bug where native evergreen apps didn't restore window state properly after workspace reload. (FIN-1992)
  • Fixed a bug where assimilation and native windows didn't update the window data in workspace if already exist in the workspace. (PR8061)
  • Fixed issue where where apps added via the advanced app launcher were not being restored before the initial workspace was loaded. (FIN-2045)

8.12.1

Release 08-20-24

Finsemble currently uses Electron version 30.4.0. (Chromium - 124.0.6367.243)

Bug fixes

  • Fixed a bug to work around Electron behavior with resizing content. (FIN-2020)
  • Fixed a bug where some dashbar widgets were hidden on the scaled monitor. (FIN-2015)

8.12.0

Release 08-15-24

Finsemble currently uses Electron version 30.3.1. (Chromium - 124.0.6367.243)
Finsemble Assimilation has been updated to Assimilation version 8.12.0.

Enhancements

  • Increased the time timeout for authentication to complete to the maximum value. (FIN-2001)
  • Removed superfluous log messages. (PR8010)
  • Added iocd and io.Connect to schema to enable preparation for conversion to iocd. (FIN-1995)

Bug fixes

  • Fixed a bug where rounded window corners switched to square corners for small windows on Windows 11. (FIN-1988)
  • Fixed a bug where the openLinksInExternalBrowser: true config parameter caused the window to crash. (FIN-1993)
  • Fixed a bug where native windows bounds were broken while moving across monitors. (FIN-2003)
  • Fixed a bug where native evergreen apps didn't restore size properly after Finsemble restart. (FIN-1977)

Documentation

  • Updated the notification id section on the notifications tutorial. (PR7975)

8.11.3

Release 07-11-24

Finsemble currently uses Electron version 29.4.3. (Chromium - 122.0.6261.156)

Bug fixes

  • Fixed a bug where WinForms apps didn't restore properly size on a scaled monitor. (FIN-1977)
  • Fixed a bug where addToTabCollection wasn't hiding old windows. (FIN-1981)
  • Fixed a race condition/atomicity bug in component state that could cause custom tab titles not to be saved to the workspace. (FIN-1959)

Documentation

  • Added note to set INTEROPIO_CITRIX_NO_HANDSHAKE to false to allow Finsemble to connect to Citrix applications (PR7968)

8.11.2

Release 06-26-24

Bug fixes

  • Fixed a bug where the workspace would load before the user stage started. (FIN-1951)
  • Fixed a bug where the .net web socket connection failed due to local proxy settings. (FIN-1956)
  • Fixed a bug where fdc3.open() could return the titlebar instanceId in the appIdentifier. (FIN-1950)

8.11.1

05-30-24

Finsemble currently uses Electron version 29.4.1. (Chromium - 122.0.6261.156)

Enhancements

  • Added the ability to suppress warnings about component configuration being overwritten. (FIN-1928)

Bug fixes

  • Fixed a bug where WorkspaceClient was not initialized before first call. (FIN-1928)
  • Fixed a bug where crash detection would fail under certain circumstances. (FIN-1937)

8.11.0

05-16-24

Finsemble currently uses Electron version 29.3.3. (Chromium - 122.0.6261.156)
Finsemble Assimilation has been updated to Assimilation version 8.11.0.

Bug fixes

  • Fixed a bug where an intent could be resolved by the same app that raised it. (FIN-1912)
  • Fixed a bug where a singleton component could be spawned multiple times, when the spawn is called very fast in the loop. (FIN-1885)
  • Fixed a bug where windows might not resize in both directions when invoked from a corner. (FIN-1908)
  • Fixed a bug where tabs would explode if windows were closed before the initial workspace was loaded. (FIN-1873)
  • Fixed a bug where the title would not show on dashbar widgets. (FIN-1892)

8.10.6

Release 04-19-24

Bug fixes

  • Fixed a bug where a listener on a distributed store could be invoked multiple times for the same change. (FIN-1892)
  • Added finsemble.servicesConfig.logger.maxLogMessageSize to the schema. (FIN-1899)
  • Fixed a bug that sometimes caused tab collections to become un-tabbed when reloading workspaces (PR7832)
  • Fixed a bug where the dashbar could have multiple browser views for a single widget. (FIN-1892)
  • Fixed a bug where .NET spawns would not always bring spawned singleton apps to front. (FIN-1905)
  • Fixed a bug where event.cancel() would not cancel the event after calling event.wait(). (FIN-1904)
  • Fixed a bug where evergreen windows were not groupable after Finsemble restart. (FIN-1911)

8.10.5

Release 03-21-24

Enhancements

  • Added the ability to find intents by resultType of a Desktop Agent Bridge. (PR7795)
  • Added logging of next state from redux reducers to facilitate debugging. (FIN-1877)
  • Improved the performance of the AppsClient.addApps function. (FIN-1876, FIN-1651)
  • Added additional debug logging around Dashbar operation. (PR7816)

Bug fixes

  • Fixed a bug where .net client lost it state after socket reconnection. (PR7800)
  • Fixed a bug where a Winforms application wasn't resize smooth. (PR7801, PR7813)
  • Fixed a bug where a singleton-evergreen component could be spawned multiple times. (FIN-1885)
  • Fixed a bug where AppsClient.getMonitorInfo would return the wrong monitor is certain instances. (FIN-1882)
  • Fixed a bug where getActiveWorkspace was invoked before the active workspace was set. (FIN-1873)
  • Fixed a bug where a group, loaded from workspace, was not auto moved back within monitor. (FIN-1874)
  • Fixed a bug where tabs would be ejected from a collection if the "close-requested" event was canceled.(FIN-1888)
  • Fixed a bug where an evergreen component didn't restore the window state on workspace reloading. (FIN-1890, PR7813)

8.10.4

Release 02-09-24

Bug fixes

  • Fixed a bug where window resizing across monitors with different scaling could prevent subsequent resizing attempts. (KB52758)
  • Fixed a bug where sometimes you would get the "cannot be used as a JSX component" error when building a templated UI component. (PR7717)
  • Fixed a bug where some components were still translucent after dropping a component into a grouped set of components. (KB52763)
  • Fixed a Winforms resizing bug. (PR7740)
  • Fixed a bug where freestanding native app did more then 1 reconnection call. (PR7740)
  • Fixed a UI bug where multiple notifications wouldn't change state at the same time. (KB52831)
  • Fixed a bug where Linker window was broken for native window if the manageWindowMovement: false. (KB52769)
  • Fixed a bug where an array of Content-Security-Policy would break Finsemble startup. (KB52826)
  • Fixed a bug where a maximized window was moved on the Win hotkey. (KB52816)
  • Fixed a bug where multiple application instance saved to workspace even it is a singleton one. (KB52852)
  • Fixed a bug where the freestanding JavaScript adapter would take long to connect. (KB52873)
  • Fixed a bug where "singleton" config option was not honored in some edge cases. (KB52857)
  • Improved handling of the initialWorkspace configuration, allowing it to be set dynamically in any boot phase before the 'user' boot stage. (PR7775)
  • Fixed a bug where the Notifications Center had the wrong title when undocked. (PR7771)
  • Fixed a bug where AppsClient.addApps did not perform well with a large number of apps. (KB52868)
  • Fixed a bug where favorited apps could be reset on startup. (KB52868)
  • Fixed a bug where web content did not always refresh using hot keys. (KB52878)
  • Fixed a bug where a Windowless application processes wouldn't shut down after reconnection. (PR7787)
  • Fixed a bug where calling addApps would remove user defined components. (PR7786)

8.10.3

Release 12-14-23

Bug fixes

  • Fixed a bug where .net client initialization took long time. (FD17862)
  • Fixed a bug where the notifications UI would not update the state for multiple notifications at once. (KB52810)

8.10.2

Release 11-30-23

Enhancements

  • Added support for display names FDC3 Intent handlers created by the Bloomberg Bridge. (PR7698)

Bug fixes

  • Fixed a bug where .net client did a double reconnection to Finsemble. (PR7699)
  • Fixed a bug where spawn params where not respected when launching a group. (KB52802)
  • Fixed a bug in FDC3 Desktop Agent Bridging so when raising an intent across the bridge, if target does not include an instanceId, then automatically open new app. (PR7662)
  • Fixed a bug in FDC3 Desktop Agent Bridging so if the target is not specified and there is only one matching app that is on a bridged DA, then automatically route the intent to that DA. (PR7662)
  • Fixed a bug in the handling of FDC3 Intents by the Bloomberg Bridge. (PR7698)

8.10.1

Release 11-16-23

Enhancements

  • Updated native application handling to ensure that native apps that fail to spawn when first added to a workspace are removed from it. (KB52736)
  • Updated the shutdown mechanism to be more resilient in the face of shutdown errors. (KB52662)

Bug fixes

  • Fixed a bug where a window would snap to the Toolbar on the wrong position. (KB52578)
  • Fixed a bug where snapping the window to monitor edge in certain monitor configurations caused the window to jump to another monitor. (KB52742)
  • Fixed a bug where the Toolbar was not docked after restart if hidden then restarted. (KB52747)
  • Fixed a bug where components with period in the name periodically failed to load when loading a workspace. (KB52752)
  • Fixed a bug where non workspace component lost linker channels after refresh. (KB52263)
  • Fixed a bug where apps in a non-rectangular group could not auto-arrange correctly. (KB52752)
  • Fixed a bug in FDC3 Desktop Agent Bridging support which would cause connection failures when channel state is present in the bridge. (PR7621)
  • Fixed a bug where MacOS can fail to start when waitForUpdate is true. (KB52786)
  • Fixed a bug where client apps could not subscribe to Electron certificate errors. (KB52792)
  • Fixed a bug where Finsemble can fail to restart to apply updates in some cases. (KB52797)
  • Fixed a bug where a singleton Winforms component was not closed properly. (PR7625)
  • Fixed a bug where a native component didn't send new bounds to Finsemble on SizeChanged event. (KB52791)
  • Fixed a bug where .Net client didn't stop the socket receiving task after disconnection. (KB52785)

Documentation

  • Corrected an error in the documentation about the workspace client's import and export functions. (KB52686)

8.10.0

Release 11-02-23

Finsemble currently uses Electron version 26.3.0. (Chromium - 116.0.5845.228)
Finsemble Assimilation has been updated to Assimilation version 8.10.0.

Enhancements

  • Added the ability to exclude log messages based on RegExp. (KB52459)
  • Log filters are cleared after importing. (KB52459)
  • .Net clients now log "deprecate" messages for deprecated api calls. (KB52460)
  • Java clients now log "deprecate" messages for deprecated api calls. (KB52461)
  • Allow all OSX notarization properties to be specified in project.json or environment. (KB52474)
  • Fixed a bug where System.clearCache did not properly remove specified files in some cases. (KB52612)
  • Allow FDC3 intent resolution to work (based on instance data) even after app config is dynamically removed (PR7277)
  • Introduced a cache into the windowStorageManager to eliminate storage retrievals that are not necessary. (KB52703)
  • Improved logging of missing workspace data to aid in debugging of client issues with data storage. (PR7530)
  • Experimental Feature: FDC3 Desktop Agent Bridging (PR7126)
  • Added enhanced build environment debugging. (PR7557)
  • Improved logging of .net client warnings after disconnection from Finsemble. (PR7582)

Bug fixes

  • Fixed a bug where imported Central Logger logs didn't show client names. (KB52552)
  • Fixed a bug where Apps were not tabbed correctly while importing a workspace. (KB52464)
  • Fixed a bug where FDC3 user channels could not be used with the Channel Interface and fdc3.getOrCreateChannel (PR7277)
  • Fixed a bug where FDC3 onDisconnect listeners were not fired when a window closed (PR7277)
  • Fixed a bug where the remote debugger did not always attach. (KB52469)
  • Fixed a bug where a tabbed window won't be restored after auto-arrange when switching between tabs. (KB52497)
  • Fixed a bug where the Toolbar could not reorder workspaces. (KB52524)
  • Fixed a bug where findIntent/raiseIntent did not work without a hostManifest for Finsemble. (KB52476)
  • Fixed a bug where native client failed to reconnect after sign out and in. (KB52597)
  • Fixed a bug where the active folder in the Advanced App Launcher didn't change. (KB52563)
  • Fixed a bug where AOT icons were off after ungrouped windows. (KB52514)
  • Fixed a bug where the highlight of the search text did not work if there was a dash in the search text. (KB52492)
  • Fixed a bug where tabbed maximized components disappeared after the workspace reload. (KB52588)
  • Fixed a bug where a workspace would be incorrectly marked as dirty when a window would spawn maximized. (KB52523)
  • Fixed a bug where Finsemble would hang when switching workspaces when a native window would close before connecting to Finsemble. (KB52583)
  • Fixed a bug where some assimilated windows had a wrong state after restore by double click on titlebar. (KB52482)
  • Fixed a bug where Finsemble would stall on shutdown in some circumstances. (KB52567)
  • Fixed a bug where AppsClient.GetApps() didn't work for native apps. (KB52629)
  • Fixed a bug where the NonConfiguredComponent wasn't in the "system" category. (KB52627)
  • Fixed a bug where the System Tray Menu showed a previously selected menu item. (KB52634)
  • Fixed a bug where closing the Toolbar from the OS taskbar was not waiting for user confirmation. (KB52663)
  • Fixed a bug where the Toolbar could be behind other windows when revealing all windows. (KB52674)
  • Fixed a bug where maximized windows were included in AutoArrange. (KB52674)
  • Fixed a bug where the windowSpawnTimeout config was not` being read from the correct path. (KB52669)
  • Fixed a bug where the Drag to Share icon was being momentarily rendered in window titlebars. (KB52679)
  • Fixed a bug where the BloombergBridgeService didn't handle the remoteAddress setting correctly if it was set to an empty string. (PR7499)
  • Fixed a bug where Finsemble was not detecting disconnections when users would log-off or exit Bloomberg TC. (KB52691)
  • Fixed a bug where App Services were failing to start when added to a boot stage via AppsClient.addApps. (KB52696)
  • Fixed a bug where the components list was appearing empty when viewing a workspace in Preferences dialog. (KB52705)
  • Fixed a bug where the retrieval of the initial workspace might fail, but work on subsequent loads. (PR7563)
  • Fixed a bug where the splash screen image size could not be fetched if hosted from https. (PR7560)
  • Fixed a bug where the menus would sometimes not appear. (PR7579)
  • Fixed a bug where native windows maximized from a group may not be brought to front correctly. (KB52774)
  • Fixed a bug where tabbed windows may not settle upon workspace load. (KB52715)

8.9.9

Release 04-02-25

  • Added the name of the saved workspace to the WorkspaceClient "save-complete" event. (FIN-2162)

8.9.8

Release 11-26-24

  • Fixed an bug where the Advanced App Launcher would throw errors, causing the menus to not appear. (FIN-2060)

8.9.7

Release 11-12-24

  • Fixed a bug where the menus would sometimes not appear. (PR7579)

8.9.6

Release 08-16-24

Bug fixes

  • Fixed a bug where a window closed by OS window wasn't removed from active workspace. (FIN-2019)

8.9.5

Release 03-05-24

Bug fixes

  • Fixed a bug where workspace event listeners in .Net client could be removed when a child window closed. (KB52842)

8.9.4

Release 11-09-23

Bug fixes

  • Fixed a bug where .Net client would sometimes get stuck while Disposing. (PR7650)
  • Fixed a bug where .Net client would not stop reconnecting on Dispose. (PR7650)

8.9.3

Release 09-25-23

Enhancements

  • Introduced a cache into the windowStorageManager to eliminate storage retrievals that are not necessary. (KB52703)
  • Improved logging of missing workspace data to aid in debugging of client issues with data storage. (PR7530)

Bug fixes

  • Fixed a bug where the Finsemble native client had a memory leak when the Info log level was enabled. (KB52701)
  • Fixed a bug where Finsemble was not detecting disconnections when users would log-off or exit Bloomberg TC. (KB52691)
  • The FDC3 client will now correctly route incoming broadcast messages to the correct handler. (PR7521)
  • Fixed a bug where App Services were failing to start when added to a boot stage via AppsClient.addApps. (KB52696)

8.9.2

Release 09-07-23

Bug fixes

  • Fixed a bug where Finsemble would hang when switching workspaces when a native window would close before connecting to Finsemble. (KB52583)
  • Fixed a bug where the windowSpawnTimeout config was not being read from the correct path. (KB52669)
  • Fixed a bug where closing the Toolbar from the OS taskbar was not waiting for user confirmation. (KB52663)
  • Fixed a bug where Finsemble would stall on shutdown in some circumstances. (KB52567)
  • Fixed a bug where closing a window from the OS taskbar was not generating the correct event object for a close-requested event. (KB52663)
  • Fixed a bug where the Drag to Share icon was being momentarily rendered in window titlebars. (KB52679)
  • Fixed a bug where the BloombergBridgeService didn't handle the remoteAddress setting correctly if it was set to an empty string. (PR7499)

8.9.1

Release 08-18-23

Enhancements

  • Allow FDC3 intent resolution to work (based on instance data) even after app config is dynamically removed (PR7277)

Bug fixes

  • Fixed a bug where System.clearCache did not properly remove specified files in some cases. (KB52612)
  • Fixed a bug where Apps were not tabbed correctly while importing a workspace. (KB52464)
  • Fixed a bug where findIntent/raiseIntent did not work without a hostManifest for Finsemble. (KB52476)
  • Fixed a bug where native client failed to reconnect after sign out and in. (KB52597)
  • Fixed a bug where FDC3 user channels could not be used with the Channel Interface and fdc3.getOrCreateChannel (PR7277)
  • Fixed a bug where FDC3 onDisconnect listeners were not fired when a window closed (PR7277)

8.9.0

Release 06-30-23

Finsemble currently uses Electron version 24.1.2. (Chromium - 112.0.5615.87)
Finsemble Assimilation has been updated to Assimilation version 8.9.0.

Enhancements

  • Added the ability to number of files and the file size for FEA logging. (KB51463)
  • Added the ability to customize part of the TabRegion component to allow adding a custom control. (KB52330)
  • Added Java FDC3 2.0 compatibility. (KB50847)
  • Java API RouterClient will wait for Finsemble to come up before connecting. (KB48306)
  • Added Java Tab API. (KB51006)
  • Added Java AppsClient. (KB50751)
  • Log additional debug information (Electron version, FEA version, # of CPUs, Memory, etc) to the FEA logs. (KB52231)
  • Added the ability for customers to provide their own custom Bloomberg developer API key. (KB52428)

Bug fixes

  • Fixed a bug where a workspace with a native app was dirty after reloading. (KB52254)
  • Fixed a bug where wrong FDC3 error code was returned when target instance without handler was specified for raiseIntent (PR7066)
  • Fixed a bug where FDC3 intent resolution mapping to titlebar client instead of main client. (PR7173)
  • Fixed a bug where wrong FDC3 error code was returned when target appId was specified for raiseIntent and it did not support the intent/context pair. (PR7179)
  • Fixed a bug where the application directory would change after creating an installer. (KB52308)
  • Fixed a bug where .net FDC3 client did not include client metadata. (KB52290)
  • Fixed a bug where the splash screen would fail to load HTML pages with image files. (KB52376)
  • Fixed a bug where the clone icon where the clone icon tooltip wasn't capitalized. (KB52274)
  • Fixed a bug where the clone icon wasn't hidden when the window's width was decreased to 210px. (KB52279)
  • Fixed a bug where clicking the clone icon wasn't cloning the window it belonged to. (KB52284)
  • Fixed a bug where the workspace would be marked dirty erroneously after navigating to a new URL when persistURL was disabled. (KB52313)
  • Fixed a bug where a deprecation warning would occur for useDOMBasedMovement when it wasn't being used. (KB52300)
  • Fixed a bug where schema validation errors would occur after calling FSBL.Clients.NotificationClient.mute. (KB52345)
  • Fixed a bug on MacOS where the Toolbar would undock when the computer would go on sleep mode. (KB52371)
  • Fixed a bug where rearranging pinned items on the Toolbar broke pins and caused overlapping. (KB52318)
  • Fixed a bug where info messages were appearing in fea logs when log level was set (KB52382)
  • Fixed a bug where Finsemble was not checking whether the the claimed space was enabled or not before checking for claimed space release. (KB52404)
  • Fixed a bug where tabbing did not respect user preferences. (KB52356)
  • Fixed a bug where windowState was incorrect on a maximized web component. (KB52255)
  • Fixed a bug where auto-update would not work correctly if there was a blank line at the end of the RELEASES file. (KB52430)
  • Fixed a bug where Unnamed window was in Central Logger. (KB52392)
  • Fixed a bug where tab placeholders would flash and tabbing would fail when an app was configured to have autoShow set to false. (KB2417)
  • Fixed a bug where the Notifications Center search box would overlap with the window titlebar when undocked. (KB52458)
  • Fixed a bug where the "Open logger on startup" feature didn't work. (KB52573)
  • Fixed a bug on MacOS where restoring a maximized window would not mark the workspace as dirty. (KB52527)

Documentation

  • Corrected an error in the documentation about setting up an Electron mirror in the project.json file. (KB52249)

8.8.1

Release 05-31-23

Bug fixes

  • Fixed a bug where FDC3 raiseIntent's remember-choice option was not correctly fetched or applied after workspace reload. (KB52387) (PR7165)

8.8.0

Release 05-25-23

Finsemble currently uses Electron version 24.1.2. (Chromium - 112.0.5615.87)
Finsemble Assimilation has been updated to Assimilation version 8.8.0.

Enhancements

.NET

  • Made .NET freestanding apps more robust when there are Finsemble connectivity issues. Now triggers fdc3.onDisconnect when transport fails. (KB47343)
  • Added the LeaveChannel function to the .NET DesktopAgentClient. (KB52156)
  • Added experimental .NET framework support for virtual applications. (PR6973)

Performance

  • Added performance and memory enhancements to reduce saturation of SharedWorker transport during high traffic. (PR6912)
  • Tuned Central Logger to reduce memory consumption, plus re-enabled message stripping for log messages over 5K; this eliminates possibility of Central Logger running out of memory. (PR6912)
  • Finsemble now displays its approximate startup time which is displayed in the System Log screen. (KB52289)

Smart Desktop Designer (SDD)

  • Added the "Clone icon" field to the SDD's app config edit page. (KB52119)

System

  • Downgraded logging levels to debug for net::ERR_ABORTED, net::ERR_CACHE_MISS, net::ERR_CONNECTION_REFUSED, and net::ERR_FAILED errors in FEA as they can be safely ignored. (KB51704, KB52113)
  • When Finsemble fails to start due to an error during a boot stage, a dialog is now shown to the user allowing them to quit Finsemble gracefully. (KB52121)
  • Made exporting types cleaner and more usable by allowing them to be exported from @finsemble/finsemble-core. (KB51616)
  • Added a new deleteUserDataOnUninstall property to project.json to allow configuration for user data to be deleted on uninstall. Defaults to false. (KB51282)
  • Added the configurable Always On Top Button for the Toolbar. To enable, set Toolbar.foreign.components.Window Manager.alwaysOnTopIcon: true in the Toolbar config. (KB51937)
  • Made the calls in LauncherGroup safe by checking that the window exists before operating on it. (KB51975)

Bug fixes

FDC3/Interop

  • Fixed a bug where using the Linker could cause React warnings. (KB51965)
  • Fixed a bug where leaving a Linker channel that was shared between two windows could trigger a loop. (KB52114)
  • Fixed a bug in the schema for interop.appChannels, correcting it from an object to an array. (KB51960)
  • Fixed a bug with the FDC3 Resolver where it would try to highlight apps that were invisible, such as app services. (KB51755)
  • Fixed a bug where .NET intent listener incorrectly returned a context with the value property. (KB52361)
  • Fixed a bug where not having a default for finsemble.accessibleLinker in the schema caused app channel names not to display when Legacy linker was enabled. (KB51680)

Smart Desktop Designer (SDD)

  • Fixed a bug in the SDD where some content on the App Edit page was visually misaligned. (KB51877)
  • Fixed a bug in the SDD where navigation was confusing when working with app services. (KB51878)
  • Fixed a bug where the Bloomberg Bridge Service would throw errors after being turned on and off repeatedly in the same session. (KB52112)
  • Fixed a bug where the Bloomberg Bridge Service preference panel connection config did not persist between restarts of Finsemble. (KB52140)

System

  • Fixed a bug where a system triggered close-requested event was not being captured by applications. (KB51761)
  • Fixed a bug where there was a typo for allow-or-disallow-page event. (KB52123)
  • Fixed a bug where the Process Monitor could throw errors under certain conditions. (KB52129)
  • Fixed a bug where Central Logger's Components and Services filter did not filter by display name. (KB51781)
  • Fixed various UI bugs in the Download Manager. (KB49805)

Window Management

  • Fixed a bug where windows could incorrectly snap to a floating Toolbar. (KB52016)
  • Fixed a bug in the window titlebar where keyboard navigation was temporarily unavailable immediately after using a mouse to promote a tab. (KB52060)

Workspaces

  • Fixed a bug where specific config caused workspace exceptions due to undefined values. (PR6912)
  • Fixed a bug where a workspace reload could timeout for large workspaces with grouped windows. (KB52261)

Documentation

  • Improved AppsClient.addApps documentation describing how to update an existing app. (KB52123)

8.7.0

Release 04-27-23

Finsemble currently uses Electron version 22.1.0. (Chromium - 108.0.5359.179)
Finsemble Assimilation has been updated to Assimilation version 8.7.0.

Finsemble has upgraded to React 18. This can impact custom apps, components, or customized UI components built using a template. See Upgrading from 8.6 to 8.7 for more detail. (PR6625)

Enhancements

  • The seed project's local development server now includes CORS headers. (PR6784)
  • Finsemble now shows/brings to focus the app window that handles FDC3 intent, unless disabled through config hostManifests.Finsemble.interop.showIntentDestination. (KB51212)
  • Made freestanding apps more robust when there are Finsemble connectivity issues. Now triggers fdc3.onDisconnect when transport fails. (KB47151)
  • Added experimental finsemble.servicesConfig.workspace.workspaceAsPercent config flag to enable storing workspace window dimensions as a percentage of the monitor dimensions. (KB40376)
  • Added the ability to clone a window via a titlebar icon with new config setting foreign.components['Window Manager'].cloneIcon. (KB51756)
  • Disabled tabbing and grouping for windows that are not a part of the workspace. (KB51986)
  • Added the ability to specify which mouse click opens the system tray menu and brings Finsemble to the front by setting systemTrayClickOption in the config. (KB51558)
  • Added the ability to configure the minimum width of window tabs by setting finsemble.servicesConfig.docking.tabbing.tabMinWidth. (KB51488)
  • Added support to the Bloomberg Bridge Service for Bloomberg TCv3 group context events. (KB51883)
  • Enhanced Authentication Service to handle multiple concurrent authentication requests in some cases of password authentication. (KB51658)
  • Added the ability to enable setting persistPath as a global config. (KB52083)

Bug fixes

Auto-Update

  • Fixed a bug with autoupdate that was caused by changing the installed executable name to be the same as the installer executable name. (KB51996)
  • Fixed waitForUpdate race condition, where Finsemble would sometimes not wait when there was an update available. (KB52070)

FDC3/Interop

  • Fixed a bug where raiseIntentForContext with a specified target would not correctly resolve multiple dynamic intent handlers. (PR6817)

Smart Desktop Designer (SDD)

  • Fixed a bug where "Process affinity" could not be turned on via the SDD. (KB51647)
  • Fixed a bug where the SDD could flag apps as being Freestanding when they were using FDC3 2.0 schema. (KB51880)
  • Fixed a bug where an app's Launch timeout could not be set to 0 using the SDD. (KB51625)

System

  • Fixed a bug where passing in null or [] as argument to store.get would not return the entire store contents. (KB51496)
  • Fixed a bug where running npx finsemble migrate-to-appd2 <filename> could fail due to race condition. (KB51696)
  • Fixed UI bugs in the Download Manager where icons were not fully displaying. (KB52002)
  • Fixed a bug where the Central Logger could be blank after importing a set of logs and reopening the Central Logger. (KB51927)
  • Fixed a bug where the Central Logger loading gif could not be found when uploading a large log. (KB51799)
  • Fixed a bug where AppsClient.addApps did not resolve config macros. (KB51978)
  • Fixed a bug where the Advanced App Launcher did not sort apps properly. (KB51746)
  • Fixed a bug where UserPreferences incorrectly affected apps or components in the Launcher and Interop services. (KB51870)
  • Fixed schema validation errors for native windows without hostManifests. (KB51572)

Window Management

  • Fixed a bug where themes were not being loaded into windows configured with titlebarType: "injected". (KB52049)
  • Fixed a bug where reloading a window could not be disabled when the window title bar was focused. (KB52031)
  • Fixed an uncaught exception in the dialog modal. (KB52085)
  • Fixed Evergreen edge cases where the workspace was incorrectly dirty. (KB51825)
  • Fixed a bug where spawning a launchGroup might inadvertently group its constituent windows with existing windows on the desktop if they were in a valid position for grouping. (KB52098)
  • Fixed a bug where minimizing and restoring groups off-screen would break the group. (KB52009)

8.6.0

Release 03-30-23

Finsemble currently uses Electron version 22.1.0. (Chromium - 108.0.5359.179)
Finsemble Assimilation has been updated to Assimilation version 8.6.0.

Enhancements

  • Added Interop config flag servicesConfig.interop.fdc3_1_2_compatibility so Finsemble desktop agent conforms to FDC3 1.2 standard (as opposed to 2.0). (PR6657)
  • Added optional windowName parameter to WindowClient.getWindowTitle() to get the title of a remote window. (KB51501)
  • Added reloadWindowHotkey, reloadWindowIgnoringCacheHotkey, and toggleInspectorHotkey configs under finsemble-electron-adapter to allow for hotkey disabling or overriding. Removed unsused config disableZoom - zoom is handled by the zoom.js preload. (KB51585)

Bug fixes

FDC3/Interop

  • Fixed a bug where FDC3 channel's metadata was not fully returned by API. (PR6620)
  • Fixed a bug where FDC3 linker/user-channel interaction between titlebar and browser window were not correctly synced. (PR6620)
  • Fixed a bug where FDC3 did not handle raiseIntentForContext when no resolution was needed. (KB51766)
  • Fixed a bug where fdc3.getInfo() returned the wrong provider version. (KB51631)

Smart Desktop Designer (SDD)

  • Fixed schema mismatch error that was preventing the BloombergBridgeService from working when it was enabled via the SDD. (KB51605)
  • Fixed a bug in the SDD's Key Partner Apps page where the Bloomberg Bridge's "Enabled" checkbox did not persist between restarts. (KB51610)

System

  • Fixed a startup bug where a failed manifest load attempt could result in multiple instances of Finsemble starting. (KB51724)
  • Fixed a bug where waitForInitialization: true was not waiting for native apps. (KB51842)

Toolbar

  • Fixed a bug that was preventing Finsemble from starting with an invisible Toolbar if the Toolbar.window.autoShow config was set to false. (KB51284)
  • Fixed a bug where the Toolbar would flash when docking to a monitor. (KB51284)

Window Management

  • Fixed a bug where the windowName was incorrectly shown in the taskbar preview instead of desired title. (KB51506)
  • Fixed a bug where a singleton component could be spawned multiple times. (KB51588)
  • Fixed a bug where attempting to launch an already open singleton window could cause it to move locations. (KB51820)
  • Fixed a bug where a race condition occurred when loading the Bloomberg preload. (KB51847)
  • Fixed a bug where the taskbar window was not showing when secondary tabs were active in a tabbed window. (KB51513)

Workspaces

  • Fixed a bug where foreign.services.workspaceService.persistURL and foreign.services.workspaceService.persistPath were being read from the wrong location. (KB51483)
  • Fixed various bugs where Evergreen components exhibited incorrect behavior on workspace reload or switch. (KB51520, KB51472, KB51469, KB51470, KB51352, KB51860)
  • Fixed a bug where launchGroupId did not persist on workspace reload. (KB51491)
  • Fixed a bug where "Prompt user to save changes on workspace close" preference was only being applied after a restart. (KB51788)

Documentation

  • Documentation added to deployingYourSmartDesktop.md describing list of arguments that can be passed to the executable when launching Finsemble. (KB47060)

Deprecations

  • Deprecated setting config finsemble-electron-adapter.useDomBasedMovement which changes how Finsemble handles moving native windows. Controlling window movement by using Electron and -webkit-app-region:drag causes conflicts with Windows features such as Windows Aero shake and normal mouse events used for drag and drop and click events. (PR6649)

8.5.0

Release 03-09-23

Finsemble currently uses Electron version 22.1.0. (Chromium - 108.0.5359.179)
Finsemble Assimilation has been updated to Assimilation version 8.5.0.

Enhancements

Clone Window API

Finsemble now supports the cloning of a window through the API call FSBL.Clients.AppsClient.clone(). (KB51419)

  • Adds the ability to set/copy component state, linker settings, and window title data on spawn when cloning an existing window.
  • Adds the SpawnParams.addToTabCollection property to allow newly spawned windows to be added to a tab collection.
  • Adds the ability to clone a window using windowIdentifier or current window.
  • Adds support for cloning to .NET and Java clients.

AppD and Smart Desktop Designer (SDD)

Finsemble now supports easy integration with FDC3 AppD servers using the Smart Desktop Designer (SDD). (PR6418)

  • Users can now add an app directory and then select apps to add to a project.
  • Users can now configure Finsemble to auto-update apps that have been added.
  • Users can also export apps into an apps.json file, which can be easily dropped into an app directory server.

.NET Core

  • Built wrapper around FDC3 API to make it more .NET developer friendly. (KB50342)

Bug fixes

Interop

  • Fixed a bug where FDC3 intent resolution did not correctly account for singleton or non-launchable apps. (PR6569)
  • Fixed a bug where some .NET FDC3 classes were not deserializing. (PR6558)
  • Fixed a bug where Auto-associate did not retain across workspace reloads. (KB51371)

Native/.NET

  • Fixed a bug where freestanding Native applications were not being assimilated, and did not pass static authentication checks. (KB50038)
  • Fixed a bug where LauncherClient.showWindow()on native/.NET windows did not dirty the workspace. (KB51397)
  • Fixed a bug where WPFWindowTitlebar crashed if the window was shown before connection to Finsemble. (PR6610)
  • Fixed a bug where .NET router responders would not work when called multiple times. (KB51532)

Smart Desktop Designer (SDD)

  • Fixed a bug where the Toolbar Icon could not be set from the SDD. (KB51413)
  • Fixed a bug where users could not switch projects in the SDD when Finsemble was launched with yarn sdd. (KB51600)

System

  • Fixed a bug where storeModel.getMultiple was returning inconsistent values depending on whether the store was global or local. (KB51196)
  • Fixed a bug where long questions in YesNoDialog would get covered up by the buttons. (KB51449)
  • Fixed a bug that allowed the System.exit permission to be bypassed. (PR6510)
  • Fixed a bug where the Download Manager positioning was erratic during launch. (KB50568)

Window Management

  • Fixed a bug where the Zoom.js preload was incorrectly moving window elements with injected titlebars. The preload now attempts to detect container elements with a per-application config to override the default behavior. (KB51083)
  • Fixed a bug where tabbed windows could trigger an incorrect dirty workspace prompt on reload. (KB51431)
  • Fixed a bug where the allowTabbing config property did not work. (KB51464)
  • Fixed a bug where multiple windows were visible for the same tab collection. (KB51464)

Deprecations

  • Deprecated the App Catalog. (KB51407)

8.4.3

Release 04-24-23

Bug fixes

  • Fixed a bug with autoupdate that was caused by changing the installed executable name to be the same as the installer executable name. (KB51996)
  • Fixed waitForUpdate race condition, where Finsemble would sometimes not wait when there was an update available. (KB52070)
  • Fixed an uncaught exception in the dialog modal. (KB52085)

8.4.2

Release 03-02-23

Bug fixes

  • Fixed a bug where the FDC3 intent result was not returned for all types. (PR6574)
  • Fixed a bug where the FDC3 intent resolution could incorrectly have duplicate intent values. (PR6574)

8.4.1

Release 02-09-23

Bug fixes

  • Fixed a bug where auto-update of an FDC3 AppD record was incorrectly updating the record's appId. (KB51402)
  • Fixed a bug where auto-update location URLs with a trailing slash would fail to download update payload. (KB51388)
  • Fixed a bug where an untabbed window would have scroll buttons. (KB51336)
  • Fixed a bug where a grouped window could incorrectly keep its old grouping when joining a tab collection. (KB51383)

8.4.0

Release 02-02-23

Finsemble currently uses Electron version 22.0.0. (Chromium - 108.0.5359.62)
Finsemble Assimilation has been updated to Assimilation version 8.4.0.

Enhancements

In this release, the architecture of Finsemble's Tabbing feature has been redesigned to empower user's control of all tab functionality as well as enhance the UI experience using latest technologies.

Tabbing API Enhancements

  • Added the ability to programmatically tab windows together to support duplicating a tab in the same tabbed group. (KB43373)

  • Added the ability to programmatically select tab focus. (KB43373)

  • Added the ability to programmatically set a tab title when spawning window. TabTitle can now be set from LauncherClient.spawn. (KB44935)

  • Added the ability to programmatically launch group with tabs in specified order. (KB44439)

  • New API methods are available for managing tab collections:

FSBL.Clients.LauncherClient.spawnStackedComponent()
FSBL.Clients.WindowClient.createStackedComponent()
FSBL.Clients.WindowClient.addToTabCollection()
FSBL.Clients.WindowClient.removeFromTabCollection()
FSBL.Clients.WindowClient.getPromotedTab()
FSBL.Clients.WindowClient.getTabCollectionForWindow()
FSBL.Clients.WindowClient.getTabCollection()
FSBL.Clients.WindowClient.promoteTab()

Tabbing UI Enhancements

  • Tabs now have a smaller maximum width to allow for a larger drag area in the titlebar consistent with untabbed windows. (KB45442)
  • When multiple tabs exceed the width of the titlebar, overflow arrows now allow navigation to additional tabs in the tab collection. (KB15268)
  • Tab behavior (ordering/focus) is now consistent whether dropping a new tab into a group or reordering a tab in an existing group. (KB34075)
  • Tab navigation can now be done by keyboard. When you are in an app, you can press Ctrl+Tab or Ctrl+Shift+Tab to move between tabs. Other OS-specific tab navigation shortcuts - Ctrl+PageUp and Ctrl+PageDown on Windows, Cmd+Shift+Left and Cmd+Shift+Right on Mac - is also supported. (PR6346)

FDC3/Interop

  • Added global config to enable/disable app's ability to join multiple FDC3 channels: finsemble.servicesConfig.interop.joinMultipleChannels. (PR6063)

System

  • New AppsClient created for adding and removing FDC3 apps to Finsemble. AppsClient is the new name for the Finsemble LauncherClient API. The new naming better represents its role which is to help administrate the apps available and/or running in the desktop, in addition to launching apps. We will be maintaining LauncherClient as an alias to AppsClient for backwards compatibility. (KB50569, KB50750)
  • Finsemble shutdown dialogs have been consolidated. (KB50605)
  • Adjusted affinities and titlebar types in built-in apps to reduce default memory footprint. (KB50567)
  • Added support for importing and/or updating AppD config from one or more external AppD servers, both for individual applications and whole app directories. (KB50515)
  • Added hideSystemLog function in the SystemManagerClient to allow for closing of the System Log programmatically. (KB50677)
  • Improved performance on SystemManagerClient.waitForStartup method by caching already started elements preventing unnecessary router subscribes. (KB50740)
  • Simplified the Process Monitor to eliminate the different modes (Simple/Advanced), and allow for collapsing of the child window list. (KB50753)
  • Added optional --webpackConfig=filename command line option to yarn dev to override Finsemble's generated config. (KB50455)
  • Added a timeout to the installer packager to prevent it from running for longer than a configurable amount specified in project.json. (KB51029)

Toolbar

  • The CTRL+ALT+T global hotkey now undocks a docked Toolbar and ensures toolbar drag handle is on monitor. (KB50509)
  • The CTRL+ALT+SHIFT+T global hotkey now docks the Toolbar to the primary monitor. (KB50509, KB50815)

Bug fixes

FDC3/Interop

  • Fixed a bug in FDC3 where the 'originating app metadata' feature (for both intents and context) was not identifying the source of the broadcast or raised intent. (PR6063)
  • Fixed a bug in FDC3 so the system now generates dev-only notifications and logs a warning if joinUserChannel() specifies an unknown channel name. (PR6063)
  • FDC3 2.0 fixes to conform to latest FINOS Conformance tests. (PR6344)

Native

  • Fixed a bug where FSBL.Clients.WindowClient.getSpawnData() returned empty object in .NET. (KB50761)
  • Fixed a bug where freestanding WPFExample apps would close after spawning. (KB50787)
  • Fixed a bug where the 'Disconnected' event was not firing for windowless applications when Finsemble shut down. (KB50840)

System

  • Fixed the Notifications highlighting of unread messages while in List View. (KB50599)
  • Fixed a bug where logging an error in a storage adapter could cause Finsemble to not start. (KB50696)
  • Fixed a bug where the default installer location was incorrect. (KB50745)
  • Fixed a bug where the search field would not have focus in certain cases when the search menu was opened. (KB50911)
  • Fixed a bug where manually clearing search query would not clear search results. (KB50968)
  • Fixed a bug where the text in the scheduled restart dialog was inconsistent with the timer value. (KB50894)
  • Fixed a bug where seed project was missing implementation of finsemble adapter. (KB50904)
  • Fixed a bug where importing UI elements into unit tests could cause bogus TypeScript errors. (KB51234)

Tabbing

  • Fixed a bug where tab titles could be out of date/one behind. (KB49532)
  • Fixed a bug where maximized tabbed windows could incorrectly restore when switching tabs. (KB50299)
  • Fixed a bug where maximized tabbed groups restored incorrectly from workspaces. (KB49445)
  • Fixed a bug where 'Reveal All' toolbar action incorrectly restored minimized tabbed windows that were previously maximized. (KB49440)
  • Fixed a bug where clicking on the active tab in a collection caused an unnecessary re-render. (KB48988)
  • Fixed a bug where grouped/tabbed windows were not draggable after being minimized due to incorrectly sized drag handle. (KB48983)
  • Fixed a bug where windows with a single tab and long title were undraggable due to small drag handle size. (KB44413)
  • Fixed a bug where tab titles could display incorrect title if no title was set in config. (KB48366)

Window Management

  • Fixed a bug where 'Reveal All' incorrectly set the state of the maximize icon in the titlebar. (KB49435)
  • Fixed a bug where titlebars would flash their underlying window name when being rendered. (KB45858)
  • Fixed a bug where the injected titlebar was incorrectly adjusting fixed positioned elements and adjusting heights for elements without predefined heights. (KB51137)
  • Fixed a bug where multiple window.open calls to a named target could make the target window unmanageable. (PR6367)

Documentation

  • Added documentation describing how to display additional logs when building an installer. (KB51029)
  • Added documentation describing required dependencies for building an installer on Linux. (KB50778)

8.3.3

Release 04-24-23

Bug fixes

  • Fixed a bug with autoupdate that was caused by changing the installed executable name to be the same as the installer executable name. (KB51996)
  • Fixed waitForUpdate race condition, where Finsemble would sometimes not wait when there was an update available. (KB52070)
  • Fixed an uncaught exception in the dialog modal. (KB52085)

8.3.2

Release 02-27-23

  • Fixed a bug where devModeOnly toasts were displaying when not in developer mode. This included the "deprecated appd" message that occurs starting with version 8.3 if appd.json is not converted to use new apps.json. (KB51548)

8.3.0

Release 12-15-22

Finsemble currently uses Electron version 21.2.3. (Chromium - 106.0.5249.168)
Finsemble Assimilation has been updated to Assimilation version 8.3.0.

Enhancements

FDC3 / Interop

tip

Finsemble's FDC3 2.0 implementation is backwards compatible with FDC3 1.2. It provides both synchronous AND asynchronous responses to the updated API calls, as well as support for all the deprecated API signatures from FDC3 1.2. Therefore, code written for FDC3 1.2 will work as it did before without modification, while newer code can target FDC3 2.0. No configuration is required. (KB50686)

  • The FDC3 Intent Resolver has been updated (PR6040):
    • The UI design has been improved and is now theme-able.
    • The resolver automatically displays over the app that summoned it, rather than at the location it was last used in.
    • The resolver highlights instances of apps as you mouse over them and selects tabs in tabbed groups to ensure the correct app is highlighted.
    • Users can choose to remember resolutions for particular app instances and intents so that the resolver is no longer displayed for that intent/source app instance and future raised intents of that type will be routed to the same destination app instance (until either the source or destination app instance is closed). Remembered choices are persisted in the workspace. To disable the "Remember my choice" checkbox, set the config finsemble.servicesConfig.interop.allowResolverToRemember to false.

System

  • Updated text "Prompt user on dirty workspace" in Preferences panel to be more user friendly. (KB50227)
  • Additional new methods ConfigClient.get, ConfigClient.set, ConfigClient.remove accept a path array as argument which removes issues with applications, services and properties that contain dots and would have to be specified as index notation as per the JSON spec. Path array example: ["custom", "field", "special.property"] translates to custom.field["special.property"]. (KB49626)
  • Added pnpm support and --resolve-dependency-magic flag to yarn dev and yarn build. (KB50229)

Bug fixes

Central Logger / Logging

  • Fixed a bug where defaultClientLogLevels did not set the log levels for Components in the Central Logger. (KB50493)
  • Fixed a bug where Assimilation log levels were incorrect in log files. (PR5975)
  • Fixed a bug where imported Central Logger logs were misordered. (KB49601)

System

  • Fixed a bug where "Blank", "Preload", and "StorageAdapter" were erroneously listed in the available templates with yarn template. (KB50154)
  • Fixed a bug where RouterClient.start() was called twice. (KB25237)
  • Changed the installed executable name to match the installer executable name. (KB50498)
  • Fixed a bug where the drag-to-share scrim would disappear after 3 seconds. (KB47746)
  • Fixed a bug where WPF listener errors flooded the router on disconnect. (KB50143)

Workspaces

  • Fixed a bug where a React error was thrown by the Workspace Preferences tab. (KB50462)
  • Fixed a bug where tabs in a tabbed component were not in correct order when part of launch group. (KB50482)
  • Fixed a bug where channels set by auto associate did not get saved as part of the workspace. (KB50438)
  • Fixed a bug where ESC key failed to exit Preferences - Edit Workspace Name dialog. (KB50294)
  • Fixed a bug where Finsemble started with incorrect workspace. (KB50248)

Deprecations

  • We've upgraded Finsemble's internal representation of apps from the FDC3 1.2 appD format to FDC3 2.0. Apps configured in the 1.2 format under config property finsemble.appd are deprecated and support for them will be removed in a later major version. Apps configured in the 1.2 format under finsemble.appd are automatically updated to the 2.0 format under finsemble.apps. See Upgrading Finsemble for details of how to migrate to the new format.
  • Deprecated ConfigClient.getValue, ConfigClient.getValues, ConfigClient.setValue, ConfigClient.setValues, ConfigClient.removeValue and ConfigClient.removeValues in favour of ConfigClient.get, ConfigClient.set, ConfigClient.remove which accept a path array as argument rather than an object with fields that must comply with JSON spec index notation for properties that contain dots. Path array example: ["custom", "field", "special.property"] translates to custom.field["special.property"]. (KB49626)
  • Deprecated Finsemble.appName property in Finsemble.dll. (KB50221)
  • Removed the DialogModal component. (KB50487)

Dependency Updates

  • The electron-packager has been upgraded to 17.0.0 (KB50107)

Documentation

  • Added documentation for Notifications Action types. (KB49272)

8.2.3

Release 12-12-22

Bug fixes

  • Fixed Central Logger errors appearing in the default Seed project due to incorrect config entries. (PR6047)

8.2.2

Release 12-01-22

Security

  • Upgraded OpenSSL to resolve CVE-2022-3602 and CVE-2022-3786

8.2.1

Release 11-10-22

Bug fixes

  • Fixed a build related issue with legacy projects (PR5898)

8.2.0

Release 11-10-22

Finsemble currently uses Electron version 21.1.1. (Chromium - 106.0.5249.103)
Finsemble Assimilation has been updated to Assimilation version 8.2.0.

Enhancements

  • Improved performance of workspace switches and the ability to exit out of a workspace switch because a different switch has been requested. (PR5761)
  • Improved Finsemble startup performance by optimizing configuration validation and schema error check. (KB49577)
  • yarn sdd can now be used to start the Smart Desktop Designer from the seed project's CLI. (PR5797)
  • Added a topic parameter for the StorageClient.clearCache() function to clear cache by storage adapter topic. (KB49879)
  • Added JSON schema entries for workspaces config (PR5897)

Bug fixes

FDC3/Interop

  • Fixed a bug where FDC3 was not correctly deregistered before a page reload. (KB48786)
  • Fixed a bug where removing apps via processAndSet was not removing intents. (KB49537)

Logging

  • Removed Central logger error No "--manifest" argument found.. (KB49832)

  • Fixed a bug so that logToDiskLevels can now be set in finsemble-electron-adapter.logger.logToDiskLevels (as documented in schema). (PR5806)

  • Fixed a bug so that log messages no longer display twice in Central logger when logToDiskLevels is configured. (KB49065)

  • Fixed a bug where calling window.close within a browserView failed to close the window (KB49822)

  • Fixed a bug that prevented finsemble from restarting when running multiple instances (PR5864)

  • Fixed a bug where there was an error when redirecting from the authentication component. (KB49706)

  • Fixed a bug where calling spawn on an existing singleton window moved the window down when the toolbar was docked. (KB49565)

  • Fixed a bug where the FinsembleWindow closed event didn't work. (KB48735)

  • Fixed a regression where the notification center's select button's checkmark changed color. Now, the checkmark can be themed, and matches the color of the notification center's active buttons. (KB49683)

  • Fixed a bug where the .Net FSBL.FDC3Client.StateChanged event fired repeatedly when joining multiple channels at startup. (KB49716)

  • Removed central logger error No "--manifest" argument found. (KB49832)

  • logToDiskLevels can now be set in finsemble-electron-adapter.logger.logToDiskLevels (as documented in schema). (PR5806)

  • Log messages no longer display twice in central logger when logToDiskLevels is configured (KB49065).

Native/.NET

  • Fixed a bug where the .NET FSBL.FDC3Client.StateChanged event fired repeatedly when joining multiple channels at startup. (KB49716)

Notifications

  • Fixed a bug where the Notification center's select button's checkmark changed color. Now, the checkmark can be themed, and matches the color of the Notification center's active buttons. (KB49683)
  • Fixed a bug where Notifications snooze time fell back to hardcoded default instead of user preferences value. (KB48534)

System

  • Fixed a bug where an error was created when redirecting from the authentication component. (KB49706)
  • Fixed a bug where FSBL.shutdownApplication() did not work when invoked from the authentication component. (KB49946)
  • Fixed a bug where Finsemble would fail to start if a startup manifest was specified via command line arguments. (KB50231)
  • Fixed a bug where FSBL.publishReady() would not correctly signal that an app service was ready. (KB49865)
  • Fixed a bug where the CLI build tools were not exported to the expected destination. (KB50322)
  • Fixed a bug where protocol URLs were not being read correctly. (KB50065)
  • Fixed a bug where apps added via ConfigClient.processAndSet were not immediately available. (KB49034)

Toolbar/Dashbar

  • Fixed a bug in Dashbar where removing multiple widgets at once would cause the widgets to flash. (KB49721)
  • Fixed a bug where Dashbar widgets were shifting on widget remove. (KB49560)

Window Management

  • Fixed a bug where the FinsembleWindow closed event did not work. (KB48735)
  • Fixed a bug where calling spawn on an existing singleton window moved the window down when the toolbar was docked. (KB49565)

Documentation

  • Updated schema to include the properties of startup_app in the manifest. (KB46840)
  • Linked DialogManagerClient.open documentation to the Dialogs tutorial. (KB47062)
  • Added showTimer and timerDuration properties to the example YesNoDialog options. (KB47062)
  • Added documentation for environment variable manifest macros. (KB49039)
  • Added documentation for App Services to include a native service. (KB49033)

8.1.1

Release 10-27-22

Bug fixes

  • Fixed a bug where default windowTitleBar url was not being calculated correctly. (PR5841)
  • The seed's default tsconfig file is now set to noImplicitAny: false. This allows the seed to be built without importing @types/react. (PR5860)
  • The 8.x migration script had a typo that created "launcher" entries in project.json instead of "launch" entries. (PR5861)
  • Webpack's infrastructure logging is now suppressed for anything other than an error message. This hides harmless but annoying "for build dependencies doesn't lead to expected result" warnings. (PR5861)

8.1.0

Release 10-13-22

Finsemble currently uses Electron version 20.1.1. (Chromium - 104.0.5112.102)
Finsemble Assimilation has been updated to Assimilation version 8.1.0.

Enhancements

Smart Desktop Designer (SDD)

  • In the SDD, out-of-date projects are flagged and can be automatically updated to the latest version of Finsemble. (PR5726)
  • In the SDD, when editing intents for individual apps, context information is now required for any given intent entry. This brings the intent information in line with the FDC3 2.0 standard. (PR5728)
  • Enabled ability for projects to be imported and project locations to be moved via the SDD. (PR5579)

Toolbar / Dashbar

  • Added loadingIconUrl property to the Dashbar config which shows a custom icon while widgets are loading. (KB48816)
  • Added a Download Manager to allow more control over downloads. It can be accessed from an icon on the Toolbar. (KB42357)
  • The short format of the Central Logger's time filter now applies the date (year, month, day) of the first log entry by default. (KB48395)

Bug fixes

System

  • Fixed a bug where the FDC3 Intent Resolver did not show all applications without scrolling. (KB48722)
  • Fixed a bug where web compatible icons would not render if .ico was in its icon src path. (KB48781)
  • Fixed a bug where closing the Notifications Center could leave a black bar under the Toolbar. (KB48658)

Toolbar

  • Fixed a bug where custom Toolbar menu items were not able to be favorited. (KB48668)
  • Fixed a bug where items in the 'General' and 'Dashbar' Preferences screens were misaligned. (KB48684)
  • Fixed a bug where a floating Toolbar could get hidden behind windows when saving a workspace. (KB49262)
  • Fixed a bug where items removed dynamically from the config were not removed from the Advanced App Launcher. (KB49397)

Window Management

  • Fixed a bug where finsembleWindow bounds for stacked windows were not updated after maximize/restore. (KB38261)
  • Fixed a bug where a maximized grouped window became ungrouped when Toolbar was docked or undocked. (KB48643)
  • Fixed a bug where the 'Maximize' icon did not change to 'Restore' after maximize by double-click. (KB48529)
  • Fixed a bug where the enableWindowsAeroSnap config was not being respected by Finsemble at times. (KB49009)
  • Fixed a bug where the Windows taskbar title was not displaying the correct title when the appId contained an apostrophe. (KB48740)

Documentation

  • Added documentation for new Download Manager feature. (KB49582)

Deprecations

originIncomingTransportInfo has been deprecated in router header messages. This was an undocumented, private field. Please contact us for migration advice if you are using this field.

8.0.2

Release 10-04-22

Enhancements

  • npx finsemble migrate can be used to migrate 7.x seed projects to 8.0.0 format. (PR5713)

Bug fixes

  • getWebpackConfig() now returns a valid webpack config rather than {err, data} (PR5729)
  • Fixed a bug where some preloads weren't being cached properly because base64 encoding includes the slash character. (PR5724)
  • Fixed bug where windows would not unmaximize on OSX. (KB49596)

8.0.1

Release 09-23-22

Bug fixes

  • Fixed a bug where VS Code would report schema "problems" due to missing values that are no longer required. (PR5703)
  • Added a yarn create-preload <name> command to the CLI API for cases where you need to access the FSBL object before the FSBLReady event is fired. (KB49364)
  • Fixed the webpack watch process during yarn dev so that the process is terminated when Finsemble is closed. (KB49359)
  • Fixed bug that prevented two preloads with the same name (e.g. index.js) from being used (KB49521)

8.0.0

Release 09-15-22

Finsemble currently uses Electron version 19.0.10. (Chromium - 102.0.5005.167)
Finsemble Assimilation has been updated to Assimilation version 8.0.0.

Breaking Changes

  • We've simplified the seed project structure, with an updated set of standard package.json scripts. See the Upgrading Finsemble page for details on how to migrate/upgrade your existing project. See build process for information on new scripts.
  • The PORT environment variable is no longer read when launching the seed project. Instead, use server-environment-startup.json to configure a port, or use yarn start --port <port number>.
  • Launching and building the seed project will no longer automatically set the NODE_ENV environment variable to "production" if it is not already set.
  • Finsemble's default location for OAuth responses has changed from $applicationRoot/components/authentication/oauthResponse.html to $moduleRoot/ui-components/oauthResponse/index.html. You must explicitly set the redirect_uri field in your config's authentication profile.
  • wss certificates in the IAC server have been removed.
  • downloadUpdatesViaElectron is now true by default. The auto-update process, if configured, will use any configured proxies and download to a local cache. Set this to false in your manifest's "finsemble-electron-adapter" section to revert to the previous behavior.

Enhancements

Logging

  • Added logging of stdout and stderr when launching external processes. (PR5316)
  • Enabled sending Finsemble Electron Adapter (FEA) logs to the Central Logger by default. (KB47643)
  • Added timestamp filters to the Central Logger. (KB47859)
  • Added resource logging to the Central Logger. (PR5477)
  • Finsemble's logger service is now spawned in an isolated Electron process. This prevents verbose logging from negatively impacting system performance. To revert to the old behavior, set config finsemble.servicesConfig.logger.spawnAs : "window" in manifest-local.json (not in config.json). (PR5545)

Native

  • Enhanced functionality and fixed various bugs in IAC Router Transport for .NET and Java. (KB47149, KB47150, KB47695, KB47700, KB47710)

Smart Desktop Designer (SDD)

  • Added functionality to the SDD to enable multi-project development. (PR5127)
  • Streamlined the SDD's Themes page. (PR5150)
  • Reorganized the SDD's apps' edit page to prioritize more commonly used config items. (PR5481)
  • Added auto-naming feature for adding native apps in SDD. (KB46000)
  • Changed the look of the "Edit Preloads" page in SDD to match other SDD edit pages. (KB44861)
  • Added a "Reset project" button to an individual project page in the SDD. (PR5520)

System

  • A CLI API is now available for customizing the build process. (PR4747)
  • Updated core Bloomberg integration with support for Bloomberg Terminal Connect API V3. (PR5427)
  • Updated installer.json companyName and name descriptions to add specificity. (KB47172)
  • Updated finsemble schema documentation. (KB48274)
  • Fixed issues that prevented assimilation from running multiple instances. (PR5364, PR5285)
  • Updated splash screen behavior. The screen is now displayed until either the toolbar or an authentication component is displayed. Removed the manifest.splashScreenTimeout configuration because it is now obsolete. (KB48072)
  • Added the ability to pass the manifestUrl on the protocol url. (KB25580)
  • Added uiComponent config field, which simplifies UI Component config. Finsemble's built-in UI config now makes use of this field, though it is backward compatible with the previous fully expanded UIComponents.json config file. (PR5545)
  • Overrides for electron-packager (electronPackagerOptions), electron-winstaller (electronWinstallerOptions), and electron-installer-dmg (electronInstallerDmgOptions) are now available when generating an installer. (PR5599)
  • Added useOAuth() hook to make OAuth response pages easier to write. (PR5545)
  • Development notifications from the Interop service are now only sent when in Dev mode. (KB47569)

Toolbar

  • Updated the Dashbar & Bloomberg Preferences sections to show/hide based on config. (KB49004)
  • Added "Reset preferences" functionality to the user Preferences dialog. (KB47990)
  • Added hotkeyMinimizeAll, hotkeyBringWindowsToFront, and hotkeyRestartApplication as optional props to <ToolbarShell>. (The useHotkey hook is still supported.) (PR5545)

Window Management

  • Removed unused #main from linkerWindow.css to avoid potential CSS collisions. (KB47879)
  • You need to configure a new manifest entry finsemble.windowTitleBarUrl to point to your windowTitleBar. This defaults to the old location of $applicationRoot/components/windowTitleBar/windowTitleBar.js. (PR5545)
  • Added floatingFocus prop to <FinsembleProvider>. This prop defaults to true and automatically adds the @q42/floating-focus-a11y accessibility helper to web pages. This helper provides a visual indicator for keyboard navigation accessibility. You can set this prop to false to disable the helper. By default, Finsemble's injected window titlebar does not turn on the accessibility helper to avoid the possibility of conflicts with user applications. (PR5545)
  • Most of Finsemble's top level React components (such as ToolbarShell) now accept an optional title property which you can use to set the title of the page. This replaces the title tag that previously could only be set statically in a UI component's html page. A title tag still takes precedence over the React property. We added a hook, useTitle() to support programmatic setting of the title in pages that do not use Finsemble components with the title prop. (PR5545)

Bug fixes

Notifications

  • Fixed a bug in the Notifications Context Menu where values were not correct. (KB48313)
  • Fixed a bug where the Notification Center was flashing on Open and Close. (KB39166)

System

  • Fixed a bug where taskbar calculations did not consider claimed space and returned wrong values. (KB32493)
  • Added missing properties for monitorInfoDetail that were not previously defined. (KB47603)
  • Enhanced workspace import to support incorrectly formatted workspace JSON files. (KB48037)
  • Fixed a bug where manifests could not be passed via the command line using --manifest-url. (KB48085)
  • Fixed a bug where a .NET component could not be used within the authentication stage of startup. (KB48226)
  • Fixed a bug where event.wait() would timeout after 10 seconds. The wait is now indefinite. (KB32699)
  • Fixed a bug where the Central Logger under heavy load could crash Finsemble. (KB48329)
  • Fixed a bug where arbitrary manifests could not be passed via the protocol handler. (KB48211)
  • Added userAgentString to schema and config reference docs. (KB46298)

Toolbar

  • Fixed a bug where removing an application via ConfigClient.removeValue did not update App Launcher. (KB47549)
  • Fixed a bug where creating folders in the Advanced App Launcher caused the Restore Defaults button to be hidden. (KB30423)

Window Management

  • Fixed a bug where the childWindowOptions.window.options was not used when spawning a child window via window.open. (KB47443)
  • Fixed a bug where injecting the titlebar would add incorrect and unnecessary max-heights to DOM elements. (KB47778)
  • Fixed a bug where switching tabs quickly when a stack was maximized made tabs unresponsive. (KB33168)
  • Extended window spawn timeout to handle situations where a low-spec machine or machine/network under load slows down window creation. (PR5409)
  • Fixed a bug where a long title in a titlebar tab could be obscured by the tab close icon. (KB48113)
  • Fixed a bug where the composite component spawning did not calculate component position accurately for percentages. (KB38660)
  • Fixed a bug where titlebar text was not assigned a font weight. (KB47854)
  • Fixed a bug where minimizing and pressing the Windows key would change the resizable setting of a non-resizable component to true. (KB48078)
  • Fixed a bug where a tabbed window is very briefly not visible during a tab switch. (KB48540)
  • Fixed a bug which impacted rendering performance during a tab switch. (KB48540)
  • Fixed a bug where the active tab in a stack was incorrectly re-rendering when the active tab title was clicked. (KB48540)
  • Fixed Java API whereby action spawn parameters were not properly serialized. (KB47235)

Deprecations

  • AppAsset versions have been deprecated. If supplied, they still impact the caching strategy, but an error is shown. In their absence, standard http ETag headers are used. Please remove AppAsset versions and host AppAsset versions on a modern https server that supports etag response headers. (PR5305)

7.3.11

Release 02-27-23

  • Fixed a bug where LinkerClient crashed during .NET window close after legacy linker menu linked to a channel. (KB51541)

7.3.9

Release 01-09-23

  • Fixed a bug where the search box would not have focus in certain cases when the search menu was opened. (KB50911)

7.3.8

Release 12-01-22

  • Fixed a bug where tabs in a tab component where not in the correct order when part of a launch group. (KB50482)

7.3.7

Release 10-21-22

Bug fixes

  • Fixed a bug where Finsemble failed to load the runtime manifest if the number of arguments passed was not equal to 1. (KB49955)
  • Extended window spawn timeout to handle situations where a low-spec machine or machine/network under load slowed down window creation. (PR5409)

7.3.6

Release 10-13-22

Bug fixes

  • Fixed a bug where the FSBL.FDC3Client.StateChanged event incorrectly fired repeatedly when joining multiple channels at startup in .NET apps. (KB49716)
  • Fixed a bug where getCurrentContext was failing when called in .NET apps. (KB49726)
  • Fixed a bug where FDC3-enabled apps could not resolve intents if launchableByUser was false. (KB49789)

7.3.5

Release 09-29-22

Bug fixes

  • Fixed a bug where items removed dynamically from the config were not removed from the Advanced App Launcher menu. (KB49397)
  • Fixed a bug where removing an app with processAndSet did not remove the app's intents. (KB49537)

7.3.4

Release 09-22-22

Bug fixes

  • Fixed a bug so that the active tab will not re-render when the tab title is clicked. (KB48540)

7.3.3

Release 09-07-22 Note: This release was only NuGet packages for .NET bug. No NPM packages released.

Bug fixes

  • Fixed a bug where Freestanding .NET apps could fail to reconnect on a Finsemble restart . (KB48978)

7.3.2

Release 08-31-22

Enhancements

  • The Logger service now runs in its own process by default. This requires extra memory but protects system performance when apps produce excessive logging. (KB48329)
  • Added various Window and tab performance enhancements. (KB48540)

Bug fixes

  • Fixed a bug in the Java API whereby action spawn parameters were not properly serialized. (KB47235)
  • Fixed a bug in .NET where the Finsemble.dll incorrectly fired multiple disconnect events between Finsemble quit and start. (KB48673)

7.3.1

Release 08-12-22

Bug fixes

  • Fixed a bug where .NET: Disconnect event did not fire if subscribed to after connection. (KB48118)
  • Fixed a bug in .NET where the Sender object for the Disconnected event was not a ChartIQ.Finsemble.Finsemble type. (KB48123)
  • Fixed a bug where .NET re-connection to Finsemble did not work. (KB48128)

7.3.0

Release 07-25-22

Finsemble currently uses Electron version 17.0.0. (Chromium - 98.0.4758.74)
Finsemble Assimilation has been updated to Assimilation version 7.3.0.

Enhancements

Smart Desktop Designer (SDD)

  • Added the ability to specify appIds for newly-added apps through the SDD. (PR5189)
  • Updated the visuals for the left-hand navigation in the SDD. (PR5091)
  • Updated checkboxes for API access in SDD to checkbox components and removed save on enter function. (KB46001)

System

  • Added the pre-authentication boot stage. (KB47094)
  • Added the ability to send Finsemble Electron Adapter (FEA) logs to the Central Logger. (KB46288)
  • Modified the Notification drop-down button for accessibility, highlighting and positioning the menu when opened. (KB39629)

Window Management

  • The default titlebarType has been changed from injected to browserview. Affinity now only groups titlebars by default. (KB47483)
  • Added the ability to prevent workspaces from being edited/deleted by using new permanentWorkspaces option. (KB45997)
  • Added support for limiting navigation and creation of child windows to meet electron security recommendations. (PR5038)

Bug fixes

FDC3/Interop

  • Fixed a bug where the FDC3 Desktop agent failed to throw errors on missing required parameters. (KB30948)
  • Fixed a FDC3 bug where initial change state was nt broadcast when Linker joined a channel. (KB47037)
  • Fixed a FDC3 bug where the error format did not align with spec. (PR5078)
  • Fixed a FDC3 bug where the AppD intent format did not align with spec. (PR5078)
  • Fixed a FDC3 bug where the fdc3.open error returned wrong error string. (PR5078)
  • Fixed a bug where RouterClient.disconnectAll() did not remove PubSubResponder. (KB47047)
  • Fixed a bug where the Linker window flashed with channel from previous window. (KB31992)
  • Fixed a bug where a notification from the Interop Service was displayed when spawning freestanding apps. (KB47241)
  • Fixed a bug where Freestanding Apps were firing Interop registration calls before the Interop Service was ready. (KB47504)

System

  • Fixed a bug where WorkspaceClient.saveAs() allowed the undefined name parameter. (KB47333)
  • Fixed a bug where very large objects sent to the Central Logger could cause the UI to lock up. (KB47521)
  • Fixed a bug where User Preferences settings were not applied from the config. (KB47458)
  • Fixed a bug where the SystemManager would intermittently erroneously complain of missing boot config for built-in services that were loaded correctly later in the boot sequence. (KB47759)

Toolbar / Dashbar

  • Fixed a bug where the docked Toolbar dropzone appeared in incorrect position and could get stuck. (KB47010)
  • Fixed a bug where hiding a docked Toolbar using CTRL+ALT+H would not release the toolbar's claimed space. (KB47720)
  • Fixed a bug that was causing visible flickering on Dashbar item title while resizing. (KB41443)
  • Fixed a bug where the Dashbar scrollbars did not disappear when enough space was available. (KB41458)

Window Management

  • Fixed a bug where moving an auto-arranged window could cause it to be incorrectly displayed behind other windows. (KB32662)
  • Fixed a bug in WindowTitleBarShell, where using className.includes() broke if the element was not a string. Use classList.contains() instead. (KB47526)
  • Fixed a bug where closing a window with a browserview titlebar didn't close both processes under certain circumstances. (KB47674)

7.2.1

Release 07-07-22

Enhancements

  • Added support for transparent windows using the window.options.transparent config setting on components and apps. (KB46457)

7.2.0

Release 06-30-22

Finsemble currently uses Electron version 17.0.0. (Chromium - 98.0.4758.74)
Finsemble Assimilation has been updated to Assimilation version 7.2.0.

Enhancements

  • Finsemble now prevents dropping window titlebars into the Toolbar's claimed space. (KB46983)
  • Updated .NET (Finsemble.dll) to use System.Net.WebSockets instead of WebSocket4Net. (KB46048)
  • Added a FSBL.PublishReady() function to .NET (Finsemble.dll). (KB46231)
  • Added a Finsemble.publishReady() function to Java API. (KB46232)
  • Added a notification feedback when importing/exporting workspace fails. (KB46117)
  • Added additional window event logging to assimilation, and added levels to match those of the Central Logger. (PR4902)
  • Added logging into Finsemble.log local file for .NET apps. (KB46889)
  • Added support to allow claimed space via config or user preferences. (KB46175)

Accessibility

  • Improved keyboard and screen reader support in the FDC3 Resolver dialog. (KB46158)
  • Provided screen reader support for Linker menu interactions. (KB46157)
  • Added aria labels to the General Preferences form. (KB46144)
  • Communicate toggle button states to screen readers in the Central Logger. (KB46170)
  • Added aria labels to the Toolbar menu buttons. (KB46142)
  • Added document.title to the dialog windows. (KB46150)
  • Updated htmlFor for project name label on SDD's Export Project view, added accessibility to Export.spec.tsx mocha tests and updated Accessibility.md. (KB46156)

Security

  • Added enforcement of http: and https: protocols for the internal method fin.desktop.System.openUrlWithBrowser to prevent launching of local files. (PR4995)
  • Enabled Chromium sandboxing across the entire electron application. (PR5009)

Bug fixes

Interop

  • Fixed a bug where the Linker was displaying even when interop.useLinker was set to false. (KB46773)
  • Fixed a bug where FDC3.raiseIntent missed appD entries when context wasn't specified for the intent. (KB45465)
  • Freestanding apps using the JavaScript Adapter are now properly removed from the desktop agent when closed. They will no longer show up as phantom apps during intent resolution. (KB46225)
  • Fixed a bug where the FDC3 Resolver UI, when cancelled, would be in an inconsistent state. (KB47143)

Notifications

  • Fixed a bug where an empty notification crashed Notifications search. (KB46873)
  • Fixed a bug where the notification toasts window was flickering. (KB46864)

System

  • Fixed a bug that was causing the promptUserOnDirtyWorkspace config value to be overwritten on startup. (KB46697)
  • Fixed a bug where the testing of storage adapter was at the kernel boot phase (now system-preuser). (KB46292)
  • Fixed a bug where dialogs could not be opened from custom services. (KB46911)
  • Fixed a bug where DialogManager.getParametersFromInDialog was not returning user given parameters. (KB46922)
  • Fixed a bug where DialogManager.respondAndExitFromInDialog was not returning spawnData. (KB46936)
  • Fixed a bug where the Central Logger components could appear to be selected for logging when they were not actually selected. (KB46835)
  • Fixed a bug in the JSON Schema for bumpElements that would cause some validators to fail. (KB47082)
  • Fixed a bug that was causing visible flickering on Toolbar menus when monitors had different scaling factors. (KB45962)
  • Fixed a bug where the Toolbar's movement could be restricted when undocking. (KB47138)
  • Fixed a bug where clicking menu after creating a group could break the group. (KB47133)

Window Management

  • Fixed a bug where the grouping icon still displayed after a component was maximized or minimized. (KB25971)
  • Fixed bugs that caused windows to temporarily become undraggable. (KB46570, KB47167, KB47202)
  • Fixed a bug where the WindowClient.fitToDOM() didn't set a correct window size. (KB30300)
  • Fixed a bug where the styling from Instagram was overwriting some of Finsemble's styling. (KB46898)
  • Fixed a bug where calling windowClient.setComponentState and windowClient.getComponentState did not modify component of windowName parameter. (KB25066)
  • Fixed a bug where a window became not resizable after being minimized with Win+D shortcut. (KB26881)
  • Fixed a bug where a window opened using window.open with specified size lost dimensions when moved. (KB46412)
  • Fixed a bug where Always On Top would not work on macOS. (KB46047)
  • Fixed a bug in WindowTitleBarShell, where using className.includes() broke if the element was not a string. Use classList.contains() instead. (KB47026)
  • Fixed a bug where the WPF close button didn't work after Finsemble disconnected. (KB47092)
  • Fixed a bug where windows did not always move. (KB47167, KB47202)

Workspaces

  • Fixed a bug where deleting a workspace marked to load at startup would cause an OS toast to show a warning. The workspace load messages will now be shown in the Central Logger as warnings. (KB46110)
  • Fixed a bug where importing multiple workspaces using WorkspaceClient.import() was not importing workspaces correctly. (KB47069)
  • Fixed a bug where the Load this workspace on startup checkbox in the Workspaces Preferences Menu was unclickable and checked. (KB46452)

Deprecations

  • certificate.trusted has been deprecated when spawning external assets and will now return with an error. (PR5028)

7.1.0

Release 05-31-22

Finsemble has been updated to use Electron version 17.0.0. (Chromium - 98.0.4758.74)

Enhancements

  • Enabled suppressing the Linker menu keyboard shortcut via the Seed with new optional flag <LinkerButton enableKeyboardShortcut={false} />. (KB45853)
  • Added a confirmation prompt when Finsemble is restarted. (KB30993)
  • Added a page to the SDD to enable adding and configuring app services. (KB45959)
  • Allowed the public key used in static authentication to be specified by a URL (as opposed to being specified in AppD config). (PR4848)
  • Window dragging behavior was improved. (KB46029)
  • Exporting logs via the Central Logger now displays a "Creating log export file. Please wait..." message while generating the export file. (KB39840)
  • Make the Router's web-socket transport (FinsembleTransport) more secure and efficient. (PR4901)

Accessibility

  • Provided support for language codes for app titles in the app launcher with new lang field. (WCAG 3.1.2) (PR4748)

Bug fixes

System

  • Fixed a bug to allow FDC3 authentication to reauthenticate on reload or redirect. (PR4803)
  • Fixed a bug where favoriting app with star incorrectly closed menu. (KB46097)
  • Fixed a bug where Finsemble menus were not always on screen when monitor configurations were not square. (KB33123)
  • Fixed a bug where auto-update wasn't working when downloadUpdatesViaElectron was set. (KB46395)
  • Fixed a bug where Notification toasts were blocking content. (KB46878)
  • Fixed a bug where the Notification Center was throwing errors when receiving numerous notifications at once. (KB45944)

Window Management

  • Fixed a bug that was allowing maximized windows to be draggable. (KB46083)
  • Fixed a bug that would hide a window group when a member window was closed. (KB46846)
  • Fixed a bug where scrollbars incorrectly showed alongside window titlebars. (KB46320)
  • Fixed a bug where invalid spawn params where causing errors and preventing application spawns. (KB45331)
  • Fixed a bug where a window may temporarily become undraggable. (KB46570)
  • Fixed a bug where the SystemTrayComponent's bounds were returning invalid dimensions. (KB45940)

Deprecations

  • The FSBL.Clients.WindowClient.getCurrentWindow().getSnapshot() has been un-deprecated because the window titlebar was integrated into the content view. (PR45926)

Removals

  • Removed references to native in spawn params as it is deprecated, undocumented, and unused. (KB45331)

7.0.1

Release 05-12-22

  • Fixed a bug where a dependency version was incorrect in .NET Core apps causing the building of .NET Core apps to fail. (KB46278)
  • Fixed a bug where ConfigService.processAndSet could fail under certain circumstances. (KB46271)
  • Fixed a bug where hyphens were no longer allowed in the UUID. (KB46236)

7.0.0

Release 05-09-22

Finsemble has been updated to use Electron version 16.0.8. (Chromium - 96.0.4664.110)

Enhancements

FDC3/Interop

  • Virtual App Interop has been added to Finsemble. Read more at Setting up virtual app interop.
  • New SelectConnect Auto-Associate functionality supports auto-join for linker channels. (KB43220, KB42303)
  • The number of available linker channels is increased from six to eight. (KB43220)
  • AppD's title field is now supported. This is the recommended field for setting an app's display name (the name that will appear in launcher menus). (PR4638)
  • AppD config can now use an appId that is different from the appName; however, for any standalone app using a static authentication token, if the appId is different than the appName, then the appId value must be used for the appName startApp parameter. (KB36850)
  • Added support for App Channels for the FDC3WPFExample app. (KB41631)

Smart Desktop Designer (SDD)

  • Expanded the SDD's add app box to include an "API access" checkbox. (KB43989)
  • Updated the SDD's add app box to add Virtual interop apps. (KB41513)
  • Aligned User Preferences and SDD styles for consistency. (PR4374)
  • Added the "Inject title bar" config setting to the SDD. (KB41513)
  • Added the "Process affinity" config setting to the SDD. (KB41513)

System

  • The AuthenticationClient and SearchClient API calls now return promises (as well as optional callbacks). (PR4343)
  • finsemble.logger.logToDiskLevels now allows Central Logger messages to be saved to the FEA Log (on disk). (PR4155) For example, to save errors and warnings to the FEA log:
"finsemble" : {
"logger" : {
"logToDiskLevels" : ["error","warn"]
}
}
  • Moved loadUserDefinedComponentsTask boot task to preuser from the kernel stage to ensure that authentication has been completed. (KB40316)
  • Added additional boot stages (i.e. system-preuser, preuser2, preuser3, preuser4) to provide more startup flexibility, especially for app services. (KB44943)
  • Memory usage display in Process Monitor increased to two decimal points of precision. (PR4296)
  • Implemented SystemManagerClient in .NET. (KB44927)
  • Added support for .env files. (KB42293)
  • Added ability to specify Finsemble config variables based on environment variables. (KB30243)
  • Added FSBL.System.getEnvironmentVariable so environment variables can be retrieved. (KB32988)
  • Created common css for styles shared across different components. (KB41448)
  • Added the ability to "Select All" for notifications displayed in the Notifications Center. (KB40002)
  • Replaced Electron affinity (removed in Electron 14) with the Finsemble Electron Adapter process affinity feature (which respects siteIsolation when grouping render processes). (PR3947)
  • The JAVA API now has parity with the .NET API. (KB43020)

Window Management

  • Added the ability to bump absolute and fixed elements and adjust content sizing when the titlebar is injected into the component. (PR4192)
  • Workspace switches no longer have to wait for web windows pending their first load. Instead, pending windows are now closed automatically on workspace switch. (KB44369)

Accessibility

  • Updated keyboard navigation for toolbar menus to support screen readers. (KB44365)
  • Updated icons in the User Preferences dialog to better support screen readers. (PR4318)
  • Updated keyboard navigation for the tab groups in the Smart Desktop Designer to align with the WAI-ARIA authoring practice guidelines. (PR4289)
  • Updated Finsemble toolbar buttons to have labels for screen readers. (KB45016)
  • Updated radio button attributes in the Smart Desktop Designer to better support screen reader users. (PR4291)
  • Added invalid field error messages on the Smart Desktop Designer's Preloads page. (KB44936)
  • Provided a lang attribute in the seed's .html files. This provides support for WCAG criteria 3.1.1, "Language of Page". (PR4659)
  • Fixed a bug where the Opacity field on the Smart Desktop Designer's app edit page didn't include an accessible label for screen readers. (PR4292)
  • Fixed a bug where the comboboxes in the Smart Desktop Designer and User Preferences panels could not be expanded using the keyboard alone. (PR4293)
  • Fixed a bug where the Smart Desktop Designer's decorative icons had alt text, which provides a poor user experience for screen reader users. (PR4288)

Bug fixes

Notifications

  • Fixed a bug where sending a notification update could cause toasts to get stuck. (KB45437)
  • Fixed a bug where sending too many notifications at once could cause storage adapter to fail. (KB45437)
  • Fixed a bug where notifications would not load when scrolling the notification center. (KB45000)

System

  • Fixed a bug where an app's content security policy was overridden by the content security policy in the manifest. (KB38529)
  • Fixed a bug where removing a default storage adapter was preventing Finsemble from starting up. (KB30103)
  • Fixed a bug where the SystemManager window did not have a frame. (KB45100)
  • Fixed a bug where Finsemble would not wait to be updated before starting. (KB45213)
  • Fixed a bug where setting Discard unsaved workspace changes in the Preferences would throw a schema validation error. (KB45141)
  • Fixed a bug where windowData was missing when a workspace was loaded. (KB45148)
  • Fixed a bug where the Central logger wouldn't expand all data attached to a log message. (KB21824)
  • Fixed a bug where the config to sign macOS installers was incorrect. (KB44096)
  • Fixed a bug where deprecated config was incorrectly being inserted into config by default. (KB45208)

Toolbar/Dashbar

  • Fixed a bug where React would not recognize that widgets had changed. (KB44114)
  • Fixed a bug where the Toolbar spawned off the monitor when monitor setup changed between sessions. (KB43858)
  • Fixed a bug where apps with icons that were pinned using the Advanced App Launcher did not display their icons. (KB44853)
  • Fixed a bug where the render of custom components could break the entire toolbar - second part to KB42770. (KB42759)
  • Fixed a bug where a Toolbar was dockable to both edges of the monitor when the settings allowed only one. (KB39330)
  • Fixed a bug where Dashbar items could be misaligned with their titles when removing a dashbar item under certain conditions. (KB44869)
  • Fixed a bug where Dashbar items shifted when scrolling with divider. (KB45006)

Window Management

  • Fixed a bug where Windows taskbar showed incorrect window title upon workspace reload. (KB44864)
  • Fixed a bug where the bounds-changed event didn't have the final state when a window was docked. (KB18544)
  • Fixed a bug where the tiling scrim flashed when dragging a tab over to tile. (KB45421)
  • Fixed a bug where ejected tabs were not brought to front. (KB15550)
  • Fixed a bug where the config allowAutoArrange wasn't being respected when it was false. (KB44131)
  • Fixed a bug where non-resizable components were allowed to tile. (KB39640)
  • Fixed a bug where maximized components were allowed to tile. (KB36212)
  • Fixed a bug where manageWindowMovement was not defaulting to "false" as described in the schema. (KB22503)
  • Fixed a bug where passing a component's name in showDeveloperTools did not open the target component's developer tools. (KB44172)
  • Fixed a bug where untabbing was not allowed under certain circumstances. (KB45218)
  • Fixed a bug where native apps allowed snapping and grouping even when they had been disabled in the appD config. (PR4303)
  • Fixed a bug where FDC3 client in titlebar failed to register. (KB45042)
  • Fixed a bug where the tabs flashed UUID when dragging a tab of another window. (KB44478)
  • Fixed a bug where moving a window reset its opacity to 100%. (KB25327)
  • Fixed a bug where tabs did not always render the correct title in some cases. (KB41885) Titles are derived from the following precedence:
    • User edit (double clicking the tab title)
    • Manifest configuration
      • manifest.foreign.components.Window Manager.FSBLHeader.title
    • manifest.foreign.components.Window Manager.title
    • document.title

Documentation

  • Updated schema to add foreign.components.["Window Manager"].FSBLHeader.bumpElements which can adjust the position of fixed and absolute positioned elements when the titlebar is injected. (PR4192)
  • Updated schema to add foreign.components.["Window Manager"].FSBLHeader.adjustContentHeights which can disable automatic adjustments to content sized using the view height when the titlebar is injected. (PR4192)
  • Added a schema entry for storage adapter operation timeouts. (KB45089)
  • Updated Router examples. (KB45082)

Deprecations

  • Removed component SmartDesktopDesigner from the seed project. This component is now bundled with Finsemble's platform library. If merging your project from seed, you may optionally remove the SmartDesktopDesigner from webpack/webpack.finsemble-built-in.entries.json.
  • WindowClient.getWindowGroups has been deprecated. This function was previously private. If you are using this function please contact support.
  • HotkeyClient.addLocalHotkey and HotkeyClient.removeLocalHotkey have been deprecated. Instead, use window.addEventListener and window.removeEventListener.
  • manifest.window.windowType has been deprecated in favor of setting manifest.window.affinity. Setting to "false" will disable render process grouping for web windows.
  • persistWindowState has been deprecated. WindowClient saves and loads window dimensions through updateOptions. (KB44944)
  • Clients (e.g. ConfigClient, StorageClient) no longer need explicit calls to initialization() or isReady() when being used in services or otherwise.
  • neededClients config is no longer necessary. Clients no longer require explicit initialization.
  • FSBL.Clients.baseClient has been deprecated. It is no longer necessary to use Finsemble's client dependencies when building customer interfaces. Simply have your client code wait on the FSBL.onReady event.
  • ApplicationClient: appSignOn(), appRejectAndRetrySignOn(), appAcceptSignOn(), appRejectSignOn() - These functions were never officially released and predate OAUTH and OpenID. If you are using any of these functions please contact Finsemble support for assistance.
  • ConfigClient: handleChanges(), changeSub() - These are internal functions that should not be called directly. If you are using these functions please contact Finsemble support.
  • DialogManager: createStore() - It is no longer necessary to manually call this function. It can be eliminated from any code that uses it.
  • DialogManager: getAvailableDialog(), sendQueryToDialog() - These are internal functions that should not be called directly. If you are using these functions please contact Finsemble support.
  • WindowClient: getCurrentWindow() - Use FSBL.System.Window.getCurrent() instead.
  • WorkspaceClient: _getWindowState(), _setWindowState() - These are internal functions that should not be called directly. Use WindowClient.getComponentState() and WindowClient.setComponentState().
  • WorkspaceClient: saveWorkspaceTemplateToConfigFile() use exportToFile().
  • WorkspaceClient: addWorkspaceDefinition() use importWorkspace().
  • WorkspaceClient: getWorkspaceDefinition() use exportWorkspace().
  • WorkspaceClient: createNewWorkspace() use createWorkspace().
  • WorkspaceClient: setWorkspaces() use setWorkspaceOrder().
  • WorkspaceClient: workspaceExists() use getWorkspaces().
  • WorkspaceClient: removeWindow(), addWindow() - These are internal functions that should not be called directly. Please contact Finsemble support if you are using these.
  • finsemble.notificationURL is deprecated as it is no longer used by system toasts.

Removals

  • "@finsemble/finsemble-core/components/system/notification.html" has been removed.

6.6.7

Release 02-27-23

  • Fixed a bug where LinkerClient crashed during .NET window close after legacy linker menu linked to a channel. (KB51541)

6.6.5

Release 11-28-22

  • Extended window spawn timeout to handle situations where a low-spec machine or machine/network under load slowed down window creation. (PR5409)

6.6.4

Release 08-04-22

  • Enhanced workspace import to support incorrectly formatted workspace JSON files. (KB48037)

6.6.3

Release 05-26-22

  • Fixed a bug where Finsemble would not wait to be updated before starting. (KB45213, KB46650)
  • Fixed a bug where autoupdate using downloadUpdatesViaElectron set to true caused an exception. (KB46395)
  • Fixed a bug where interop.useLinker set to false was still incorrectly showing Linker. (KB46773)
  • Fixed a bug where Finsemble.Connect hung in .NET if linker.enabled was set to true. (KB46576)

6.6.2

Release 04-27-22

  • Fixed a bug where a floating toolbar was incorrectly moving behind windows after opening apps. (KB45377)
  • Fixed a bug where sending a large amount of notifications at the same time could cause the storage adapter to fail. (KB45437)

6.6.1

Release 03-18-22

  • Fixed a bug where default Affinity values were not being set for Finsemble services, resulting in higher memory usage. (PR4308)

6.6.0

Release 03-10-22

Finsemble has been updated to use Electron version 13.6.9. (Chromium - 91.0.4472.164)

Finsemble Assimilation has been updated to Assimilation version 6.6.0.

Enhancements

Finsemble Electron Adapter

We've improved FEA for security, performance, and usability. This includes changes to the FSBL.System and e2o objects which are generally used internally by Finsemble but have been used by customers for various purposes.

  • FEA no longer uses Electron.remote.
  • FEA no longer uses eval.
  • FEA no longer supports Node.js grpc. We recommend that you use grpc-web instead.
  • The main FEA preload (e2o.js) is now synchronous. This means that FSBL is available before the browser's "load" event is triggered.
  • The secondary FEA preload e2o_view.js has been eliminated. BrowserViews and BrowserWindows now both use e2o.js.
  • The concept of "Application" has been removed from FEA. Instead, create Windows with the optional parameter spawnAs: "process".
  • Errors that occur inside FEA are output to the console when running in developer mode (when ELECTRON_DEV env is set, which is automatic when launching from Finsemble's seed project). Errors continue to be logged in the FEA log.
  • Errors are now caught in FEA during event callbacks.
  • BrowserViews now use their WebContents ID as their view ID.
  • FSBL.System.Window now has a member webContentsName which contains a displayable name that indicates whether it is a title bar, regular window, or custom view.
  • FSBL.System.Window now has a member webContentsId which contains Electron's WebContents ID for the current page, which is guaranteed to be unique.
  • window.open calls are now handled by Electron's setWindowOpenHandler() method. You can override this by setting the finsemble-electron-adapter.windowOpenMethodology manifest config (see schema for options).
  • The manifest's startup_app parameters are now options. uuid defaults to "Finsemble". name defaults to the name that is specified in installer.json. FEA now accepts command line argument --name which is set by the seed's gulpfile when running in developer mode.
  • Finsemble's core window now appears as "System Manager" in the Central Logger.
  • Holding ctrl, shift, alt or meta key when clicking the system tray will take the same action as right-clicking. This makes the system tray easier to use on hardware with trackpads.
  • FEA's preload is no longer obfuscated (only minified).
  • All network errors are now logged in FEA logs. Formerly, these errors were only logged when Finsemble was started with the --log-all-network-errors command line argument.
  • HTTP load errors in the 400-599 range are now logged in FEA logs unless you set finsemble.["finsemble-electron-adapter].logHTTPErrors to false in the manifest.
  • window.open that results in 400-599 errors now properly displays a titlebar.
  • AppData e2o/cache/remote-modules has been renamed e2o/cache/preloads.
  • FSBL.getFSBLInfo() now returns version numbers for Electron and FEA (as well as FSBL) and flags to indicate when running in dev mode.
  • Added the ability to retrieve environment variables and information about network interfaces. (KB42479)
  • Downloaded appAssets are loaded with a no-cache directive that prevents Chromium from caching the zip files. This ensures that assets are truly freshly downloaded if the directory is cleared.

AppD Icons

Finsemble now supports AppD's "icons" field according to FDC3's upcoming 2.0 specification ("src" field). This closely follows the W3C standard for Web Manifests. See Finsemble's icon tutorial for more information. Finsemble continues to support setting icons via the proprietary config foreign.components.Toolbar.

App icons will now display in the MS Windows taskbar (previously the smart desktop icon was displayed and will continue to be displayed for the main application and for any apps without an icon).

Central Logger

  • Central logger now displays TitleBar "shell" windows prefixed with "(TitleBar) ".
  • Central logger now displays Dashbar views prefixed with "(Dashbar) ".
  • Central logger now displays the toolbar menus prefixed with "(Menu) ".

System

  • FSBL.System.Window.getCurrent().isTitlebarWindow() - Returns true if the current webcontents is a titlebar shell.
  • FSBL.System.terminate() - Terminates FEA (using Electron's exit() function).
  • FSBL.System.getFEAInfo() - Returns Electron and FEA version numbers.
  • FSBL.getFSBLInfo() now returns FEA and Electron versions in addition to API version and gitHash.
  • FSBL.System.deleteAssets() can now be called to manually delete previously downloaded appAssets. Assets will then be redownloaded when Finsemble is restarted.
  • Added two new Workspace preferences to set "prompt user on dirty workspace" and "discard unsaved workspace" changes. (KB40525)
  • Added default number of retries for manifest fetching and OS level popup when Finsemble startup fails. (KB41246)
  • Added the ability for Finsemble to do a daily or weekly scheduled shutdown. Also added a weekly option to Finsemble's scheduled restart. (KB39004)
  • Reduced the footprint of Central Logger by queuing fewer messages (except for when debug logging is enabled). Also, log messages are pruned to 10 KB when they exceed this limit.
  • Finsemble's default "Tour" app has been relocated from components.json to appd.json. (The Tour app is for demonstration purposes and can be removed when developing your smart desktop)
  • Splash screen now closes automatically when Finsemble enters the "authentication" boot phase. This ensures that the splash screen is hidden before users are asked to log in. This occurs regardless of the timeout that is specified in the smart desktop manifest.
  • Smart Desktop Designer includes new UI changes. (KB42704)

Window Management

  • Added the ability to make the toolbar's default launcher menu optional when custom menus are configured. (KB42660)
  • Added the ability to rename/edit a window title via double-click when Tabbing is disabled. (KB42354)
  • Added new config that allows to specify whether anchor tags and URLs should be opened in the OS default browser or in a Finsemble window. (KB42118)
  • Added two new configs to allow configuration of maximum reload attempts and maximum reload timeout for a component's web contents. (KB42968)
  • Toolbar now detects graceful shutdowns, allowing quicker shutdown.
  • The second parameter of window.open() ("target") is now displayed in Central Logger.
  • Devtools accelerators (e.g. ctrl-shift-i) now automatically open the app contents (BrowserView) instead of the title bar view. (KB36005)
  • Users can configure Window titlebars to be injected directly into the app contents pane or be isolated into a separate BrowserView via the new titlebarType config which can be set globally finsemble.["Window Manager"].titlebarType or for individual components foreign.components.["Window Manager"].titlebarType.
  • FSBL now supports freestanding apps's static authentication using a JSON Web Token. (PR4033)
  • The config now has an extensions section, where extensions like preloads can be registered. (KB43121)

Bug Fixes

  • Fixed a bug where CTRL-R would not refresh the Browserview of a window. (KB43460)
  • Fixed a bug where openUrlWithBrowser threw an error if it wasn't called with a callback. (KB44489)
  • Fixed a bug where a Save Workspace pop up was shown after Reset command. (KB42079)
  • Fixed a bug where an error dialog would be displayed when the protocol handler was invoked. (KB42935)
  • Fixed a bug where Launcher Client was outputting an error when spawning launchGroup component type. (KB43003)
  • Fixed a bug where Group windows specified in the initial workspace broke when dragged. (KB42720)
  • Fixed a bug where new windows that were created by clicking an anchor tag with a _blank target would not automatically close. (KB41697)
  • Fixed a bug where Angular apps generated by the cli had a wrong URL in the appd.json. (KB39821)
  • Fixed a bug where cross-domain router messages were incorrectly being trusted. (KB43472)
  • Fixed a bug where a showWindow function called from a desktop service didn't work. (KB39202)
  • Fixed a bug where Finsemble would not start if there was an error launching the external assimilation application. (KB43420)
  • Fixed a bug by adding a default log folder path where a bad/invalid path in assimilation would prevent assimilation start. (KB41997)
  • Fixed a bug where the Advanced App Launcher was not displaying the displayName config in appd.json. (KB38687)
  • Fixed a bug where schema had a typo and doc generation was not creating all code snippets examples. (KB43990)
  • Fixed a bug where default window options were not being overridden by custom values in the AppD config. (KB43980)
  • Fixed a bug where addLocalHotkey incorrectly registered as a global hotkey. (KB43156)
  • Fixed a bug where a second Autoarrange() call was not restoring windows. (KB43582)
  • Fixed a bug where it was possible to tile a component that had tiling disabled. (KB39630)
  • Fixed a bug where Always On Top status for native apps did not persist across workspace reloads. (KB44327)
  • Fixed a bug where in the seed's tsconfig.json file as typeRoots was changed to node_modules/@finsemble. This is more in line with how this field is designed to work. A dependency for @types/react was added to the seed's package.json. Without this dependency the seed project will not compile correctly with the new typeRoots configuration. (PR4073)

Deprecations

  • windowType: "composite" was deprecated. Use windowType: "launchGroup" instead. (KB42495)
  • FSBL.Clients.WindowClient.getCurrentWindow().getSnapshot() was deprecated and will be removed soon. (KB42451)
  • e2o.main() - used internally. FEA is now synchronous so there is no need to wait for main().
  • FSBL.System.hasBrowserView() - use FSBL.System.isTitlebarWindow() instead.
  • FSBL.System.getVersion() - use FSBL.getFSBLInfo() instead.
  • FSBL.System.Window.uuid - The use of uuid's in Windows has been deprecated. Windows can now be keyed strictly by their name.
  • FSBL.System.Window.setTrayIcon - use FSBL.System.setTrayIcon() instead.
  • FSBL.System.Window.removeTrayIcon - Finsemble no longer supports removing the tray icon. Remove the finsemble.systemTrayComponent config from the Manifest to not display a tray icon.
  • window.name - use fin.desktop.Window.name instead.
  • Component config foreign.components.Toolbar.iconURL is deprecated in favor of AppD icons field.
  • Finsemble config finsemble.servicesConfig.launcher.defaultPreloads in favor of finsemble.extensions.preloads.

Removals

  • FSBL.System.container variable (formerly always equaled "Electron").
  • FSBL.System.getAllExternalApplications() - this function was non-operational.
  • FSBL.System.Window.terminate() - this function was non-operational.
  • FSBL.System.Application.* - use FSBL.System.Window.
  • FSBL.System.ExternalApps - this object was non-operational.

Documentation

  • Marked notificationsCenterComponentType as experimental
  • Added the Finsemble Icon to the browser title bar on documentation site. (KB38154)
  • Updated schema to add finsemble.toolbarMenus which allows configuration of custom toolbar launcher menus. (KB38487)

6.5.3

Release 03-04-22

  • Fixed a bug where schema had a typo and doc generation was not creating all code snippet examples. (KB43990)
  • Fixed a bug where launchableByUser was not always respected when a component was launched. (KB43980)
  • Fixed a bug where React did not recognize that Dashbar widgets had changed. (KB44114)

6.5.2

Release 02-23-22

  • Fixed a TypeScript mismatch problem introduced from migrating some APIs from the finsemble-core package to the finsemble-api package. (PR4085)

6.5.1

Release 02-18-22

  • Fixed a bug where an error dialog would be displayed when the protocol handler was invoked. (KB42935)
  • Fixed an incorrect flag being set for debounce in the Launcher service which caused Dynamic Config to not work as expected. (PR4060)
  • Fixed a bug where claimed space sometimes rendered incorrectly after locking a workstation. (KB42743)
  • Fixed TypeScript errors being thrown on first-time install within a Seed project. (PR4041)

6.5.0

Release 02-14-22

Finsemble has been updated to use Electron version 13.6.2. (Chromium - 91.0.4472.164)

Enhancements

  • Enabled treeshaking in Finsemble to reduce bundle size and enhance performance. (KB41357)
  • Added support for macOS app notarization. (KB42330)
  • Added preloads to Smart Desktop Designer. (KB40975)
  • Node.js memory max has been increased from 2GB to 4GB during seed webpack builds using the --max-old-space-size node option. (PR3694)
  • Added new config to specify the addIntentListener maximum initialization timeout. (KB41971)

Bug Fixes

Dashbar

  • Fixed a bug where the Dashbar scrolling layout was broken when using widget dividers. (KB41453)
  • Fixed a bug where removing items from the Dashbar could leave it in a bad state. (KB42254)
  • Fixed a bug where resizing the Dashbar triggered a spike in CPU usage. (KB40620)

Native

  • Fixed a bug where the WindowlessExample.Core project didn't respond on search API calls. (KB41940)
  • Fixed a bug where assimilation was not using the configured port. (KB41517)

System

  • Changed notifications service boot stage to preuser to prevent notifications being placed under a default user when no user was present. (KB41567)
  • fdc3.getInfo() was not returning a providerVersion member. (KB41945)
  • yarn clean no longer attempts to remove the following deprecated directories: /.babel_cache, /finsemble, /common. (PR3642)
  • yarn clean now uses path.join(__dirname so that it will remove files when called from remote directories. (PR3642)
  • Fixed a bug where search results returned without the actions property defined would throw an error. (KB42770)
  • Fixed some typos in Finsemble schema. (KB42725)
  • Increased the default startup timeout for custom services from 10s to 30s. (PR3902)

Window Management

  • Fixed a bug where the menu portal would not close if the menu button was removed from the toolbar. (KB41405)
  • Fixed a bug where grouped windows could cease to move. (KB42420)
  • Fixed a bug where window titles did not render correctly in stacked configurations. (KB41885)
  • Fixed a bug where tabbing a window with always on top enabled could increase CPU usage. (KB42430)
  • Fixed a bug where windows would not allow tabs to be dragged in. (KB42053)
  • Fixed a bug where grouping did not persist with autoShow: false. (KB41503)
  • Fixed a bug where group spawner was spawning components in the wrong position when no top and left properties were added to the config. (KB42207)
  • Fixed a bug where group spawner was not adding components to workspace unless explicity specified. (KB42212)
  • Fixed a bug where window titlebar buttons did not work for second child windows. (KB41421)
  • Fixed a bug where auto-arrange was not working properly for groups or a combination of groups and windows. (KB42177)
  • Fixed a bug where claimed space sometimes rendered incorrectly after locking a workstation. (KB42743)
  • Fixed a bug where .net hotkey listener wasn't being added at startup. (KB42656)

Workspaces

  • Cleaned up unused data saved into workspaces. Note this may cause existing workspaces to appear dirty when loaded, until a clean version of the workspace is saved. (KB41769)
  • Fixed a bug where the Default Workspace was always marked as dirty. (KB41524)

Documentation

  • Updated schema to remove finsemble.servicesConfig[*].active properties which are no longer used. (KB42111)
  • Updated Finsemble constructor documentation to reflect the three types of objects that can be passed to the .NET constructor. (KB40880)
  • Updated .NET Core API and documentation for consistency with .NET 4.5.2. (KB41970)
  • Updated Build your smart desktop with me tutorial, which now covers preloads.
  • Added Configuring preloads help topic.
  • Added Hotkeys topic.
  • Added Enterprise deployment best practices topic.
  • Modified the table of contents to make information easier to find.

6.4.0

Release 12-21-21

Finsemble has been updated to use Electron version 13.6.1. (Chromium - 91.0.4472.164)

Enhancements

  • Reworked the layout, color scheme, verbiage, and general look-and-feel of the Smart Desktop Designer.
  • Streamlined the process of adding an app in the SDD.
  • Expanded the ability to configure individual apps within the SDD
  • Removed trustedPreloads from the Finsemble config schema as this config is no longer required as all preloads specified in the config are considered trusted. (KB40997) Smart Desktop Designer (SDD)
  • Reworked the layout, color scheme, verbiage, and general look-and-feel of the Smart Desktop Designer. (KB41578, KB41575, KB41573)
  • Streamlined the process of adding an app in the SDD. (KB41247)
  • Expanded the ability to configure individual apps within the SDD. (KB4152)
  • Modified the behavior of the SDD's application list to enable applications to be launched from the list. (KB41522)
  • Included the Finsemble version number in the SDD. (KB41598)
  • Removed the Font Size selector from the SDD Themes page. (KB3411)

System

  • Finsemble auto-update now cleans up older installation files and only downloads files greater than the current installed version. (KB40652)
  • Removed trustedPreloads from the Finsemble config schema as this config is no longer required as all preloads specified in the config are considered trusted. (KB40997)
  • Updated error message when retrieving manifest fails to a more end-user friendly message. (KB40772)
  • Finsemble now supports ignoring certificate errors for specific domains when using self-signed TLS certificates. (KB40886)
  • Converted 2 files to typescript: localStorageAdapter and indexedDBAdapter. (PR3098)
  • Added keyboard navigation and focus indicators to the Central Logger. (KB39483)
  • Added waitForPersistentStoreToLoad parameter to FSBL.Clients.DistributedStoreClient.getStore(). This will wait for persistent stores to load (necessary only in services that are launched before authentication stage. (PR3308).
  • Reduced reliance on remote storage in the WorkspaceService by adding a caching layer to the WorkspaceManager & WorkspaceClient and refactoring workspace load. (KB41523)

Window Management

  • Added minHeight to the Menu API and e2e test to test height of menu. (KB41376)
  • Implemented API in finsemble-electron-adapter to support setMinimumSize and setMaximumSize window height. (KB40547)
  • Reduced reliance on remote storage in the WorkspaceService by adding a caching layer to the WorkspaceManager & WorkspaceClient and refactoring workspace load. (KB41523)
  • Added minHeight to the Menu API and e2e test to test height of menu. (KB41376)
  • Include the Finsemble version number in the SDD (KB41598)
  • Modify the behavior of the SDD's application list to enable applications to be launched from the list (KB41522)
  • Removed the Font Size selector from the SDD Themes page (KB3411)
  • Converted 2 files to typescript: localStorageAdapter and indexedDBAdapter
  • Added new configuration allowEditing that allows tab renaming to be enabled or disabled. (KB41245)
  • Finsemble permits the use of the "backgroundThrottling" flag in window options. When set to "false", background throttling for operations such as animations and timing loops will not be throttled. The default value is "true", which is the behavior prior to this enhancement. (KB41280)

Bug Fixes

Smart Desktop Designer (SDD)

  • Fixed false positive for SDD menu error messages when menus have exactly 1 app. (KB41581)
  • Fixed a bug where SDD recommends an app name to be "Html". (KB41579)

System

  • Fixed a bug where an error would appear in the console when installer.txt is not found. (KB40159)
  • Fixed a bug where the incorrect error message would appear in system log when a storage adapter was not ready. (KB35306)
  • Fixed a bug where the About menu item on macOS would have an incorrect application name. (KB36271)
  • Added missing type for the protocol-handler-triggered system event and corrected the type for the FSBL.System.getProtocolString() function. (KB40836)
  • Fixed a bug where INotification and IAction types were causing errors in the IDE and typescript builds because id was required and not provided for IAction and INotification was not a Partial to avoid having to set advanced fields. (KB41239)
  • Renamed the InteropService -> interopService and notificationService -> notificationsService to match conventions and allow config (via finsemble.servicesConfig.<serviceName>.spawnAs) to isolate each service into its own process for debugging purposes. (KB41496)
  • Changed the default logger settings (which are overridden on logger registration) to exclude the info/debug/verbose levels. (KB41523)
  • Fixed a bug where invalid properties in FinsembleDialogButton were generating console warnings. (KB41641)
  • Fixed a bug where persistURL was not working correctly with routed apps. (KB41876)

Toolbar

  • Fixed a bug where the toolbar bounds were not being saved when docking was disabled. (KB40271)
  • Fixed a bug where the Advanced App Launcher moved when clicking folders while on secondary monitor. (KB36251)

Window Management

  • Fixed a bug where Electron zoom was being applied erroneously to cross-domain components. (KB40647)
  • Fixed a bug where the taskbar icons were not updating when grouped windows were being ungrouped. (KB40873)
  • Fixed a bug where switching tabs in stacked a maximized window can sometimes unmaximize the window. (KB40608)
  • Fixed a bug where grouped windows in macOS would not all come to the front when one of the windows was focused. (KB38393)
  • Fixed a bug where titlebar maximize/restore state did not match Finsemble's internal state after refreshing an app. (KB37165)
  • Fixed a bug where the window name flashed in the titlebar instead of the configured window title. (KB37745)
  • Fixed a bug where showWindow would not move a window to the correct position if a bound is set to 0. (KB40902)
  • Fixed a bug where multiple taskbar windows were incorrectly shown for stacked windows. (KB40204)
  • Renamed the InteropService -> interopService and notificationService -> notificationsService to match conventions and allow config (via finsemble.servicesConfig.<serviceName>.spawnAs) to isolate each service into its own process for debugging purposes. (KB41496)
  • Fixed a bug that prevented .Net components from handling authentication on startup (as they were waiting for the user boot stage before fully initializing). (KB41656)
  • Changed the default logger settings (which are overridden on logger registration) to exclude the info/debug/verbose levels. (KB41523)
  • Fixed a console warnings in dialogs (KB41641)
  • Fixed false positive for SDD menu error messages when menus have exactly 1 app (KB41581)
  • Fixed an issue where SDD recommends an app name to be "Html" (KB41579)
  • Fixed an issue where persistURL was not working correctly with routed apps (KB41876)
  • Fixed an issue where scrolling through dashbar widgets would place the widgets incorrectly (KB41453)
  • Fixed a bug where tabs did not always render the correct title. (KB41885)
  • Fixed a bug where excessive window state retrievals for persistedTitle were slowing system performance. (KB41544)

Documentation

  • Updated XML-documentation for Finsemble.dll.

Dependency Updates

  • Electron has been upgraded to 13.6.1. (PR3362)

6.3.3

Release 02-16-22

  • Fixed a bug where claimed space sometimes rendered incorrectly after locking a workstation. (KB42743)

6.3.2

Release 12-09-21

  • Fixed a bug where calling processAndSetcould slow down startup. (KB41612)

6.3.1

Release 11-24-21

  • Fixed a bug where the process monitor was failing to load. (KB41352)
  • Fixed a bug in .NET finsemble.dll where an explicit join was incorrectly required after a GetOrCreateChannel. (KB41426)

6.3.0

Release 11-09-21

Finsemble has been updated to use Electron version 13.3.0. (Chromium - 91.0.4472.164)


Finsemble Assimilation has been updated to Assimilation version 6.3.0. Claimed space is now properly released on all types of shutdown. (KB31784)
  • Finsemble's manifest no longer requires finsemble.logger.defaultClientLogLevels to be set. Finsemble now defaults to the same central logger level configuration (which can be overrriden by this config setting).

TypeScript improvements and Promisified API

The Typescript interface for Finsemble's API has been made more accurate. The following signatures are used in many of the APIs:

async foo(params : ..., cb?: StandardErrorCallback<Bar>): StandardPromise<Bar>

This signature is backward compatible with any existing code.

The callback StandardErrorCallback<Bar> expands to: ( err : Error | string | null | undefined, data ?: Bar ) => void The promise StandardPromise<Bar> expands to Promise<{ err ?: Error | string | null, data ?: Bar}>

Please notice that the data portion is ?: which means that it can be undefined if the function returns an error. If your existing typescript code doesn't account for this then you may get typescript errors. To avoid Typescript errors, your code should look like this when using callbacks...

FSBL.Clients.SomeClient.foo(params, (err, data) => {
if(err) // error condition
if(data){
// do something with data
}
});

...or like this when using promises:

const { err, data} = await FSBL.Clients.SomeClient.foo(params);
if(err) // error condition
if(data){
// do something with data
}

API calls that get data now support Typescript generics: async get<T = any>(params : ..., cb?: StandardErrorCallback<T>): StandardPromise<T>

The best pattern for your code would then be...

const { err, data } = await FSBL.Clients.SomeClient.get<Bar>(params);

...data will then automatically be of type Bar | undefined.

Deprecations

  • The finsemble-cli fpe command has been deprecated and will be removed in a future version.
  • FSBL.System.Clipboard static methods have been deprecated. The use of navigator.clipboard methods are encouraged instead. (KB34414)

The following API functions have been deprecated. If you are using any of these functions please let us know so that we can understand your use case and ensure a smooth transition to replacements or alternative approaches.

  • FSBL.Clients.DragAndDropClient
  • FSBL.Clients.LauncherClient.getComponentDefaultConfig
  • FSBL.Clients.LauncherClient.registerComponent
  • FSBL.Clients.LauncherClient.unRegisterComponent
  • FSBL.Clients.LauncherClient.getComponentsThatCanReceiveDataTypes
  • FSBL.Clients.WindowClient.getWindowNameForDocking
  • FSBL.Clients.WindowClient.ejectFromGroup
  • FSBL.Clients.WindowClient.getDesktopBoundingBox
  • FSBL.Clients.WindowClient.isPointInBox
  • FSBL.Clients.WindowClient.startTilingOrTabbing
  • FSBL.Clients.WindowClient.cancelTilingOrTabbing
  • FSBL.Clients.WindowClient.sendIdentifierForTilingOrTabbing
  • FSBL.Clients.WindowClient.stopTilingOrTabbing

Enhancements

  • Added a configurable native notification for FEA error logs. (KB38311)
  • Added companyName to installer.json. (KB39396)
  • Moved FSBL access to class instead of script level import. (KB39525)
  • Added ability to rename a window titlebar tab. (KB36294)
  • Added a notification for certificate errors. (KB18567, KB39564)
  • Replaced Electron's built-in remote module with @electron/remote. (KB39099)
  • Added promise.race for scheduled restarts and a countdown utility function. (KB39802)
  • Added compression for exported log files. (KB39725)
  • Added experimental feature fdc3.onDisconnect. (KB40003)

Accessibility

  • Improved accessibility of the FinsembleToggle component. (KB39361)
  • Added keyboard navigation support to the Process Monitor. (KB39484)
  • Added keyboard accessibility support to dropdown controls in Preferences menu. (KB39359)
  • Added keyboard accessibility support to the User Preferences dialog's Workspaces page. (KB40025)

Seed

  • Vendor bundling has been re-implemented for better size optimization. This will result in smaller Finsemble UI Components such as Toolbar. In order to take advantage of this enhancement, please merge the seed/webpack directory and package.json changes from this release into your project. Without this configuration, your apps will be larger than necessary.
  • publicPath settings in webpack have been modified to be less prescriptive. This will address issues with loading fonts via the tilde (~) syntax. publicPath is now set specifically in webpack.titleBar.js.

Bug Fixes

Dashbar

  • Fixed a bug where Dashbar height and placement was incorrect after restart. (KB40352)

FDC3

  • Fixed a bug where an FDC3 app not authorized to open another app did receive an error response. (KB37995)
  • Fixed a bug where fdc3.open without a specified context did not open the app. (KB37995)
  • Fixed a bug where fdc3.open and fdc3.raiseIntent promises resolved in client before the newly spawned app had registered. (KB37995)
  • Fixed multiple channel bugs where FDC3 client behavior differed from the FDC3 specification. (KB38385)

Native

  • Fixed a bug where the WPF Example Core app could not show grouped icon after workspace reload. (KB39979)
  • Fixed a bug where the WPF Example Core app would load dirty. (KB39773)
  • Fixed a bug in Finsemble.dll where native apps could not snap when registered by handle. (KB40241)
  • Fixed a bug where an evergreen native component would not show on workspace switch. (KB40334)
  • Fixed a bug where Finsemble.dll incorrectly flagged the DesktopAgentClient as connected before registration with the Interop service. (KB40669)

System

  • Fixed a bug where views could not be "flashed" in the advanced process monitor. (KB37504)
  • Adjusted the type definitions for AppLauncherMenu to allow specification of menu Ids for the StaticAppLauncherMenu and to allow any ReactNode to be used as the Menu toggle or title. (KB39878)
  • Fixed a bug where long notification titles were not being clipped and overflowing into notification header control. (KB39811)
  • Fixed a bug where the positioning of taskbar icon menu was incorrect. (KB37767)
  • Fixed a bug where AutoUpdate could fail on file validation when downloading via Electron. (KB40212)
  • Fixed a bug where local hotkeys were not functional. (KB38488)
  • Fixed a bug where Finsemble was sending spurious heartbeat warnings and errors. (KB39845)
  • Fixed a bug to cleanup stale clients from the Central Logger's persisted state. (KB38467)
  • Fixed a bug where addContextListener didn't support multiple handlers for the same context type. (KB39874)

Window Management

  • Fixed a bug where tabs and drag zones could become inaccessible on narrow resized windows. (KB39868)
  • Fixed a bug where large components spawned on large monitors could have incorrect BrowserView dimensions. (KB39687)
  • Fixed a bug where resizing components before they finished loading could cause incorrect BrowserView dimensions. (KB39738)
  • Fixed a bug where Linker messages were failing for Java apps. (KB39492)

Workspaces

  • Fixed a bug where the promptUserOnDirtyWorkspace setting was not respected on Finsemble shutdown/restart. (KB37273)
  • Fixed a bug where workspace renaming can delete an existing workspace. (KB39875)
  • Fixed a bug where spawning apps with extreme positional values could cause UI instability. (KB38353)
  • Fixed a bug where deleting a workspace through Preferences removed the workspace from the Preferences UI before the confirmation prompt was handled. (KB40438)
  • Fixed a bug where the workspaceClient did not have access to trigger an event on workspace load. (KB40540)
  • Fixed a bug where sometimes a workspace would be incorrectly flagged as dirty. (KB38721)

Documentation/Schema

  • Added .Net Notifications examples into tutorial. (KB35737)
  • Updated schema to support additional workspace properties. (KB36976)
  • Updated schema to add missing windowTitleBarUrl property. (KB36740)

Dependency Updates

Dependencies:

  • The ora package has been removed from @finsemble/finsemble-cli
  • Electron has been upgraded to 13.3.0 (PR2756)
  • The date-fns package has been upgraded from 2.16.1 to 2.25.0 in @finsemble/finsemble-ui (PR3237)
  • The async package has been upgraded from 3.2.1 to 3.2.2 in @finsemble/finsemble-ui (PR3237)
  • The babel-core package has removed from @finsemble/finsemble-ui (PR3237)
  • The @typescript-eslint/eslint-plugin package has removed from @finsemble/finsemble-ui (PR3237)
  • The @typescript-eslint/parser package has removed from @finsemble/finsemble-ui (PR3237)
  • The eslint related dev-dependency packages have been removed from @finsemble/finsemble-ui (PR3237)

6.2.1

Release 10-18-21

  • Fixed a bug where the workspaceClient did not have access to trigger an event on workspace load. (KB40540)

6.2.0

Release 09-20-21

Finsemble has been updated to use Electron version 13.2.1. (Chromium - 91.0.4472.164)


Deprecations

ExecuteJavaScript() is deprecated and will be removed a future version of Finsemble. Please remove all references to inject in your component config and replace them with preload. It is unlikely that your software is using this code, but if you are uncertain, check the central logger for deprecate messages.

Enhancements

FDC3

  • Finsemble now includes the FDC3 workbench, a developer tool designed to make it easy to develop and debug an FDC3 integration and to verify that your app communicates correctly with other apps via the FDC3 API.
  • Moved widgetTitleGenerator from the Seed to the UI package and replaced dependency FSBL.Interop.raiseIntent with fdc3.raiseIntent. (KB39530)

Native

  • AppD config now fully supports Interop service for Native apps. (KB39272)
  • Implemented static authentication for .NET and Java apps. (KB39183, KB38655)

System

  • Angular components are now excluded from webpack config. (KB30128)
  • Console logs now supported in all services, including Window, Interop, and Router. (KB39126)
  • Replaced node-notifier with Electron notification built-in support. (KB38310)
  • Integrated authentication and authorization in selectConnect Interop implementation. (KB38291)
  • Updated inactive tab background color to differentiate from titlebar background. (KB38501)
  • Auto Update packages can now be downloaded via Electron using the same proxy as Electron. (KB33919)
  • User notification alerts now can use configurable app name instead of Finsemble. (KB38226)
  • Added a boolean to window.finsemble to check whether in Finsemble or web browser view. (KB34019)
  • Added a symlink (current-FEA.log) pointing to the latest FEA log. (KB32123)

Bug Fixes

Dashbar

  • Fixed a bug where the Dashbar could render widgets incorrectly. (KB37118)
  • Fixed a bug where slow loading widgets caused Dashbar to render with overlapping items. (KB38758)
  • Fixed a bug where the Dashbar could load empty if it failed to wait for persisted data. (KB38413)

FDC3

  • Fixed a bug where fdc3.raiseIntent was not working with AppMetadata type for target. (KB38575)
  • Fixed a bug where the unfiltered listener signature fdc3.addContextListener(null, handler) was not supported. (KB38593)

Native

  • Fixed a bug where WPF apps using the old Linker Client could lock up when the linker pill was selected. (KB39464)
  • Fixed a bug where workspaces containing multiple JavaFX apps were unable to reload. (KB38682)

System

  • Fixed a bug where the titlebar was missing for System Log window. (KB38519)
  • Fixed a bug where FSBL.System.clearCache was not working correctly. (KB38083)
  • Fixed a bug where new Notifications appeared without a yellow halo on their sides. (KB38791)
  • Fixed a bug where the Registration form would sometimes hang after a successful registration. (KB39403)
  • Fixed a bug where transparent splash screens were not displayed correctly. (KB38473)
  • Fixed a bug where "Open Logger on Startup" setting in the Central Logger was not respected. (KB38305)

Toolbar

  • Fixed a bug in the handling of Search component results to ensure special characters display correctly. (KB38580)
  • Fixed a bug where favoriting applications with a displayName different from the Component name would not appear in the Favorites menu. (KB36809)
  • Fixed a bug where the Toolbar dockable option did not work properly with "false" and "[]" values. (KB38540)
  • Fixed a bug where dynamic config was not working in AppD and where clicking on Search results would not spawn app. (KB38741)

Window Management

  • Fixed a bug where the Drag to Share functionality was not working correctly. (KB38704)
  • Fixed a bug where theme.css injection was causing 404 errors and CSS conflicts. (KB39507)
  • Fixed several bugs where BrowserViews were mishandling invalid URLs. (KB39132)
  • Fixed a bug where Linker was not working correctly for freestanding apps. (KB38614)
  • Fixed a bug where dynamic registration of intent listeners was not supported. (KB38346)
  • Fixed a bug where links and window.open could create windows with broken titlebar icons. (KB30532)
  • Fixed a bug where non-resizable windows were being resized when grouped with resizable windows. Now, if a group contains a non-resizable window it is not possible to resize the group as a whole. (KB28254)

Documentation/Schema

  • Marked a number of unsupported config fields as deprecated and added specification for systemTrayIcon to the manifest. (KB38366)
  • Added Interop Service to the Finsemble schema. (KB38598)
  • Removed functions and errors related to "unimplemented method". (KB38318, KB38312)
  • Corrected location of waitForUpdate property in Config Reference and in schema. (KB34776)

Dependency Updates

Dependencies:

  • Upgrade @babel/core from 7.14.6 to 7.15.0
  • Upgrade @babel/preset-env from 7.14.7 to 7.15.0
  • Upgrade @grpc/grpc-js from 1.3.6 to 1.3.7
  • Upgrade @types/lodash from 4.14.171 to 4.14.172
  • Upgrade @types/react from 17.0.14 to 17.0.19
  • Add @types/react-relative-portal 1.8.1
  • Upgrade @typescript-eslint/eslint-plugin from 4.28.3 to 4.29.3
  • Upgrade @typescript-eslint/parser from 4.28.4 to 4.29.3
  • Upgrade async from 3.2.0 to 3.2.1
  • Upgrade electron from 13.1.9 to 13.2.1
  • Upgrade electron-packager from 15.2.0 to 15.3.0
  • Remove node-notifier 10.0.0
  • Add react-relative-portal 1.8.0
  • Upgrade redux from 4.1.0 to 4.1.1

Dev-dependencies:

  • Upgrade @babel/plugin-transform-modules-commonjs from 7.14.5 to 7.15.0
  • Upgrade @babel/plugin-transform-runtime from 7.14.5 to 7.15.0
  • Upgrade @babel/preset-typescript from 7.14.5 to 7.15.0
  • Upgrade @babel/register from 7.14.5 to 7.15.3
  • Upgrade @babel/runtime from 7.14.8 to 7.15.3
  • Upgrade @storybook/addon-actions from 6.3.4 to 6.3.7
  • Upgrade @storybook/addon-essentials from 6.3.5 to 6.3.7
  • Upgrade @storybook/addon-links from 6.3.4 to 6.3.7
  • Upgrade @storybook/react from 6.3.4 to 6.3.7
  • Upgrade @types/lodash from 4.14.171 to 4.14.172
  • Upgrade browser-sync from 2.27.4 to 2.27.5
  • Upgrade chalk from 4.1.1 to 4.1.2
  • Upgrade chokidar-cli from 2.1.0 to 3.0.0
  • Upgrade concurrently from 6.2.0 to 6.2.1
  • Upgrade eslint from 7.31.0 to 7.32.0
  • Upgrade eslint-plugin-import from 2.23.4 to 2.24.2
  • Upgrade fast-safe-stringify from 2.0.7 to 2.0.8
  • Upgrade husky from 7.0.1 to 7.0.2
  • Upgrade lint-staged from 11.0.1 to 11.1.2
  • Upgrade joi from 17.4.0 to 17.4.2
  • Upgrade jsdom from 16.4.0 to 17.0.0
  • Upgrade react-syntax-highlighter from 15.4.3 to 15.4.4
  • Upgrade sinon from 11.1.1 to 11.1.2
  • Upgrade systeminformation from 5.7.8 to 5.8.6
  • Upgrade ts-loader from 9.2.3 to 9.2.5
  • Upgrade webpack from 5.45.1 to 5.51.1
  • Upgrade webpack-cli from 4.7.2 to 4.8.0
  • Upgrade webpack-obfuscator from 3.4.0 to 3.4.1

6.1.4

Release 09-14-21

Bug Fixes

  • Fixed a bug where scheduled restarts would fail if the screen was locked (PR2718)
  • Reduced the log level for interop service (PR2719)

6.1.3

Release 09-09-21

Bug Fixes

  • Fixed a bug where client APIs and apps would unexpectedly get unregistered from interop calls. (PR2668)

6.1.2

Release 08-27-21

Bug Fixes

  • Fixed a bug where use of client APIs inside of a storage adapter or preload would cause timeouts. (39340)
  • Fixed a bug that prevented certain native (.NET) apps from opening. (39345)
  • Fixed a bug that caused the experimental Smart Desktop Designer feature to appear within Seed-based Finsemble projects. (39350)

6.1.0

Release 08-18-21

Finsemble has been updated to use Electron version 13.1.9. (Chromium - 91.0.4472.69)


This release requires the latest LTS version of Node, 14.7.4, to maintain continued support for security patches & dependency updates.
If you are currently running an older version of Node 14, please download the latest LTS Node Download.

Upgrading

Finsemble's seed project has been upgraded to use Webpack 5 and Typescript 4. The seed's webpack directory, package.json, and tsconfig.json files have been updated. Additionally, some experimental features have been renamed in the seed's webpack build.

In this release, @finsemble/ui's new <FinsembleIcon> component depends on an additional Webpack Loader for SVG files (@svgr/webpack), which is pre-configured in the default Webpack configuration rules (defaultWebpackConfig.js).

It is recommended that you merge in the latest seed changes into your own desktop project when you upgrade. For a full list of necessary changes, see the 6.0.0 to 6.1.0 comparison on GitHub.

Deprecations

  • Deprecated gpu information and use of the systeminformation package when calling fin.desktop.System.getHostSpecs() (#PR2528). This can be enabled by setting "disableWMICalls": true in the manifest.

Enhancements

Finsemble now includes a JavaScript adapter that allows freestanding HTML and JavaScript apps to participate in FDC3 interop through Finsemble. See JavaScript Adapter Documentation.

Accessibility

  • Keyboard focus is now returned to Toolbar after ESC-ing from a menu. (35810)
  • Added keyboard navigation access to the Linker menu. (38122)
  • Added keyboard navigation support for menu item actions in the Toolbar. (37837)

Dashbar

  • Implemented ability to set custom HTML headers for Dashbar items. (35106)
  • Implemented scrolling for dashbar items when in overflow scenario. (34712)
  • Updated overflow widget so none are resized and instead are dropped from being shown unless you scroll. (38797)
  • Added customizable widget divider styling to Dashbar. (35085)

Interop Service

  • Added support for DIAM Interop rule intentType. (38064)
  • Added support for DIAM Interop rules to and from. (38071)
  • Authorization rules are now enforced for fdc3.open(). (35722)
  • Added Log "helper" messages to guide developers and display user notifications when appropriate. (36784)

Native

  • Finsemble now supports passing empty arguments to finsemble.jar (Java). (33108)
  • Finsemble now supports addResponder/query in finsemble.jar (Java). (34706)
  • Implemented dynamic authentication for Interop Service registration in finsemble.jar (Java). (36679)
  • Added heartbeat into FDC3 client for native apps. (36613)

Notifications

  • Notification cards are now fully customizable through composition while keeping built-in Finsemble features. (34878)
  • Notifications can now be selected in multiple and actions can be applied to all selected at once. (34382)
  • Notification Center scroll bar styling was improved. (34909)
  • Reinstated contentLogo in Notification card templates. (34682)
  • Reduced height of Notification cards to fit more on-screen. (35075)
  • Mute Notifications option removed from Notifications menu (still in Preferences). (34468)
  • Replaced occurrences of Mute/Unmute wording with Don't Show/Show in Notifications menus. (34467)
  • Notification example was migrated to the finsemble-dotnet-seed repo. (36272)

System

  • Renamed feature 'DesktopProjectEditor' to 'SmartDesktopDesigner'. (37739)
  • Renamed feature 'Rewire' to 'SelectConnect'. (37739)
  • Components can now be assigned a custom name to be shown in the Central Logger. (30947)
  • Improved formatting and style of build errors in console. (35738)
  • Finsemble can now build a Windows installer on macOS and Linux. (32814)
  • Finsemble can now reset a user preference to default through the ConfigClient. (34612)
  • The Finsemble build environment is now separated from the Node environment. (35273)
  • Exposed customURLValidation property for the Quick Component form. (35740)
  • Finsemble now allows percentages when defining default workspaces and workspace templates. (36028)

Smart Desktop Designer (SDD) - experimental

  • Relocated core SVG icons to a centralized <FinsembleIcon> component. (PR2014)
  • Various styling changes to SDD UI. (37362)

Bug Fixes

Accessibilty

  • Fixed accessibility issues in User Preferences dialog. (36553)

Documentation

  • Corrected errors in Linker Client subscribe documentation. (36568)
  • Corrected errors in Config Client getPreferences documentation. (36830)
  • Corrected and added documentation for workspaceClient.import. (37891)

Native

  • Fixed a bug where WPF components would not maximize/restore when their titlebar was double-clicked. (22120)
  • Fixed a bug where spawning native or from native components could have Z-index issues. (25833)
  • Fixed a bug where the Java Swing example could lose linker channel state on workspace reload. (28860)
  • Fixed a bug where the Java LinkerClient.linkToChannel failed to add the linked channel to LinkerClient instance. (36931)
  • Fixed visual discrepancies between native titlebar's UI and HTML5 titlebar's UI for uniformity. (38147, 38168)

Notifications

  • Fixed a bug where Notification toasts set to transparent were not rendering transparent. (36301, 34733)
  • Fixed a bug where the Notification service was failing to fetch data from LocalStorage. (35677)
  • Fixed a bug where Notifications sources were not read correctly by the Preferences menu. (35841)
  • Fixed a bug where the Notifications Center could spawn on an incorrect monitor. (36202)
  • Fixed a bug where historical Notification toasts were fetched incorrectly. (37675)
  • Fixed a bug where snoretoast was being added to the start menu shortcuts. (38074)

Smart Desktop Designer (SDD) - experimental

  • Fixed a bug where newly-added apps were removed if user backed out of workflow. (35269)

System

  • Fixed a bug where protocol handler incorrectly opened a second instance of Finsemble when launched from the Seed. (33751)
  • Fixed a bug so Finsemble properly requires only alphanumeric characters in startup_app.name and startup_app.uuid. (37116)
  • Fixed a bug where the storeService.createStore was creating an error in the Central Logger at startup. (32345)
  • Fixed a bug in Authentication Client where a failed callback generated a timeout from the queryResponder. (36392)
  • Fixed a bug where Process Monitor was not handling errors when views changed process ID. (36689)
  • Fixed a bug where addSelectClientCertificate callback was triggered incorrectly. (36841)
  • Fixed a bug where Importing logs was crashing the Central Logger. (37175)
  • Fixed a bug where the Registration form in the Seed project could malfunction. (37879)

Toolbar

  • Fixed a bug where a floating toolbar's Y position could be incorrect on system restart. (35908)
  • Fixed a bug where Finsemble menus on the Toolbar could incorrectly launch under always-on-top windows. (34447)
  • Updated toolbarMenu schema definition. (37590)
  • Fixed a bug where the toolbar was incorrectly resizable on macOS. (36970)

Window Management

  • Fixed a bug where component.showDevConsoleOnVisible was not functional. (30048)
  • Fixed a bug where WindowClient.getWindowTitle could return null. (32211)
  • Fixed a bug where a window could become immovable if invalid or missing bounds were sent to showAt or setBounds. (30026)
  • Fixed a bug where a maximized window could incorrectly return its pre-maximized bounds. (34860)
  • Fixed a bug where windows were not correctly coming to front when auto-arranged. (35954)
  • Fixed a bug where the window titlebar could cut off linker and window controls if the title was long. (37160)
  • Fixed a bug where large components spawned on large monitors could have incorrect BrowserView dimensions. (37065)
  • Fixed a bug where resizing a window on a non-100% scaled monitor was broken. (37865)
  • Fixed a bug where document.title was not correctly displayed for BrowserView windows in the taskbar. (38398)

Workspaces

  • Fixed a bug where Finsemble Version 4 Workspaces would not load defaultPreloads in Version 5. (37100)
  • Fixed a bug where Quick Components added in Finsemble Version 4 failed to load content in Version 5. (37105)

Dependency Updates

Dependencies:

  • Upgrade @babel/core from 7.6.4 to 7.14.6
  • Upgrade @babel/plugin-proposal-decorators from 7.6.0 to 7.14.2
  • Upgrade @babel/preset-env from 7.14.2 to 7.14.7
  • Upgrade @babel/preset-react from 7.13.13 to 7.14.5
  • Upgrade @grpc/grpc-js from 1.3.3 to 1.3.6
  • Upgrade @grpc/proto-loader from 0.6.2 to 0.6.4
  • Upgrade @reduxjs/toolkit from 1.5.1 to 1.6.1
  • Upgrade @types/chai from 4.2.11 to 4.2.21
  • Upgrade @types/fs-extra from 9.0.11 to 9.0.12
  • Upgrade @types/lodash from 4.14.147 to 4.14.171
  • Upgrade @types/mocha from 7.0.2 to 9.0.0
  • Upgrade @types/react from 17.0.11 to 17.0.14
  • Upgrade @types/react-dom from 17.0.4 to 17.0.8
  • Upgrade @types/react-input-autosize from 2.2.0 to 2.2.1
  • Upgrade @types/react-redux from 7.1.16 to 7.1.18
  • Upgrade @typescript-eslint/parser from 4.28.3 to 4.28.4
  • Upgrade browserslist from 4.16.3 to 4.16.6
  • Upgrade chalk from 4.1.0 to 4.1.1
  • Upgrade cli-table3 from 0.5.1 to 0.6.0
  • Upgrade color-string from 1.5.4 to 1.5.5
  • Upgrade date-fns from 2.20.3 to 2.22.1
  • Upgrade electron from 13.1.3 to 13.1.9
  • Upgrade eslint-plugin-jsx-a11y from 6.3.1 to 6.4.1
  • Upgrade fs-extra 7.0.1 to 10.0.0
  • Upgrade glob from 7.1.6 to 7.1.7
  • Upgrade immer from 8.0.1 to 9.0.5
  • Upgrade jsonfile from 2.4.0 to 6.1.0
  • Upgrade ora 5.4.0 to 5.4.1
  • Upgrade postcss from 7.0.35 to 7.0.36
  • Upgrade react-redux from 7.2.0 to 7.2.4
  • Upgrade socket.io-parser from 3.3.0 to 3.3.2
  • Upgrade uuidv4 from 6.2.6 to 6.2.11
  • Upgrade ws from 6.2.1 to 7.4.6
  • Upgrade Typescript to 4.3.5

Dev-dependencies:

  • Upgrade @babel/register from 7.12.10 to 7.14.5
  • Upgrade @babel/runtime from 7.14.6 to 7.14.8
  • Upgrade @storybook/addon-actions from 6.2.9 to 6.3.4
  • Upgrade @storybook/addon-essentials from 6.3.1 to 6.3.5
  • Upgrade @storybook/addon-links from 6.3.1 to 6.3.4
  • Upgrade @storybook/react from 6.3.1 to 6.3.4
  • Upgrade @types/express from 4.17.11 to 4.17.13
  • Upgrade @types/express-fileupload from 1.1.6 to 1.1.7
  • Upgrade @types/minimist from 1.2.1 to 1.2.2
  • Upgrade @types/react-syntax-highlighter
  • Upgrade @types/react-transition-group from 4.4.1 to 4.4.2
  • Upgrade @types/webpack from 4.41.26 to 5.28.0
  • Upgrade @types/ws from 7.4.3 to 7.4.7
  • Upgrade @wojtekmaj/enzyme-adapter-react-17
  • Upgrade aws-sdk from 2.942.0 to 2.949.0
  • Upgrade browser-sync from 2.26.14 to 2.27.4
  • Upgrade canvas from 2.7.0 to 2.8.0
  • Upgrade chai 4.0.2 to 4.3.4
  • Upgrade eslint from 7.27.0 to 7.31.0
  • Upgrade eslint-config-airbnb from 18.0.1 to 18.2.1
  • Upgrade eslint-plugin-import from 2.20.2 to 2.23.4
  • Upgrade eslint-plugin-react from 7.23.2 to 7.24.0
  • Upgrade fast-check from 2.3.0 to 2.17.0
  • Upgrade file-loader from 6.1.0 to 6.2.0
  • Upgrade file-saver from 2.0.2 to 2.0.5
  • Upgrade gulp from 4.0.2 to 5.1.2
  • Upgrade husky from 6.0.0 to 7.0.1
  • Upgrade image-size from 0.9.3 to 1.0.0
  • Upgrade immutable from 4.0.0-rc.12 to 4.0.0-rc.14
  • Upgrade improved-yarn-audit from 2.3.2 to 2.3.3
  • Upgrade javascript-obfuscator from 2.10.3 to 2.17.0
  • Upgrade jsdom from 16.5.2 to 16.6.0
  • Upgrade lint-staged from 11.0.0 to 11.0.1
  • Upgrade mime-types from 2.1.30 to 2.1.31
  • Upgrade mocha 5.2.0 to 9.0.1
  • Upgrade p-limit from 3.0.2 to 3.1.0
  • Upgrade prettier from 2.2.1 to 2.3.2
  • Upgrade pretty-quick from 3.1.0 to 3.1.1
  • Upgrade prismjs via yarn resolutions to 1.24.0
  • Upgrade sass-loader from 6.0.7 to 12.1.0
  • Upgrade sinon from 9.2.4 to 11.1.1
  • Upgrade sinon-chai from 3.2.0 to 3.7.0
  • Upgrade source-map-loader from 1.0.1 to 1.1.3
  • Upgrade style-loader from 2.0.0 to 3.2.1
  • Upgrade systeminformation from 5.7.7 to 5.7.8
  • Upgrade ts-node from 10.0.0 to 10.1.0
  • Upgrade webpack from 5.38.1 to 5.45.1
  • Upgrade webpack-bundle-analyzer from 3.8.0 to 4.4.2
  • Upgrade webpack-obfuscator from 3.3.2 to 3.4.0
  • Upgrade winston-daily-rotate-file from 4.5.0 to 4.5.5

6.0.0

Release 07-07-21

Finsemble has been updated to use Electron version 11.4.5. (Chromium - 87.0.4280.141)

The release contains updates to all Finsemble packages (core, seed, FEA, cli, ui) as well as finsemble-dll (.NET) and finsemble-jar (Java).

Upgrading

This release simplifies the build and webserver aspects of the finsemble-seed project. Custom build steps and static assets will need to be migrated to new locations:

  • ./build and ./build/webpack were moved to ./webpack
  • ./assets and ./configs were moved to ./public and are no longer copied during bundling or transpilation
  • All build artifacts now target ./public/build

Additionally, Finsemble 6 supports FDC3 through the new Interop Service. In order to use the new functionality, applications must be migrated from ./public/configs/application/components.json to public/configs/application/appd.json and be specified in FDC3's AppD format.

The express webserver in ./server was also migrated into the finsemble-electron-adapter package.

Enhancements

Interop Service / FDC3 1.2

Finsemble 6.0 introduces the Interop Service that supports the FDC3 1.2 standard out-of-the-box and automatically provides the fdc3 API to all HTML5 application windows. Native applications can access the Interop Service via the .NET DLL and Java JAR files. Freestanding apps are also supported (by calling setAppName() on a matching appd.json entry). In Finsemble 6.0, components are now defined as apps in Finsemble’s new appd.json file in alignment with FDC3 AppD spec.

.NET Support

  • Support for FDC3 and the Interop Service - .NET apps can participate in FDC3 supported interop via Finsemble’s Interop APIs.
  • Finsemble now supports .NET Core 5 applications. .NET Core is a cross-platform application framework.
  • The introduction of .NET Core 5 support brings several changes to the structure of Finsemble DLL. Customers will need to add multiple dlls based on their choice of UI Framework in .NET. Most of the Finsemble API is available via Finsemble.Core.DLL and anything UI specific is available via Finsemble.WPF.DLL and Finsemble.Winforms.DLL.

Java Support

  • Support for FDC3 and Interop Service - Java apps can participate in FDC3 supported interop via Finsemble’s Interop APIs.
  • MultiWindow support

Notifications

  • (34495) - Actionable notifications can now be configured to disappear or remain on screen until action is taken.

Misc.

  • (35555) - Added support for pattern and maxlength validation to SingleInputDialog
  • (PR1862) - Added FSBL.Clients.Logger.deprecated() method that logs deprecated use of APIs as errors in the central logger
  • The experimental Finsemble Desktop Project editor component allows for the creation of a smart desktop from an administrative component
  • (PR1372) - Experimental Added the ability for applications to appear in multiple toolbar menus

Changes to the Seed Project

Finsemble 6.0 introduces several changes to the Seed Project intended to simplify how projects are built and served.

Public Directory
A public directory now appears in the Finsemble 6.0 Seed Project. This addition consolidates static assets previously found in /assets and /configs and, by removing the need to copy static assets during the build process, simplifies how a project is served.

Previously, clients were required to copy 3 different directories when deploying to a hosting environment. Now clients just need to serve the /public/build.

  • The new ./public/build contains all generated assets
  • ./finsemble/ moved to ./public/build
  • ./assets coming from finsemble-ui moved to ./build/ui-assets
  • ./assets/ and ./config/ moved to ./public/
  • ./finsemble/ and ./dist/ moved to ./public/build/
  • ./build/webpack moved to ./webpack
  • The new ./public/ directory simplifies webserver endpoint and avoids copying static assets during build
  • server.js simplified and moved internally to finsemble-electron-adapter, with extensions removed

New CLI commands

The Finsemble 6.0 CLI provides several new commands to support developers in Finsemble 6.0. In addition, a migration script in the Finsemble 6.0 CLI helps the clients upgrade from 5.x to 6.0.

Additions

  • add app (Adds an app to the appd.json - this replaces add component)
  • add app --type (Adds an app to the appd.json as a specified type, such as react or angular)
  • migrate (Migrates apps from a components.json file to the appd.json)

Bug Fixes

Misc.

  • (32535) - Fixed a bug where the New Workspace or Save As Dialog would go behind windows when text was entered into dialog box when screen shared on Zoom.
  • (34496) - Fixed a bug in Quick Component input validation.
  • (34753) - Fixed a bug in installer config properties where installer build would fail if optional macOS properties were not set.
  • (35316) - Fixed a bug where affinity groups were not displayed correctly in Process Monitor.
  • (35836) - Fixed a bug on macOS where the browserview contents overlapped the titlebar after a window was maximized and restored.
  • (33198) - Fixed a bug where clicking the Finsemble icon in the service tray was not bringing windows and toolbar correctly to front.
  • (34870) - Fixed a bug where errors were thrown when the dashbar config was missing.
  • (34211) - Fixed a bug where freestanding .WPF apps were missing uuid when getBounds was called.
  • (31077) - Finsemble authentication login form has been moved to the Hubspot API.
  • (PR1607) - Fixed an issue in which Finsemble failed to start due to the order of electron command line arguments
  • (PR1440) - Fixed an issue of a race condition in which global hotkeys were trapped when toolbar menus failed to blur

Documentation/Schema

  • (34672) - Fixed a bug in the NotificationClient API documentation.
  • (35394) - Moved notifications preferences to schema accepted location.
  • (34865) - Added subschema and schema files referencing new finsemble.availableDashbarItems for new Dashbar config.
  • (35409) - Added schema to support all services with spawnAs: script functionality.
  • (34620) - Updated stale visuals in multiple tutorials.
  • (36568) - Fixed a bug in the LinkerClient.subscribe documentation to match the actual JS signature.

Deprecations

components.json

  • With the introduction of appd.json, components.json is deprecated and will be removed in future major versions of Finsemble. We updated the Finsemble’s JSON schema to reflect this deprecation. To help customers with the transition, Finsemble 6.0 CLI provides a migration tool to move configuration.
  • In addition, Finsemble specific UI Components remain in components.json.
  • In future releases, these components will move to Finsemble-UI.
  • The interop service does not support apps configured in components.json. Although these components will launch and work with the old Linker and Linker Service, they will not participate in FDC3 based interop.

Quick components

  • The Quick Components have been deprecated. The feature is no longer available by default, and the documentation has been updated to reflect this. The functionality will be fully removed in a future release. The Quick Component UI is no longer in the Toolbar's App Launcher menu. We recommend clients use the Advanced App Launcher.

Linker Client & Service

  • Finsemble 6.0 deprecates the Linker Client and Service in favor of the interop service. We've updated online documentation to reflect the Linker Client’s deprecation replacing all occurrences with references to the interop service. When a client uses a Linker Client API, the Central logger shows a warning.
  • In Finsemble 6.0, the linker UI in a window’s title bar is now automatically enabled by an app making an FDC3 call via the Interop Service. If a client requires the use of the existing Linker Service (disabled by default), it can be enabled by turning on the linker service by setting servicesConfig.linker.enabled in config.json.
  • As part of this deprecation, showLinker in app configuration is deprecated and will be removed in the next major version.

Misc.

  • The express webserver in ./server was migrated into the finsemble-electron-adapter package.
  • Finsemble CLI: component was renamed to app in the add command
  • The Reset menu item was removed from the FileMenu component

5.4.8

Release 11-17-21

Packages updated: Core, FEA

  • (41280) - Finsemble now permits backgroundThrottling in window options.
  • (41062) - Fixed a bug where the length or width of a window being very large caused all app windows to flash. The max size of a window is now restricted on window creation if one is not already set.

5.4.7

Release 09-02-21

Package updated: Core

  • (39070, 38620, 38690) - Fixed a bug where claimed space could function incorrectly on Finsemble restart or reset.

5.4.6

Release 08-09-21

Package updated: finsemble-dll

  • (38614) - Fixed a bug where the Linker on .WPF components could function incorrectly for freestanding scenarios.

5.4.5

Release 08-06-21

Package updated: finsemble-dll

  • (38147) - Fixed a bug where .WPF titlebars were styled differently than HTML5 titlebars.
  • (37290) - Fixed a bug where the Linker channel on .WPF components could be lost on workspace reload.

5.4.4

Release 06-23-21

Packages updated: Core, FEA, UI

  • (36841) - Fixed a bug in addSelectClientCertificateListener that caused a callback to be incorrectly called when the certificate-error event fired.
  • (37065) - Fixed a bug where components spawned and reloaded on a large secondary monitor could display an incorrectly sized BrowserView window.
  • (37100) - Fixed a bug where defaultPreloads were not being loaded in workspaces migrated from Finsemble 4.x versions.
  • (37105) - Fixed a bug where quick components were not loading content in workspaces migrated from Finsemble 4.x versions.

5.4.3

Release 06-04-21

Packages updated: Core, FEA
Repos updated: finsemble-dll

  • (36574) - Fixed a bug in the finsemble-dll repo where native apps would not close properly if Finsemble was closed using task manager.
  • (36695) - Added support for Browserview refresh/reload using Ctrl+R. If the content view is selected, Ctrl+R will refresh the content and the titlebar. If the titlebar is selected, Ctrl+R will refresh just the titlebar.

5.4.2

Release 05-20-21

  • (35485) - Fixed a bug in the finsemble-fdc3 and finsemble-dll repos where adding a context listener was incorrectly adding to linker channel as well.
  • (35736) - Updated Notifications examples in finsemble-notifications repo to function with latest release.
  • (35846) - Fixed a bug where the titlebar height was not accounted for in the browserview when restoring a maximized window.
  • (33198) - Fixed a bug where clicking the Finsemble icon in the taskbar was not bringing the toolbar and other windows to front.

5.4.1

Release 04-29-21

  • (31077) - Changed registration form component for seed to HubSpot.

  • (32876) - Fixed a bug in the seed's authentication component that caused a delay in shutting down Finsemble.

    Note: This release includes the two bug fixes shown below in Release 5.3.3.

5.4.0

Release 04-01-21

Finsemble has been updated to use Electron version 11.3.0. (Chromium - 87.0.4280.141)

The release contains updates to all Finsemble packages (core, seed, FEA, cli, ui) as well as finsemble-dll (.NET).

Enhancements

Dashbar - Click here to read the Dashbar documentation

  • (33372) - Dashbar now uses BrowserViews instead of IFrames and views now have access to the Finsemble API.

Notifications - Click here to read the Notifications documentation

  • (32857) - Finsemble now supports Notifications from Symphony.
  • (30857) - Notifications now have Search functionality.
  • (32948) - When the Notifications Center is open and popped-in, toasts are not displayed for new incoming notifications.
  • (33035) - Added css class to notification rendering.
  • (33121) - Removed unneeded scrollbar from popped-out Notifications Center.
  • (33416) - Simplified Notifications Center state management.
  • (33418) - Notification toasts now fetch notifications sent in the last 30 seconds (prior to the UI being visible).
  • (33241) - Finsemble now uses the latest Notifications functionality for the alert native override.
  • (32947) - Notifications returning from snooze now have a halo to indicate they are unread.
  • (30864) - Notifications are now loaded into the center as a user scrolls down instead of all at once.
  • (30863) - Notifications tab in Preferences menu now allows dynamic user control of all Notifications UI functionality.
  • (34438) - Notifications UI now opaque for all new installs by default.

Misc

  • (32469, 33192) - Added aeroGlassEnabled and hostname to returned values from getHostSpecs.
  • (32437) - If Assimilation fails to start, Finsemble will still continue to start normally and web applications will function as expected.
  • (33005) - If Assimilation is disabled, the toolbar claimSpace is automatically disabled.
  • (33367) - The select-client-certificate and certificate-error events are now exposed.
  • (34443) - Process monitor now supports multiple browserviews and gives more accurate memory usage.
  • (29470) - Freestanding apps now have descriptors.
  • (33720, 33727) - Added FDC3 .WPF Example project.

Bug Fixes

Advanced App Launcher

  • (33925) - Fixed a bug where menus in the Advanced App Launcher would be displayed below the Dashbar.
  • (33327) - Fixed a bug where components removed from config could still appear in the Advanced App Launcher.
  • (33992) - Fixed a bug where quick components created with older versions of Finsemble and with numeric appIDs could crash the Advanced App Launcher.

Freestanding Apps

  • (33232) - Fixed bugs causing logger errors for Freestanding apps.
  • (33227) - Fixed a bug where Freestanding apps would incorrectly close when Finsemble closed.

Misc

  • (32159) - Fixed a bug where startup hung when WMIC was blocked by user's environment.
  • (32340) - Fixed a spurious error in system manager and FEA log concerning getAllApplications.
  • (30744) - Fixed bugs where the visible:true config for services and the debugSystemManager config were not working.
  • (34010) - Fixed a bug where duplicate actions were incorrectly being added to notifications in certain scenarios.

Native (.NET)

  • (34227) - Fixed a bug where a null reference exception could occur in windowless .NET apps.
  • (34200) - Fixed a bug where native apps could remain visible in Central Logger after close.
  • (34433) - Fixed a bug where the .Net Search client was inoperable.

Toolbar

  • (33845) - Fixed a bug so Dashbar items now use the correct variable for font-size of frame title.
  • (34041) - Fixed a bug where the toolbar could become immovable.
  • (33778) - Fixed a bug where menus on the right side of the toolbar could open partially off-screen.

Documentation

  • (32987) - Fixed the Font Finance reference sheet which was missing font and icons.
  • (33423) - Updated DistributedStore tutorial with persist property.
  • (33417) - Updated Notifications tutorial for use with older seeds.
  • (32358) - Updated LauncherClient.spawn Position types in documentation and schema.
  • (33957) - Fixed bug in Workspace events API documentation.
  • (34117) - Fixed a bug in the config reference css.
  • (34195) - Added Notifications Search documentation.
  • (32545) - Migrated old Notifications docs to reflect new architecture changes.

5.3.3

Release 04-26-21

  • (35087) - Fixed a bug where a browserview was sized incorrectly when maximized.
  • (35352) - Fixed a bug where windows spawned by Finsemble were incorrectly placed behind other open application windows.

5.3.2

Release 03-18-21

  • (33983) - Fixed a bug where stacked windows could fail to load in workspace if the window titles were changed.

5.3.1

Release 03-01-21

  • (33181) - Fixed a font css issue with Window Titlebar icons when BrowserViews are disabled.

5.3.0

Release 02-18-21

Finsemble has been updated to use Electron version 10.3.1. (Chromium - 85.0.4183.121)

The release contains updates to all Finsemble packages (core, seed, FEA, cli, ui) as well as finsemble-dll (.NET). The public seed has been updated to 5.3.0 as well. Users will need to update their seed to 5.3.0 to use the new Notifications and Dashbar functionality.

New Features

Dashbar

The Finsemble Toolbar now supports advanced customizations, including the embedding of small iframe applications within the Toolbar (called the Dashbar). The size of the Dashbar and its location relative to the Toolbar is configurable. In addition, pointer events may be enabled for click-through access.

Click here to read the Dashbar documentation

Finsemble Notifications are now integrated into the Toolbar.

Click here to read the updated Notifications UI documentation

Enhancements

  • (31354) - The Quit Confirmation dialog now shows the proper Application Name from config instead of Finsemble.
  • (32039) - Added support for FSBLHeader properties hideMaximize, hideMinimize, and hideClose for WPF applications.
  • (32468) - Added support for screenshare and screenshot functionality within Finsemble.
  • (29236) - Refactored window event management.
  • (32668, 31458) - Added the ability to customize the installer .gif.

Bug Fixes

Window Management

  • (31120) - Fixed a bug where canceling a window close event was preventing future attempts to close the window.
  • (30335) - Fixed a bug where the grpc preload was being sent to all windows in a session causing spurious console errors.
  • (32389) - Fixed a bug where spawn "position" property for a window could be disregarded in some cases.
  • (32759) - Fixed a bug where getMonitorInfoAll had incorrect availableRect after docking the Toolbar.

Startup

  • (32513) - Fixed a bug where the getting applications from an FDC3 App Directory at Startup could fail and prevent Finsemble from starting.
  • (32079, 32772) - Fixed a bug where empty folders in the seed components or src directory could cause build errors.
  • (32700) - Fixed a bug where caching was incorrectly on by default when getting updated manifest.

Toolbar

  • (31607) - Fixed a bug where the Toolbar could not be undocked if 'useDOMBasedMovement' was set to false.
  • (31888) - Fixed a bug where the Toolbar would not dock to the bottom of the monitor when claimSpace was disabled.
  • (32503) - Fixed a bug where Toolbar menus were misaligned on macOS.

FEA

  • (32993) - Fixed a bug in FEA where closing windows rapidly could cause Finsemble to crash.
  • (32939) - Fixed a bug where a continuous stream of uncaught exception errors could be created if a window did not close properly.

Native

  • (28359) - Fixed a bug where Winforms grouping could break on workspace reload.
  • (32422) - Fixed a bug where enabling FDC3 API in a WPF component could crash or close the component.
  • (31807) - Fixed a bug where Linker state for WPF components was not cleaned up on close.
  • (32374) - Fixed a bug in the format of IAC argument for native components.

Misc

  • (31919, 32011, 32625, 32754, 31483, 32823, 30458, 32982, 32231) - Multiple updates to the schema, config reference, and tutorials for clarification of documentation.
  • (31390) - Fixed a bug where an external app could still connect to the router even after the user selected Cancel from the Allow External Application Connection prompt.
  • (31577) - Fixed a bug where Process Monitor link was not shown in Central Logger.

5.2.2

Release 02-22-21

  • (33181) - Fixed a font css issue with Window Titlebar icons when BrowserViews are disabled.

5.2.1

Release 01-18-21

Finsemble has been updated to use Electron version 10.2.0. (Chromium - 85.0.4183.121)

Bug Fixes

  • (32181) - Fixed a bug where certain casings in Content-Security-Policy were not being handled correctly. Also, added missing schema entry for Content-Security-Policy.

Note: This release also includes patches 5.1.5 and 5.1.6 described below.

5.2.0

Release 12-22-20

Finsemble has been updated to use Electron version 10.1.7. (Chromium - 85.0.4183.121)

New Features and Enhancements

Evergreen Components

  • Finsemble now supports multiple instances of Evergreen Components of the same type. Tabbing and tiling for Evergreen Components is supported as well.

Native

  • The Notifications and FDC3 clients are now integrated into the finsemble-dll. The Config and Window client integrations in the finsemble-dll were also enhanced to support more endpoints.

Notifications

  • Finsemble now supports the ability to delete a notification.
  • (29123) - Added a markAsRead:boolean for actions. Only actions that have this set to true will mark a notification as read/dismissed.

Window Management

  • (26873) - Finsemble now supports windows being able to form a group or eject from a group programmatically.
  • (30472) - Added the ability to show a window at a specific location by setting position to "absolute".
  • (30640) - Added the ability to spawn components in a grouped or tabbed configuration.

Bug Fixes

App Catalog

  • (31158) - Fixed various UI bugs in the Advanced App Catalog.
  • (23003) - Fixed a bug in App Catalog that incorrectly allowed the Catalog window to be maximized.

Native

  • (29312) - Fixed a bug in .NET LauncherClient implementation of ShowWindow where relativeWindow parameter was being overridden.
  • (30526) - Fixed a bug where Native applications could throw exception on close as a freestanding app.
  • (30968) - Fixed a bug in the maximize functionality of .WPF windows.
  • (30976) - Fixed a bug where a maximized .WPF window's Restore icon tooltip incorrectly read Maximize instead of Restore.
  • (26832) - Fixed a bug where the JavaFX example did not snap to other windows.
  • (30524) - Removed log4net dependency from finsemble-dll.

Toolbar

  • (30303) - Fixed a bug in the Toolbar search provider and item actions.
  • (30310) - Fixed a bug where a docked toolbar was not claiming space correctly in relation to the Windows taskbar.
  • (31189) - Fixed a bug where a favorited app would not spawn correctly if its displayName differed from its component name.
  • (30604) - Fixed a bug where the toolbar hijacked the ESC key globally.

Workspaces

  • (30350) - Fixed a bug where the user was not prompted to confirm the Overwrite of an existing workspace name when using Save As action.
  • (30554) - Fixed a bug where disabling dom based movement caused issues with tabbing windows.
  • (30900) - Fixed a bug where snapping would break if dom based movement property was undefined.
  • (30743) - Fixed a bug where spurious data from non-workspace components was being saved to the workspace.
  • (31199) - Fixed a bug where context menus were being incorrectly displayed on input fields when contextMenu was set to false.
  • (27368) - Fixed multiple bugs in getMonitor and getMonitorInfo in the Launcher Client that were returning incorrect monitor info.
  • (29953) - Fixed a bug in LauncherClient and toggleWindowOnClick where components could be spawned or shown in an incorrect position.
  • (28939) - Fixed a bug where dockOnSpawn and groupOnSpawn were not grouping windows correctly.
  • (30340) - Fixed a bug where the linker window could disassociate from its component window.
  • (31323) - Fixed a bug where unclean shutdown of a workspace could cause a load failure after clearing cache.

Notifications

  • (31494) - Fixed a bug where Notifications UI components were being removed by dynamic config when importing other components.
  • (31184) - Fixed a bug where Notifications were displaying a broken image instead of no image when none was defined for contentLogo or headerLogo.

Schema

  • (30874) - splashScreenImage and splashScreenTimeout properties are now properly located at the root level of manifest in the schema.
  • (31249) - Fixed a bug where schema validation errors were breaking config imports.
  • (31254) - Fixed a bug where schema validation errors were produced by the dynamic config example.
  • (31179) - Fixed a bug where schema validation errors were produced when alwaysOnTopLevel was set to "normal". The default setting for this property is now "normal".

Central Logger

  • (30810) - Updated the way authentication credentials were logged to the Central Logger for enhanced privacy.
  • (31806) - Fixed a bug in the Central Logger where a blank window would appear on the initial launch of the logger.

General

  • (30598, 30657) - Fixed a bug where the ConfigService could fail on startup if a config file was imported containing a non-existent variable and no custom element appeared in the manifest.
  • (30844) - Fixed a bug in the protocol handler callback causing protocol handler to fail.
  • (31194) - Fixed a bug in the styling of the non-configured component.
  • (31020) - Fixed a bug where the Advanced App Launcher did not respect dynamic changes to the launchableByUser property.
  • (30822) - Updated node-version support to current LTS (14.x).

5.1.6

Release 01-07-21

Bug Fixes

  • (31999) - Fixed a bug where the linker could reset its channel if it was assigned prior to the component completing its load.
  • (32013) - Fixed a bug where LinkerClient.getLinkedComponents failed with an error when linked components were closed.

5.1.5

Release 01-05-21

Bug Fixes

  • (31716) - Fixed a bug where the toolbar would disappear while docking if claim space config was set to false.

5.1.4

Release 12-17-20

Bug Fixes

  • (31451) - Fixed a bug where linker data was incorrectly persisting across unsaved workspaces.
  • (31395) - Fixed a bug where excessive logs were generated at startup.
  • (31098) - Fixed a bug where spurious errors were logged when the mouse was used to move a window.
  • (31540) - Fixed a bug where the toolbar appeared to jump around while docking and claiming space.
  • (31554) - Fixed a bug where the Browserview of a window would not show correctly if show was called on a hidden minimized window.

5.1.3

Release 12-02-20

Bug Fixes

  • (31244) - Fixed a bug where the assimilation.enabled property in the seed config was being incorrectly overridden if the config schema had a default value.

Misc.

  • (31297) - Added diagnostics to determine issues with Toolbar docking on Mac operating systems.

5.1.2

Release 11-20-20

Finsemble has been updated to use Electron version 10.1.5. (Chromium - 85.0.4183.121)

Bug Fixes

  • (30869) - Fixed a bug in a code reference to the schema in Finsemble CLI.
  • (30826) - Fixed a bug in the path and bundled dependencies of gRPC in the deployed FEA.
  • (30837) - Fixed a bug with Finsemble hosted on IIS by using "net" instead of "superagent".
  • (30905) - Fixed a bug that caused errors with the Central Logger when importing logs.
  • (30468) - Fixed a bug where resizing a group could cause a browserview to appear blank in macOS.
  • (30969) - Fixed a bug where FDC3 context types passed from spawn data to context listeners were not filtered correctly.
  • (31011) - Fixed a bug in FDC3 so now only the intent listener fires and not the context listener when a component is spawned via raiseIntent.
  • (30999) - Fixed a bug in the Finsemble config schema that was preventing new storage topics to be created.
  • (31004) - Fixed a bug in the Finsemble component schema that was preventing width from being set as a percentage (string).
  • (30971) - Fixed a bug in window tab background transparency.

5.1.1

Release 11-09-20

Finsemble has been updated to use Electron version 10.1.4. (Chromium - 85.0.4183.121)

New Features and Enhancements

Notifications Enhancements

  • The Notification client and service are now incorporated into Finsemble core with the UI split out.

The 5.1.1 Notifications UI repository is located here .

New functionality adds ability to:

  • Mute notifications
  • Mark notifications as unread
  • Mark multiple notifications as read at once

BrowserView

  • The Central Logger now distinguishes between log messages from the Browser Window and the Browser View.

Finsemble now supports gRPC.

Evergreen Components

  • This feature allows for components to participate in multiple workspaces, adjusting as needed to be visible, hidden, and hydrated with the proper context and data connections. This allows for smoother switching between workspaces, since you no longer have to close and reload an evergreen component. This Phase 1 release does not include tabbing, tiling or multiple components of the same type.

Freestanding Applications

  • Finsemble supports freestanding apps, meaning applications not launched by Finsemble can connect and interact with apps launched by Finsemble. This release includes work to include native applications not launched by Finsemble to work with Finsemble. There is now an optional alert that can warn the user when apps not launched by Finsemble attempt to connect to FSBL.

Alpha Mac Support

  • Finsemble now is supported on macOS with this alpha release.
  • Finsemble can now create installers for macOS.
  • The hotkey service uses electron global shortcuts instead of Assimilation​.

Native Support

  • .NET - Added improvements/fixes to existing LauncherClient, Router and LoggerClient functionality.
  • .NET - Added Hotkey, Storage, Search, FDC3, and Workspace Clients and FinsembleWindow.
  • JAVA - Added improvements/fixes to existing Router and LoggerClient functionality.
  • JAVA - Added Workspace, Storage, and Search Clients and FinsembleWindow.

Bug Fixes

Workspaces

  • (30251, 30253) - Fixed multiple bugs related to incorrectly dirty workspaces.
  • (30297) - Workspace import/export buttons are now enabled by default in the Finsemble Preferences menu.
  • (27160) - Fixed a bug that would break the workspace in certain monitor arrangements and scalings.

Advanced App Launcher

  • (29814) - Fixed a bug that allowed blanks to be saved for the app name in the New App dialog and the custom folder edit field, which caused a blank name for component and folder.
  • (29814) - Fixed a bug where canceling the edit of a custom folder name caused the folder to be renamed incorrectly.
  • (27408) - Updated the App Launcher menu so that when items are added dynamically, the menu resizes automatically to show all items.
  • (27951) - Fixed a bug where App Catalog components removed from the appD server where not being removed from the user’s App Launcher menu.
  • (26575) - Fixed a bug where a custom folder name defined in the foundational config would incorrectly repopulate after being edited.

Startup

  • (30439) - Fixed a bug where Finsemble would not start if checkURLDownloadable failed.
  • (30057) - Fixed a bug so now the authentication component shows on top of the splash screen.
  • (30411) - Fixed a bug that caused errors during schema validation.

Misc.

  • (29184) - Fixed a bug where singleton components were not brought to front when a second launch was attempted.
  • (29253) - Disable zoom feature hotkey in electron zoom as workaround to electron zoom not working properly.
  • (30192) - Fixed various items in the schema, added the "removePathInSpawnExternalApps" and "trustedPreloads" properties to the schema.
  • (27768) - Updated Finsemble so that calling StoreModel.getValues with a null fields object returns all values in the store as expected.
  • (27643) - Fixed a bug in the Central Logger where selecting Scroll Bottom with no data in window created a blank white window.
  • (29219) - Fixed a bug where the Winform's linker channel remained open indefinitely once opened, even on blur or after the parent window is moved. Now, linker channels for all components are able to be dismissed on blur or when their parent window is moved.

5.0.2

Release 11-04-2020

Enhancements

  • (30273) - Added a custom URL validation prop to the Add Quick Component form in the Advanced App Launcher. Also, added the ability to modify form data when creating a quick component and to customize the error message seen when validation fails.

5.0.0

Release 9-28-2020

New Developer Features

Finsmble UI Library

Common Finsemble UI components are now easily-consumed NPM dependencies. Simply import the Finsemble-UI library into any component to build new components or augment existing ones.

Some examples of premade UI components include:

  • AdvancedAppLauncher - An advanced app launcher with folders and tags
  • AppLauncher - A simple dropdown menu for launching apps
  • DragHandle - The "draggable area" on the toolbar to move it around the screen
  • FileMenu - A customizable drop-down menu for actions such as quit, reset, or restart
  • Search - A drop-down menu for federalized search across SearchProviders
  • WorkspaceManagementMenu - A drop-down menu for launching and managing workspaces
  • Title Bar Buttons - Link, Group, Close, Maximize, and Minimize

Click here to read the updated UI documentation

Fully Customizable Toolbar and Window Title Bar

Finsemble 5.0 provides development teams with a fully customizable template and UI library to create and customize Finsemble’s toolbar.

  • Reimagine the look and feel with custom CSS theming
  • Easily customize Finsemble’s toolbar with the new, declarative React JSX template
  • Add custom React components or utilize Finsemble’s new UI library

In addition to a fully customizable toolbar, teams may also customize a window’s title bar.

  • Rearrange icons in a window’s title bar
  • Add custom icons or components to customize functionality

Typescript First

In Finsemble, Typescript creates a much richer developer experience. All Finsemble developers will now enjoy immediate feedback through autocomplete and type safety in supported editors (VS Code is our favorite). Additionally, the seed project’s build system now supports Typescript out-of-the-box, enabling type safety from end to end.

JSON Schema Documentation for Components and Services

Finsemble is driven by configuration. Now, in version 5.0, Finsemble’s configuration is documented and validated using JSON Schema. Development teams can quickly understand what configuration is available to implement and be confident their configuration is correct. Specific benefits include:

  • Runtime validation of config
  • VS Code Intellisense integration

General improvements

Decoupled Content Loading

With the implementation of Electon’s BrowserView API, Finsemble windows now load application content and the window title bar in separate views within the same window. Prior to 5.0, Finsemble would load application content into a window and then inject the window titlebar into the same content. This change provides a smoother experience when loading content.

This change to windows impacts how applications can be debugged. Because application content is separated into a BrowserView, while Finsemble's window title bar remains in the window (BrowserWindow), clicking on an application and hitting ctrl+shift+i opens the dev tools for the window titlebar (the BrowserWindow). In order to debug the application content open the devtools via the central logger. You'll know that you're in the right devtools if you see 'View' in the title of the window

Finsemble Toolbar Now Consistent With Windows Taskbar The Finsemble Toolbar now shares consistent behavior with the Windows Taskbar. When docked at the top or bottom of an end user’s monitor, the Finsemble Toolbar remains visible even when using outside applications like MS Word or Excel. This change in behavior allows users to move faster, accessing mission-critical applications in Finsemble without having to locate the toolbar.

In addition, the toolbar is, by default, visible as a taskbar icon and available when a user presses Alt+Tab.

Upgrading

This release overhauls Finsemble's seed project with the main goal of making upgrades easier. Most component source code (src/components/../*.js) has been refactored into a new API finsemble-ui that is now imported as a module.

Click here to read the updated UI documentation

  • src-built-in has been removed. The src directory now only contains jsx "template" files. You may customize these as desired. Upgrading no longer requires merging source code from newer seed projects.

  • You can continue to use your existing components if desired. Simply keep them in your existing src directory and make sure that you continue to reference them in your components.json file. If you wish to use a newer 5.0 version of the component, simply modify the entry in your components.json file to point to the new component.

  • toolbar.config is deprecated in the 5.0 Toolbar component. Customization now is simply a matter of rearranging markup in src\components\toolbar\srcToolbar.jsx.

  • The titleBar component has been renamed windowTitleBar. If you wish to continue using the old component, point the url in the windowTitleBar config entry to "titleBar.js" (finsemble-seed/configs/UIComponents.json).

  • The AppLauncher component defaults to not letting users create their own components ("quick components). To turn this on, modify Toolbar.jsx with <AppLauncher enableQuickComponents={true} />.

  • Hotkeys for opening the search window are disabled by default in the new Toolbar. To enable a hotkey modify Toolbar.jsx like so <Search open={["ctrl"-"alt"-"f"]}>.

  • There is a new <SystemTrayComponent> which replaces the old one (which was based off of FileMenu). This requires update of webpack.finsemble-built-in.entries.json to the version in the new seed and adding the "SystemTrayComponent" entry to UIComponents.json. Finally, in config.json update "systemTrayComponent": "SystemTrayComponent" (previously "systemTrayComponent": "File Menu")

  • Move any custom configuration values added to config files to under custom property.

Issues Fixed

  • (21172) - Fixed a bug where a crashed WPF component retains state
  • (22950, 22626) - General improvements to the App Catalog
  • (23935) - Fixed a bug where the Central Logger did not log certain data types
  • (22825) - Fixed a bug where WorkspaceClient.save() did not return a promise
  • (28490) - Clarified FSBL.Clients.LinkerClient.getAllChannels() documentation

4.5.1

Release 11-04-20

Enhancements

  • (30251) - FSBL now supports the ability to specify additional fields that get saved in the workspace and also to ignore certain fields from dirtying the workspace.

Bug Fixes

  • (29829) - Fixed a bug where the Restore button on a maximized window could break under certain conditions.
  • (30553) - Fixed a bug where workspaces could contain spurious data making a workspace incorrectly dirty.

Assimilation
Fixed a bug in assimilation where after many successive reloads, some native windows would not group. The new version of assimilation can be found here: assimilation_4.5.1.0.zip.

4.5.0

Release 9-25-20

Finsemble has been updated to use Electron version 9.3.0. (Chromium - 83.0.4103.122)

Workspace Improvements/Fixes

  • (28431) - Workspace Dirty State is now calculated when needed instead of being marked as dirty on every workspace change. This resolves a majority of spurious workspace dirty issues.
  • (27897) - Fixed a bug where native grouped components that were minimized or maximized in the workspace could cause the workspace to reload dirty.
  • (28432) - Modified the workspace storage mechanism to only store required data into the workspace.
  • (28332) - Fixed a bug where under certain circumstances such as switching to/from empty workspaces and certain error cases, Workspace events were not firing.
  • (26146) - Fixed a bug where Workspaces exported from Finsemble in production environments could not be loaded while running in development environments.
  • (28755) - Fixed a bug where minimizeAll and bringWindowsToFront did not work correctly if workspace contained native components.

Documentation

  • (26008) - Corrected getActiveDescriptors callback return type to object instead of array in Launcher Client API.
  • (28531, 28512) - Documented waitForUpdate in Config Reference and response.OriginatedHere in Router and Linker clients. Router and Linker messages can now check response.originatedHere() to test if the message came from the same window.
  • (29189, 29248) - Corrected finsemble.menu to finsemble.menus and defaultClientLoggerLevels to defaultClientLogLevels in Config Reference.
  • (29183) - Linker channels definitions moved from finsemble.services.linker to servicesConfig.linker in Config Reference.

Native

  • (28678) - Fixed a bug where LauncherClient.getMonitorInfo did not work when called from Native Components.

Notifications

  • (27908) - Removed unused css references (_notifications.css).
  • (27911) - Fixed a bug where (Toasts/Drawer/Toaster) were transparent and unclickable when viewed in Remote Desktop.

Startup

  • (28643) - Moved default logging config to manifest to allow default log levels to be customized.
  • (28171, 29268, 29360) - Fixed bugs where a bad AppAsset URL, or applicationIcon URL would stop FSBL from starting up.

Assimilation

  • (29556) - Assimilation logs can now be viewed in the Central Logger.
  • (29557) - Assimilation now only attaches to applications launched by FSBL.

Misc.

  • (29519) - Fixed a bug where Linker Window would sometimes position incorrectly.
  • (24424) - Fixed a bug where FSBL windows would not come to front during Skype screen sharing.
  • (29253) - Now you can optionally disable electron's built-in zoom shortcuts.
  • (28607) - FSBL now supports Node 12.14+.

4.4.4

Release 12-8-2020

  • (31199) - Fixed a bug where context menus were being incorrectly displayed on input fields when contextMenu was set to false.

4.4.3

Release 9-2-2020

  • (28739) - Fixed a bug where the Central Logger was not respecting the capture levels at startup.
  • (28978) - Fixed a bug where calling WindowClient.setWindowTitle immediately upon component load sometimes would not work.
  • (28956) - Fix a bug where quick components added to a custom folder could break the Advanced App Launcher menu.

4.4.2

Release 8-27-2020

  • (28799) - Fixed a bug that caused Workspace save events to not trigger.
  • (28881) - Fixed a bug where tabbed windows could not drag to untab in space occupied by another window.

4.4.1

Release 8-21-2020

  • (28485) - Disabled the ability to resize a maximized window which could cause undesired window behavior.
  • (28421) - Fixed a bug where windows were not able to be moved due to a tabbing error.
  • (28710) - Fixed a bug where dropping a tab onto a titlebar boundary could cause Finsemble to remain in tiling mode even after the mouse is released.
  • (28699) - Fixed a bug where dropping a tab onto another window's boundary could cause a maskBounds error.
  • (28491) - Fixed a bug in assimilation that could cause undesired intercations with native OS applications. New assimilation version is 4.4.1.0.

Note: The 4.4.1 release includes the bug fix from the 4.3.4 release shown below.

  • WHITELABELING - The mechanism for overriding CSS has been revised. The file theme.css is now empty and can be used to set CSS variables (it replaces the former themeWhitelabel.css). The files fontIconWhitelabel.css, styleWhitelabel.css and themeWhitelavel.css have all been deprecated. To migrate, copy the contents from all of those files into the empty theme.css file.

        React components should now use the follow import construct:
    ```jsx
    import "@chartiq/finsemble-ui/react/assets/css/finsemble.css";
    import "../../../../assets/css/theme.css";
    ```

    Static CSS files should use this construct:
    ```css
    @import url("../../../assets/css/finsemble.css");
    @import url("../../../assets/css/theme.css");
    ```

    Finsemble's default theme as well as font-finance are now inside "finsemble.css" and imported from the new `finsemble-ui` dependency. The seed project's build process creates static copies of finsemble.css and font-finance.css in `dist/assets/css`.

    See [UI API](/docs/customize/customize-with-SDK/user-experience/UIComponents#css) for up to date instructions on customizing Finsemble's CSS
  • finsemble-react-controls has been deprecated. We no longer support the controls that were available in that library. The new finsemble-ui library provides a React library that allows easier and more complete customization.

  • defaultAuthentication.html has been deprecated in favor of Authentication.html which is now a Finsemble React component. This makes use of the useAuth() React hook. It's config now defaults to autoShow: true.

  • (25067, 25175, 25135): Fixed spurious warnings in the Central Logger

Splintering support has been removed in favor of "affinity" which provides a less complex strategy for resource conservation. Please note that Electron is moving to a "process per site" model later in 2020 which will change the underlying structure of how affinity is implemented. We will make efforts to maintain backward compatibility with the existing affinity flag.

  • url-loader limits have been removed from webpack config files. This is necessary in order for fonts to appear properly in the toolbar's drop down menus. References to relative paths do not work as expected inside menus (<MenuPortal>) because they are initially opened with the url "about:blank". The url-loader plugin is used to convert assets such as images, fonts, and svgs into inline base64 uris that can be accessed by the menu.

4.4.0

Release 8-03-2020

Finsemble has been updated to use Electron version 9.1.0.

Features/Enhancements

Global Preloads

  • (24991) - Default preloads can be specified that will be preloaded into all components via the defaultPreloads config for the launcher service.

Deployment

Native Apps

  • (17831, 25830, 26568) - FSBL has exposed all clients in finsemble-dll that were previously hidden behind a single RPC call and cleaned up the WPFExample and other examples to use those clients. Now, Native applications that connect to FSBL can be launched before FSBL starts and they will connect as soon as FSBL is ready.

Splash Screen

  • (19715) - FSBL has enhanced the splash screen experience to automatically close when the Toolbar loads. In addition, the end user can close the splash screen manually if desired.

Logging

  • (18083, 22673) - The default logging level for components and services is now configurable and additional logging around workspace persistence/load has been added to improve with debugging from the logs.

Workspace Events

  • (19340, 19339) - FSBL better supports customer workspace event customizations with provided event handling code. For additional information click here.

Misc.

  • (19340, 19339) - FSBL now supports taskbar icon overlays.

  • (15548) - Added browser context menu to FSBL to overcome Electron deficiency that lacked the right-click menu users find familiar.

  • (26932) - Added the option to force users to wait for the new version of FEA to download before starting FSBL, as opposed to starting Finsemble and forcing a restart when the new FEA has completed its download.

  • (27290) - Updated FSBL to prevent config files from being loaded from cache.

  • (27177) - Enhanced FSBL to provide access to FSBL.System in Custom Services.

  • (27848) - Applied updated branding to FSBL.

Bug Fixes

FEA

  • (25361) - Fixed a bug with ts-loader with deployed FEA.
  • (27782) - Updated all deprecated and vulnerable dependencies in the FEA.

Native Apps

  • (27251) - Fixed a bug that prevented users from restarting native components that had terminated without notifying FSBL.
  • (22276) - Fixed a bug that prevented the disabling of the drag and drop emitter in WPF components. Now, the DragAndDrop emitter icon is only displayed if FSBL.DragAndDropClient.SetEmitters has been called.
  • (27930) - Fixed a bug where native and assimilated apps were not handling waking up from sleep correctly.
  • (27914) - Fixed a bug that caused a central logger error when the WPF window was launched.

Logging

  • (25025) - Fixed a bug that did not hide all ‘system’ log messages when filtered via the central logger. Now you can filter those out and hide log messages that are not relevant to a client developer, as opposed to a developer on the FSBL team.
  • (27106) - Updated the error messaging to be more accurate for FEA's getManifestEntry.
  • (27049) - Updated the error messaging to be more accurate forlaunchExternalProcess when spawning by path.

Advanced App Launcher / Foundational Config

  • (25683) - Fixed a bug that prevented custom folder names from being reused.
  • (25678) - Fixed a bug where editing one custom folder name in an error state, impacted the next folder the user edited.
  • (23892) - Fixed a bug where applications configured in the foundational config would not launch.

Misc.

  • (26452) - Fixed a bug that launched a second instance of FSBL if you right clicked the taskbar icon for HTML windows in installed versions.

  • (27391) - Fixed a bug where listeners to the distributed store were not being removed depending on the order they are removed.

  • (28161) - Fixed a bug where FSBL did not shutdown properly on automatic restart.

  • (27362) - Fixed a bug where HTML components in a minimized or maximized state in a workspace would load dirty on the reload. Now any workspace should always load clean on a restart or reload.

  • (26727) - Fixed a bug that was preventing cross domain components from being grouped together in the same render process.

  • (28354) - Fixed a bug where SaveAs in the workspaces menu was not checking existing workspace names correctly. Also fixed a bug where workspace was prompting as dirty even after selecting Save from the workspaces menu.

4.3.4

Release 9-1-2020 - Finsemble

(28978) - Fixed a bug where calling WindowClient.setWindowTitle immediately upon component load sometimes would not work

Release 8-13-2020 - Finsemble Electron Adapter

  • (28537) - Fixed a bug where arguments passed to launchExternalProcess could cause the process to not launch.

4.3.3

Release 7-29-2020

  • (22487) - Fixed a bug where native components could lose linker state after a data transfer.
  • (27837) - Fixed a bug in the Advanced App Launcher where data was not being converted correctly on upgrade.
  • (27862) - Updated the LinkerClient to not require the UUID to identify windows. This change requires updating Finsemble, Finsemble-dll and Finsemle-JAR together.
  • (27896) - Added app.allowRendererProcessReuse = false to FEA to fix a bug in affinity. Note: The 4.3.3 release also contains bug fixes outlined in the 4.2.5 and 4.2.6 releases shown below.

4.3.2

Release 7-17-2020

Finsemble has been updated to use Electron version 9.0.5.

  • (27019) - Fixed a bug where workspaces with groups could return an incorrect dirty state.
  • (27329) - Fixed a bug where workspaces with native components could return an incorrect dirty state.
  • (27151) - Fixed a bug where groups in a workspace could break after a restart.
  • (27320) - Fixed a bug in 'launchExternalApp' where parameters with quotes were not being treated as a single argument.
  • (27318) - Fixed a bug that prevented an application from launching when using its .exe name in the PATH.
  • (27250) - Fixed a bug where Finsemble did not restart when a restart was initiated during an installer auto-update.
  • (27108) - Fixed a bug where the seed installer build process failed due to missing dependencies.

4.3.1

Release 6-24-2020

Finsemble has been updated to use Electron version 9.0.4.

  • (26460) - Fixed a bug where the 'backgroundColor' property for windows was not respected.
  • (25909) - Fixed a bug where switching tabs on an aero-snapped window caused the window to move to its pre-snapped position.

4.3.0

Release 6-17-2020

Finsemble has been updated to use Electron version 9.0.0.

FDC3 1.1

Finsemble 4.3 brings the new and updated 1.1 FDC3 specification, including the new Channels API. Use the Finsemble FDC3 integration to: open apps, raise intents, send context and connect apps via channels. Easily port existing FDC3 1.1 applications to Finsemble. If you would like to find out more about FDC3 you can follow this link to the specification on their website FDC3 1.1 DesktopAgent and Channel API. The Finsemble FDC3 public repository can be found here.

Notifications

Finsemble desktop notifications are pop-up windows, called “toasts”, that provide meaningful alerts to the user. These notifications may be customized by the client regarding which apps send and receive the notifications, criteria around that notification, and actions that can be taken from the notification toast window. The Finsemble Notifications public repository can be found here.

Feature Enhancements

  • (20839) - FSBL now supports the opening of child windows using the Window.Open API.
  • (22499) - FSBL now supports saving Maximized and Minimized state to workspace. Now, when the user has minimized, maximized, and/or minimized, but maximized components, Finsemble saves that information when the user saves the active workspace. This allows users to restore any workspace to its previous state.
  • (21684) - FSBL now remotely persists your current active workspace so that end users can continue on their current active workspace when they switch machines.
  • (23335, 25975, 25995) - The seed project now has the capability to build services, preloads and components using typescript (.ts and .tsx for React are supported).
  • (23945, 23559) - A new config was added to allow developers to set a custom name for the empty workspace (‘emptyWorkspaceName’) and the workspace timeout message (‘closeFailureNotificationMessage’).

Advanced App Launcher

  • (23161) - Advanced App Launcher received several UI cosmetic updates.
  • (22652) - Fixed a bug where apps with the same name would both be removed from the Adv. App Launcher when one was removed, even if they were installed from different sources (config/App Catalog).
  • (25186) - Fixed a bug where the Adv. App Launcher search filter incorrectly persisted across FSBL restarts.
  • (24086) - preferPreviousState added and documented for foundational config in the seed. Added to distributed store foundation to change how preserved distributed stores are merged with preserved state. Changes 'disableUserRemove' to 'canDelete' and adds an additional 'canEdit' property to folders.

Advanced App Catalog

  • (22246, 22581) - Advanced App Catalog received several UI cosmetic updates.
  • (22639) - Fixed a bug where apps installed through the App Catalog could be incorrectly placed into a custom folder.
  • (21949) - Fixed a bug where a component could not be launched from the App Catalog Showcase page if the optional FDC3 compliant title property was defined in the data.json of the app-d server.

Central Logger

  • (18566) - Fixed a bug where the Components and Services section of Central Logger was not updating list of components on certain workspace switches.
  • (15706) - Central Logger imports are now sorted numerically, not lexicographically.

Linker

  • (20830) - Fixed a bug where duplicate messages were being sent from the Linker upon a workspace reload.
  • (23099) - Fixed a bug where LauncherClient.toggleWindowOnClick was not toggling if windows were moved. Now they toggle appropriately.

.NET

  • (25544,26549)) - Fixed height of drag and drop scrim for WPFExample and MultiWindowExample.
  • (25463) - Updated Titlebar styles in the MultiWindowExample.
  • (25159) - .Net Client calling unlinkFromGroup() on the Linker client no longer throws an exception. Additionally linkToGroup() and unlinkFromGroup() invoke a callback that may be passed to the arguments on completion of the operation.

Startup

  • (15213) - If Finsemble crashed and an end user had made changes to the workspace, Finsemble would actually load an earlier version of the workspace--a bad copy. Now, Finsemble reloads the correct workspaces even after a crash.
  • (24855) - Fixed a bug where a failed asset download or extraction would prevent future downloads from happening.

Misc.

  • (23146) - Fixed a bug where when undocking the toolbar, moving it around and placing another window in front, the toolbar would incorrectly come to the front.
  • (23301) - Fixed a bug wherein it was possible to tile with hidden windows.
  • (21933) - Fixed a bug where workspaces were being reordered in the Workspace menu when the workspace name was changed. Now, when you rename a workspace it maintains its position in the menu.
  • (25157) - The Zoom preload in the Finsemble seed now can be configured on a per-component basis.
  • (23037) - Fixed a bug in the CLI's service template that caused an error in the service's console.

4.2.6

Release 7-28-2020

  • (27392) - Fixed a bug where tabs seemed slow to appear when using a remote storage adapter. This requires updates to the seed because the Workspace Service no longer transmits all Workspace data with every update.
  • (28020) - Fixed several bugs that caused false positive dirty workspaces.
  • (28158) - Fixed a bug where sometimes dirty workspaces prevented shutdown.

4.2.5

Release 7-20-2020

  • (27797) - Fixed a bug where workspace data could be partially saved if the workspace was saved before components were fully loaded.

4.2.4

Release 7-13-2020

  • (27019) - Fixed a bug where workspaces with groups could return an incorrect dirty state.
  • (27329) - Fixed a bug where workspaces with native components could return an incorrect dirty state.

4.2.3

Release 7-07-2020

  • (27151) - Fixed a bug where groups in a workspace could break after a restart.

4.2.2

Release 5-29-2020

  • (26049) - Fixed a bug where Finsemble Storage service keys were bad.
  • (26011) - Fixed a bug where calling window.open would crash a component.

4.2.1

Release 5-22-2020

Finsemble has been updated to use Electron version 7.1.14

  • (24493) - Fixed a bug where custom folder content in the Advanced App Launcher was not persisted when using remote storage.
  • (24742) - Fixed a bug to allow Finsemble to exit gracefully when System Manager was closed due to a catastrophic startup problem.
  • (25359) - Updated electron packager to 14.2.1.
  • (25360) - Added the capability to specify a company name and file description when creating an installer.
    For all installer options please check installer section of documentation here.
  • (25363) - Added the ability to specify certificate passwords for signing installers via an environment variable.
    Read the documentation to sign your installers here.
  • (25633) - Fixed a bug that prevented new channels from being created using LinkerClient.createChannel.
  • (25915) - Fixed a bug where the Workspace service had issues loading the initial workspace if switch was called very early during startup.
  • (26002) - Fixed a bug that caused the Scheduled Restart Dialog to not show.
  • (25979) - Fixed a bug that caused LauncherClient.showWindow to not work properly in custom services
  • (25979) - Fixed a bug that caused LauncherClient.showWindow to not work properly in custom services

4.2.0

Release 5-8-2020

New developer features

  • (19152) - TypeScript declarations have been added for the FSBL object. Thus, when you start typing FSBL, TypeScript will supply suggested text, show the documentation in-line, and display what the parameters are. Note: The seed project must be built at least once before this feature kicks in.

  • (12968) - Custom WebSocket Certificates - If your internal security procedures block Finsemble's transport certificates, you can use custom certificates instead. Read the documentation to configure your custom certificates here.

  • (21061) - Default zoom level - You can now change the default zoom level for the zoom preload through configuration: zoomDefault will set a default percentage for a window's zoom level. This can be set for a component using finsemble.components.Window Manager.zoomDefault.

  • (20133) - Installer name reflects environment - Allows installer name and desktop shortcut to reflect environment. Now, when you make an installer, you can specify what environment you want your application to point to (staging, development, etc.). This is achieved by providing an installer configuration per named environment (as specified in configs/other/server-environment-startup.json) in configs/other/installer.json.

  • (20875) - .NET WinForms Sample Project - Added a new .NET sample project that demonstrates how to use WinForms (a .NET graphical UI class library) with Finsemble. You can check out the new sample project here.

  • (25218) - Adds an api method for setShape to the WindowClient. setShape takes an array of rectangles that define the parts of a window that are visible and can be interacted with. All other parts of the window will not be visible and will be unable to be clicked. setShape can be used to make portions of a window click-through.

General improvements

Launcher Client improvements

  • (20732, 20695) - Fixed a bug where calling showWindow() to change monitor with non-zero positional values or lacking additional parameters would break grouping.
  • (21362) - Fixed a bug wherein the Launcher Client's size restrictions (e.g., "maxWidth") was not being respected for native components.

Logger Client improvements

  • (22391) - Previously, the Central Logger's HTML file was linked to certain outside resources (e.g., fonts). These resources weren't being loaded due to our clients' strict security procedures. To fix this issue, the Central Logger's dependencies are now locally hosted.

Native improvements

  • (16747) - There was a mismatch in information returned between the .NET Linker Client and the normal JavaScript Linker Client API. These have been rationalized.
  • (22053) - Fixed a bug where the WPF component was failing to connect to a secure socket server.

Router Client improvements

  • (20705) - Previously, RouterClient.getClientName() value was returning the value of the window title rather than window name. The value for this is used in other parts of the API and thus could cause issues. getClientName() will now always return the window name.

Workspace Client improvements

  • (21513) - If you use createWorkspace to add additional workspaces, but leave the name field blank, Finsemble will create a workspace named Untitled1, Untitled 2, etc.

Miscellaneous improvements

  • (20706) - Fixed a startup timing problem that was causing Assimilation to come up early, which generated a large number of spurious errors.
  • (19939) - The System/Failure log has been improved so that you see a specific, actionable message during a boot failure. The failure log will improve remote debugging efforts.
  • (22335, 22340) - Fixed a bug that was affecting how Finsemble handled Chrome browser permissions. Chrome browser permissions can now be set at both the component and security policy level, as appropriate.
  • (22271) - Removed undocumented or deprecated flags from the toolbar config.
  • (23268) - Fixed a bug that was preventing services from being spawned as scripts.
  • (21865) - Fixed a bug where rapid workspace reloads could cause titlebars to not appear.

4.1.1

Release 4-7-2020

  • (24029): Fixed an error triggered during authentication that would occur when Finsemble was hosted on a non-secure domain.
  • (24161): Fixed an issue that would occur when an end user attempted to run a second instance of Finsemble.

4.1.0

Release 3-27-2020

New developer features

  • FSBL Protocol Handler (20773) - Protocols are a way for a link to "raise their hand" and ask for help from another application. For example, if you click on a meeting invite in an email, your calendar app will open to put that meeting on your calendar. Now, Finsemble can register as a protocol handler using the URL format fsbl://custom. When an end user clicks on this deep link, Finsemble will open and handle that link. Check out the new tutorial here.

  • New tutorials: New tutorials have been added to support native developers. Java Example Projects: A repository of example Java applications that make use of Finsemble functionality has been made available for Java developers. Bloomberg Terminal Connect Integration: If you have Bloomberg Terminal Connect, Finsemble allows you to bring bi-directional Bloomberg data synchronization to your smart desktop.

  • New API methods for .NET components (17226, 17227) - We have added additional API calls for .NET developers: LauncherClient.getActiveDescriptors() returns the window descriptor for all open windows. WindowClient.getSpawnData retrieves data set with LauncherClient.spawn

General improvements

UX improvements

  • (14573) - There was a bug where groups of windows in a certain configuration would cause the taskbar icon to disappear. This has been fixed.
  • (19820) - Fixed a bug where tabbed windows moved by Windows aero keys would reposition themselves back to their original position when you changed tabs.

Authentication

  • (21675) - When an end user closes the sample authentication component window without authenticating, Finsemble should shut down. There was previously a bug where Finsemble processes were still running in this instance. Now, the authentication component ensures that Finsemble shuts down appropriately.

Central Logger

  • (19203) - The Central Logger was inappropriately throwing a spurious warning about deprecated properties. This has been fixed so the warning only displayed when a deprecated property is present.
  • (18291) - In the past, very long names in the Central Logger would wrap. Now names longer than 30 characters are shortened to ellipses.
  • (14990) - The Process Monitor has a lot of useful information about how much memory and CPU each process is using. A button has been added to export the data from the Process Monitor. Additionally, to make this information more easily available, you can now expand and collapse each affinity group's information to more easily fit all processes on the screen at once.

Finsemble Native

  • (15160, 15161) - Aero snap maximizing has been disabled for WPF components. The Windows aero snap behavior wherein a window maximizes if dragged towards the top of the monitor causes misbehavior for WPF windows. As such, WPF components no longer participate in this behavior.
  • (16736, 16747) - Previously, certain errors could occur when HTML windows and WPF windows would share data. One component would broadcast data of a different type than the receiving component expected. This has been rationalized, allowing for seamless data synchronization regardless of component type.
  • (15197) - The WPF Example component would misbehave if the "Spawn Component" button was clicked without a component selected. This has been fixed.
  • (19867) - The .NET authentication example would encounter an issue if it was loaded prior to AssimilationMain.EXE coming online. Now, this example component will ensure that the Assimilation asset is running if it is launched.

Launcher Client

  • (18021) - Previously, size restrictions set by the Launcher Client (e.g.,"maxWidth", "maxHeight", "minWidth", "minHeight") were not respected by Finsemble in so much as the end user could widen a window beyond those bounds. Now, these parameters cannot be changed by an end user's mouse movements. You can still use the Launcher Client API to change the window bounds.

Linker Client

  • (20086) - The font color for Linker pills is now black. Previously it was white, which was difficult to see against a yellow Linker pill.

Workspace Client

  • (19156) - The Workspace Service has been refactored to handle very large workspaces more elegantly. Previously, the UI was locked while workspaces were being loaded. For very large workspaces, this locked the end user out of Finsemble for a (configurable) lengthy amount of time. Now, the end user is not locked out of the UI while workspaces load. An end user can either wait for a workspace to load completely or terminate a heavy workspace from loading by selecting another workspace. * As a side effect of this work, the configs loadWorkspaceTimeout and loadFailureNotificationMessage have been removed as they are no longer relevant.
  • (15621) - The promise of the WorkspaceClient.switchTo function was resolving too soon. Now the switchTo function will only resolve when it is done.
  • (20161) - Previously, if you had a workspace-agnostic component that tried to save data (e.g., setComponentState), the data wasn't being saved appropriately. Now, a non-workspace component cannot call setComponentState and doing so will return an error.

Miscellaneous

  • (19998) - Previously, an error would occur if a user tried to make an installer with spaces or special characters. Now, Finsemble installers can be named with: Alphanumerics Spaces Dashes Periods * Underscores
  • (19628) - Previously, an error would occur if a user attempted to use special characters to name components. Now, Finsemble components can be named with any valid JSON string. Please limit your component names to this paradigm.
  • (17089) - The nativeOverrides.js preload wasn't resolving correctly. This preload allows users to use common HTML commands, translating them to Finsemble API calls (e.g., window.open becomes LauncherClient.spawn).
  • (13749) - Fixed a bug to ensure that Finsemble's build process, Webpack, appropriately ends after quitting Finsemble.
  • (22856) - Fixed a bug where a window could get stuck to a mouse cursor and move around without being dropped.
  • (21757) - Previously, if you had multiple parameters in the query string of serverConfig, only the first was loaded. Now, you can add as many query parameters as you want.

Deprecations

Because of the work done to refactor the Workspace Service, the configs loadWorkspaceTimeout and loadFailureNotificationMessage are removed.

4.0.0

Release 1-25-2020

Version 4.0 represents an exciting new era for Finsemble! This release provides a slick new coat of UI paint for end users and introduces tools to help manage an institution's panoply of applications.

For many firms, desktop interoperation technology is new. Developing with JavaScript for the desktop requires a more disciplined approach than developing for the web. ChartIQ has pioneered this technology—as such, Finsemble engineers are creating solid, enterprise-grade solutions.

This release provides changes to Finsemble seed. Updating requires updating the seed. To see which files have been modified, compare your version of Finsemble with Version 4.0. As a major release, 4.0 contains a number of breaking changes. Please coordinate with Client Success if assistance is needed to upgrade.

New UX features

  • Application Catalog - Our clients have lots (hundreds! thousands!) of applications. Dealing with this sprawling library is now easy as pie with Finsemble Flow.

    The app catalog is a new UI component that allows Finsemble assemblers to manage a very large application library and allows end users to explore that library in an easy, meaningful way. Applications are displayed in carousels so that end users can see what is available to them. Users can search or filter apps by tags. Essentially, the app catalog makes it easy for end users to discover and use the apps that are relevant to their work.

    App Catalog
  • Advanced Application Launcher - Finsemble Flow now offers an advanced app launcher that is designed to handle thousands of apps and has many more features than the standard app launcher, including: Bookmarks Advanced search and filtering Folders and organization Integration with the application catalog

    <img src="./img/advancedAppLauncher.png" alt="Advanced App Launcher" width="600"/>

  • Aesthetic Update (15911) - Good UI design is not a one-and-done task—it's constantly iterative. After listening to and observing Finsemble users, we've learned a lot about how beautiful UI reinforces the flow state. We've folded these lessons into a general overhaul of Finsemble's UI for 4.0.

    In general, the UI refresh provides a fresh coat of paint. Colors and fonts have been updated to provide a slick look and feel to Finsemble. There are many small but meaningful tweaks to create a consistent visual language. Lastly, the process for white labeling has been made easier.

    <img src="./img/4.0aesthetic.png" alt="Finsemble's beautiful UX enhances flow" width="750"/>

  • Official remote desktop support - Our clients have been using Finsemble on remote desktops (RDP) for some time. However, this release takes additional steps to ensure that remote desktop is fully functional and fully supported. Users on Windows 7 will see a marked improvement in their RDP experience.

New developer features

  • FDC3 support - 4.0 begins our commercial support for the the FDC3 specification. We will be delivering our support for the specification over this and upcoming releases. In addition to this release’s official capabilities, we have a fully compliant FDC3 desktop agent in pre-release that we can make available to prospects and clients. Features included in this release are: The application catalog reads FDC3-compliant AppD directory metadata. In our initial release of application catalog, we are including a lightweight, partial implementation of an AppD server to support access to the catalog as well as search.

  • New Getting Started Tutorial - A new getting started tutorial for new Finsemble developers is now available. Check it out here.

  • Start-up Sequence Refactor (11595, 14490) - Finsemble's startup processes have been redesigned to significantly improve reliability by adding multiple stages and checkpointing to the startup sequence. Previously, startup was designed on a dependency graph. In practice, this meant that startup operated like a line of dominos: a single failing piece would bring startup to a halt. Now startup uses boot sequencing. If a critical service fails, the system produces output that identifies the specific failure. When a non-critical service fails, the system logs the issue but continues on.

        The refactor also adds the [system log](/docs/troubleshooting/debuggingFinsemble#debugging-start-up-and-the-system-log). The system log is a helpful new tool for debugging start-up problems. The system log provides:
    * The state of the start-up sequence
    * Catastrophic error messages
    * A copy of all user notifications since last start-up

    You can access the system log in one of three ways:
    * The log will be displayed only on startup error when the manifest config has `finsemble.bootConfig.onErrorMakeSystemManagerVisible` set to `true`.
    * The log will always be displayed when the manifest’s `startup_app.autoShow` value is set to `true`.
    * The log can be manually displayed by selecting "System Log" in the Finsemble menu.

General improvements

UX

  • (16942) - Under the hood, we've changed the way Finsemble moves and manages windows. This includes "DOM-based movement" for better performance. Practically speaking, this change has improved the behavior of RDP on Windows 7 and fixes some funkiness with scaling on multi-monitors.
  • (18316) - There was a bug that caused the toolbar to return to an end user's primary monitor on a restart. This has been fixed so that the toolbar always remains on the monitor where the end user places it.
  • (18267) - Previously, it was possible that tabbed windows would not behave with groups appropriately because of asynchronous/non-deterministic messaging. This has been fixed.
  • (13480) - Finsemble now uses the application's default window size if it isn't set in the component config.
  • (12645) - Previously, if you used high-resolution monitors and different display scaling between multiple monitors, the toolbar would appear with a white gap. This issue has been fixed.
  • (19244) - Previously, the "Always On Top" button would not work for tabbed windows or native applications. This functionality has been expanded to include both of these instances.
  • (15774) - There was inconsistent behavior with groups of windows and the Always On Top feature. Now, if a component joins a group that is set to be Always On Top, that component inherits the Always On Top status of the group. When a component window leaves a group, it returns to its previous state.
  • (15701) - Fixed a bug where an end user occasionally needed to click on a menu twice to close it.
  • Caveat - Currently, the component folder structure refers to two separate app catalogs (..src-built-in/components/appCatalog and ..src-built-in/components/advancedAppCatalog). The new app catalog component actually is positioned in advancedAppCatalog. Shame on us for not tidying our bedroom. In an upcoming release, this discrepancy will be resolved.

Launcher

  • (17905) - Previously, there was an issue using LauncherClient.showWindow to move native components. The callback was not resolving correctly. This issue has been fixed.
  • (17174) - Using LauncherClient.showWindow on a window in a group would improperly set bounds when breaking the group. Now, this call removes the specified window from the group before changing its size.
  • (16234) - LauncherClient.getComponentsThatCanReceiveDataTypes() promise/callback will not resolve if invalid parameters are specified. Finsemble now validates the input to this function.

Linker

  • (15632) - Previously, Linker data would be persisted in the workspace inappropriately. This has been fixed.
  • (13145) - Previously, a component could only unsubscribe from all linker channels. Now, a component can unsubscribe from specific linker channels using LinkerClient.unsubscribe.

Notifications

  • (19030) - Notifications were broken in 3.12 due to a build problem. This has been resolved. FSBL.UserNotifications.alert now works appropriately.

Search

  • (18518) - There was a bug causing the search results to not spawn correctly when clicked on. This has been fixed.

Workspaces

  • (15404) - Workspaces can now contain periods in their names.

Miscellaneous

  • (18397) - In your configuration, you can specify a logging-level for the logs to the Electron Adapter. Previously, it was possible to supply an incorrect configuration, which would cause the log level to be ignored. This has been fixed.
  • (13831) - It was previously possible to crash Finsemble by closing the invisible desktop services windows using the Process Monitor. The ability to do this has been removed.
  • (12600) - Previously, if you closed the Finsemble toolbar via the Windows context menu, it would appear as if Finsemble was shut down when it was actually still running. Now, shutting down the toolbar in this way triggers a "Confirm Shutdown" dialog window.
  • (16095) - Previously, large app assets (larger than 500MB) would fail to extract and cause the underlying container to hang. This was an issue in the previous version of Electron. By upgrading to Electron 7, this issue has been fixed.
  • (16017) - Now fin.desktop.System.getHostSpecs will return the operating system version in addition to the other specs it returns.
  • (19143) - In Finsemble 3.13, there was a dependency issue related to building an installer. This has been fixed.

3.13.2

Release 1-9-2020

  • (19777) - There was a race condition preventing the Linker pill from displaying correctly for .NET components. This has been fixed.
  • (19137) - There was an issue switching workplaces while running windowless Java or WPF components. This has been fixed.

Release 12-16-2019

This release exclusively impacts the .NET module.

  • (19777) - There was a race condition preventing the Linker pill from displaying correctly for .NET components. This has been fixed.

3.13.1

Release 11-22-2019

  • (15194) - Previously, the window title bar could cover up content on the page if preloaded. Now, it appropriately nudges the content of the page down.

Note: Because of the new way Finsemble preloads the window title bar, you may notice issues related to how content loads under the window title bar. If this is the case, you will need to adjust some configs to ensure that the content loads correctly. See the instructions on setting the FSBLHeader config to an object in the Config Reference.

3.13.0

Release 11-15-2019

This release provides changes to Finsemble seed. Updating requires updating the seed. To see which files have been modified, compare your version of Finsemble with Version 3.13.0.

New UX features

  • Windows and monitor management (14806, 16393, 15691, 15690, 15692, 15468, 14802, 15776, 15465, 15961, 15699, 16854) - We refactored monitor management so we are now fully aware of the location of all windows after monitor plug/unplug. Previously, it was possible to lose windows or groups of windows when unplugging monitors, changing scaling, connecting to RDP, etc. Finsemble now acts like a shepherd to these lost windows and guides them home.

New Developer Features

  • Process management - Finsemble gives you the ability to balance performance and resource usage through configuration. This is done by using process affinities to group several windows into a single renderer process. Learn more about Finsemble's process models by reading the new process management tutorial.
  • concurrentSpawnLimit (16223) - You can now limit the number of windows spawned in parallel during the workspace load. See the config concurrentSpawnLimit in Config Reference for more details.
  • chromiumFlags (15616) - New configs have added support for the remote-debugging-port Chromium flag. Setting a remote debugging port will assist in your collaboration with Client Success. See chromiumFlags in the Config Reference for more details.
  • Signed installers (15320) - You are now able to create signed installers with your own security certificates. This ensures that your Finsemble installers can conform to your internal security standards (whatever they may be). See certificateFile, certificatePassword, and signWithParams in the Config Reference for more details.
  • Hide the floating title bar for native applications (14780) - You can now hide the floating title bar for native applications. Doing so removes their ability to tab together (though they still snap, dock, and group together). See hideTitleBars in the Config Reference for more details.

UX Improvements

  • (15945) - Windows aerokeys (WINDOW + Direction buttons) now work while running on Electron.
  • (15920) - Previously, moving a Windows taskbar from the bottom of a monitor to the top would incorrectly move the Toolbar to a secondary monitor. Now, the Toolbar just repositions itself under the taskbar.
  • (15897) - Fixed issues that would occur if an end user attempted to tile a window with itself.
  • (15157) - Previously, when windows were snapped together (but not in groups), and another window is placed on top of that configuration, resizing the interior borders of the snapped windows would not move them to the front of the stack. As this proved confusing, windows are now brought to front when a user resizes a configuration's interior borders.
  • (16721) - Finessed the ability for Finsemble to handle window resizing when an end user changes the size or orientation of the Windows taskbar.
  • (16716) - Fixed an issue where clicking "Bring to Front" would initially only reveal HTML windows.
  • (16711) - Fixed an issue minimizing groups containing native components.
  • (18061) - Fixed a bug where the auto-arrange tooltip would display incorrectly after the toolbar was moved to a new monitor.

General Improvements

  • (15127) - The App Launcher menu would sometimes become blank if configs it expected to be there were missing. It is now more robust and will display appropriately.
  • (15366) - Finsemble is now more resilient to problems in the manifest.
  • (16299, 15725) - Resolved a bug where certain cross-domain components failed to connect to Electron's IPC.
  • (16759) - Fixed a spurious error when maximizing native windows in tabs while running on the OpenFin container.
  • (15937) - We fixed spurious errors in the log from the Router Client that occurred if you published to a non-existent responder.
  • (16791) - Fixed a bug where Finsemble would sometimes spawn several instances of AssimilationMain.EXE.

Central Logger

  • (15139) - Previously, defaulting the log capture level to "off" did not work correctly: new components still had their logs displayed in the Central Logger. Now, the default capture level of "off" works as expected.
  • (14317) - Logging for the Electron Adapter can now log to both file and to the terminal. This is configurable by setting finsemble-electron-adapter.logger.logLevel.transports.console to true. When logged to the terminal, the Electron Adapter logs are colored differently.
  • (16809) - Fixed an issue where sometimes logs weren't being recorded appropriately by the Central Logger.

Launcher

  • (15119) - Having your Windows taskbar set vertically sometimes created misbehavior in window movement when using LauncherClient.showWindow. This API call now works appropriately with this configuration.
  • (14549) - Fixed a bug with the slave parameter in LauncherClient.spawn.

Linker

  • (17826) - Fixed an issue wherein the Linker window would not show up if component name contains more than one “.”
  • (15926) - Resolved a timing error in the Linker Service.
  • (16009) - Previously, the Linker state was not being saved by the workspace if the component contained certain characters. This has been fixed.

Native

  • (16070) - The .NET implementation of RouterClient.Publish had an issue that was resolved.
  • (15812) - When Assimilation spawned an application component, it used to make that component's working directory in the same location as Assimilation. Now, it spawns that component's working directory where the component lives.
  • (14912) - For native applications, the path property is now read from the config. Previously, it was read from the workspace, which could confuse the Workspace Service since it never had the correct path.
  • (15651) - WPF windows had lagging issues when docked. This has been fixed.
  • (14725) - Native windows can now benefit from the configs alwaysOnTopIcon and alwaysOnTop (see the Config Reference). If set to alwaysOnTop, the application component will be spawned at the front of the stack (like a sticky note). The icon allows the end user to toggle this functionality.
  • (17078) - Previously, Finsemble would spawn certain native application components invisibly, which would lead to problematic behavior for certain binaries (e.g., Microsoft Paint). Finsemble now spawns all native windows visibly, allowing them to be loaded correctly.

Workspaces

  • (15797) - Workspace stability has been enhanced. Non-existent components or timed-out components no longer cause workspace closing to hang.
  • (15377) - Previously, if your start-up workspace was missing, Finsemble wouldn't load. If storage is corrupted during startup, Finsemble will still load the default workspace.
  • (15438) - Resolved issues related to reloading windows overlapping with the docked Toolbar.
  • (16780) - Now, when importing a workspace that shares a name with an already existing workspace, a number is appended to the end of the workspace name to avoid an error.

3.12.1

Release 10-18-2019

  • (16567) - Fixed an issue where Finsemble was not waiting appropriately during shutdown before it killed component processes. Now, Finsemble waits a number of milliseconds equal to shutdownTimeout to shut down services, and two seconds less for application components. See the Config Reference for full details.

3.12.0

Release 09-13-2019

This release provides changes to Finsemble seed. Updating requires updating the seed. To see which files have been modified, compare your version of Finsemble with Version 3.12.0.

General Improvements

  • (15475) - An issue was preventing the toolbar from being brought to the front with hotkeys. Now, using CTRL+ALT+F to search will also show the toolbar.
  • (14512) - A window would become unresponsive if you tried to tab it with itself. Now, it works!
  • (15917) - There was an issue with how native windows arrested focus from Finsemble, causing Finsemble menus to stay open when new components launched. This was fixed.
  • (14703) - Previously, if you quickly opened and closed a large workspace of native components the workspace might get into a bad state. This is because the components would not have had time to register with FSBL. To fix this, a workspace will not display application components to the end user until the workspace is completely loaded.
  • (15440) - Reloading workspaces with components that had been auto-arranged would sometimes load windows in the wrong position. Now, pixel rounding has been fixed to solve this issue.
  • (14771) - Fixed a timing issue that sometimes caused problematic behavior during workspace reload.
  • (15673, 15674) - Previously, if you saved a workspace with a single maximized window, that window would not reload as maximized. This has been fixed.
  • (15678) - Closing workspaces with large docked groups used to take a long time. Previously, Finsemble would close one window at a time and reform the group. By closing all windows at the same time during workspace shutdown, it dramatically speeds up the shutdown of large workspaces.
  • (15572) - In Finsemble, you can spawn windowless WPF components. Since windowless WPF windows didn't have bounds, Finsemble would throw an error when the Launcher Client API was used inside the component. These errors have been handled.
  • (14559, 15650) - Previously, WPF windows would overlap the toolbar when maximized. This has been fixed.
  • (14885) - There were sometimes unhandled exceptions in WPF components. These have been fixed.
  • (15656) - Fixed an issue wherein AssimilationMain.EXE would occasionally fail to shut down on Windows 7.
  • (14722) - Sometimes, AssimilationMain.EXE would try to run multiple times. This would cause bad behavior. Assimilation now checks to make sure that only one instance is running at a time.
  • (15538) - We previously used two different algorithms to convert the names of components into the keys for workspace storage. They worked slightly differently, which led to some hiccups. We now use one implementation for consistency.

3.11.0

Release 08-09-2019

This release provides changes to Finsemble seed. Updating requires updating the seed. To see which files have been modified, compare your version of Finsemble with Version 3.11.0.

General Improvements

  • (15150) - Previously, cross-domain components would use WebSockets for communication. Now, they'll use Electron's IPC. This improves Finsemble's performance!
  • (12638) - Now, when closing a tabbed window by selecting "Close" from the window's taskbar icon, the entire tabbed group will close. Essentially, when you close a tabbed window, the entire tabbed group closes (just like a browser!). Note that there is an exception for tabs hidden in the drop-down title bar. If you close a window with tabs hidden in the drop-down title bar, the rest of the tabbed group pops out; only the visible window closes.
  • (14699, 14619, 14479, 14798, 14907, 15328) - Squashed a collection of bugs related to how Finsemble responds to changes to monitor setups.
  • (13560, 14545, 14144, 14689, 14915, 15088, 15289) - Removed a variety of spurious errors for the Central Logger.
  • (14483) - WPF components that were linked did not reload as linked. This has been fixed.
  • (14869) - The .NET version of the Window Client gained getComponentState and setComponentState methods.
  • (11556) - The scheduled restart option now saves the current workspace automatically.
  • (13853) - We removed the taskbar icon that would pop up for the loading splash screen.
  • (14842) - Previously, a bug would cause the Electron Adapter to crash if the logger property was not defined. This has been fixed.
  • (14047) - Occasionally, after reloading workspaces, tabs weren't able to be clicked on. This has been fixed.
  • (14562) - Fixed a bug in the calculation of the mouse's location that could cause an end user to sometimes get stuck in a "tabbing and tiling" state.
  • (14889, 14504) - Previously, the end user would be prompted to save a new workspace configuration even if they hadn't done anything to trigger this dialog. This has been fixed for many cases.
  • (15138) - Previously, imported log files were not read in order, causing log timestamps to be out of order in the Central Logger. This has been fixed.
  • (15198) - For our sample .NET projects, we ensured that we were always targeting .NET v 4.5.2.
  • (15285, 15305) - Fixed a few bugs causing docked groups to undock during workspace reload.
  • (15294) - Fixed a bug that would prevent you from pinning multiple workspaces to the toolbar.
  • (15295) - When a single window is auto-arranged, it functionally works as maximizing the window. (Testing has revealed that this is the end user's expectation. We're always testing and tweaking Finsemble to match these expectations.)
  • (15309) - Finessed the way that large, auto-arranged workspaces are saved and reloaded. Previously, some bugs in fractional pixel count would cause workspaces to reload in a wonky way. This has been fixed.
  • (15330) - Fixed a bug when restarting while running on OpenFin.

3.10.2

Release 09-20-2019

  • (15961) - When initiating a Remote Desktop Connection into a monitor with a different resolution, windows were sometime lost. This has been fixed.

3.10.1

Release 07-10-2019

  • (14962) - Fixed a bug that was not properly respecting bounds passed into LauncherClient.showWindow.

3.10.0

Released 07-10-2019

This release provides changes to Finsemble seed. Updating requires updating the seed.

New Developer Features

  • Typescript Support (11709) - Finsemble now ships with a TypeScript loader and TSLint to allow the use of TypeScript in the src and in the preloads folder. This means that you can write your React components using files with tsx extensions. You can also write preload scripts using TypeScript files. (Did you know? The ChartIQ team loves Typescript and uses it develop Finsemble!)
  • The src Folder Now Builds (12318) - Previously, Finsemble would build files only inside of the src/components directory. We now build all files in the src directory.
  • Display Name (7714) - Developers now have the ability to specify a window's display name using a config entry. See displayName in the Config Reference
  • Restrict Chromium Permissions (13203) - By default, Electron gives access to any Chromium permission that a website requests (e.g., geolocation, audio). Developers can now use permissions to restrict access to these APIs. Read more here!

UX Improvements

  • (12785) - Fixed a bug where changing monitor resolutions would break docked groups.
  • (13745) - Electron, Finsemble's container, was bringing in some unintentional behavior. Previously, hitting CTRL + PLUS would zoom in all Electron windows, but CTRL + MINUS would not restore them. We've disabled Electron's default zoom behavior. Zoom is now handled by a preload (zoom.js) which behaves as users expect.
  • (12662) - Previously, if you closed tabbed windows while a workspace was loading, it would disrupt the workspace loading process. To better manage user expectations, windows are not displayed until all its children are finished loading.
  • (12742) - Previously, the toolbar could be dragged in a way that would cause it to maximize. (Did you know? The toolbar is really just an HTML window styled to look like a common UI element!) This has been fixed.
  • (12736) - There was an issue on Windows 7 where an end user's mouse could become detached from the window during movement. This has been fixed.
  • (11795) - Previously, when clicking on a mailto link, there would be errors. This has been fixed.
  • (13493) - A bug was causing search results to remain on screen in certain circumstances. This has been fixed.
  • (12294) - Fixed a bug where automatic restart wasn't working.
  • (13468, 14532) - Native windows can now move across monitor boundaries and Assimilation.exe can deal with different monitor scaling sizes correctly. Previously, end users sometimes noticed some funky behavior with native windows when they tried to move them to new monitors.
  • (13862) - Fixed a bug where the Linker window sometimes would not autohide when another window gained focus.
  • (14344, 14669, 14670, 14675, 14676, 14705, 14913, 14025, 12150) - Fixed a series of bugs related to how windows dock and groups move together.
  • (14538, 14680, 14718, 14750) - Fixed a series of bugs related to how windows tab together.
  • (14713) - Fixed a bug where, when unlocking a computer, Finsemble thought the CTRL key was stuck in the pressed state. This caused some undesired behavior when windows docked and undocked. To fix this bug, we disabled the ability to dock via the CTRL key for applications using Finsemble.dll and timed out key presses after one minute.
  • (14757) - Previously, if you clicked the reveal button, certain grouped components would break apart. This has been fixed.
  • (14772) - The splash screen is now unable to be resized. (It's just a splash screen after all.)
  • (14810) - Previously, when you double-clicked the title bar on native windows, the windows would maximize and overlap the toolbar. This has been fixed so that double-clicking to maximize appropriately cedes space to the toolbar.

General Improvements

  • Storage Service Config is Now at the finsemble.servicesConfig Level (10896) - The Storage Service config was moved to the finsemble.servicesConfig level for consistency with other services: finsemble.defaultStorageAdapter and finsemble.storage. The old locations will continue to work for backwards compatibility.
  • Electron Adapter Logging Improvements (12796-12799) - The Electron Adapter now logs to a file. Previously, it would display to the console window. We instrumented the entire system so developers can export the log files for field support.
  • Cross-domain Components Now Work on Different Ports (14496) - Previously, different components hosted on the same domain would not work on different ports. This has been fixed.
  • Electron Adapter Now Filters Remote Modules (13114) - The remote module allows renderer processes to access APIs that are otherwise only available to the main process. The Electron Adapter now filters the remote modules that Finsemble does not use.
  • (14738) - We removed the icons in tabbed windows. Icons were causing some undesirable behavior. Icons will be added back in a future release.
  • (12678) - Fixed a problem wherein Finsemble.dll would crash when incorrectly configured.
  • (11476) - Significantly improved the time to shut down Finsemble.
  • (13546) - Previously, the system tray icon would not update if the file changed after it had been cached. Now, the system tray icon is fetched on each run of Finsemble.
  • (13378) - When calling getComponentState using the fields parameter, exceptions were previously thrown. This has been fixed.
  • (13098) - If an asset defined in the manifest failed to download, Finsemble would simply fail to load. Now, Finsemble will start and continue to try to download the required asset.
  • (12971) - Previously, preload scripts were injected into the page on the window "load" event. Now they're injected immediately upon window creation.
  • (13741) - Pressing CTRL+C from a terminal previously caused Electron processes to hang. This has been fixed.
  • (14688, 14748) - Pinned apps on the toolbar previously couldn't unpin if the displayName changed or if the config entry was removed. Now these pins are removed in these circumstances.
  • (14697) - Previously, the user would be prompted to save a new workspace configuration even if they hadn't done anything to trigger this dialog. This has been fixed for many cases.
  • (14698) - The Electron Adapter would fail to load if a particular asset specified in the application manifest could not be downloaded. Now, Finsemble will start and report an error.
  • (14723) - Fixed a bug in our sample authentication component. Previously, the component wouldn't initialize correctly.

Central Logger

  • (13273) - The Central Logger now has a taskbar icon.
  • (12631) - A variety of errors were being shown erroneously by the Central Logger. This cluster of bugs has been fixed.
  • (14603) - Fixed an error where the Central Logger was occasionally going blank.

WPF components

  • (13563, 14406, 13684) - The parent-child relationship between windows in our .NET example was causing timing problems during workspace switches and restarts. That has been fixed with a new architecture.
  • (14405) - WPF components that made heavy use of some third-party grid controls were experiencing performance degradation. Event handling in Assimilation.exe has been significantly improved to handle this situation.
  • (13541) - Fixed a bug that caused grouped WPF windows to not move together.

3.9.1

Release 07-11-2019

  • (14962) - Fixed a bug that was not properly respecting bounds passed into LauncherClient.showWindow.

3.9.0

Released 06-03-2019

This release provides changes to Finsemble seed. Updating requires updating the seed.

New features

  • Pop-up Windows and Loading Screens (12170) - Finsemble now supports applications with loading screens and pop-up windows. Previously, Finsemble's Assimilation program was designed to handle single windows. Applications with loading screens, like those in the Office suite, were out of scope. Developers can now use the new configs windowTitleWhiteList and windowTitleBlackList to pinpoint which windows they wish to integrate and exclude by name. For example, this configuration allows a user to launch Microsoft Outlook via Assimilation:
    "windowTitleWhiteList": ".*(Inbox|Outbox|Today).*",
"windowTitleBlackList": "Opening.*",
  • New Window Client Method: removeComponentState (12340) - removeComponentState has been added to allow developers to remove a component's persistent state. Previously, they could change a component's state using the Window Client, but not remove a field.

  • Electron Adapter Security (12786) - Developers can now limit navigation to web pages based on protocol or domain. Through the Electron Adapter's permissions, they can ensure their smart desktops only load secure content and known domains. Read how here.

  • Configurable Search Results (12807) - Two new config entries control what results are returned when end users perform a search. If workspaceSearch or componentSearch are false, the search providers will not return results for workspaces or components, respectively. See the Config Reference for more details.

Improvements and Bug Fixes

  • Drop-Down Title Bar Changes (14222): We are always polishing Finsemble's user experience. As of this update, closing a window with a drop-down title bar does not close any other windows it was tabbed with. The drop-down title bar (aka the companion window) is often hidden, which obscures the tabs which it manages. In the previous iteration, it was assumed that end users would interpret closing a tabbed window like closing a browser window; they would expect all of the tabs to close. However, testing revealed that end users would occasionally close windows they did not intend to close. Now, if you close a window that has a drop-down title bar with tabbed windows, only the active window closes.

  • Workspace Client Refactor: We’ve significantly simplified the Workspace Service data model. Previously, workspace data was duplicated in two places in storageindividually, and then again under fsblWorkspaces. Now, workspace data is stored only onceunder a key with its respective name. fsblWorkspaces has been replaced with the key finsemble.allWorkspaces, which stores the name of all Finsemble workspaces as an array. Note: This is backwards compatible. Old workspaces in storage will automatically be converted to the new format. (11252) - Workspaces specified in the config can now accept the same format as an exported workspace. If an end user deletes or renames a workspace that was specified in config, the workspace defined by the config will be reloaded into Finsemble. (11639) - When Finsemble is asked to launch a component of which it is unaware, it will launch a special "unknown" component in its place. As of this version, Finsemble will replace the unknown component with the actual component if the user regains access to it. (14035) - Previously, if a user imported a workspace with native components that they did not have access to, it would cause the workspace to hang. Now, an unknown component is shown. (11841) - Finsemble can now be launched even if no default workspace is specified: it simply launches with an empty workspace devoid of any application components.

Electron Adapter Improvements:

  • (12872) - Trusted preloads now support a full URL match instead of just a filename. Note: Using full URL matches will be required as of 4.0.
  • (12646) - Fixed a bug where auto arrange wasn't working properly after closing windows.
  • (12630) - Fixed a bug where Finsemble's splash screen only showed on the first launch.
  • (12380) - Fixed a bug where alwaysOnTop sometimes did not work properly.
  • (13539) - When you click on the name of a process in the process monitor, the process's window flashes. Previously, there was a bug where this would fail to re-hide invisible windows. This has been fixed.
  • (13446) - Fixed a bug where devtools wouldn't open a second time after closing them once.
  • (13817) - Injection was broken in the Electron Adapter. It has been fixed.
  • (13942) - Fixed a bug where Finsemble.dll couldn't connect to Finsemble if a non-default IAC server address was being used.
  • (14003) - Previously, it was possible for windows to remain offscreen when changing monitor configurations. This has been fixed.
  • (14026) - Previously, if a component was configured with windowType: "application" and an affinity, it could destabilize the system. This is now fixed. If a component is configured with windowType: "application", the component will be isolated in its own process, regardless of the affinity configuration.

Assimilation Improvements:

  • (12626) - Assimilated windows now have a heartbeat.
  • (13465) - If Assimilation fails to spawn a WPF window, it will now return errors to Finsemble.
  • (13150) - Previously when removing an assimilated window, the Central Logger would throw the error "trying to remove non-existent handler bounds-change-end." This has been fixed.
  • (13464) - Fixed a bug where enabling logging in Assimilation would crash AssimilationMain.EXE.
  • (13380) - Previously, if a native window was stacked with an HTML5 window, you could destabilize the workspace by unstacking the native window. This has been fixed.
  • (13242) - Previously, window.options.autoShow was not respected for native windows. This is fixed.

Central Logger Improvements:

  • (11549) - Fixed a bug where calling bring to front on a group of tabbed windows would throw an error in the Central Logger.
  • (12805) - Previously, the Central Logger would crash when exporting very large logs (30k+ entries). This has been fixed.
  • (12164) - Fixed a bug in the Central Logger where all windows appeared crashed when coming up from sleep.
  • (12841) - Groups of windows were erroneously producing a "Callback was already called" error in the Central Logger. This issue has been resolved.

Miscellaneous Improvements:

  • (14098) - The toolbar is now saved to storage. It was previously saved to the active workspace.
  • (12606) - Fixed a bug where windows were not moved out of a toolbar's claimed space when it was docked to the monitor.
  • (12477) - Added better error logging to the toolbar component.
  • (12174) - Previously, components of the same kind would be spawned on top of one another. Now, their top-left corner will stagger.
  • (7816) - Fixed a bug where a window's taskbar icon would disappear in some circumstances.
  • (12914) - Fixed a bug on Windows 7 where grouped windows would not restore after being maximized via double clicking on the title bar.
  • (13980) - Fixed a bug where double-clicking a window’s title bar caused the window to maximize to the wrong dimensions.
  • (13318) - Fixed a bug on Windows 7 where npm install would fail.
  • (12921) - Previously, WPF windows grouped together might not restore as grouped during a workspace switch. This has been fixed.
  • (13954) - Fixed a bug that was preventing all windows from being restored and brought to the front with a click of the taskbar icon.
  • (13967) - Previously, hitting enter after using the arrow keys to explore search results caused the search menu to appear after spawning the component. This has been fixed.
  • (13798) - The Workspace Client API call isWorkspaceDirty(cb) now appropriately returns true or false, depending on if the workspace has been modified or not. A bug was causing an undefined return.
  • (13823) - Fixed an issue where grouped windows were displaying individual taskbar icons. Now, appropriately grouped windows share a taskbar icon.
  • (13855) - Fixed a bug where docked windows were not moved out of the toolbar's claimed space.
  • (13975) - Previously, window maximize would fail after certain monitor changes.
  • (13977) - Fixed a bug where workspace names could not be edited in the preferences component.
  • (13386) - Previously, the act of loading a stacked window would cause the workspace to be made "dirty", i.e., it would signal that something had changed in the workspace and prompt the user to save. This has been fixed.

3.8.6

Release 07-11-2019

  • (14962) - Fixed a bug that was not properly respecting bounds passed into LauncherClient.showWindow.

3.8.5

Release 06-21-2019

Bug Fixes and Improvements

  • (14649) - Fixed a bug where, when unlocking a computer, Finsemble thought the CTRL key was being pressed. This caused some undesired behavior when windows docked and undocked. To fix this bug, we disabled the ability to dock via the CTRL key for applications using Finsemble.dll and time out key presses after one minute.

3.8.4

Release 05-17-2019

Bug Fixes and Improvements

  • (13286) - Fixed a bug where tabbed windows were saved incorrectly to the workspace under certain circumstances.
  • (13318) - Fixed a bug introduced in 3.8.1 that was preventing clients on Windows 7 from using npm install.
  • (13097) - Previously, the Finsemble build process would fail if you removed the Finsemble Electron Adapter. This has been fixed.
  • (13327) - Fixed a bug where calling getStackedWindow would result in an error even when it worked properly.
  • (13403) - Previously, under some circumstances, a window dragged out of a tabbed group would come back invisible.
  • (13333) - Finsemble seed tutorial had a typo while listening for the FSBLReady event.

3.8.3

Release 05-01-2019

Breaking Change - Cross-domain Component Security

A change to the security policies while running on Electron in 3.8.0 introduced additional restrictions to cross-domain components. To learn more about these security policies and how to make sure your Finsemble smart desktop operates safely and smoothly, please read the Security Policy tutorial.

New Features

  • Session Cookies (12179) - Finsemble now supports session cookies to facilitate preload script downloads.

Bug Fixes and Improvements

Assimilation/WPF Improvements:

  • (7576) - Assimilation now has per monitor DPI awareness.
  • (12218) - Assimilation's Folder config variable that determines where its log file is written was not working correctly; the log file was only writing to its default location. This has been fixed.
  • (12625) - Fixed a bug where WPF Windows weren't docking with HTML5 windows correctly when display scaling was enabled.
  • (12663, 13057) - Fixed a bug where reloading a workspace with large numbers of WPF or native components would cause Finsemble to hang.
  • (12715) AssimilationDLL64.dll was previously crashing on Windows 7 when large numbers of components spawned at the same time. This has been fixed.
  • (13077) - Previously, Assimilation had a limited use case wherein applications that spawn secondary windows became unusable. Assimilation can now handle secondary windows.

Electron Adapter Improvements:

  • (12646) - Fixed a bug causing gaps in auto arrange when using it on a single window.
  • (13284) - Fixed a bug where Finsemble was spawning spurious invisible floating title bars while using the Electron Adapter.

Miscellaneous:

  • (12898) - The default server address is now ws://127.0.0.1:3376 (previously wss://localhost.chartiq.com:337). This change was made to allow Finsemble to work on a client's network out of the box. For the purposes of version 3.8.3, you must use one of these two server addresses. You can change your serverAddress using manifest-local.json.

3.8.2

Release 04-25-2019

  • (13135) - Fixed a bug with LinkerClient.subscribe()

3.8.1

Release 04-19-2019

Upgrading/Big Fixes The 3.8.1 release squashes a bunch of bugs.

  • User Preferences component update (12618) - Fixed a bug in the User Preferences component where you couldn't delete a workspace unless it was highlighted. A workspace may now be deleted by clicking the "Trash" icon, regardless of what workspace is highlighted.
  • (12641, 12697) - Fixed a quirk in the Electron Adapter's permissions where you could force a window closed in spite of a restriction.
  • (12644) - Fixed a bug wherein restricting a window's forceClose permissions via the Electron Adapter would cause unexpected behavior in the window.
  • (12632) - Fixed a bug where the name of a quick component was not displaying correctly.
  • (12627) - Fixed a bug that was causing an error dialog when relaunching Finsemble on Electron.
  • (11949) - Fixed a bug that caused window position to be off by a pixel or two when using setBounds.
  • (12307) - LauncherClient.spawn() forceOntoMonitor argument was broken. It's now fixed.
  • (11519) - dockOnSpawn argument was broken. It's now fixed.
  • (12661) - LinkerClient.getLinkedWindows() failed if no parameters were passed. These should be optional. It's now fixed.
  • (12561, 12714) - The Electron Adapter was listed as an optional dependency, but it was actually not optional. This has been fixed so that it is, indeed, optional.
  • (12702) - DisentangledUtils.clone had a logger error that conceals other errors. This is fixed.
  • (12560) - Aerosnap capabilities formerly encountered issues if the WINDOWS key was held down for more than ten seconds. This is fixed.
  • (12703) - Fixed a bug where invisible native windows were preventing the toolbar from docking properly.
  • (12329) - Finsemble components cannot have periods in their name. Now, when naming a component via the native overrides preload, any period added will now be converted to an underscore.

3.8.0

Released 03-29-2019

New Features

  • Electron Support - We are proud to announce support for Electron. Electron is the industry leader, with Slack, Spotify, Microsoft Teams, and thousands of other apps all running on Electron. Our engineers spent years discovering and solving for development issues to create Finsemble. Now with Electron support, we gain improved performance and access to a deeper set of functionality.

  • Our new Electron Adapter allows Finsemble to run on Electron. The Electron Adapter ensures rigorous security through the following practices: The Electron API is removed by default from all windows. This architecture ensures that windows are insulated from the desktop and from each other, communicating only through well-defined, intermediated messaging APIs. All of Electron’s extensive security recommendations are implemented; most notably, Chromium sandboxing is turned on and node integration is turned off.

    • For information on deploying your Finsemble based app on Electron, see Deploying Your Finsemble Application.

      How to switch to Electron:

      • Run npm install. This will automatically install the Electron Adapter.
      • Electron can then enabled through either a JSON setting or by setting an environment variable. JSON: In the file finsemble-seed/configs/other/server-environment-startup.json set "container" : "electron" ENVIRONMENT VARIABLE: set container=electron
  • React Upgrade (12183) - Finsemble's UI controls (found in presentation components) now use React v. 16.8.3. 16.8.x is backwards compatible with code built for previous React versions. If you use our controls in your own applications, it might be helpful to use the React Development Tools. You can read our tutorial on how to get working with these tools here.

  • Search Relevancy Improvement (12311) - Previously, Finsemble's component search features provided generous allowance for typos, but short search strings sometimes returned spurious results. With this update, a better balance is struck so that search results are relevant to end users.

Upgrading/Bug Fixes In version 3.8 we've changed the mechanism that loads the Window Title Bar. The new method uses a preload function rather than injected JavaScript. This change allows firms to completely eliminate the use of injected JavaScript, a mechanism that was necessary in older versions of OpenFin. If you've customized the Window Title Bar component you'll need to merge in changes from the newest finsemble-seed version (src-built-in/components/windowTitleBar) with particular care to implement the "ready" event pattern in windowTitleBar.jsx.

if (window.FSBL && FSBL.addEventListener) {
FSBL.addEventListener("onReady", init);
} else {
window.addEventListener("FSBLReady", init);
}
  • (11878, 11967) - With some minor UI updates to dialogs, we've created more consistency in expected behavior throughout Finsemble.
  • (12282) - Fixed a bug wherein windows on a disconnected monitor remained in unreachable space (off screen). Now, Finsemble's display awareness has been fixed and windows will relocated appropriately to the available monitor.
  • (12319) - Fixed timing bug in the Linker Service that was interfering with finsemble.services.linkerService.channels.
  • (12321) - Fixed a bug where windows could be accidentally docked to the toolbar.
  • (11980) - Fixed a hotkeys service bug where keys got stuck in a pressed state while computer went into sleep, lock, or hibernate modes.
  • (12001) - Window Title Bar is now preloaded rather than injected into application components. See deliveryMechanism in the Config Reference for information on how to configure injection if necessary.

3.7.1

Released 05-01-2019

  • (13286) - Fixed a bug where sometimes a reloaded workspace would display a tab header erroneously.

3.7.0

Released 03-08-2019

  • Process Affinity (11575): Services can now be run as process, window, or script. This is set via the new config parameter spawnAs. Use this to fine tune concurrency vs. memory footprint. Service configs can now generally be overridden via the finsemble.servicesConfig config entry. Electron's "affinity" flag can also be added to service configs to take advantage of process affinity on that platform. Managing processes through process splintering has been deprecated in favor of process affinity.
  • WebSockets (11408): The underlying transport for Inter-Application Communication (IAC) has been migrated from socket.io to WebSockets. This eliminates an unnecessary dependency, streamlines the protocol, and opens up IAC to a wider range of non-JavaScript applications.
  • Assimilation Expansion (11090): Both 32 bit and 64 bit native apps can be simultaneously assimilated.
  • (11566) Non .EXE applications can now be spawned by Assimilation. This includes protocol handlers and jar files.
  • New Window Management Parameters (9777): New parameters are available for fine grain control of window behavior. These can be set as either parameters to LauncherClient.spawn or set in a component's config: see the Window Service in the Config Reference for details.

Upgrading/Bug Fixes

  • (11502) Auto arrange now works on grouped windows.
  • (11529) Fixed aesthetics of the toolbar's resize handle when the toolbar is very small.
  • (11151) Fixed a race condition that was sometimes causing the toolbar to not display when running on Electron.
  • (11730) Added support for configurable Finsemble IAC websocket server URL and certificates paths.
  • (12278) Fixed an issue when trying to bring to front an application using the CTRL + ALT + UP hotkey.
  • (12095) Fixed an issue when trying to apply hyperfocus for children of tabbed windows.
  • (10483) Fixed an issue where the bring to front window management does not properly select componentType.
  • (11876) Fixed an issue when calling getSpawnData.
  • (11358) Fixed an issue where duplicate close events were received after closing native applications.
  • (11632) Added default value (true) for dockableWindow.allowTiling.
  • (11875) Added Router Publish support for the Openfin protocol handler.
  • (12069) Added default for serverAddress (localhost.chartiq.com) when running on Electron.
  • (12031) Better support for restoring from minimized and maximized windows.
  • (12030) Added configurable support for window aero hotkey movement.

3.6.3

Released 02-22-2019

  • Window management improvements (11534) Maximized windows can now be dragged from a maximized state.
  • (11761) (experimental) Windows can now be moved through aero keyboard combinations, e.g., WINDOWS KEY + UP, DOWN, LEFT, RIGHT. See serviceConfig.docking.enableWindowsAeroSnap in the Config Reference.

Upgrading/Bug Fixes

  • (10044) Fixed an inconsistency in scheduled restart.
  • (11867) Fixed an issue wherein paths were being duplicated in certain conditions when launching a WPF app via a URL.
  • (11776) Finsemble now transmits heartbeat failures of frozen components on a specific channel for custom handlers.
  • (11903) Fixed an issue where maximized windows were being snapped at their previous position.
  • (11916) Fixed an error when exporting from the Central Logger.
  • (11567) Tabs now resize properly when restoring from a maximized state.
  • (11984) Fixed an issue with minimizing a window that was removed from a tabbed state.
  • (11653) Fixed an issue that occurred when attempting to maximize the toolbar.
  • (11934) When tabbed windows become unresponsive, the end user now receives a notification stating that the window has crashed.
  • (11947) Improved performance when closing tabbed windows.
  • (11800) Fixed a bug where minimizing a maximized window caused the window to become un-maximized when restored.
  • (12031) Fixed an issue with maximizing windows by double-clicking the title bar.

3.6.2

Released 01-29-2019

Upgrading/Bug Fixes

  • (11845) Fixed a bug where workspace configuration changes were not always applied
  • (11542) A callback had previously created a console error message in the Central Logger on startup.
  • (11566) By default, Finsemble now uses Assimilation to spawn URLs
  • (11502) Fixed the scale code in Auto Arrange
  • (11658) Fixed duplication of parameters for WPF applications
  • (11650) Docked components now reclaim space appropriately when monitor layouts change at runtime.
  • (11637) Fixed a bug regarding tabbed windows existing off-screen when monitor layouts changed
  • (11636) Fixed a bug regarding snapping to monitor edges after monitor layouts change at runtime
  • (11645) Fixed a bug regarding maximizing windows after monitor layouts change at runtime
  • (11410) Assimilation: add ability to disable hotkey listeners completely

3.6.1

Released 01-15-2019

  • (11496) Fixed race condition when restoring stacked windows of windowType: application.

3.6.0

Released 01-08-2019

This version includes a performance overhaul of finsemble.dll that will result in improved usability of .NET/WPF applications managed by Finsemble as well as hardening and refactoring of key internal services to improve reliability, debuggability, and performance.

  • (10841) Improved window movement performance for WPF/.NET applications that use finsemble.dll to create a native header by offloading window processing to Assimilation.
  • (11130) "Chromelike" zoom pop up is displayed when using the zoom.js preload.
  • (11181) Resizing of Tetris-shaped window groups is now proportional, with a scrim that matches the outer boundaries of the group.
  • (11168) Added TSLint.

Upgrading/Bug Fixes Assimilation version 3.6.0 is required when running native applications.

TSLint has been added to the dependencies for finsemble-seed in order to support our ongoing conversion to Typescript. You should run npm install after upgrading. A default TSLint configuration, based off of Airbnb, has been published here.

  • (11275) Numeric keypad keys can now be mapped as hotkeys.
  • (11175) The draggable icon on the toolbar is hidden when it is not in floating mode.
  • (11229) Workspace JSON has been streamlined, with the result of much smaller workspaces. This change is backwards compatible with the previous workspace format.
  • (11498) Topic-based get configuration is no longer ignored on storage adapters.
  • (10955) The Launcher Service has been merged into the Window Service. This reduces the risk of race conditions caused by asynchronous operations.
  • (11238) The Workspace Service has been hardened with promises and Typescript.
  • (11071) The Finsemble client API has been migrated from JavaScript to Typescript for robust type checking in the library code.

As of version 3.6, Assimilation version numbers are synced with Finsemble version numbers.

3.5.0

Released 12-11-2018

  • (11015) Native applications running finsemble.dll now work with Electron based Finsemble.
  • (10711) Alternatives are now available for window grouping/docking.

servicesConfig.docking.requireRectangularityForGroupResize - When false, allows "tetris" shaped groups to be resized by dragging on any exterior corner. When true, only rectangular groups are resized (dragging on a corner will resize the individual window). When this is false, grabbing an exterior edge will always resize the individual window rather than the group as a whole.

servicesConfig.docking.undockDisbandsEntireGroup - When true, clicking on the undock icon will disband the entire window. The window that was clicked will not pop out.

servicesConfig.docking.fillHolesOnUndock - When false, rectangular groups will not maintain their size when a window is popped out.

Upgrading/Bug Fixes

  • (11077) Corrected problem where the linker wouldn't communicate until a page was refreshed.
  • (11123) nonConfiguredComponent is now a system component. This prevents it from accidentally getting caught up in workspaces.
  • (11172) Multiple data sources can now be used with the storage service.
  • (10985) Caught case where monitorRect was not available in OpenFin fin object. Will use availableRect in that circumstance.
  • (10920) UserNotification is now available to custom services.
  • (10844) Handle race condition when using finsemble.dll
  • (10045) Removed duplicate entry for Floating Titlebar in presentationComponents.json.

3.4.2

Released 12-07-2018

  • (11077) Fixed linker bug that required a refresh of the page receiving linker data
  • (10985) Fixed bug in getClaimsOffset for use with DockableMonitor instances

3.4.0

Released 12-05-2018

Upgrading/Bug Fixes

  • (10837) Improved error handling and reporting of faults in storage adapters. This helps developers assess problems with network connections and remote databases.
  • (10629) Improved the rectangular group detection algorithm for docked windows.
  • (10775) Spawning external apps with assimilation now accepts command line arguments.
  • (100924) Removed EXE and Zip files from the core library so that tarballs can be accepted by third parties with stringent security filters.
  • (10901) The IAC (Finsemble router transport that communicates with Electron's IPC) is automatically used as the cross domain transport when running on Electron.
  • (10693) Fixed a bug wherein window title bars would lose draggability if the user vertically scrolled the page before it finished loading.
  • (10531) Improved error checking, reporting, and timeout handling in workspace switches.
  • (10827) Improved "off monitor" window relocation algorithm.
  • (10548) Disallowed snapping to "ephemeral" components.
  • (10781) Fixed bug where double-click on the title bar failed to maximize the window.
  • (10769) Fixed race condition bug with restart where responder was not found.
  • (10767) Eliminated false dirty states that caused prompts to save workspaces when no changes had been made.
  • (10533) Fixed bug where tabs could get stuck in hidden state.
  • (10455) URL changes are now always preserved in the workspace when persistURL is set.
  • (10557) Component state is now saved to workspaces. This means that linker state can now be set when sharing workspaces.

3.3.0

Released 11-20-2018

This version contains performance improvements and architectural refactoring of the underlying docking, tabbing and tiling code.

New Naming: The Docking Service has been renamed Window Service. No changes are necessary. Removed Stacked Window Manager: The Stacked Window Manager Service has been removed. Workspace Saving Change: When a user declines to save their active workspace, the initial pristine workspace is now loaded on session restart.

Upgrading/Bug Fixes

  • (10325) Previously, workspaces containing non-existent window names (e.g., if a user lost entitlements to that component) would fail to close and prevent Finsemble from opening other workspaces.
  • (10268) Fixed bug where a workspace would crash if it contained no windows.
  • (10098) Resizing a rectangular group to the left past a certain threshold previously caused the group to shrink.
  • (10081) Fixed a race condition in IndexedDBAdapter storage.
  • (10026) Ensured that injections (used in integrating HTML applications) were re-injected on page reloads.
  • (10036) Assimilated windows are now always restored properly in workspaces.
  • (10124) Fixed a bug where the docked toolbar menu was displayed up on the primary monitor, even if moved by the user.
  • (10117) The default splinter agent now behaves like any other splinter agent in regard to capping maximum number of processes.
  • (10200) Finsemble now catches invalid HTML5 drops on tabs.
  • (10281) Support OpenFin security realms.
  • (8380) Search Client "unRegister" has been renamed "unregister".
  • (10271) IndexedDBAdapter was previously inadvertently setting any null or undefined values to an empty object {}.
  • (10368) Config "variables" weren't being picked up if they were delineated by whitespace. This prevented a variable from being used within a config. For instance, foo:$bar would properly expand the \$bar variable but foo:$bar wow would not. This has been fixed.
  • (10038) Dealt with edge case where the docking icon didn't deactivate when dragging a tab out of a group.
  • (10377) Fixed a nativeOverrides window.open regression failure.
  • (10087) Windows could not snap to the top of a monitor that did not contain a docked toolbar. Now they can.
  • (10415) Fixed a bug where crashed OpenFin/Electron windows weren't being detected, which caused orphaned references that affected tabbing and tiling scrim.
  • (9652) The companion window could disappear after a workspace reload and moving a multi-tabbed window.
  • (10278) We removed false positives for dirty workspaces.
  • (10626) Refactored shutdown and restart to work around issues introduced with OpenFin 9.
  • (10625) Windows that are off monitor are now moved to the closest edge of existing monitors.
  • (10628) Added a spinner in workspace menu when loading large workspaces.
  • (10624) MS Windows left/right arrow keys are now captured so that MS Windows desktop management doesn't confuse Finsemble's window position map. MW Windows left/right is therefore overridden for Finsemble components.
  • (10637) Cancelling "switch workspace" dialog was previously causing the menu to lock.
  • (10620) A missing component config entry for a workspace window would cause workspaces to enter an undefined state, causing lockups. Now the "nonConfiguredComponent" presentation component will be displayed whenever a workspace contains a window that has no config. This displays a message to the end user and allows the end user to close the window gracefully.
  • (10021) Linker was sometimes initialized to the wrong size

3.2.0

Released 11-01-2018

This version contains performance improvements and architectural refactoring of the underlying docking, tabbing, and tiling code.

3.1.2

Released 10-12-2018

Upgrading/Bug Fixes

  • Requires finsemble-react-controls@3.1.2* Please be sure to update your package.json and download the latest.
  • (9822) Fixed hover issues on menu "pins" and "trashcans"
  • (9791) CSS formatting issue with pins on toolbar.
  • (9814) Error preventing tabs and notepads from moving.

3.1.1

Upgrading/Bug Fixes Requires finsemble-react-controls@3.1.1 Please be sure to update your package.json and download the latest.

(9490) Fixed hover state on dockable toolbar. (9631) Windows that are snapped to the edges of adjacent monitors no longer represent a contiguous group. Pressing the group icon will not link windows that are snapped across monitors.

component.window.dockedHeight now determines the height of a dockable component when docked.

3.1.0

Released 10-09-2018

Major UI Improvements

  • Dockable Components: Finsemble now supports "dockable" components. When snapped to the edge of a monitor, a dockable component will fill up the edge. Other components will then snap up against the dockable component. Dockable components support the following config:
    window.dockable: ["top","bottom"] // The allowable docking positions.
docked: "top" // The initial docking position. Leave empty to float the component by default.
canGroup: false // If canGroup is "false," the component can't be snapped to another component when floating.
  • Floating Toolbar: The Finsemble Toolbar is now a dockable component. End users can grab the toolbar to undock it from the top of the screen, converting it into a "floating" toolbar. The toolbar can be redocked to the top or bottom of any monitor. In order to enable the dockable toolbar, the following changes should be made to the Toolbar component config. See presentationComponents.json in the latest finsemble-seed project.
"Toolbar": {
"window": {
"dockable": [
"top",
"bottom"
],
"maxHeight": 39,
"minHeight": 39,
"minWidth": 99,
"docked": "top",
"canGroup": false,
"options": {
"smallWindow": true
}
},
"component": {
"spawnOnAllMonitors": false,
"canMinimize": false
},
"foreign": {
"services": {
"dockingService": {
"isArrangable": false,
"ignoreSnappingRequests": true
},
"workspaceService": {
"global": true,
"ignoreTilingAndTabbingRequests": true
}
},
}
    The Toolbar can now be hidden or shown using hotkeys. CTRL+ALT+H hide the Toolbar. CTRL+ALT+T will show the Toolbar. If the Toolbar is floating but hidden behind other windows, pressing CTRL+ALT+T will bring the Toolbar to the front of the screen, positioned directly under the mouse pointer.
  • Smarter Workspaces: Finsemble is much smarter now when restoring or importing workspaces. If you have a different monitor configuration (fewer monitors, different resolutions, different orientations) then Finsemble will intelligently place windows that might otherwise have slipped beyond the scope of your virtual workspace.

        Importing and exporting of tabbed window groups is now supported.

Upgrading/Bug Fixes This version requires finsemble-react-controls version 3.1. The finsemble-seed package.json has been updated. Please check your own package.json to ensure that it is no longer set for 1.*.

Please note that the default storage adapter in the finsemble-seed project has been changed to the new indexedDBAdapter. Your users will lose their existing workspaces and preferences if you switch from localStorageAdapter to indexedDBAdapter. You should only do so if you're experiencing serious issues with OpenFin's localStorage flush to disk. These generally occur more often in development than in production.

In order to enable the new Floating Toolbar you should make the config changes described above. If you do not change the config, then Toolbar will continue to operate as it always has.

  • (9588) Eliminated stray JavaScript error in UserPreferences.

3.0.8

  • (9351) CTRL+SHIFT+L is now the default hotkey for the Central Logger (in config). Backtick turns out to have a different mapping between US and UK keyboards, and between Windows 7 and Windows 10. It cannot be reliably used as a hotkey.

3.0.7

  • (9525) Fixed bug in localStorageAdapter and indexedStorageAdapter that was unintentionally leaving the storage prefix in responses from keys.
  • (9552) Cleaned up presentation component html that was technically invalid in order to pass linter tests.
  • (9352) Capturing history.replaceState() so that workspaces remember the last navigated page from within a component.
  • (9351) The hotkey for showing the Central Logger is now configurable through finsemble.servicesConfig.logger.hotkeyShowCentralLogger. The default is now CTRL+SHIFT+L. Formerly the default was CTRL+L and could not be disabled.

3.0.6

  • (9517) fsbl-drag-handle moved inside FSBLHeader. This fixes scaling issues when the body is zoomed.
  • (9212) Search filter was not working properly with single character in input box.
  • (9324) Added queuing to indexDBAdapter to handle requests that are received prior to IndexDB being initialized.
  • (9195) Assimilation upgraded to version 2.0.3. On some machines, launching a native application could take longer than 400ms. This caused Assimilation to assume the native app had failed. Instead, we now wait 15 seconds.

3.0.5

  • (9180) Fixed extended "ghost image" when dragging tabs.

3.0.4

  • (7829) Added indexDBAdapter. localStoragedapter is no longer the default because of flush to disk issues with OpenFin. indexedDB does not suffer this same problem.
  • (9132) Components that were vertically scrolled lost the ability to be moved by end users.

3.0.3

  • (8749) Added default splash page to manifest.
  • (8745) Modified toolbar config so that icon has relative path.
  • (8750) Removed unused image assets.

3.0.1

Released 09-05-2018

Removed stray, unused mocha references.

3.0.0

Released 07-25-2018

Version 3.0 represents a significant step toward realizing Finsemble as the integration layer for finance. The build improvements, improved native support, and easier white labeling bring Finsemble closer to being a real production-ready solution for "assemblers," versus an SDK for developers. Simultaneously, the new UI-centric features offer a versatile and powerful toolset to the end user.

Major UI Improvements

Tabbing and Tiling: Finsemble now offers tiling and tabbing as turnkey UI features.

  • Powerful UI for Power Users: Tiling and tabbing join existing window management features such as snap, dock, group, hyperfocus, bring all to front, minimize all, and auto-arrange features. All of these features automatically function alongside one another, interchangeably. While Finsemble already offers a far more extensive UI than the containers it sits atop, this is now an order of magnitude more so.
  • Move Over, Phidias: Finsemble’s tiling algorithm takes a page from the Golden Layout. With tiling, users can quickly arrange pieces of workflow into shapes that are both beautiful and functional.
  • The Desktop, Infinitely Extended: While many existing Finsemble features help address the problem of limited screen real estate, the introduction of tabbing adds an entire new dimension to Finsemble’s UI. Completely separate applications can now exist as tabs within a single windoweither alone ala browser tabs or grouped together in some other fashion. In effect, this allows for infinite extension of the workspace.

Tabbing

Tiling

**Improved Process Monitor**: Finsemble is fast and economical with memory, but there’s no way to guarantee that 1000+ distinct apps that can each run within a Finsemble instance will always behave. In the case where a malfunctioning app is consuming more than its fair share of memory or has become unresponsive, Finsemble now offers a user-facing process monitor as a convenience tool, much like the Windows Task Manager.

The process monitor can be found by accessing the Central Logger. Click on the Finsemble button on the toolbar, launch the Central Logger, and you'll find the Process Monitor button on the top left.

Presentation Component Redesign: Everybody likes to get a makeover every now and then. Finsemble 3.0 sports a thinner, more professional aesthetic.

  • Slicker, low-profile window title bars are now the default.
  • Window scrollbars now appear underneath the Finsemble window title bar.
  • An optional preload zoom.js can be set for components. This will allow an end user to CTRL +/- to zoom. The zoom state will be automatically saved and restored with the workspace.

Companion Window: The companion window is a small HTML5 window that tracks the location of an integrated native app and unobtrusively sits superimposed. Its normal state is that of a tiny tab. It unfurls with a click, becoming a fully functional Finsemble window title bar. The Companion Window can be styled like any Finsemble header, allowing for consistent theming, UI Controls for context sharing, etc.

  • Two Headers, No Code: The companion window solves two problems. First, it makes good on the promise that native windows can fully participate with Finsemble UI, with no code required. Second, it allows for that participation without obscuring the existing native header (which may contain critical functionality for that native app).

Note: This is an experimental feature. If you have feedback about how the companion window works or should work, feel free to let us know.

Major Framework Improvements

Build Restructuring: Finsemble’s build process has been reorganized with a focus on seamless upgrading. Customers can now take advantage of Finsemble’s rapid release cycle and incorporate the latest Finsemble improvements without disrupting the pace or trajectory of their own project.

Improved White Labeling: In tandem with Finsemble’s restyling work, white labeling has been improved. Finsemble styling is now pure CSS and is carefully abstracted; for most customers, the white labeling process is now as simple as interchanging icons and applying a color scheme. These settings propagate through the entire Finsemble instanceand even into constituent applications.

To this end, the white labeling files and variables have changed. _variables.css and _variablesWhiteLabel.css has been replaced with _theme.css and _themeWhitelabelcss. The new _theme.css file implements a core color scheme (i.e., -primary-font-color, -primary-accent-color). This allows rapid branding by modifying just a few variables. To implement your branding, copy _theme.css to _themeWhitelabel.css and then modify as appropriate. Please contact us if you'd like assistance in migrating your CSS.

Native Support: Native integration has been significantly improved.

Environment Variables: Finsemble's assimilation can now spawn native assets. Set config betaFeatures.assimilation.useOpenFinSpawn=false. One immediate advantage is the ability to set environment variables when spawning a native application. These can be set in the component's config for window env.

Example, spawn command prompt with the environment variable "FINSEMBLE" set to true:

    ...
"components": {
"Notepad": {
"window": {
"id": "CommandPrompt",
"windowType": "assimilation",
"path": "cmd.exe",
"env": {
"FINSEMBLE": "true"
}
},
...

Assimilation 2.0 + Microsoft Lync Support: Assimilation code has been largely rewritten to allow native components to visually integrate more easily into Finsemble UI. Users will also notice a big uptick in performance, particularly when moving large groups of native and Finsemble windows together. Finsemble 3.0 also supports environments that include Microsoft Lync.

WPF Library Extension: Finsemble’s WPF Library has also been extended. Finsemble’s WPF Library allows native apps to make RPC calls to Finsemble. This means that native apps can use essentially the same code for communicating with Finsemble as they do their own local code, so integration becomes easier and faster.

WPF Window Title Bar: Lastly, a layer of polish has been applied to our WPF window title bar. The WPF window title bar looks and feels like the Finsemble window title bar, and it offers the same functionality (linker, drag and drop, etc.) but is written entirely in native code. For customers who want a 100% pure native app without sacrificing any theming consistency, the WPF window title bar provides an easy path.

Persisting URLs: When a workspace reloads, components will now be re-instantiated with the URL from their config. However, the optional config entry persistURL can be used to override this behavior. For instance, you may have a component that allows user navigation. If persistURL is true, then Finsemble's workspace will remember the last navigated location and restore it. This can be useful for components who store their state as URLs with query strings or hash tabs.

Example, set a component to persist the last navigated URL:

    "components": {
"My Component": {
...
"foreign": {
"services": {
"workspace": {
"persistURL": true
}
},

Improved Central Logger: The Central Logger has gotten a big overhaul. The Logger now even includes a built in config viewer. This can be really helpful in viewing the results of dynamic config operations.

Improved VDI Support: Finsemble now has better support for environments with Virtual Desktop Infrastructure, such as Citrix or VirtualBox. VDI presents a cautionary example to any customer who might wish to build rather than buy; a good window and workspace management layer will inevitably (and rudely) jostle with virtual desktops for control of the user’s experience. Finsemble 3.0’s underlying framework has evolved to mitigate the risks posed by the VDI technology used by most institutions.

Upgrading/Bug Fixes

  • Added missing hot key entries for punctuation marks.
  • (7727) Increased size of input boxes in ad hoc (user created) components.
  • (7729) Toolbars will now appear/disappear on multiple monitors if a monitor change occurred while the computer was asleep.
  • (7653) Windows that are closed from the Windows Taskbar are now properly removed from workspaces.
  • (7644) Active "singleton" components are now brought to front if you choose them from the apps menu.
  • (7483) Tabbing or Tiling can now be optionally disabled through configs: "servicesConfig->docking->tabbing->enabled" and "servicesConfig->docking->tiling->enabled".
  • Fixed capitalization issue with MonitorsAndScaling.

Upgrade Info

The gulpfile build process has been substantially refactored. These changes should be transparent to you. You can continue to use npm run dev and npm run dev:fresh. Extending the gulpfile is now substantially easier. Please refer to gulpfile-extensions.js for instructions on how to do so.

The folder /src-built-in/components/assets has been moved to /assets. This eliminates the need to maintain two separate assets folders for src and src-built-in. The relative paths of the assets have been changed in all import, link, and img tags within src-built-in and config files. You will need to modify these paths for your own configs and custom components. To modify the paths, search across files for ../assets and then change the number of "../" as appropriate.

"finfont" files have been renamed "font-finance".

Tabbing and tiling can be disabled using the finsemble["Window Manager.showTabs"] config. This can be done both globally and per component.

When a workspace is loaded (or the app starts), windows will obtain their URL from their component config. Sometimes, however, you may have a component that should retain its former URL. For instance, if a user navigates in the component, the URL may reflect the state of the component. For such components you can set the config item component.foreign.services.workspace.persistURL to true in order to retain their prior URL. You can also set the global servicesConfig.workspace.persistURL.


2.5.11

Released 7-11-2018

Upgrading/Bug Fixes (7982) Shutdown wasn't occurring quickly enough. This caused localStorage to sometimes not update (resulting in workspaces and central logger changes not retaining state). This also caused .net/WFP applications to miss their shutdown signals. Taskbar icons were showing up as individual icons instead of as a group of icons.

2.5.10

Released 7-03-2018

Upgrading/Bug Fixes (7779) Fixes to allow native components (using finsemble.dll) to shut down cleanly (7822) config imports were limited to 10. This has been changed to 10 levels of recursion.

2.5.9

Released 6-28-2018

Upgrading/Bug Fixes (7503) Don't print assimilation version notification error if assimilation is not enabled.

2.5.8

Released 6-27-2018

Upgrading/Bug Fixes (7653) Fixed error that caused workspaces to fail when reloading an [Openfin] application

2.5.7

Released 6-22-2018

Upgrading/Bug Fixes Fixed syntax error in openfinWindowWrapper.js

2.5.5

Released 6-18-2018

Upgrading/Bug Fixes (7535) Mind control was not being injected into cross-domain components.

(7540) spawnData was not being passed to cross-domain components.

2.5.3

Released 6-06-2018

Upgrading/Bug Fixes (6963) "windowType" : "application" will now open an OpenFin application as a component.

(6963) Cross domain windows automatically open as new "applications". This allows them to display in process monitor (previously they wouldn't show up).

2.5.2

Released 5-30-2018

Upgrade Info

(7022) Notifications can now be styled with CSS variable overrides. See variables that begin with -notification-* in src-built-in/assets/css/_variables.css. Override these variables in your _variablesWhitelabel.css file.

(6773) We've cleaned up the dependency chain for Finsemble, cutting down to only fourteen runtime dependencies for the core library and seven for the seed project. For many firms, this will speed up data security sign-off.

Upgrading/Bug Fixes

(6590) Default hotkeys for bring to front and minimize all were changed from CTRL+SHIFT+UP/DOWN to CTRL+ALT+UP/DOWN. The prior key chords were overriding Excel.

(6760) Input dialogs now receive focus automatically when they are launched. This requires an upgrade to finsemble-react-controls.

(6882) User-created (ad hoc) components are now successfully saved and restored to workspaces.

(7067) Fixed a bug wherein undocking a single window from a group would cause the entire window group to undock.

(6758) Windows that are closed from the Windows taskbar weren't being removed from workspaces (they would come back next time you loaded the workspace).

(6846) Assertion code was added to prevent FSBL.onReady() from firing twice. This can occur in rare conditions where OpenFin preloads twice, or situations where a developer manually includes FSBL even when it was preloaded. This introduces subtle state bugs in many components. If this assertion violation is detected, Finsemble will make a best effort to rectify and will present a notification alerting the developer to the issue.

(6473) Connection errors to assimilation are now detected via timeout and presented to the developer as a notification. This can cause a "white toolbar" problem that is difficult to detect without proactive notification.

2.5

Released 5-16-2018

Notifications: Finsemble now supports notifications. These are the fun toast messages that pop up from the bottom right corner of your screen. We provide a semantical interface for notifications. For instance, you can specify that a particular notification should only occur once, or only occur X number of times. You can also specify that a notification belongs to a particular "topic." In future releases, we'll let you turn on or off topic streams by config; this will allow you, for instance, to load up on developer notifications in a development environment, but turn them off during production.

Notifications

We've included a snazzy notification template. Simply send a notification object containing "description" and "title" fields and our template will do the rest. You can copy this template and make your own as well. One of the cool things about these notifications is that they are plain HTML, so unlike your operating system's notifications you can make them interactive.

Finally, we've started lacing the core Finsemble code with notifications for critical errors. So if, for whatever reason, Finsemble doesn't start, you should now get a notification instead of having to pore through log files. Once we introduce topic filtering we'll provide more useful system notifications so that you can quickly spot bugs and inconsistencies.

"Always On Top" icon: This release introduces pinning capability to components by way of the "Always On Top" icon. When the icon is toggled, the window remains on top (like a sticky note). The icon is not included by default, but you can turn it on system wide by adding a global configuration:

"Window Manager" : {
"alwaysOnTopIcon": true
}

...or you can turn it on for individual components:

"Welcome Component": {
"foreign: {
"components": {
"Window Manager": {
"alwaysOnTopIcon": true
}
}
}
}
We've also added an optional "Always On Top" icon for the toolbar. It can get annoying when the toolbar slips behind other windows. Click on the pin to force the toolbar to float above all other windows. Currently the pin is enabled with a toolbar configuration. In _src-built-in/components/toolbar/config.json_, look for this entry:
     {
"comment": "Change align to add AlwaysOnTop capability",
"align": "none",
"type": "reactComponent",
"reactComponent": "AlwaysOnTop"
},

Always On Top Toolbar

Change the value of align to either left or right to position it on the toolbar. We'd like your feedback on this feature to determine how to improve it.

Restart timer: Finsemble now has the ability to automatically restart itself at a particular time of day. This can be set as a config entry for all users which can be overridden by a user preference. That preference can be set in a user's preferences screen.

The config entry should be formatted:

scheduledRestart {
"hour": 16,
"minute": 30,
"dialogTimeout": 10000
}

Hours should be in twenty-four hour time according to the user's local machine's time zone.

When it is time to restart, the user is presented with a dialog to confirm or cancel. Since resets often 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.

Improved window management: End users have long had the ability to pin their favorite components to the toolbar for ease of access. Now, when an end user SHIFT + clicks on a pinned item on the toolbar, all windows of that type are brought to front. For example, if a user has ChartIQ's charting component pinned to their toolbar, a simple SHIFT + click will bring all charts to the front of their screen.


2.4.2

Released 5-9-2018

Process Monitor: A new Process Monitor component is available located in src-built-in. This component acts a bit like the Windows Task Manager, except that it's focused on applications running in Finsemble. From here you can tell how much CPU and memory each application is using. Also, like Windows Task Manager, you can terminate specific windows or applications (just be careful!).

You'll see this component in the seed project's Apps menu. It's your decision whether you think it will be a good tool for end-users, but it's definitely a very handy tool for developersa great companion to the Central Logger.

The Process Monitor

Native Overrides: This release also includes a nativeOverrides.js preload file. This can be used to "monkey patch" the browser's built in window.open and window.alert calls. The window.alert call is annoying because it creates an ugly pop-up and, because it's a synchronous call, it freezes the entire application. Most components don't use alerts, but if you encounter one, you can use the nativeOverrides.js to squash that behavior.

Likewise, some applications call window.open for pop-outs. You can use nativeOverrides.js to capture these calls and funnel them through Finsemble's API so that pop-out windows gain a header, window management, and workspace awareness.

You can find the file in src-built-in/preloads/nativeOverrides.js. Look inside for instructions on how to use the overrides.


2.4

Released 4-27-2018

The New

Java support: Finsemble now supports Java apps! This required a lot of elbow grease to work out the kinks. Wouldn't you know that every running Java app looks like "java.exe"? That makes life difficult when you're trying to restore them into a workspace. Apps opened through Java Webstart with command line arguments will now fall into place within restored workspaces.

WPF Window Title Bar: On the subject of native apps, we're proud to announce a new window title bar for native applications applications. Simply include finsemble.dll and your application will gain a window title bar that is identical to the title bar in your HTML5 components. This title bar allows your native components to participate in Finsemble’s window management (snapping, docking, grouping). It also provides direct access to Finsemble RPC, so that you can access Finsemble API commands directly from your C# application. You can get access to finsemble.dll and learn how to use it in this public repo: https://github.com/ChartIQ/finsemble-dotnet-seed

You can also set the title of a component (what appears in the title bar) from the config:

"foreign": {
"components": {
"Window Manager": {
"title": "What a Cool Component"
}
}
}

Work/home balance: One of the big differences between desktop apps and web apps is that desktop apps tend to be long lived. Users leave them running for hours, days, even weeks. Computers are locked, put to sleep, or go into hibernation. Finsemble now revives properly when a computer wakes from slumber. It also adapts when you plug and unplug monitors. Go ahead, run your app at work, snap the clamshell closed, and reopen it at home on a different monitor. Your Finsemble app will still be running smoothly.

The Improved

CSS overhaul: In 2.4, the CSS has been totally overhauled to be semantically optimal. You will no longer find font-family scattered all over the place, or references to colors in the CSS. Everything is now derived from well defined CSS variables, all of which can be found in a single location: src-built-in/assets/css/variables.css. These variables can be overridden by copying these files to your src directory. This should make it easier for the components that you build to have consistent styling.

Additionally, we've changed the styling of header bars to be much smarter. Want a skinny header bar now? Just change the CSS and Finsemble will automatically adapt.

To that point, we've eliminated SASS! (No, that's a good thing.) Chrome now supports CSS variables which means that we no longer need to rely on a preprocessor to create semantically meaningful CSS. This has been a particularly pesky problem because the good folks who built node-sass leaned heavily on the libsass C++ module, making node-sass heavy. Good riddance we say.

Note: If you need SASS for your own project (maybe your components are built with SASS) then you'll need to add it to gulp-extensions.md and defaultWebpackConfig.js.

Improved white labeling: Branding your Finsemble application has now become super straightforward. All you need are three files in the src-built-in/assets/css directory. These are all blank, ready for you to add branding:

  • fontIconWhitelabel.css - If you'd like to override any of the Font Finance font-icons, simply use this file. Go ahead, load your own fonts!
  • variablesWhitelabel.css - This lets you quickly apply branding to your application. Just copy any styles from variables.css into this file and change them to suit.
  • styleWhitelabel.css - This is the final CSS file that gets loaded, and so you have the opportunity here to override any built-in Finsemble CSS. Want a few pixels wider margin? A splash of color? Go for it.

This does mean that the UI components have been overhauled to make use of the new styles. If you've modified any of these components and they no longer look right, let us know and we'll help you migrate.

Improved Central Logger: The Central Logger has received a UX upgrade. Its ease of use has been meaningfully improved.

Deprecated package-lock.json: We got rid of package-lock.json from the project. If you haven't yet been burned by this fileconsider yourself lucky. When you run npm install though, it will come back. You can stop it from being generated here.

2.3

Released 4-2-2018

Upgrade with Extensibility: Finsemble 2.3 provides a path forward for upgrading your Finsemble framework while keeping all your development work intact. We now provide hooks where you can add customizations to the gulpfile build and not fear that these will be lost during future upgrades. Likewise, we've restructured the webpack build process so that Finsemble's built-in components (such as toolbar) are separated from the components that you've created. This makes upgrades seamless. Finally, we're now including migration scripts with each release so that you can automatically upgrade your build environment with minimal work. Upgrading is easy—starting now.

Go Speed Racer!: We've streamlined and parallelized Finsemble’s start-up processes. This means that your Finsemble application will now start 20% faster than it did previously.

We’ve also restructured the build process in the Finsemble seed project! Rapid iteration is a reality with a ten-fold improvement in build times (yes, seriously).

Deprecated: Hot reload has been temporarily disabled with this release as a way to improve build times. We may reintroduce this feature in a future release.

Authentication Profiles: The Authentication API been expanded to support "authentication profiles" that allow components to trigger authentication actions dynamically during the runtime of an application. An authentication profile is a config for a particular authentication endpoint and a particular authentication protocol. For instance, imagine you brought up a Salesforce component. That component can use the Authentication API to log in when the component is launched. The Authentication API now includes integrated support for OAuth2, making it super easy to connect to identity providers and OpenID providers.

Deprecated: "isAuthEnabled" - Instead, you now set up an authentication profile called "startup". See the [Authentication Tutorial](/docs/productivity/API-tutorials-and-refs/authentication/Authentication for information.

Native Improvements: The RPC Service has been expanded. Native components now have access to the Launcher Client and the Authentication Client. Native clients can now also serve as the initial component that performs authentication (replacing defaultAuthentication).

Flash: Finsemble now supports components written in Adobe Flash. Party like it's 1999.

Configuration Verification: Finsemble now checks for required config items, and verifies that they are valid types (string, object, etc.) during start-up. It will now spit out a helpful error that can prevent one of those multi-hour "d’oh!" debugging sessions.

Polishing the Seed Tutorial: The Finsemble seed project is the best path for developers new to Finsemble waters to get their sea legs. We spent some time providing additional refinement to the seed project tutorial, which you can see here.

2.2

Released 3-2-2018

**The New ChartIQ knows that workflows are the thing that users actually care about. With Finsemble 2.2, we bring additional tools for end users so they’re empowered with customized, elegant workflows.

Search: This release delivers the Search API Client. Since your application’s infrastructure will be unique to your organization, our search architecture and returned results are very pluggable. For instance, you could plug in an elasticsearch instance or security master to power your search. To facilitate this, the Search API Client provides federated search results: it can search each installed provider and display unified results that your users can act on.

  • This automatically includes search across apps and workspaces.

Hotkeys: We added a number of global hotkeys!

  • Components can register for a callback when a hotkey is pressed, even if the app is not in focus.
  • Finsemble provides automatic support for assigning hotkeys to launch components.

User Preferences: We’ve implemented user preferences in Finsemble. Users can now:

  • Import and export workspace templates. This allows users to create and share the configurations that are most effective for their workflows and share them.
  • Rename workspaces.
  • Create new workspaces based on a template.
  • Specify which workspace will load on start-up.

Additionally, developers can now create UI that allows users to overwrite application-level config with their own preferences.

The Improved

Native Apps: We’ve participated in an ongoing effort to have Finsemble coordinate the actions of all your apps, whether they’re native applications or HTML5. Assimilated components now have equal footing with all other components.

UX Improvements: We’re continuing to polish our UX until it’s squeaky clean.

  • App Suites: We've implemented the ability to have developer-defined groups of windows that can be brought into focus with a click.

     

ALT+TAB: Grouped windows now possess a single icon, allowing users to ALT+TAB between groups.

 
  • Bring All Windows to Front: The toolbar now has a “Bring All Windows to Front” button. Users can now bring related components to the front together, even if they are not spatially adjacent on the desktop. Groups can be summoned by Linker channel, or by shared window identifiers.

     
  • Drag and Drop Pins: Pinned workspaces and components can now be reordered on the toolbar via drag and drop.

     
  • Hyperfocus: Users can also minimize all windows that aren’t related by SHIFT+Clicking on the 1) Dock icon 2) Reveal App Suit icon or 3) Linker Channel color.

     
  • Minimize All: The toolbar now has a “Minimize All” button.

     

It’s important to note that all UX improvements work with native apps!

Storage Service: The Storage Service can now utilize “topics,” allowing developers to determine where their data is saved. This allows developers to save some data locally and other data to the network.

2.1

Released 2-1-2018

This release is certified with OpenFin version 8.56.26.50.

The New

Take a Walk on the Client Side: Finsemble breaks down the borders between windows on the desktop. With Finsemble, developers can create a deep level of interaction between disparate applications using client-side integration. Release 2.1 introduces two new tools to help developers coordinate HTML5 and native applications: the Storage Adapter and the RPC Service.

By default, calls to the Storage API save data to localStorage by way of a Storage microservice. However, the Storage microservice can be adapted to suit your purposes with, well, a Storage Adapter. If you want to utilize a data store besides localStorage—such as a cloud or network based name/value store or database—you can simply create Storage Adapter to interface with that data store and plug it in. We added the default Storage Adapter for localStorage to our seed project repo so developers can clone it and spend some time tinkering.

The RPC Service grants the functionality of the Linker Client to assimilated native applications (e.g., WPF forms, .Net components, Java apps) so that they can synchronize with HTML5 components. For instance, a native component can be linked by stock symbol with an HTML5 component. Now, interoperability is even easier between HTML5 and native desktop components.

The Ecosystem Evolves: The best in fintech is becoming available through Finsemble. Both Salesforce, a leading CRM, and Symphony, a secure chat client, are now part of the Finsemble ecosystem.

Salesforce Contacts, Accounts, Opportunities, and Leads are available within Finsemble as individual components. These components can share data with one another or external third party applications through our Linker API. Salesforce components can also be primed to listen for external activity (such as a phone call or a chat message) and can automatically log that activity as a task for the appropriate Salesforce record.

Symphony contact lists and chats have been primed with Finsemble code, allowing Symphony to serve as a central hub. Advanced charts, research reports, etc., can be shared in a Symphony window via drag and drop. Likewise, Symphony activity can trigger an event in another componentsuch as a request-for-quote workflow.

The Improved

  • Assimilation: We fine-tuned the behavior for snapping, docking, and moving grouped assimilated windows.
  • Workspace Service: The Workspace Service now supports restoring assimilated components.
  • Storage Service: We included support for the newly-minted Storage Adapter.
  • WindowClient: Finsemble components are injected with a Finsemble window header bar. Previously, this addition might discombobulate a component if it makes heavy used of fixed CSS styles. Now, a custom header can be injected with optional CSS to allow for better compatibility with more sites. The header can also be delayed until after startup.
  • UI Components: The App menu now dynamically resizes to accommodate ad hoc components added by the user.
  • Miscellaneous: Finsemble now automatically adds the "finsemble" class to the root "html" element of all components. Designers can use the existence of this class to know that their application is running on a desktop, and respond with appropriate styling and layout.

2.0

Released 12-01-2017

We’re pleased to present Finsemble 2.0. This release is a culmination of significant new features, performance improvements, and API enhancements. Though the Finsemble dev team is always iterating, this release is a significant refinement of the tools provided to create multi-window desktop applications. We've also integrated with OpenFin's V8 release, leveraging the advantages therein.

Sample UI Components: To show how simple it is to customize components, we’ve created a suite of UI controls built with React. Each control provides a single piece of UI functionality, like checkboxes or drop-down menus.

Using these controls, we assembled an array of sample UI components. These UI components are built like every other Finsemble component, and offer a beautiful out-of-the-box UI. Use the sample components wholesale for your Finsemble application, customize them for your own needs, or use them as templates to build your own.

The New

A host of new features show off the real power that comes from using Finsemble:

  • Distributed Store: Finsemble now uses a distributed store data storage mechanism, which solves the "one to many" state management problem. With Finsemble’s distributed store, developers don’t even need to learn the Finsemble API to start building multi-window desktop apps.

  • Dynamic Configuration: Finsemble can now configure itself on the fly. For instance, menus can be configured based on the results of an authentication or entitlements process. Developers can provide component configurations entirely through API calls if they desire.

  • Central Logger: The Central Logger is a unified console for viewing messages across all components and services. The Central Logger will help engineers effectively debug operations that occur across multiple windows.

  • Native Application Integration: You can now bring any external application into Finsemble using our Assimilation technology. For situations where a deep integration is not desired or feasible, Assimilation allows you to quickly manage (launch, move, dock, and group) external desktop apps within your Finsemble application.

The Improved

We’ve fine-tuned the Finsemble framework in a number of ways:

  • Process Splintering: We’ve implemented splintering, a performance feature that lets Finsemble distribute its memory and CPU footprint across multiple OpenFin browser processes. This allows Finsemble to run lots of powerful components simultaneously. Splintering also isolates components so that the entire application can’t be affected by a single badly behaving piece of code.

  • Snap and Dock Improvements: Snapping and docking responsiveness is improved, with better real-time tracking to provide much smoother window movement along with improved snapping behavior.

  • Start-up Time Improvements: We continue to focus on performance improvements across the system. Most notable for 2.0, initialization time for the FSBL preload script has been reduced by 60%.

  • Hot Reload: We’ve added the ability to hot reload your Finsemble components, reducing your built-test cycle during development. This was implemented through Webpack by adding custom middleware to the component build process that allows your changes to appear instantly.

  • Multi-Monitor Bug: Fixed some bugs related to how Finsemble supported adding and removing multiple monitors.

  • Window Dragging Bug: Fixed an edge case where Finsemble "misses" an attempt to click and drag a window.

  • Minding our Ps and Qs: Good code is supported by good documentation. We’ve been cleaning up and improving our documentation so it’s easy for developers and code-crafty people to understand the choices we’ve made and the functionality we’ve implemented.

1.4.0

Released 11-03-2017

Drag And Drop Client: Drag And Drop Client is out of beta. Documentation. Tutorial. With very little code, users can:

  • Drag and drop data between components using the drag icon. Auto-highlight windows that can and cannot receive data.

  • Drag and drop items from within components

  • Easily share dropped data over applications like chat

  • Automatically use the linker to open linked windows or open pre-linked windows with shared data

New Beta Features

  • UI Controls - Substantial additional granularity for UI customization
  • Splintering - Allows splitting of components into separate processes
  • Hot Reload - Developers can see their changes in real time, without restarting the application
  • Dynamic Configuration - Finsemble can now configure itself on the fly (for instance, by user authentication)
  • Central Logger - Allows easier debugging and error logging across components

Core Changes

  • ConfigClient.get() parameters changed
  • Improved performance of dialogs created using DialogManager
  • LinkerClient now uses the distributedStoreClient, internally boosting performance
  • Improved workspace saving performance

Core Additions

  • Added system tray icon

CLI

  • Angular support in the CLI
  • Improved CLI error handling

Premium Component Updates

  • More consistent styling
  • Less resource intensive charting

Bug Fixes

  • Config macro (replacement of strings starting with \$) bug fixes
  • Launcher Service crash on invalid URLs in config fixed
  • Fixed a minor docking edge case
  • Fixed an error with workspace restoration

1.3.0

Released 09-18-2017

Docking Docking is out of beta

  • Window edges snap to each other and the monitor edges
  • Resizing by grabbing snapped window edges and corners resizes all snapped windows together

  • Snapped windows that form a rectangle resize proportionally as a group from the outside edges

  • Snapped windows show a dock icon and clicking the icon will dock all connected windows together
  • Docked windows move as a group

  • Outer rectangular boundary of docked groups snap to other windows, groups and monitor edges

New Beta Features

  • Data Store Client Beta: A data store similar to Facebook's Flux that can be used across components, clients, and services and fires events on data changes
  • Drag And Drop Client Beta: New Finsemble Client that allows for easy dragging and dropping of data between components

Sample Component Updates

  • Fixed issues with menu automatic sizing
  • Added ability to customize toolbar and menu items via config
  • Toolbars and Menus load faster

Core Changes

  • Breaking Change: FSBL.Clients.StorageClient.get now returns what you save. If you send in a string, you receive a string back. If you save an object, you get an object back. If you are using the storageClient, make sure to remove any JSON.parse calls inside of your callbacks.
  • Breaking Change: FSBL.Clients.LinkerClient functions now require a windowIdentifier instead of a windowName to allow the linker to work across separate Finsemblized applications (different uuid).
  • Linker window performance improvements
  • Improved overall component loading performance

Core Additions

  • External OpenFin applications can be spawned using Finsemble. See the updated spawn tutorial.
  • FSBL.getVersion(cb) will now return the Finsemble Version.

CLI

  • Ability to generate mind control components using the cli

Bug Fixes

  • Several workspace saving and restoration bugs fixed
  • Fixed issues with Finsemble window header that caused some windows to not be movable from some spots on the window header.
  • Fixed focus issues with dialog manager created dialogs

1.2.0

Released 07-25-2017

  • Bug fixes.
  • Added a way to quit a Finsemble application: simply call FSBL.shutdownApplication().
  • New onShutdown event. This event allows for components to register cleanup actions to be completed on application quit.
  • New onReady event for any client that uses the baseClient. You now can add FSBL.Clients.WindowClient.addEventListener('onReady', cb). This is unlikely to be used unless you're creating a custom component.
note

We still have FSBL.addEventListener('onReady', cb).

  • Configuration Enhancements - Openfin manifest now modifiable in the seed project at configs/openfin/manifest-local.json - Config variables (e.g. $applicationRoot) supported in JSON config files for added flexibility - See updated Configuration tutorial for more information.
  • Finsemble-CLI has a new command: finsemble-cli kill. This will kill node processes that our build process spins up, as well as any lingering OpenFin processes.
  • Mind control improvements:
    • Can now specify an array of files to include in your components - Documentation
  • Toolbar and App Launcher enhancements - Documentation
    • Toolbar config now has a menuItems property to customize the items on the Toolbar - App launcher can now filter elements shown dynamically

1.1.0

Released 07-05-2017

Changed

  • Bugfixes and performance improvements.

Added

  • Documentation updates
  • Alpha version of assimilation
  • LauncherClient improvements (e.g., better handling of monitor-connections/disconnections)
  • Allow all system components to be turned off (e.g., menus, dialogs, etc.)

Enabling Assimilation: To turn on assimilation, you will need to modify two files.

  1. First, you need to make sure that the The betaFeatures.assimilation property in configs/application/config.json matches the config below:
"assimilation": {
"enabled": false,
"appAssets": [
{
"src": "/hosted/assimilation.zip",
"version": "1.0.2",
"alias": "assimilation",
"target": "CppWindowsHook.exe"
},
{
"src": "/hosted/putty.zip",
"version": "1.0.0",
"alias": "putty",
"target": "putty.exe"
}
]
}

The appAssets property is an array of external assets that are bundled and delivered with your application. The first application in the array above is our application that brings native windows programs into Finsemble's snapping and docking; it also allows you to bundle your own applications and have them participate in the workspace. The second application is simply an example. To open it, launch NativeTest from the "Apps" menu on the toolbar.

  1. Make sure that finsemble-seed/server/FinsembleConfigs.js matches what's on GitHub.

The major changes here are bandaids. Soon we will allow you unfettered access to the OpenFin manifest. Since it is currently unavailable in the seed project, the code we've added will prepend your application's baseURL to your external assets. If you want to host assets on another server, simply put the full path in the src property of your external asset. We assume that any external application without http in its src is hosted alongside the rest of the application files (e.g., http://localhost:3375/yourSubDirectory/hosted/externalAsset.zip).

  1. To add your application to the app launcher, make sure the config below is in your components.json file. Replace the alias property, the key, and the id with information related to your native application.
"NativeTest": {
"window": {
"id": "NativeTest",
"native":true,
"alias": "putty",
"path":"",
"url":"",
"defaultHeight": 600,
"autoShow": true,
"alwaysOnTop": false,
"resizable": true,
"showTaskbarIcon": false,
"contextMenu": true,
"addToWorkspace": true
},
"component": {
},
"foreign": {
"services": {
"workspaceService": {
"isArrangable": true
}
},
"components": {
"App Launcher": {
"launchableByUser": true
},
"Window Manager": {
"persistWindowState": false,
"FSBLHeader": true
}
}
}
}

If you get stuck trying to add your own application, send us a note at support@finsemble.com or send us a message on slack.

1.0.0

Released 06-30-2017

This is the first official release of Finsemble.

New Features

  • Snapping windows: Windows now snap to monitor edges and to each other, making it quick and easy for users to assemble their ideal workspace. Snapping is automatically enabled (supported by a new service "dockingService").

  • Mind Control: Allows JavaScript to be injected at run-time into select components. You can use this JavaScript to modify the behavior of the component by interacting with the FSBL API. See the Integrating HTML Applications tutorial for more information.

API Changes

  • Support for storage adapters now allow developers to save data to locations other than localStorage. Also, the Storage Client is enhanced. See the Storing Data tutorial for more information.

  • LauncherClient has been significantly revised to make component launch more flexible. The new model uses a paradigm based off of CSS div positioning, with the capability of targeting specific monitors or launching components in positions relative to other components. A new "windowIdentifier" paradigm allows windows to be referenced more flexibly. Components can now be set to spawnOnStart and spawnOnAllMonitors. They can also generically make claims on monitor space - to support building custom toolbars. See {@link LauncherClient#spawn} and {@link LauncherClient#showWindow} API calls.

    These are breaking changes from the Beta release - any calls to spawn() should be rewritten to use the new parameters.

  • The RouterClient now dynamically selects an underlying transport. For cross-domain components (i.e. components not on the same domain as the Router Service) an OpenFin-Bus transport is selected. For same-origin components a faster ShareWorker transport layer is selected. With these enhancements, RouterClient initialization is no longer synchronous, requiring a call to RouterClient.onReady() before using other Router method; however, this is transparent to components that only access the RouterClient though the FSBL object (i.e. the RouterClient is preinitialized in FSBL).

    These are potentially breaking changes from the Beta release - Application should either use the RouterClient in FSBL (or for services inheriting from the Base Service, reference the preinitialized this.RouterClient) or call RouterClient.onReady() before invoking other router methods.

  • WindowClient now offers fitToDOM() method that allows a window's height to automatically be resized to fit its DOM contents. This is useful for elements such as menus that have variable height.

  • A new ConfigClient provides run-time access to Finsemble configuration. See the Configuration tutorial for more information. If you participated in the Beta and wish to retain you project, then your config files will need to be modified to the new format. See "Upgrade Steps" below.

  • The Finsemble Toolbar is no longer required. If you would like to disable, simply remove the ToolBar entry under components in configs/application/config.json.

New Beta Features

  • Window grouping: Snapped windows "fuse" to form window groups. A window group can then be moved by the end user, for instance from one monitor to another monitor. Window grouping is undergoing user testing and is released as a beta for feedback. To enable window grouping set the docking.enabled flag in the configs/application/config.json file. We're currently working out the kinks in this feature, it should be enabled by default in the coming weeks.

  • Assimilation: Allows Finsemble to launch native applications from the toolbar which participate in snapping and workspaces.

Other Improvements

  • Adaptable Blotter from http://www.adaptabletools.com/ is now available as a Finsemble component!
  • Auto Arrange can now be reversed with a second click.
  • The build process (npm run dev) has been improved to increase speed.
  • Application startup time has been improved.
  • Support for OpenFin version 7.x
  • Finsemble is now loaded via OpenFin's "preload" capability. This means that it is reliably available on any component, even cross domain!

Upgrade Steps

  1. Copy your custom services/components/clients that you've built during the beta period into another folder.
  2. Update your seed project. We've made many enhancements to the build process and configuration files - too many to give you a clean step-by-step upgrade process. A fresh clone from GitHub should be all you need to do.
  3. Delete from under your user directory AppData\Local\OpenFin\cache.
  4. Copy your files from your temporary folder back into their respective folders inside of ./src/.
  5. Make sure that your terminal is logged in to NPM.
  6. run npm install.
  7. run npm update -g @chartiq/finsemble-cli;
  8. run npm run dev.

If you have problems, contact us.



0.4.1

Released 05-19-2017

  • Added placeholder and hooks for authentication. See the [Authentication tutorial](/docs/productivity/API-tutorials-and-refs/authentication/Authentication for instructions on building your own authentication component. The tutorial also includes information on disabling authentication.
  • The authentication placeholder (i.e. the included sample code) prompts for username and password on startup. All storage is now keyed off the username, so the configuration of the application is determined by the entered username (new usernames automatically become new users). The password field is ignored in the placeholder...any password works.

0.4

Released 05-02-2017

  • Made debug level configurable.
  • Added ability to white label system components.
  • Added basic window snapping.

0.3.1

Released 04-21-2017 Minor bug fixes Fixes

  • Direct chat component to the correct URL.
  • Fix some icons issues in the toolbar and windows taskbar.

0.3.0

Released 04-19-2017 You may be wondering, "Where is 0.2?" The short answer is that Brad messed up bumping the NPM version. So 0.3.0 is what we're working with. Hope you enjoy the new features!

Added

  • User defined components - Through the App Launcher, a user can now add their own components (Your own web pages,Google, CNN, etc.) and see them in the App Launcher.Currently, these do not persist in workspaces.
  • Allow developers to set UUID, Port, and host for local, dev, staging, and prod environments.
  • Added way for users to add storage adapters.
  • Added support for hosting Finsemble apps on relative paths.
  • Cleaned up top-level API responses (you should parse response instead of response.data inside of API Calls. If responding to a router request, still parse response.data).
  • Workspaces can be pinned.
  • New look and feel for the toolbar, window header, and dialogs.
  • bug fixes.

Changed

  • Documentation fixes.

Migration steps We're aware that making changes to your project's structure is a huge pain - we certainly don't intend on making this process commonplace. For this release, however, there are several changes to the underlying application bootstrapping/build process.

There are two paths to migration:

  1. Copying the components that you've already created into a fresh copy of the seed project, or
  2. Modifying your project to match the new configuration.

Copying Components

  1. Clone the seed project into a different folder.
  2. Run npm install.
  3. run npm update -g @chartiq/finsemble-cli
  4. Use the CLI to create your components.
  5. Copy src/components from your old seed into the root of your new project.

Try to run npm run dev. Contact us if this doesn't work and we'll jump on a call to figure out what isn't set up properly.

Modifying your existing project

  1. Replace src/node_fileserver/FinsembleConfigs.js with the file in the seed project on the master branch.

  2. create configs/startup.json; copy contents from the master branch of the seed project and put in the desired port/hostname configuration.

  3. Modify gulpfile.js

    • On line 9 paste var StartupConfig = require("./configs/startup");. Make sure to update any locations using a port number to the use startup config.
    • Replace line 143 (configPath inside of the launchOpenfin command) with configPath: StartupConfig[env].serverConfig.
    • In the gulp task devServer change launchOpenfin() to launchOpenfin("dev") Also, change all launchOpenfin function calls to the correct environment. The will match up to your startup config.
  4. run npm install.

  5. run npm update -g @chartiq/finsemble-cli;

  6. run npm update @chartiq/finsemble;

  7. run npm run dev. If it doesn't work, contact us and we'll jump on a call with you.

We apologize for the extensive changes. It's unlikely that we'll do this to you again.

The Finsemble Dev Team.

Misc Integration notes:

  1. If you have components from a previous release, that you based on our tutorial on building an application, make sure to remove this rule from your CSS.
* {
display: block;
}

If you don't, you'll get some lovely CSS plastered on the background of your component's DOM.

  1. If you're playing with accountList/accountDetail from the tutorial, make sure your call to LauncherClient.getActiveDescriptors parses response instead of response.data.