Skip to content

v7.0-alpha.1

Choose a tag to compare

@jc064522 jc064522 released this 23 Apr 14:48
* Fix config issue

* Fixed NPE created when using empty config sections.

* Issue **#1122** : Fixed hessian communication between stroom and stroom proxy used to establish feed receive status. Added restful endpoints for feed status to stroom and stroom proxy. Proxy will now be able to request feed status from upstream stroom or stroom proxy instances.

* Fixed incompatibility issues with MySQL 5.7 and 8.0.

* Added debug to help diagnose search failures

* Issue **#382** : Large zip files are now broken apart prior to proxy aggregation.

* Change start script to use absolute paths for jar, config and logs to distinguish stroom and proxy instances.

* Issue **#1116** : Better implementation of proxy aggregation.

* Issue **#1116** : Changed the way tasks are executed to ensure thread pools expand to the maximum number of threads specified rather than just queueing all tasks and only providing core threads.

* Remove full path from file in sha256 hash file release artifact.

* Issue **#1115** : Add missing super.startProcessing to AbstractKafkaProducerFilter.

* Improve exception handling and logging in RemoteDataSourceProvider. Now the full url is included in dashboard connection errors.

* Change Travis build to generate sha256 hashes for release zip/jars.

* Uplift the visualisations content pack to v3.2.1

* Issue **#1100** : Fix incorrect sort direction being sent to visualisations.

* Add guard against race condition

* Add migration script to remove property `stroom.node.status.heapHistogram.jMapExecutable`.

* Uplift base docker image to openjdk:8u191-jdk-alpine3.9, reverting back to JDK for access to diagnostic tools.

* Issue **#1084** : Change heap histogram statistics to java MBean approach rather than jmap binary. Remove stroom.node.status.heapHistogram.jMapExecutable property.

* Improve resource for setting user's status

* Issue **#1079** : Improved the logging of permission errors encountered during stream processing

* Issue **#1058** : Added property `stroom.pipeline.parser.secureProcessing` to enable/disable the XML secure processing feature.

* Issue **#1062** : Add env var for UI path

* Uplift distribution visualisation content pack to v3.1.0

* Add transform_user_extract.py, for pre-6.0 to 6.0 user migration

* Issue **#1059** : Fix guice errors on stroom-proxy startup.

* Issue **#1010** : Improve distribution start/stop/etc scripts by adding monochrome switch and background log tailing.

* Issue **#1053** : Add API to disabled authorisation users

* Issue **#1042** : Improve error message for an ApiException when requesting a user's token.

* Issue **#1050** : Prevent creation of permission entries if key already exists.

* Issue **#1015** : Add sortDirections[] and keySortDirection to visualisation data object to fix sorting in the visualisations.

* Issue **#1019** : Fix visualisations settings dialog so you can un-set text and list controls.

* Issue **#1041** : Add a healthcheck to Stroom to alert for API key expiry

* Issue **#1040** : Fix for visualisations that do not require nested data.

* Issue **#1036** : Fix for scrollbar position on explorer popup windows.

* Issue **#1037** : Updated `moment.js` for parsing/formatting dates and times.

* Issue **#1021** : Dashboard links now allow `{}` characters to be used without URL encoding.

* Issue **#1018** : Added Health Checks for the external connectors that are registered via plugins

* Issue **#1025** : Fixed ACE editor resize issue where horizontal scroll bar was not always correctly shown.

* Issue **#1025** : Updated ACE editor to v1.4.2.

* Issue **#1022** : Added `Contains` condition to all search expression fields so that regex terms can be used.

* Issue **#1024** : Superseded output helper no longer expects initialisation in all cases.

* Issue **#1021** : Multiple changes to improve vis, dashboard and external linking in Stroom.

* Issue **#1019** : Fix visualisations settings dialog so you can un-set text and list controls.

* Issue **#986** : Fix direct dashboard links.

* Issue **#1006** : Added Exception Mapper for PermissionExceptions to return HTTP FORBIDDEN.

