Skip to content

VAST 2021.03.25

Download the release on GitHub.

The schema language now supports 4 operations on record types: + combines the fields of 2 records into a new record. <+ and +> are variations of + that give precedence to the left and right operand respectively. - creates a record with the field specified as its right operand removed.

By @tobim in #1407.

Support nested records in the Arrow Builder

Section titled “Support nested records in the Arrow Builder”

VAST now supports nested records in Arrow table slices and in the JSON import, e.g., data of type list<record<name: string, age: count>. While nested record fields are not yet queryable, ingesting such data will no longer cause VAST to crash. MessagePack table slices don’t support records in lists yet.

By @dominiklohmann in #1429.

Move zeek-to-vast from tenzir/vast to tenzir/zeek-vast

Section titled “Move zeek-to-vast from tenzir/vast to tenzir/zeek-vast”

The zeek-to-vast utility was moved to the tenzir/zeek-vast repository. All options related to zeek-to-vast and the bundled Broker submodule were removed.

By @dominiklohmann in #1435.

VAST now ships with schema record types for Suricata’s mqtt and anomaly event types.

By @satta in #1408.

Deprecate the vast.no-default-schema option

Section titled “Deprecate the vast.no-default-schema option”

The option vast.no-default-schema is deprecated, as it is no longer needed to override types from bundled schemas.

By @dominiklohmann in #1409.

Plugins can now be linked statically against VAST. A new VASTRegisterPlugin CMake function enables easy setup of the build scaffolding required for plugins. Configure with --with-static-plugins or build a static binary to link all plugins built alongside VAST statically. All plugin build scaffoldings must be adapted, older plugins do no longer work.

By @dominiklohmann in #1445.

Rename the attribute_extractor to meta_extractor

Section titled “Rename the attribute_extractor to meta_extractor”

The previously deprecated #timestamp extractor has been removed from the query language entirely. Use :timestamp instead.

By @tobim in #1399.

Establish subtyping relationships for type extractors

Section titled “Establish subtyping relationships for type extractors”

The type extractor in the expression language now works with type aliases. For example, given the type definition for port from the base schema type port = count, a search for :count will also consider fields of type port.

By @tobim in #1446.

The default size of table slices (event batches) that is created from vast import processes has been changed from 1,000 to 1,024.

By @tobim in #1396.

Prune expressions for the meta index lookup

Section titled “Prune expressions for the meta index lookup”

Query latency for expressions that contain concept names has improved substantially. For DB sizes in the TB region, and with a large variety of event types, queries with a high selectivity experience speedups of up to 5x.

By @tobim in #1433.

Remove erased partitions from the meta index

Section titled “Remove erased partitions from the meta index”

The disk monitor now correctly erases partition synopses from the meta index.

By @lava in #1450.

Fix printing of non-null intrusive pointers

Section titled “Fix printing of non-null intrusive pointers”

Some non-null pointers were incorrectly rendered as *nullptr in log messages.

By @lava in #1430.

Don’t allow field extractors to match field name suffixes

Section titled “Don’t allow field extractors to match field name suffixes”

A query for a field or field name suffix that matches multiple fields of different types would erroneously return no results.

By @lava in #1447.

Fix possibly unhandled exception in disk monitor

Section titled “Fix possibly unhandled exception in disk monitor”

VAST no longer crashes when the disk monitor tries to calculate the size of the database while files are being deleted. Instead, it will retry after the configured scan interval.

By @dominiklohmann in #1458.

Make the disk-monitor a singleton component

Section titled “Make the disk-monitor a singleton component”

Enabling the disk budget feature no longer prevents the server process from exiting after it was stopped.

By @tobim in #1495.

Use non-throwing std::filesystem functions in the type registry

Section titled “Use non-throwing std::filesystem functions in the type registry”

Insufficient permissions for one of the paths in the schema-dirs option would lead to a crash in vast start.

By @tobim in #1472.

A race condition during server shutdown could lead to an invariant violation, resulting in a firing assertion. Streamlining the shutdown logic resolved the issue.

By @mavam in #1473.

The archive, index, source, and sink components now report metrics when idle instead of omitting them entirely. This allows for distinguishing between idle and not running components from the metrics.

By @dominiklohmann in #1451.

Data that was ingested before the deprecation of the #timestamp attribute wasn’t exported correctly with newer versions. This is now corrected.

By @tobim in #1432.

Accept numbers in place of strings in JSON

Section titled “Accept numbers in place of strings in JSON”

The JSON parser now accepts data with numerical or boolean values in fields that expect strings according to the schema. VAST converts these values into string representations.

By @tobim in #1439.

Last updated: