# Updating to the Latest Version

If you are updating your version of Exago, please consult this guide to be notified of any potential breaking changes. Note that if you are updating from more than one version behind the current one, then the information from that section and all sections above it will apply to you. If your version is not listed, then we do not support a direct update path to the latest version. Please file a support ticket.

# Updating from v2018.1 preview

When updating from a preview release of v2018.1, please consider the following information.

Note: If you were not given a preview version of v2018.1, and you are upgrading from a general release version, then you can safely disregard this information.

## ExpressView Schema Change

Preview versions of v2018.1 included several changes to the way ExpressViews were stored on the file system. The general release of v2018.1 reverted some of these changes. As a consequence, ExpressViews created in a preview version are no longer valid. These will have to be recreated.

# Updating from v2017.3 and earlier

When updating from v2017.3 and earlier, the following topics may require your attention.

- Cartesian Processing disabled by default
- Vertical Table behavior change
- web.config file
- Disable the old Monitoring Service
- Backup appSettings for webservice and schedulers

## Cartesian Processing Disabled

Special Cartesian Processing is now disabled by default when creating a new configuration file. This change was made to better support certain database-processing features.

If you are starting a new configuration, please be aware that reports with Cartesian products with Special Cartesian Processing set to Default will now behave differently on execution. To retain the legacy behavior, either set the Admin Console flag back to True, or set each report-level flag to True (instead of Default).

## Vertical Table behavior change

Vertical Table transformations are now done in the database instead of in application memory. This results in much faster processing as well as the ability to use database-processing features, such as Advanced Joins, with transformed tables.

If you are experiencing issues you can revert to the legacy behavior by setting the configuration file flag <canjointransformobjectsindb> to False.

## web.config file

Certain application settings now require editing the `<WebApp>\web.config` file directly instead of the `appSettings.config` file. If you use a non-default web.config file, make sure that you are tracking your changes so that future upgrading and scaling can occur without error.

## Disable the old Monitoring Service

The installer will install the new Monitoring Service as a separate service instead of overwriting the existing one. If installing over an existing installation, the installer will detect and halt any older services running against the monitoring executable.

In order to prevent older services from restarting on system startup, you should remove or disable them. Otherwise there can be multiple services running against the same installation, which will cause duplicate entries to be written to the monitoring database.

This command line command can be used to delete specified monitoring services:

    sc delete ExagoMonitoringService.full_version_number

### Example

    sc delete ExagoMonitoringService.v2017.2.1.117

## Back up appSettings for webservice and schedulers

Application settings files for the web service and schedulers may be overwritten when updating. If the webservice appSettings is overwritten, REST may be disabled. Make sure to back up your appSettings files before running the installation. Files include:

    <SCHEDULER>/eWebReportsScheduler.exe.config
    <WEBSERVICE>/appSettings.config

Application settings files for the web application and monitoring service will not be overwritten.

# Updating from v2017.2 and earlier

When updating from v2017.2 and earlier, the following topics may require your attention.

- IMPORTANT - REST authorization key field has changed
- Internet Explorer 10 is no longer supported

If you use Application Themes, also see Application Theme Updates for relevant style changes.

## IMPORTANT - REST authorization key field has changed

Upon updating to this version, existing REST web applications will be unauthorized, and most REST calls will fail until action is taken.

The REST web service no longer uses the "Password" field to generate the authorization header key. The new "REST Key" field supplants the Password field for this purpose.

The REST Key field is blank by default upon installation. For security reasons, the Password and REST Key should NOT be the same key. Either migrate the old "Password" to the new field and choose a different Password, or choose a new REST Key and make sure that the new authorization header is being sent.

In the Admin Console you can click the Generate button in the REST Key field to generate a randomized REST key. This is NOT the encoded version - it must still be encoded according to the authentication method in use.

See REST Authentication for more information.

## Internet Explorer 10 is no longer supported

Users will now see an error message when attempting to launch Exago BI in Internet Explorer 10. Please advise your users to upgrade to a supported browser.

# Updating from v2017.1 and earlier

When updating from v2017.1 and earlier, the following topics may require your attention.

- IMPORTANT - Back up your dashboards
  - Verify your dashboard Action Events and update if necessary
