Ski Mask
Schema validation tool for Snowplow Iglu JSON schemas.
Command line Usage
- Install
ski-mask
npm install ski-mask -g# Or yarn global add ski-mask
-
Grab a valid Iglu resolver.json file that resolves to your Iglu server(s).
-
Run
ski-mask
to validate the payload.
ski-mask -r ./path/to/resolver.json -d ./path/to/snowplow-payload-data.json
Example
- Prepare your
data.json
file that represents your Snowplow Payload.
- Grab your Iglu resolver config file and name it something like
resolver.json
.
- Run
ski-mask
to validate the payload.
ski-mask -r ./path/to/resolver.json -d ./path/to/snowplow-payload-data.json
Programmatic usage
- Add
ski-mask
to yourpackage.json
npm install ski-mask --dev# or yarn add ski-mask --dev
- Use the API
const skiMask = ;// or import validate from 'ski-mask' const payload = "schema": "iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0" "data": "event_name": "link_click" "schema": "iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-0" "data": "targetUrl": "https://myawesomeurl.com/data" "elementId": "bestElementEver" ; const resolverConfig = "schema": "iglu:com.snowplowanalytics.iglu/resolver-config/jsonschema/1-0-0" "data": "cacheSize": 500 "repositories": "name": "Iglu Central" "priority": 0 "vendorPrefixes": "com.snowplowanalytics.snowplow" "connection": "http": "uri": "http://iglucentral.com" "name": "My Iglu Server" "priority": 1 "vendorPrefixes": "com.my-iglu-server" "connection": "http": "uri": "http://awesome-schemas.my-iglu-server.com" ; skiMask // Will yield a result object // {// success: true,// message: 'All Valid'// } // or // {// success: false,// message: 'some error message',// context: 'some context for the error message'// }