Article Type: Release Notes Audience: All Users Module: Platform Releases
Note: QA Release Date: November 7, 2023. Production Release Date: November 21, 2023.
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!
First up, the November release includes a major new feature available in the Fuuz Edge Gateway: Edge Flows! This new data flow type is designed to be deployed onto an Edge 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 Edge Gateway and configure a device - for more information on how to install and configure the gateway, check out the documentation on the Edge Gateway Application.
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 Edge Gateway.

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.

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 an Edge Gateway installation. Navigate to the Edge Gateway table, select the gateway you want to deploy the flow to, and switch to the "Edge Gateway Data Flows" tab.
Once there, you simply need to click the "plus" and select your data flow. The Edge 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 Edge Gateway devices.

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!
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.

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!
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.



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.


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!
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 | RFC 3339 Format | 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 |
hasUpdates field to the Edge Gateway Application policy$predicateFilter bindingresponse field to Response node console log$executeSavedQuery to throw a helpful error when the requested query doesn't existstartAt and endAt fields from calendar event data to the base calendar event model