2024.10 (October 2024)

2024.10 (October 2024)

2024.10 Release Highlights

This month’s release is full of treats that are sure to delight - but hopefully no tricks… read on to learn more!

Role Selection & Permission System

The October 2024 release features a significant set of changes to how roles work in Fuuz. In previous versions, roles were used to apply configuration to a user, such as drawer menus, home screens, and settings. This was completely separate from the permission system in Fuuz, which was based on policy groups attached directly to a user. This separation was the source of some confusion among users and administrators, especially since the terminology commonly used in other business applications uses roles for both permissions and configuration. With that in mind, we’ve decided to significantly rework the role system in Fuuz to align more closely with what our users expect.

These changes start during role configuration. The Role form has a new tab for Attached Policy Groups, which allows administrators to define the permissions to grant to users who have the role assigned and active.

The policy groups attached to roles are the same groups that were previously attached directly to users. This allows for a quick and easy migration to the new role system.

Attached Policy Groups on a Role.

Once a role has been configured, assigning that role to users operates the same was as before, with the addition of a “Default” flag that lets administrators specify which role should be active by default when a user signs in to Fuuz.

Dialog to assign a role to a user, featuring the new Default flag.

Users can see what role is active in the footer (e.g. Production Supervisor), where it previously displayed the user’s name.

System footer toolbar, displaying the user’s active role.

If a user has more than one role assigned, they can click the role section in the footer or use the “Switch Role” action in the Avatar menu to access the switch role UI, which displays the roles and their descriptions that are assigned to the user and thus are available to switch to.

Avatar menu with Switch Role action.

 

Switch Role UI.

When a user has a role active - either because it’s their default role, or because they’ve selected one - the configuration configured for that role will be applied to the user. This includes the same configuration available previously - drawer menu, home screen, and settings - as well as the assigned policy groups.

Policy groups attached to roles will only be granted to the user while they have the role active. If the user switches to a different role, the policy group will no longer be applied.

These changes together allow roles to be the central location for configuring the Fuuz user experience based on the work users need to do, making it simpler to apply changes to all users with the same role or to add or remove roles when employees hire on or change positions.

More Highlights

Relation Query Optimization

This month’s release features some optimizations to our GraphQL query system which significantly improves the performance of certain types of queries. Specifically, we’ve optimized the way we look up related data to handle filtering and grouping on node and connection relations.

To illustrate the significance of this improvement, here are some comparisons for queries run against a Production History collection:

Query

<= 2024.9

>= 2024.10

Filtering by workcenterId

70 ms

70 ms

Filtering by workcenter.id

400 ms

100 ms

Filtering by dataChanges.changedAt

260 ms

170 ms

Count grouping by workcenterId

100 ms

100 ms

Count grouping by workcenter.id

430 ms

130 ms

In previous versions, the performance hit when performing grouping or aggregation against a field on a relation instead of a field directly on the model itself was significant. In 2024.10, those queries generally run 2x - 4x faster - they’re still not as fast as filtering or grouping by fields directly on a model, but this optimization has significantly closed the gap.

Saved Transform Optimization

In addition to relation queries, the 2024.10 release also includes optimizations to the $executeTransform binding, used to execute saved scripts inside other scripts. We’ve been able to significantly reduce the overhead of this binding. This means a single usage of $executeTransform will now run faster - but more importantly, it’s now feasible to use $executeTransform inside a loop, filter, or map without incurring a significant performance hit. The table below displays some metrics from our testing running a simple saved script in a JSONata map statement:

$executeTransform Calls

<= 2024.9

>= 2024.10

% Change

1

0.1 s

0.07 s

30%

1,000

5.7 s

0.7 s

87%

10,000

41 s

4.8 s

88%

Scripts that use $executeTransform in a loop now run a whopping 8x faster - a huge improvement! This change makes it viable to use saved scripts more generously, allowing app builders to reuse smaller snippets of scripts without incurring a significant performance penalty.

