1. Home
  2. Docs
  3. Managing data quality
  4. Set up automated testing with Snowplow Micro
  5. Upgrading Snowplow Micro

Upgrading Snowplow Micro

Upgrading to v1.0.0

  • Snowplow Micro now uses the exact same validation with a production Snowplow pipeline, which is even stricter and so ensures that if Micro validates an event, then it cannot fail during the enrichment in production.
  • Micro now outputs the post-enrichment, canonical event (just with enrichments deactivated).

If you have been using the previous version (v0.1.0) in your test suites, you can easily upgrade to the new version (recommended). The steps include:

  1. Point to the new version 1.0.0 of Micro in your docker run command or in your docker-compose.yml file.
  2. Modify the configuration for Micro, an example of which can be found in the micro.conf file here.
  3. The response format for GoodEvents has changed, since Micro now outputs the post-enrichment event. This means that if in your tests you were filtering on GoodEvents through the /micro/good endpoint, you will need to change:
    • the expected values for eventType. For example:
    v0.1.0v1.0.0pvpage_viewpppage_pingsestructueunstructNote: If you use the helper module of this repo and upgrade to its latest release, then the above should be the only change you will need in your tests’ spec files.
    • the event specific fields, that were transformed for enrichment. Some of them are in the table below, but you can see all of the transformations here.
    v0.1.0v1.0.0eeventaidapp_idpplatformuiduser_iddtmdvce_created_tstamptnaname_trackerpagepage_titlese_case_categoryse_acse_actionse_lase_labelse_prse_propertyse_vase_valueue_prunstruct_eventcocontextsue_pxunstruct_eventcxcontextsNote: The unstruct_event and contexts fields have already parsed the ue_pr and co and have already decoded and parsed the ue_px and cx raw event fields respectively.
    • the structure you expect. The event that was the output of Micro’s v0.1.0, now corresponds to the rawEvent field of the event output of v1.0.0.
    A partial example of a GoodEvent follows, showing the structure and highlight the differences described above:{ "rawEvent": { ... "parameters": { "e": "ue", "eid": "966d4d79-11d9-4fa6-a1a5-6a0bc2d06de1", "aid": "DemoID", ..., "ue_pr": "{\"schema\":\"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0\",\"data\":{\"schema\":\"iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0\",\"data\":{\"formId\":\"FORM\",\"elementId\":\"user_email\",\"nodeName\":\"INPUT\",\"elementClasses\":[\"form-control\"],\"value\":\"fake@foo.com\",\"elementType\":\"email\"}}}", ... }, ... }, "eventType": "unstruct", "schema": "iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0", "contexts": [ "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0", ... ], "event": { "event": "unstruct", "event_id": "966d4d79-11d9-4fa6-a1a5-6a0bc2d06de1", "app_id": "DemoID", ..., "unstruct_event": { "schema": "iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0", "data": { "schema": "iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0", "data": { "formId": "FORM", "elementId": "user_email", "nodeName": "INPUT", "elementClasses": [ "form-control" ], "value": "fake@foo.com", "elementType": "email" } } }, ... } }

If you’d like to learn more about Snowplow Insights you can book a demo with our team, or if you’d prefer, you can try Snowplow technology for yourself quickly and easily.