Not able to validate and push json schema to iglu server

Hello Team,

Thank you so much for your response.

I am also using the same command, let me explain you our scenario.

we have a filed called button_click.json and the path for this file is schemas
└── com.snowplowanalytics
└── button_click
└── jsonschema
└── 1-0-0
└── button_click.json

the connect of the button_click .json file:

{
“$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
}

After that, first I used the lint command to validate the json file and the command is →

./igluctl lint /Users/ridhamshah/Documents/CDP/igluctl/schemas/com.snowplowanalytics.self-desc/button_click/jsonschema/1-0-0/

and we are getting an error as shown below:

Cannot read [/Users/ridhamshah/Documents/CDP/igluctl/schemas/com.snowplowanalytics.self-desc/button_click/jsonschema/1-0-0]: Path is neither file or directory
Cannot read [/Users/ridhamshah/Documents/CDP/igluctl/schemas/com.snowplowanalytics.self-desc/button_click/jsonschema/1-0-0]: no valid JSON Schemas
TOTAL: 1 files corrupted

Could you please give me an update on this one where am I doing wrong?

Is there any configurations we need to do regarding the vendor prefix or json file?
Do we need to configure the iglu reslover file as well and if yes then where?

Thanks

Hi @ridham,

The JSON schema should be defined in a 1-0-0 file instead of the 1-0-0/button_click.json. So in your case, the folder and file structure should be:
└── com.snowplowanalytics
└── button_click
└── jsonschema
└── 1-0-0

See here for an example of the expected folder and file structure.

Also it seems that your vendor folder has a wrong name – com.snowplowanalytics.self-desc instead of com.snowplowanalytics.

Finally, it’s a good practice to use a custom vendor instead of com.snowplowanalytics for your custom schemas.

As a sidenote, I would like to mention that the last release of the JS tracker has a button click tracking feature. It uses an event schema defined here.

1 Like

Hey Matus,

Thanks for your reply. I am able to validate my schema now the thing is while I am trying to push that schema to registry it shows this error - ‘{“message”:“The endpoint does not exist”}’

One more thing, If we want to use the iglu server APIs to push the schema to iglu (Iglu Server APIs) Could you please tell me curl HOST/api/schemas -X POST -H “apikey: YOUR_APIKEY” -d @myschema.json in this command what is -d @myschema.json? And regarding the api keys do we need to add the generated read and write keys manually inside the database?
INSERT INTO permissions
VALUES (‘api_key_here’, ‘’, TRUE, ‘CREATE_VENDOR’::schema_action, ‘{“CREATE”, “DELETE”}’::key_action)
This is the command right?

Thanks
Ridham Shah