* Issue **#1012** : Fix for NPE caused when checking if an output is superseded.

* Issue **#1011** : Old UI versions running in browsers often cause Stroom to throw an NPE as it can't find the appropriate GWT serialisation policy. Stroom will no longer throw an NPE but will report an `IncompatibleRemoteServiceException` instead. This is the default GWT behaviour.

* Issue **#1007** : Max visualisation results are now limited by default to the maximum number of results defined for the first level of the parent table. This can be further limited by settings in the visualisation.

* Issue **#1004** : Table cells now support multiple links.

* Issue **#1001** : Changed link types to `tab`, `dialog`, `dashboard`, `browser`.

* Issue **#1001** : Added dashboard link option to link to a dashboard from within a vis, e.g. `stroomLink(d.name, 'type=Dashboard&uuid=<TARGET_DASHBOARD_UUID>&params=userId%3D' + d.name, 'DASHBOARD')`.

* Issue **#1001** : Added dashboard link option to link to a dashboard using the `DASHBOARD` target name, e.g. `link(${UserId}, concat('type=Dashboard&uuid=<TARGET_DASHBOARD_UUID>', ${UserId}), '', 'DASHBOARD')`.

* Issue **#1002** : Popup dialogs shown when clicking dashboard hyperlinks are now resizable.

* Issue **#993** : Moving documents in the explorer no longer affects items that are being edited as they are not updated in the process.

* Issue **#996** : Updated functions in dashboard function picker.

* Issue **#981** : Fixed dashboard deletion

* Issue **#989** : Upgraded stroom-expression to v1.4.13 to add new dashboard `link` function.

* Issue **#988** : Changed `generate-url` XSLT function to `link` so it matches the dashboard expression. Changed the parameters to create 4 variants of the function to make creation of simple links easier.

* Issue **#980** : Fix for NPE when fetching dependencies for scripts.

* Issue **#978** : Re-ordering the fields in stream data source

* Issue **gchq/stroom-content#31** : Uplift stroom-logs content pack to v2.0-alpha.5.

* Issue **#982** : Stop proxy trying to health check the content syncing if it isn't enabled.

* Change error logging in ContentSyncService to log stack trace

* Uplift send_to_stroom.sh in the distribution to v2.0

* Issue **#973** : Export servlet changed to a Resource API, added permission check, improved error responses.

* Issue **#969** : The code now suppresses errors for index shards being locked for writing as it is expected. We now lock shards using maps rather than the file system as it is more reliable between restarts.

* Issue **#941** : Internal Meta Stats are now being written

* Issue **#970** : Add stream type of `Records` for translated stroom app events.

* Issue **#966** : Proxy was always reporting zero bytes for the request content in the receive log.

* Issue **#938** : Fixed an NPE in authentication session state.

* Change the proxy yaml configuration for the stack to add `remotedn` and `remotecertexpiry` headers to the receive log

* Change logback archived logs to be gzip compressed for stroom and proxy

* Uplift stroom-logs content pack to v2.0-alpha.3

* Uplift send_to_stroom script to v1.8.1

* Issue **#324** : Changed XML serialisation so that forbidden XML characters U+FFFE and U+FFFF are not written. Note that these characters are not even allowed as character references so they are ignored entirely.

* Issue **#945** : More changes to fix some visualisations only showing 10 data points.

* Issue **#945** : Visualisations now show an unlimited number of data points unless constrained by their parent table or their own maximum value setting.

* Issue **#948** : Catching Spring initialisation runtime errors and ensuring they are logged.

* Add `set_log_levels.sh` script to the distribution

* Uplift visualisations content pack to v3.0.6 in the gradle build

* Issue **#952** : Remote data sources now execute calls within the context of the user for the active query. As a result all running search `destroy()` calls will now be made as the same user that initiated the search.

* Issue **#566** : Info and warning icons are now displayed in stepping screen when needed.

