Chapter 2. Release Notes

2.1. What's new in 0.10?

2.1.1. Upgrade notes and breaking changes

Major breaking changes

  • This release contains a new pullreports-catalog-1.2.0.xsd schema file. Change the xmlns attribute in each Pull Reports™ XML Catalog file to the new value.

    <catalog xmlns="http://www.pullreports.com/catalog-1.2.0"...

  • This release changes the <column> export attribute type from boolean to an enumeration of strings: always|optional|never. Any <column> defined as export='false' should be changed to export='never'. Any <column> defined as export='true' should be changed to either export='optional' or export='always'.

    Additionally, there is a new Pull Reports™ XML Catalog file requirement that at least one <column> of each <report>s base table must be set as export='always'.

    See this release note for more information.

Minor breaking changes

  • The GET Report Information JSON response schema's column.export value type changed from boolean to string. This API is used internally by the Pull Reportsad hoc report creator, but any custom clients dependent on this API should change accordingly.

  • The Export Report REST API columns parameter now requires that the base table path, if specified, must be at the first position in the table path list.

2.1.2. <column>s may now be optionally included in Export Report REST API

This release enhances the Export Report REST API columns parameter to allow the exact specification of columns and column order within the export results.

Specifying a full table resource path within the columns parameter continues to return all the columns available within that table in the order specified within the Pull Reports™ XML Catalog file. For example:

&columns=/some/table/path

However, the columns parameter now supports appending a @ character to the table resource path followed by a comma separated list of <column> ids. This will restrict the export results to just the listed columns in the given order. For example:

&columns=/some/table/path@columnId1,columnId2

To support this enhancement, the permitted values of the <column> export parameter changed from true|false to always|optional|never.

See the <column> element and columns parameter documentation for more information including the new requirement that at least one column of the <report>'s base table be defined with export='always'.

Visit the Pull Reportsweb service demonstration page for a demonstration of including specific columns in an Export Report REST API result.

Note

This release does not yet support optionally including columns from Pull Reportsad hoc report creator export results.

2.1.3. Dynamic creation of Pull Reports™ XML Catalog files

This release adds a new method to specify Pull Reports™ XML Catalog files during initialization. Use the factory: prefix within the pullreports.properties, catalogs property to indicate a Java factory class responsible for dynamically creating a Pull Reports™ XML Catalog file.

See the pullreports.properties documentation for more information.

2.1.4. <table_ref> elements may have a <description>

This release allows <table_ref>s to have an optional child <description> element. If defined, a <table_ref> description overrides the description from the referenced <table>.

2.1.5. Ability to override Leaflet GeoJSON Layer options

This releases increases the Leaflet mapper configuration options available within ad hoc report creator initialization and the Export Report REST API map format.

The new geoJsonOptions property permits customization of the creator's and map format's Leaflet GeoJSON layer including popups, geometry style, and feature filtration.

2.1.6. Improved error handling for <url_template>

Errors in <url_template>s can cause invalid responses from the Export Report REST API because the errors occur after the response is already streaming to the client. This release includes improved error handling and logging for these error conditions.

2.1.7. REST-API dependency upgrades

The following Java dependencies are upgraded.

  • org.codehaus.groovy:groovy-all to 2.4.11

  • org.slf4j:slf4j-api to 1.7.25

  • com.opencsv:opencsv to 3.9

2.2. What's new in 0.9?

2.2.1. Upgrade notes and breaking changes

JNDI data source configuration is now exclusively configured within pullreports.properties. Although this change allows more flexible, per-report data source configuration, it means these breaking changes:

  • The <catalog> jndiDataSource attribute is no longer supported.

  • This release contains a new pullreports-catalog-1.1.0.xsd schema file with the jndiDataSource attribute removed.

  • The pullreports.properties default.jndiDataSource property is renamed to jndiDataSource.

See Per-<catalog> and per-<report> property configuration for more information.

2.2.2. Ad hoc creator usability improvements

The ad hoc report creator Available Tables component received several usability improvements in the 0.9 release.

2.2.2.1. Column names now visible in table closed state

The first several <column> display names are now visible on the table component when the table is in its closed state. This helps users quickly review the columns without having to open the table.

