Frequently Asked Questions

Release cycle

What is your release cycle? What features are you working on?

  • Finsemble operates on a biweekly (that is to say, every two weeks) lean software development life cycle. We prioritize features, but don't assign delivery dates. You can check out our Roadmap to get a sense of the direction that we're moving with Finsemble.

How do I submit a bug report or feature request?

  • If you encounter bugs with Finsemble, you can reach out to finsemble@chartiq.com for support. If you have a perspective on something that would be worthwhile for your organization, touch base with us via info@chartiq.com and we will consider it for our Roadmap.

Getting, updating, deploying

My organization's security processes don't allow Github or npm. How to do we get hold of the seed project?

  • If your organization doesn't have access to npm, you can email us at info@chartiq.com. We'll send you a link to a zip file which contains the core library, dependencies, and instructions on manual installation.

How do I deploy my Finsemble application?

  • Once you have created a Finsemble application, your components and Finsemble files will need to be deployed to a web server so they can be retrieved by your users. That web server can be internal—inside your firewall and accessible only to people on your corporate network—or external—available to anyone with internet access. Once the files have been deployed, an installer needs to be created that points to the application's configuration file, which specifies the version of OpenFin that's being used. Deployment follows these steps:
  1. Ensure components have the correct URL
    • If components are built as part of Finsemble, $applicationRoot can be used as the URL base.
    • Otherwise, the component URL will need to be updated with the deployed location.
  2. Deploy
    • Option 1: Checkout code and build on server. Project can optionally start web server.
    • Option 2: Build on build server and deploy distribution and Finsemble folders to web server.
  3. Get URL to manifest file: http://webserver/path/to/finsemble/configs/openfin/manifest-production.json
  4. To create an installer, utilize the OpenFin Installer Generator found here: https://install.openfin.co/
    • Enter manifest URL and other information

UI options

What are the UI options for my Finsemble application?

  • We've created production-ready UI components called presentation components. These were built using React controls, which are discrete UI elements. You can use these React controls to extend our sample components, or they can be completely replaced with components of your own devising. We'll always support the controls we used to build our presentation components, but you have the ability to go in new directions and completely tailor your application's user experience.

Can I disable the toolbar in my Finsemble application?

  • Sure. We included the built-in presentation components (e.g., linker panel, toolbars, dialogs) in the seed project so you'd have an example of the sort of UI that an end user might expect. However, we kept them in the source directory so you had the ability to change or remove them. The toolbar is disabled by removing its definition from the systemComponents.json. If you remove the "Toolbar" property from that file, the toolbar will no longer show up.

Developing with Finsemble

Why shouldn't I just build an application from scratch?

  • Essentially, Finsemble allows your developers to focus on the parts of the application that bring value to your organization while we do the plumbing necessary to get the application to work. Finsemble accelerates your development cycle and time to market drastically. By building on the Finsemble framework, it takes comparatively little development work to build an application of interlocking components. This is because Finsemble comes with a pre-built infrastructure: it comes (nearly) assembled out of the box, batteries included. That said, Finsemble affords you total freedom in creating exactly the application you want for your organization. Additionally, Finsemble is built by developers for developers. Windows only need to be aware of data objects, not necessarily other windows, so cross app communication is simple. The Global Store allows windows to share and sync data in real time. Finally, the Central Logger simplifies debugging an application built across multiple windows and services.

Does Finsemble work on OSX? Linux?

  • Currently, Finsemble only supports the Windows operating system for production use but development is also supported on OSX and Linux. Some features may not work properly on operating systems other than Windows.

How do I use Finsemble with Typescript?

  • Finsemble is injected into components (web pages) launched using Finsemble as the FSBL object. We do not currently have type script definitions for Finsemble, so you will need to declare the FSBL object to have type any to satisfy Typescript. This will allow your Typescript code to compile, and the value of the variable will be set to the FSBL object when the component is loaded inside Finsemble. This is done like so:
let FSBL : any;
  • For applications that you want to work outside of Finsemble, you can then check whether the FSBL object is defined before calling Finsemble methods, like this:
if (typeof FSBL !== "undefined") {
   // code that uses the FSBL object
}

Can I use Grunt instead of Gulp to build my own components?

  • Sure! It's possible to run Grunt tasks from Gulp. You can follow the instructions from gulp.js here.

Can I integrate our legacy Java/.Net/C# apps into Finsemble?

  • Finsemble is intended to integrate different apps and have them run using Finsemble as the central hub. We call this process Assimilation. For complete details on this process, you can read our tutorial for Assimilation.

How can our legacy Java/.Net/C# communicate with our HTML5 components?

  • Our Linker Client was initially built to allow for data synchronization between two HTML5 components. However, our RPC Service allows native applications to signal that they are participating in a linker group via the Linker Client, so legacy Java components can communicate with HTML5 components. Read more about this functionality in the Native Communication tutorial.

Is it possible to switch to a different storage engine?

  • By default, Finsemble stores data locally. The Storage Client API uses the Storage Adapter to save and retrieve data from localStorage. However, the Storage Adapter can be updated to utilize another type of data store, e.g., a remote database. You simply need to adjust the adapter so that it interfaces the Storage Client API with that data store. More information about how you can do this can be found in our Custom Data Storage tutorial.

Can my application start on operating system startup?

  • Absolutely! Both developers and users can make it so Finsemble launches at start-up. Developers can utilize OpenFin, on which Finsemble is built, to start their applications on system start-up. In your application's manifest file (in our seed, it's in configs/openfin/manifest-local.json), edit the shortcut property. You'll need to modify the target property. Simply add "automatic-start-up" to the array and your application will launch on start-up. It looks like this:
    "shortcut": {
        "company": "ChartIQ",
        "description": "ChartIQ Local",
        "icon": "http://localhost:3375/components/samples/src/assets/img/Finsemble_Taskbar_Icon.ico",
        "name": "ChartIQ - LOCAL",
        "target": [
            "desktop",
            "automatic-start-up",
            "start-menu"
        ],
        "force": false,
        "startMenuRootFolder": "ChartIQ Local"
    },