Nightly 8.1 Changelogs - 2021

Nightly Changelog: 8.1.13-b20211118

Platform

4939: Slicing PyDataSet Returns a List Instead of a PyDataSet
PyDataSets now correctly return new PyDataSets when ‘sliced’, rather than plain Python list objects.

Visualization

1495: Power Chart: Tag browser can display duplicate entries
Added logic to trap the two conditions that were found to cause the reported behavior.

Nightly Changelog: 8.1.13-b20211119

Data Model

4832: UDT Members are being processed before folders on upgrade preventing some from loading properly after upgrade from 7.9 to 8.x
7.x to 8.1 upgrade now logs which child tags were lost when a UDT folder conflict is detected.

5148 system.tag.editAlarmConfig causes UDT instance members to break after populating alarm configurations with Associated Data
Fixed an issue where the legacy system.tag.editAlarmConfig function wouldn’t include the alarm name property within the tag’s alarm configuration.

Visualization

2523: Nested template doesn’t initialize if template path is different from last cached instance
Nested templates no longer fail to initialize if the template path is different from last cached instance.

5150: Add JVM option to increase maximum Perspective websocket message size
Added new JVM property: perspective.websocket.max-message-size.

3781: Cell update binding values are cleared and replaced when they should be appended
Made the ‘Cell Update Binding’ editor no longer overwrite already entered text when a property or tag reference is selected.

Enterprise

4918: Gateway Network threads getting stuck on remote tag history queries
Gateway network threads would sometimes get stuck forever on remote tag history queries across multiple gateways.

Infrastructure

4917: Upgrade the bundled JRE version to 11.0.13
The embedded JRE has been updated to version 11.0.13.

4822: Existing Ignition service on Linux needs to be reinstalled on zip upgrade; update readme
The linux zip installers README files have been updated with guidance on installing/uninstalling/upgrading when ignition is installed as a system service.

4999: Upgrade Java Service Wrapper License
The embedded Java Service Wrapper license has been updated.

Nightly Changelog: 8.1.13-b20211122

Data Model

3215: Tag folder cannot be deleted immediately after opening or closing folder in tag browser
Folders in Tag Browser now present correct right-click menu options after expanding/collapsing the folder.

3889: In Vision & Perspective, an alarm setpoint tag binding to a UDT instance is changing the alarm setpoint of the UDT definition.
Prevent alarm overrides on UDT Instance members from writing to inherited alarms from UDT Definition.

3669: Writing non-serializable data to dataset tags causes tag loading errors on restart
Dataset types that are stored by ignition must match those allowed by the designer. This change was made to prevent serialization errors from unknown Dataset values.

Visualization

235: Perspective Tag History Binding Should Allow Historical Paths
Added unified selection to the tag history binding to be able to browse for both realtime and historical tags.

2047: Time Series Chart, Power Chart, Chart Range Selector - Add numeric locale support
Numeric locale formatting was added to the Y axes and x-trace displays for all charts mentioned. The Power Chart also had numeric locale formatting applied to the pen data display.

4508: Table: selection data in props is not updating to correct values when rows switch places in data
Selection data are now correct when rows switch places in the data property.

995: IllegalStateException when shutting down a gateway with a Perspective session opened
Fixed an IllegalStateException when shutting down the Perspective Module or the Gateway with a Perspective session opened.

Enterprise

1127: Gateway Network Outgoing Connections remain enabled when backup is restored as disabled
Fixed an issue wherein gateway network connections were still enabled after restoring a gateway backup with Restore Disabled option selected.

Nightly Changelog: 8.1.13-b20211123

Visualization

4546: system.gui.openDesktop fails to launch a proper secondary desktop if window specified to be opened is invalid
Opening a desktop with system.gui.openDesktop no longer fails when specifying an invalid window.

1120: Setting table cell’s number format to empty string causes java.lang.OutOfMemoryError: Java heap space
Fixed a rendering error that could be caused by setting the number format of a text shape to an empty string.

Enterprise

1331: Syncing label stuck until page refresh on master
Fixed an issue where the “Syncing” label did not get re-enabled when the backup was finished syncing after clicking the “Force Re-Sync” on the master Gateway’s Redundancy Status web page.

Platform

4969: Internal History Provider and Audit profile data fails to migrate on upgrade if named with upper case letters on Linux/Docker
Fixed an issue where, upon upgrade, the internal historian and the internal audit database files wouldn’t move properly to the data/local/ directory if the files include upper case letters and the file system is case sensitive.

Data Model

3680: Add setting to notification block to ignore schedules or not
Added the “Ignore User Schedules” setting to notification blocks. When enabled, notifications will be sent to all users on the specified roster regardless of their schedules. This currently only applies to “Direct” and “Expression” roster types.

