By Lukasz Macura & Steve Rapaport
Beacon may be a buy-and-build platform, but we are always looking for ways to make the building part faster and easier for you. We’ve introduced several frameworks and low-code tools, including Glint, Fragments Framework, and Excel Evaluator. Now we have added the Wizard Framework, to make it easier for you and your team to capture the knowledge of subject matter experts and turn it into semi-automated setup assistants, or Wizards.
What it is
The Wizard Framework is a collection of library components, APIs, and designs that make it pretty easy to create helpful web applications. These Wizards add self-service capabilities to your Beacon domain, semi-automating common procedures and reducing your overall support load. The framework includes a set of standardized components for common steps, plus the tools you need to modify or create your own custom ones. Base functionality takes care of routine background work such as state management. Wizards are stateful and automatically save the current status and entries, reducing user frustration.
Characteristics of a typical Wizard:
- Covers a multi-step procedure
- Validates user input
- Includes standard steps, such as collecting credentials, running a script, creating a file, and configuring a scheduled job
- May span a period of time to allow intermediate steps the time to complete
How to use it
Wizards are modular and are built by picking components from the standard library and configuring them – they can be built by people without a lot of experience. More experienced developers can also modify these components to suit their needs or create custom components, thanks to Beacon’s transparent source code license. Keeping with Beacon’s overall philosophy of flexibility and extensibility, customers have a lot of freedom to define the custom components they need.
Integrated validation procedures ensure that user input is checked before being submitted, the defined steps are successfully completed, and the expected results achieved – for example, credentials are present in the vault, and the job is created – giving the user additional confidence that the setup is correct. Standardization across the Beacon platform gives your users a familiar experience.
There are 3 main groups of Wizard Components: Wizard Managers, Wizard Steps, and Wizard Pickers. The Wizard Manager contains all of the steps and manages the overall workflow. The standard Manager assumes that the workflow is linear and that there are no interdependencies between steps, but you are welcome to customize this as needed for your procedures. Below is an example of a “Create Bob Job” step displayed in the Wizard Manager. In this case the step is configured to have 3 inputs and uses the Bob job template shown in the screenshot. As you can see on the right hand side, the Manager holds a number of other steps.
An optional feature is the Wizard Picker, which is used to group multiple Wizards into one application when there are multiple Wizards that serve a similar purpose. For example, setting up FIX STP connections with different data providers usually have some specifics dependent on the provider but are conceptually similar and therefore have a lot of steps in common, such as collecting credentials, validating the connection, and configuring and running a job to collect the desired data range.
The image below shows the relationship between these components:
- The optional Wizard Picker, housing a set of Wizard Managers
- The Wizard Manager for a specific procedure, containing multiple steps
- A Wizard Step (2) that collects user input
- A Wizard Step (3) that contains sub-steps
The Wizard Framework currently includes several standard components available out of the box:
- RunScriptStep – Specify the inputs you want from the user, and the function that should be run with those inputs
- CreateFileStep – Specify the default contents of a file and its path, optionally allow the user to modify the file contents, and then create the file
- CreateBobJobStep – Specify the template for a scheduled Bob job, the expected user inputs, create the job definition, and release it to the desired domain
- CreateSecretStep – Collect user input for a specified secret and add that secret to the Beacon Secrets Vault
- ManualStep – Display a description of the manual actions a user should take before proceeding to the next step
- GlintStep – Display any existing Glint component in the Wizard – useful for displaying common messages or progress labels
- SubstepsContainerStep – Group multiple related steps into a single step that is displayed on the screen as one set
- FinalValidationStep – Run validation procedures for every step or selected steps, and optionally specify additional validation functions
Beacon provides a set of base classes which take care of the background work and fitness into the framework, significantly reducing the effort required from the developer. Customers are also free to extend the standard library components with UI elements and logic specific to their use cases. Documentation offers detailed instructions and some examples.
Wizard Framework is used by a number of Beacon developers to create applications for different self-service setup procedures in client domains. Some of these are: FIX STP connection Wizard, High Volume Trade Capture Wizard, Beacon Setup Wizard, a set of Wizards for CME DataMine [Link to CME DataMine blog], with more to come.
Here’s an abbreviated example of a Wizard in action – establishing a connection with a market data exchange.
Step 1: Install the FIX-STP Wizard from the Beacon App Store and run it in your domain.
Step 2: Select the Wizard for the data exchange you want to set up. This is an example of a Wizard Picker:
Step 3: Check for an existing database index or add a new one. This is an example of a step that may take some time, so the user can leave at this point and the Wizard will remember their place when they come back.
Step 4: Collect the necessary user credentials, create a script, and run it.
This is just one example of how Beacon helps you wield the power of Wizards. For more information, watch the Wizards in action or read about another specific example – Using a Wizard to expedite Beacon’s CME DataMine integration.