1. Home
  2. Docs
  3. Managing data quality
  4. Testing and QA workflows
  5. Set up automated testing with Snowplow Micro
  6. Upgrading Snowplow Micro

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.2.1 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" } } } }
Code language: plaintext (plaintext)

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.