We’ve received some requests for an easier way to track changes. We’ll now be posting the changelogs in a single thread here.
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": []
}
]
}
}
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:
- 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.
- 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:
- For the launcher to comm with the gateway (achieved by adding certs at the launcher startup)
- 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. - 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