2.2.2.2. Multiple tables open at once

More than one table component can now be opened a time. This helps users review many tables at once.

Additionally, the Available Tables component title bar contains buttons to open and close all tables with just one click.

2.2.2.3. Swatches indicate tables within export

Each table included within the export results is represented by a swatch button on the Available Tables component title bar. Clicking the swatch toggles the table's open/closed state and focuses the table within the Available Tables component. The new swatches provide a quick visual of which tables are in the current export and an easy way to navigate to an included table.

2.2.2.4. Non-exportable icon in table information tab

<column>s set to export="never" are now denoted with a special icon within the table's Info tab in addition to the text Not included in export results. Only for filtering.

2.2.3. Ability to decorate Export Report REST API output with Servlet includes

Decorate the HTML output of the html and map Export Report REST API formats via Servlet includes. This feature permits easy customization of the outputs with HTML, JavaScript, and CSS and provides an alternative decoration technology to SiteMesh.

2.2.4. Improved filter output for html, htmltable, and map output formats.

This release improves the readability of filters applied to the Export Report REST API results in the html, htmltable, and map formats. The filter format now following this pattern:

Table: <em>[table.displayName]</em>, Column: <em>[column.displayName]</em> <samp>[operator]</samp> [value(s)]

2.2.5. Row offset, limit, and total count added to html, htmltable, and map output formats.

The html and htmltable Export Report REST API formats now display the offset, limit, and total row count values within the table <caption>.

Additionally, the map format now displays the distinct feature count and raw data row offset, limit, and count values above the map.

2.2.6. Logging improvements

Logging may now be isolated to a specific <catalog>s or <report>s.

2.2.7. Per-<catalog> and per-<report> property configuration

Most properties within pullreports.properties may now be configured per-<catalog> or per-<report> by (.) appending the <catalog> id and, optionally, <report> id to the property name. Properties values specified at a lower scope (e.g. <report>) override the same property specified at a higher scope (e.g. <catalog> or global).

Properties whose values may now be customized per-<catalog> and per-<report> are:

  • jndiDataSource

  • export.report.maxResults

  • export.report.postgresql.queryCostMaximum

2.2.8. Documentation improvements

The GET Label Value List REST endpoints are now documented.

2.2.9. REST-API dependency upgrades

The following Java dependencies are upgraded.

  • org.codehaus.groovy:groovy-all to 2.4.8

  • org.slf4j:slf4j-api to 1.7.22

2.2.10. Creator dependency upgrades

The following ad hoc report creator JavaScript dependencies are upgraded.

  • Angular Bootstrap upgraded to 2.5

2.3. What's new in 0.8?

In addition to closing over 17 defects and minor enhancements, release 0.8 contains these functional enhancements.

2.3.1. Support for Grails 3

Pull Reports™ now supports Grails 3 deployment. See the installation guide for more information.

2.3.2. Full Screen Mode

The ad hoc report creator now has full screen mode to better utilize all available screen space. This is especially useful when working with large <table> graphs in the Available Tables component.

2.3.3. Searchable filter value lists

The ad hoc report creator now supports type-ahead search when choosing filter values for <column>s of paramType java.lang.String. This features makes finding values in a long <label_value_list>s much easier.

2.3.4. Leaflet Mapper customization

The Export Report REST API map format now supports customization of the Leaflet Mapper. Add Leaflet layers and controls via the mapConfig global JavaScript variable.

2.3.5. HttpServletRequest available within <url_template>s

The <url_template> element within Pull Reports™ XML Catalog files now supports a reference to the HttpServletRequest associated with the Export Report REST API request. This permits the use of HTTP header and parameter values when creating drill through URLs.

2.3.6. Configurable query cost limits for PostgreSQL

The new export.report.postgresql.queryCostMaximum configuration property sets a query cost maximum on each PostgreSQL database query formulated by the Export Report REST API. The property allows an administrator to prevent resource utilization overruns caused by relational cross join products or other excessive export requests.

2.3.7. Creator dependency upgrades

The following ad hoc report creator JavaScript dependencies are upgraded.

  • Angular Bootstrap upgraded to 2.1

  • RequireJS upgraded to 2.3