4.1.0
What's new
Cross Navigation Enrichment
In this version, we introduce new enrichment: Cross Navigation Enrichment. This enrichment will be able to parse the extended cross navigation format in _sp
querystring parameter and attach the cross_navigation
context to an event.
The _sp
parameter can be attached by our Web (see cross-domain tracking) and mobile trackers and contains user, session and app identifiers (e.g., domain user and session IDs, business user ID, source app ID). The information to include in the parameters is configurable in the trackers. This is useful for tracking the movement of users across different apps and platforms.
The extended cross navigation format can be described by _sp={domainUserId}.{timestamp}.{sessionId}.{subjectUserId}.{sourceId}.{platform}.{reason}
More information about this enrichment can be found in here.
Multiple JS enrichments support
Starting with this version, it is possible to have multiple JS enrichments. This allows to implement new enrichments in JavaScript and easily add them to Enrich. Currently, the order in which they would run is not defined.
Passing an object of parameters to the JS enrichment
As mentioned above, we added support for multiple JS enrichments. This simplifies implementing custom enrichments in JavaScript and adding them to Enrich. However, most enrichments take parameters. To avoid having to change the JavaScript code (and re-encode it in base64) every time there is a parameter change, we've added capability to pass these parameters in the enrichment configuration.
You can pass these parameters in the enrichment configuration, for example:
{
"schema": "iglu:com.snowplowanalytics.snowplow/javascript_script_config/jsonschema/1-0-1",
"data": {
"vendor": "com.snowplowanalytics.snowplow",
"name": "javascript_script_config",
"enabled": true,
"parameters": {
"script": "script",
"config": {
"foo": 3,
"nested": {
"bar": "test"
}
}
}
}
}
The parameter object can be accessed in JavaScript enrichment code via the second
parameter of the process function, for example:
function process(event, params) {
event.setApp_id(params.nested.bar);
return [];
}
Authentication with Azure Event Hubs using OAuth2 in Enrich Kafka
The new version of Enrich Kafka allows to authenticate with Azure Event Hubs using OAuth2. If you would like to use this authentication method with Azure Event Hubs, you don't have to pass anything extra in the config. It is enough to remove security.protocol
, sasl.mechanism
and sasl.jaas.config
properties from consumerConf
and producerConf
sections. Application sets the necessary properties with the required values by default.
Stopping publishing jar files
Starting with 4.1.0, we no longer publish jar files of the applications. If you are still using jar files to run the application, we recommend to switch to Docker. You can find the running instructions for Docker in the docs page of the respective component.
Changelog
- enrich-kafka: authenticate with Event Hubs using OAuth2 (#863)
- Add Cross Navigation Enrichment (#855)
- Allow multiple javascript enrichments (#868)
- Add the message delayed event to Mandrill adapter and update schema versions (#815)
- Stop publishing fat jars (#862)
- Allow passing an object of parameters to the JS enrichment (#871)
- Make cookie extractor enrichment case insensitive (#877)
- Add tracking scenario ID in observed_event if defined (#807)
- Rename tracking_scenario to event_specification (#879)
- Bump nimbus-jose-jwt to 9.37.2 (#880)
- Bump postgres driver to 42.7.2 (#880)