1974: Allow tag provider editing on Edge, but only load 1 standard provider
Added the ability to modify and change tag providers on an Edge Gateway. Only one standard tag provider can still be used on Edge, but, if changing between platform editions, another tag provider can be selected instead of previously being forced to used the default Edge provider.
2155: Add Redundancy Support to IdPs
Identity providers now have an optional backup configuration that will automatically load when a redundant gateway setupâs role switches from master to backup.
Visualization
3255: Vision sound player throws error if the client machine has no audio device
The Vision Sound Player component no longer gives an error popup if no output device is found and logs the message instead.
4482: Querying for future historical values will return non-existent 0s with good quality when using Vision Easy Chart
Fixed an issue where querying for future historical values within the Vision Easy Chart would render interpolated non-existent 0 values.
Platform
4441: System.tag.readBlocking is writing back to an array tag in perspective
Writing to elements of arrays obtained from system.tag.read* Gateway-scoped script invocations should no longer write back to the element in the Tagâs array instance
4435: Upgrade object-path NPM dependency to 0.11.7 due to high risk CVE
object-path dependency in the @inductiveautomation/ignition-react web package was no longer used. Dependency removed.
resolve-url-loader dependency in the @inductiveautomation/map web package (which uses adjust-sourcemap-loader which uses object-path) was no longer used. Dependency removed.
4661: NPE on startup when Edge is configured as EAM Agent
Fixed a NPE that caused an Edge Agent to be unable to send its Edge project to another Gateway when using EAM.
4527: Legacy tag upgrader does not calculate node rankings correctly
Improved the ranking of tags upon legacy upgrade, resulting in more efficient and more correct loading of the new tag provider.
4581: Tag folder names sometimes change to lowercase when previously UPPERCASE or CamelCase when upgrading from 7.9 to 8+
Tag folder names now retain casing when upgrading from 7.9.
1156: Drag and drop tag bindings fail when using a value from a dataset tag
Dragging and dropping dataset values onto Vision components will now correctly create bindings.
2925: Perspective- Text fields bound to a tags metaData result in âvalueâ when written to
Values written from bi-directional tag bindings on Perspective Text Field / Text Area components to Tag Properties are no longer wrapped in quotes.
4843: Ignitionâs Web Serverâs Default Error Handler returns Detailed Error Responses
Detailed server information is no longer leaked by Ignitionâs web server when an unhandled exception is thrown while handling HTTP requests.
3286: Perspective Map Component: props.layers.ui.markers get redrawn every time another props.layers property is modified
An individual marker is only redrawn when the layers.ui.marker [ x ].icon component property of that marker is modified.
2343: Perspective session logging error âUnable To Send Updates To Clientâ repeatedly
Listening for WebSocket errors and trapping two error types that will render the WebSocket unrecoverable. In those cases, the session will be disconnected. All other WebSocket errors are now logged for easy visibility in case this first effort doesnât solve the problem.
3844: Power Chart - The âshowSettingsButtonâ visibility toggle needs to apply to the âSettingsâ menu item when in responsive mode
The config.visibility.buttons.showSettingsButton component property now hides the âSettingsâ menu item when set to true and the chart is in responsive mode.
4480: Designer - Tab Container Design Delegate add tab button missing/non-functional
Fixed an issue where in the Designer the Tab Containerâs â+â add tab button was missing when nested within a coordinate container, or non-functional in all other instances. Also Fixed an issue where in the Designer, the Tab Containerâs delete tab confirmation would remain active even when switching tabs or deep selecting other components.
1500: Numeric Entry Field: option to toggle spinner and adjust increment
A new prop has been added to the Numeric Entry Field to control the spinner - props.spinner.enabled will display a spinner when true, and props.spinner.increment controls the amount to increment(or decrement) the value when using the spinner.
4486: The view parameters suggestion submenu of the JSON editor is displaying deleted view parameters
Deleting a param from a view through the property editor will no longer orphan its propConfig in the view json. This prevents the deleted param from showing up in the param suggestions menu within the property config (for example, when using an Embedded view component). Previously orphaned propConfigs will remain, however they may be cleaned up manually either through editing the view json or by adding the param back and then deleting it once again.
2196: Shared polling engine to consolidate polling queries from multiple sessions
Added âCache & Shareâ option to polling tasks and Alarm tables to improve Gateway CPU load caused by many concurrent sessions.
Data Model
4824: Dedicated Tag conversion log for upgrades
Log files are now created in logs/legacy-tag-conversion when upgrading 7.x gateways to 8.1. The logs contain more detailed information about any potential problem tags after upgrade.
Connectivity
3273: WriteBlocking to a DNP3âs AnalogOutput tags will fail if writing to 35+ tags
Fixed a bug which would cause large Analog Output point writes (35+ at the same time) to fail.
4411: Report Viewer - Prevent download button from being pressed twice
When the âdownloadâ icon is clicked, the cursor while hovering over the component will display a progress state (loading spinner or hourglass depending on the browser). Additionally, the âdownloadâ button will be disabled. These changes will remain in place until the report has been downloaded to the browser at which point the browser will either present a dialog asking the user to open/save/cancel (if the user has not made a permanent browser download preference), or the browser will honor whatever download preference the user has made.
882: Uncaught (in promise) Browser Console Errors when logged out from Gateway
Within the Gateway: logged out users or users who no longer have permissions for the appropriate Gateway section (Config/Status) will be taken to the Login Page or insufficient permissions page respectively via an automatic Browser Refresh.
2359: NPE in AlarmStatusTableModelDelegate after gateway restart with active/shelved alarms
Fixed NPE that would occasionally happen with the Alarm Status Table when restarting the gateway.
3603: Script console requires manual reset after adding / modifying new project scripts
The script console now automatically updates with any project script changes within the current Designer session.
Platform
4495: system.util.getGatewayStatus fails between 8.1 and 7.9 gateways
Fixed an issue with system.util.getGatewayStatus() system function where incorrect values would be returned when run against older gateway versions.
3672: Designer Script Console does not close resources on Reset
Fixed an issue where resetting the script console wasnât properly disposing of resources.
3851: Project Script updates on an inheritable global are not properly updating child projects
Fixed an issue where the script console wasnât updating properly with project script changes when merging any project updates.
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.
4484: system.perspective.download implementation does not URL-encode the Content-Disposition header value
The URL content disposition when using the scripting function system.perspective.download, this allows for non-ASCII keys to be used for the filename parameter.
4702: Improve error message in ViewResourceEditor.getObjectForSave()
When a TimeoutException is encountered, the following will be logged to the console: âUnable to save the view. Could not retrieve view resource data.â
When any other exception type is encountered, the following will be logged to the console: âUnable to save the viewâ.
Security
4398: Add setting so the Gateway can evict idle connections after a configurable timeout
Exposed the following new system properties:
ignition.http.client.manager.socket.keepalive - when set to true, HTTP connections issued from the IdP system as well as Perspectiveâs HTTP Bindings will set the SO_KEEPALIVE flag on the underlying socket, which should enable keepalive. Note: the OS keepalive settings must also be set accordingly. When set to false or undefined, the SO_KEEPALIVE flag remains unset on these sockets, just as they always have been in the past.
ignition.http.client.manager.pool.maxIdleConnectionTime - an integer representing the number of seconds that connections in the HTTP connection pool may be idle (i.e. no data is sent or received on the socket) before it is evicted and closed. If set to any number less than or equal to zero or undefined, idle connection eviction will be disabled as it always has been in the past.
ignition.http.client.manager.pool.idleConnectionCheckInterval - an integer representing the duration in seconds between each check for idle connections. This value is ignored when maxIdleConnectionTime is less than or equal to zero. If this value is undefined or less than or equal to zero, then the interval is set to match maxIdleConnectionTime.
4521: Unable to retrieve user info from Auth0 OIDC IDP
Added more lenient parsing for OIDC IdPs which set updated_at property values on UserInfo responses which are not compliant with the OIDC spec.
4522: Unable to parse HTTP response cookies from Auth0 OIDC IdP
Exposed a new system property ignition.http.client.manager.cookieSpec to control the cookie parsing behavior of the IdP and Perspective HTTP Bindingâs Http Client. This new system property may take one of the following values:
default: Default cookie specification that picks up the best matching cookie policy based on the format of cookies sent with the HTTP response.
netscape: This CookieSpec implementation conforms to the original draft specification published by Netscape Communications. It should be avoided unless absolutely necessary for compatibility with legacy applications.
standard: Standard CookieSpec implementation that enforces a more relaxed interpretation of the HTTP state management specification (RFC 6265, section 5) for interoperability with existing servers that do not conform to the well behaved profile (RFC 6265, section 4).
standard-strict: Standard CookieSpec implementation that enforces syntax and semantics of the well-behaved profile of the HTTP state management specification (RFC 6265, section 4).
If the system prop is undefined or does not match any of the supported values, default value should be default, which is the spec that was used by default in Ignition versions before this system property was exposed.
4530: IdP and Perspective HTTP Binding Http Client does not respect system proxy settings
Exposed a new system property ignition.http.client.manager.proxy.enabled
If set to true, the Platformâs HTTP Client will respect the JVMâs system default proxy settings
If false, the Platformâs HTTP Client will ignore the JVMâs system default proxy settings and disable proxying altogether as it has always been
Default value if undefined is false to reduce risks of breaking anything on upgrades
This new system property affects the IdP system and Perspective Http Bindingâs Http Client
4176: Associated data property named âValueâ not handled consistently on upgrade
Fixed an issue which prevented alarm associated data named âvalueâ from correctly evaluating after the tag provider has been restarted.
Visualization
2754: Perspective Report Viewer: Reports do not follow project timezone in the Perspective report viewer like they do in the Vision report viewer
Reports now follow the project session time zone for the Perspective Report Viewer.
4291: Simulators donât count as âConnected Devicesâ in Status > Devices on Gateway
Count running simulators as connected in âConnected Devicesâ metric on the Status > Devices page.
Data Model
2416: UDT Instanceâs type cannot be changed even if it is not nested in another UDT Instance
UDT Instances that arenât nested in UDT Definitions can have their Parent Types changed now.
3842: Several DNP3 Scripting Functions Invoked by Vision Clients Do Not Enforce Access Controls
Enforce Vision Client access controls on system.dnp3.freeze* scripting functions.
4797: Rename setPoint function parameter in Sim realistic function to startPoint
Fix behavior of device simlulatorâs ârealisticâ function relative to its set/start point.
Enterprise
3259: Verify File integrity for redundancy restores
A checksum is now used for file integrity verification when performing a system restore on a redundant backup.
1028: Add ability to toggle simple table and crosstab dividers
Exposed Top/Left/Bottom/Right divider properties for cross tab and simple table cells, to allow toggling the default dividers.
2901: Make position and size properties of simple table and cross tab cells read-only
Made certain properties of cross tab & simple table cells read only in the property inspector to indicate that they cannot be edited outside of the design tab.
IGN-1830 Unable to set custom icon for vision desktop shortcuts
PNG, SVG, GIF, and JPEG formats are now supported as launch icons for the Vision Client Launcher. These can be specified in the applications config or within the projectâs Vision â launching â Launch Icon
4421: OPC UA should respect both edge-iott and edge-mqtt license parameters
Recognize both âedge-iiotâ and âedge-mqttâ license parameters.
Platform
2125: One-Shot Driven Tag Group always executes once when condition is true
Ensure one-shot driven Tag Groups only execute once when the condition evaluates to true and not on subsequent changes that cause the condition to remain true (i.e. on the rising edge).
4469: Error logging from gateway scripts no longer report Traceback information with line numbers from script
Fixed an issue that prevented traceback line numbers from being shown in log output.
Visualization - Web
4896: Safari browser limitation to download only a single file at a time when script is added to download multiple files
A download queue system has been implemented for the system.perspective.download. Functionally this has no impact, except for the Safari browser which can now download multiple files when there are multiple simultaneous calls of system.perspective.download where it couldnât previously. A short 250ms delay between each of the initiation of each of the downloads has been added for all browsers when calling system.perspective.download multiple times simultaneously.
4497: NPE when using runScript expression in a report parameterâs default value
Fixed an issue with the runScript expression function in report parameterâs default values.
Security
4620: SAML IdP Config UI - Save button doesnât highlight when importing new metadata
Save button is now enabled when importing new IdP metadata which changes existing settings
3801: Docker Image: Add support for directing the Gateway Network Certificate store location to the data/ folder
Docker image now redirects, via sym-link, Gateway Network keystore creation from webserver/metro-keystore to data/local/ folder. This allows a Docker containerâs gateway network certificate identity to persist via the data volume without having to rely on extra bind-mounts.
Infrastructure
3818: Docker Image: Add support for directing the SSL keystores to be stored under data/ folder
Docker image now redirects, via sym-links, SSL keystore creation from webserver/ssl.pfx and webserver/csr.pfx to data/local/ folder. Disabling SSL now recognizes presence of sym-links when removing the keystore and removes the final target of the link, leaving the sym-link in place. This allows a Docker containerâs SSL configuration to persist via the data volume without relying on extra bind-mounts.
Visualization
4829: In Perspective, Views are deleted when selecting âRevert Changesâ after renaming the View
In the Designer, reverting changes to a Perspective View, Style, or other pre-existing project resource will no longer result in that resource being deleted. Rather it will be restored to its original name. Resources that did not previously exist/have not been saved will still be deleted upon revert changes.
3917: View Canvas: onInstanceClicked event.params returns dollar-encoded PyJsonObjectAdapter instead of dict
Fixed encoding of event.params argument to the âonInstanceClickedâ event of the view canvas component.
Data Model
3250: Prevent adding Atomic and UDT Instance Tags to Types Folder through scripting
Prevent adding non UDT Definition tags from being added to Types folder through scripting.
3906: Perspective Component Tooltip text content display should update when bindings update
Component tooltips will now correctly update if any of its properties have changed.
171: Equipment Schedule: implementation and addition of new component to Perspectiveâs component palette
Introducing the Equipment Schedule, a powerful new component that conveys equipment scheduling information in a concise and easily digestible format.
4551: Perspective Piping Slow While Zooming
Overall performance with Piping has been improved, particularly when zooming with complex pipes. This was achieved by reducing the complexity of the SVG masks generated for P&ID pipes as well as various other performance related optimizations; little to no visual differences should occur.
4892: Perspective pipes in stacked containers affect each other
There was an issue with Piping in which having multiple Coordinate Container with Pipes would affect the rendering of each other, resulting in the pipes being partially rendered. This has been fixed.