- Upgrade from IE9
- Add argument info to your custom functions
  - Customize the MonthName, QuarterName, and QuarterNumber functions if necessary
  - Update the API code if necessary
- (Folder Management) Copy the new themes to your database
- Verify your application themes and update if necessary

## IMPORTANT - Back Up Your Dashboards

Dashboards created or saved in version 17.2 are not compatible with older versions of Exago BI. Old dashboards will be updated to the new format when they are saved in the Dashboard Designer. Back up your dashboards in case of the need for a rollback.

## Action Events

The Dashboard Viewer has undergone significant overhaul. Dashboard action events created for previous versions may no longer work as expected. These should be retested and modified if necessary.

Note: The Resizable Dashboards action event will no longer work in version 2017.2.

When using the OnParameterValueChange action event, the clientInfo.parameterValuesCtrl object will no longer be available in the context of dashboards.

## Internet Explorer 9 is no longer supported

Users will now see an error message when attempting to launch Exago BI in Internet Explorer 9. Please advise your users to upgrade to a supported browser.

## Function enhancements

Nine new functions were added, including four aggregate functions and five miscellaneous functions. Additionally, the built-in functions have had their descriptions overhauled, and their arguments have also been given names and descriptions.

This has some implications for how custom functions are created in the configuration and/or the API.

If you build functions in the API, please note that the MinArgs and MaxArgs properties of UdfFunction objects are no longer valid. Instead specify argument information in the ArgumentsJson property. See .NET API General Reference and Config File XML Reference for more information.

The functions MonthName, QuarterName, and QuarterNumber were added as custom functions in the configuration file. This is to provide administrators with the ability to customize how these functions work.

## Interface updates

Many icons and CSS have been updated to a new color scheme. If you use the default Basic application theme or any of the default icons and CSS, please be aware that you may have to make changes in your styling to reflect the new look.

Several new ExpressView themes were added to the application, and several miscellaneous themes have been updated as well. If you use folder management, you will have to manually update these files in your database.

## Data Fields pane

The data fields pane for ExpressViews, Dashboards, and Advanced/Express/Crosstab Reports has been consolidated into a single pane in the left most application toolbar (underneath the Reports Tree icon). The settings to enable the Data Fields Search Bar for Dashboards and ExpressViews were consolidated into one setting. See Configuration Changes for more information.

Application themes may require some adjustment to match the new layout.

As always, please be aware that you should turn on Column Metadata if you are to enable the Data Fields Search Bar.

## Monitoring Schema Change

The Monitoring database schema has been tweaked. The SystemStatistics table has had a new `TransactionId` column added to associate memory and CPU rows across common transactions. This was done to facilitate a vertical table transform, in order to report off both memory and CPU usage in the same report or chart.

When the monitoring service is restarted after updating, it will assess the schema in the monitoring service's Monitoring.sqlite table and add the TransactionId column. The scheduler and web application local databases will not be altered. The service will henceforth record a TransactionId for scheduler statistics. No existing monitoring data will be modified.

If, for some reason, the table cannot be altered, the monitoring service will abort.

The SystemStatistics table schema should be altered in the configuration file to reflect this change. You can add the TransactionId column to an existing definition, or create a new vertical definition for the table:

    <entity>
      <entity_name>SysStats</entity_name>
      <db_name>SystemStatistics</db_name>
      <!--<datasource_id></datasource_id>-->
      <object_type>table</object_type>
      <key>
        <col_name>transactionId</col_name>
      </key>
      <transform>
        <col_name>type</col_name>
        <val_name>value</val_name>
        <non_transform_col>
          <col_name>timestamp</col_name>
          <data_type>8</data_type>
        </non_transform_col>
        <non_transform_col>
          <col_name>hostId</col_name>
          <data_type>0</data_type>
        </non_transform_col>
        <non_transform_col>
          <col_name>transactionId</col_name>
          <data_type>0</data_type>
        </non_transform_col>
      </transform>
    </entity>

# Updating from v2016.3 and earlier

When updating from v2016.3 and earlier, the following topics may require your attention:

## Standard Reports renamed to Advanced Reports

Standard Reports have been renamed to Advanced Reports throughout the application. 'Standard' has been changed to 'Advanced' in the following areas:

