No Results
v4.3.6

EdgeCore 4.3.6 Release Notes

Production date: March 30, 2021

Last updated: April 12, 2021

What’s New?

The 4.3.6 release introduces the ability to run multiple edgeCore instances from a shared configuration database as well as the support for multiple archives in the autoImport configuration property. In addition, now you can create and run actions directly from the HTML template and insert code snippets into the template. Moreover, this release brings new Backup and Restore sub-permissions, and enhancements to the entitlement report, pages, and visualizations.

Server Administration

Running Multiple Instances from a Shared Configuration Database

This release introduces the ability to have multiple edgeCore instances running from a shared configuration database. Please note that both the configuration database and the authentication database will need to be shared.

The following will be automatically updated:

  • the pipeline view
    However, if users are in a wizard (e.g. two users are editing the same node), there is no indication that the wizard has been modified. As a result, it is possible for users to override each other’s changes.
  • connections
  • constraints
  • client filters
  • rule sets
  • color palettes
  • map layers
  • provisioning

Changes to pages will not be seen until the page is reloaded, so active users will be prompted to reload the browser in order to have the latest configuration.

autoImport Configuration Supporting Multiple Archives

The autoImport configuration property now supports multiple archives, which are processed in a specific order. As a result, a base archive can be deployed with customized partial archives overlaid.
Previously, only a single .zip file was supported.

In addition, folders are now handled as archives. If a folder exists under /exports and has a version.json file, the folder is treated as an archive. The folder is treated as a partial unless it contains a  .full file.

In either local.properties or custom.properties configuration files,  autoImport.archiveName now supports a comma-separated list. You can use files or folders as sources. The imports are processed in order, honoring the choice of whether users should be loaded for all files.

autoImport.restoreUsers=false
autoImport.archiveName=test-content.zip

Pipeline

Preserving the State of Pipeline Nodes on Lost Session

To help you not lose work, the state of partially configured pipeline nodes is now preserved on session expiration.
If a session expires while you are working on a pipeline node (for example, you are creating a new node or editing an existing one), you will be able to resume the wizard with all the settings you had once you log back in.

System Variables

Managing System Variables via API and CLI

System variables can now be created/modified:

Enhancements

HTML Template Improvements

Creating & Running Actions Directly from the HTML Template

Now you can create and run the following actions straight from the HTML template:

  • Tooltip
    Example:

    <button class="btn btn-primary" (mouseover)="showTooltip('This is a tooltip')" (mouseout)="hideTooltip()">Tooltip</button>
  • Copy to Clipboard
    Example:

    <button class="btn btn-primary" (click)="copyTextToClipboard('Hello!')">Copy 'Hello!' to Clipboard</button>

Additionally, you can also create and run the Switch to Page action by inserting a code snippet.

Inserting Code Snippets into HTML Template

The Code Snippets button enables you to import snippets that will:

  • render rows as table
  • render rows as DIVs
  • generate a Select form field
  • insert a button to process the click
  • insert a speedometer gauge
  • perform the Switch to Page action

Migration Tab in the HTML Template Live Help

To help you with the migration issues you may come across when migrating from Angular 1.x or edgeCore 3.11., the Migration tab has been added to the HTML Template Widget Help.

Adding Custom Angular Cell Templates to the AG Grid

Now you can add a custom cell template to the AG Grid. Please note that you need to define columns in the HTML editor, not in JavaScript.

Example

If we enter the following in the HTML editor:

<ag-grid-angular
   class="ag-theme-alpine"
   edgeAgGridAdminTable
   [rowData]="rows$ | async"
   [columnDefs]="coldefs">
  <ag-grid-column
                  field="active"
                  headerName="Active"
                  [cellRendererFramework]="AgGridCellTemplateComponent"
                  [cellRendererParams]="{ngTemplate: activeTpl}">
    <ng-template #activeTpl let-row="params.data">
      <span [ngClass]="{'high': row.active > 1}">${{row.active}}</span>
    </ng-template>
  </ag-grid-column>
  <ag-grid-column
                  field="serverName"
                  headerName="Server Name">
  </ag-grid-column>
