Release Notes > Version 8.5 Release Notes > Version 8.5.0 Release Notes
Version 8.5.0 Release Notes
The following feature enhancements, bug fixes, known issues and limitations, and end-of-support information are part of ThingWorx 8.5.0.
Enhancements
Platform
In the ThingWorx Foundation Installer, SSL/TLS is the default configuration path. For more information about the installer, see ThingWorx Foundation Installer.
Timers and Schedulers are new entity types. Previous to this release, Timers and Schedulers were added as Thing Templates.
Script Enhancements
A setting for script timeouts has been added to the platform-settings.json configuration file for the platform. The setting is part of the Basic Settings group. See platform-settings.json Configuration Details for details. Note that the platform now terminates any script that runs longer than the timeout configured with this setting. (TW-56913)
The Rhino JavaScript engine used in ThingWorx has been upgraded to v.1.7.11. As part of this change, a script author cannot modify built-in JavaScript prototype objects because they are global in nature. For example, Array.prototype or String.prototype. For details, see Rhino JavaScript Engine. (TW-58965)
ThingWorx as a Resource Provider can be configured to allow ThingWorx URI requests via OAuth2 protocol.
A new parameter was added to the GetProxyURL service. See Media Entity Service Methods for more information.
The Export Matching Model Tags option was added to the Export menu for collections of data and entities and for exporting single data. The option allows you to export data and entities that are tagged with all specified tags or just data and entities that contain at least one of the specified tags. See Importing and Exporting Data, Entities, and Extensions for more information.
Several usability enhancements have been added to Composer:
The Open Projects tab was added. Entities are grouped by the Project they belong to and by entity type.
Tabs are created for each entity that you create or interact with.
All grids in Composer are re-sizable, just drag the column or rows to the desired size.
Three new services are available to ThingWorx Administrators only to query and close AlwaysOn sessions connected to the platform. Administrators can find information about the services in the WebSocket Communications Subsystem.
When exporting entities via Source Control, sensitive information such as password hashes or Application Key IDs associated with the entity are not exported. Importing the Source Control export back into the system will cause the loss of any sensitive information associated with the entity.
As part of security enhancements for the 8.5.0 release, ThingWorx uses version 1.7.11 of the Rhino JavaScript Engine.
Configuration tables are now always persistent. Non-persistent configuration changes are no longer supported.
The persistent parameter is now ignored on the following API calls:
SetConfigurationTable
SetConfigurationTableRows
SetMultiRowConfigurationTable
DeleteConfigurationTable
DeleteConfigurationTableRows
DeleteAllConfigurationTableRows
Changes to property definitions (add, update, and delete) now take effect immediately. Prior to 8.5, if you added a property to an entity other than a Thing, such as a Thing Template, all Things related to that Thing Template had to be restarted. Things collected and stored all property definitions and their values. As of 8.5, property definitions are no longer stored at the Thing level; ThingWorx now follows the inheritance tree and retrieves the data from where it is stored. For more information, see Thing Properties.
You can use a proxy server to connect to the licensing server. See platform-settings.json Configuration Details and Encrypting Passwords for more information. To enable this functionality, the following settings must be added to your platform-setings.json file:
"LicensingConnectionSettings": {
"useProxy": true,
"proxyHost": "<addproxyhost>",
"proxyPort" : "<addproxyport>",
"proxyScheme": "<http or https>",
"proxyUser": "<User>",
"proxyPassword": "<Password>"
}
},
Improved the performance of query services on Streams. To utilize these improvements, use filters when querying. Not using filters causes larger numbers of entries to be stored in memory for a longer, indeterminate period of time. The memory storage of the results are proportionate to the rate of Garbage Collection cycles by the JVM. The rate of Garbage Collection cycles is highly dependent/proportionate to how the Garbage Collector is configured for the runtime instance of the JVM.
The behavior of unsupported content types as defined in the platform-settings.json file has changed. If the content type is coming from a different server not a supported media entity type, then the content is downloaded as a file on the client machine instead of streamed with the media entity.
The Security Management Tool has been upgraded in 8.5 to work with PFX keystore files, and it now uses AES encryption for secrets.
Added the maxItems parameter to the FindDataTableEntries and DeleteDataTableEntries services to allow you to specify the number of rows to return or delete.
The following changes were made to the Extension SDK:
For ThingProperty:
The following methods were removed:
hasBindings()
getBinding()
getBindingTargets()
getExternalSubscriptions(String)
getLocalSubscriptions(String)
The getProperties() method is no longer thread-safe.
For Alert:
The following methods were moved from Alert to AlertRecord. An AlertRecord can be retrieved directly from an alert using com.thingworx.system.subsystems.alerts.data.Alert.getAlertRecord(Thing sourceThing).
isActive( )
isAcknowledged( )
getAcknowledgedBy( )
getTimeActive( )
setTimeActive(DateTime value)
getMessage( )
getAcknowledgeTime( )
The acknowledge(String ackBy) method was removed.
Instead of the above method, you can use acknowledge(StringackBy, Thing sourceThing). When a raised alert is acknowledged, the Thing that raised the alert is necessary to complete the acknowledgment request.
The getThingReference() method was removed.
Alerts are no longer at the Thing level; instead, they are referenced at the Thing, Thing Template, or Thing Shape level. Instead of the above method, you can use com.thingworx.system.subsystems.alerts.data.Alert#public com.thingworx.entities.interfaces.IAlertProvider com.thingworx.system.subsystems.alerts.data.Alert.getEntityReference(). Since the entity is not guaranteed to be a Thing, the getThingReference() method was replaced by the getEntityReference() method. The getEntityReference() method returns an IAlertProvider, which is an entity type.
The getPropertyReference() method was removed.
Instead of the above method, you can use com.thingworx.system.subsystems.alerts.data.Alert#public com.thingworx.metadata.PropertyDefinition com.thingworx.system.subsystems.alerts.data.Alert.getPropertyDefinition(). The getPropertyDefinition() method is now used because it does not return a value. This change was made for performance reasons.
For AlertList, the following methods were removed since alerts now require the Thing that triggered the alert:
isAcknowledged()
Instead of the above method, you can use isAcknowledged(Thing sourceThing).
isActive()
Instead of the above method, you can use isActive(Thing sourceThing).
getThingReference()
Instead of the above method, you can use Alert.getEntityReference().
getThingPropertyReference()
Instead of the above method, you can use Alert.getPropertyDefinition().
acknowledge(java.lang.String,java.lang.String)
Instead of the above method, you can use acknowledge(java.lang.String,java.lang.String,com.thingworx.things.Thing).
acknowledgeAlert(java.lang.String,java.lang.String,java.lang.String)
Instead of the above method, you can use acknowledgeAlert(java.lang.String,java.lang.String,java.lang.String,com.thingworx.things.Thing).
addOrUpdateAlert(com.thingworx.things.properties.ThingProperty,com.thingworx.system.subsystems.alerts.data.AlertDefinition)
Instead of the above method, you can use AlertManager.createOrUpdateAlert(IAlertProviderentity, Stringproperty, StringalertType,StringalertName,Stringdescription, Booleanenabled, Integerpriority, InfoTableattributes, Booleanpersistent)throwsException.
Mashup Builder
Released the following new Web Component widgets:
The categories of widgets in the Widgets panel in the platform are updated. For more information, see the Widget Category section in the Widgets topic.
This version provides migration of old widgets in a mashup to their replacing web component widgets and migration of old layouts to the new containers. For more information, see Migration of Widgets and Layouts.
The properties of some existing web component widgets are updated. For more information, see the individual topics of web component widgets that were released in the 8.4.0 version.
The Advanced Grid and Advanced Tree Grid widgets are now available in the platform as standard themable widgets. For more information, see Advanced Grids
The following changes have been made to mashup types in the New Mashup window:
The Responsive (Advanced) mashup type has been renamed to Responsive.
The Responsive mashup has been renamed to Responsive (Legacy).
The Static mashup type has been renamed to Static (Legacy).
You can migrate your existing mashups. For more information about migrating mashups and widgets, see Migration of Widgets and Layouts.
The following functions have been added:
Confirmation—Combines functionality from the Button and Logout widgets.
Navigation—Replaces the Navigation widget.
Status Message—Replaces the Status Message widget.
Logout—Replaces the Logout widget.
Events Router—Replaces the Events Router widget.
For more information about the available functions, see Functions.
Responsive Mashups
The following enhancements were made to the Layout panel:
Added the Positioning option. You can specify Responsive or Static positioning for items within the container.
Added the Container Size option. You can define the size of the container in the mashup. The container size can be set to responsive, fixed, or a range of minimum and maximum values.
Added CSS Flexbox Grow Ratio and Shrink Ratio properties to the container settings.
For more information, see Responsive Mashups.
Style Themes
The Beta designation for style themes has been removed.
Added a mashup as a preview for the style theme settings on he Design tab of style theme entities. You can select your own mashup entities as a preview. For more information about the Styles tab, see Using the Styles Tab.
Added the PTC Convergence Theme as a system entity. The style theme is applied to all new mashups by default. The Base Theme is now used to preview style theme settings on Styles tab of style theme entities.
Added the ability override the style theme settings for individual items within your mashup using the Style Properties panel. Fore more information, see Using the Style Properties Panel.
Added style theme support to containers within the mashup. For more information, see Styling a Container.
The mashup StyleTheme property has been moved from the mashup properties to the Style Properties panel.
The (BETA) UseThemeForHybrids property was removed from the mashup properties. Hybrid functionality for the following widgets is no longer supported:
User Interface
Updated the look and feel of the Mashup Builder workspace. Panels have been redesigned to be uniform in style, color, and size.
Added, zoom in, zoom out, and pan commands to the design toolbar.
Added the Style Properties panel. For more information, see Using the Style Properties Panel.
Added the Properties panel, which replaces the Widget Properties panel.
Fore more information, see The Mashup Builder Workspace.
ThingWorx Flow
The following new actions have been added in ThingWorx Flow:
SQL Connector
Create Row
Delete Rows
Get Row by ID
Get Rows
Get Rows with Join
List Tables
Update Rows
For more information, see SQL Connector.
Azure Connector
Anomaly Detector
Bing Search
Custom Vision
QnA Prediction
Speaker Recognition
For more information, see Azure Connector.
Custom actions
Ability to Inherit or Copy existing actions to create new custom action
Localization support for custom actions
For more information, see Creating and Managing Custom Actions.
You can define and filter workflows by category, and display workflows as a list or grid on the ThingWorx Flow dashboard. For more information, see The ThingWorx Flow Dashboard.
You can create nested infotables using the Define Infotable action. For more information, see Define Infotable.
Solution Central
Introducing Solution Central, a brand-new cloud-based service to help you package, store, deploy, and manage your ThingWorx applications. It helps accelerate application deployment.
Solution Central enables you to:
Package, publish, and upload your application with version information and metadata to your tenancy of Solution Central in the PTC cloud.
Identify missing dependencies via automatic dependency management to ensure your application is packaged with everything required for it to run on the target environments.
Garner enterprise-wide visibility of your ThingWorx applications deployed across the enterprise via a cloud portal showcasing your company’s available applications, their versions, and target environments to foster a holistic view of your entire IIoT footprint across all of your servers, sites, and use cases.
Refer to the Solution Central Help Center for details.
Projects have been modified with the following:
Ability to specify dependency on an extension.
Ability to publish to Solution Central.
The following additional default entities have been created as a result of Solution Central:
SolutionCentralSubsystem
File Repositories
PackagedSolutions
DownloadedSolutions
User Groups
SolutionCentralSiteAdministrators
SolutionCentralDevelopers
* 
A user in the SolutionCentralDevelopers group is also a member of the Developers pre-installed user group.
Data Shapes
SolutionInfo
SolutionDependency
EntityDependency
SolutionDelivery
Bug Fixes
Platform
Related JIRA
Fixed potential security issues with ThingWorx Flow, Composer, and Mashup Builder, as well as additional issues proactively identified by vulnerability scanning software or PTC QA testing. Although security fixes are backported to supported versions of ThingWorx in maintenance releases, PTC strongly recommends upgrading to ThingWorx 8.5 as soon as possible to take advantage of security enhancements, such as the default configuration of SSL/TLS in the installer.
n/a
Fixed an issue with the ScriptLog search in which the results were including unrelated lines.
TW-62596
Fixed an issue with the Out of Range Alert Type in which the Adjustment Value was not affecting the range correctly.
TW-61885
Fixed an issue in which the configured order of fields in entities were not correct when inserting a snippet.
TW-61128
Fixed an issue in which services prohibited .. (dot dot) even if they were a valid part of the filename.
TW-61022
Fixed an issue with setting a URL value for an IMAGELINK property and a broken image icon being displayed.
TW-59280
Updated the high availability documentation to note Pgpool-II supporting information.
TW-58507
Fixed an issue that was causing a null error when executing the SearchThingsByTemplate service on the SearchFunctions resource, and new log statements were added.
TW-58505
Fixed an issue in which you could not export DataTables when multiple model tags were selected.
TW-56936
Fixed an issue that was causing failed migration from 7.2.1 due to the addition of the Metrics Reporting Configuration table in the Platform subsystem.
TW-55115
Fixed an issue in which the isConnected property on Remote Things equals false but the property values continue to be updated.
TW-54760
Fixed an issue in which slashes in organization names caused data issues in the organization.
TW-54382
Fixed an issue in which relative paths and colons in file paths caused file uploads to not work when using eMessage Connector with Axeda Agents.
TW-54190
Fixed an issue with snippet functions not returning correct values after changing the user language setting.
TW-44971
Fixed an issue where entities that contained certain characters were considered ghost entities when imported in an extension.
TW-46984
Mashup Builder
Related JIRA
Fixed an issue with the Insert/Edit Links and Insert Iframe URL attributes when you use HTTP in the mashups that have any of the following widgets or any ThingWorx entity that has a documentation section.
Blog
Wiki
HTMLTextArea
As a result of this fix, it is recommended to use HTTPS in the mashups.
TW-63601
Fixed an issue with an imported Mashup Thing Template type in which the binding between it and the Entity Picker widget property was lost during editing.
TW-64181
Fixed an error that was occurring when using a Thing View widget in a custom Mashup with PingFederate.
TW-63410
Fixed an alignment issue with the TextIfNoValue field in the Value Display widget when first opening the modal popup.
TW-62880
Fixed an issue in which the text was not wrapping in design time when Button or Navigation widgets were included in a Tab Responsive widget.
TW-60994
Added documentation about logging exceptions that are thrown by JavaScript expressions in a mashup.
TW-59710
Fixed an issue in which mashups were not de-allocating memory usage over time.
TW-59187
Fixed an issue in which the header border for the Grid Advanced widget was not being displayed.
TW-59016
Fixed an issue in which vertical lines were appearing around the search text box in the Grid Advanced widget.
TW-58802
Fixed an issue in which a mashup with a Grid Advanced widget in the master was not loading properly.
TW-58510
Fixed an issue in which custom CSS was not applied to the Tabs widget in certain browsers.
TW-57725
Fixed an issue in which an erroneous image appears after a gadget is moved.
TW-57213
Fixed an issue that was causing the accordion view to not display the third sub-menu.
TW-56861
Fixed an issue in which a double-click was required for the Navigation widget to work when the target window is set to Replace on an iOS device.
TW-56791
Fixed an issue in which a Label Chart widget with Stack Series on shows a bar even with a bound value of zero.
TW-56615
Fixed an issue with tooltips on the Label Chart widget appearing off screen.
TW-56497
Fixed an issue with the DateTime value in the Expression widget not showing correctly in the Date Time Picker widget.
TW-42993
Fixed an issue in which the Grid Advanced widget did not refresh when the last filter of the Data Filter widget was removed.
TW-17064
Fixed an issue in which a widget would move to where you scrolled in the mashup.
TW-22730
Fixed an issue in which the specified style themes for a master and its contained mashup were not applying correctly during run time.
TW-64690
Fixed an issue in which responsive widgets that are placed inside a Dynamic panel were not showing in some browsers.
TW-62207
Known Issues and Limitations
The following known issues and limitations exist in ThingWorx 8.5.0:
Platform
Due to possible security vulnerabilities, a minimum version of Apache Tomcat 8.5.42 or 9.0.21 is required.
It is strongly recommended that you upgrade Apache Tomcat to these versions to mitigate known security issues with older versions of Apache Tomcat.
While the ThingWorx Connection Server 8.5.0 and ThingWorx Azure IoT Hub Connector 3.0.0 have been certified with ThingWorx Platform 8.5, the following products have not been certified for use with ThingWorx Platform 8.5:
ThingWorx eMessage Connector
ThingWorx Remote Access Client
Axeda-ThingWorx Entity Explorer (ATEE)
ThingWorx AWS IoT Connector
ThingWorx Protocol Adapter Toolkit
Mashup Builder
Bootstrap JavaScript libraries were removed from Mashup runtime. If you have an extension that requires Bootstrap, you must include a version of bootstrap.js and define a <FileResource> entity in the extension's metadata.xml file within the import zip folder.
If you have mashup parameter bindings from a child (contained) mashup to a parent mashup and a parameter from the child mashup doesn't have any incoming bindings, when the parent mashup is saved, the binding from the child mashup will be deleted. The workaround is to create any incoming binding in the child mashup to the parameter.
* 
The following issue is resolved in ThingWorx 8.5.1 and later. It is recommended that you upgrade to that version.
When loading extension widgets at runtime, the libraries used by the widgets trigger the following error:
Uncaught Error: Mismatched anonymous define() module: [object Object] https://requirejs.org/docs/errors.html#mismatch
at makeError (advanced-widgets-runtime-pre.js?_v=8.5.0:168) at intakeDefines (advanced-widgets-runtime-pre.js?_v=8.5.0:1254) at advanced-widgets-runtime-pre.js?_v=8.5.0:1452
This error is triggered because of the following script that loads dependency:
$('head').append('<script type="text/javascript" src="../Common/extensions/TimelineChartWidget-extension/ui/timelinechart/include/d3.v3.min.js"></script>');
To fix the error, you need to change the script as follows:
$('head').append('<script>' + 'window.defineBackup = window.define;' + 'window.define = undefined;' + '</script>' + '<script type="text/javascript" src="../Common/extensions/TimelineChartWidget-extension/ui/timelinechart/include/d3.v3.min.js"></script>' + '<script>' + 'window.define = window.defineBackup;' + '</script>');
Refer to this example:
TW-65740
End-of-Support Information
SAP Hana is no longer a supported database for ThingWorx. See this article for additional information.
Internet Explorer 11 is no longer supported.
Was this helpful?