Iglu static repo setup


First-time Snowplow/Iglu user here.

Goal: set up Snowplow with custom contexts, for use with JavaScript tracking.

I wish to create an Iglu repo on my employer’s S3 account.

Here is some information I found on Google Groups,

Anton Parkhomenko wrote: I’d suggest you to use static Iglu repo, as it’s simplest one.
To run it, you need to host its root with any HTTP server. Just like http://iglucentral.com/. For example, you can clone our iglu central and put your JSON Schema in corresponding path in schemas/com.yourcompany/yourcontext/jsonschema/1-0-0.
Second, you will need to add your newly created repo to iglu_resolver.json, so Snowplow pipeline can handle it correctly.

Source: https://groups.google.com/forum/#!topic/snowplow-user/QfYp1dj-dyA

I understand most of the above, and I have located the iglu_resolver.json file.

What I don’t understand – if I modify iglu_resolver.json to point to my S3 server, do I have to perform some build process, to build an Iglu client? Maybe using Scala? I found references elsewhere to Scala builds.

Karl Jones


If you are using a static Iglu repo (your static website hosted in S3), then you shouldn’t have to take any further steps to build the client or anything like that.

Snowplow’s EMR-ETL-runner will handle all of this for you, using the iglu_resolver.json config file at runtime to access your static repo and validate/enrich/shred your incoming custom contexts.

The references to Scala builds you’ve seen are probably talking about the other kind of Iglu repo Snowplow has available, the embedded repo (more information here: https://github.com/snowplow/iglu/wiki/JVM-embedded-repo)

Hope that helps!