Skip to main content
Version: 1.34.0

Version 1.34.0

In this version, we expanded platform interaction capabilities: users can now leave formatted comments in the Activity Feed and subscribe to browser push notifications. For system administration, we added the new Auditor role, which provides controlled read-only access to records without the risk of modification. You can also convert Text columns to the WYSIWYG type while retaining all existing data.

For technology partners, we added the ability to package applications for the Marketplace with protection of sensitive components. We also implemented automatic filter application when opening lists and introduced a number of system improvements.

New functionality


Push notifications

In addition to email, this version introduces a new notification delivery channel — browser Web Push notifications.

Users can now subscribe to native browser push notifications using a dedicated toggle in the user menu. Notifications are supported on multiple devices (including the mobile ones) and browsers simultaneously.

For sending notifications, the SimplePushNotification server-side class is implemented. A developer can send a notification by creating a class object, specifying the recipient and message parameters, and calling a single method — without needing to know the details of the Web Push protocol. The class handles infrastructure-side errors automatically, performs logging, and returns a unified result.

Read more in the Push Notifications article.

WYSIWYG content in the Activity Feed

The Activity Feed now uses a WYSIWYG editor instead of a text field. This allows creating messages with formatting: bold and italic styling, underline and strikethrough text effects, bulleted and numbered lists, quotes, hyperlinks, and images.

The system maintains backward compatibility: previously created plain text messages are displayed correctly.

Read more in the Forms article.

Column conversion between Text and WYSIWYG types

To improve the visual presentation of text information on forms, you can now convert existing Text columns to the WYSIWYG type while preserving data. You can use it when an active text field, such as a task description or a custom field, contains data that needs to be formatted with highlighting, lists, links, or images. Updating the column type retains other properties of the column unchanged, eliminating the need to create a new field or manually migrate existing values.

For a more visual presentation of text information on forms, we added the ability to convert existing Text columns to the WYSIWYG type while preserving data. This enables using text formatting, adding links and images to task descriptions and other text fields.

For column conversion, a new SimpleColumn class is implemented, whose methods allow performing the conversion via the server-side API. Reverse conversion is also available.

A column with a changed data type, converted in this way, can be exported to an SOP file and subsequently imported to another instance, allowing you to change the data type of the corresponding column to WYSIWYG (or Text) and convert all values of existing records in the modified column.

Read more in the Transform Data article.

warning

To migrate columns to the new type, perform the following actions:

  1. Convert the columns.
  2. Make necessary changes to the business logic (business rules, scripts).
  3. Clear the wysiwyg.columns.scripts_text_mode system property value. While this property lists the column IDs, both server-side and client-side API methods return their values as plain text instead of a WYSIWYG structure. This system property serves as a temporary helper while you adapt your custom business logic. You must clear the property later to enable full WYSIWYG functionality.

Auditor role

The Auditor (auditor) role has been added to the system, providing read access to all system tables, similar to the admin role, but in read-only mode. To use the Auditor role, you need to elevate your privileges.

Create, update, and delete (CUD) operations are prohibited for this role. The corresponding interface elements (for example, the Save button) are hidden for users with the active Auditor role, and any CUD request via REST API from such a user returns an error code.

Read more in the Role Structure article.

Vendor mode for partner applications

SimpleOne technology partners can now package their applications for distribution through partner channels, including the Marketplace, while protecting sensitive components from modifications.

To use this option, when deploying an instance, you can specify applications for which users with the admin role receive vendor-level access on the local instance. With this access, they can create tables without a client prefix and edit the application's VCS records.

Read more in the maintenance documentation.

Improvements


Filters for list view layouts

Now, when opening a list of records, filtering conditions specified in the filter (sys_filter) associated with the list layout (sys_ui_list) can be applied automatically. This works for both regular and related lists.

On the layout record form and in list settings, the Filter field is available. When opening a list with the selected filter, the conditions are automatically displayed in the condition builder and in the address bar. The user can modify or clear the conditions — changes apply only within the current session and do not affect the saved filter.

For shared list views, only shared table filters are available in the Filter field. For personal views, both shared and personal filters of the current user are available. When navigating via a link that specifies a layout and filtering condition, the filter from the layout will not be applied.

Read more in the Lists and List Layout.

System improvements


WebPushNotifier microservice

A dedicated WebPushNotifier microservice has been allocated for sending push notifications. Its failures do not affect the core business logic of the platform, and under increased load, the service can be scaled independently of other modules. Separate monitoring and alerting is provided for WebPushNotifier. The microservice is deployed automatically when the instance is deployed or updated. No additional actions are required from the administrator.

For a single business event, one logical notification per user is created; duplicates do not appear on retry attempts. The system attempts to deliver the notification to all user devices with active subscriptions. Transient errors are handled with a limited number of retries and exponential backoff. Notifications with an expired TTL are marked as stale and are not sent.

Fixes


DEF0023124: Differentiated the use of postgres_internal and postgres_haproxy_enabled variables to resolve issues with deploying a distributed environment with an external database during the web-push service migration stage.

DEF0023106: Eliminated the impact of schedule elements with a zero time interval on the operation of SimpleSchedule server-side API methods.

DEF0022818: Optimized opcache parameters in the PHP-FPM configuration: increased the interned strings buffer, the number of cacheable files, and the total opcache memory size, and disabled executable file change checking in production environments. This resolved PHP-FPM worker crashes (SIGSEGV) and 502 Bad Gateway errors under high loads.

DEF0021032: Fixed incorrect condition construction and parsing, where redundant parentheses were added to conditions with the OR operator, causing the Condition query is invalid error.

DEF0020568: Resolved a critical availability issue where an invalid condition passed via a link or an API endpoint could crash a distributed environment and cause a 502 error for all users. This version introduces validation for conditions on API endpoints, ensuring correct error handling and the return of the proper response codes.

DEF0020252: The use of ACLs in global search results has been updated: result cards apply the specific ACL read restrictions configured for each individual column on a record.

DEF0019366: Added logging of changes made via quick JSON import: record saving now goes through the record manager with event triggers, ensuring that records appear in sys_history. Also activated the record deletion logging flag for the user, employee, and sys_user_has_role tables.

DEF0016070: Fixed list filtering by boolean fields via dot-walking for fields of type List.