
Fall is kicking off with a release full of new features and enhancements - read on to find out more!
The September 2023 Fuuz release includes a new set of features for site administrators to more tightly manage permissions for users based on the IP addresses from which they’re accessing Fuuz. These features add new rule types to the policy system which, combined with allow and deny effects, allow flexible whitelisting and blacklisting of IP addresses or CIDR ranges for specific or broad permissions in Fuuz. For more information on policies, check out our knowledge base on Getting Started With Visual Policy Editor.
The 2023.9 release includes a significant new feature for calendars - support for resources and a resource view! Calendar resources provide a way to allocate things - rooms, people, machinery, etc. - to a calendar event, and then view the utilization of those resources in a new resource view. Calendar resources help support a wide range of Fuuz-built or custom scheduling applications. To read more about the Calendar system in Fuuz, check out our Knowledge Base articles on Calendars and Calendar Resources.
The release also includes a wide variety of smaller changes to calendar event bindings and UI inputs to better handle issues like time zones, all-day events, and repeating events.
This month, we’re also rolling out support for multi-factor authentication (MFA) using tokens generated from authenticator apps. This method provides a more convenient option than the existing emailed token method for many MFA users. Fuuz users can configure multi-factor authentication for their accounts, either email or token-based, on the My Profile page; administrators can configure MFA settings for other users via the Identity Provider or Enterprise User screens. For more information on configuring multi-factor authentication, see the Fuuz Knowledge Base article on how to Configure Single Sign-On.
We have several more improvements to the MFA system in Fuuz on the way, including options for administrators to enforce MFA for their users; keep an eye out for those in future releases!
The September release includes an exciting new transform binding which brings our GraphQL API predicate syntax into scripts with support for filtering arbitrary JSON objects. This allows app designers to use a familiar syntax for filtering complex objects, and to use the same predicate objects for data retrieved from external APIs as are already used with the Fuuz API. You can see a few examples of how to use this new binding below, and you can read more about this new binding in the Fuuz Knowledge Base article on Fuuz Bindings: $predicateFilter.
[{ "id": 1, "label": "One" }]$predicateFilter(
[
{ "data": { "id": 1, "code": "A", "active": true } },
{ "data": { "id": 2, "code": "B", "active": true } },
{ "data": { "id": 3, "code": "A", "active": false } },
{ "data": { "id": 4, "code": "B", "active": false } },
{ "data": { "id": 5, "code": "A", "active": true } }
],
{
"data": {
"_containsObject": {
"path": [],
"value": { "code": "A", "active": true }
}
}
}
) Result:
[
{ "data": { "id": 1, "code": "A", "active": true } },
{ "data": { "id": 5, "code": "A", "active": true } }
]Object payloads are filtered in a similar way as with the `$sift` function. Each property of the object is included in the result only if its value satisfies the provided predicate.
$predicateFilter(
{
"foo": { "id": 1, "code": "A" },
"bar": { "id": 2, "code": "B" },
"baz": { "id": 3, "code": "a" }
},
{ "code": { "_eq": "A" } }
) Result:
{
"foo": { "id": 1, "code": "A" },
"baz": { "id": 3, "code": "a" }
}
Added module field to data model record
Added checks for user, tenant, and user tenant active status during API key verification
Added support for app token multi-factor authentication
Implemented a streamlined user profile screen
Added validation to ensure administration tenant can’t be deactivated
Corrected updateUserPassword mutation to work with any provider of the “internal” type rather than just the default
Added support for IP address whitelisting and blacklisting in access control policies
Added Query Builder button to API explorer
Improved query relation errors to provide greater detail and to return partial data for invalid relations when possible
Added custom scalar for dates without a time component
Added configuration option for device gateway log retention
Added configuration for degree of parallelism to Plex Datasource node
Implemented significant changes to improve ODBC connector stability
Updated designer metadata to include flowId, versionId, version, and deploymentId
Added Schedule Frequencies tab to data flow screens
Updated to correctly order console output for breakpointed nodes
Updated remaining services to use system schedule events generated by the scheduler service
Added $predicateFilter binding to allow filtering any JSON data using GraphQL-style predicates
Updated package installation to correctly handle platform version numbers from build environments
Fixed an issue with flow buttons not evaluating dynamic payload
Updated console UI to use in-house package for greater customizability
Fixed an issue with time zone handling in date/time popups
Added a “close” X to hide table and form indicators if they’re in the way
Added calendar resources schema and UI
Applied several fixes to calendar input and binding functions to better handle time zones and edge cases