- Some translations were changed to reflect the new report type name to the end user.
  - NewStandardReport
  - NewStandardReportTab
  - ReportTreeContextMenuStandardReport
  - ExpressViewOptionsMenuConvertToStandard
  - ExpressViewOptionsMenuConvertToStandardDisabledInfo
  - SimpleDesignConvertReportBtn
  - AdminGeneralStandardReportSettings
  - AdminGeneralShowStandardReports
  - AdminGeneralShowGroupHeadersFormulaButton
- Some language IDs themselves were changed from referencing "standard" to referencing "advanced."
  - NewStandardReport => NewAdvancedReport
    - Found in: New report menu in the main left pane
  - NewStandardReportTab => NewAdvancedReportTab
    - Found in: Tab title when launching the new advanced report wizard
  - ReportTreeContextMenuStandardReport => ReportTreeContextMenuAdvancedReport
    - Found in: Right-click folder context menu in the main tree
  - ExpressViewOptionsMenuConvertToStandard => ExpressViewOptionsMenuConvertToAdvanced
    - Found in: ExpressView settings menu
  - ExpressViewOptionsMenuConvertToStandardDisabledInfo => ExpressViewOptionsMenuConvertToAdvancedDisabledInfo
    - Found in: ExpressView settings menu tooltip
  - AdminGeneralStandardReportSettings => AdminGeneralAdvancedReportSettings
    - Found in: Admin Console General settings section title
  - AdminGeneralShowStandardReports => AdminGeneralShowAdvancedReports
    - Found in: Admin Console General settings setting title
- Some image names were changed from referencing "standard" to referencing "advanced."
  - CopyAsStandard => CopyAsAdvancedReport
    - Found in: ExpressView settings menu
  - NewStandardReport => NewAdvancedReport
    - Found in: Right-click folder context menu in the main tree
  - NewStandardReportItem => NewAdvancedReportItem
    - Found in: New report menu in the main left pane
  - TreeStandardReport => TreeAdvancedReport
    - Found in: Reports tree next to any standard report

The config file keys under General and Roles/General have changed from "showstandardreports" to "showadvancedreports." Existing configs with showstandardreports will load just fine.

New API enumerations are available: wrApiAction.NewAdvancedReport supersedes wrApiAction.NewReport. wrReportType.Advanced supersedes wrReportType.Standard. Please adjust your code accordingly.

## Changes to home page

The 'Main Menu' section of the home page has been redesigned. Several icons have undergone changes, and there is now no logo in the upper left corner. If you are using a custom application theme, you may have to make some changes to your css and images.

The 'Browse Reports' menu is more easily collapsible. Additionally, its expanded or collapsed state is preserved per user, via a new user preference.

## ExpressView default theme with folder management assembly

ExpressViews now support custom theme files, which have the extension .wrtev. These are JSON files, unlike previous themes. To create a custom theme, style an ExpressView, then hold Alt-Ctrl-Shift and press the Save icon. The theme is saved to the Reports folder, but you can move it to the Themes folder if you wish; it is accessible from either location. The theme type "ExpressView" has been added to the relevant folder management methods.

If you are using a folder management assembly to store report and theme data, you need to manually add the file {Exago}\Themes\Legacy.wrtev to your theme storage. This is the default ExpressView theme. Otherwise users will encounter errors with ExpressViews.

## Top N filters enabled by default

A new way to filter reports, called Top N or Top/Bottom, has been added and is enabled by default. If you want to disable this feature, change the admin setting Filter Settings > Show Top N Filters to False.

# Updating from v2016.2 and earlier

When updating from v2016.2 and earlier, the following topics may require your attention:

## Move custom CSS and images

A new feature in this version is the ability for Admins to add downloadable Application Themes, which change the overall look of Exago for all users. A side effect of this feature is that the file paths for CSS and images has changed. After updating to this version, any custom CSS or images will still be in the old locations, and will have to be moved.

The Css and Images folders are now located in separate theme folders in the file path "Exago root"\ApplicationThemes\. The default Exago theme is called Basic. Move your custom Css and Images folders into the Basic sub-folder within the ApplicationThemes file path. You may need to re-check your CSS to ensure you're using relative paths, not absolute. Then check the following setting to ensure that the Basic theme is selected:

