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 38 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,"textleft":"which","colorchildren":"#555555"},[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#000000#555555","text":""}]},{"lineHeighttype":"24pxparagraph","letterSpacingalign":0,"fontFamilyleft":"unset","fontSizechildren":16,[{"textlineHeight":"is available to download now.24px","colorletterSpacing":"#555555"}]0,"alignfontFamily":"leftunset"},{"typefontSize":"paragraph"16,"aligncolor":"left#555555","childrentext":[{"lineHeight":"24px","letterSpacing":0,"fontFamily":"unset","fontSize":16,"color":"#555555","text":"""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":"In this release, we've taken the opportunity to "}]},{"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 notes in full to learn of all the changes "},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."}]}]}]},"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":"textspacer","params":{"valuespace":[{"type":"paragraph"10},"children":[{],"textid":"HighlightsiLlGX7VLo5DPMdB15Nsu8"},{"letterSpacingname":0,"fontWeightspacer":600,"fontSizeparams":28,{"colorspace":"#2c2c2c"10}],"align":"left"}]},"children":[],"id":"StFraL4oyQVb2F1-fMUdrCEa3nvn4dCUclBcV0LcGx"},{"name":"text"],"params":{"valueborderRadius":[{"typeall":0,"paragraphbtl":0,"childrenbbl":[{0,"typebtr":"paragraph"0,"childrenbbr":[{0,"textisIndividualCorners":"- Item 1"false},"letterSpacingpadding":0,"colorgap":"#969696"10,"fontWeightverticalAlignment":300,"fontSizecenter":18}}],{"alignid":"left6IYCbdH0yACltgbuUqUsV"},{"typename":"paragraphcolumn","alignchildren":[],"leftparams",:{"childrenborderRadius":[{"letterSpacingall":0,"colorbtl":0,"#969696bbl":0,"fontWeightbtr":3000,"fontSizebbr":180,"textisIndividualCorners":"- Item 2"}]},{"type":"paragraph","align":"left","children":[{"letterSpacing":0,"color":"#969696","fontWeight":300,"fontSize":18,"text":"- Item 3"}]},{"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":"leftfalse},"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":[{"letterSpacingchildren":0,[{"colorname":"#969696column","fontWeightchildren":300,[{"fontSizename":18"card","textchildren":[{"children"}:[]},{"typeparams":{"paragraph","alignvalue":"left[{","children":[{"letterSpacingcolor":0"#6fceb4","colorfontFamily":"#969696Montserrat, sans-serif","fontWeight":300700,"fontSizetext":18"5","textfontSize":""54}]},{"type":"paragraph","align":"leftcenter"}]},"childrenname":[{"letterSpacingtext":0,"colorid":"#969696x8h3JtbaitH4rONaExd2J"},{"fontWeightchildren":300[],"fontSizename":18,"text":,"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"}]}]}]},"childrenid":["lSiInwGpA8cK6ew5Fkmlz"}],"idparams":{"lDEf-U_uv7DU3v6czqDnR"},{"name":"spacer","paramspadding":20,"gap":10,"borderRadius":{"spacebbl":10}0,"childrenbbr":[]0,"idbtr":"iLlGX7VLo5DPMdB15Nsu8"}0,{"nameisIndividualCorners":"spacer"false,"paramsall":{0,"spacebtl":100},"childrenhover":[]"elevate"},"id":"CEa3nvn4dCUclBcV0LcGx8sGgpAEhoNbWpufDnX9Is"}],"params":{"borderRadiuspadding":{0,"allverticalAlignment":0"center","btlgap":020,"bblborderRadius":0,{"btrall":0,"bbrbtr":0,"isIndividualCorners":false},"paddingbtl":0,"gapbbl":100,"verticalAlignmentbbr":"center"0}},{"id":"6IYCbdH0yACltgbuUqUsVvxQl8_xUTLUeSdy6Zj667"},{"name":"column","children":[]{"name":"card","children":[{"params":{"borderRadiusvalue":[{"alltype":0"paragraph","btlchildren":0,[{"bblfontWeight":0700,"btrtext":0"39","bbrcolor":0"#4bb9d2","isIndividualCornersfontFamily":false},"padding":0,"gap":10,"verticalAlignment"Montserrat, sans-serif","fontSize":54}],"align":"center"}]},{"idchildren":"TC07p_TJiJqkld5i-FtRF"[],"name":"columntext","childrenid":[],"YCgKCdTm1qwKX5q1EuCdr"},{"params":{"borderRadiusvalue":[{"allalign":0,"btlcenter":0,"bblchildren":0,[{"btrfontSize":020,"bbrcolor":0,"isIndividualCorners#ffffff":false},"paddingfontFamily":0,"gap":10"Montserrat, sans-serif","verticalAlignmenttext":"centerChanges & Maintainance"}}],"paramstype":{"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":[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":{"valueborderRadius":[{"childrenbbl":[{0,"colorbbr":0,"#6fceb4isIndividualCorners":false,"fontFamilyall":"Montserrat, sans-serif"0,"btr":0,"fontWeightbtl":7000},"textverticalAlignment":"5center","fontSizegap":20,"padding":540}],"typeid":"paragraphl-GJ3YT3H_VJSsOjq70wP"},{"alignparams":{"center"}]}gap":20,"nameborderRadius":{"textall":0,"idbbr":0,"x8h3JtbaitH4rONaExd2Jbtr"}:0,{"childrenbtl":[]0,"namebbl":0,"textisIndividualCorners":false},"paramsverticalAlignment":{"value":[{"center","padding":0},"children":[{"textname":"New card","fontSizeparams":20,{"fontFamilygap":"Montserrat, sans-serif"10,"colorborderRadius":"#ffffff"}],"type":"paragraph","align":"center"},{"{"bbr":0,"isIndividualCorners":false,"all":0,"bbl":0,"btr":0,"btl":0},"padding":20,"hover":"elevate"},"children":[{"params":{"value":[{"type":"paragraph","align":"center","children":[{"fontSizefontWeight":20700,"fontFamilycolor":"#8871f9"Montserrat, sans-serif""fontSize":54,"colortext":"#ffffff3","textfontFamily":"FeaturesMontserrat, sans-serif"}]}]},"idname":"lSiInwGpA8cK6ew5Fkmlztext"}],"paramschildren":{[],"paddingid":20,"gap":10,"borderRadiusOLpC1-Pgjlm5sO19zrQ39"},{"params":{"bblvalue":0,[{"bbralign":0"center","btrtype":0"paragraph","isIndividualCornerschildren":false,[{"alltext":0"Schema ","btlfontSize":0}20,"hovercolor":"elevate#ffffff"},"idfontFamily":"8sGgpAEhoNbWpufDnX9IsMontserrat, sans-serif"}]},{"paramsalign":{"paddingcenter":0,"verticalAlignmenttype":"centerparagraph","gapchildren":[{"fontSize":20,"borderRadiuscolor":{"all#ffffff":0,"btrfontFamily":0,"isIndividualCorners":false"Montserrat, sans-serif","btltext":0,"bbl":0,"bbr":0}}"Changes"}]}]},"children":[],"name":"text","id":"9mMYPgwoc1O74DZkegvHw"}],"id":"vxQl8r5axRw3H73kS5E_xUTLUeSdy6Zj667cIjBvm"}],{"name":"column","childrenid":[{"name":"card","zXI-oq_sWnVXrhI0dB3so"},{"children":[{"params":{"valueborderRadius":[{"typebbl":0,"paragraphbbr":0,"childrenbtr":[{0,"fontWeightbtl":7000,"textall":0,"38isIndividualCorners":false},"colorgap":"#4bb9d2"10,"fontFamilyhover":"Montserrat, sans-serifelevate","fontSizepadding":5420}],"alignname":"centercard"}]},"children":[],{"name":"text","idchildren":[],"YCgKCdTm1qwKX5q1EuCdrparams"},:{"paramsvalue":[{"valuechildren":[{"alignfontFamily":"centerMontserrat, sans-serif","childrentext":[{"2","fontSize":54,"fontWeight":20700,"color":"#ffffff#5098fa"}],"fontFamilytype":"Montserrat, sans-serifparagraph","textalign":"Changes & Maintainancecenter"}]},"typeid":"paragraph7DNl9bkskIgNrLnsUqDjN"}]},{"name":"text","children":[],"id":"BR4va-GpZlAJOp2mwMH-1"}],"params":{"borderRadiusvalue":[{"bbralign":0,"isIndividualCornerscenter":false,"btrtype":0"paragraph","btlchildren":0,[{"bblfontSize":020,"allcolor":0},"gap#ffffff":10,"hoverfontFamily":"elevateMontserrat, sans-serif","paddingtext":20"Key"}]},{"idalign":"18AFcFB160BbE0iQeYr8ccenter"}],"paramstype":{"borderRadius"paragraph","children":[{"bblfontSize":020,"bbrcolor":0,"isIndividualCorners#ffffff":false,"allfontFamily":0,"btr":0,"btl":0},"verticalAlignment"Montserrat, sans-serif","text":"centerNotifications"}]}]},"gapid":20,"paddingYLmi5VfiWq6zAkHD5bIWH":0}],"id":"l-GJ3YT3H_VJSsOjq70wPOWVeUSdsPsJFgJV2KFu6M"},{],"name":"column","params":{"verticalAlignment":"center","gap":20,"borderRadius":{"allbtl":0,"bbrall":0,"btrbbr":0,"btlbtr":0,"bbl":0,"isIndividualCorners":false},"verticalAlignmentbbl":"center"0},"padding":0},"childrenid":[{"name":"card",3eUuDQUJ_7Wt3H0ogN0gG"},{"params":{"gap":10,"borderRadius":{"bbrall":0,"isIndividualCornersbtl":false0,"allbbl":0,"bblisIndividualCorners":0false,"btr":0,"btlbbr":0},"paddinggap":20,"hoververticalAlignment":"elevatecenter"},"childrenpadding":[{"params0},"name":{"column"value,":[{"typechildren":[],"id":"paragraphLFnVMjeI8jdrjJ5UCbCpq"},"align{"params":{"borderRadius":{"centerbbr":0,"childrenisIndividualCorners":[{false,"fontWeightbbl":7000,"colorall":0,"#8871f9btl":0,"fontSizebtr":540},"textverticalAlignment":"3center","fontFamilygap":"Montserrat, sans-serif"}]}]20,"padding":0},"name":"textcolumn","children":[],"id":"OLpC1-Pgjlm5sO19zrQ39FotJeCTUtI5G5on3410IY"}],{"params":{"valuegap":[{40,"alignborderRadius":0,"centerlayout":[1,"type1,1,1],"minHeight":200,"paragraph",padding"children":[{"text":"Schema ":0},"fontSizename":20,"color":row"#ffffff","fontFamilyid":"Montserrat, sans-serifd6_mAzNbYQvSXQvqfrwO7"}]},{"alignid":"center","type":"paragraph","children":[{"fontSize":20,"color":"#ffffff","fontFamily":"Montserrat, sans-serif","text":"Changes"}]}]},"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":"Key"}]},{"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

    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 environment variables can be found here: /wiki/spaces/DEV/pages/2151153665

    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 Removed

    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 Removed

    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 Removed

    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 Removed

    After:

    2814-after.pngImage Removed

    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 Removed

    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

    pi#2791

    34273

    Data Connections - Exporting

    The API request for exporting a data connection now includes the associated Categories & Charts.

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

    pi#2786

    34137

    Data Connections - Linked

    Info still needs to be added

    Data Connections - Linked - Sub Org User Not Picking VARIABLE From Parent Date Connection Organisation

    pi#2888

    35123

    Data Connections - Linked

    Info still needs to be added

    MAINTAINANCE

    Vulnerability - CVE-2024-47535 - Denial of Service attack on windows app using netty
    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) - 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

    and

    & 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.

    Vulnerability - CVE-2024-29025

    - netty

    -

    codec-http:

    Allocation of Resources Without Limits or Throttling (Lettuce)

    pi#2389

    30738

    Vulnerability / Library Upgrade

    Updated the Lettuce library from version 6.1.10 to 6.5.1.

    Vulnerability - CVE-2024-45337 - ServerConfig.PublicKeyCallback

    callback may be susceptible to an authorization bypass

    Authorization Bypass (Crypto & Net)

    scheduler#94

    34466

    Vulnerability / Library Upgrade

    Updated the Crypto and Net packages to the most recent versions. This addressed vulnerabilities around the Scheduler and Excel Reader modules.

    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 (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

    mis_audits.audit_date_time and mis_audits.user_code

    migrations#62

    31663

    Foreign Key Added

    between pi_schedule_user_links.schedule_id and pi_schedules.id

    migrations#62

    31663

    Unique Constraint Added

    on pi_schedule_user_link between user_id and schedule_id

    migrations#62

    31663