Nightly Changelog: 8.1.13-b20211124

Security

4880: WebSocketSession: “java.lang.IllegalStateException: Delegate is not set” warning when logging out of Perspective via IdP
Fixed an “java.lang.IllegalStateException: Delegate is not set” warning Gateway log message when logging out of a Perspective Project which requires authentication.

Visualization

4302: Add URL query parameter support for Perspective
Added support for URL query parameters to be mapped into page.props.urlParams.

2 Likes

Nightly Changelog: 8.1.13-b20211129

Connectivity

4470: Unicode characters in Omron fins garbled when read
The Omron NJ driver now supports unicode characters when reading and writing to Strings.

Nightly Changelog: 8.1.13-b20211130

Visualization

4030: NPE When Browsing Ignition Gateway During Startup
Prevented a null pointer exception when browsing the Ignition Gateway during startup.

Connectivity

3946: Minor BACnet Local Device gateway page UI issues
Fixed an issue where the “Local Devices” link under the BACNet config category would not highlight when selected.

Nightly Changelog: 8.1.13-b20211201

Infrastructure

3692: Fresh Docker Container targeting restore of a 7.9 gateway fails to start
Docker image automated gateway restore now functions properly with pre-8.1 gateway backups and performs upgrade automatically as expected.

Visualization

2093: Vision Tag Browse Tree components Font does not change using Appearance > Font property in Vision
Fixed an issue where the Tag Browse Tree component would not obey the font property.

1348: Day View component doesn’t always respond to scripting changes of Zoom Start Hour
The Vision Day View component now works consistently when setting the Zoom Start/End Hour properties multiple times in succession.

Data Model

3017: AlarmHighestUnackName/Priority not working as expected when clearing an alarm without acknowledging
Fixed an issue where the “AlarmHighestUnackName” and “AlarmHighestUnackpriority” runtime alarm props were being set to null when an alarm is cleared but not yet acknowledged.

Nightly Changelog: 8.1.13-b20211202

Data Model

4174: Custom message formatting not upgrading properly
Fixed an issue where alarm event references within a custom message would only evaluate properly if the property was bound as an expression.

Nightly Changelog: 8.1.13-b20211203

Visualization

5245: IllegalStateException when restarting the gateway and a Perspective session is opened
Fixed an IllegalStateException when restarting the Gateway and a Perspective session is opened.

Data Model

4819: Driven Tag Groups using “Any Change” mode do not execute with non-numeric/boolean expression values
Fixed an issue which prevented Driven Tag Groups using “Any Change” mode from executing with non-numeric driving values such as Strings or Datasets.

Nightly Changelog: 8.1.13-b20211206

Visualization

5181: Perspective DateTime components’ props.value an hour behind props.formattedValue in Brazil timezone
Version bump to the moment.js library and necessary updates.

5229: Performance issues encountered in nightly automation runs
Fixed a performance regression in Perspective.

1123: Icon: application of style.fill works as it should in the Designer but not in a Session when fill is set to an empty string
Fixed the issue and fill now works as it should when fill is set to an empty string.

155: Add “Insert Property” and “Insert Tag” helper buttons to Vision extension functions & custom methods
Added Tag and Property reference helper buttons to the Vision component extension and custom function script editors.

3 Likes

Nightly Changelog: 8.1.14-b20211207

Visualization

5236: Special Login and Logout URL Parameters are applied incorrectly
Fixed a regression where special reserved login and logout route URL query parameters were applied incorrectly.

Nightly Changelog: 8.1.14-b20211215

Visualization

977: Alarm Journal and Status Table: add columns for associated data
Add column configurations for associated data for both Alarm Journal Table and Alarm Status Table.

1667: Power Chart: Browsing history with a root path will return cached results rather than newly queried results

This issue was resolved for DB historians early in 8.1. While debugging, it looks like DB historians will rebuild their cache of historical tags when a new historical tag is added. Not the case with internal historians, so this was still needed. This work adds the ability to requery the tags that are to be shown in the tag browser at a certain historical path ONLY if there is a value for the config.tagBrowserStartPath component property. These are the following scenarios that will trigger this requery:

  1. When the Power Chart first loads in the designer/session and makes the initial query to fetch historical results to display in the tag browser.
  2. When the config.tagBrowserStartPath component property changes.
  3. When the user clicks the (refresh) icon on the tag browser.
1 Like

Nightly Changelog: 8.1.14-b20211216

Data Model

3517: System.tag.configure should provide better error for incorrect tagType
Added better error message when an invalid tagType is specified for system.tag.configure().

4940: Tag properties readOnly, readPermissions, and writePermissions are not legacy adapted
You can now read readOnly, readPermission, and writePermission properties from 7.9 remote tag provider.

