Nightly Changelogs - 2019

We’ve received some requests for an easier way to track changes. We’ll now be posting the changelogs in a single thread here.

7 Likes

Nightly Changelog: 8.0.0- beta.20190107

##Ignition Platform
FB12063 Perspective logging fixes. Added remote level arg to script
Now the appenders levels are set correctly for both the AlterLogging action and script. Added more details to the script hint. Added an arg to the script to set the remote logging level so users can set it back to the default level independently of the client logging level.

FB12118: Client Launcher UX improvements
Auto-add localhost, don’t auto close modals when then lose focus, add option for auto-closing the launcher when launching a client

##Misc
Fix issue with Windows NCL hanging on launch with auto-exit off

##Perspective
FB11309: Allow PyRow to be serialized

FB11975: Added gaurd to prevent property binding to self

FB12050, FB12114: merged session.props.user and sessions.props.securityLevels into session.props.auth which now has the mapped user attributes when logged in

Nightly Changelog: 8.0.0- beta.20190108

Ignition Platform

FB12252: Extended Idp Record Config value max length to Integer.MAX_VALUE

FB11891: Prevent deprecated scripting functions from showing up in hints
Also improves keyboard shortcut OS compatibility in the script console.

FB11911, FB11912: Pack200 removal from C/D scope and build plugins
removed pack200 from gradle build, and module plugin as well as the maven plugin DownloadJarsStep for clients now expects unpacked Jars. JarDownloadServlet now serves up unpacked jars, and the JarFile class now describes unpacked Jars only.

FB12113: Legacy tag conversion 01022019
Includes the following fixes:

  • Fix that prevents udt parameters from being treated as standard tag properties. Also updated the legacy test config.idb to use a udt parameter with the same name as a standard tag property for test purposes.
  • Fixed bug where the _ types_ folder was being converted, but with a different node id

Perspective

FB10978: Bindings on session props can now be refreshed from scripts in the same way as view or component props

Nightly Changelog: 8.0.0- beta.20190109

Ignition Platform

FB11672 Renaming of data type doesn’t propagate change to dependent nodes
Renaming a data type now works as a refactor, updating all dependent nodes with the new name.
Also, in working on this ticket, we fixed a bug where you couldn’t effectively modify the parent type of an instance if the current type didn’t exist.

FB12141 Deleting many tags is slow and FB11579 warning about deleting type definition

Perspective

FB12084: Popups in Edge open to correct size

FB11608: Perspective timezone project setting

FB12031: Default tag provider for the project is used for tag history query bindings when no provider is specified on the tag path

FB12116: Added useful log messages for diagnosing authorization decisions in perspective

For diagnostics on denied project or view access, set logger perspective.ClientSession to debug

For diagnostics on denied gateway-scoped actions, set logger com.inductiveautomation.perspective.ComponentModel to debug

Here are examples of the logs:

Denied Project:

D [p.ClientSession               ] [23:43:25]: Access to project is denied. Diagnostic information: {"permissions":{"type":"AllOf","securityLevels":[{"name":"Authenticated","children":[{"name":"Roles","children":[{"name":"Administrator","children":[]}]}]}]},"webAuthStatus":{"authenticated":false,"securityLevels":[{"name":"SecurityZones","children":[]}]}} session-project=test

Denied View:

D [p.ClientSession               ] [23:39:09]: Access to view New View 4@T[0] is denied. Diagnostic information: {"permissions":{"type":"AllOf","securityLevels":[{"name":"Authenticated","children":[{"name":"Roles","children":[{"name":"Administrator","children":[]}]}]}]},"webAuthStatus":{"authenticated":false,"securityLevels":[{"name":"SecurityZones","children":[]}]}} project=test, session-project=test

Denied Gateway-scoped Action:

