- Print
Article summary
Did you find this summary helpful?
Thank you for your feedback
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.
- On data input: A new Number Input validation rule for specifying the exact number of decimal places
- 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.
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 Ticket | Description |
---|---|
PLAT-41865 | In 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-41840 | Fixes a bug where incrementing and decrementing a table record's integer or interval field, or incrementing and decrementing an interval variable would fail. |
PLAT-41762 | Fixes 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-41538 | Fixes 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-41846 | Fixes 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-41783 | In 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-41670 | Fixes an issue for Tab control characters being ignored in barcode scans |
PLAT-41472 | Fixes 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-41269 | Fixes 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-37234 | Fixing a bug where the connector status badge shows subdomains even though using them is turned off |
PLAT-41742 | Fixes the internationalization of the ROUND expression function parameters. |
PLAT-41307 | Fixes 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?