IGN-4932 Reading tags in a 7.9 remote tag provider from an 8.1.11 OPC Server with Expose Tag Providers set True using the Quick Client throws NPE
Fixed reading tags from 7.9 remote tag provider in Quick Client.

Visualization

3038: Column Container: Moving components within the same row can cause other components to unexpectedly reposition
Column Container - mouse movement behavior of child components within the Column Container within the Designer has been greatly improved.

Connectivity

4839: DNP3: “request size exceeds max fragment size” error when writing to >1801 BinaryOutput tags
Fixed a bug which would cause large Binary Output point writes (1801+ at the same time) to fail.

2 Likes

Nightly Changelog: 8.1.14-b20211217

Security

5296: Refactor misleading login failure message on internal IdP
Refactored the login failure messages in the internal IdP to be less misleading for the case where the user is locked out

Visualization

5031: Realtime Tag Paths do not work as the source value of a pen on a power chart in versions 8.1.3+
Now, a non-historical tag path like [default]Simulator/Sine/Sine0 is converted to a historical format like histprov:default:/tag:Simulator/Ramp/Ramp0 for each pen. Any updates to the pen done via the UI will write the converted (historical) path back to the data.source property of the pen. This keeps all of the data.source properties of the pens in a historical format while still allowing an initial non-historical tag path to add pen data to the chart display.

2324: Qualified Value created with a ‘null’ quality from an expression causes Vision window to not be able to opened in designer
Fixed a null pointer exception thrown when opening Vision windows with invalid BasicQualifiedValue objects serialized into them.

2 Likes

Nightly Changelog: 8.1.14-b20211220

Security

5228: WebSocketSession: “java.lang.IllegalStateException: Delegate is not set” warning when logging out of Perspective via IdP with the Inactivity setting
Fixed an “java.lang.IllegalStateException: Delegate is not set” warning Gateway log message when logging out of a Perspective Project which requires authentication due to inactivity

Data Model

4873: Edge History Sync Task fails to update sync id due to sqlite connection lock
Fixed this issue by increasing sqlite busy timeout for local syncable databases.

5326: Internal historian data isn’t synced remotely if tag path is repeated for same syncid
Historical data is now forwarded properly through data sync if history set contains repeating tag path.

Visualization

5332: Perspective download() script function support for mobile apps
The Perspective download scripting function now interacts with the mobile apps directly to ensure that download requests function as expected and can be saved to the local device. Requires version 1.0.2 of the mobile apps.

Nightly Changelog: 8.1.14-b20211221

Visualization

2143: Reporting- Page break on row doesn’t work without headers
Enabling a page break per row for a Reporting table group no longer returns only a single row of data.

1450: Perspective embedded views bidirectional bindings writing default values to tags when view is opened
Fixed issue that could cause bidirectional bindings on View parameters to inadvertently write back when loading the view.

244: Perspective Sessions Page Fails To Display Active Sessions
Fix issue occurring with Perspective status pages where page fails to display when a component’s name is empty while gathering session info.

2027: Performance: audit and improve designer front-end performance of basic interactions (i.e. selection, resize, move) and more
Improved front-end performance of Designer selection and component interaction.

1845: Perspective Table: Deleting the last row while editing a table cell causes a Component Error
Resolve Table component error that occurs when the last row is deleted while editing a cell of that last row

Enterprise

