Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Appanvil karma designer
summary Dashboard Release January 20252025_01 BackUp & Restore     Download Now     Ken Miller CTO I'm pleased to share with you our latest dashboard release, pi.2025_01 which is available to download now - pi.2025_01 In this release, we've taken the opportunity to address lots of our little bug fixes, introduced changes on features such as multilingual, exporting improvements and tackled a series of vulnerabilities too.As always, have a read through the 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 - Item 1- Item 2- Item 3 5 New Features 47 39 Changes & Maintainance 3 Schema Changes 2 Key Notifications
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":"","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":"January 2025","lineHeight":"unset","color":"#ffffff","fontSize":24,"fontWeight":700}],"type":"paragraph"},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","letterSpacing":0,"lineHeight":"unset","color":"#ffffff","text":"2025_01","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":36,"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, which is available to download now - ","fontFamily":"unset","fontSize":16,"color":"#555555"},{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"fontWeight":700,"text":"pi.2025_01 ","color":"#ef5693"}],{"lineHeightalign":"24pxleft"},{"letterSpacingtype":0,"fontFamily":"unset"paragraph","fontSizealign":16,"text":"which"left","colorchildren":"#555555"},[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#000000#555555","text":""}]},{"type":"paragraph","align":"left","children":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"text":"is available to download now.","color":"#555555"}],"aligntext":"left"},{"type"In this release, we've taken the opportunity to address lots of our little bug fixes, introduced changes on features such as multilingual, exporting improvements and tackled a series of vulnerabilities too."}]},{"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 "}]},{"type":"paragraph","align":"left","children":[As always, have a read through the 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."}]}]}]},{"typechildren":"paragraph"[],"alignid":"left3yPpnPcG9Ua1cMKx_-oPx"},"children":[{"lineHeightname":"24pxbutton","letterSpacingparams":0,{"fontFamilylabel":"unset","fontSizesize":16"medium","colorshape":"#555555circular","textalignment":"As always, have a read through the 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."}]}]}]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"3yPpnPcG9Ua1cMKx_-oPx"}],{"nameparams":{"button","paramsborderRadius":{"labelall":0,"btl":0,"sizebbl":0,"mediumbtr":0,"shapebbr":0,"circularisIndividualCorners":false},"alignmentpadding":"start"0,"statesgap":{10,"idleverticalAlignment":{"colorscenter":}},{"backgroundid":"#414141zQPv9B1ZIKSgIEL2-TqyZ","labelname":"#ffffffcolumn"}},"hoverchildren":[{"colors"name":"image","params":{"backgroundalignment":"#000000center","labelheight":"#ffffff"}}}300,"iconposition":"linkedin-intop center","linkborderRadius":{"all":5,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"https://www.linkedin.com/in/ken-miller-bb77975/?originalSubdomain=ukatt1698562062","target":"_blank","type":"linkattachment"}},"children":[],"id":"YkQiC1UEdSABfAG30yCAEHC2565mrpH6QIPWrXG9rq"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"zQPv9B1ZIKSgIEL2-TqyZuFI2qIqzCdlp4soZcoFKh","name":"column","children":[{"name":"imagespacer","params":{"alignmentspace":10},"centerchildren":[],"heightid":300"iLlGX7VLo5DPMdB15Nsu8"},{"positionname":"top centerspacer","borderRadiusparams":{"all":5,"bblspace":10},"children":[],"id":"CEa3nvn4dCUclBcV0LcGx"}],"params":{"borderRadius":{"all":0,"bbrbtl":0,"btlbbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"imagepadding":0,"gap":{10,"valueverticalAlignment":"att1698562062center"}},{"targetid":"_blank6IYCbdH0yACltgbuUqUsV","typename":"attachmentcolumn"}},"children":[],"id":"HC2565mrpH6QIPWrXG9rq"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":10,"verticalAlignment":"center"}},{"id":"uFI2qIqzCdlp4soZcoFKhTC07p_TJiJqkld5i-FtRF","name":"column","children":[{"name":"text"],"params":{"valueborderRadius":[{"typeall":0,"paragraphbtl":0,"childrenbbl":[{0,"textbtr":0,"Highlightsbbr":0,"letterSpacingisIndividualCorners":0false},"fontWeightpadding":6000,"fontSizegap":2810,"colorverticalAlignment":"#2c2c2ccenter"}}],"alignparams":{"left"}]},"children":[],"id":"StFraL4oyQVb2F1-fMUdr"},{"name":"text","params":{"value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"- Item 1","letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18}],"align":"left"},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Item 2"}]},{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":"leftcenter"}]},"childrenname":[{"letterSpacingtext":0,"colorid":"#969696x8h3JtbaitH4rONaExd2J"},{"fontWeightchildren":300[],"fontSizename":18,"text":,"- Item 3"}]},params":{"typevalue":[{"paragraphchildren",:[{"aligntext":"leftNew ","childrenfontSize":[{20,"letterSpacingfontFamily":0"Montserrat, sans-serif","color":"#969696#ffffff"}],"fontWeighttype":300,"fontSizeparagraph":18,"textalign":"center"}]},{"type":"paragraph","align":"leftcenter","children":[{"letterSpacingfontSize":020,"colorfontFamily":"#969696Montserrat, sans-serif","fontWeightcolor":300,"fontSize#ffffff":18,"text":"Features"}]}]},{"typeid":"paragraphlSiInwGpA8cK6ew5Fkmlz"}],"params":{"alignpadding":20,"leftgap":10,"childrenborderRadius":[{"letterSpacingbbl":0,"colorbbr":0,"#969696btr":0,"fontWeightisIndividualCorners":300false,"fontSizeall":180,"textbtl":""}]0},{"typehover":"paragraphelevate"},"alignid":"left8sGgpAEhoNbWpufDnX9Is"}],"childrenparams":[{"letterSpacingpadding":0,"colorverticalAlignment":"#969696center","fontWeightgap":30020,"fontSizeborderRadius":18,{"textall":0,"btr"}]}:0,{"typeisIndividualCorners":false,"paragraphbtl":0,"alignbbl":0,"leftbbr":0}},"childrenid":["vxQl8_xUTLUeSdy6Zj667"},{"letterSpacingname":0"column","colorchildren":[{"#969696name",:"fontWeightcard":300,"fontSizechildren":18,[{"textparams":{""}]},value":[{"type":"paragraph","alignchildren":[{"leftfontWeight":700,"childrentext":[{"letterSpacing39":0,"color":"#969696#4bb9d2","fontWeightfontFamily":300"Montserrat, sans-serif","fontSize":1854}],"textalign":"center"}]},{"typechildren":"paragraph"[],"alignname":"lefttext","childrenid":[{"letterSpacingYCgKCdTm1qwKX5q1EuCdr":0},{"colorparams":{"#969696","fontWeightvalue":300,[{"fontSizealign":18,"text":""}]}]}]}"center","children":[],{"idfontSize":"lDEf-U_uv7DU3v6czqDnR"},{"name20,"color":"spacer#ffffff","paramsfontFamily":{"space":10},"children":[],"idMontserrat, sans-serif","text":"iLlGX7VLo5DPMdB15Nsu8Changes & Maintainance"}],{"nametype":"spacerparagraph"}]},"paramsname":{"spacetext":10},"children":[],"id":"CEa3nvn4dCUclBcV0LcGxBR4va-GpZlAJOp2mwMH-1"}],"params":{"borderRadius":{"allbbr":0,"btlisIndividualCorners":0false,"bblbtr":0,"btrbtl":0,"bbrbbl":0,"isIndividualCornersall":false},"padding":00},"gap":10,"verticalAlignmenthover":"centerelevate"}},{"idpadding":"6IYCbdH0yACltgbuUqUsV"20},"nameid":"column","children":[18AFcFB160BbE0iQeYr8c"}],"params":{"borderRadius":{"allbbl":0,"btlbbr":0,"bblisIndividualCorners":0false,"btrall":0,"bbrbtr":0,"isIndividualCornersbtl":false0},"paddingverticalAlignment":0"center","gap":1020,"verticalAlignmentpadding":"center"0}},{"id":"TC07p_TJiJqkld5i-FtRF","name":"column","children":[],"params":{l-GJ3YT3H_VJSsOjq70wP"},{"params":{"gap":20,"borderRadius":{"all":0,"btlbbr":0,"bblbtr":0,"btrbtl":0,"bbrbbl":0,"isIndividualCorners":false},"paddingverticalAlignment":0,"gapcenter":10,"verticalAlignmentpadding":"center"0}}],"paramschildren":[{"layoutname":[1,1,1,1],"gap":35,"minHeight":200,"padding"card","params":{"gap":10,"borderRadius":{"bbr":0,"sizeisIndividualCorners":"full"}}]false,"nameall":"section"}0,{"paramsbbl":{0,"backgroundbtr":"#393d4f"0,"gapbtl":100},"padding":0}20,"namehover":"sectionelevate"},"children":[{"params":{"childrenvalue":[{"nametype":"columnparagraph","childrenalign":[{"name":"card"center","children":[{"childrenfontWeight":[]700,"paramscolor":{"value#8871f9":[{,"childrenfontSize":[{54,"colortext":"#6fceb43","fontFamily":"Montserrat, sans-serif"}]}]},"fontWeightname":700,"text":"5","fontSizechildren":54}[],"typeid":"paragraphOLpC1-Pgjlm5sO19zrQ39"},{"alignparams":{"center"}]},"namevalue":[{"align":"textcenter","idtype":"x8h3JtbaitH4rONaExd2Jparagraph"},{"children":[],{"nametext":"textSchema ","paramsfontSize":{20,"valuecolor":[{"children#ffffff":[{"text,"fontFamily":"Montserrat, sans-serif"}]},{"align":"center","type":"New Featuresparagraph","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","colortext":"#ffffffChanges"}]}]},"type"children":[],"name":"paragraphtext","alignid":"center9mMYPgwoc1O74DZkegvHw"}]},"id":"lSiInwGpA8cK6ew5Fkmlzr5axRw3H73kS5E_cIjBvm"}],"params":{"padding":20,"gap":10,name":"column","id":"zXI-oq_sWnVXrhI0dB3so"},{"children":[{"params":{"borderRadius":{"bbl":0,"bbr":0,"btr":0,"isIndividualCornersbtl":false0,"all":0,"btlisIndividualCorners":0false},"gap":10,"hover":"elevate","padding":20},"idname":"8sGgpAEhoNbWpufDnX9Iscard"}],"paramschildren":[{"paddingname":0"text","verticalAlignmentchildren":[],"centerparams",:{"gapvalue":20,[{"borderRadiuschildren":[{"allfontFamily":"Montserrat, sans-serif","text":0"2","btrfontSize":054,"isIndividualCornersfontWeight":false700,"btlcolor":0"#5098fa"}],"bbltype":0"paragraph","bbralign":0"center"}]},"id":"vxQl8_xUTLUeSdy6Zj6677DNl9bkskIgNrLnsUqDjN"},{"name":"columntext","children":[{],"nameparams":{"card","childrenvalue":[{"paramsalign":{"valuecenter":[{,"type":"paragraph","children":[{"fontWeightfontSize":700,"text":"47"20,"color":"#4bb9d2#ffffff","fontFamily":"Montserrat, sans-serif","fontSize":54}],"align"text":"centerKey"}]},{"childrenalign":[],"namecenter":"text","idtype":"YCgKCdTm1qwKX5q1EuCdrparagraph"},{"params":{"value":[{"align":"center","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","text":"ChangesNotifications"}]}]},"typeid":"paragraphYLmi5VfiWq6zAkHD5bIWH"}]},"nameid":"textOWVeUSdsPsJFgJV2KFu6M"}],"childrenname":[],"id":"BR4va-GpZlAJOp2mwMH-1"}]"column","params":{"borderRadiusverticalAlignment":{"bbrcenter":0,"isIndividualCornersgap":false20,"btrborderRadius":0,{"btl":0,"bblall":0,"allbbr":0},"gapbtr":100,"hoverisIndividualCorners":false,"elevatebbl":0},"padding":200},"id":"18AFcFB160BbE0iQeYr8c3eUuDQUJ_7Wt3H0ogN0gG"}],{"params":{"borderRadius":{"bblall":0,"btl":0,"bbrbbl":0,"isIndividualCorners":false,"allbtr":0,"btrbbr":0},"btlgap":0}20,"verticalAlignment":"center","gappadding":0},"name":20"column","paddingchildren":0}[],"id":"l-GJ3YT3H_VJSsOjq70wPLFnVMjeI8jdrjJ5UCbCpq"},{"params":{"gap":20,"borderRadius":{"allbbr":0,"bbrisIndividualCorners":0false,"btrbbl":0,"btlall":0,"bblbtl":0,"isIndividualCornersbtr":false0},"verticalAlignment":"center","gap":20,"padding":0},"name":"column","children":[{],"nameid":"cardFotJeCTUtI5G5on3410IY"}],"params":{"gap":1040,"borderRadius":{"bbr":0,"isIndividualCornerslayout":false,"all":0,"bbl":0,"btr[1,1,1,1],"minHeight":200,"padding":0},"btlname":0},"paddingrow":20,"hoverid":"elevated6_mAzNbYQvSXQvqfrwO7"}],"childrenid":[{"params":{"value":[{"type":"paragraph","align":"center","children":[{"fontWeight":700,"color":"#8871f9","fontSize":54,"text":"3","fontFamily":"Montserrat, sans-serif"}]}]},"name":"text","children":[],"id":"OLpC1-Pgjlm5sO19zrQ39"},{"params":{"value":[{"align":"center","type":"paragraph","children":[{"text":"Schema Changes","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":"2","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":"Notifications"}]}]},"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 ContentsminLevel1maxLevel6includeoutlinefalseindentexcludetypelistclassprintablefalse

