Users can be added to user groups and individual users and groups can have various permissions (e.g. Use, Read, Update, Delete) on individual items available in the explorer tree.
Data can be streamed in its raw form from the stream store to multiple destinations without any transformation taking place.
Pipeline XML/text data can be written out to a HDFS (Hadoop Distributed File System) cluster. This increases the options for using Stroom's data for other purposes.
Date and time operators can be used to specify times in search expressions. These include constants such as now(), second(), minute(), hour(), day(), week(), month() and year(). You can also perform simple date time artithmetic in expressions such as day() - 2d or hour() - 30m.
Dashboards can be configured to automatically run/query when they are opened and can also refresh on a configurable time interval.
Dashboards can use replacement variables in query expressions. The value to use for any variable can be set for the whole dashboard in a text area at the top of the dashboard.
Authentication for Stroom provided by an external service rather than a service internal to Stroom. This change allows support for broader corporate authentication schemes and is a key requirement for enabling the future microservice architecture for Stroom.
Anyone wishing to make use of the data exposed by Stroom's services can request an API key. This key acts as a password for their own applications. It allows administrators to secure and manage access to Stroom's data.
This new implementation of statistics (Stroom-Stats) provides a vastly more scalable time series DB for large scale collection of Stroom's data aggregated to various time buckets. Stroom-Stats uses Kafka for ingesting the source data.
Data arriving in Stroom has meta data that can be matched against a policy so that certain actions can be taken. This could be to receive, drop or reject the data.
Filtering of data also applies to Stroom proxy where each proxy can get a filtering policy from an upstream proxy or a Stroom instance.
The length of time that data will be retained in Stroom's stream store can be defined by creating data retention rules. These rules match streams based on their meta data and will automatically delete data once the retention period associated with the rule is exceeded.
Links can be created in dashboards to jump to other dashboards or other external sites that provide additional contextual information.
The search system used by Dashboards can be used via a restful API. This provides access to data stored in search indices (including the ability to extract data) and statistics stores. The data fetched via the search API can be received and processed via an external system.
New pipeline elements for writing XML or text data to a Kafka topic. This provides more options for using Stroom's data in other systems.
Reference data uses a memory-mapped disk-based store rather than direct memory to reduce the memory overhead associated with storing reference data.
Search results are stored on disk rather than in memory during creation to reduce the memory overhead incurred by search.
Separation of Stroom components into discreet modules that have clear APIs and separate persistence where required to reduce coupling.
Changing Stroom libraries to replace Spring with Guice and Hibernate with JOOQ.
Search results in dashboards can be annotated to provide status and notes relating to the result item, e.g. an event. These annotations can later be searched to see which events have annotations associated with them.
Elastic search can be used for indexing data. Data can be sent to an elastic index via a pipeline element and an elastic index can be queried from a Stroom dashboard.
Selecting or manipulating parts of visualisations can be used to trigger further queries to zoom in or select specific data etc.
Proxy aggregation can better match user defined aggregate sizes and forward to multiple destinations.
The UI can be customised to meet the needs of an end user including theme (dark mode), date and time format, font, layout.
Add support for XSLT 3.
Refactoring some elements of the UI to improve accessibility.
The Stroom authorisation system is split out into a separate service and provides integration with external authorisation mechanisms.
Stroom proxy is capable of pipeline processing in the same way as a full Stroom application. Pipeline configuration content can be pushed to proxies so that they can perform local processing prior to sending data to Stroom.
Stroom is capable of processing data from a Kafka topic, HDFS, the local file system, HTTP POST in addition to the included stream store.
Stroom has improved support for writing to various destinations such as Kafka, HDFS, etc. Improvements include compression and meta data wrapping for future import.
Enhancements to data splitter and associated UI to make the process of extracting field data from raw content much easier.
Stroom exposes the use of Apache Kafka Streams for performing certain complex analytics.
Stroom allows multiple data sources to be queried at the same time and the results of the queries to be fused. This might be for fusing data from multiple search indexes, e.g. events and annotations, or to effectively decorate results with additional data at search time.
Reference data is enhanced to cope with changes (additions and removals) of state information rather than always relying on complete snapshots.