* Issue **#923** : Dashboard queries will now terminate if there are no index shards to search.

* Issue **#959** : Remove Material UI from Login and from password management pages

* Issue **#933** : Add health check for password resets

* Issue **#929** : Add more comprehensive password validation

* Issue **#876** : Fix password reset issues

* Issue **#768** : Preventing deletion of /store in empty volumes

* Issue **#939** : Including Subject DN in receive.log

* Issue **#940** : Capturing User DN and cert expiry on DW terminated SSL

* Issue **#744** : Improved reporting of error when running query with no search extraction pipeline

* Issue **#134** : Copy permissions from parent button

* Issue **#688** : Cascading permissions when moving/copying folder into a destination

* Issue **#788** : Adding DocRef and IsDocRef to stroom query to allow doc ref related filtering. Migration of stream filters uses this.

* Issue **#936** : Add conversion of header `X-SSL-Client-V-End` into `RemoteCertExpiry`, translating date format in the process.

* Issue **#953** : Fixed NPE.

* Issue **#947** : Fixed issue where data retention policy contains incorrect field names.

* Remove Material UI from the Users and API Keys pages

* Add content packs to stroom distribution

* Change distribution to use send_to_stroom.sh v1.7

* Updated stroom expression to v1.4.12 to improve handling or errors values and add new type checking functions `isBoolean()`, `isDouble()`, `isError()`, `isInteger()`, `isLong()`, `isNull()`, `isNumber()`, `isString()`, `isValue()`. Testing equality of null with `x=null()` is no longer valid and must be replaced with `isNull(x)`.

* Issue **#920** : Fix error handling for sql stats queries

* Remove log sending cron process from docker images (now handled by stroom-log-sender).

* Issue **#924** : The `FindReplaceFilter` now records the location of errors.

* Issue **#939** : Added `remotedn` to default list of keys to include in `receive.log`.

* Add git_tag and git_commit labels to docker images

* Uplift stroom-logs content pack in docker image to` v2.0-alpha.2`

* Stop truncation of `logger` in logback console logs

* Issue **#921** : Renaming open documents now correctly changes their tab name. Documents that are being edited now prevent the rename operation until they are saved.

* Issue **#922** : The explorer now changes the selection on a right click if the item clicked is not already selected (could be part of a multi select).

* Issue **#903** : Feed names can now contain wildcard characters when filtering in the data browser.

* Add API to allow creation of an internal Stroom user.

* Fix logger configuration for SqlExceptionHelper

* Add template-pipelines and standard-pipelines content packs to docker image

* Issue **#904** : The UI now shows dictionary names in expressions without the need to enter edit mode.

* Updated ACE editor to v1.4.1.

* Add colours to console logs in docker.

* Issue **#869** : Delete will now properly delete all descendant nodes and documents when deleting folders but will not delete items from the tree if they cannot be deleted, e.g. feeds that have associated data.

* Issue **#916** : You can no longer export empty folders or import nothing.

* Issue **#911** : Changes to feeds and pipelines no longer clear data browsing filters.

* Issue **#907** : Default volumes are now created as soon as they are needed.

* Issue **#910** : Changes to index settings in the UI now register as changes and enable save.

* Issue **#913** : Improve FindReplaceFilter to cope with more complex conditions.

* Change log level for SqlExceptionHelper to OFF, to stop expected exceptions from polluting the logs

* Fix invalid requestLog logFormat in proxy configuration

* Stop service discovery health checks being registered if stroom.serviceDiscovery.enabled=false

* Add fixed version of send_to_stroom.sh to release distribution

* Uplift docker base image for stroom & proxy to openjdk:8u181-jdk-alpine3.8

* Add a health check for getting a public key from the authentication service.

* Issue **#897** : Import no longer attempts to rename or move existing items but will still update content.

* Issue **#902** : Improved the XSLT `format-date` function to better cope with week based dates and to default values to the stream time where year etc are omitted.