1712: Gateway Network Client Trust Manager’s trusted certificates cache can become stale

  • In order to improve the security and organization of the Gateway Network’s trusted certificates model through “separation of concerns”, and to gain functionality from a more mature and proven certificate model (Milo’s OPC UA Client / Server Trust Lists), the Gateway Network’s trusted certificates are now split into client and server certificates.
    • Client certificates are the certificates of peer Gateways that the current Gateway trusts when it is making outgoing connections.
    • Server certificates are the certificates of peer Gateways that the current Gateway trusts when it is handling incoming connections.
  • The new trusted certificates model is organized in a way very similar to the Milo OPC UA client and server embedded within Ignition:
    • Server certificates live under $GATEWAY_HOME/data/gateway-network/server/security/pki/
    • Client certificates live under $GATEWAY_HOME/data/gateway-network/client/security/pki/
    • Both client and server certificates are further organized as follows:
      • Trusted / Approved certificates: $GATEWAY_HOME/data/gateway-network/{server|client}/security/pki/trusted/certs/
      • Rejected / Quarantined certificates: $GATEWAY_HOME/data/gateway-network/{server|client}/security/pki/rejected/
      • Issuer (CA) certificates: $GATEWAY_HOME/data/gateway-network/{server|client}/security/pki/issuers/certs/
    • Certificates are encoded and stored in PEM format
  • On upgrade, to preserve backwards-compatibility: certificates which were previously shared by both client and server will be copied to each of the new client and server directories
    • Trusted / Approved certificates which previously lived in $GATEWAY_HOME/data/certificates/gateway_network/ will be copied over to $GATEWAY_HOME/data/gateway-network/{server|client}/security/pki/trusted/certs/
    • Rejected / Quarantined certificates which previously lived in $GATEWAY_HOME/data/certificates/gateway_network/quarantine/ will be copied over to $GATEWAY_HOME/data/gateway-network/{server|client}/security/pki/rejected/
    • Issuer (CA) certificates which previously lived as entries in the keystore file located at $GATEWAY_HOME/data/certificates/cert-chain-store will be copied over to $GATEWAY_HOME/data/gateway-network/{server|client}/security/pki/issuers/certs/
  • When the Gateway makes an outgoing connection to a peer Gateway whose certificate is not yet trusted, the peer certificate (or its certificate chain if one is configured) is copied into the $GATEWAY_HOME/data/gateway-network/client/security/pki/rejected/ directory
    • This new model allows users to configure the Gateway Network client to trust the peer Gateways on outgoing connections by moving the certificate on the filesystem from $GATEWAY_HOME/data/gateway-network/client/security/pki/rejected/ to $GATEWAY_HOME/data/gateway-network/client/security/pki/trusted/certs/. This filesystem change will be picked up immediately by the Gateway and the connection will be trusted when it attempts to reconnect again. This was not easily possible before.
  • The same goes for the case where a Gateway handles an incoming connection, except the directory is under $GATEWAY_HOME/data/gateway-network/server/ instead of $GATEWAY_HOME/data/gateway-network/client/. The Gateway Network config UI’s Incoming Connections tab was made compatible with this new model so that incoming connection certificates may continue to be approved, denied, or deleted there.
  • The keystore at $GATEWAY_HOME/webserver/metro-keystore continues to be used as the source for the private key and certificate used by both the Gateway Network client and server for the purposes of authenticating itself to its peer.
  • These changes only apply for Gateway Network connections over SSL / TLS (default port 8060). For the Gateway Network client making outgoing connections, two-way authentication must be enabled as well.

All certificates and files / folders under $GATEWAY_HOME/data/gateway-network/ are included in Gateway backups and restored upon restoration of such backups.

1 Like

Nightly Changelog: 8.1.14-b20211222

Platform

1344: Add additional context/parameters to project update script
Project update gateway event script now reports which resources were modified during project save.

Security

1570: Audit Initial User Lockout Event
The event where a user in a user source profile transitions from a state of unlocked to locked out is now audited to the Gateway Audit Profile if such a profile is configured.

Visualization

2332: Setting a dynamic height and width for nested views can fail to evaluate on initial view load
All views are now able to respond to dynamic changes to width/height.

1 Like

Nightly Changelog: 8.1.14-b20211223

Platform

4935: ScheduledScriptManager should use an unbounded thread-pool and execution queues for each distinct script
Scheduled scripts now use a cached thread pool and per-script execution queues. This facilitates parallel execution of scheduled scripts within a project–useful for both longer running scripts and situations where multiple scripts have the same schedule. A given scheduled script will enqueue and wait for any previous invocations to complete before running again.

Enterprise

4039: Allow Gateway Network Proxy Depth to be set from the Gateway UI
Gateway Network Proxying Depth is now configured via the Gateway Configuration Webpage UI. The previous checkbox for “Allow Proxying” has been replaced with the numeric depth count (where <= 0 is “disabled” and > 0 is “enabled”). Previous values of the ignition.gan.maxproxydepth system property are absorbed into this new configuration field (if “Allow Proxying” was enabled) on upgrade.

5325: Remove log4j reference from EAM remote upgrader
Removed unused log4j reference from EAM remote upgrader.

Visualization

5259: Table Component passing the wrong viewParams to subviews when filtered
Regression fix for incorrect view params being passed to View instances of the Table component when filtered or paged. A regression introduced in 8.1.12.

2907: AST, AJT, and Table Components: Implement runtime column ordering via drag
Implement runtime column drag reordering for Table, Alarm Status Table, and Alarm Journal Table.

3036: Table highlight get stuck on top row of perspective table when you hover away
Fix Table mouseover highlight getting stuck on top row when mouse leaves the component.

Connectivity

5225: CIP Security Information item not supported
Fixed a bug that caused the Logix Driver to cycle between Idle and Connected upon receiving a CIP Security Information item as part of a ListIdentity response.

Security

3941: Include actor host within audit log query results
Audit Log Queries via system.util.queryAuditLog() and Vision Binding Function now include the “Actor Host” field in the returned dataset.

Infrastructure

3315: Provide An Open Gateway Option From Designer Cards In Launcher
Added a “Go to Gateway” link in the Designer launcher.