</ag-grid-angular>

and the following in the LESS/CSS editor:

.high{color:red}

We will get this result:

Improving Your Code with Lint Checks

To help you identify and correct issues with the structural quality of your code, you will be immediately warned about unsupported syntax, stylistic errors, and suspicious constructs in both the HTML and JavaScript editors.

Security Permissions Improvements

Sub-permissions Added to Backup and Restore Permissions

New sub-permissions have been added to both the Backup and Restore permissions so that you can allow the user to:
– create both full & partial backups
– create only partial backups
– restore both full & partial backups
– restore only partial backups

View About Permission Assigned to All Users by Default

The permission to view the About page is now assigned to the All Users role by default.

Server Administration Updates

Recently Logged-in Users in the Entitlement Report

For both the standalone instance and Command Center, the generated JSON report now shows the number of users who logged in:
– in the last year (“usersLast365”)
– in the last month (“usersLast30”)
– in the last week (“usersLast7”)

JSON Example:

{
  "entitlementMetrics": [
    {
      "timestamp": 1614211200000,
      "clusterName": null,
      "serverName": "instancename",
      "scope": null,
      "name": "userSessions",
      "licensed": -1,
      "active": 7,
      "usersLast365": 2,
      "usersLast30": 2,
      "usersLast7": 2,
      "doClass": "EntitlementMetricDO",
      "id": null
    }
],
  "validation": "$2a$10$EyaxiKwFviuMRM313oygqeNVTrzAymMri5D/.XSNwoPuE.5XBJkD2"
}

Enabling Maintenance Mode

Now you can enable the maintenance mode on the Sessions page.
Once the maintenance mode is on, admin users will be able to log in, and a banner message will notify them that the server is under maintenance.
Already logged-in non-admin users will get a 503 error, whereas those who try to log in will not be able to do so.

Note: When sharing a configuration database, the maintenance mode needs to be set on each server separately.

Improvements to Pages

Selecting an Icon for a Page

When creating a new page or editing an existing one, now you can select an icon for that page from the Select Font Awesome Icon dropdown. Alternatively, you can provide an icon by enabling the Advanced Icon Input Mode toggle switch and entering the icon class name.

Setting the Padding between Visualizations

In Page Options, now you can reduce the width of resizers and paddings around the page. The minimum padding value is 2 pixels, whereas the maximum is 20.

Additionally, if you have a custom theme, you can configure the padding by adding layout.padding=number to the theme’s setting.properties file in [INSTALL_HOME]/static-web/lookandfeel.  By default, the padding is set to 2 pixels.

Note: The padding set in Page Options overrides the theme’s padding for a given page.

Remaining in the Edit Mode When Navigating Pages

To improve your experience, edgeCore now enables you to stay in the Edit mode upon navigating any page.
The View mode is the default mode when you initialize edgeCore. When you change the page mode (you either click the View or the Edit button), clicking on any page in the menu bar will open that page in the last used mode.
When you log out and log back in, the mode will default back to View.

Improvements to Visualizations

Chart Legend Enhancements

  • An option to select the legend position has been added.
    Possible positions are as follows: auto (the position will depend on the dimensions of the visualization), bottom, left, right, and top.
  • If a legend label is greater than 20 %, the label is shortened and three dots are added.
  • If the Show Legend toggle switch is turned off, the Show legend when maximized toggle will be displayed. When this toggle is enabled, the legend will be displayed when the visualization is maximized.
  • An option to set the maximum label width for the pie chart has been added so that the width of large labels can be reduced. By default, the maximum width is 150 pixels.

Disabling Action If Conditions Are Not Met

Actions configured for a visualization can now be displayed regardless of conditions but greyed out if conditions are not met.  When you start adding conditions, you will be able to activate the Always Show Action toggle switch which will display action as disabled when conditions are not met.
Additionally, you can also provide a reason why the action is disabled. The explanation will be shown as a tooltip when a user hovers over the greyed-out action. If no explanation is provided, the tooltip will not be displayed.

