---
title: "RUAL Core v14.0.3 - Previous Release · RUAL Documentation"
description: "Previous Release"
canonical: https://docs.rual.nl/core-versions/140003
language: en
---

# RUAL Core v14.0.3

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 **9** blocks have been modified and **18** new blocks were introduced. You'll find a complete list of blocks at the bottom of this page.

### Two-Factor Authentication API Deprecated

All `/api/v1/twofactorauth/*` endpoints have been deprecated and replaced with new `_system/security` endpoints. The legacy endpoints will be removed in a future release. Please update your applications to use the new security endpoints listed below.

### Auth Token Property Deprecated

The `.agent` property in auth tokens has been deprecated and replaced with `.device`. The new `.device` property provides enhanced device identification data and improved future compatibility. Read more about the new [device property](https://docs.rual.nl/cluster/user-token-info).

### Two-Factor Authentication API Migration

The following legacy endpoints have been deprecated and replaced:

- `GET /twofactorauth/qr` → `GET _system/security/methods/qr`

- `POST /twofactorauth/qr` → `POST _system/security/methods/qr`

- `DELETE /twofactorauth/:guid` → `DELETE _system/security/methods/:guid`

- `GET /twofactorauth` → `GET _system/security/methods`

- `PUT /twofactorauth/default/:guid` → `POST _system/security/methods/default`

- `GET /twofactorauth/sms/:phone` → `POST _system/security/methods/sms`

- `POST /twofactorauth` → `POST _system/security/methods`

### New Features & Components

Blueprint Actions:

- Introduce [`array_filter_types`](https://docs.rual.nl/block-types/array/array_filter_types) for filtering arrays by value types.

- Introduce [`value_validate_values`](https://docs.rual.nl/block-types/value/value_validate_values) for validating multiple values.

- Introduce [`object_field_to_mutations`](https://docs.rual.nl/block-types/object/object_field_to_mutations) for converting object fields to mutations.

- Introduce [`mutations_from_object`](https://docs.rual.nl/block-types/object/mutations_from_object) for creating mutations from objects.

- Introduce [`array_merge_by_field`](https://docs.rual.nl/block-types/array/array_merge_by_field) for merging arrays based on a field.

- Introduce [`googlejwtconnection_custom_post`](https://docs.rual.nl/block-types/google/googlejwtconnection_custom_post) for custom Google JWT POST requests.

- Introduce [`value_ip_geolocate`](https://docs.rual.nl/block-types/value/value_ip_geolocate) for IP address geolocation lookups.

- Introduce [`file_pdf_analyze`](https://docs.rual.nl/block-types/files/file_pdf_analyze) for comprehensive PDF document analysis.

- Introduce [`user_has_twofactor`](https://docs.rual.nl/block-types/users%2Cglobals/user_has_twofactor) to check if current user has 2FA enabled.

- Add code editor block for blueprint actions.

State UI:

- Introduce [`state_datatable_push`](https://docs.rual.nl/block-types/state%20ui/state_datatable_push) for pushing data to datatables.

- Introduce [`stateevents_onmouseenter`](https://docs.rual.nl/block-types/state%20ui/stateevents_onmouseenter) and [`stateevents_onmouseleave`](https://docs.rual.nl/block-types/state%20ui/stateevents_onmouseleave) mouse event handlers.

- Add onChange event support to [`state_advanced_datatable`](https://docs.rual.nl/block-types/state%20ui/state_advanced_datatable).

- Add events to [`state_input_price`](https://docs.rual.nl/block-types/state%20ui/state_input_price).

- Add additional pins to [`state_button_content`](https://docs.rual.nl/block-types/state%20ui/state_button_content) and [`state_button`](https://docs.rual.nl/block-types/state%20ui/state_button).

- Improve [`state_autocomplete_single_field`](https://docs.rual.nl/block-types/state%20ui/state_autocomplete_single_field) loading prefill behavior.

- Improve [`statedatatablefilter_query_dynamic`](https://docs.rual.nl/block-types/state%20ui/statedatatablefilter_query_dynamic) functionality.

- Add rows per page to query for [`state_advanced_datatable`](https://docs.rual.nl/block-types/state%20ui/state_advanced_datatable).

- Move onclick from row to checkbox column for [`state_advanced_datatable`](https://docs.rual.nl/block-types/state%20ui/state_advanced_datatable).

- Make whole td clickable for radio state input.

APIs & Services:

- Introduce User Groups System CRUD APIs for managing user groups.

- Add refresh token authentication support.

- Add IP to /info endpoint and email service detection.

- Add options in pin to [`floridayconnection_custom_get`](https://docs.rual.nl/block-types/floriday/floridayconnection_custom_get).

### Security Improvements

Security Enhancements:

- Improve IP attack checker with whitelist and threat blocking levels.

- Improve 2FA API security and SMS verification.

- Improve threat blocking with IP geolocation analytics.

- Fix WebSocket security vulnerabilities.

- Improve user-agent parser bot detection.

- Improve token expiration handling and fix critical renewal bugs.

- Add fallbacks to group scope checks.

- Fix 2FA SMS domain, timezone, and configuration handling.

### Performance & Technical Improvements

Performance Optimizations:

- Optimize [`mutations_difference_from_object`](https://docs.rual.nl/block-types/object/mutations_difference_from_object) block.

- Improve ElasticSearch query performance and fix waitForESQueue race conditions.

- Improve PDF conversion performance.

- Fix Chrome profile collisions for browser automation.

Block Enhancements:

- Add border skip option to [`file_pdf_color`](https://docs.rual.nl/block-types/files/file_pdf_color).

- Add quick mode to [`file_pdf_color`](https://docs.rual.nl/block-types/files/file_pdf_color).

- Add custom headers support to [`function_download_file`](https://docs.rual.nl/block-types/files/function_download_file).

- Add missing action type definitions for array blocks.

- Add take over pin to condition blocks.

- Improve device check for [`user_is_on_mobile`](https://docs.rual.nl/block-types/condition/user_is_on_mobile).

- Extend store options for storage blocks.

- Add support for include removed in custom datatable queries.

- Add skip removed to [`function_remove_documents`](https://docs.rual.nl/block-types/storage/function_remove_documents).

Infrastructure:

- Add configurable max timeout for webhook trigger blocks.

- Change max timeout setting location for HTTP blocks.

- Improve blueprint editing logs and change tracking.

### Bug Fixes

Critical Fixes:

- Fix autocomplete not removing close function.

- Fix duplicate IPs in IP ban handling.

- Fix empty body handling in requests.

- Fix routing errors.

- Fix PLACEHOLDER references in custom React components.

- Improve 2FA SMS handling and configuration.

UI Fixes:

- Improve week selector of deprecated [`component_datatable`](https://docs.rual.nl/block-types/component/component_datatable) modal.

- Move [`state_advanced_datatable`](https://docs.rual.nl/block-types/state%20ui/state_advanced_datatable) filter improvements.

### Deprecations

Deprecated Features:

- Deprecate Discord action types and clean up legacy code.

- Remove blueprint deployment logic.

### Blocks introduced

### Blocks modified

### Blocks deprecated