( Feature/UI Settings Application Theme Selection ) <csstheme>

You may still not be able to see your custom images. If so, please see the next section.

Additional note: If you are using custom CSS to hide the default Exago logo, please note that the element type has changed from an img to a div. In your stylesheet, you'll now need to use this selector: div.wrMainCompanyLogo

## SVG icons enabled by default

When you update to this version, Exago will default to the new SVG icon set. There are several considerations of note.

SVG icons may not be compatible with all browsers or operating systems. Compatible browsers include Google Chrome, Firefox 3.0+, Internet Explorer 9.0+, Edge, Safari, and most mobile browsers. If your users cannot see the new icons, you can switch back to the PNG icons by toggling this setting to False:

( Feature/UI Settings Use SVG for Application Icons ) <usesvgforappicons>

If you were using custom icons, then Exago will no longer be looking in their location, and you will see the default icons instead. Either create SVG versions of your custom icons and place them in the default theme path below, or switch back to the PNG icons using the setting above.

"Exago root"\ApplicationThemes\Basic\Images\svg

If you decide to use the new SVG icons, you should not have to alter any custom CSS or Action Events, since the images are identified by html element tags, not filenames.

## Setting column metadata for ExpressView

The new ExpressView designer features a data field search bar by default. If you leave this enabled, it is highly recommended to set the column metadata for available data objects in order to reduce the frequency of database queries.

To set object metadata using the Admin Console, expand Data > Objects, and then double-click on an Object, or select the Object and press (Edit). This will open the Objects tab.

Press the Column Metadata button to open the Column Metadata editor. Then press the Read Schema button. This will automatically add metadata for every column in the data object. Press OK to close the editor.

Next, set the Schema Access Type to Metadata. Alternately, you can use the following setting to enable this option for every data object (this will cause errors if a data object is missing metadata):

( Other Settings Global Schema Access Type ) <schemaaccesstype>

Press Apply or OK to save your changes. Do this for every data object.

## Legacy Mapping (Geocharts)

The Geocharts feature which was present since v2013.2 has an additional requirement if you are implementing your application under a new domain name.

Our mapping features use the Google Maps API. Historically, this was a free solution. However, in June 2016, Google began to require paid licenses for commercial usage. If you had mapping enabled prior to June 2016, and you are not planning on implementing your application under a new domain name, this section does not affect you because you have been grandfathered in.

If you intend to implement legacy maps under a new domain name, then you must acquire a Google Maps API License in order to use this feature. See this page for details. Your license must include the Google Maps Javascript API.

To install your license file, place your license key in the following setting in the Admin Console:

( Feature/UI Settings Geochart Map Key ) <geochartmapkey>

## Obtain license and polygon file for new maps

There are additional steps needed in order to enable the new Google Maps wizard.

First, you need to download and install a polygon file. This is a free download located on our support site. The file is named 'MapPolygonDataBase.sqlite'. Once you've obtained this file, place it in the following location in your install path (if the folder does not exist, create it):

"Exago root"\Mapcache

This file may receive periodic updates to support additional regions. Please check back occasionally to see if an update has been posted. To install an update, simply overwrite the file with the new version.

Next, the new wizard uses the Google Maps API, which requires a paid license for commercial use. You must acquire a Google Maps API License in order to enable this feature. See this page for details. Your license must include the Google Maps Javascript API and the Google Maps Geocoding API.

To install your license file, first toggle the following setting to True:

( Feature/UI Settings Show Google Maps Wizard ) <showgooglemapwizard>

Then place your license key in the following setting in the Admin Console:

( Feature/UI Settings Google Map Key ) <googlemapkey>

## Properly identify One-to-Many Joins

Database aggregation is a new feature which aims to improve report performance by performing some aggregate calculations in the database, rather than in the application.

In order to use this feature, you must ensure that all One-to-Many joins in your configuration are properly identified. One-to-Many joins are incompatible with database aggregation. If Exago does not recognize the joins as such, you will see incorrect values without any warning.

The Data Source Metadata Discovery tool cannot identify whether joins are One-to-Many. By default it sets all joins as One-to-One. If you used this tool to autofill your Objects and Joins, you must take the following precautions before enabling Database Aggregation.

To set your joins using the Admin console, expand Data > Joins, and then double-click on the Join, or select the Join and press (Edit). This will open the Joins tab.

