2023.4 (April 2023)

2023.4 (April 2023)

2023.4 Release Highlights

The 2023.4 Fuuz platform release is a big one, with a lot of changes and several significant, multi-month projects rolling out. Here are the major highlights:

Web Flows

This month’s release includes a long-awaited new feature for the screen designer: web flows! Web flows are exactly what they sound like: data flows that run on the web. These are data flows that can interact directly with users and screens: prompting users for input, displaying notifications, changing form values, hiding and showing containers, and more. This system is designed to be a powerful, flexible, and easy-to-use replacement for the action system currently available on screens.

When creating a flow, users will now be presented with a new choice: the flow environment. The flow types previously available fall under the “Backend” environment; the new flow types fall under the “Web” environment. Once an environment is selected, users can select a flow type like they’re used to.

New “Environment” selection on flow creation

Once a user creates a web flow, new web flow-specific nodes become available in the toolbox, in addition to the core flow nodes you’re used to.

Dialog nodes

 

Navigation nodes

 

Form element nodes
Table element nodes

 

Container element nodes
Screen element nodes

 

Once a web flow is saved, it can be used with the new Flow Button element in the Screen Designer; after dragging in the element, simply select the web flow to execute and (optionally) provide a payload. Flows can also be set up to run on page load at the screen level, or simply loaded in if they have schedule or event source nodes.

Flow button in the toolbox

 

Flow button configuration
Screen flow configuration

 

Combined with the flexibility of the screen designer, web flows allow app builders to create dynamic interfaces using the same visual programming system used for business logic, integrations, system events, and more. Here are a few quick snippets of flows to demonstrate possibilities:

When a user clicks a flow button, prompt for input, ask them to confirm their action, issue a mutation, then show a notification indicating success.
Every 15 minutes, ask the user to complete a quality report; if it fails, ask for more information, then create a quality record.
Subscribe to data change events and update the screen in real time.

As they’re being developed, web flows can be tested in both the flow designer and in screens in which they’re linked. Since they lack the context of a screen, any screen component nodes won’t have an effect in the designer, but dialog and all core nodes can be quickly tested in the designer.

Web flows can be tested in the designer.

When a web flow linked to a screen is saved and that screen is open in another tab, Fuuz synchronizes the screen state in that other tab to allow flows to be tested during development in the context of the screen they’ll be used in.

A snackbar notification indicating a flow saved in another tab has been synchronized with a running screen.

Web flows represent a significant and very powerful enhancement to the capabilities of the Fuuz UI system; we’re looking forward to seeing what our users do with them!

New Package System

The 2023.4 release also includes another generational leap forward: this time in the realm of packages. Our existing package management system has performed well since its release several years ago, but as our platform grew, it became apparent that there were several fundamental shortcomings we wouldn’t just be able to patch over. Among these were the system’s ability to handle very large packages, the level of attention required to build a package, and the difficulty of debugging packages when something didn’t go according to plan. With these issues in mind, we started a project late last year to rebuild our package system from the ground up. I’m pleased to announce that project has completed and the updated system is rolling out with this month’s release!

This updated package system comes with enormous improvements. First of all, building packages is now significantly faster and easier. The designer allows users to quickly pull in related data and records, allows users to quickly select all records from a type, and no longer requires users building packages to worry about the order of operations or dependencies.

New package definition editor.

The package definition editor now validates (“lints”) packages as they’re designed to identify issues that might prevent the package from installing correctly, and enables one-click fixes to common issues.

The package definition editor “lints” packages for potential issues.
Issues identified by the linter can be fixed with a single click.

The system also has dramatically improved logging and automatic error handling; some errors that would previously have failed to install are now able to automatically correct and continue installation. Combined with the package linting, there are very few situations where a package installation will fail in the first place; but if it does, detailed logs are available to help identify and correct what went wrong.

Package installation logs providing descriptive information on installation steps.
Package installation tasks listing the specific steps taken by the installation process.

The new package management system allows users to upgrade packages - something we were never quite able to make work with the old system. The system will intelligently compare the package versions installed, determine what needs to change, and apply only those changes that are required.

