How do I delete schemas from Snowplow Mini?

How do I delete schemas from snowplow mini? I was working with some old schemas that aren’t correct and would like to clear everything out so I can start fresh with my new schemas. It doesn’t look like the iglu server supports delete (at least as listed on the maintenance page).

1 Like

Hello @dcow,

You need to use curl for that.

First, create API key with write access:

curl -POST "http://your-snowplow-mini:8081/api/auth/keygen" -H "apikey: master-key-uuid" -d "vendor_prefix=*"

In above, replace your-snowplow-mini with host and master-key-uuid with your actual master key. This additional step required because master key (which you should have since install) is key which you can use only to create/delete other API keys and but schemas. This should output a JSON like following:

  "read" : "3eb8af77-7f95-4fde-9643-98d510ce64eb",
  "write" : "40974eeb-9fbc-4024-a2bf-0ec22bccad24"

Now you can use write API key to delete your schema using following command:

curl -XDELETE http://your-snowplow-mini:8081/api/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0 -H "apikey: 40974eeb-9fbc-4024-a2bf-0ec22bccad24"

Just replace placeholders for host, schema URI and write apikey with your actual data.

Hope that help,


Also, you can just upload your new schemas, using PUT method (that is how script works). Schemas with same URI will be just silently overridden.

@anton thanks. Can I also just drop the schemas table (and accompanying sequence) and restart the server?

@dcow, yes that should work, I guess: it will simply reinitialize table. Anyway, it’s better to not drop table, but delete all entities - then you even won’t need to restart a server:

psql --host localhost -U snowplow -W iglu  # password: snowplow


DELETE FROM schemas;
1 Like

@anton I still had to restart the server because dropping everything from the schemas table also removes the cached self-desc schema so uploading future schemas fails.