MENU
    Platform Release 306 - February 2025
    • 20 Feb 2025
    • 6 Minutes to read
    • Contributors

    Platform Release 306 - February 2025


    Article summary

    Release 306 brings updates to several features and bug fixes throughout the platform.

    Let us know your thoughts and questions in the Tulip Community.

    Features and Improvements

    Numbers and Numeric Precision

    • We’ve updated how numbers are represented in Tulip Tables and Completions to support capturing, storing, and displaying trailing zeros. Number data, previously stored in our Postgres database as type Float, will be stored, moving forward, as a different type called Postgres Decimal, which is able to store numeric data with greater precision. After this release, we’ll start iteratively rolling out the following changes to instances, finalizing the rollout with LTS14.
      • Operator data entered through Number Inputs will preserve and display up to 20 digits after the decimal, including trailing zeros. Inputs over 20 digits will be rounded to the nearest 20th digit. Previously we supported 15 digits of precision.
      • For numbers with many digits, Tulip Tables will now show all the available digits, up to Table column width. Previously Tulip Tables only displayed 3 digits after the decimal in the grid view. Selecting the Table Record will show the entire number, as before.
      • App Builders can now specify and enforce digits via:
        • On data input: A new Number Input validation rule for specifying the exact number of decimal places
        • For computation: Updated Expressions for managing decimal places of external inputs like Connectors, Devices, etc. and mathematical computations - ROUND with padding and GETDECIMALPLACES.

    Read more about these changes: Numbers and Numeric Precision

    If you have questions, please reach out or post on the Community announcement for this release.

    Conditional Formatting

    • Conditional formatting allows highlighting key data points in table widgets by configuring conditional formatting rules, enabling quicker insights and faster action. This iteration has a limited set of rule types (equal to, greater than, less than..), newer rules will be included in the upcoming iterations.
      See the knowledge base article to find out how it works: How to use Conditional Formatting

    Write to Machine Attributes using OPC UA/MQTT

    • With Machine Attribute Write, you can write back to your machine attributes with OPC-UA and MQTT datasources without added middleware through Tulip.
      See the knowledge base article to discover the functionality: Write to Machine Attributes using OPC UA/MQTT

    Connectors

    • Testing mode connector environment label is updated to match the rest of the product.

    • MQTT connectors now support the 'clean' flag, and thus can be configured to resume their session after reconnecting to the broker.

    • Notifications and warning signs have been added to the connector pages if an On-prem Connector Host needs to be upgraded.
      • Starting with LTS14 availability (March 2025), Tulip will begin enforcing version alignment between the cloud platform and any customer hosted Connector Host. More details.

    Inspect App

    • Exposes a new tool for investigating app logic called "Inspect App", which is available on the menu on the App Detail page next to "Import" and "Export". More details.

    Custom Widget

    • In the App Editor Page, under the "Custom Widgets" button, users granted with appropriate permissions will find a direct link to the "Create Custom Widget" page.

    • Custom Widgets Information, Permissions, Where Used, and Preview can now be viewed in the new side panel. The custom widgets third part library settings has an updated sidebar that can be accessed from the new side panel and custom widget editor.

    • Custom Widgets page now uses newer List component to display the list of available widgets

    Triggers, Widgets

    • Introduces a when "input is exited" condition option for triggers of text, multiline, and number input widgets.

    • In apps, makes small updates to several input widgets including unifying focus states, error states, and disabled states. Input widgets includes any widgets under the Inputs dropdown in the app editor. Improved focus states make it clearer what input is currently being interacted with, and more consistent error states provide a more cohesive experience while using input validation. While disabled, input widgets will now still be focusable, but not otherwise interactive, making widgets more accessible to people relying on assistive technology. In general, this change to disabled behavior is only relevant for widgets without a configured datasource.

    • Rendering performance is improved of multi select input widgets that have a high number of options.

    • For the interactive table widget, update the styling when a row is selected. Before, only the row's background changes to light blue. Now, the entire row will be outlined and a slightly transparent light blue color will be applied to the row.

    General Improvements

    • Visually updating the look and feel of the Error Bar and extending errors to cover MQTT connection timeouts for underlying services.

    • Account Owners can configure a "Login message" that will be displayed every time a user logs in to both Tulip and the Player.

    • Expanded input validation in the expression editor such that the user will receive a validation error when inputting numbers greater than the maximum safe integer (2^53 -1) or numbers with more than 20 decimal places.

    Bug Fixes

    Release 306 contains multiple bug fixes:

    Referenced TicketDescription
    PLAT-41865In the app editor, fixes an issue with some single and multiselect widgets attached to number datasources where their value would not be selectable in Player.

    PLAT-41840Fixes a bug where incrementing and decrementing a table record's integer or interval field, or incrementing and decrementing an interval variable would fail.

    PLAT-41762Fixes an issue, where a connector snapshot was not able to be created due to the original connector was already a snapshot. This is a divergence from the previous behavior, which causes issues in some edge cases.
    PLAT-41538Fixes an issue were decimal numbers in the Variable and Table Record widgets were added trailing zeros to match the widget's "max decimal places" setting.

    PLAT-41846Fixes an issue with oauth connectors, where the defaultExpiresIn field was not respected, and the expiresAt field was not set for the connector based on it's value.

    PLAT-41783In the app editor, fixes a bug where you cannot select boolean static values. Before if you clicked on "Yes" or "No", nothing will happen. Now, the value will be saved in the datasource picker.

    PLAT-41670Fixes an issue for Tab control characters being ignored in barcode scans

    PLAT-41472Fixes an issue in the Trigger Editor, when adding new actions fix separator was missing causing the actions to look merged. This fix restores the original behaviour.
    PLAT-41269Fixes an UI issue in the app editor for the conditional formatting section, and now the context pane has a dividing line separating it from the next section and there is no longer additional whitespace if you expand a conditional formatting section with no rules. Previously there was no dividing line and there was some extra whitespace if you expand a conditional formatting section with no rules.

    PLAT-37234Fixing a bug where the connector status badge shows subdomains even though using them is turned off
    PLAT-41742Fixes the internationalization of the ROUND expression function parameters.

    PLAT-41307Fixes an issue, where the onprem connector-host seems to leak memory, freeze in resource constraint environments due to the large number of open and closed tcp connection

    Full List of Ticket IDs included in Release 306

    PLAT-41865
    PLAT-41846
    PLAT-41840
    PLAT-41783
    PLAT-41762
    PLAT-41742
    PLAT-41709
    PLAT-41708
    PLAT-41698
    PLAT-41670
    PLAT-41543
    PLAT-41538
    PLAT-41472
    PLAT-41464
    PLAT-41307
    PLAT-41269
    PLAT-41022
    PLAT-41021
    PLAT-40988
    PLAT-40768
    PLAT-40631
    PLAT-38906
    PLAT-38272
    PLAT-38236
    PLAT-38169
    PLAT-37234
    PLAT-27350
    PLAT-27255
    PLAT-12883


    Was this article helpful?