In the Relation Type drop-down menu, select One To Many. Then press Apply or OK to save your changes. Do this for every One-to-Many join.

## Interactive sorts no longer added by default

New reports added using any New Report Wizard will no longer automatically add interactive column sorts for each data field in the layout. Previously created reports will be unaffected. This change was made to better support database aggregation out of the box. Due to technical limitations, reports with interactive sorts or filters will not see any performance improvement from database aggregation.

## Column Metadata API constructors changed

The .NET API constructors for EntityColumnMetadata were changed to support the additions to column metadata. The following overloads are now available (new params are highlighted):

public EntityColumnMetadata(string columnName)

public EntityColumnMetadata(string columnName, string columnType, string mnemonicName, string columnDescription, string filterColumnName, string sortAndGroupByFormula, ConditionalBoolean isVisible, ConditionalBoolean isFilterable, ConditionalBoolean isSortable)

public EntityColumnMetadata(string columnName, string columnType, string mnemonicName, string columnDescription, string filterColumnName, string sortAndGroupByFormula, ConditionalBoolean isVisible, ConditionalBoolean isFilterable, ConditionalBoolean isSortable, EntityColumnSource columnSource, string columnValue)

Old constructor overloads are no longer valid. If you are implementing this class, please update your code. For more information about the added features, please see the Column Metadata Enhancements article on our support site.

# Updating from v2016.1 and earlier

When updating from v2016.1 and earlier, the following topics may require your attention:

## Deprecated Group Formulas

Grouping on a formula from the Group Header or Group Footer menu is now deprecated and the group formula button is removed.

To group on formulas, you must now create a sort formula in the Sorts menu, by using the formula button:

Then create a group header or footer on the sort formula:

To re-enable the Group Formula button, enable the admin console setting Feature/UI Settings > Allow Grouping on Non-Sorts.

## Deprecated Sort API Fields

With the addition of sort formulas, several fields in the Sort API object are deprecated. Apps which use sort objects should be updated to the newer syntax.

- Sort.Name – Use Sort.SortText
- Sort.EntityName – Use Sort.EntityNames
- Sort.Entity – Use Sort.Entities
- Sort.ColumnName – Use Sort.ColumnNames
- Sort.DataSetFilterName – Deprecated, no alternative
- Sort.DataType – Deprecated, no alternative
- Sort.SaveName – Deprecated, no alternative
- Sort.DbName – Deprecated, no alternative

## Allow Scheduler Registry Access

Scheduler services now take system resources into account when balancing load between remote execution servers. Schedulers must be allowed read access to the system registry in order to collect performance data.

This can be done by adding the services to the Performance Monitor Users group (or to a group with higher level permissions).

See How to Read Performance Counters Without Administrator Privileges (MSDN) for more information.

## Increased Dashboard Refresh Speed

The speed at which Dashboards refresh their data has been significantly increased. Embedded reports and visualizations will now reload much more rapidly. Additionally, the refresh indicator has been reduced in size to a small hourglass on each embedded item.

For automatic timed reloads, the hourglass can be disabled by toggling the following Admin Console setting to True:

Feature/UI Settings > Refresh Reports/Visualizations on Dashboards Silently

# New Features

## v2018.1

- ExpressView Formulas – Make columns and groups using Exago formulas.
- Report-Level Custom SQL – Write reports using custom SQL statements.
- Cookieless Sessions – Embed the JavaScript API into cross-origin environments.
- OnScheduledReportExecuteStart server event – Intercept and modify scheduled and remote executions before they run.
- Infinite Scrolling – Allows Report Viewer to load rows incrementally by paging.
- Enhancements to OnDataCombined server event, Programmable Data Objects, Vertical Table transformations, ExpressViews, and more.

## v2017.3.1

- End-user interface for Complex Joins and Category Aliasing

## v2017.3

- Secure Credential Storage – The Admin Console password can now be encrypted in the configuration file.
- ExpressView Database Aggregation – For ExpressViews and dashboard visualizations, detail information can be omitted, allowing performant aggregate calculations to be made in the database.
- Hide ExpressView Aggregates – Aggregate type 'None' can be selected for ExpressViews and dashboard visualizations.
- Hide Excel Gridlines – Grid lines can be hidden for Excel output reports.
- Filter Dropdown Enhancements – Filter dropdown lists can be narrowed down to values that 'contain' the typed text. Dropdowns will now continue to pull values incrementally on-demand after the first hundred.
- Linked Report Display Options – More config options for how linked reports display when opened.

