Skip to main content

Upgrading Snowplow Micro

Upgrading from v0.x to v1‚Äč

  • Snowplow Micro v1 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:

  • Point to the newest v1 version¬†1.3.3¬†of Micro in your¬†docker run¬†command or in your¬†docker-compose.yml¬†file.
  • Modify the configuration for Micro, an example of which can be found in the¬†micro.conf¬†file¬†here.
  • 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.
v0v1
pvpage_view
pppage_ping
sestruct
ueunstruct
  • 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. Note: 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.
v0v1
eevent
aidapp_id
pplatform
uiduser_id
dtmdvce_created_tstamp
tnaname_tracker
pagepage_title
se_case_category
se_acse_action
se_lase_label
se_prse_property
se_vase_value
ue_prunstruct_event
cocontexts
ue_pxunstruct_event
cxcontexts
  • the structure you expect. The event that was the output of Micro's v0, now corresponds to the¬†rawEvent¬†field of the event output of v1. A partial example of a¬†GoodEvent¬†follows, showing the structure and highlight the differences described above:
// raw event parameters
"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\"}}}"
}
}

// corresponding canonical event properties
"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"
}
}
}
}