Add Json Schema SelfDescribing

Hi Guys,

I am trying to add my own Json Schema, but I am confused were should I upload / update:

  1. I am using Snowplow Mini for my Dev Environment, what exactly should I do step by step :slight_smile:
  2. My Production environment, I used the snowplow quick setup with terraform. What exactly should I do to implement my sefl json? In wich server should I do the changes.

Below my Json Example and how I put in my code:

“$schema”: “”,
“description”: “Schema for Login”,
“self”: {
“vendor”: “com.mycompany”,
“name”: “login”,
“format”: “jsonschema”,
“version”: “1-0-0”
“type”: “object”,
“properties”: {
“product_id”: {
“type”: “string”,
“description”: “Product Id”,
“maxLength”: 255
“product_name”: {
“type”: “string”,
“description”: “Product Name”,
“maxLength”: 255
“card_position”: {
“type”: “integer”,
“description”: “Card position for click on product card”,
“minimum”: 1,
“maximum”: 100
“additionalProperties”: false

function login(){
  snowplow('trackSelfDescribingEvent', { 
    event: {
      schema: 'iglu:com.mycompany/login/jsonschema/1-0-0',
      data: {
        product_id: 'jd7ujksd8-djdps89d98v-8klnl899n',
        product_name: 'AX',
        card_position: 1

Thanks by Advance

Hey @nando_roz,

You need to upload your schema to your Iglu server to be able to use it. Snowplow Mini has its Iglu server instance. You can follow the steps in here to upload schema to there.

You will need Iglu server to be able to use custom JSON schema in the production environment as well. If you didn’t deploy your Iglu server before, you can find the instruction for how to do that in here.

After deploying the Iglu server, you need the add its address to Iglu resolver of respective component such as enrich or loader. You can find more information about Iglu resolver in here.

Hey @enes_aldemir thanks for your answer.

I am receiving 502 bad gateway and connecting in the docker snowplow mini machine, I saw that iglu-server always restarting. And seeing the log, I am receiving this error. What could be?