1. Home
  2. Docs
  3. Managing data quality
  4. Event Recovery for Open Source
  5. Running


Define configuration

The configuration consists of

resolver-config.json, for example:

Code language: JSON / JSON with Comments (json)

job-config.json, for example:

{ "schema": "iglu:com.snowplowanalytics.snowplow/recoveries/jsonschema/2-0-0", "data": { "iglu:com.snowplowanalytics.snowplow.badrows/enrichment_failures/jsonschema/1-0-*": [ { "name": "pass through", "conditions": [], "steps": [] } ] } }
Code language: JSON / JSON with Comments (json)

Encode configuration

Configuration is supplied to recovery jobs as a Base64-encoded string. Encode your configuration. You can use following ammonite script to do this for you:

import java.util.Base64 import java.nio.charset.StandardCharsets import ammonite.ops._ import $ivy.`io.circe::circe-parser:0.13.0`, io.circe._, io.circe.syntax._, io.circe.parser._ val load = (path: String) => read! os.Path(path, base = os.pwd) val encode = (str: String) => Base64.getEncoder.encodeToString(str.getBytes(StandardCharsets.UTF_8)) @main def run(config: String): Unit = parse(load(config)) match { case Right(data) => println(encode(data.asJson.noSpaces)) case Left(err) => println(s"Invalid JSON input in: ${err.getMessage}") }
Code language: Scala (scala)

And then just run (assuming ammonite is on your path and above script is called encode.sc:

amm ./encode.sc resolver-config.json amm ./encode.sc job-config.json

Deploy the job

There are several runtimes that recovery process can be deployed to:


If you’d like to learn more about Snowplow BDP you can book a demo with our team, or if you’d prefer, you can try Snowplow technology for yourself quickly and easily.