Full Release Notes: 2024.10.0

Data Team

Data Modeling

  • Removed links to nonexistent Data Model Kind screens in Data Models table and form

GraphQL APIs

  • Added Typescript types for MongoDB wrapper library

  • Updated pipeline projections to better handle nullable relations

  • Updated pipeline lookup stages to use direct equality matching where possible, speeding up queries filtering or aggregating by relations by up to 10x

  • Implemented a fully-typed modelDefinitions query to provide a more performant alternative to the existing modelMap query

  • Added integration tests for system service middleware

  • Corrected a bug causing the Saved Queries screen to throw an error

Data Change Capture

  • Added Label field to captured data change events

Security

  • Implemented a new system for selecting roles and changed how role policy group permissions are applied to users

  • Updated the Application Development tenant type to permit creation of connections

  • Cleaned up now-unused system migrations for policies

  • Updated Attached Users dropdown in Roles screen to show user emails instead of IDs

Administration

  • Removed links to nonexistent Setting Input Type screens in Setting table and form

DevOps Team

  • Updated base Docker image to latest Linux release

Integration Team

Integration Connectors

  • Implemented HTTP keepalive options for Netsuite REST connector to address timeout issues

Orchestration Team

Transformations

  • Added a harness for automated tests of the transformation service

  • Added integration tests for $query and $mutate bindings

  • Added cache and function bindings for schedule group operations

  • Optimized handling of saved transform execution within other transforms, significantly reducing execution time of the $executeTransform binding

Data Flows

  • Corrected the result of the console Copy Path feature when used on paths inside $.appConfig

  • Removed links for nonexistent Data Flow Deployment Log Type in Data Flow Logs table and form

Package System

  • Implemented package selection verification into package builder to warn users when their package includes data that has been deleted from the tenant

User Interface Team

Framework

  • Updated metadata loading to no longer allow custom screen routes to override system screens

Components

  • Improved styling on RRule input component

Screen Designer

  • Added a Scheduler data element to visualize scheduled work

Application Designer

  • Renamed Application Element Changes screen to Application Component Changes

  • Implemented an app store and systems for publishing, installing, and uninstalling apps

  • Updated designer panels to retain scroll and filter state when changing selected tab

  • Corrected formatting of filter container on the Application Component Changes screen

Patch Release: 2024.10.2

InfoPatch Release Date: October 22 2024


Data Team

Security

  • Various tweaks to address confusion with new role selection system

    • Related Articles

    • 2023.10 (October 2023)

      QA Release Date: October 03 2023 Production Release Date: October 17 2023 2023.10 Release Highlights The October release of Fuuz is full of treats (and maybe a few tricks), sure to give you chills! Read on to find out what the engineering team has ...
    • 2025.10 (October 2025)

      QA Release Date: October 07 2025 Production Release Date: October 21 2025 2025.10 Release Highlights We have a big pile of feature highlights that will shiver your bones this October - I promise they're all treat and no trick. Read on to learn more! ...
    • 2022 Q1 Fuuz Package Updates (03/11/2022)

      Fuuz Packages IOT 1.5.0 Initial version with 9 tables Supporting IOT Tag Values, Historical Values, and Streaming Values for Work Center Positions Recipe Management MES 1.5.0 Added Workcenter Positions and Workcenter Positions Devices 18 Tables ...
    • 2023.8 (August 2023)

      QA Release Date: August 01 2023 Production Release Date: August 22 2023 The August release will be delayed one week from than the usual “third Tuesday” schedule. 2023.8 Release Highlights This month’s release is a little quieter than usual as the ...
    • 2021 Q4 MFGx Release Notes v3.68.0 (10/8/2021)

      Frontend Framework: Added token refresh to non-GraphQL API calls  Framework: Added fullscreen parameter to URL  Framework: Added toggle and close buttons for fullscreen mode  Framework: Added __refreshInterval option for any props using __transform  ...