D [c.i.p.ComponentModel          ] [23:42:04]: Error running actions. project=test, component=root/Button, view=New View@C
com.inductiveautomation.perspective.gateway.action.ActionDeniedException: Unable to fire action: access is denied. Diagnostic Information: {"permissions":{"type":"AllOf","securityLevels":[{"name":"Authenticated","children":[{"name":"Roles","children":[{"name":"Administrator","children":[]}]}]}]},"webAuthStatus":{"authenticated":false,"securityLevels":[{"name":"SecurityZones","children":[]}]}}
	at com.inductiveautomation.perspective.gateway.action.SecuredAction.runAction(SecuredAction.java:52)
	at com.inductiveautomation.perspective.gateway.model.ActionCollection$ActionSequence$ExecuteActionsTask.lambda$call$0(ActionCollection.java:257)
	at com.inductiveautomation.perspective.gateway.api.LoggingContext.mdc(LoggingContext.java:54)
	at com.inductiveautomation.perspective.gateway.model.ActionCollection$ActionSequence$ExecuteActionsTask.call(ActionCollection.java:246)
	at com.inductiveautomation.perspective.gateway.model.ActionCollection$ActionSequence$ExecuteActionsTask.call(ActionCollection.java:215)
	at com.inductiveautomation.perspective.gateway.threading.BlockingTaskQueue$TaskWrapper.run(BlockingTaskQueue.java:154)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

The diagnostic information is JSON-encoded and contains the permissions required to access the resource and the webAuthStatus which includes any user information (if they are logged in) and the security levels they are granted.

{
  "permissions": {
    "type": "AllOf",
    "securityLevels": [
      {
        "name": "Authenticated",
        "children": [
          {
            "name": "Roles",
            "children": [
              {
                "name": "Administrator",
                "children": []
              }
            ]
          }
        ]
      }
    ]
  },
  "webAuthStatus": {
    "authenticated": true,
    "user": {
      "id": "539ebc26-4790-4447-bad9-a500279a8514",
      "userName": "admin"
    },
    "securityLevels": [
      {
        "name": "Bar",
        "children": []
      },
      {
        "name": "Authenticated",
        "children": [
          {
            "name": "Foo",
            "children": []
          },
          {
            "name": "Roles",
            "children": []
          }
        ]
      },
      {
        "name": "SecurityZones",
        "children": []
      }
    ]
  }
}
1 Like

Nightly Changelog: 8.0.0- beta.20190110

Ignition Platform

FB11935 update system.tag functions and intellihints
Updated some intellihints, and changed the behavior on these items:

  • The system.tag.move function has been split out into copy and move functions
  • system.tag.move: on client side, you had to specify a source provider for each tag to move. Now the project default provider will be used if the provider is not specified (client only). The destination provider must still be specified.
  • system.tag.delete will no longer allow the root or the types folder to be specified for deletion
  • A timeout has been added to system.tag.readBlocking and system.tag.writeBlocking

Perspective

FB12126: Fix system tag provider submanager delegation during reads

Vision

FB10829: Fix Diagnostics titlebar in Vision client

FB12133: Fix label transparency behavior in Vision

Nightly Changelog: 8.0.0- beta.20190111

Ignition Platform

FB12277: OpenID Connect Client ID and Secret are each url encoded as per the spec

FB11891: Fix intellihint background color

Misc

OptionalLibs Manifest now shows correct names
Looks like the pack200 changes didn’t include the correct changes for the optional libs filenames. Now the optional lib manifest properly refers to the jars as jars and not jar.jar.

Load Theme lazily in NamedTheme
This prevents deserialization something containing a NamedTheme from failing on headless Java installs.

Perspective

FB11844 Sparkline stroke width now stays constant on most browsers
Added non-scaling-stroke vector-effect to the polyline. Also re-ordered assignments to ensure they are properly set before they are used.

Vision

FB12013: Fix ConcurrentModificationException in designer startup
Same logic just in a different place to avoid the ConcurrentModificationException

FB12013: Load jxbrowser in modules, rather than always/in the designer

Nightly Changelog: 8.0.0- beta.20190114

Build/Installation

FB12157: Fix gwcmd.sh source for Linux so Bitrock installs can use gwcmd

Misc

Fix NodeEditor.Expander error caused by regression to Lambda

Perspective npm version updates and fix status dir structure
Preparing for SDK example publishing

Perspective

FB10814 Render loading view state display if view path is not configured for embedded views
It’s difficult to tell the difference between when a view path hasn’t been configured or specified, and when we are just waiting for a tag binding to return. Therefore, we just render the loading view state display when the view path is empty in order to cover both cases.

FB11167: View selection flash when tapping elements and empty space within client

FB11044: Session Remains Active During Expired Trial

FB12136: Adding and rendering few more attributes to the root <svg> on perspective import

