Ignition Release Notes
Fixes, changes and features In Ignition
Version 8.1.10
Released September 8, 2021Area
Change Type
Description
AB Suite
Connectivity
Allow CIP connection timeout to be configured.
Alarm Notification
Data Model
Fixed an issue causing duplicate alarm events when acknowledging through a remote tag provider using subscribed query mode.
BACNet
Connectivity
Default to zero instead of failing to initialize when a device doesn't support the mandatory database-revision property for some reason.
Deployment
Infrastructure
Docker image now supports passing arbitrary "gateway.*=<value>" key/value pairs for the gateway.xml after the double-hyphen in the command args, similar to the existing capability for JVM/wrapper args.
Infrastructure
Docker image now supports provisioning of outgoing Gateway Network connections and EAM setup configurations (Agent/Controller) via environment variable definitions such as `GATEWAY_NETWORK_n_HOST=foo`, `GATEWAY_NETWORK_n_PORT=8060`, `EAM_SETUP_INSTALLSELECTION=Agent`, `EAM_AGENT_CONTROLLERSERVERNAME=GatewayName` and more.
Designer Launcher
Infrastructure
Reworded an error message that could be thrown during Vision client initialization to be more descriptive.
Installers
Infrastructure
Ignition installs on Linux and Mac OS via the Installer now add an appropriate sudoers file for the Ignition Service so that EAM Agent Upgrades can be performed successfully without requiring interactive authentication. This only occurs if the RUN_AS_USER env variable is set in ignition.sh (the default for installs and upgrades using the Ignition Installer) or ignition.shconf. Added ignition.sh runupgrader command as well as run-upgrader.bat on Windows to simplify running Ignition's Upgrader on upgrades. EAM Agent Upgrades no longer change the Ignition Gateway service name back to the default when upgrading.
Infrastructure
Installing Ignition on Linux in non-service mode now correctly launches the gateway as the target user instead of root. This fixes an issue wherein a follow-up stop command (via the control scripts) might produce a permissions error.
Java - Azul
Infrastructure
A deadlock when displaying reports has been fixed when two reports execute at the same time which load different font files which haven't been loaded previously.
Omron
Connectivity
Ensure tags subscribed to the FINS driver get Uncertain_LastKnownValue quality when device is disabled or deleted.
OPC-UA
Connectivity
Allow Description to be set by system.opc.addDevice.
Connectivity
Added "Include Timestamp-Only Changes" OPC UA tag group property.
Connectivity
When Ignition is configured for redundancy, set the value of the OPC UA ServiceLevel Node according to the rules for "Non-transparent Redundancy".
Connectivity
Fixed a bug with system.opc.writeValues where an out of range value being written to a Node with an unsigned datatype would cause the entire call to fail and not just the writes with out of range values.
Connectivity
Added "MonitoredItemCount" sampling diagnostics node.
Connectivity
Updated OPC UA SDK to latest version.
Perspective
Visualization - Web
A new Tooltip feature is now a native part of the Meta Component properties along with two new Component based scripting functions: requestTooltip and removeTooltip which allow the user to configure and handle tooltips from scripting events.
Visualization - Web
Correctly displaying the acknowledged, active, and cleared Event Time values in the details popup.
Visualization - Web
Introducing Perspective Piping, a major new Coordinate Container feature. Perspective Piping allows you to quickly draw pipes within Perspective.
Visualization - Web
Using the escape key for un-focusing input components inside of a popup will now correctly un-focus instead of incorrectly closing the popup
Visualization - Web
Updated time zone support for the following components: Datetime Picker, Datetime Input, Alarm Status Table, Alarm Journal Table, Table, Chart Range Selector, Power Chart
Visualization - Web
Rotated Components will now snap to other components, parent, and guidelines just like non-rotated components do.
Visualization - Web
Removed the offending `transition` that was targeting all CSS properties.
Visualization - Web
Incrementing and decrementing hours will no longer change auto update the AM/PM selector. Will now work similar to a physical alarm clock when setting the time.
Visualization - Web
A new property "selection" has been added to the XY Chart and the Pie Chart components. When enabled, the selection property allows the user to select specific slices, bullets, or columns on their respective chart that is reflected in the selection.data read-only sub property.
Visualization - Web
Added an `event.matches` value to the scripting function that is an array of string values containing all matched terms when a regex match has been made.
Visualization - Web
Added the ability to resize the Tag Browser, Pen Data Display, and Settings menus by dragging the innermost border of each area inward. Works via a drag action on mobile browsers. The new size of each area is temporary and will be reset to the default size once the browser has been refreshed in a session, or toggling preview/design mode in the Designer.
Visualization - Web
Perspective Table should now sort date values correctly
Visualization - Web
Implemented less intrusive Perspective quality overlay when component is small enough
Visualization - Web
Alarm Status Table now has a new extension function called filterShelvedAlarms that works the same way as the existing filterAlarms extension function, but for shelved alarms
Platform - Databases + S&F
Platform
Fixed an issue where 'Undo' in the named query editor could remove the default sample query text.
Platform
Improved the diagnostics for tag history connections, especially splitters.
Platform
The local internal historian now properly updates its data cache count when storing data to disk.
Platform
An old installed MySQL JDBC driver (prior to v5.1.0) no longer prevents the Gateway from fully starting when having an alarm journal configured.
Platform
Fixed an NPE thrown when updating a Vision query binding to a named query.
Platform
HSQLDB library (used primarily for S+F disk cache) has been updated from 2.3.3 to 2.6.0.
Platform
SQLite connections can now reference the gateway's data and local directories within the connect URL by using the ${data} and the ${local} parameters, respectively.
Platform - Expressions
Platform
Added the following expression functions:
* `isUncertain`
* `isBad`
* `isError`
* `isBadOrError`
* `qualityOf`
* `timestampOf`
In addition, overloaded the equality operation in expressions so that QualityCodes (as extracted by the new qualityOf() function) can be directly compared against their constant names or integer codes.
Platform - Gateway Network
Enterprise
- Disabled outgoing GAN connections now show status as `Disabled` instead of `Unknown`, peer gateway name as `N/A`, and redundancy role as `N/A`
- Outgoing GAN connections now show status as `Disabled` instead of `Unknown`, peer gateway name as `N/A`, and redundancy role as `N/A` when Gateway Network is disabled
- Incoming GAN connections now show status as `Disabled` instead of `Unknown`, peer gateway name as `N/A`, and redundancy role as `N/A` when Gateway Network is disabled
Enterprise
Remote alarm subscriptions will no longer drop some alarm events when a large volume of remote alarms occur at once.
Enterprise
Updated hint for Specified List field in the Gateway Network Settings
Platform - IdP + User Sources
Security
SSO Domain field for AD profiles are no longer enforced as case-sensitive
Security
'Allow Anonymous' setting updated to be consistent across all Active Directory user source types (standard/hybrid/internal hybrid).
Platform - Licensing
Security
Prevented a NumberFormatException from being thrown when parsing invalid license restrictions for limited vision client & reporting counts.
Platform - Other
Platform
Fixed an issue causing the internal database to remain locked after attempting to add users to a nonexistent roster.
Platform
Made all Ignition thread dump utilities (Gateway web interface, system.util.threadDump, gwcmd) export thread dumps in a common JSON format.
Platform
Avoiding duplicate wrapper.java.command entries in ignition.conf when upgrading from Ignition 7.9 to 8
Platform - Scripting
Platform
Fixed an issue where top-level constants in project scripts could not be updated before being read at least once.
Platform
Added the ability to override the JSON serialization behavior of a given `system.net.httpClient()` instance.
Platform
Don't throw exception in system.opc.setServerEnabled when the connection is already in the requested state.
Platform
Fixed an issue where a function within a project script couldn't reference a function from another script library if invoked from the script console.
Platform
Fixed various editors offering autocomplete "hints" for scripting functions from the wrong context - e.g. offering Vision client scoped hints for events that run on the Gateway.
Platform
Importing and overwriting legacy App project scripts no longer creates multiple nodes in the Designer project browse tree.
Platform
Using an empty user source when executing system.user methods from the gateway scope will now map the user source to the project's default one.
Platform - Security Model
Security
Added various defenses against potential zip-slip and path traversal vulnerabilities
Security
- Added a new setting in the Gateway Web Interface > Config > Networking > Web Server page under the ""HTTP Settings"" section named ""Resolve Client Hostnames"" which allows the Gateway's web server to perform reverse-DNS lookups of HTTP client IP addresses in order to use the hostname for Security Zones
- Perspective's session.props.host session property now uses the resolved HTTP client hostname if the above setting is enabled, otherwise it falls back to the IP address
- Added a new session property session.props.address to Perspective which always contains the remote HTTP client's IP address
Security
Added a new setting in the Gateway Web Interface > Config > Networking > Web Server page under the "HTTP Settings" section named "Use Proxy Forwarded Headers" which allows the Gateway to use a reverse-proxy's HTTP client details instead of the reverse-proxy itself
Security
Fixed an issue where users could erroneously land on an Access Denied page after logging into the Gateway Web Interface's IdP if they waited long enough for the session to expire after commissioning
Security
Gateway errors sent to the designer or client containing external system details can now be suppressed via an optional system property.
Security
Updated the BouncyCastle library to version 1.69, which may resolve some intermittent issues that presented as "ClassCastException: class org.bouncycastle.jcajce.provider.asymmetric.edec.BCXDHPublicKey cannot be cast to class java.security.interfaces.XECPublicKey (org.bouncycastle.jcajce.provider.asymmetric.edec.BCXDHPublicKey is in unnamed module of loader java.net.URLClassLoader @645a8e69; java.security.interfaces.XECPublicKey is in module java.base of loader 'bootstrap')" in Vision clients using the PDF Viewer component.
Platform - Web Interface
Visualization - Web
Perspective Session key event detection has been added and can be found under Project > Session Events > Key Events. This provides the ability to match either a single key (with or without modifiers), or a regex pattern (series of keys) and execute a script once the match has been detected. The match for a single key can made either on ""key down"" or ""key up"". A regex match is always made on ""key up"".
For single keys entered, the match can be a physical key typed, or the code generated by the key. Modifiers for a key include ""alt"", ""control"", ""shift"", and ""command/meta"". In addition, the resulting event that is used for match detection can be bound on its capturing phase, and it can also stop event propagation or prevent the default behavior of the event.
For a regex pattern match, the user would supply a regex pattern to match against, and they would also supply the number of characters that they would like to keep in a rolling buffer that will be scrutinized for a match. This buffer will always be the most recently typed characters and should be the length of whatever a ""correct match"" would be based on the supplied regex pattern. This pattern match can be a great way to execute a script when a barcode has been scanned from an HID barcode scanner.
**Note:** Key event detection is meant to work inside of a Perspective session and is not active inside of the Designer.
**Also to Note:** The device being used to trigger the key events must actually generate a key event when a key is pressed. HID barcode scanners WILL generate key events as they mimic a user typing keys on a physical keyboard. Scanners and other input devices that do not create key events will not trigger this logic.
Visualization - Web
Fixed an issue where the store and forward progress bar details would render outside its bounds if number of records cached greater than maximum allowed.
Reporting
Visualization - Swing
Reporting path keys beginning with a number no longer lock up the Design tab when dropped onto a report.
Visualization - Swing
Reports with empty text boxes no longer throw a ClassCastException when exported to an excel sheet.
Visualization - Swing
Fixed an issue preventing images with HTTPS source URLs from loading within reports.
Siemens
Connectivity
Fixed a bug in the Siemens driver where timers/counters were being incorrectly addressed when reading/writing from an S7-300.
SQL Bridge
Data Model
Using the "Name" property in the 'Value Mode' of a block item should return the item name just as it did in 7.9
Tag Historian
Data Model
History annotations queries are no longer attempted through remote tag providers if remote gateway does not support annotations (versions prior to 8.1.4).
Data Model
Tag history tables are now initialized before querying annotations to avoid potential errors flooding the logs
Vision
Visualization - Swing
Added "getDateAt(MouseEvent)" method to the Equipment Schedule chart to convert events to datetime
Visualization - Swing
Dropping multiple UDT instances (that are template drop targets) onto a Vision window no longer throws an NPE.
Visualization - Swing
Fixed a longstanding issue with performance during the Vision module's serialization of binary data.
Visualization - Swing
Fixed an issue where the explicit `jsonValues` node on UDT instances could not be used from Vision. New bindings should be created directly to the UDT instance node, without the trailing `jsonValues`, as in Perspective.
Visualization - Swing
Fixed an issue where the Vision historical browse tree wouldn't accept the same path format for the root node path property as in versions previous to Ignition 8.