* Issue **#905** : Popup resize and move operations are now constrained to ensure that a popup cannot be dragged off screen or resized to be bigger than the current browser window size.

* Issue **#898** : Improved the way many read only aspects of the UI behave.

* Issue **#894** : The system now generates and displays errors to the user when you attempt to copy a feed.

* Issue **#896** : Extended folder `create` permissions are now correctly cached.

* Issue **#893** : You can now manage volumes without the `Manage Nodes` permission.

* Issue **#892** : The volume editor now waits for the node list to be loaded before opening.

* Issue **#889** : Index field editing in the UI now works correctly.

* Issue **#891** : `StreamAppender` now keeps track of it's own record write count and no longer makes use of any other write counting pipeline element.

* Issue **#885** : Improved the way import works to ensure updates to entities are at least attempted when creating an import confirmation.

* Issue **#892** : Changed `Ok` to `OK`.

* Issue **#883** : Output streams are now immediately unlocked as soon as they are closed.

* Removed unnecessary OR operator that was being inserted into expressions where only a single child term was being used. This happened when reprocessing single streams.

* Issue **#882** : Splitting aggregated streams now works when using `FindReplaceFilter`. This functionality was previously broken because various reader elements were not passing the `endStream` event on.

* Issue **#881** : The find and replace strings specified for the `FindReplaceFilter` are now treated as unescaped Java strings and now support new line characters etc.

* Issue **#880** : Increased the maximum value a numeric pipeline property can be set to via the UI to 10000000.

* Issue **#888** : The dependencies listing now copes with external dependencies failing to provide data due to authentication issues.

* Issue **#890** : Dictionaries now show the words tab by default.

* Add admin healthchecks to stroom-proxy

* Add stroom-proxy docker image

* Refactor stroom docker images to reduce image size

* Add enabled flag to storing, forwarding and synching in stroom-proxy configuration

* Issue **#884** : Added extra fonts to stroom docker image to fix bug downloading xls search results.

* Issue **#879** : Fixed bug where reprocess and delete did not work if no stream status was set in the filter.

* Issue **#878** : Changed the appearance of stream filter fields to be more user friendly, e.g. `feedName` is now `Feed` etc.

* Issue **#809** : Changed default job frequency for `Stream Attributes Retention` and `Stream Task Retention` to `1d` (one day).

* Issue **#813** : Turned on secure processing feature for XML parsers and XML transformers so that external entities are not resolved. This prevents DoS attacks and gaining unauthorised access to the local machine.

* Issue **#871** : Fix for OptimisticLockException when processing streams.

* Issue **#872** : The parser cache is now automatically cleared when a schema changes as this can affect the way a data splitter parser is created.

* Add a health check for getting a public key from the authentication service.

* Issue **#897** : Import no longer attempts to rename or move existing items but will still update content.

* Issue **#902** : Improved the XSLT `format-date` function to better cope with week based dates and to default values to the stream time where year etc are omitted.

* Issue **#905** : Popup resize and move operations are now constrained to ensure that a popup cannot be dragged off screen or resized to be bigger than the current browser window size.

* Issue **#898** : Improved the way many read only aspects of the UI behave.

* Issue **#894** : The system now generates and displays errors to the user when you attempt to copy a feed.

* Issue **#896** : Extended folder `create` permissions are now correctly cached.

* Issue **#893** : You can now manage volumes without the `Manage Nodes` permission.

* Issue **#892** : The volume editor now waits for the node list to be loaded before opening.

* Issue **#889** : Index field editing in the UI now works correctly.

* Issue **#891** : `StreamAppender` now keeps track of it's own record write count and no longer makes use of any other write counting pipeline element.

* Issue **#885** : Improved the way import works to ensure updates to entities are at least attempted when creating an import confirmation.

* Issue **#892** : Changed `Ok` to `OK`.

* Issue **#883** : Output streams are now immediately unlocked as soon as they are closed.

* Removed unnecessary OR operator that was being inserted into expressions where only a single child term was being used. This happened when reprocessing single streams.

