2023.11 (November 2023)

2023.11 (November 2023)


Info
QA Release Date: November 07 2023

Production Release Date: November 21 2023

2023.11 Release Highlights

The Fuuz engineering team has been hard at work on some fantastic new features - we’re excited to see what Fuuz users build with them. Let us know what you think!

Device Gateway Edge Flows

First up, the November release includes a major new feature available in the Fuuz Device Gateway: Edge Flows! This new data flow type is designed to be deployed onto a Device Gateway instance, unlocking a set of SCADA capabilities that can be designed and deployed using the same Data Flow Designer in the Fuuz platform used for system, iPaaS, web, and other flows. Once deployed on the edge, these flows can accept network requests from devices, make requests out to devices on a schedule or in response to events, make requests to Fuuz to query configuration or store data for long-term analysis, and more!

The first step to using Edge flows is to install the Device Gateway and configure a device - for more information on how to install and configure the gateway, check out the documentation on the Fuuz Device Gateway.

Once you have a gateway and one or more devices connected, the process of designing and deploying an Edge flow starts at the Data Flow Designer. When creating a new flow, select the Gateway environment and the Edge flow type - this tells Fuuz that the flow is designed to deploy onto the Device Gateway.


Select the Gateway environment and Edge flow type on the New Flow dialog.

Now you can design your data flow using the same familiar tools you’re used to. You can test your flow right in the flow designer, testing device requests to read or write data.



An example Edge flow for an HTTP Server device that returns the contents of a file.

Once the flow is designed and deployed for the first time, the final step to run the flow on the edge is to deploy it to a Device Gateway installation. Navigate to the Device Gateway table, select the gateway you want to deploy the flow to, and switch to the “Device Gateway Data Flows” tab.

Once there, you simply need to click the “plus” and select your data flow. The Device Gateway will detect the change and deploy the flow on the edge. As you deploy new versions of the data flow, the gateway will automatically detect those deployments and update the running flow.

If you’re planning on using a Server device in your flow, you may also need to set up the device to execute the specific flow - for more information, reference the documentation on Device Gateway Devices.



Device Gateway Data Flows tab with an Edge Flow deployed.

This new feature set will enable powerful, high-performance Edge monitoring and control solutions that are managed and deployed right in the Fuuz platform, taking the capabilities of Fuuz to the next level!

Data Flow Version Comparison

This month’s Fuuz platform release includes a new tool to assist application builders - a visual data flow version comparison! If you’ve ever found yourself wondering what changed in a specific version of a data flow, this feature is for you.

When you have a data flow open, you’ll now find a new Compare Flow Versions option in the Edit menu. When selected, you’ll be prompted to select from any of the past versions of the data flow to compare against.



Once you’ve selected a version to compare against, the flow designer will shift into “comparison” mode, splitting the canvas horizontally to display both the selected and current versions and adding a new Changes panel to the display. Inside the split canvas, nodes are highlighted according to their change status - green for nodes added since the previous version, red for removed nodes, and yellow for updated nodes. The Changes panel displays a summary of which nodes were added, updated, or deleted between the two versions; double clicking a node in this panel selects that node and jumps to it in the canvas.


Data flow comparison view.

This feature should be a significant help to users working on large Fuuz applications or on teams - we’re already using it internally. Our team has a set of further enhancements lined up, including a diff view inside the properties panel to make it easier to see exactly which configuration options changed for nodes that were updated, and we’re already thinking about how we might implement a similar comparison feature for the screen designer!


Grid Container Layout

The 2023.11.0 release includes an exciting enhancement to the screen designer which should streamline and simplify some common layout tasks.

Prior to this release, the Container element has operated using a “flex” layout system, where items naturally flow in lines, left to right and top to bottom. This layout works well for creating responsive layouts that can resize based on screen size, but creating some common layout patterns in this system can take quite a lot of time and effort. One such layout is a grid of items - say, 5 x 3, with items filling each of those individual “cells”. That use case is the focus of this new feature - a grid layout!

The Container element has a new Layout section where all the layout configuration is performed. The Flex layout is the default, but when the Layout dropdown is changed to Grid, new inputs appear for Columns, Rows, Grid Gap, and more. By specifying the number of columns and rows, users can easily create fixed-size layouts of tiled elements.



Flex layout configuration options.

Grid layout configuration options.

The grid layout resulting from the configuration to the left.

Any screen element can be placed inside a grid and will automatically fill the next available cell; elements can be rearranged within a grid simply by dragging and dropping.

What if you want an element to span more than one row or column? Never fear - there’s a new Grid Cell element for just that purpose! Just drop the Grid Cell into a container set for a Grid layout and configure the number of rows and columns to span, then drop other elements inside that cell.


Grid Cell element configuration options.


The same grid layout as above, but with the grid cell to the left placed in the middle.

This flexibility means grid layouts can also be used to quickly create fixed-width layouts with panels or tiled sections, in addition to more traditional fixed column and row layouts like dashboards and cards.