IMPORTANT NOTIFICATIONS

Scheme Changes - this 2025_01 release contains x3 schema changes - seeHEREfor more details
  • Feature Deprecation - the old version of the Excel Export functionality is no longer available to revert to, which previously has been set using the OLD_EXCELBETA flag. By default, only the New Excel Export feature is now available from this version onwards. See HERE for more information.

  • NEW FEATURES

    Ability to define what languages are available and the names they display as in the Language Selectors

    pi#2653

    32809

    Multilingual

    You can now add a ‘languages.properties’ file into your locale directory to dictate what languages appear in the Language Selectors and under what name they are displayed. The presence of this file disables the auto-generation of languages from the ‘messages*.properties’ filenames and will not provide 'English' as a default. Languages in this file are defined by simple key/value pairs of the ‘language code’ and the display name separated by an equals sign e.g. to define the language associated with files with the ‘en_GB’ language code in their filename and have it appear as “British” in the Language Selectors I would have the following on its own line within the file: en_GB=British.

    Ability to use languages without a locale

    pi#2653

    32809

    Multilingual

    Previously, translation files uploaded through the UI had to include both a language and locale as part of their ‘language code’ e.g. ‘messagesStatic_en_GB.properties' was accepted but the language only version of ‘messagesStatic_en.properties’ would have failed validation. If not using the 'languages.properties’ file detailed in the release note above, languages defined without the locale will appear in the Language Selectors without the parenthetical locale i.e. “English” rather than “English (United Kingdom)”

    Add footer to Browser PDF export

    #2535

    -

    PDF Export

    A footer detailing the ‘generation date’ and ‘pages’ has been added to Browser PDF exports to maintain consistency with the previous Renderer export. The formatting of the date can be adjusted with the Global Variable PDF_DATE_FORMAT and the following CSS styles can be used to customise the three footer related classes defined in the Themes > PDF tab (.pi-style__pdf-footer, .pi-style__pdf-footer-date, .pi-style__pdf-footer-pages):

    • background-color: The alpha channel of RGBA values will be ignored

    • color

    • text-align

    • font-size: Only supports ‘px’ values or numeric values with no unit specified

    • font-weight: Only “bold” has any effect

    • font-style: Only “italic” has any effect

    • margin: Only supports ‘px’ values or numeric values with no unit specified. Both specific margins (e.g. margin-right) and ‘margin’ value/array are supported

    • display: Only supports ‘none’ to remove specific parts of the footer (.pi-style__pdf-footer-date, .pi-style__pdf-footer-pages) or the entirety of it if applied to `.pi-style__pdf-footer`

    Example of footer with some of the styling mentioned above applied:

    image-20241206-155407.pngImage Removed

    New Magic Variables - Date

    pi#2651

    31388 & 32934

    Date Variables

    The following magic variables relating to Date have been added to the system:

    START_OF_NEXT_WEEK
    END_OF_NEXT_WEEK
    START_OF_NEXT_MONTH
    END_OF_NEXT_MONTH
    START_OF_LAST_YEAR
    END_OF_LAST_YEAR
    START_OF_NEXT_YEAR
    END_OF_NEXT_YEAR
    START_OF_QUARTER
    END_OF_QUARTER
    START_OF_LAST_QUARTER
    END_OF_LAST_QUARTER
    START_OF_NEXT_QUARTER
    END_OF_NEXT_QUARTER
    CURRENT_DAY_SHORT_NUMBER
    CURRENT_DAY_WITH_SUFFIX
    CURRENT_MONTH_SHORT_NUMBER
    CURRENT_WEEKDAY_SHORT_NAME
    LAST_MONTH_SHORT_NUMBER
    NEXT_YEAR
    NEXT_MONTH_YEAR
    NEXT_MONTH
    NEXT_MONTH_NAME
    NEXT_MONTH_SHORT_NAME
    NEXT_MONTH_SHORT_NUMBER

    The full description of these environment variables can be found here: /wiki/spaces/DEV/pages/2151153665

    Wildcard support for embed actions

    pi#2865

    -

    Embedding

    Embed actions (used to handle post message front-end actions when embedding) now supports a wildcard '*' in the trusted hosts setting and will allow a post message from any subdomain if the wildcard is provided.

    CHANGES

    Excluded Column Snackbar now times out

    pi#2635

    28990

    Tables, Exports

    Previously, you would have to close the snackbar that appears when exporting a table to Excel that has one or more columns marked as being excluded from export. Now, it will disappear on its own after a few seconds.

    Enable chart editing when displayed in full screen

    pi#2533

    28243

    Full screen chart viewer

    Previously, you would be unable to edit a chart in full screen view. Now, you can freely edit the chart, and it will return you to full screen view once you have made your changes.

    Screenshot from 2024-11-25 10-49-51.pngImage Removed

    Correct positioning of custom map tooltips in full screen

    pi#2610

    32455

    Full Screen Chart Viewer

    When entering full-screen mode, the custom map will now be completely redrawn to adjust its dimensions, ensuring that tooltips are positioned correctly near the data labels.

    Data labels and tooltip fixes for stacked bar charts in regards to totals and percentages

    pi#2716

    29704

    Stacked Bar Charts

    Previously, data labels and tooltips on stacked bar charts would omit negative values from the total value for each bar, which would also affect the percentages displayed for each bar segment. Now, the positive values minus the negative values is used for the total, and percentages for each segment are taken as a percentage of this new total.

    Screenshot from 2024-11-26 14-11-26.pngImage Removed

    A handful of additional fixes have been made off the back of a series of small bugs which were revealed due to this implementation.

    1. We now ensure that ‘NaN%’ does not show when you click on legend items on regular and stacked bar charts

    2. We now ensure that the percentage labels on bars within 100% stacked bar charts, regardless of whether the chart consists of 1 dimension and 1 measure, multiple dimensions, or multiple measure, are treated similarly to individual pie charts i.e. the percentage of a bar always adds up to 100%

    3. We now ensure that negative values are suppressed from data labels and tooltips on 100% stacked bar charts - including regular and percentage data labels

    4. We now ensure that any of the following charts that have negative values within the measures display a ‘suppressed negatives’ warning indicator on the top left of the chart: bar, stacked bar, 100% stacked bar, pie, doughnut, variable pie, variable doughnut, sunburst, doughnut sunburst, treemap, funnel & pyramid

    5. We now ensure that, if only negative values appear on a bar within a regular bar chart or stacked bar chart, the percentage values are positive (i.e. the grand total is -30, and a segment is -15, this is 50% - NOT -50%)

    New ‘configuration-tool' directory

    configurationt-tool#134

    29815

    Configuration-tool

    To ensure the app launches successfully across all Windows environments, we modified the build configuration to output the configuration-tool-GUI as an unpackaged directory containing all its files.

    A new directory named configuration-tool has been created to house both the configuration-tool-GUI and configuration-tool command-line executables, along with all relevant files. The GUI will now launch directly from the configuration-tool directory.

    Allow scheduler to use new browser export functionality

    pi#2534, pi#2573 & pi#2574

    Scheduler

    The scheduler service will now utilise the new browser export functionality to generate charts that support it. This relates to PDF, Word and Powerpoint single chart exports.

    Enhance log feedback for editable tables functionality

    pi#2793

    Editable Tables

    Logging around the editable tables functionality has been improved, you will now always see the full outbound request detail for any failures and always if using debug level logging.

    Default Dashboard Docker healthcheck changed to a single ping to health endpoint

    pi#2655

    Docker Healthcheck

    Previously, the healthcheck script that runs on Docker would ping both ‘/version’ and ‘/pi’ to ascertain the health of the container. The latter ping was causing a repeated WARN log message to be produced and has now been removed. The ‘/version’ ping has been changed to include a --max-wait of 5s and hit the ‘/health’ endpoint instead.

    Certain chart types not exporting as PDF

    pi#2789

    Charts

    Fixed an issue that prevented certain chart types (gauge, flow, treemap) from being successfully exported to PDF format. The issue has been resolved, ensuring all chart types are now exported accurately, matching the visualisations in the UI.

    Y axis zooming on merged charts bug

    pi#2803

    30898

    Merged Charts

    Previously, when you would try to zoom in on a merged chart with Y axis zooming enabled, then reset the zoom state, the tick intervals on the Y axis would be different from what they were when the chart was in its initial state. Now, the original tick intervals are retained once you have reset the zoom state.

    Decimal places attribute not working on tables on 0 values

    pi#2695

    33190

    Tables

    Previously, when setting the decimal places of a measure within the chart attributes, on a table, which contains 0 values, the decimal places would not apply and the 0 values would fall back to using the decimal places defined in the object definition. Now, the decimal places defined in the chart attributes will always take precedence, and apply to 0 values successfully.

    Prefix/Suffix no longer erroneously being applied to Crosstab headers derived from data rows

    pi#2808

    31550, 33844, 32481, 31550 & 22008

    Crosstab Tables

    Previously, measures in Crosstab tables (tables with a Header defined) would have their Data Object/Attribute formatting applied (e.g. a prefix) to not only their data values but also their respective headers. Now, this formatting only applies to the Header defined in the Chart Configuration as those headers are generated from the data values of that object.

    Added missing 7-Zip files to Scheduler Docker Image fixing issues with Encrypted Schedules failing to send

    pi#2810

    32130

    Encrypted Schedules, Docker

    7-Zip is used to encrypt Schedules that you have added a password to but was missing from the Scheduler Docker image leading to the inability to use this feature. This has now been resolved and any previous workarounds you have applied to volume these files yourself can be deleted.

    Switch all users to new Excel export functionality

    pi#2697

    33680

    Exports

    All users will now be moved across to the new version of the Excel export functionality, this version is significantly improved over the older version. As part of this work vulnerability CVE-2024-47554 in commons-io library has been removed from the dashboard.

    ‘Reset Zoom’ button no longer overlaps data in charts

    pi#2805

    33155

    Chart Display

    Previously, in certain scenarios, ‘Reset Zoom’ button was overlapping chart content when zooming in. This has been resolved by adding some additional space to the top of the chart container when zooming in, allowing the zoom button to appear outside the chart body. When zooming out, the space reverts to its original state.

    Improved alignment of multi-line x-axis labels by making them centred to their respective data points

    pi#2814

    33153

    Chart Display

    Previously, certain chart sizes would result in multi-line x-axis labels that no longer properly matched the position of their data point. They would appear left-aligned with respect to the axis space reserved for that data point rather than central to it. This positional discrepancy looked particularly bad after zooming. The labels are now properly centrally aligned.

    Before:

    2814-before.pngImage Removed

    After:

    2814-after.pngImage Removed

    Remove some Catalina WARNING logs on startup

    pi#2816

    29963

    Logging, Tomcat

    Previously, when starting up the Dashboard the catalina{date}.log file would show some warnings related to attempting to set ‘maximumSpareThreads’ and ‘proxyName’. These log messages should no longer appear.

    Fix Tomcat > Advanced setting ‘Minimum Spare Threads’ not applying if set through the Configuration-Tool-Gui

    configuration-tool#136

    Configuration-Tool-GUI

    Previously, changes to this configuration setting through the GUI would not be applied - this has now been resolved.

    Errors appearing in console when zooming on a map with null values + maps with legends with null values not rendering at all

    pi#2811

    32903

    Maps

    Previously, maps with null values would display errors in the console when zooming in and out - this has now been resolved. Additionally, maps with legends with null values would not render at all - this has also been resolved.

    Fix Subtotal Labels Not Being Translated

    pi#2821

    34224

    Translations, Subtotals

    Previously, subtotal labels were not being translated this has now been resolved

    Fix Category List Panel blocking Category Object Value Selection popup in some scenarios

    pi#2827

    33571

    Dashboard

    When both the Category List Panel and Category Object Panel were pinned, it was possible for the Category Object Selection popup to be partially obscured by the Category List Panel - this has now been resolved.

    Fix Modified Schedules With Role Links Failing To Import Due To Unique Constraint

    migrations#62

    Schedule Import

    It was possible for a import that updates an existing Schedule that has Roles associated with it to fail with a message related to a unique constraint - this has been resolved

    Fix Financial Year Start Calculation

    pi#2649

    34769

    Date/Time Variables

    Resolved an issue where the start of the financial year was incorrectly calculated when the currentMonth was earlier than the START_OF_FINANCIAL_YEAR_MONTH. The logic has been updated to ensure that in such cases, the start of the financial year is correctly determined as belonging to the previous calendar year. This change applies to both the financial environment variables and the values in the ‘Financial’ tab in the category objects date range panel.

    Fixed issues with tomcat base directory when running Linux Dashboard through systemd

    pi#2855

    34380

    Tomcat, Drivers

    Due to changes in November related to how we initialise JDBC drivers in a more isolated way, the wrong tomcat base directory was being used for jdbc_drivers when using systemd. Similar issues were discovered due to this bug related to the dynamic drivers functionality and the location of the ‘out.{date}.log’ file (rotating Dashboard log file). These issues have now been resolved.

    Fixed data connection export missing categories and charts

    pi#2791

    34273

    Tomcat, Drivers

    The API request for exporting a data connection will include the associated categories and charts.

    Export to excel issue - exporting only three columns and three rows to a Rotated Table the export fails

    pi#1541

    28835

    Info still needs to be added

    “data” elements stay with the old language after changing the language in the GUI

    pi#2828

    29637

    Info still needs to be added

    Measure prefix showing ... too much

    32481

    Info still needs to be added

    Bug - Cross Table Field Labels

    33844

    Info still needs to be added

    New Config items always show [No Title] by default regardless of language

    34016

    Info still needs to be added

    Bug - Unable to control height of Category Objects Panel when at the top AND using a multi-picker

    34300

    Info still needs to be added

    When I have a child connection, I need to be able to prevent chart designer from building on the parent connection

    34137

    Info still needs to be added

    I can get category objects in the wrong order

    34411

    Info still needs to be added

    Bug - Upgrading versions and can't view categories

    34768

    Info still needs to be added

    Linked data connection sub org user not picking VARIABLE from parent DC Organisation

    35123

    Info still needs to be added

    Maps with legends do not display points if the measure is 0 or NULL

    #2846

    -

    Info still needs to be added

    Observability - Collect migration errors and log them at the end

    #60

    -

    Info still needs to be added

    MAINTAINANCE

    Z-Zip Vulnerability

    #93

    -

    Info still needs to be added

    High Vulnerability - CVE-2024-56337

    34784

    Info still needs to be added

    High Vulnerability - CVE-2024-50379

    34785

    Info still needs to be added

    High vulnerability - CVE-2024-4735 - Denial of Service attack on windows app using netty

    33940

    Info still needs to be added

    Medium vulnerability - cve-2023-44483 - santuario: Private Key disclosure in debug-log output

    -

    29289

    Info still needs to be added

    Minor Tomcat upgrade to resolve CVE-2024-56337 and CVE-2024-50379 (includes small additional configuration to fully resolve)

    pi#2835, pi#2837, pi#2838

    34785, 34753

    Dashboard, Security

    hBpUSNSybAXZlGhjE3HRg"}]}

    Table of Contents
    minLevel1
    maxLevel6
    include
    outlinefalse
    indent
    exclude
    typelist
    class
    printablefalse
    • IMPORTANT NOTIFICATIONS

      • Scheme Changes - this 2025_01 release contains x3 schema changes - seeHEREfor more details

      • Feature Deprecation - the old version of the Excel Export feature is no longer available to revert to, having been able to set this through the OLD_EXCELBETA flag previously. By default, only the New Excel Export feature is now available from this version onwards. See HERE for more information.


    NEW FEATURES

    Multilingual - Ability To Define The Languages Available & Named Display In The Language Selectors

    pi#2653

    32809

    Multilingual

    You can now add a ‘languages.properties’ file into your locale directory to dictate what languages appear in the Language Selectors and under what name they are displayed.

    The presence of this file disables the auto-generation of languages from the ‘messages*.properties’ filenames and will not provide 'English' as a default. Languages in this file are defined by simple key/value pairs of the ‘language code’ and the display name separated by an equals sign e.g. to define the language associated with files with the ‘en_GB’ language code in their filename and have it appear as “British” in the Language Selectors I would have the following on its own line within the file: en_GB=British.

    Multilingual - Ability To Use Languages Without A Locale

    pi#2653

    32809

    Multilingual

    Previously, translation files uploaded through the UI had to include both a language and locale as part of their ‘language code’ e.g. ‘messagesStatic_en_GB.properties' was accepted but the language only version of ‘messagesStatic_en.properties’ would have failed validation.

    If not using the 'languages.properties’ file detailed in the release note above, languages defined without the locale will appear in the Language Selectors without the parenthetical locale i.e. “English” rather than “English (United Kingdom)”

    Magic Variables - New Date/Period Based Variables Added

    pi#2651

    31388 & 32934

    Magic Variables

    The following magic variables relating to Date have been added to the system:

    START_OF_NEXT_WEEK
    END_OF_NEXT_WEEK
    START_OF_NEXT_MONTH
    END_OF_NEXT_MONTH
    START_OF_LAST_YEAR
    END_OF_LAST_YEAR
    START_OF_NEXT_YEAR
    END_OF_NEXT_YEAR
    START_OF_QUARTER
    END_OF_QUARTER
    START_OF_LAST_QUARTER
    END_OF_LAST_QUARTER
    START_OF_NEXT_QUARTER
    END_OF_NEXT_QUARTER
    CURRENT_DAY_SHORT_NUMBER
    CURRENT_DAY_WITH_SUFFIX
    CURRENT_MONTH_SHORT_NUMBER
    CURRENT_WEEKDAY_SHORT_NAME
    LAST_MONTH_SHORT_NUMBER
    NEXT_YEAR
    NEXT_MONTH_YEAR
    NEXT_MONTH
    NEXT_MONTH_NAME
    NEXT_MONTH_SHORT_NAME
    NEXT_MONTH_SHORT_NUMBER

    The full description of these magic variables can be found HERE

    Exporting To PDF - Added Footer For Browser PDF Exports

    #2535

    -

    Exporting To PDF

    A footer detailing the ‘generation date’ and ‘pages’ has been added to Browser PDF exports, to maintain consistency with the previous Renderer export.

    The formatting of the date can be adjusted with the Global Variable PDF_DATE_FORMAT, whilst the following CSS styles can be used to customise the three footer related classes defined in the Themes > PDF tab (.pi-style__pdf-footer, .pi-style__pdf-footer-date, .pi-style__pdf-footer-pages):

    • background-color: The alpha channel of RGBA values will be ignored

    • color

    • text-align

    • font-size: Only supports ‘px’ values or numeric values with no unit specified

    • font-weight: Only “bold” has any effect

    • font-style: Only “italic” has any effect

    • margin: Only supports ‘px’ values or numeric values with no unit specified. Both specific margins (e.g. margin-right) and ‘margin’ value/array are supported

    • display: Only supports ‘none’ to remove specific parts of the footer (.pi-style__pdf-footer-date, .pi-style__pdf-footer-pages) or the entirety of it if applied to `.pi-style__pdf-footer`

    Below is an example of the generated footer with some applied styling as mentioned above:

    image-20241206-155407.pngImage Added

    Embedding - Wildcard Support Added For Embed Actions - Trusted Hosts Settings

    pi#2865

    -

    Embedding

    Embed actions (used to handle post message front-end actions when embedding) now supports a wildcard '*' in the trusted hosts setting, and will allow a post message from any subdomain if the wildcard is provided.

    FEATURE CHANGES

    Chart Editor - Ability To Edit In Full Screen Mode

    pi#2533

    28243

    Chart Editor

    Previously, you would be unable to edit a chart in full screen view. Now, you can freely edit the chart, and it will return you to full screen view once you have made your changes.

    Screenshot from 2024-11-25 10-49-51.pngImage Added

    Exporting To Excel - Switch All Users To New Excel Export Functionality

    pi#2697

    33680

    Exporting To Excel

    All users will now be moved across to the new version of the Excel export functionality, this version is significantly improved over the older version.

    As part of this work vulnerability CVE-2024-47554 in commons-io library has been removed from the dashboard.

    Exporting To Excel - Tables - Excluded Column Snackbar Now Times Out

    pi#2635

    28990

    Exporting To Excel

    Previously, you would have to close the snackbar that appears when exporting a table to Excel, when one or more columns was marked as being excluded from export. It now disappears automatically after a few seconds.

    Exporting To Excel - Exporting Three Columns & Three Rows On A Rotated Table Made Exports Fail

    pi#1541

    28835 & 24828

    Exporting To Excel

    When a Rotatable Table included three columns and three rows of data, when attempting to export this to excel, this would lead to the export failing.

    Exporting To PDF - Certain Chart Types Unable To Export

    pi#2789

    -

    Exporting To PDF

    Fixed an issue that prevented certain chart types (gauge, flow, treemap) from being successfully exported to PDF format. The issue has been resolved, ensuring all chart types are now exported accurately, matching the visualisations in the UI.

    ToolTips - Improved Positioning Of Custom Map Tooltips (Full Screen Mode)

    pi#2610

    32455

    ToolTips

    When entering full-screen mode, the custom map will now be completely redrawn to adjust its dimensions, ensuring that tooltips are positioned correctly near the data labels.

    ToolTips & Data Labels - Stacked Bar Charts - Totals & Percentages Were Omitting Negative Values

    pi#2716

    29704

    Tooltips & Data Labels

    Previously, data labels and tooltips on stacked bar charts would omit negative values from the total value for each bar, which would also affect the percentages displayed for each bar segment. Now, the positive values minus the negative values is used for the total, and percentages for each segment are taken as a percentage of this new total.

    Screenshot from 2024-11-26 14-11-26.pngImage Added

    A handful of additional fixes have been made off the back of a series of smaller bugs revealed due to this implementation;

    1. Ensure that ‘NaN%’ does not show when you click on Legend items on Bar Charts and/or Stacked Bar Charts

    2. The percentage labels on the bars within 100% Stacked Bar Charts, are treated similarly to individual pie charts i.e. the percentage of a bar always adds up to 100% - regardless of if the chart consists of 1 dimension and 1 measure, multiple dimensions, or multiple measure,

    3. Negative values are suppressed from data labels and tooltips on 100% Stacked Bar Charts - including regular and percentage data labels

    4. Any of the following charts that have negative values within the measures display a ‘suppressed negatives’ warning indicator on the top left of the chart:

      1. Bar, Stacked Bar, 100% Stacked Bar, Pie, Doughnut, Variable Pie, Variable Doughnut, Sunburst, Doughnut Sunburst, Treemap, Funnel & Pyramid

    5. If only negative values appear on a bar within a regular Bar Chart or Stacked Bar Chart, the percentage values are positive (i.e. the grand total is -30, and a segment is -15, this is 50% - NOT -50%)

    Data Labels - Improved Alignment Of Multi-Line X-Axis Labels - Centred Against The Data Point

    pi#2814

    33153

    Data Labels / X Axis

    Previously, certain chart sizes would result in multi-line x-axis labels that no longer properly matched the position of their data point. They would appear left-aligned with respect to the axis space reserved for that data point rather than central to it. This positional discrepancy looked particularly bad after zooming. The labels are now properly centrally aligned.

    Before:

    2814-before.pngImage Added

    After:

    2814-after.pngImage Added

    Configuration Tool - New Configuration Tool Directory

    configurationt-tool#134

    29815

    Configuration Tool

    To ensure the app launches successfully across all Windows environments, we have modified the build configuration to output the configuration-tool-GUI as an unpackaged directory containing all its files. A new directory named configuration-tool has been created to house both the configuration-tool-GUI and configuration-tool command-line executables, along with all relevant files. The GUI will now launch directly from the configuration-tool directory.

    Configuration Tool - Minimum Spare Threads Changes Not Being Upheld Through The GUI

    configuration-tool#136

    -

    Configuration Tool

    Previously, changes made to the Advanced Setting ‘Minimum Spare Threads’ through the configuration tool were not being upheld.

    Scheduler - Allow The Scheduler To Use New Browser Export Functionality (Single Chart Exports)

    pi#2534, pi#2573 & pi#2574

    -

    Scheduler

    The Scheduler service will now utilise the new browser export functionality to generate charts were supported. This relates to PDF, Word and PowerPoint single chart exports.

    Scheduler - Encrypted Schedules Failing To Send (Docker)

    pi#2810

    32130

    Scheduler

    7-Zip is used to encrypt Schedules that included a password, but was missing from the Scheduler Docker image - which led to the inability to use this feature. Whilst manual workaround were available for this, these are no longer needed.

    Scheduler - Modified Schedules With Role Links Failing To Import Due To Unique Constraint

    migrations#62

    -

    Scheduler

    It was possible for an import that updates an existing Schedule, that has Roles associated, to fail with a message related to a unique constraint.

    Zooming - Y Axis Zooming - On Merged Charts

    pi#2803

    30898

    Zooming / Merged Charts

    Previously, when you tried to zoom in on a Merged Chart, with the Y axis zoom feature enabled and then reset the zoom state, the tick intervals on the Y axis would be different from what they were when the chart was in its initial state. The original tick intervals are now retained once you have reset the zoom state.

    Zooming - Reset Zoom Button Overlapping Data In Charts

    pi#2805

    33155

    Zooming / Chart Display

    In certain scenarios, the ‘Reset Zoom’ button would overlap chart content when zooming in. Additional space has been added to the top of the chart container when zooming in, allowing the zoom button to appear outside the chart body. When zooming out, the space reverts to its original state.

    Tables - Decimal Places Attribute Not Working On Tables On 0 (Zero) Values

    pi#2695

    33190

    Tables

    When setting the decimal places of a measure for a table which contains a 0 value (within the chart attributes), the decimal places would not apply and the 0 values would fall back to using the decimal places defined in the object definition. The decimal places defined in the chart attributes will now take precedence, and apply to 0 values correctly.

    Tables - CrossTab Headings - Prefix/Suffix Incorrectly Being Applied To Measure Headings

    pi#2808 & pi#1369

    31550, 33844, 32481, 31550 & 22008

    Tables

    Measures in Crosstab tables (tables with a Header defined) would have their Data Object/Attribute formatting applied (e.g. a prefix) to not only their data values but also their respective headers. This formatting only applies to the Header defined in the Chart Configuration as those headers are now generated from the data values of that object.

    Observability - Docker Healthcheck - Default Dashboard Healthcheck Changed To A Single Ping

    pi#2655

    -

    Observability / Docker

    The healthcheck script that runs on Docker would ping both ‘/version’ and ‘/pi’ to ascertain the health of the container. The '/pi' ping was causing a repeated WARN log message to be produced, which has been removed. The ‘/version’ ping has been changed to include a --max-wait of 5s and hit the ‘/health’ endpoint instead.

    Observability - Collect Migration Errors & Log Them At The End

    #60

    -

    Observability / Logging

    When performing migration processing, should SQL failures be encountered, these are now added to the end of logs to aid the triage process.

    Logging - Remove Catalina WARNING Logs On Startup

    pi#2816

    29963

    Logging / Tomcat

    When starting up the Dashboard the catalina{date}.log file would show some warnings messages, related to attempting to set ‘maximumSpareThreads’ and ‘proxyName’. These messages will no longer appear.

    Logging - Enhanced Logging Feedback On Editable Table Feature

    pi#2793

    Logging / Editable Tables

    Logging around the Editable Tables feature have been improved to assist with debugging of issue, with the full outbound request details along with success and failure details now being captured.

    Logging - Errors Appearing In Console When Zooming On A Map With Null Values

    pi#2811 & pi#2846

    32903

    Logging / Maps

    Maps with null values would display errors in the console when zooming in and out. Furthermore, maps with legends with null values would not render at all, which has also been addressed.

    Multilingual - Subtotal Labels Not Being Translated

    pi#2821

    34224

    Multilingual

    Subtotal labels were previously not being translated.

    Multilingual - Data Elements Staying With The Old Language After Changing The Language In The GUI

    pi#2828

    29637

    Multilingual

    When selecting a new language in the GUI, not all translations were being performed, specifically around where [[VARIABLES]] were being used in queries. When the language is now changed through the GUI, the category/page will be refreshed to ensure all aspects of the charts are translated using the newly selected language.

    Multilingual - New Config Items Labels Not Respecting Translated Language Until Save Performed

    pi#2762

    34016

    Multilingual

    During the process of creating a new Category, User, Role, Data Connection, Theme, API, Organisation, Report or Schedule, the new item would be described as 'No Title' (see the image below) until it was saved. The software now respects the language in use without the need to save it first.

    image-20250203-172316.pngImage Added

    Category Objects - The Model Popup Category Object Was Unable To Be Resized

    pi#2827

    33571 & 34300

    Category Objects

    When both the Category List Panel and Category Object Panel were pinned, it was possible for the Category Object Selection popup (model) to be partially obscured by the Category List panel.

    Category Objects - Drop Down Data Out Of Sync

    pi#2807

    34411

    Category Objects

    Drop down data in Category Object filters could become out of sync if a user removes a preceding temporary category object filter value.

    Magic Variables - Financial Year - Start Calculation

    pi#2649

    34769

    Magic Variables

    The start of the financial year was incorrectly calculated when the currentMonth was earlier than the START_OF_FINANCIAL_YEAR_MONTH. The logic has been updated to ensure that in such cases, the start of the financial year is correctly determined as belonging to the previous calendar year. This change applies to both the financial environment variables and the values in the ‘Financial’ tab in the category objects date range panel.

    Linux - Issues With Tomcat Base Directory When Running Linux Dashboard Through Systemd

    pi#2855

    34380

    Linux / Tomcat

    Due to changes introduced in the November 24, related to how we initialise JDBC drivers in a more isolated way, an incorrect Tomcat base directory was being used for jdbc_drivers when using systemd. Similar issues were discovered due to this issue, related to the dynamic drivers functionality and the location of the ‘out.{date}.log’ file (rotating Dashboard log file). Both issues have been addressed.

    Data Connections - Exporting - Missing Categories & Charts

    deployment#116 & pi#2791

    34273 & 34965

    Data Connections - Exporting

    When making an API call to the get_exportImportConnection endpoint, the includeAllRelatedChartsAndCategories value was not defaulting to true or being respected, which resulted in Categories and Charts not working.

    Data Connections (Linked) - Need For Parent Connection Access When Using A Child Connection

    pi#2786

    34137

    Data Connections - Linked

    Previously, Users not only had to have User Access in Org2 to link to Category2, they also needed to subscribe to Org1, and have User Access in Org1 to link to Category1. Now Users only needs to have User Access in Org2 to link to Category2, and subscribes to Org1. They no longer need to be linked to Category1 via User Access.

    Code Block
    This shows the structure of configuration in order for User to Edit Chart2
    
    Org1 - Category1 - ParentOrgConn             <--- user subscribes to Org1 as a viewer without any permission
     ^               ^
     |               |
    Org2 - Category2 - ChildOrgConn <-- Chart2   <--- [user is here in Org2]

    This provides the ability to hide ParentOrgConn from this User. Because if User has access to Category1, they can use ParentOrgConn, or an admin can edit ParentOrgConn. We don’t want to give people access to ParentOrgConn any time we want to give them ChildOrgConn.

    Data Connections (Linked) - Ability to assign to a child connection when editing or copying a chart

    pi#2787

    34138

    Data Connections - Linked

    When copying a chart, now the system allows the user to choose a child connection that is in the same organisation as the chart (category). This encourages users to have a chart using connections that are in the same organisation as the chart (category) organisation.

    Code Block
    1) Allow changing `Chart2` connection
    Org1 - Cat1 -------------------- ParentOrgConn 
     |                      __(from)__/  |
     |                     /             |
    Org2 - Cat2 --- Chart2 ---(to)--> ChildOrgConn         <--- [user is here]
    
    
    2) Allow copying `Chart1` to `Chart2` and moving connection
    Org1 - Cat1 --- Chart1 ---------- ParentOrgConn 
     |               |      __(from)__/  |
     |         (copy)|     /             |
    Org2 - Cat2 --- Chart2 ---(to)--> ChildOrgConn         <--- [user is here]
    



    Data Connections (Linked) - Parent Connection Details Variable Replacement Failing

    pi#2888

    35123

    Data Connections - Linked

    When the parent connection had variables, they were not correctly being replaced. For example, where the connection is in Org1, and User has an Org1 subscription, the system now uses the Org1 subscription’s variables to replace the connection variables.

    Embedding - Unable To Use Post Message With New Category Objects (Category Embedding)

    pi#2859

    34816

    Embedding

    The Category Panel would not open when attempting to use post messages under the following embedding scenario;

    • New Category Objects feature is enabled

    • Embedded Category modes 1, 2 or 3 defined

    • The embedded category has a category object, however the panel is unpinned

    MAINTENANCE

    Vulnerability - CVE-2024-47535 - Denial Of Service Attack On Windows App (Netty)

    pi#2745

    33940

    Vulnerability / Library Upgrade

    Updated Netty framework from version 4.1.100 to 4.1.115

    Vulnerability - CVE-2024-56337 & CVE-2024-50379 (Tomcat)

    pi#2835, pi#2837 & pi#2838

    34751, 34753, 34784 & 34785

    Vulnerability / Library Upgrade

    Minor Tomcat upgraded from 9.0.97 to 9.0.98 and the useCanonCaches Tomcat property explicitly set to false - resolves CVE-2024-56337 & CVE-2024-50379.

    to resolve CVE-2024-29025

    Vulnerability - CVE-2024-29025 - Allocation of Resources Without Limits or Throttling (Lettuce)

    Upgrade lettuce

    pi#2389

    30738

    Vulnerability / Library Upgrade

    Updated the Lettuce library from version 6.1.10 to 6.5.1

    pi#2389

    30738

    Library Upgrades

    The previous version of lettuce had a vulnerable netty dependency - this has now been resolved via an upgrade

    Upgrade crypto library to resolve

    .

    Resolved vulnerabilities in scheduler and excel-reader modules by upgrading crypto and net

    Vulnerability - CVE-2024-45337 - ServerConfig.PublicKeyCallback Authorization Bypass (Crypto & Net)

    scheduler#94

    34466

    Vulnerability / Library Upgrades

    Upgrade

    Updated the Crypto and Net packages to the most recent versions.

    7 zip upgraded from 23.01 to 24.09

    scheduler#93

    28990

    Scheduler

    7 zip library used within the scheduled has been upgraded from version 23.01 to 24.09 after the discovery of a vulnerability. This is the library we use for encrypting items in schedules.

    Updated Snowflake JDBC driver from

    This addressed vulnerabilities around the Scheduler and Excel Reader modules.

    to resolve vulnerability

    Vulnerability - CVE-2024-43382 - Incorrect Security Setting (Snowflake JDBC)

    pi#2720

    33846

    Vulnerability / JDBC Driver

    Updated the Snowflake JDBC driver from version 3.14.1 to 3.20.0

    pi#2720

    33846

    JDBC Drivers, Vulnerabilities

    Updated Snowflake JDBC to the latest (3.20.0) version to resolve vulnerability CVE-2024-43382(latest).

    Library Upgrade - 7 Zip

    scheduler#93

    -

    Library Upgrade

    Updated the 7 zip library from version 23.01 to 24.09. This library is used for encryption within the Scheduler.


    SCHEMA CHANGES

     

    Description

    Columns / Items

    GitLab

    ZenDesk

    Index

    added on

    Added

    mis_audits.audit_date_time and mis_audits.user_code

    migrations#62

    31663

    Foreign Key

    added

    Added

    between pi_schedule_user_links.schedule_id and pi_schedules.id

    migrations#62

    31663

    Unique

    constraint added

    Constraint Added

    on pi_schedule_user_link between user_id and schedule_id

    migrations#62

    31663