July 2026 - Dashboard Release Notes

July 2026 - Dashboard Release Notes

Karma - Page Builder

Pre Upgrade Notifications - see below

  • IMPORTANT NOTIFICATIONS

    • Legacy Chart & Embedded Deployment Compatibility - An issue has been identified in 2026_07 release that may affect some customer deployments following upgrade. Legacy Charts created using the Flex Application may fail to load, display SQL errors, contain null values instead of aliases, or fail to populate within the Chart Editor. 

      Customers using embedded dashboards, JWT authentication, browser-based API access, or reverse proxy configurations may also encounter browser CORS errors after upgrade if trusted hostnames, proxy, or origin settings are not aligned. In addition to this, JWT authentication via POST will in most instances fail due to CORS issues even after the settings above have been resolved. The alternative method of adding the JWT directly to the URL via a query parameter is unaffected.

      We strongly recommend validating these scenarios in a development environment before upgrading. Customers who identify affected legacy Charts should postpone upgrading until the 2026_08 release.

    • Scheme Changes - the release contains 9 schema changes

    • Upgrading - please read all release notes from the version you plan to upgrade from and to before you conduct an upgrade. Each release contains changes to functionality; therefore, it’s worth being aware of these before your customers raise queries with you.

    • Updated limit on variable and report names - Be aware of the updated length allowed for variable and report names. If you suspect that you may be impacted by this change, we recommend conducting an audit before proceeding with the upgrade.

    • Upcoming Theme changes - Soon, we will introduce three new standard themes: light, dark and high contrast. These themes will improve accessibility and replace the existing standard themes, which will be deprecated in the November release. Custom themes will not be affected. Existing standard themes will remain available to download from Confluence and can be reinstalled if required.


Added

Chart Builder (beta)

 

 

AI

Chart Builder (beta)

 

 

AI

Users can now create charts by describing what they want in natural language. The new Generate tab sits alongside AI chart search and can automatically select a suitable chart type, match columns from the same data connection, and place the chart in an appropriate category.

Generated charts can be opened in the chart editor, refreshed or deleted directly from the AI chatbox. The feature supports spelling variations, multiple drill-down hierarchies and keyboard navigation, while providing clear feedback when a chart cannot be created.

Chart generation currently uses a single, self-contained prompt. Advanced configuration - including styling, colours, filters, targets, custom SQL and additional data - must still be applied through the chart editor. Some specialist chart types and drill actions are not yet supported.

The feature requires a configured PI-AI service and the AI_CHART_GENERATION beta flag alongside a fully configured AI service (eg OpenAI).

Read the Chart Builder documentation here.

Dynamic Report Summaries (beta)

 

 

AI

Dynamic Report Summaries (beta)

 

 

AI

Users can now create dynamic report summaries for an entire report, utilising up-to-date data and applying user restrictions, access and variables.

Users editing a report with the AI permission turned on can create a dynamic summary page and enter a custom prompt to instruct the AI on how to summarise the data.

The generated text will be displayed in markdown and its style can be altered via the ‘advanced options’ style settings.

When generating dynamic summaries for a scheduled report being sent to a large volume of users, there is likely to be a noticeable performance overhead.

The feature requires the AI_REPORT_DESCRIPTION beta flag alongside a fully configured AI service (eg OpenAI). The old report AI feature is hidden behind a new beta flag - STATIC_AI_REPORT_DESCRIPTION - and is now considered deprecated.

Read the Dynamic Report Summaries documentation here.


Changes

Data connection table introspection not showing error messages in red

pi#3548

41496

Data Connections

Data connection table introspection not showing error messages in red

pi#3548

41496

Data Connections

Adjusted the handling to get the error data when an error occurs.

image-20260709-104912.png

Fixed pie and doughnut charts rendering differently in AI Chart Explorer

pi#3465

 

AI Chart Explorer

Fixed pie and doughnut charts rendering differently in AI Chart Explorer

pi#3465

 

AI Chart Explorer

In the AI Chart Explorer, when using themes other than piBerry, the Pie and Doughnut charts may appear differently from how they are shown in the category. This has been resolved.

Before

After