We’re excited to see what our users make with grids, and we’re always looking for feedback - if there’s anything you’d like to see supported in grid layouts, let us know!

More Highlights

Date & Time Schema Types

Finally, this month’s release includes two new field types available in the Schema Designer - Date and Time. These types join our existing DateTime type in providing support for a wide range of date and time storage use cases. All three data types support the full set of search predicates, and support sorting data based on values. Let’s look at the different uses for each of these data types to help explain the differences and why you might use one over the other:


Data Type

What it is

What it’s used for

What you should know

Example

DateTime

A date and time, stored to the millisecond precision.

Identifying a precise point in time, e.g. for historical reporting.

DateTimes are always stored and returned in UTC. If Daylight Savings Time is a concern, either store a time zone or use the Date or Time types.

date-time

2023-11-01T12:30:00.000Z

Date

A date with no associated time.

Scheduling or historical reporting where data should be relative to a time zone.

When parsed to a DateTime object, Date fields will set the time to midnight UTC.

full-date

2023-11-01

Time

A time with no associated date.

Scheduling where data should be relative to a time zone.

To parse a time as a DateTime object, use the HH:mm:ss.SSSZ format string. When parsed, Time fields will set the date to the current day.

full-time

12:30:00.000Z



Full Release Notes: 2023.11.0

Data Team

Enterprise Management

  • Added License field to Enterprise form to track license limits and usage

  • Added support for enterprises to create tenants without authorization, within the defined license limits

Security

  • Added configuration for internal identity providers to enforce multi-factor authentication for all users

  • Added option to the My Profile screen for users to configure their own multi-factor authentication setting

  • Fixed a bug causing rule evaluation to fail incorrectly on policies using transform rules

  • Enabled a check to ensure API keys are associated with active users during verification

  • Updated the policy builder to no longer show empty module groups as “checked” in the resources tree

  • Added authentication event logs for token verification failures such as invalid signature or expiration

  • Updated system policies to standardize between existing and new tenants

Core APIs

  • Added a Time data type for schema fields for storing a time without an associated date

DevOps Team

  • Updated base Node.js version to v20

Integration Team

Device Gateway

  • Added support for running data flows in Device Gateways via server drivers or device subscriptions

  • Added permission to update hasUpdates field to the Device Gateway Application policy

Subscription Service

  • Fixed a bug causing some authentication events from the subscription service to log without a request IP address

  • Fixed scenarios in which Websocket connections would be incorrectly closed when the socket emits an error event

Notifications

  • Corrected a few small display bugs in the Notification Channel screens

Orchestration Team

Data Flow Designer

  • Added “Compare Versions” mode to Edit menu in the Flow Designer

  • Added a Predicate Filter flow node for the $predicateFilter binding

  • Updated the Get Calendar node to support selecting a list of calendars to retrieve

  • Added response field to Response node console log

Scripting Language

  • Updated the $executeSavedQuery to throw a helpful error when the requested query doesn’t exist

Scheduler Service

  • Added validation for schedule frequencies

  • Added support for seconds in cron-based schedule frequencies

User Interface Team

Screen Designer

  • Added new Grid layout options for Container elements

  • Updated the Resources field on the Calendar element to be dynamically transformable

  • Corrected an issue with the “Screen Widget” toggle button in the file menu bar

  • Fixed several issues related to editing legacy (JSON-based) screens in the screen designer

  • Added a “Suppress Menu” option to the Table Column element to disable the column menu

  • Updated table and form generation to optionally replace an existing screen route if desired

  • Updated form generation to consistently pluralize data model names in routes

  • Added a “Use Basic Title Format” option to Calendar elements to shorten the dates displayed at the top of the calendar

Components

  • Added new visual builder input for JSON schemas

  • Corrected a visual bug that could occur when clearing date inputs

  • Added a snackbar warning when data in tables does not have an ID field

Calendars

  • Copied startAt and endAt fields from calendar event data to the base calendar event model

  • Added new Reserved and Allocated calendar event types to support scheduling use cases

  • Fixed a bug causing the Calendar Events nested table on the Calendars form to display incorrect events

  • Corrected a bug causing the parent field on calendar resources to behave inconsistently


    • Related Articles

    • 2025.11 (November 2025)

      QA Release Date: November 04 2025 Production Release Date: November 18 2025 2025.11 Release Highlights Fall is cruising toward winter and the days are getting colder - but we're not slowing down over here at Fuuz! We've got a few nice changes to ...
    • 2024.11 (November 2024)

      2024.11 Release Highlights Due to a busy month, the 2024.11 release notes don’t have highlights. If you have questions about any of the items listed in the full release notes below, feel free to reach out via our support portal. Thank you! Full ...
    • 2023.12 (December 2023)

      QA Release Date: December 05 2023 Production Release Date: December 12 2023 The December production release is scheduled for a week earlier than normal - the second Tuesday of the month, rather than the third - to accommodate the end of year holiday ...