Iglu Server 0.7.0 released

We are pleased to announce version 0.7.0 of Iglu Server

Iglu server is a http api implementation of an Iglu schema repository. It is extensively used by snowplow pipelines, for storing and versioning the schemas of events and entities. Our docs site has a guide to run and configure the server.

New in this release

  • More efficient database queries. Previously we were filtering schemas in memory, where the filter could be easily moved the the WHERE clause of the sql query.
  • The Super api key is now provided in the configuration file, instead of stored in the database. This enables faster key rotation for better security.
  • The configuration file is now optional. Configuration parameters can be provided by other methods, which we find more convenient with some deployment environments.
  • Various bug fixes, and docker-compose fixes.

Breaking changes to configuration file

We took the decision to make some breaking changes to the iglu server configuration file:

  • Keys that were previously hyphenated must now be camel case. For example "patches-allowed": true should be changed to "patchesAllowed": true.
  • Fields that were previously in milliseconds or seconds, are now expressed with an explicit unit. For example "maxLifetime": 3000 should be changed to "maxLifetime": "3 seconds".

This is all part of our wider plan to make Snowplow applications more uniform in how they are configured. With these changes made, we hope our configuration files can remain more stable in future. Our docs site has a detailed reference for all configuration options.


This is great - does this have to be expressed in seconds or can it now be any (time) unit?

@mike It can be any time unit. For example,

  • millis or milli or ms or millisecond
  • seconds or second or s or sec or secs
  • similarly for minute, hour, day, micros, nanos

We use the pureconfig parser to do this. I couldn’t find any good documentation for this, but you can see in the pureconfig code what labels are allowed.

It’s a good question, because we now often use this configuration style in snowplow apps. For example, here in the rdb loader and here in Enrich.