Managing schemas using Iglu
info
This documentation only applies to Snowplow Open Source. See the feature comparison page for more information about the different Snowplow offerings.
Setupโ
To manage your schemas, you will need to have an Iglu Server installed (you will already have one if you followed the Open Source Quick Start).
Alternatively, you can host a static Iglu registry in Amazon S3 or Google Cloud Storage.
Creating a schemaโ
First, design the schema for your custom event (or entity). For example:
{
"$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
"description": "Schema for a button click event",
"self": {
"vendor": "com.snowplowanalytics",
"name": "button_click",
"format": "jsonschema",
"version": "1-0-0"
},
"type": "object",
"properties": {
"id": {
"type": "string"
"minLength": 1
},
"target": {
"type": "string"
},
"content": {
"type": "string"
}
},
"required": ["id"],
"additionalProperties": false
}
Next, save this schema in the following folder structure, with a filename of 1-0-0
(without any extension):
schemas
โโโ com.snowplowanalytics
โโโ button_click
โโโ jsonschema
โโโ 1-0-0
tip
If you update the vendor
or the name
in the example, you should update the above path too.
Finally, to upload your schema to your Iglu registry, you can use igluctl:
igluctl static push --public <local path to schemas> <Iglu server endpoint> <iglu_super_api_key>
See the Igluctl reference page for more information on the static push
command.