Nightly Changelog: 8.0.0- beta.20190116

Build/Installation

FB11634: Add WebDev/Web Browser module to zip installers

Ignition Platform

FB12253: Client Secret is now obfuscated in OpenID Connect IdP Configs

  • Add the capability for a WebAuthStrategyAdapter to transform config data from the user before saving
  • OIDC IdP Config UI updated to send back obfuscated client secret unless the user opts-in to change the client secret
  • Exports of OIDC IdP configs include the obfuscated client secret
  • Internal DB stores the obfuscated client secret
  • If there is a problem obfuscating or de-obfuscating the client secret, it will be logged at the debug level of logger gateway.HttpOIDCClientServiceConfig and the effective client secret will be empty string. This will happen for any existing beta users who have saved a plaintext client secret or when importing a config which was exported before this change is merged in. This will also happen if the value for -DencodingKey changes from when it was last obfuscated. The client secret can be corrected by going to the config UI for the IdP and entering / saving the client secret.
  • Removed a bunch of code which provided backwards capability for older beta configs since we do not need to support backwards compatibility between beta versions

Perspective

FB12200: Remove Drawing component(s) from component palette, container type list

FB12273: NPE collapsing folder in binding editor tag browser
Support null TreePath

FB12017: Perspective project property for Identity Provider should have option for "None"

FB10658: Error dialog design cleanup
Specifically:

  • update the arrow icons in the prev/next buttons
  • update blue link color in the details footer
  • replace red error icon with new, flat icon from LaF
  • refine padding to be consistently 16/8 pixels
  • position scrollbar correctly in the panel

FB11844 pers. sparkline stroke width units set to px
Now that non-scaling-stroke is set as a vector effect this needs to be in px units instead of % to prevent harsh scaling of the stroke (which is based on the diagonal length of the viewbox). Also exposed some of these so they can be overridden as props. Perspective Sparkline stroke is no longer affected by differences in the data points by using a non-scaling-stroke vector effect

FB11242 Perspective PDF viewer now renders text

FB12015: Move Perspective project permissions to its own section in Project Properties
Separate Permissions from Perspective General Properties

FB10841: Reduced log severity on closed channel during page send

Nightly Changelog: 8.0.0- beta.20190117

Enterprise Administration

11625 forward port EAM upgrader to handle 7.9 to 8.0 upgrades
Most of this was forward porting, but there were some changes made to UpgradeAssistant and CommissioningServlet to handle 8.0 specific items.

12293: Added a Force Upgrade button for redundant pair remote upgrades
This will allow a redundant pair to still be remotely upgraded even if the nodes cannot communicate with each other. Warnings about losing comm are displayed in a confirm dialog before the forced upgrade.

Ignition Platform

11756: EAM System Tags Issues

  • Fixed issue of clashing tags on EAM controller because the agent was adding system tags at setup instead of startup.
  • Fixed issue of agent system tag folder persisting after the agent was deleted from the controller.

11519, 12242, 12244: Various tag browse fixes

  • FB11519: Have the Designer check if the Tag Browser panel is active on project load.
  • FB12242: Fixed drag and drop within the Vision Client Tags Folder
  • FB12244: Fixed tag expansion for client tags (Vision Client & System -> Client)

12286: Fixed NPE from null license manager

Perspective

12254: Handle bad scope and bad user attribute mappings more gracefully
Bad scope or user attribute mapping config no longer prevents client from launching.

12199: Set direct tag binding to stale value on creation
Pulled the PropertyBinding static values to the interface to re-use them

12092: Always show arrows for time picker
Perspective datetimeInput component now always shows arrows for the time picker.

Nightly Changelog: 8.0.0- beta.20190205

Ignition Platform

12581: Opc tags aren’t responding correctly to tag group deletion

12374: Make invalid projects show on config page

12544: Convert DB tag providers to standard providers on upgrade

12576: Fix NPE when Gateway Scripting Project is not set

Vision

12303: Replace SafeFocusHighlightBorder for deserialization

Nightly Changelog: 8.0.0- beta.20190206

Ignition Platform

12533: Updated Windows Font Config
Updated docs to account for all alphabetic sub charsets instead of the first match only. Simplified by removing unnecessary key/value pairs.

12563: Fix persistence of open on startup/about window toggles