Command Center Improvement: About Page Added to the Menu

To easily check which version of the Command Center you are using, go to the hamburger menu > System > About.

Security Updates

The following libraries have been updated:

  • Spring Framework (5.2.13 version)
  • Spring Core (5.2.13 version)
  • Spring Security (5.2.9 version)
  • Hibernate Core (5.4.28.Final version)
  • Apache™ Batik (1.14 version)
  • Apache™ XML Graphics Commons (2.6 version)
  • Apache™ Tomcat (9.0.43 version)

Resolved Issues

  • The issue that caused the CSV parser to add a special character after parsing has been resolved.
  • The issue where the partial backup did not capture subdirectory files when HtmlTemplate dependency path included subdirectories has been resolved.
  • The issue that caused the cache database (H2) to fail to initialize when the configuration database and authentication database were set to use a non-h2 database has been resolved.
  • The issue that caused partial backups not to include pages has been resolved.
  • The issue where resizing table columns to the left resulted in blank space on the right side has been resolved.
  • The issue that caused the Kiosk mode to load the first page over and over again has been resolved.
  • The issue that caused all other charts, except for pie and bar charts, not to animate has been resolved.
  • The issue where job status feeds got incorrectly labeled as user defined has been resolved. As a result, the feeds would appear in the pipeline even if the admin turned Show system nodes off.
  • The issue that caused the marquee visualization to fail to fire actions has been resolved.
  • The issue with dynamic constraints has been resolved. The values did not change when the data was updated.
  • The issue where changing the page layout type deleted the gap between visualizations has been resolved.
  • Rendering issues that arose when discarding layout changes have been resolved.
  • The issue where creating a new folder inside an existing one resulted in the old folder not being expanded.
  • The issue where there was no visual representation when HTML was selected by default on the Renderer tab in the HTML Template visualization has been resolved.
  • The issue where page access metrics were triggered for every page variable has been resolved.
  • The issue that caused the Default Value dropdown on the Page Variable page not to get populated with dynamic string constraints has been resolved.
  • The issue that caused syntax errors in rule scripts not to be adequately reported has been resolved.
  • The issue where too big secured variables caused customAuth.js to fail has been resolved.
  • The issue with constraints that use number as a default value has been resolved. When selected, the default value was not applied, it ended up being replaced with the .0 value instead.
  • The issue where an unbound number configured for the detail dataset was adding  .0 to all IDs and thus causing the feed to fail has been resolved.
  • The issue that prevented the admin from creating a new LDAP connection when there was already an existing connection has been resolved.
  • The issue that prevented web content feeds from being saved in case of an error has been resolved. Now, if all wizard steps allow for a prompted save in the event of validation errors, the user can choose to proceed with the save or cancel it and address the errors. However, the wizard cannot be saved if the Detail Dataset Mappings step in the For Each transform fails validation. In this case, the user will get one of the following error messages:
    – “You must map at least one Detail Dataset node variable to an attribute on the Master Dataset.
    Only one Master Dataset Attribute can be mapped to a Detail Dataset node variable.
  • Reporting whether credentials are validated when editing/validating a connection has been improved. Based on the connection’s configuration, a successful connection test will result in one of the following messages:
    – Default (any connection that doesn’t have a Credentials field): “Connection test was successful.
    – Has Credentials field but is not a database connection: “Connection test was successful. Host is reachable, but connection credentials were not tested.
    – Has Credentials field and is a database connection: “Connection test was successful. Host is reachable and credentials are valid.”
  • The issue where changing row or column size in the Grid Layout resulted in a console error has been resolved.
  • The issue where adding the Switch to Page action to a visualization resulted in various console errors has been resolved.
  • The issue where lowering the browser page width caused visualizations to go blank has been resolved.
  • The issue that caused chart visualization field names to become shortened in the renderer editor has been resolved.
  • The issue where adding a Run Script action to a table resulted in console errors and prevented automation from being triggered has been resolved.
  • The issue where not saving changes and clicking X changed the connection that was selected in the pipeline navigation has been resolved.
  • The Save button on the Configure Visualization Instances page is now Save and Close.
  • The issue where a hidden page in a folder could not be selected for the Switch to Page action has been resolved.
  • The issue that caused the server to make requests between every step when creating/editing feeds that have delayed responses has been resolved.
  • The issue that caused the Conditions tab to go blank for actions where no page variables were declared on the page has been resolved.
  • The issue that caused taskId to be displayed as an integer instead of a string in the Jobs System Metrics has been resolved.
  • The issue in the Edit Constraint dialog where the numbering label in the bottom right displayed the object name instead of 0 when no results were available has been resolved.
  • The issue with the Dataset Lookup icon in the For Each transform has been resolved.  Upon clicking the lookup icon and selecting a dataset, the selection was not applied.
  • The issue with missing translations on the Confirm Refresh dialog has been resolved.
  • The issue that caused the backup and download buttons and a portion of the screen to be cut off when edgeCore was not run in full screen has been resolved.
  •  The issue where the LDAP domain created on one instance could not be edited on another instance sharing the same configuration database has been resolved.
  • The issue that prevented the admin from creating a feed when a connection was made on another instance sharing the same configuration database has been resolved.