cf3e0bee-f535-4928-9c6a-8fce8e6d54a4.png
4d63eb75-4315-4e0a-bf27-11e1d2fa0934.png

New default reasoning LLM model available

pi#3686

 

AI

New default reasoning LLM model available

pi#3686

 

AI

A new default OpenAI model has been set for reasoning usages (where the existing default is not sufficient to provide a good experience). At present, existing features still default to gpt-4o-mini, which gives a fast experience and good response for existing features and can be overridden with the AI_CHAT_MODELvariable. The new default for reasoning use is gpt-5-mini, and this will be used for upcoming features requiring more advanced reasoning models. This can be overridden with the AI_REASONING_MODEL variable. We don’t recommend gpt-5-mini for non-reasoning use as it’s significantly slower and more expensive. We recommend, for the best AI experience, to stick with the default/recommended models for the best experience as other models can have a significant performance impact.

Fixed Dashboard configuration screen not showing when there is no data added to a data connection

pi#3709

43000

Dashboard Configuration

Fixed Dashboard configuration screen not showing when there is no data added to a data connection

pi#3709

43000

Dashboard Configuration

Added null handling to handle instances wherein there is no data (table/s) added to a connection in the Data Connections tab. This scenario happens when the PANCREDIT_PARAMETERS table’s ENABLE_VARS_ON_OBJECT_LABELS column is set to 'true'.

Drill to Category - Blank Multi-Select Category Objects not overriding cached/default values

pi#3675

42149

Drill to Category, Category Objects

Drill to Category - Blank Multi-Select Category Objects not overriding cached/default values

pi#3675

42149

Drill to Category, Category Objects

Previously, when drilling to a Category, all multi-picker/checkboxes Category Object filters would be removed if no value was selected. This was due to it not being an explicit selection unlike something like the ‘--All--' of a Drop List which in terms of the data shown would be identical. In the context of Drilling to a Category, this behaviour could lead to some irritating behaviours like previous values not being cleared on a subsequent Drill, making selections lower in the filter cascade unable to be applied. Now, when Drilling to Category blank multi-selects will be retained as an explicitly set filter value, ensuring the Category Objects when you arrive at the target reflect the expected values.

Blank Multi-pickers resulting in broken filters when drilling to a category

pi#3615

42149

Category Objects, Drill to Category

Blank Multi-pickers resulting in broken filters when drilling to a category

pi#3615

42149

Category Objects, Drill to Category

In terms of data filtering, a blank multipicker acts the same as one in which all possible options have been selected. However, when drilling to a Category it is deliberately removed in order to not override things like a default value for the matching Category Object in the Category being drilled to. A bug existed where this removal would break any Category Objects defined below it in the Category being drilled from. This has now been resolved.

Don't use placeholder text as label on AI dialog

pi#3689

 

AI Dialog

Don't use placeholder text as label on AI dialog

pi#3689

 

AI Dialog

Remove the placeholder information from the text input but add it to the descriptions in the centre of the AI dialog.

image-20260709-144146.png

 

Optimisations around the Data Connections Data and Organise tabs

pi#3593

35396

Data Connections

Optimisations around the Data Connections Data and Organise tabs

pi#3593

35396

Data Connections

Added code optimisations aimed to enhance the speed and minimise the rendering of the Data and Organise tabs.

In the Organise tab, debounce has been added so that when filtering for results it no longer happens every keypress but only after the user has stopped typing.

Fixed the End Date of Failed Scheduler Jobs Being Inconsistent with Other Dates

scheduler#141

 

Scheduler, Monitoring Screen

Fixed the End Date of Failed Scheduler Jobs Being Inconsistent with Other Dates

scheduler#141

 

Scheduler, Monitoring Screen

For failed Scheduler jobs, the End Date was not always consistent with the timezone used for the Process/Start Date which could lead to Schedules appearing as if they had failed before they started, or took longer to fail than they actually did. This has now been resolved.

 

Fixes to CORS functionality for the API

pi#2615, pi#3553

32703

Security

Fixes to CORS functionality for the API

pi#2615, pi#3553

32703

Security