12606: Kill white space in prop editor title bar
Fix prop editor title bar background color when configuration warning icon not present

Build/Installation

11581: Added supplemental certificate support on gateway
Now the Gateway on startup will load supplemental certificates from data/certificates/supplemental into the default trust store (usually cacerts unless otherwise specified). This is helpful to allow ssl connections that use a self signed certificate that doesn’t come from a trusted Certificate Authority.

Things to note:

  • This directory is included in gateway backups.
  • A backup of the default trust store is created on the gateways first start with the JRE and placed as a peer to the default trust store (if cacerts, file is cacerts.bak).
  • Accounts for system props ‘javax.net.ssl.trustStore’ and ‘javax.net.ssl.trustStorePassword’ args to alter the trust store that is operated on as well as the password if its been changed.

Ignition Platform

12602 Fixes “Internal Error” thrown on some gateway config pages

12639: Fix remote history query through realtime tag provider
Just had to uncomment a line that brought it back to working like in 7

12586: JDBC driver improvements
-12559: NPE when creating connection if MySQL connection props undefined
-12198: Create new default profile for MariaDB
-12290: Add MSSQL JDBC driver back to distribution/installers

12552: Mark a tag group modified when changing with the custom editor

12625: Avoid reloading open Vision window when setting 'Open on Start’

12595: Using the same project export function across gateway and designer

11847: Incorrect bookkeeping for composite udt nodes

11596: Improve UDT drag/drop behavior in tag browser

12617: Issues when dragging tags out of udt definitions into other places
We should now be able to drag from a type definition out into a normal folder (including the root)

12592: Fixes 2 issues with redundancy: delete project doesn’t propagate, and NPE when trying to force full refresh.

11679: A few issues with historical tag groups
Upgrades the tag property model to support "resource" value sources- groups of values that are usable by multiple properties, in this case, tag groups.

Misc

12314: EAM remote upgrade: create temp jre and use to run the actual upgrade process

OPC UA discovery service routes
Implements routes for calling FindServers and GetEndpoints discovery services.

Shut down previous connection synchronously when swapping
This fixes a race condition where the shutdown applies
Uncertain_LastUsableValue quality to tags in the shutdown thread during or after the new connection has started up and created monitored items.

Change SystemManager.getHome to more accurate getData

Update menu location for legacy storage page
Somehow the Notifications page was working correctly despite using the same enum as the Storage page.

Perspective

12575: Tag history binding UI fixes

Nightly Changelog: 8.0.0- beta.20190208

Ignition Platform

12627: Edge config for new projects fixed

  • New edge gateway now creates global props on startup
  • Project config edits handle missing global props gracefully for Edge and Standard

12662: Fix Edge project conversion / startup logic

12631: Hide internal version fields in realtime tag provider settings

12615: String in place of enum value can wreak havoc on tags.
2 things:

  1. If an incorrect property value makes its way into a propertyset, get() will return the default value (or the "else" value) instead of throwing an error.
  2. TypeUtilities.toString was calling the localized version of the enum toString (TimeUnits implements Localized). This isn’t right, and is why we have toStringLocalized. I’m guessing there’s a high chance this will change the display of objects in some places, but hopefully not much. Most places should be using the right LocalizedEnumListCellRenderer (or whatever the class is called)

12653: Deserialization error on template due to method removed from BitwiseExpression
Fixed the BitwiseExpression, but also tweaked the deserializer so that this type of problem is reported as a warning and not an unhandled exception.

Misc

Better launcher install abort message on 32-bit windows
Now when installing either launcher on windows if its a 32-bit os a warning dialog appears to the user and aborts the installation. Also the create desktop shortcut option is checked by default.

Nightly Changelog: 8.0.0- beta.20190211

Ignition Platform

12684: Deadlock in redundancy system

12489 projects overview invalid project indicator
This fixes the overview page, and provides an indicator to which projects have invalid parents. It also lays the foundation for indicating that the parent drop down on the project edit page needs to be fixed- and provides a way to display a "prevalidation" message.

12644: Project config UI now only shows applicable fields in Edge

12641, 12574 Keep config pages from blowing up if they don’t have a category or title model.

Misc

Update Embedded JRE to 11.0.2
Updated JRE for gateway, launchers, and clients to azul version 11.29 -> openJDK version 11.0.2