* Issue **#882** : Splitting aggregated streams now works when using `FindReplaceFilter`. This functionality was previously broken because various reader elements were not passing the `endStream` event on.

* Issue **#881** : The find and replace strings specified for the `FindReplaceFilter` are now treated as unescaped Java strings and now support new line characters etc.

* Issue **#880** : Increased the maximum value a numeric pipeline property can be set to via the UI to 10000000.

* Issue **#888** : The dependencies listing now copes with external dependencies failing to provide data due to authentication issues.

* Issue **#890** : Dictionaries now show the words tab by default.

* Add admin healthchecks to stroom-proxy

* Add stroom-proxy docker image

* Refactor stroom docker images to reduce image size

* Add enabled flag to storing, forwarding and synching in stroom-proxy configuration

* Issue **#884** : Added extra fonts to stroom docker image to fix bug downloading xls search results.

* Issue **#879** : Fixed bug where reprocess and delete did not work if no stream status was set in the filter.

* Issue **#878** : Changed the appearance of stream filter fields to be more user friendly, e.g. `feedName` is now `Feed` etc.

* Issue **#809** : Changed default job frequency for `Stream Attributes Retention` and `Stream Task Retention` to `1d` (one day).

* Issue **#813** : Turned on secure processing feature for XML parsers and XML transformers so that external entities are not resolved. This prevents DoS attacks and gaining unauthorised access to the local machine.

* Issue **#871** : Fix for OptimisticLockException when processing streams.

* Issue **#872** : The parser cache is now automatically cleared when a schema changes as this can affect the way a data splitter parser is created.

* Issue **#865** : Made `stroom.conf` location relative to YAML file when `externalConfig` YAML property is set.

* Issue **#867** : Added an option `showReplacementCount` to the find replace filter to choose whether to report total replacements on process completion.

* Issue **#867** : Find replace filter now creates an error if an invalid regex is used.

* Issue **#855** : Further fixes for stepping data that contains a BOM.

* Changed selected default tab for pipelines to be `Data`.

* Issue **#860** : Fixed issue where stepping failed when using any sort of input filter or reader before the parser.

* Issue **#867** : Added an option `showReplacementCount` to the find replace filter to choose whether to report total replacements on process completion.

* Improved Stroom instance management scripts

* Add contentPack import

* Fix typo in Dockerfile

* Issue **#859** : Change application startup to keep retrying when establishing a DB connection except for certain connection errors like access denied.

* Issue **#730** : The `System` folder now displays data and processors. This is a bug fix related to changing the default initial page for some document types.

* Issue **#854** : The activity screen no longer shows a permission error when shown to non admin users.

* Issue **#853** : The activity chooser will no longer display on startup if activity tracking is not enabled.

* Issue **#855** : Fixed stepping data that contains a BOM.

* Change base docker image to openjdk:8u171-jdk-alpine

* Improved loading of activity list prior to showing the chooser dialog.

* Issue **#852** : Fix for more required permissions when logging other 'find' events.

* Issue **#730** : Changed the default initial page for some document types.

* Issue **#852** : Fix for required permission when logging 'find' events.

* Changed the way the root pane loads so that error popups that appear when the main page is loading are not hidden.

* Issue **#851** : Added additional type info to type id when logging events.

* Issue **#848** : Fixed various issues related to stream processor filter editor.

* Issue **#815** : `stroom.pageTitle` property changed to `stroom.htmlTitle`.

* Issue **#732** : Added `host-address` and `host-name` XSLT functions.

* Issue **#338** : Added `splitAggregatedStreams` property to `StreamAppender`, `FileAppender` and `HDFSFileAppender` so that aggregated streams can be split into separate streams on output.

* Issue **#338** : Added `streamNo` path replacement variable for files to record the stream number within an aggregate.

* Added tests and fixed sorting of server tasks.

* Improved the way text input and output is buffered and recorded when stepping.