Known Issues

  • Cache Compatibility (MySql / H2 / Oracle / Microsoft SQL Server)
    EdgeCore supports using H2 by default, but the system can be switched to use a MySQL Database, Oracle Database, or Microsoft SQL Server as the CacheDB. If an export is restored, any SQL Transforms should be reviewed, as H2 specific query syntax will need to be converted to MySQL, Oracle, or SQL Server syntax. There is a script utility that reports some of these issues, and the script itself can be extended to report which Transforms reference syntax that requires updates.
  • Custom Login Page Compatibility
    Login pages built on versions prior to EdgeCore v4.1 are not compatible. An upgrade script is included to help stash custom login pages into ‘static-web/login-pre4.1’ and the customizations will require manual migration to the new default template.
  • HTML Template Visualizations
    Based on the version you are upgrading from, the following issues could cause you to need a rewrite to your HTML Template Widgets:
    – Due to the significant upgrade to Bootstrap 4, Glyphicons are no longer included. If you have custom HTML Templates that use them, in v3.11 they will all be empty.
    – Due to the upgrade to Angular 9, HTML Templates that used AngularJS 1.x syntax will have to be rewritten.
  • Common Table Expression ‘WITH’ Clauses
    EdgeCore uses the H2 database in support of the SQL Transforms. SQL that uses Common Table Expression (CTE) ‘WITH’ clauses have been identified as causing two issues.
    – Lock Timeouts: Transforms fail to run as temporary tables fail to be cleaned up.
    – Memory Leaks: The temporary table results are not being cleaned up properly in all instances, and it will trigger Out Of Memory on the JVM.
  • Errors connecting to 3rd party https webdata/webcontent sources
    EdgeCore fails to connect over HTTPS to backend data sources. In this case, one likely solution is to enable SNI. This is a global configuration, so on some systems it might have the opposite effect.
    # — SNI Options; may need to be enabled (ENABLE_SNI=true) when connecting to third-party https webdata/webcontent sources.
  • Issues with using Auth/Cache DB with MySQL 5.7 (MariaDB 10.1.x – 10.3.x)
  • Cluster configuration fails to render LDAP domains on content instances after restore on primary admin instance.
  • Cluster configuration restore may require existing nodes to be removed and re-registered after a full restore.
  • If you are having issues with icons loading in edge, enable headless Java by adding CUSTOM_JAVA_OPTS=-Djava.awt.headless=true in environment.bat/.sh .
  • Restoring snapshots strips the Admin account of all its permissions and content. Earlier 4.3.x versions are also affected.
  • Server hard restart requires the license to be reloaded.
  • If there is only one Click Item Action with condition(s), the Always Show Action toggle switch (when enabled) will cause the action to be triggered even if the condition is not met.

 


Terms | Privacy