## v2017.2

- Dashboards Overhaul – Dashboards have undergone a complete redesign. The interface is more modern and similar to the ExpressView interface. Filters, Parameters, Style, and Settings are consolidated into one pane. Drag reports onto the dashboard directly from the report tree. Make ExpressView Visualizations directly on the dashboard. Scale and fit to different screen sizes.
- JavaScript API – Use JavaScript to embed Exago elements directly into HTML DIV elements, without needing to use iFrames.
- Incremental Loading – Step through a report execution, one set of rows at a time.
- New Chart Types – Statistical Process Control (SPC), Zoom Line, and Zoom Scatter charts.
- Dynamic Chart Benchmark Lines – Chart benchmark lines based on data. Several different formulas available.
- Analytical Aggregate Functions – Mean, Median, Mode, Standard Deviation, and Variance functions
- ExpressView updates – Now usable in dashboards and chained reports, and can be scheduled.
- Formula Editor enhancements – Interactive description tooltips for functions and arguments; type-to-search for functions, parameters, data fields, and cells; auto-complete; and argument placeholders.
- Freezing Rows & Cols for Excel export
- Complex Joins & Entity Cloning – Join to constants, sub-selects, and expressions; Use join formulas with inequality operators and nested expressions.
- New built-in Custom Functions and Date Filter Functions

## v2017.1

- ExpressView updates – Charts, Styling, Data Formatting, and Themes are now available in the ExpressView designer.
- Top/Bottom Filtering – Now available in ExpressView and Report Designer. Also known as Top N filtering. Allows users to filter the data to the highest or lowest values in a data set. This also allows for sorting based on an aggregate formula.
- Monitoring – Ability to track application metrics and system performance. Off by default, completely configurable, and all data stored locally.
- Execution Caching – Reports can use a data cache, which stores report execution data and refreshes it on a schedule. Running a report uses the cache instead of querying the database.
- Conditional Chart Filtering – Change chart colors based on a data condition.
- Supply "canned" SQL for new reports (through API)
- More page sizes available in export settings
- Double underline font formatting available

## v2016.3

- ExpressView – ExpressView is a new concept for working with data which is quick and easy for new users to pick up and learn. This is a brand new interface designed from the ground-up to minimize the number of steps needed to create data views. The interface is drag-and-drop and touchscreen capable. New users should find ExpressView to be much more intuitive than the Standard Report Designer.
- New Mapping – Mapping has been completely overhauled with a new designer, better appearance, and more precise location capabilities. Users can now drill down to the county or zip code level.
- Multi-Axis Charts – Added ability for Admins to add up to two additional Y-axes for several chart types.
- Combination Charts – A new chart type is available, which allows users to combine several different types of charts into one.
- Application Themes – Administrators can now apply prebuilt downloadable themes, which are an easy way to change the look of the application.
- Scalable Vector Icons – Each theme comes with a set of optional SVG icons for a better appearance on high resolution screens.
- Database Aggregation – Added option to perform certain aggregate calculations in the database. This will improve the performance of compatible reports.
- Custom Columns – Added ability for admins to create custom columns in a data object, based on a formula.
- Column Metadata enhancements – Added "currency" data type. Added the ability to specify whether a column is sortable, and the ability to specify a formula by which a column should be sorted and grouped. Admins can also add description hovertext to data fields.
- Launching Non-Exago Reports – Admins can now add additional capabilities to the main menu. This can be used to let users view non-Exago reports, and to launch external applications.
- Scheduler Enhancements – Data sent to and from schedulers can now be encrypted. Schedule jobs can be more easily managed through the API. Added a timeout option to automatically kill hung executions.
- Amazon S3 – Reports, folders, config, and temp data can now be stored in an Amazon S3 cloud drive.
- FIPS Compliance – Encryption is now FIPS Compliant.
- Improved memory consumption – Exago will now run garbage collection at specified intervals to reduce memory consumption.

## v2016.2