Package installation logs and tasks for updated packages.

The new package builder is named the Package Definition Editor; for the time being, the legacy package builder is still accessible, but has been renamed to “Package Builder (Deprecated)”. We’ll remove access to it in a future release. Both legacy and new packages are installed the same way they always have been, via the Fuuz Packages screen. We won’t make plans to deprecate installing legacy packages until we’re confident existing packages have been migrated.

Screen Policies

April 2023 also brings an upgrade to the policy-based security system in Fuuz. The access control policy system has always allowed flexible, granular permissions to be applied to Fuuz APIs; this month, we’re extending that system to screens as well. This allows administrators to define policies which restrict which screens users are allowed to access: if permission for a screen isn’t granted, it won’t appear in the system menu or search bar, and if they navigate directly to the URL, the system will display an error as though the screen in question doesn’t exist.

Screen actions and resources in the access control policy builder.

Screen access can be granted individually, to entire modules or module groups, or any combination of those, just like API access.

A complex policy granting screen access to a range of module groups, modules, and individual screens.

 

The policy object created by the visual builder.

 

Before this update, administrators could apply permissions to the APIs used by a screen so users would receive permission errors when attempting to retrieve or edit data, but not to the screens themselves. This enhancement allows administrators to narrow the list of screens end users are allowed to access, reducing noise in the menu and search system and eliminating potential confusion. This enhancement doesn’t eliminate the need to apply permissions to API access - we still recommend administrators start there when building policies to ensure users aren’t able to wiggle around security - but it helps streamline the interface for the end user.

More Highlights

HTTP Server Driver

Included in this month’s release is a new driver for the Device Gateway: an HTTP Server driver. This driver is the first of a new class of drivers whose responsibility is to listen for commands from within a network and relay them up to Fuuz. This driver has two modes of operation: HTTP relay endpoints and HTTP POST device subscriptions.

HTTP Relay Endpoint

These endpoints are configured on the device and create an HTTP endpoint that relays requests to a data flow via the Request/Response system. Endpoints relay all HTTP methods, and the payload includes the request method, headers, and body data. The flow response is returned to the HTTP request. This system allows Fuuz data flows to act as handlers for HTTP requests issued from within your internal network.

HTTP relay endpoint configuration

HTTP POST Device Subscription

These endpoints are configured as device subscriptions and allow Fuuz data flows to subscribe to POST requests using Device Subscription nodes. In this configuration, the system issuing the POST request does not receive a response from the data flow. This approach support asynchronous fire-and-forget systems like webhooks issued from systems within your internal network.

Improved Data Model Metrics

Also included in this month’s release are improvements to the Data Models API and screen to provide better information about data storage utilization in Fuuz. The existing data size and record count fields have been updated to provide more meaningful estimates of utilization, and additional fields have been added to report the utilization of data change collections if DCC is enabled. This information will help administrators plan for and understand usage-based billing charges and plan changes to data retention or ingestion processes to reduce usage if needed.

Updated columns in the Data Models table

Improved Termination Behavior

The April 2023 release of the Fuuz platform includes some broad changes to our service configuration to further minimize potential disruption caused by system scaling and deployments. During deployments and periods of high load, Fuuz automatically provisions additional resources to ensure service availability; these improvements ensure when these additional resources are no longer required, pending requests are allowed to complete before the resources are terminated. This further reduces the chance that users or data flows will encounter transient errors and makes deployments and scaling seamless.

Full Release Notes: 2023.4.0

Data Team

Schema Designer

  • Added “Collapse All” toggle to toolbox to collapse or expand all groups

  • Added “Include Fields” toggle to toolbox to control whether search also searches field names and descriptions

  • Updated “Label Field” input to only display fields with valid types

  • Added feature to automatically update relation metadata when relation ID fields are renamed

  • Added “Data Change Capture” option to data model fields

  • Updated layout and styles on system fields section to improve readability

