RUAL Core v13.0.6
Our platform operates on software, commonly known as core
. This software can be run either locally within the cloud environment of Enterprise Customers or within our AWS cluster.
Modified or newly introduced blocks
In this release 94 blocks have been modified and 25 new blocks were introduced. You'll find a complete list of blocks at the bottom of this page.
State UI to React
The State UI has undergone a significant overhaul, and we have transitioned to using React version 18.2.0 as the foundation for our front-end rendering. This update provides enhanced flexibility, enabling RUAL developers to create custom front-end code without necessitating modifications to the RUAL Core. However, this change introduces certain implications, including the deprecation of the state-to-value conversion blocks and the discontinuation of support for the legacy array map to state conversion. Although these methodologies are considered outdated, they may still be employed in certain areas and could lead to compatibility issues upon upgrading to this version.
Breaking change: mutations: set field
The block set fields mutations
has undergone a significant change. Previously, when a file
type inpin was used, the provided file(s) would be added to the existing files in the document. Now, this behavior has changed so that the field is overwritten, as one would anticipate from a set fields block. To accommodate the previous functionality, we have introduced a new block: add file mutations
.
Enhancements and New Features
UI and Component Updates:
- Added internal HTTP request support and improved HTTP service functionalities.
- Enhanced
state_advanced_datatable
with filters, prefill options, and refresh query support. - Introduced class style and attribute support to the icon in
statedatatableconnection_button
. - Added support for JSX Frontend Blocks to enhance front-end interactivity.
- Enhanced UI components with new styling options, including adding font size and !important to RUAL toolbar styling.
- Introduced additional configurations for
state_input_date
,state_input_time
, andstate_input_datetime
to delay data sending.
State Management Improvements:
- Added new state management functionalities such as
state_history_back
,state_history_forward
, andstate_history_modify
. - Improved state file hashing and integration testing for better performance and stability.
- Added state in-pin value endpoint to enhance state management capabilities.
Security and Authentication:
- Improved user permission management with more secure session tokens and refined the security layer of login/2FA.
- Enhanced encrypted password & salt management on login endpoints to boost security.
- Removed unused authentication/scope endpoint to streamline operations.
Data Handling and API Enhancements:
- Introduced new blocks for better data handling and API interactions, such as
function_subscriptions_spark
andfunction_image_to_webp
. - Added aliases and improved documentation for API blocks to enhance usability and findability.
- Updated API blocks to include aliases for 'register' and improved the description of the
date_format
block.
Performance Optimizations:
- Improved execution time calculation in Blueprints (BPs) and enhanced metrics for aggregations and streaming.
- Optimized default routing timeout and enhanced internal requests handling.
Deprecation and Version Management:
- Fixed issues with block deprecation and version management to ensure smoother transitions and clear communication regarding outdated functionalities.
Bug Fixes
Component and Rendering Fixes:
- Addressed various JSX-related issues, ensuring components render correctly and efficiently.
- Fixed the logic for new token sessions and spark set authentication issues.
- Resolved localization (l10n) issues for wildcard UI component pages and fixed issues with
state_datatable
re-rendering.
SEO and Redirection Fixes:
- Implemented and later removed a 301 redirect for duplicate frontend pages to improve SEO without affecting site navigation.
Block and Functionality Fixes:
- Fixed blocks that were not properly deprecated and corrected issues with deprecated version handling.
- Reverted
array_join
separator logic to join by void for consistency. - Fixed issues with
redis_set_ismember
results and various other blocks to ensure proper functionality.
Additional Updates
System and Configuration Updates:
- Removed default form-control from
state_input_checkbox
and updated configurations for better performance and user experience. - Added CORS header whitelisting for the staging environment to enhance cross-origin resource sharing capabilities.
Technical Improvements
JSX and React Integration:
- Fully integrated ReactJSX into the frontend, enhancing the dynamic rendering capabilities of the platform.
- Introduced hydrate logic for JSX frontend rendering, improving the efficiency of state updates and component interactions.
- Added new JSX state blocks to expand the component library and enhance the frontend development experience.
Blocks introduced
add filemutations
adds the given file(s) to the existing files
create saltedgeconnection
Creates a customer, returning the newly created customer within SaltEdge
custom delete floridayconnection
Executes a custom DELETE request.
custom get floridayconnection
Executes a custom GET request.
custom patch floridayconnection
Executes a custom PATCH request.
custom post floridayconnection
Executes a custom POST request.
custom post file floridayconnection
Executes a custom POST file request.
custom put floridayconnection
Executes a custom PUT request.
custom request saltedgeconnection
Creates a custom request with the given data and path
download function
download a custom file
dynamic input state
Generates a basic input with a dynamic field. The field will be used as state key, prefixed with the form
.
dynamic select state
Generates a basic select with a dynamic field. The field will be used as state key.
dynamic textarea state
Generates a basic textarea with a dynamic field. The field will be used as state key.
execute component iteratestate
null
get cache key function
gets the key and returns true
or false
based of its existence, makes it easier for cache-management in flows
get component attributes state
Grabs the current attributes of the component
get component child state
Grabs the current child component of the component
get component name state
Grabs the current component name of the component
get countries saltedgeconnection
Get all supported countries
list transactions saltedgeconnection
List the non-duplicated posted transactions of an account
open connection function
Builds a new flow based of the given SaltEdge v5 API Service Key
pad start value
Pads the current string with another string (multiple times, if needed) until the resulting string reaches the given length.
radio input statedatatableconnection
Adds a radio input that can be placed anywhere in the row.
set guid uiattributes
Sets a GUID to this component, allowing RUAL Developers to use right-click go to JSON to view data for the given document.
small state
A small text element.
Blocks modified
advanced datatablestate
A pre-styled advanced table showing data using advanced tooling
autocomplete value state
Generates auto-complete select searching a storage and filling the state with the search-key. The field will be used as state key.
basic alert state
Generates a basic styled alert with text.
basic canvas state
A basic canvas element
button statedatatableconnection
Adds a button that can be placed anywhere in the row.
button state
Generates a basic html button element with default styling.
button with text and icon state
Generates a basic html button element with default styling.
checkbox state
Generates a basic checkbox. The field will be used as state key, prefixed with the form
.
checkbox statedatatableconnection
Adds a checkbox that can be placed anywhere in the row.
checkbox buttons state
Generates a set of buttons and multiple values can be choosen. The field will be used as state key.
checkmark state
A button filled with a green checkmark.
code state
A code element.
column state
A div
with the col-*
classes available to it.
container state
A div
with the class container
on it by default.
create multiple documents function
Creates multiple documents in the given storage, each item in the array becomes a document.
custom number state
A custom number element
custom text state
null
datatable state
A styled table made to display a lot of data using pagination.
date input state
Generates a date input. The field will be used as state key.
datetime input state
Generates a datetime input. The field will be used as state key, prefixed with the form
.
decrement function
Decrements the number stored at key by one. If the key does not exist, it is set to 0
before performing the operation.
delete function
Removes the specified key and their values.
div state
Creates a dynamic and customizable div element on your web page.
div foreach state
Serves as a dynamic container, generating an unique div
for each element in the specified array.
embed state
A embed element, that defines a container for an external resource.
exists function
Checks if the key already exists
fontawesome icon state
Integrates a dynamic FontAwesome icon into your web page
footer state
A footer element.
form state
Generates a basic form element using state UI. All fields within this form will be prefixed if a prefix is given.
form rows from fields state
Generates rows with the given fields. The fields will be used as state keys.
geopoint input state
Generates a geopoint input. The field will be used as state key.
get cache value
get redis cache
get cache ttl function
get the time to live in seconds
h1 state
A H1 element.
h2 state
A H2 element.
h3 state
A H3 element.
h4 state
A H4 element.
h5 state
A H5 element.
h6 state
A H6 element.
header state
A header element.
hr state
A horizontal rule element
hyperlink state
A anchor element, that can be used to create an link to an intern/extern page.
iframe state
A iframe element with URL state binding.
image state
A image element.
image from file state
A img element from a internal or public file.
increment function
Increments the number stored at key by one. If the key does not exist, it is set to 0
before performing the operation.
input state
Generates a basic input. The field will be used as state key, prefixed with the form
.
is member redis
determine if a given value is a member of a set
italic state
A italic text element.
join array
Creates and returns a new string by concatenating all of the elements in this array, separated by void if none provided
kbd state
A kbd element.
label state
Represents a caption for an item in a user interface.
link statedatatableconnection
Adds a link that can be placed anywhere in the row.
list element state
A list element.
nav state
Defines a set of navigation links.
number input state
Generates a number input. The field will be used as state key.
on change state
Triggers given callback when the state key changes in the UI. This can be used to see button clicks or inputs being changed.
ordered list state
An ordered list element.
outlined alert state
Generates outline styled information alert element with a icon next to the text.
paragraph state
A paragraph element.
password input state
Generates a password input. The field will be used as state key.
preformatted text state
A pre element.
price format state
null
price input state
Generates a price input. The field will be used as state key.
progressbar state
A progress bar filled up to certain percentage.
radio buttons state
Generates a set of buttons you can choose between. The field will be used as state key.
regular card state
Shows a regular card.
remove document function
Removes the given document from the given storage.
remove multiple documents function
Removes multiple documents from the given storage.
restore document function
Restores a single document from the removed state and adds a revisions for this modification.
restore multiple documents function
Restores multiple documents from the removed state.
return modal state
Returns modal content
row state
A div with the class row on it by default.
script state
A script element.
set function
Set key to hold the string value. If key already holds a value, it is overwritten, regardless of its type.
set cache ttl function
set the time to live in seconds
set document expiry function
Updates the expiry of the given document from the given storage.
span state
A span element.
spinner state
A div
with the class spinner
on it by default.
state stateformfieldconnection
Overwrites state for given fields
strong state
Indicates that its text has strong importance, seriousness, or urgency.
submit button state
A submit button to handle your form using a POST or PUT API. An error will be shown if the API responds with a non-200 status code and an error message. For this to work a form element needs to be used.
table state
A table element.
table body state
A tbody element.
table column state
A table column element.
table head state
A thead element.
table header state
A th element.
table row state
A tr element.
textarea state
Generates a basic textarea. The field will be used as state key.
time input state
Generates a time input. The field will be used as state key, prefixed with the form
.
unordered list state
An unordered list element.
update document function
Update document in the given storage and creates a revision for it.
update multiple documents function
Updates multiple documents in the given storage
vertical aligned fields state
Shows the given fields vertical aligned
Blocks deprecated
cast to statevalue
Converts the given value into a state.
cast to value state
converts the given value into a value.
close contextmenu state
Close the currently open contextmenu, if any open
create context menu state
Generates a dynamic context menu and removes existing
define state
Store this state as reference, which can later be used by "use reference"
is left clicked state
Checks if the given field is clicked within the UI state.
is modified state
Checks if a field is modified within the given form.
use state
Use the state which was previously defined by a define reference