Modbus Driver

12335: pass a modifiable copy to findAndRemoveMetaTagItems()

Perspective

12482: Script actions are blocked in designer if security permissions are set on the action
Ignore SecureAction authorized check if in designer

12474: Client Sessions Unaffected by Deleting a Mounted Page
Allow diff to use pageConfig with no pages

12495: Activate tool and set/clear selection only if there is an active ViewResourceEditor associated with the workspace
Activate component and set/clear its selection only if there is at least one editor tab open

12643: Allow support for periods to be included in folder and file names in Perspectives

12585 convert Trialbar to TypeScript and tweak flex layout

  • Cleaning up CSS prefixes
  • Homepage Responsive Design
  • Trialbar Typescript and Responsive design

11739: Fixed click events not firing for NEF
The numeric entry field was rendering between the direct/protected input and the read only input. Have an outer wrapper div that wraps either listen to events instead.

12660: Prevent NPE from PagesConfigPanel

Nightly Changelog: 8.0.0- beta.20190212

Ignition Platform

11929 identity provider should be unique

11811 NCLs support supplemental certificates across JRE upgrades
Now there is a certificates directory in .ignition/clientlauncher-data which can hold certificates that will be loaded into the default trust store for both the NCLs as well as during the bootstrap process. The latter ensures that the JRE being used to launch a vision client or designer has had the certificate imported into its default trust store before communicating. There are 3 scenarios that this is necessary:

  1. For the launcher to comm with the gateway (achieved by adding certs at the launcher startup)
  2. Launching a client from a gateway where a compatible JRE has already been downloaded
    All certs in the certificate directory are loaded into the default trust store before attempting any comms with the gateway during bootstrap.
  3. When launching clients before a compatible JRE has been retrieved from that or any gateway
    We are on the launcher JRE which still has the certificate required to launch anyways. Once a restart is triggered to bootstrap on the correct JRE the certs are loaded (see option 2)

The certificate directory is generated if it’s missing and a backup of the default trust store is created before being modified in whatever JRE the launcher/bootstraping is running on.

12391: Avoiding error message on tag node deletion

12603: Project config pg no longer has inappropriate options for Edge

Misc

OPC UA cert pages upload and download routes and UI

SFC

12508: Fixed tag browser in SFC editor not refreshing to show latest tags
Also fixes the same issue with the tag selection tree panel in the transaction group where clause.

Vision

12377: DataSetAggregrateFunction returns bad quality instead of throwing exception

Nightly Changelog: 8.0.0- beta.20190213

Ignition Platform

12483: Autoselecting some nodes in the Designer save list to prevent the user from creating orphan nodes
The Designer Save dialog has been modified to autoselect items as needed to prevent orphan project resources.

12028: Identity Provider test login doesn’t automatically pull in newly assigned roles
Replaced cached AuthenticatedUser with up to date user from user source

12702: Designer props panel no longer shows non-Edge settings

12710: Allow for numeric user names

12682: Alarm notification config on Edge now displays

Misc

Implement ExposedTags Namespace

Perspective

12261: Apply the default width and height to the Access Denied display if the useDefault properties are set

12297: Throw ellipsis when username pushes against the Sign Out button
Throw ellipsis on the username when it becomes long enough to push against the Sign Out button.

10941: Kill event bubbling at the Map’s DOM element for the mousedown and touchstart events to keep display anomalies from happening in parent DOM nodes

12493: changing title of pie chart no longer crashes designer, also update amcharts library

Nightly Changelog: 8.0.0- beta.20190214

Alarm Notification

12375: Fix NPE when report datasource is misconfigured

Ignition Platform

12596: add logging, log possible improper resource manifest during import
Projects imported with folders containing resource manifests will now log helpful warnings to aid import failure diagnosis

12694: Fix issue caused when not all fields shown in project config edit pg

12505: Fix designer details status page

12117 Commissioning props moved to separate json

12612: Fix the icon for pipelines

Misc

Updates to opc ua cert pages

Add ‘overridable’ setting to project resources
Resources can now only be overridden by a child project if the resource is overridable, which is true by default.

Modify the check of removing tag folders and children

OPC-UA

12724: ensure FileInputStreams are closed in PKI routes

Perspective

12709: Fixed typo in the perspectives.properties file

12666: Perspective project name Unicode support