Here are some of the major highlights from this month’s release. As always, there are lots of things to look forward to!
Fuuz is celebrating the new year with a brand refresh! Circles are so 2022 - so our old swoosh logo is gone. Our brand colors (blue and orange) have also been tweaked, and we have a new tagline that embodies us well: “ignite innovation”. You may have already seen this logo on build environments or our support site; it’ll be coming to production environments with the 2023.2 release!
As always, if you want to use our logo or colors on our site or marketing materials, please contact us and we’ll be happy to provide the brand guide and full-resolution logo files.
The 2023.2 release includes a new set of configuration options to better control automated user deactivation. User accounts have two new configuration fields on them: Access Expires At and Access Expires In (Days). Using these fields, accounts can either be set to expire automatically on a specific date, or after a certain number of days of inactivity. When not explicitly set for a user, account access will expire after 90 days of inactivity

Users will receive an email 7 days in advance of their account access expiring with the subject “Fuuz Account Deactivation Warning”, indicating the reason for the expiration and how to retain access if needed. When access expires, a second email is sent with the subject “Fuuz Account Deactivation Notice”.
Note: during the initial rollout of this new configuration, there will likely be some users whose accounts haven’t been used in more than 90 days. When the release is promoted to production on 2/21, these accounts will be deactivated immediately without the advance warning. If user access is still required, the accounts can be easily reactivated by an enterprise administrator in the Fuuz Enterprise Users screen.
This month’s release brings a new set of features to the screen designer aimed at making it easier to create screens for existing data models. When creating a new screen from a template, users are now prompted to select a data model.

If the form is submitted without a selected data model, the system will create a blank template as it did before - but if a data model is selected, the system then prompts the user to select the fields they’d like included in the screen.

When the form is submitted, the system will create a fully-functional screen with form inputs and table columns to match the selected fields.

Users can then customize the screen from there to suit their needs. There are more features in the works to streamline this process even further, so keep an eye on future release notes!
The 2023.2 release includes several new data flow nodes to make functionality previously available in bindings easier to use!
The Unique Array node takes an array and removes duplicate values. The node includes configuration allowing users to decide how duplicate values are determined; in the example below, values are removed if they have the same id property. This performs the same function as the $uniqBy binding, but with a much easier interface!

Similar to the Unique Array node, the Group Array node takes an array and looks for similar values. However, rather than removing them, the Group Array node will collect all similar values and place them in an object keyed by the unique value. In the example below, the data is grouped by the groupId property. This performs the same function as the $groupBy binding.
Finally, the Object Diff node takes two objects as input and determines the differences between them. This node has two modes, controlled by a “Detailed” checkbox: in the “simple” mode, the output is an object that only contains properties that were different between the two objects.
.png?version=1&modificationDate=1675361778660&cacheVersion=1&api=v2)
In “detailed” mode, the output is an object with added, updated, and deleted properties, with fields sorted accordingly.
.png?version=1&modificationDate=1675361859998&cacheVersion=1&api=v2)
This node performs the same function as the $objectDiff binding but with a more intuitive interface.
Added support for partial indexes on data models
Updated data model deployment log screens to use secondary read preference to improve performance
Implemented automated deactivation of users after a period of inactivity or on a scheduled date
Updated Redis deployment to apply accurate resource requests and limits
Updated core API server library to consider percent of heap used in health checks
Added MQTT Client driver
Updated error handling to gracefully retry connecting under certain disconnect conditions
Updated core RabbitMQ library to gracefully handle race conditions between start and stop functions
Moved device subscriptions into a nested table under Device form
Updated API to automatically camel case connection name as ID when creating connections
Updated connection screen to prevent changing connection name and remove options and credentials from table edit dialog
Updated MFGx node group to Fuuz
Updated node icons for consistency between toolbox and diagram node
Updated data flow log and metric screens to use the secondary read preference to improve performance
Added “Unique Array” transformation node
Added “Group Array” transformation node
Added “Object Diff” transformation node
Fixed data flow log metadata path for specific cases
Added new user interface for configuring visualizations
Fixed issue stemming from Chrome update which caused message manager dialog to not be closeable
Fixed a bug causing text in table link columns to overlap adjacent cells
Added system to generate a form or table from a selected data model during screen creation
Added configuration for default values on form inputs
Added UI for table sort order configuration
Added support for query read preference configuration on forms, tables, and cards
Added collapsible configuration options to containers
Added “Format String” configuration for applicable table column formats
Updated UI for calendar event form and table to mirror calendar component
Updated logo throughout web, gateway, and extension
Updated $metadata transform binding to add additional information about user and current screen