Iglu repository setup

Hi,
Sorry am asking this again.
We are doing the iglu setup and have this question. We have created a iglu repository and referred the repository url in resolver.json. But the schema files in the repository(1-0-0) refers to the public repository($Schema) variable. Does this mean that the schema validation is taken from iglu central and not our own repository. Should we change $schema for all the schemas to refer to our local repository? Sorry can you please explain the need for $schema? We would typically not want to redirect to any public repository.

Thanks,
Manju

{
"$schema": “http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#”,
“description”: “Schema for an example custom context”,
“self”: {
“vendor”: “com.snowplow”,
“name”: “exampleCustomContext”,
“format”: “jsonschema”,
“version”: “1-0-0”
},

Hi manju,

All self describing JSON schemas have that, it just validates that your schema contains “self” and the 4 fields in it. “vendor” should probably with your company rather than com.snowplow, say com.example. Snowplow checks resolver to find where schemas for com.example are stored, then builds the actual URL to access the schema, say, http://iglu.example.com/schemas/com.example/exampleCustomContex/jsonschema/1-0-0.

1 Like

The $schema keyword provides a URI for the metaschema (that is a JSON schema that describes Snowplow self-describing schemas) for Snowplow - you shouldn’t ever need to change this.

When schema lookup occurs it’ll look at whatever Iglu repositories you have defined in your resolver configuration.