An issue in one of our libraries meant we were unable to configure CORS in the way we intended within the system. After recent upgrades in the last few months, this is now possible and has been implemented. CORS is fully applied and restrictive across the whole application apart from the API and application token login endpoints, where it adheres to the trusted hosts setting used for embedding. Wildcard subdomains are fully supported.

Multi-arch Docker images

deploy#8

 

Deployment

Multi-arch Docker images

deploy#8

 

Deployment

An issue with our deployment procedure meant our multi-arch Docker images (images supporting both ARM and AMD architectures in a single manifest) were not being deployed correctly. This has now been resolved. If you use an image with an _arm64 suffix, we recommend migrating to the version without the suffix as the _arm64 versions are deprecated in favour of the multi-arch versions and will not be published in future (exact date yet to be determined).

Reduction in available length for report name and variable name

migrations#76

 

Migrations

Reduction in available length for report name and variable name

migrations#76

 

Migrations

The max length available for report names and variable names has been reduced. The previously allowed lengths were causing issues in the schema because there is a maximum limit in MySQL for the amount of varchar storage in a table. The new limit is 500 characters; any existing report or variable names exceeding this will be flagged up, and the migration will fail, allowing this to be rectified manually prior to retrying the upgrade.

Prevent the creation of legacy columns in mis_chart_columns

pi#3623

-

Technical Debt

Prevent the creation of legacy columns in mis_chart_columns

pi#3623

-

Technical Debt

When creating a chart, redundant entries were being created in the mis_chart_columnstable to maintain legacy compatibility with the no longer supported Flex application. These entries will no longer be created, and a lot of accompanying logic related to/from these legacy formats has also been removed.

Fix Slow AI Responses Resulting in Failure

pi#3706, pi-ai#26

43529

AI Functionality

Fix Slow AI Responses Resulting in Failure

pi#3706, pi-ai#26

43529

AI Functionality

With large quantities of data or slow connections, the time taken for the AI to respond with a Chart Summary could exceed the default 30 second async context for the feature resulting in a ‘A client side error was encountered’. This maximum response time has now been increased to 5 minutes to help mitigate these issues.

Mitigate Stuck Hover Styles on Table Rows When Mouse Scrolling

pi#3648

42193, 44647

Tables

Mitigate Stuck Hover Styles on Table Rows When Mouse Scrolling

pi#3648

42193, 44647

Tables

After a library upgrade, hover styles would frequently remain on table rows when using the mouse to scroll. You would have to re-hover over these stuck rows or refresh the Table in order to clear this styling. Now, this issue has been heavily mitigated with it being theoretically still possible to a limited extent but not readily reproducible. A complete fix for this issue would require multiple upgrades to the library, which is something we are planning to tackle.

Improvements to SSH functionality

pi#3657

42997

Dashboard

Improvements to SSH functionality

pi#3657

42997

Dashboard

Various fixes and upgrades have been made to the SSH functionality:

  • A 2-minute heartbeat has been added to keep alive connections

  • The sshd library has been upgraded to version 2.17.1

  • Improvements have been made in the logging for the functionality

  • Improvements have been made to the null handling when having disabled and misconfigured ssh settings

Upgrades

pi#3764, pi#3734

44905

Upgrades

Upgrades

pi#3764, pi#3734

44905

Upgrades

  • pi#3734 - Grails has been upgraded to version 7.2.0, resolving numerous Jackson Databind related CVEs:

    • CVE-2026-54512

    • CVE-2026-54513

    • CVE-2026-54514

    • CVE-2026-54516

    • CVE-2026-54517

    • CVE-2026-54518

  • pi#3764 - Lodash has been upgraded to version 4.18.1

    • CVE-2021-23337

Removals

  • The ability to revert back to the old category objects implementation with the beta flag NEW_CO_SHOW_OFF has now been removed after a substantial period of time of the old category objects being deprecated. All usage is now via the new superior category objects function.

 


Schema Changes 

Tables

GitLab

ZenDesk

Tables

GitLab

ZenDesk

Removal of the following tables:

mis_license
mis_external_files
mis_message_recipients
mis_object_colours
mis_messages
mis_user_exclude_rss
mis_user_kpi_links
mis_user_watched_kpis
mis_last_table_interactions

pi#3574, migration#80