Skip to content

CatchoftheDay/chrome-snowplow-inspector

Repository files navigation

Snowplow Inspector Web Extension

A debugging tool to help you examine and debug your Snowplow tracking implementation.

Features
  • List and filter all your tracking events

  • See tracking parameters in human-friendly format

  • GET and POST tracking support

  • Automatically decode and parse Self-Describing Events and Custom Contexts

  • Validate your Contexts and Events against the schemas in your Iglu Repository

  • Import events from your bad rows bucket/stream and see why they failed enrichment

Feedback, feature requests, pull requests, and bug reports are welcome! Please file an issue.

Install

At the moment, only Chrome/Chromium are supported via an official app store, and builds for Firefox are available, but not supported. To install the extension, visit the page on the Chrome Web Store. You can get builds for Firefox v60+ in Releases.

Schema Validation

The extension options should let you load in local JSON Schema files during development, and you can also add your production or Snowplow Mini Iglu Repositories to test against what you have in production.

Both Static Iglu Repositories and Iglu Servers (like the one used in Snowplow Mini) are supported.

Adding an Iglu Repository

  1. Right-click the extension icon in the main browser toolbar

  2. Select Options

  3. Paste the URL to your repository in the Iglu Repositories field (if you’re adding Snowplow Mini, you need to keep the /iglu-server/api suffix)

  4. Repository URLs can be separated by spaces, lines, or commas

By default we include the URL for Iglu Central, which includes schemas for the built-in tracking JSONs. You can add as many repositories as you like.

For newer versions of Iglu Server, you need to include a UUID API key. In the options, you can attach this to a specific repo by including it in the URL as a username. For example, http://[email protected]/iglu-server/api

Repository Setup

Make sure you have access to your repository from your browser in order for the extension to find your schemas. Typically repositories are hosted on S3, and by default the files may not be publically readable and will result in 403 errors.

For older versions of the extension, it was important to have your repository website or S3 bucket configured for Cross-Origin Resource Sharing. You can find out how to correctly configure an S3 bucket at How Do I Allow Cross-Domain Resource Sharing with CORS? the default rule should work, the extension only requires GET access. More recent versions shouldn’t require CORS to be set up as long as you grant the extension permissions when adding a repository.

If schemas are still 'Unrecognised', try clearing your browser cache and the extension’s Schema Cache. Alternatively, you can import your schemas directly as Local Schemas in the extension Options page.

Develop

Build

Run npm install to install required dependencies, then npm run build to build the extension in the dist/ directory.

Instructions to install a local development version of the extension to test are over at the extension development documentation.

Hack

You can also use npm start to start webpack in watch mode and symlink the resources to make editing easier; source changes should then be reflected immediately in dist/. You will still need to reload the extension in a browser.