* The find and replace filter now resets the match count in between nested streams so that each stream is treated the same way, i.e. it can have the same number of text replacements.

* Added multiple fixes and improvements to the find and replace filter including limited support of input/output recording when stepping.

* Issue **#827** : Added `TextReplacementFilterReader` pipeline element.

* Issue **#736** : Added sorting to server tasks table.

* Inverted the behaviour of `disableQueryInfo` to now be `requireQueryInfo`.

* Issue **#596** : Rolling stream and file appenders can now roll on a cron schedule in addition to a frequency.

* The accept button now enabled on splash screen.

* Added additional event logging to stepping.

* An activity property with an id of `disableQueryInfo` can now be used to disable the query info popup on a per activity basis.

* Activity properties can now include the attributes `id`, `name`, `showInSelection` and `showInList` to determine their appearance and behaviour;

* Nested elements are now usable in the activity editor HTML.

* Record counts are now recorded on a per output stream basis even when splitting output streams.

* Splash presenter buttons are now always enabled.

* Fix background colour to white on activity pane.

* Changed `splitWhenBiggerThan` property to `rollSize` and added the property to the rolling appenders for consistency.

* Issue **#838** : Fix bug where calculation of written and read bytes was being accounted for twice due to the use of Java internal `FilterInputStream` and `FilterOutputStream` behaviour. This was leading to files being split at half od the expected size. Replaced Java internal classes with our own `WrappedInputStream` and `WrappedOutputStream` code.

* Issue **#837** : Fix bug to no longer try and record set activity events for null activities.

* Issue **#595** : Added stream appender and file appender property `splitWhenBiggerThan` to limit the size of output streams.

* Now logs activity change correctly.

* Add support for checkbox and selection control types to activity descriptions.

* Issue **#833** : The global property edit dialog can now be made larger.

* Fixed some issues in the activity manager.

* Issue **#722** : Change pipeline reference data loader to store its reference data in an off-heap disk backed LMDB store to reduce Java heap usage. See the `stroom.refloader.*` properties for configuration of the off-heap store.

* Issue **#794** : Automatically suggest a pipeline element name when creating it

* Issue **#792** : Preferred order of properties for Pipeline Elements

* Issue **824** : Fix for replace method in PathCreator also found in stroom proxy.

* Issue **#828** : Changed statistics store caches to 10 minute time to live so that they will definitely pick up new statistics store definitions after 10 minutes.

* Issue **#774** : Event logging now logs find stream criteria correctly so that feeds ids are included.

* Issue **#829** : Stroom now logs event id when viewing individual events.

* Added functionality to record actions against user defined activities.

* Added functionality to show a splash screen on login.

* Issue **#791** : Fixed broken equals method so query total row count gets updated correctly.

* Issue **#830** : Fix for API queries not returning before timing out.

* Issue **#824** : Fix for replace method in PathCreator also found in stroom proxy.

* Issue **#820** : Fix updating index shards so that they are loaded, updated and saved under lock.

* Issue **#819** : Updated `stroom-expression` to v1.4.3 to fix violation of contract exception when sorting search results.

* Issue **#817** : Increased maximum number of concurrent stream processor tasks to 1000 per node.

* Moved Index entities over to the new multi part document store.

* Moved Pipeline entities over to the new multi part document store.

* Moved both Statistic Store entity types over to the new multi part document store.

* Moved XSLT entities over to the new multi part document store.

* Moved Visualisation entities over to the new multi part document store.

* Moved Script entities over to the new multi part document store.

* Moved Dashboard entities over to the new multi part document store.

* Moved XmlSchema entities over to the new multi part document store.

* Moved TextConverter entities over to the new multi part document store.

* Modified the storage of dictionaries to use the new multi part document store.

* Changed the document store to hold multiple entries for a document so that various parts of a document can be written separately, e.g. the meta data about a dictionary and the dictionary text are now written as separate DB entries. Entries are combined during the serialisation/deserialisation process.

