Skip to content

4.1.0

Compare
Choose a tag to compare
@spenes spenes released this 22 Feb 14:56
· 11 commits to master since this release

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)