Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Appanvil karma designer
summary YOU ASKED, SO WE DELIVERED Dashboard Release September 20242024_09 BackUp & Restore     Download Now     Ken Miller CTO I'm pleased to share with you our latest dashboard release, pi.2024_09 which is available to download now.In this release, we've taken the opportunity to introduce Custom Fields, something a number of customers have been asking for. We've also made some changes around Editable Tables, Exports and number of Performance improvements too - but that's not all. As always, have a read through the release notes in full to learn of all the changes before you upgrade, just to make sure its right for you and your end users. Highlights - Custom Fields- Editable Table - Multiple Performance Improvements- Exporting Improvements- Analytics Chart Improvements 5 New Features 3 Changes 10 Bug Fixes 11 Customer Requests
page{"premium":true,"id":"FMkTud2JrHXMpzIylO0bD","name":"page","children":[{"name":"section","params":{"backgroundSize":"cover","gap":10,"background":"#2d2f4cd4","padding":8,"image":{"value":"https://images.unsplash.com/photo-1491582325207-80d06869fb3d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwzMzg3MzF8MHwxfHNlYXJjaHwxMnx8bmV3JTIweW9ya3xlbnwwfDB8MXxibGFja19hbmRfd2hpdGV8MTY2MjEyNDU2MA&ixlib=rb-1.2.1&q=80&w=1080","target":"_self","type":"link"}},"children":[{"children":[{"children":[{"name":"text","children":[],"params":{"value":[{"type":"paragraph","children":[{"letterSpacing":0,"fontSize":20,"fontWeight":700,"fontFamily":"Poppins, sans-serif","text":"YOU ASKED, SO WE DELIVERED","lineHeight":"10px","color":"#ffffff"}]}]},"id":"rNX3qXaG8Q4ewjRCBgZcx"},{"params":{"value":[{"type":"paragraph","children":[{"text":"Dashboard Release ","letterSpacing":0,"fontWeight":700,"fontFamily":"Poppins, sans-serif","color":"#ffffff","lineHeight":"90px","fontSize":64}]}]},"children":[],"name":"text","id":"nr3C5FnGCNgZlayR21QHV"},{"children":[],"params":{"value":[{"type":"paragraph","children":[{"children":[{"fontFamily":"Poppins, sans-serif","letterSpacing":0,"text":"September 2024","lineHeight":"unset","color":"#ffffff","fontSize":24,"fontWeight":700}],"type":"paragraph"},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","letterSpacing":0,"lineHeight":"unset","color":"#ffffff","text":"2024_09","fontSize":16}]}]}]},"name":"text","id":"DmpJb_rO3Qj4l9Aj66HdK"},{"name":"divider","params":{"templateId":"solid long","color":"#ef5693","alignment":"start","fontSize":24,"fontColor":{"light":"#000000","dark":"#ffffff"},"height":1,"borderStyle":"solid"},"children":[],"id":"TAZcq3EgP-1KdJ2bsdXuE"},{"name":"button","params":{"templateId":"regular button","label":"BackUp & Restore ","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://panintelligence.atlassian.net/wiki/spaces/PD/pages/376307765/Backup+and+Restore+of+the+Dashboard","target":"_blank","type":"link"}},"children":[],"id":"hfpGR1FJxGFfePSJR4g7T"},{"name":"button","params":{"templateId":"regular button","label":"   Download Now    ","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://panintelligence.atlassian.net/wiki/spaces/PD/pages/1258652085","target":"_blank","type":"link"}},"children":[],"id":"ImDnaOMj9XpCxaDqyPZPk"}],"params":{"verticalAlignment":"center","borderRadius":{"btl":0,"btr":0,"bbl":0,"bbr":0,"all":0,"isIndividualCorners":false},"padding":0,"gap":20},"name":"column","id":"jm4mo6d7GzYx3hUB4l-F0"},{"name":"column","children":[],"params":{"gap":20,"padding":0,"borderRadius":{"isIndividualCorners":false,"all":0,"bbl":0,"bbr":0,"btr":0,"btl":0},"verticalAlignment":"center"},"id":"yBKq_7TPH5d1DV8hFdhLu"},{"children":[],"name":"column","params":{"gap":20,"padding":0,"verticalAlignment":"center","borderRadius":{"bbl":0,"all":0,"btl":0,"bbr":0,"btr":0,"isIndividualCorners":false}},"id":"fH6MHBuk3I0R4it7BRCGP"},{"children":[],"params":{"verticalAlignment":"center","borderRadius":{"btl":0,"bbl":0,"bbr":0,"isIndividualCorners":false,"all":0,"btr":0},"padding":0,"gap":20},"name":"column","id":"_FPGEp6mQPRJJvPIB6VPD"},{"name":"column","params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"btl":0,"all":0,"btr":0,"bbl":0},"verticalAlignment":"center","gap":20,"padding":0},"children":[],"id":"mJWfn1yDf0yleGusTvyDV"},{"name":"column","params":{"verticalAlignment":"center","gap":20,"borderRadius":{"bbl":0,"btr":0,"bbr":0,"all":0,"btl":0,"isIndividualCorners":false},"padding":0},"children":[],"id":"3WBEHbIwEeCHcL3oWU6bg"}],"name":"row","params":{"gap":100,"padding":10,"minHeight":200,"borderRadius":0,"layout":[1]},"id":"mbQy4dSTfKlyYK-9k0_SM"}],"id":"AazdKjV1KYMbgvQPAld6a"},{"id":"iPYoTT8UrrUFlXqDlVg1m","params":{"background":"#ffffff","padding":22,"gap":10},"children":[{"id":"HaE0KXsm3rDEJhjTV7Mjx","name":"row","children":[{"id":"VaA-Y-CIV4m2ogQe_Sqmo","name":"column","children":[{"name":"image","params":{"alignment":"center","height":400,"position":"center center","borderRadius":{"all":5,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"att1673265190","target":"_blank","type":"attachment"}},"children":[],"id":"T2bXrsdBHviCyZtS2HZvV"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"0HIQC86K7mXpaQnPu4lsM","name":"column","children":[{"name":"text","params":{"value":[{"type":"paragraph","children":[{"text":"Ken Miller","letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c"}],"align":"left"}]},"children":[],"id":"pHAKnX_bCCwJ0kzgKbWXi"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"text":"CTO ","letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18}],"align":"left"}]},"children":[],"id":"l_VOVkhnKQUZUw-ve2Wf0"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"lineHeight":"24px","letterSpacing":0,"text":"I'm pleased to share with you our latest dashboard release, ","fontFamily":"unset","fontSize":16,"color":"#555555"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"fontWeight":700,"text":"pi.2024_09 ","color":"#ef5693"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"text":"which","color":"#555555"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#000000","text":" "},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"text":"is available to download now.","color":"#555555"}],"align":"left"},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":""}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"In this release, we've taken the opportunity to introduce Custom Fields, something a number of customers have been asking for. We've also made some changes around Editable Tables, Exports and number of Performance improvements too - but that's not all. "}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":""}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"As always, have a read through the release notes in full to learn of all the changes "},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"before","fontWeight":700},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":" you upgrade, just to make sure its right for you and your end users."}]}]}]},"children":[],"id":"3yPpnPcG9Ua1cMKx_-oPx"},{"name":"button","params":{"label":"","size":"medium","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#414141","label":"#ffffff"}},"hover":{"colors":{"background":"#000000","label":"#ffffff"}}},"icon":"linkedin-in","link":{"value":"https://www.linkedin.com/in/ken-miller-bb77975/?originalSubdomain=uk","target":"_blank","type":"link"}},"children":[],"id":"YkQiC1UEdSABfAG30yCAE"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"zQPv9B1ZIKSgIEL2-TqyZ","name":"column","children":[{"name":"image","params":{"alignment":"center","height":300,"position":"top center","borderRadius":{"all":5,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"att1698562062","target":"_blank","type":"attachment"}},"children":[],"id":"HC2565mrpH6QIPWrXG9rq"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"uFI2qIqzCdlp4soZcoFKh","name":"column","children":[{"name":"text","params":{"value":[{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c","text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c","text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"fontWeight":600,"fontSize":28,"color":"#2c2c2c","text":"Highlights"}]}]},"children":[],"id":"StFraL4oyQVb2F1-fMUdr"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"- Custom Fields","letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18}],"align":"left"},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Editable Table "}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Multiple Performance Improvements"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Exporting Improvements"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Analytics Chart Improvements"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":""}]}]}]},"children":[],"id":"lDEf-U_uv7DU3v6czqDnR"},{"name":"spacer","params":{"space":10},"children":[],"id":"iLlGX7VLo5DPMdB15Nsu8"},{"name":"spacer","params":{"space":10},"children":[],"id":"CEa3nvn4dCUclBcV0LcGx"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"6IYCbdH0yACltgbuUqUsV","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"TC07p_TJiJqkld5i-FtRF","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}}],"params":{"layout":[1,1,1,1],"gap":35,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}}],"name":"section"},{"params":{"background":"#393d4f","gap":10,"padding":0},"name":"section","children":[{"children":[{"name":"column","children":[{"name":"card","children":[{"children":[],"params":{"value":[{"children":[{"color":"#6fceb4","fontFamily":"Montserrat, sans-serif","fontWeight":700,"text":"5","fontSize":54}],"type":"paragraph","align":"center"}]},"name":"text","id":"x8h3JtbaitH4rONaExd2J"},{"children":[],"name":"text","params":{"value":[{"children":[{"text":"New Features","fontSize":20,"fontFamily":"Montserrat, sans-serif","color":"#ffffff"}],"type":"paragraph","align":"center"}]},"id":"lSiInwGpA8cK6ew5Fkmlz"}],"params":{"padding":20,"gap":10,"borderRadius":{"bbl":0,"bbr":0,"btr":0,"isIndividualCorners":false,"all":0,"btl":0},"hover":"elevate"},"id":"8sGgpAEhoNbWpufDnX9Is"}],"params":{"padding":0,"verticalAlignment":"center","gap":20,"borderRadius":{"all":0,"btr":0,"isIndividualCorners":false,"btl":0,"bbl":0,"bbr":0}},"id":"vxQl8_xUTLUeSdy6Zj667"},{"name":"column","children":[{"name":"card","children":[{"params":{"value":[{"type":"paragraph","children":[{"fontWeight":700,"text":"3","color":"#4bb9d2","fontFamily":"Montserrat, sans-serif","fontSize":54}],"align":"center"}]},"children":[],"name":"text","id":"YCgKCdTm1qwKX5q1EuCdr"},{"params":{"value":[{"align":"center","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","text":"Changes"}],"type":"paragraph"}]},"name":"text","children":[],"id":"BR4va-GpZlAJOp2mwMH-1"}],"params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"btr":0,"btl":0,"bbl":0,"all":0},"gap":10,"hover":"elevate","padding":20},"id":"18AFcFB160BbE0iQeYr8c"}],"params":{"borderRadius":{"bbl":0,"bbr":0,"isIndividualCorners":false,"all":0,"btr":0,"btl":0},"verticalAlignment":"center","gap":20,"padding":0},"id":"l-GJ3YT3H_VJSsOjq70wP"},{"params":{"gap":20,"borderRadius":{"all":0,"bbr":0,"btr":0,"btl":0,"bbl":0,"isIndividualCorners":false},"verticalAlignment":"center","padding":0},"children":[{"name":"card","params":{"gap":10,"borderRadius":{"bbr":0,"isIndividualCorners":false,"all":0,"bbl":0,"btr":0,"btl":0},"padding":20,"hover":"elevate"},"children":[{"params":{"value":[{"type":"paragraph","align":"center","children":[{"fontWeight":700,"color":"#8871f9","fontSize":54,"text":"10","fontFamily":"Montserrat, sans-serif"}]}]},"name":"text","children":[],"id":"OLpC1-Pgjlm5sO19zrQ39"},{"params":{"value":[{"align":"center","type":"paragraph","children":[{"text":"Bug Fixes","fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif"}]}]},"children":[],"name":"text","id":"9mMYPgwoc1O74DZkegvHw"}],"id":"r5axRw3H73kS5E_cIjBvm"}],"name":"column","id":"zXI-oq_sWnVXrhI0dB3so"},{"children":[{"params":{"borderRadius":{"bbl":0,"bbr":0,"btr":0,"btl":0,"all":0,"isIndividualCorners":false},"gap":10,"hover":"elevate","padding":20},"name":"card","children":[{"name":"text","children":[],"params":{"value":[{"children":[{"fontFamily":"Montserrat, sans-serif","text":"11","fontSize":54,"fontWeight":700,"color":"#5098fa"}],"type":"paragraph","align":"center"}]},"id":"7DNl9bkskIgNrLnsUqDjN"},{"name":"text","children":[],"params":{"value":[{"align":"center","type":"paragraph","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","text":"Customer Requests"}]}]},"id":"YLmi5VfiWq6zAkHD5bIWH"}],"id":"OWVeUSdsPsJFgJV2KFu6M"}],"name":"column","params":{"verticalAlignment":"center","gap":20,"borderRadius":{"btl":0,"all":0,"bbr":0,"btr":0,"isIndividualCorners":false,"bbl":0},"padding":0},"id":"3eUuDQUJ_7Wt3H0ogN0gG"},{"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"isIndividualCorners":false,"btr":0,"bbr":0},"gap":20,"verticalAlignment":"center","padding":0},"name":"column","children":[],"id":"LFnVMjeI8jdrjJ5UCbCpq"},{"params":{"borderRadius":{"bbr":0,"isIndividualCorners":false,"bbl":0,"all":0,"btl":0,"btr":0},"verticalAlignment":"center","gap":20,"padding":0},"name":"column","children":[],"id":"FotJeCTUtI5G5on3410IY"}],"params":{"gap":40,"borderRadius":0,"layout":[1,1,1,1],"minHeight":200,"padding":0},"name":"row","id":"d6_mAzNbYQvSXQvqfrwO7"}],"id":"hBpUSNSybAXZlGhjE3HRg"}]}

Table of Contents
minLevel1
maxLevel6
include
outlinefalse
indent
exclude
typelist
class
printablefalse
  • 🗣️ icon is used to highlight the Customer Request tickets

  • The 2024_09 release contains x1 Schema change


Note

Please note: N.B. We have revised the minimum server requirements for a production system node. This also includes a recommendation recommended change to change environment variables .Information about these requirements: is included on this release notice https://panintelligence.atlassian.net/wiki/spaces/PD/pages/edit-v2/1720322843#SERVER-REQUIREMENTS - see HERE for more information.

NEW FEATURES

Custom Fields (BETA) 🗣️

-

29554

Custom Fields

We’ve added an innovative way to unlock key-value data in your databases which has traditionally been difficult to report on.

Known as Custom Fields, you can now provide additional configuration to have the Dashboard create objects automatically from the key-value data where previously you would have needed to manually create these for each item. Click HERE for more information on the Custom Fields feature.

Info

When opting to use a BETA feature, we always recommend doing so in a Test environment first, ensuring you are familiar with the feature before you use it in your Production instance. We would encourage you to reach out to your Customer Success Manager to discuss such features, and arrange additional support from our Professional Service team, who can assist with introducing the features into your instances.

Single Chart Word Export - Performance Improvement (BETA) 🗣️

pi#2438

29822 & 32731

Exporting - Word

We’re excited to offer a completely rebuilt Word (docx) export functionality which is almost instant and reflects any changes you make to charts on your screen (including legend selection).

You can try it out by enabling the beta feature BROWSER_WORD_EXPORT (in pancredit_parameters table) and we’d love to hear your feedback and incorporate feedback into our upcoming releases. At present it only supports certain chart types (highcharts) which doesn’t include tables, card charts, maps. Any unsupported will simply fall back to the existing export functionality.

Example of the section from the new Word output:

Screenshot from 2024-08-15 09-23-13.png

 

Improved Preview Of Chart Headings - When Categories Load/Refresh 🗣️

pi#2532

31377

Category Preview

Before charts are fully rendered, we populate the cell with the Chart Title to give an indication of what is loading in. Previously, this was just the Chart Name but now this preview will more closely resemble the panel heading that will appear when the chart fully loads. It will show some of the icons that will be displayed as well as the title/subtitle appropriate for that chart. Replacement cannot be done at this stage meaning any form of replacement within the title/subtitle will result in the preview not including that element. Translations, however, are available so you can expect any translated values to be represented in the accurately.

New User/Role Permission (For Admin Users) - To Access The API Configuration Tab 🗣️

pi#2524

24595 & 31607

User/Role Permissions

A new User/Role permission has been added at the Admin level, to determine whether or not the User is allowed to access/edit the configuration within the APIs tab. The new “edit apis” permission defaults to ‘True’ for Admin users at the User Permission level and ‘False’ for Roles.

JDBC Driver - Class Isolation 🗣️

pi#2489

31482

Drivers

JDBC drivers are now loaded into a separate class-loader from system libraries, significantly improving the chances of untested drivers being compatible. As part of this, the Apache Drill driver has been included in the default distribution since this was a driver which had such an issue previously.

CHANGES

Exporting - Enhanced Single Chart PDF & PowerPoint (Performance Improvements) - REMOVED FROM BETA

pi#2600

-

Exporting - PDF & PowerPoint

Our greatly enhanced, rebuilt pdf and ppt exports for single charts have been enabled by default in this release. If you experience any issue please let us know, for a limited time you can switch back to the old mode by using the beta flag OLD_PDF_EXPORT and OLD_PPT_EXPORT.

Exporting - Enhanced Single Chart PDF & PowerPoint - A Drill Down Chart

pi#2599

-

Exporting - PDF & PowerPoint

Resolved a Known Issue with exporting drilldown-level charts, when using the enhanced Single Chart PDF & PowerPoint export functionality - a Known Issue with the August 24 release.

When a user exports a chart at a drilldown level, the export will now correctly capture the chart from the appropriate hierarchy level, provided the chart type is supported. If the chart type is unsupported, the export will automatically revert to using the renderer service.

Editable Tables - Improved Performance When Sending All Data 🗣️

pi#2545

32019

Editable Tables

By removing some additional variable replacement that wasn’t useful we’ve improved the performance of editable tables. Especially when sending large volumes of data.

Editable Tables - Page Resize & Other Changes Causing Duplicate Data To Be Sent 🗣️

pi#2550

32019

Editable Tables

Resolved an issue where page actions such as a resize could result in duplicate rows of table data could be sent to the editable tables endpoint.

Reports - All Charts Load In Parallel - Improved Performance 🗣️

pi#2539

31184

Reports - Performance

Improved report performance by allowing each chart within a report to load in parallel. This does not affect how the charts are rendered, only how they are returned from the back end. Report performance logs have been updated to display the loading times for each individual chart, as well as an overall loading time, which will now be lower due to the requests for individual charts being asynchronous.

Schedules - Improvement Reliability When Scheduling Tables (Excel Format) 🗣️

scheduler#88

31192 & 31778

Scheduler & Exports

Enhanced the reliability of scheduling tables in Excel format by implementing additional checks to ensure the file's integrity before returning it to the scheduler, along with improvements in naming conventions, increased logging, and better error handling.

Analytics - Unable To Save Analytics Model

pirana#52

31872

Analytics

Despite having the necessary permissions, Admin Users (other than Super Admin) were unable to save Analytics models to the Data Connection, due to a CORS setting issue.

Analytics - Encoded Values Appearing On Analytics Charts

pi#2536

31871

Analytics

Comparators like ‘>=' and special characters like '&’ would appear HTML encoded on Analytics Charts.

Password Reset - Invalid Details Led To Exception

pi#2634

-

Password Reset

Using the password reset function with invalid details previously lead to an exception being displayed.

Organisation - Incorrect Organisation Name Showing In The Configuration Panel

pi#2648

33177

Organisations

Within the Organisations Configuration Panel dropdown list, users will now only see Organisation values where they are either an admin or have 'schedule' permission for those Organisations. If they are an admin, all content will be displayed relating to those Organisations, otherwise an error will be returned that informs the user that they do not have access.

Security - Resolved some issues with CORS settings

pi#2615

-

Security

Resolved an issue where the CORS settings were not being applied correctly.

Note

N.B if you are using CORS (browser based api access) it will not support wildcard hosts defined in the trusted hosts. We recommend api access is done via a server side technology which is not affected by this change.

Performance - Several Performance Improvements 🗣️

pi#2666 & pi#2625

-

Performance

A number of areas of performance improvement were identified and implemented

Translations - Several Improvements To Enable More Translations 🗣️

-

32769, 32816, 32821, 31377

Multi Lingual

A number of additional areas where translations occur in the dashboard have now been added.

SCHEMA CHANGES

 

Description

GitLab

ZenDesk

Column

Column ‘edit apis’

  • added to mis_users and mis_roles tables

pi#2524

24595 & 31607

User Roles / Permissions

SERVER REQUIREMENTS

The following data was created by load testing a pi server running on AWS Fargate.  Load was created by automatically logging users in / out of the server.  Additionally manual testing was performed during the load to observe actual performance within the system.   

Explanation: 

 This testing was performed on the September 2024 Dashboard version.  We had noticed a degradation in performance in this version particularly in the June, May and August releases. 

This is not attributed to any one particular change, but rather is down to several different events / changes ; 

Updates to frameworks / libraries 

  • Java 

  • Tomcat 

  • Grails 

  • Angular 

Removal of some server level caching , to make provision for horizontally scaling deployments 

Redis for maintaining session across application nodes 

Multi-lingual additions 

New category object (filter) features 

Organisations 

Linked Data connections 

Custom field logic 

 

For previous releases, the recommendation for the sizing of a single application node for nominal load was given as 1 vCPU and 2GB RAM 

We have tested additional combinations and our explanations, results and conclusions are below. 

There have also been two performance related code changes made in the September release. 

  • Better handling of encrypted variables 

  • Application Optimisation to reduce requests when refreshing the page 

  

The chart below logs the output produced by the dashboard (MIS_AUDITS) and shows the number of chart requests served by the dashboard per minute.  We use other metrics – but this served rate has proven to be highly correlated to performance and the user experience when interacting with the system.  The vast majority of requests are serving charts.  We tested the ability to perform configuration actions at the same time. 

image-20241014-072615.png

The green band shows the high load areas we observe on customers dashboards that run on our Pi SaaS instances. 

The pink line shows the point of instability we noticed on the pre-release September version, that caused nodes to become unstable.  We were able to observe this consistently, and this was before the code fixes were applied and on a node with 1vCPU and 2GB RAM. 

We used a repository with volumised users, categories, organisations and data connections.  The repository also included (and used) secured variables. 

On these runs we altered the number of vCPU’s, RAM and maxThreads environment variable. 

Matrix 

 

Run 

vCPU 

RAM (GB) 

Max Threads 

Observed 

20 

System hit a limit at 170 charts served per minute.  The server remained stable at this point, and when load was reduced continued to operate efficiently. 

30 

The system performed well and was able to perform to ~350 chart requests. The server remained stable 

40 

The system performed well and was able to perform to ~400 chart requests. The server remained stable 

 

 

50 

The system was still able to perform to ~350 chart requests per minute, but the observed performance was significantly reduced. 

40 

The system was significantly slower even whilst no load was provided.  We struggled to load the system beyond ~120 charts per minute.  The server did remain stable. 

40 

The system was able to perform ~470 charts requests per minute, was stable and user experience was good even while loaded.  It was observed that the additional 4GB of RAM was not used by the system. 

40 

Following test 6, we re-performed test 5 to confirm that the additional 4GB of RAM was unnecessary, and the experience on this test 5 and 6 was comparable. 

2 load balanced * 2vCPU 

4GB 

40 

Where able to show that the resources where effectively run over load balanced nodes, and achieved ~1,000 charts per minute, and the solution was very stable even under this load. 

As Above 

 

 

Confirmed that the system could be loaded and unloaded without effect. 

Recommendations 

Our current recommendation is that a pi Node should be as follows. 

Minimum Requirements 

2vCPU 

4GB RAM 

Configuration Changes Recommended Settings

We recommend - the following configuration change.

Tomcat MaxThreads should be set to the same value as the repository MaxConnections (our recommended value is 40)

PI_TOMCAT_MAX_THREADS = 40

PI_TOMCAT_MAX_CONNECTIONS = 40

Also with the increase in memory to 4GB, you should make sure 3GB is allocated to tomcat, leaving 1GB for the operating system.

PI_TOMCAT_MAX_MEMORY = 3072