* Changed the import export API to use byte arrays to hold values rather than strings. *POSSIBLE BREAKING CHANGE*
Issue **gchq/stroom-expression#22** : Add `typeOf(...)` function to dashboard.

* Issue **#697** : Fix for reference data sometimes failing to find the appropriate effective stream due to the incorrect use of the effective stream cache. It was incorrectly configured to use a time to idle (TTI) expiry rather than a time to live (TTL) expiry meaning that heavy use of the cache would prevent the cached effective streams being refreshed.

* Issue **#806** : Fix for clearing previous dashboard table results if search results deliver no data.

* Issue **#805** : Fix for dashboard date time formatting to use local time zone.

* Issue **#803** : Fix for group key conversion to an appropriate value for visualisations.

* Issue **#802** : Restore lucene-backward-codecs to the build

* Issue **#800** : Add DB migration script 33 to replace references to the `Stream Type` type in the STRM_PROC_FILT table with `streamTypeName`.

* Issue **#798** : Add DB migration script 32 to replace references to the `NStatFilter` type in the PIPE table with `StatisticsFilter`.

* Fix data receipt policy defect

* Issue **#791** : Search completion signal is now only sent to the UI once all pending search result merges are completed.

* Issue **#795** : Import and export now works with appropriate application permissions. Read permission is required to export items and Create/Update permissions are required to import items depending on whether the update will create a new item or update an existing one.

* Improve configurabilty of stroom-proxy.

* Issue **#783** : Reverted code that ignored duplicate selection to fix double click in tables.

* Issue **#782** : Fix for NPE thrown when using CountGroups when GroupKey string was null due to non grouped child rows.

* Issue **#778** : Fix for text selection on tooltips etc in the latest version of Chrome.

* Uplift stroom-expression to v1.4.1

* Issue **#776** : Removal of index shard searcher caching to hopefully fix Lucene directory closing issue.

* Issue **#779** : Fix permissions defect.

* Issue **gchq/stroom-expression#22** : Add `typeOf(...)` function to dashboard.

* Issue **#766** : Fix NullPointerExceptions when downloading table results to Excel format.

* Issue **#770** : Speculative fix for memory leak in SQL Stats queries.

* Issue **#761** : New fix for premature truncation of SQL stats queries due to thread interruption.

* Issue **#748** : Fix build issue resulting from a change to SafeXMLFilter.

* Issue **#748** : Added a command line interface (CLI) in addition to headless execution so that full pipelines can be run against input files.

* Issue **#748** : Fixes for error output for headless mode.

* Issue **#761** : Fixed statistic searches failing to search more than once.

* Issue **#756** : Fix for state being held by `InheritableThreadLocal` causing objects to be held in memory longer than necessary.

* Issue **#761** : Fixed premature truncation of SQL stats queries due to thread interruption.

* Added `pipeline-name` and `put` XSLT functions back into the code as they were lost in a merge.

* Issue **#749** : Fix inability to query with only `use` privileges on the index.

* Issue **#613** : Fixed visualisation display in latest Firefox and Chrome.

* Added permission caching to reference data lookup.

* Updated to stroom-expression 1.3.1

    Added cast functions `toBoolean`, `toDouble`, `toInteger`, `toLong` and `toString`.
    Added `include` and `exclude` functions.
    Added `if` and `not` functions.
    Added value functions `true()`, `false()`, `null()` and `err()`.
    Added `match` boolean function.
    Added `variance` and `stDev` functions.
    Added `hash` function.
    Added `formatDate` function.
    Added `parseDate` function.
    Made `substring` and `decode` functions capable of accepting functional parameters.
    Added `substringBefore`, `substringAfter`, `indexOf` and `lastIndexOf` functions.
    Added `countUnique` function.

* Issue **#613** : Fixed visualisation display in latest Firefox and Chrome.

* Issue **#753** : Fixed script editing in UI.

* Issue **#751** : Fix inability to query on a dashboard with only use+read rights.