RUAL Documentation

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, and state_input_datetime to delay data sending.

State Management Improvements:

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 and function_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 file mutations 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 datatable state A pre-styled advanced table showing data using advanced tooling autocomplete single 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 state value 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