Security

  • Added option to prevent recent password reuse

  • Updated creation for roles, policies, and policy groups to use camel case name as ID

  • Added support for limiting access to screens via access control policies

  • Added ability to delete users if the user has never signed in, has no API keys assigned, and is not an enterprise administrator

  • Corrected a bug that could arise during user creation if a policy or group was selected then removed

Miscellaneous

  • Updated Data Models screen to display more detailed and accurate information on data model storage size and record count

DevOps Team

Helm Charts

  • Updated max memory configuration for Redis replicas

  • Upgraded service mesh to latest version

Monitoring

  • Implemented a variety of tweaks to minimize noise in log collection

Framework

  • Implemented improved termination behavior for services to reduce disruptions from autoscaling and deployments

IIoT Team

Device Gateway

  • Updated some log calls which previously used an incorrect signature

  • Added gateway-deploy utility to support metadata upload

  • Unified device subscription setup to support store and forward on any device subscription

  • Addressed various bugs and stability issues with the Device Gateway Service beta

Device Gateway Drivers

  • Added HTTP Server driver

  • Added SAP RFC driver beta

  • Updated PLC driver to improve error handling and fix minor bugs

Screens

  • Re-added previously removed device subscription form

  • Added release channels and Device Gateway Service to Fuuz Apps screen

Orchestration Team

Data Flows

  • Corrected an issue with some data flow log paths

  • Added support for testing mutex nodes in the flow designer

  • Added diffDataFlowVersion query to analyze differences between data flows or data flow versions

  • Updated data flow deployment logs to utilize a tiered TTL based on log level: 2 days for debug & trace, 2 weeks for info and warn, and 2 months for error and fatal

Data Flow Nodes

  • Added a Webhook source node for events received on webhook-accessible topics

Integration Connectors

  • Updated Dynamics 365 connector to support custom headers on requests

Package Management

  • Added new package management system to better handle large, complex packages and updates

  • Added new Package Definition Editor to build packages for new system

  • Renamed legacy package builder to “Package Builder (Deprecated)”

Miscellaneous

  • Updated Data Flow Models screen to gracefully handle data flows with syntactically incorrect GraphQL statements

  • Updated topics to add a “Webhook Accessible” property which determines if the topic can receive publish commands through the webhook API

  • Added environment type (build, QA, or production) to system email footer

User Interface Team

Components

  • Corrected a bug with code blocks in Markdown editor/display components

  • Added a “Select All” checkbox on the field picker input

  • Updated icon/action buttons to correctly apply hover effects when a custom color is selected

  • Corrected an issue with date type table columns overlapping adjacent cells

Screen Designer

  • Added card data to screen context to better support tables in cards

  • Updated label and description for “Block Navigation When Dirty” setting on forms

  • Updated screen creation to use camel cased name as ID

  • Added “Collapsed by Default” option for collapsible container elements

  • Added collapseexpand, and toggleCollapse functions for container elements

  • Added “Default to Display Mode” option for Markdown and Rich Text elements

  • Added “Select Multiple Rows With Click” option to tables to allow row multi-select by clicking anywhere on a row, rather than just the selection checkbox

  • Added “Select Time of Day” option to Date inputs to control the time of day of the selected value

  • Added a static image preview for visualization elements

Framework

  • Added support for JavaScript in frontend transforms

  • Updated FullCalendar library to latest version

  • Added framework, designer, and canvas screen support for web flows

    • Related Articles

    • 2025.4 (April 2025)

      2025.4 Release Highlights As the old adage goes: April releases bring new features! This month’s release is a smaller one, but there are several enhancements and one large feature we want to highlight this month. New and Improved API Explorer The ...
    • 2024.4 (April 2024)

      2024.4 Release Highlights The Fuuz engineering team isn’t fooling you with this month’s release - it’s packed with great features and improvements we’re excited to share. Read on to learn more! Integration Request Logging One of the larger ...
    • 2023.5 (May 2023)

      2023.5 Release Highlights After last month’s large release, the 2023.5 Fuuz platform release is a little quieter, but there are still some significant new features. Here are the major highlights: In-App Gateway Updates The past several releases have ...