- Sort by Formula – Allows users to add sorts and groups based on a formula field.
- Batch Reporting – A new interface has been added to the scheduler which allows for sending customized reports en masse, which are filtered based on the recipient.
- Chained Report Collation – An option has been added to collate chained reports based on a common sort field.
- Custom Linked Fields – Linked report drilldowns are now customizable. Users can specify which fields to link between reports. An optional formula can be used to filter the drilldown.
- Scheduled Email HTML – An option has been added to allow for the use of HTML tags in the bodies of scheduled emails.
- Dashboard performance improvements – The performance and visuals when refreshing dashboards has been improved. An optional "silent" refresh option has been added which disables the report loading hourglass when a dashboard report refreshes automatically.
- Group Min/Max Filters – An alternate method of filtering data has been made available to users. The ability to filter a min or max value for every group in a data set has been added as a toggle to the Filters menu.
- SessionInfo access in assembly – The sessionInfo object can now be accessed in assembly data sources.
- Improved linked reports filtering – Report viewer interactive filter and dashboard filter item states now propagate to the child report when clicking through to a linked report.
- Azure folder management performance improvements – Using Azure for report and folder management has been optimized to reduce cloud service calls.

## v2016.1

- Updated and enhanced User Interface – Exago has been redesigned with new modern style interface which will integrate more cleanly into modern style apps.
- Enhanced Chart Wizard – The Chart Wizard has been redesigned and now allows for many more ways to create and customize charts than before.
- Spark line and spark column charts – By popular request, two new chart types have been added: Spark line and Spark column charts.
- Scheduler Re-Architecture – Allows administrators to implement their own queuing mechanism and load-balancing of scheduled reports.
- Responsive Dashboards – Administrators can implement a new Action Event which allows dashboards to resize according to screen size.
- Parameter selection drop-downs – Administrators can now implement drop-down selection menus for report parameters.

# Configuration Changes

The following section details the changes made to the configuration xml file.

## v2018.1.0

Added to <general>

- <googlemapjsapikey> Specify the Google Maps API key for the JS API, for restricted or unrestricted keys, and optionally the Geocode API for unrestricted keys. Replaces <googlemapkey>.
- <googlemapgeocodeapikey> Specify the Google Maps Geocode API key for restricted keys.
- <expressviewjoinpathalgorithm> Specify the standard or legacy algorithm for finding join paths between fields on ExpressViews.
- <allowreportcustomsqlobjects> Allow Report-Level Custom SQL objects.
- <excludedatasourcesreportcustomsql> Exclude data sources from Report-Level Custom SQL.
- <dbrowlimitparamname> Programmable object parameter name for Database Row Limt.
- <dbrowrangestartparamname> Programmable object parameter name for Row Range Start Index.
- <dbrowrangeendparamname> Programmable object parameter name for Row Range End Index.
- <loadassemblyinexternaldomain> (HIDDEN FLAG) Load assemblies in external domain.
- <canjointransformobjectsindb> (HIDDEN FLAG) Use database to transform vertical tables.
- <cacheconfig> (HIDDEN FLAG) Cache the SetupData in the session.

Removed from <general>

- <googlemapkey> Replaced by <googlemapjsapikey>

Added to <entity>

- <affinity> For entities created in the API, whether they have affinity to the report or the configuration.
- <suppress_sort_filter> Suppress application sorting and filtering for programmable objects.

Added to <join>

- <affinity> For joins created in the API, whether they have affinity to the report or the configuraiton.

Added to <role> • <rolegeneral>

- <allowreportcustomsqlobjects> Allow this role to create, edit, and execute report-level SQL, if it is enabled in the configuration.

Added to <role> • <security>

- <includereportcustomsqlobjects> Allow this role to execute report-level SQL, if it is enabled in the configuration and if <allowreportcustomsqlobjects> is False.

## v2017.3.1

Added to <general>

- <showcomplexjoins> Specify whether the report Joins window shows options for creating complex joins.
- <showcategoryalias> Specify whether the report Categories window allows for categories to be aliased.

## v2017.3

Added to <general>

