Nightly 8.1 Changelogs - 2021

Nightly Changelog: 8.1.11-b20210914

Data Model

3916: Historical Deadband Mode of off is not being respected
Fixed issue where historical deadband mode of “off” was not being respected.

3915: Max Time between samples only logs last logged value if value hasn’t changed enough
Tag history “max time between values” stores the last previously stored value, instead of the current value (which may be different, if a deadband is applied).

2 Likes

Nightly Changelog: 8.1.11-b20210916

Data Model

3266: Tag Alarm’s State property contains less descriptive string values after version 8.1.4
Fixed a regression which caused the “State” runtime alarm property to show the same value as “EventState”. The State property now shows the full state (Active/Cleared, Un/Acknowledged) like it did in 8.1.4 and prior.

Security

4426: Perspective does not close session using scripting function immediately after inactivity logout

  • Fixed an issue where Perspective sessions would not close using the system.perspective.closeSession scripting function immediately after inactivity logout is triggered
  • Inactivity timeout is no longer active when project is public, inactivity timeout action is “logout”, and user is not authenticated to begin with

Visualization

2650: Map: maxBounds no longer visible by default and is added as null instead of object
Map component now has a maxBounds property by default that a user can set two latitude longitude coordinate points to limit a user to only being able to interact between the set max bounds points.

1 Like

Nightly Changelog: 8.1.11-b20210917

Visualization

207: Table: revisions and additions to user available styles and how they are applied
Added new component style props and repurposed some existing style props to better represent the style as defined:

  • headerStyle: Applied to all table column headers. Can be overridden on a style-by-style basis by both the columns [ X ].style and columns[ X ].header.style component properties.
  • headerGroupStyle: Applied to all headerGroups.
  • bodyStyle: Applied top the table body. Mostly good for changing the background color of the table body.
  • footerStyle: Applied to all table column footers. Can be overridden on a style-by-style basis by both the columns [ X ].style and columns[ X ].footer.style component properties.
  • footerGroupStyle: Applied to all footerGroups.
  • selection.style: Applied to the visual selection. Works best for styling only the selected color/border as this is a separate layer than the text showing below the selected display. This does NOT impact the highlight style as the mouse is hovered over the table.
  • pager.style: Applied to the pager container. Mostly good for changing the background color.
  • filter.style: Applied to the filter display.
  • columns[ X ].style: Now applied to the header, cells, and footer of an entire column. Gives the ability to style an entire column separate of the rest of the grid.
  • emptyMessage.style: Applied to the overall empty message display area.

3599: Row Selector mouse events only fire on the border of the component
Fixed an issue with the ‘Row Selector’ component not correctly firing mouse events from scripting.

Platform

2717: Make system.alarm.queryStatus/queryJournal return PyAlarmEvent wrappers automatically
system.alarm.queryStatus() and queryJournal() now wrap their results in a PyAlarmEvent.

Nightly Changelog: 8.1.11-b20210920

Data Model

4420: 7.9 Tag XML exports will lose bindings for Notification Pipeline properties when imported
Tag XML imports from Ignition 7 would lose bindings configured on alarm pipeline settings (active, clear, ack pipelines).

3674: UDT member OPC tags fail to load if their datatype is bound and the tag has a value property
Tags with bound dataTypes will now correctly load when a Value property is set.

Security

4453: Handle missing Content-Length Better in IdpProxyWebServer
Fixed an issue where IdP-based authentication could fail in the designer or vision client if a proxy intercepts Gateway responses and forwards them using chunked transfer encoding.

Virtualization

4478: Perspective Maps: When maxBounds are not set the default values applied are causing issue as user navigates the map or utilizes panTo/flyTo
Max Bounds Map property default value should be undefined to allow for no bounds at all.

Nightly Changelog: 8.1.11-b20210921

Visualization

2722: Exit login button and maker edition banner overlap in login screen on mobile device
The Ignition Maker Edition banner will no longer overlap the “Exit Login” button on the login screen.

2854: Slider visible property only affects slider bar above value
Setting a Slider Component’s meta.visible to false no longer results in part of the slider being visible.

Infrastructure

2735: Designer Launcher dropping down to 256Mb after changing IP Address
The Designer and Vision Client Launchers now always retrieve the latest project properties and gateway settings when launching regardless of how recently they were retrieved.

Data Model

2453: Remote Alarm Pipeline does not drop out on Acknowledge condition when Cleared beforehand
Fixed issue where remote pipeline monitoring was accidentally removing an event after the first update, missing the subsequent updates.

4473: Adding wildcard subscriptions can take 5+ minutes on systems with large tag counts due to repetitive deep-copying of snapshots
Wildcard subscriptions were browsing into tag properties unnecessarily, causing processing delays for large tag sets. This could cause delays in publishing values through MQTT Transmission.

1 Like

Nightly Changelog: 8.1.11-b20210922

