Release: Central Validation service & schema to enforce the open analytics taxonomy

Ivar Pruijn

This release introduces a central Validation service, used by all Objectiv components to ensure data is collected according to the open analytics taxonomy. It’s available as a Docker image named objectiv/validator.

How it works

The central Validation service is based on a schema that captures the open analytics taxonomy, and encodes validation rules, such as the required information for Events. This schema is used to automatically generate the Validation service itself, the TypeScript for the Tracker SDK APIs, and the taxonomy documentation.

The {1} captured by the centralized schema

The open analytics taxonomy captured by the centralized schema

All Objectiv components use the Validation service to check instrumentation and tracked Events, and then take respective action, such as reporting issues during development in the browser console, or storing invalid Events separately.

Example of the Tracker SDK reporting an instrumentation issue in the browser console, using the Validation service

Example of the Tracker SDK reporting an instrumentation issue in the browser console, using the Validation service

Benefits

The centralized schema and Validation service:

  • Enforce tracking according to the open analytics taxonomy in the exact same way for all components, whether client-side (the Tracker SDKs) or backend-side (i.e. the Collector/Snowplow).
  • Ensure both the Tracker SDKs and the taxonomy documentation will always be fully consistent in case of any taxonomy updates, as they are automatically generated from the central schema. This also means that contributions to the taxonomy are directly applied to all components.
  • Improve validation by not just looking at the shape of tracked Events, but also at its consistency, such as ensuring that Events don’t contain duplicate information.

Next to this, it also enables validation for future components on our roadmap, e.g. a browser extension that shows any instrumentation issues in the UI while you’re developing your application.

How to get it

If you don’t have Objectiv running yet, you can follow the instructions to run Objectiv Up, our pre-packaged, dockerized version.

To upgrade to the new Validation service and Tracker improvements:

  1. Run the new Validation service, either with the prebuilt Docker containers (by running git pull, followed by docker-compose pull and docker-compose up -d), or following the manual development instructions.
  2. Upgrade your Collector, which is backwards compatible with any former versions of the Tracker.
  3. Upgrade your Tracker.
tip

Be sure to mind the order above, as for instance first upgrading the Collector and then deploying the Validation service will invalidate all incoming events.

That’s it! Your central Validation service is running locally or in production (like on our own website), and all Events are validated against it.

info

Office Hours

If you have any questions about this release or anything else, or if you just want to say 'Hi!' to team Objectiv, we have Office Hours every Thursday at 4pm CET, 10am EST that you can freely dial in to. If you're in a timezone that doesn’t fit well, just ping us on Slack and we'll send over an invite for a better moment.

Join the Office Hours

Try Objectiv

Get Objectiv Up - Try Objectiv on your local machine (takes 5 minutes)
Objectiv on GitHub - Check out the project and star us for future reference
Objectiv on Slack - Join the discussion or get help