- <linkedreportdisplay> Specify the position which linked report drilldowns display when opened. Replaces <linkedreportsinnewtab>
- <restkey> Specify the REST web service authorization key. Supersedes <password> for this purpose (does not replace <password> for Admin Console authentication).
- <allowearlypagebreak> (HIDDEN FLAG) Allow page breaks to be inserted at the beginning of reports.
- <cachevisibilitylevel> Control what visibility permissions users can assign to execution caches. Supersedes <schedulemanagerviewlevel> for this purpose.

Removed from <general>

- <linkedreportsinnewtab> replaced by <linkedreportdisplay>

## v2017.2

Added to <general>

- <formulafunctionsloaded> (HIDDEN FLAG) Whether the default functions are loaded in the config
- <aliasallentities> (HIDDEN FLAG) Use all entity IDs as SQL aliases (default: False)
- <safemode> (HIDDEN FLAG) Add additional entity verification at runtime; set True unless otherwise instructed
- <reporttreeshortcut> Default "Run" shortcut button for report tree (default: Run)
- <logginglevel> The severity level at which events are logged (default: INFO); replaces <writelog>
- <showdatafieldssearch> replaces <showdashboarddatafieldssearch> and <showexpressviewdatafieldssearch>

Removed from <general>

- <visualizationdbrowlimit>
- <writelog> replaced by <logginglevel>
- <showdashboarddatafieldssearch> replaced by <showdatafieldssearch>
- <showexpressviewdatafieldssearch> replaced by <showdatafieldssearch>

Added to <function>

- <arguments_json> details about the function arguments; replaces <min_args> and <max_args>
- <variable_arguments> whether the last argument is a list

Removed from <function>

- <min_args> replaced by <arguments_json>
- <max_args> replaced by <arguments_json>

## v2017.1

Added to <general>

- <executioncache> Enable or disable execution caching (default: False)
- <showtopn> Enable or disable Top N filters (default: True)
- <showadvancedreports> 'Standard' reports were renamed to 'Advanced' reports. Replaces <showstandardreports>

Removed from <general>

- <showstandardreports> replaced by <showadvancedreports>

## v2016.3

Added to <general>

- <showgooglemapwizard> Enable the new Google Maps Wizard.
- <googlemapcolors> Google maps default colors, as hex or html color names, separated by commas.
- <googlemapkey> Google Maps API key for new Google mapping.
- <geochartmapkey> Google Maps API key for Geochart (legacy) mapping.
- <currencydecimalplaces> Number of decimal places for currency-formatted data fields.
- <applygeneralcurrencyrightalignment> Automatically right-align currency-formatted data fields.
- <usesecureremotingchannel> Enable secure channel for scheduler remoting.
- <usesvgforappicons> Enable or disable SVG icons for application themes.
- <showexpressviews> Enable or disable the ExpressView designer.
- <allowexpressviewliveedit> Allow editing ExpressViews in live mode.
- <showexpressviewdatafieldssearch> Enable or disable the ExpressView data field search bar.
- <csstheme> Select application theme.
- <maxjobexecutionminutes> Max time to run an execution job before timing out.
- <aggregateandgroupindatabase> Enable calculating aggregates in the database.
- <allowmd5onfips> Allow a FIPS-compliant server to encrypt PDF files.

Added to Scheduler configuration file

- <secure_channel> Enable secure channel for scheduler remoting.
- <max_job_execution_minutes> Max time to run an execution job before timing out.

## v2016.2

Added to <general>

- <showlinkreportfields> Enable or disable the Fields tab in the Linked Reports dialog.
- <showlinkreportformula> Enable or disable the Formula tab in the Linked Reports dialog.
- <enablebatchreports> Enable or disable batch reporting.
- <showgroupheadersformulabutton> Enable or disable the formula button in a group section dialog.
- <allowhtmlinscheduledemails> Enable or disable using html in scheduled email body text.
- <crosstabmaximumfields> Specify the maximum number of fields allowed in the row header, column header, or tabulation data of a crosstab or crosstab report.
- <silentdashboardrefresh> Enable or disable the hourglass for dashboard automatic timed reloads.

## v2016.1

Added to <general>

- <schedulerqueueservice> Path to the scheduler queue handler service.

Added to <parameter>

- <parameter_dropdown> Fields for adding parameter dropdown lists to report parameters. For the full documentation, see Parameter Dropdowns, or the Technical Guide.