1.1.0
What's New
JSON Output for all modules
In this version, we expanded support for flattened JSON output to all modules.
JSON enables easier integration with data infrastructure without creating dependencies on vendor-specific loaders.
JSON format improvements
A new entry is available in the experimental settings which allows defining the output format:
"experimental": {
# Whether to use an alternative output format (either "FlattenedJson" or "EventbridgeJson")
# - FlattenedJson: encodes the output as JSON, where unstruct_event, contexts and derived_contexts are flattened
# - EventbridgeJson: encodes the output as JSON with extra details, intended exclusively to use with eventbridge module.
"customOutputFormat": {
"type": "FlattenedJson"
}
}
This is an example produced when enabling the FlattenedJson
format (null values omitted for simplicity):
{
"collector_tstamp" : "2011-12-03T10:15:30Z",
"contexts_org_ietf_http_header_1" : [
{
"name" : "Host",
"value" : "test"
}
],
"event_id" : "236392af-ffec-4def-a0de-86929e9615be",
}
Previously, this JSON format was available only for Kinesis but it can now be enabled in all modules.
NOTE: If you use the PII output. the JSON format is discouraged because we have not done enough tests on this.
EventbridgeJson format
This is a superset of the FlattenedJson
format, it has the option to include a few extra fields in the output, it can be turned on with:
"experimental": {
# Whether to use an alternative output format (either "FlattenedJson" or "EventbridgeJson")
# - FlattenedJson: encodes the output as JSON, where unstruct_event, contexts and derived_contexts are flattened
# - EventbridgeJson: encodes the output as JSON with extra details, intended exclusively to use with eventbridge module.
"customOutputFormat": {
"type": "EventbridgeJson"
# Add a "payload" parameter with the original base64 encoded TSV. Defaults to false (Useful for EventbridgeJson only).
"payload": true
# Add a "collector" parameter from contexts_org_ietf_http_header_1 Host Value. Defaults to false (Useful for EventbridgeJson only).
"collector": true
}
}
This is an example produced when enabling the FlattenedJson
format (null values omitted for simplicity):
{
"collector_tstamp" : "2011-12-03T10:15:30Z",
"contexts_org_ietf_http_header_1" : [
{
"name" : "Host",
"value" : "test"
}
],
"event_id" : "236392af-ffec-4def-a0de-86929e9615be",
# produced because "collector" = true
"collector" : "test",
# produced because "payload" = true
"payload" : "<<BASE64ENCODEDTDV>>,
}
NOTE: This format is intended for the eventbridge module only.
Breaking changes
If you are using the JSON output from Kinesis it means that you have these settings:
{
...
output {
good: {
...
jsonOutput = true
}
pii: {
...
jsonOutput = true
}
bad: {
...
jsonOutput = true
}
}
}
These need to be removed, then, set the experimental settings like this:
...
"experimental": {
"customOutputFormat": {
"type": "FlattenedJson"
}
}
If you are use eventbridge, you may have these settings:
{
...
output {
good: {
...
collector = true
payload = true
}
}
}
Which need to be replaced by:
{
...
"experimental": {
"customOutputFormat": {
"type": "EventbridgeJson"
"payload": true
"collector": true
}
}
}
Changelog
- Increased test coverage for JSON output.
- Dependency updates.
- JSON format improvements
- Validate payload size when producing JSON output.
- Errors when producing JSON output are now propagated to the bad output.
- Update cats-retry to 2.1.1 by @wiringbits-bot in #25
- Update commons-codec to 1.16.0 by @wiringbits-bot in #45
- Update HikariCP to 5.1.0 by @wiringbits-bot in #44
- Update fs2-core, fs2-io to 2.5.11 by @wiringbits-bot in #18
- Update snowplow-event-generator-core to 0.2.2 by @wiringbits-bot in #41
- Update aws-java-sdk-dynamodb, ... to 1.12.636 by @wiringbits-bot in #19
- Update cats-effect-testing-specs2 to 0.4.2 by @wiringbits-bot in #20
- Update sbt-assembly to 0.14.10 by @wiringbits-bot in #21
- Update gcs, s3 to 0.8.11 by @wiringbits-bot in #27
- Update guava to 28.2-jre by @wiringbits-bot in #30
- Update jackson-databind to 2.15.3 by @wiringbits-bot in #23
- Update sbt-ci-release to 1.5.12 by @wiringbits-bot in #24
- Update uap-java to 1.6.1 by @wiringbits-bot in #28
- Update scala-maxmind-iplookups to 0.7.2 by @wiringbits-bot in #37
- Update protobuf-java to 3.21.12 by @wiringbits-bot in #31
- Update protobuf-java to 3.25.2 by @wiringbits-bot in #58
- Update decline to 1.4.0 by @wiringbits-bot in #33
- Update guava to 33.0.0-jre by @wiringbits-bot in #57
- Update jackson-databind to 2.16.1 by @wiringbits-bot in #54
- Update sbt-assembly to 0.15.0 by @wiringbits-bot in #53
- Update cats-effect-testing-specs2 to 0.5.4 by @wiringbits-bot in #52
- Update diffx-specs2 to 0.9.0 by @wiringbits-bot in #43
- Update json-smart to 2.4.11 by @wiringbits-bot in #67
- Update mysql-connector-java to 8.0.33 by @wiringbits-bot in #66
- Update joda-time to 2.10.14 by @wiringbits-bot in #65
- Update scala-uri to 4.0.3 by @wiringbits-bot in #62
- Update aws-java-sdk-dynamodb, ... to 1.12.637 by @wiringbits-bot in #51
- Update sbt-tpolecat to 0.4.4 by @wiringbits-bot in #61
- Update kafka-clients to 7.5.3-ce by @wiringbits-bot in #70
- Update log4j-core to 2.22.1 by @wiringbits-bot in #71
- Update sbt-buildinfo to 0.11.0 by @wiringbits-bot in #22
- Update google-cloud-storage to 2.31.0 by @wiringbits-bot in #29
- Update log4j-to-slf4j to 2.22.1 by @wiringbits-bot in #72
- Update commons-text to 1.11.0 by @wiringbits-bot in #69
- Update netty-all, netty-codec to 4.1.104.Final by @wiringbits-bot in #63
- Update libthrift to 0.19.0 by @joaolcorreia in #73
- Update sbt-tpolecat to 0.5.0 by @wiringbits-bot in #76
- Update mysql-connector-java to 8.2.0 by @wiringbits-bot in #78
- Update log4cats-slf4j to 1.3.1 by @wiringbits-bot in #95
- Update aws-msk-iam-auth to 1.1.9 by @wiringbits-bot in #99
- Update cloudwatch, dynamodb, eventbridge, ... to 2.18.41 by @wiringbits-bot in #97
- Update specs2-core, specs2-mock, ... to 4.20.4 by @wiringbits-bot in #93
- Update cats-effect to 2.5.5 by @wiringbits-bot in #94
- Update slf4j-simple to 2.0.11 by @wiringbits-bot in #91
- Update scalafmt-core to 2.6.4 by @wiringbits-bot in #88
- Update snakeyaml to 2.2 by @wiringbits-bot in #96
- Update scalacheck to 1.14.3 by @wiringbits-bot in #86
- Update sbt to 1.5.8 by @wiringbits-bot in #85
- Update scala-parser-combinators to 2.3.0 by @wiringbits-bot in #84
- Update decline to 2.4.1 by @wiringbits-bot in #75
- Update sbt-assembly to 2.1.5 by @wiringbits-bot in #74
- Update joda-time to 2.12.6 by @wiringbits-bot in #77
- Update json-smart to 2.5.0 by @wiringbits-bot in #79
- Update postgresql to 42.5.4 by @wiringbits-bot in #82
- Update aws-java-sdk-dynamodb, ... to 1.12.641 by @wiringbits-bot in #100
- Update mysql-connector-j to 8.3.0 by @wiringbits-bot in #101
- Update aws-msk-iam-auth to 2.0.3 by @wiringbits-bot in #110
- Update netty-all, netty-codec to 4.1.106.Final by @wiringbits-bot in #102
- Update sbt to 1.9.8 by @wiringbits-bot in #104
- Update cloudwatch, dynamodb, eventbridge, ... to 2.23.7 by @wiringbits-bot in #109
- Update scalafmt-core to 2.7.5 by @wiringbits-bot in #106
- Update scalacheck to 1.17.0 by @wiringbits-bot in #105
- Update log4cats-slf4j to 1.7.0 by @wiringbits-bot in #108
- Update postgresql to 42.7.1 by @wiringbits-bot in #103
- Update aws-java-sdk-dynamodb, ... to 1.12.646 by @wiringbits-bot in #113
- Update cloudwatch, dynamodb, eventbridge, ... to 2.23.12 by @wiringbits-bot in #119
- Update specs2-core, specs2-mock, ... to 4.20.5 by @wiringbits-bot in #117
- Update google-cloud-storage to 2.32.1 by @wiringbits-bot in #114
- eventbridge-it: Fix commented tests by @KapStorm in #120
- Update aws-java-sdk-dynamodb, ... to 1.12.651 by @wiringbits-bot in #121
- Update cloudwatch, dynamodb, eventbridge, ... to 2.23.17 by @wiringbits-bot in #124
- Update google-cloud-storage to 2.33.0 by @wiringbits-bot in #127
- Update aws-java-sdk-dynamodb, ... to 1.12.656 by @wiringbits-bot in #126
- Update kafka-clients to 7.6.0-ce by @wiringbits-bot in #130
- Update slf4j-simple to 2.0.12 by @wiringbits-bot in #131
- Update joda-time to 2.12.7 by @wiringbits-bot in #129
- Update cloudwatch, dynamodb, eventbridge, ... to 2.23.21 by @wiringbits-bot in #132
- Update cloudwatch, dynamodb, eventbridge, ... to 2.24.5 by @wiringbits-bot in #138
- Update netty-all, netty-codec to 4.1.107.Final by @wiringbits-bot in #136
- Update protobuf-java to 3.25.3 by @wiringbits-bot in #135
- Update google-cloud-storage to 2.34.0 by @wiringbits-bot in #134
- Update cloudwatch, dynamodb, eventbridge, ... to 2.24.6 by @wiringbits-bot in #142
- Update aws-java-sdk-dynamodb, ... to 1.12.661 by @wiringbits-bot in #133
- Update postgresql to 42.7.2 by @wiringbits-bot in #140
- Fix "sbt assembly" by @AlexITC in #150
- Refactor the process to produce JSON output by @AlexITC in #143
- Update log4j-core, log4j-to-slf4j to 2.23.0 by @wiringbits-bot in #146
- Update sbt to 1.9.9 by @wiringbits-bot in #147
New Contributors
- @wiringbits-bot made their first contribution in #25
- @KapStorm made their first contribution in #120
Full Changelog: 1.0.0...1.1.0