Platform

3554: Module with Chinese characters in license file does not calculate license CRC properly
Acceptance of third-party module license (with non-UTF-8 content) now correctly computes and stores the representative checksum.

Enterprise

4144: EAM table binding functions and system.eam. * scripting should not be available on agent gateways
EAM scripting & binding functions are now hidden on Agents and can only be used on Controller Gateways.

Visualization

894: Undo of component deletion always places component at highest z-index among other components
When deleting a component, and undoing the delete, the component is placed at its original z-index.

Nightly Changelog: 8.1.11-b20210923

Visualization

2348: Power Chart / Time Series / Chart Range Selector - Add Y axis tick count and data value format

Adds the ability to adjust the tick label display and the tick count for a user-defined Y axis on the Power Chart, Time Series Chart, and Chart Range Selector. New component properties are exposed to allow for this, and both properties default to a value of Auto (current/default behavior) to allow for backwards compatibility.

General Behavior

When the tick count is Auto, Y axis ticks will be added/removed based on the height of the chart, and the tick spacing is adjusted around whole numbers (if appropriate). When the tick count is set to a numeric value, ticks will be generated precisely at the location where that tick should be shown (divide 100 by the number of ticks, and that “percentage position” is where the tick will be shown on the axis). This does not account for whole numbers, and the value will be very precise to that tick location in the axis. If using the Property Editor, the user can enter their own value of select from the follow suggested values:

“Auto”: “Auto”,

“2”: 2,

“4”: 4,

“6”: 6,

“8”: 8,

“10”: 10

When the tick label format is Auto, the D3 format ~f is used. This creates a fixed point number that will trim any insignificant trailing zeros (1000.00 → 1000 or .100100 → .1001`). The user can also provide a string value that represents a D3 format. If using the Property Editor, the user can enter their own value of select from the follow suggested values:

“Auto”: “Auto”,

“Integer [1234]”: “d”,

“2 Decimal Points [1234.00]”: “.2f”,

“4 Decimal Points [1234.0000]”: “.4f”,

“Comma-Separated Integer [1,234]”: “,.0f”,

“Comma-Separated w/ 2 Decimal Points [1,234.00]”: “,.2f”,

“Percentage [123400%]”: “.0%”,

“Currency [$1,234.00]”: “$,.2f”,

“Hexadecimal (lowercase) [4d2]”: “x”,

“Hexadecimal (uppercase) [4D2]”: “X”,

“Binary [10011010010]”: “b”,

“Octal [2322]”: “o”,

“Exponential [1.234000e+3]”: “e”

Power Chart

Any entry under the axes component property now has axes[ x ].tick.count and axes[ x ].tick.label.format properties available. Additionally, when using the Settings menu at runtime, there are new text fields at the bottom of Edit Axes form for the Tick Count and Tick Label Format values. The tick count will take a string value (if string, treated as Auto) or a numeric value. The tick label format will take a string value and pass it forward. The value must be a valid D3 Format value.

Time Series Chart

Any entry under the plots[ x ].axes component property now has plots[ x ].axes[ x ].tick.count and plots[ x ].axes[ x ].tick.label.format properties available.

Chart Range Selector

The yAxis component property now has yAxis.tick.count and yAxis.tick.label.format properties available.

1571: Label: Text overflow options and shadow not honored
Added textStyle prop to the Label Component. It allows for text overflow ellipsis. To display ellipsis, set props.textStyle overflow: hidden, whiteSpace: nowrap, textOverflow: ellipsis. Also fixes a bug in the style editor where the Text - shadow section of the style editor wasn’t initially expanded if there was already a value present.

2 Likes

Nightly Changelog: 8.1.11-b20210924

Infrastructure

2567: Using keyboard navigation during commissioning skips HTTP Configuration page

Fixed an issue in commissioning UI where keyboard-based actuation of webpage elements (i.e. “Next” button) might generate duplicate submission events.

Nightly Changelog: 8.1.11-b20210927

Platform

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.

Nightly Changelog: 8.1.11-b20210928

Data Model

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

2 Likes

Nightly Changelog: 8.1.11-b20210929

Platform

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.

Nightly Changelog: 8.1.11-b20211004

Enterprise

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.

Nightly Changelog: 8.1.12-b20211007

Data Model

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.

Nightly Changelog: 8.1.12-b20211008

Visualization

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.

Nightly Changelog: 8.1.12-b20211011

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.

Nightly Changelog: 8.1.12-b20211012

Visualization

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.

1 Like

Nightly Changelog: 8.1.12-b20211013

Visualization

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.

3 Likes

Nightly Changelog: 8.1.12-b20211014

Visualization

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.

1 Like

Nightly Changelog: 8.1.12-b20211015

Visualization

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:

  1. 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.
  2. 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.
  3. 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
2 Likes

Nightly Changelog: 8.1.12-b20211018

Data Model

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.