Skip to main content

Iglu Server configuration reference

This is a complete list of the options that can be configured in the Iglu Server HOCON config file. The example configs in github show how to prepare an input file.


Iglu Server is released under the Snowplow Limited Use License (FAQ).

To accept the terms of license and run Iglu Server, set the ACCEPT_LIMITED_USE_LICENSE=yes environment variable. Alternatively, you can configure the license.accept option, like this:

license {
accept = true

Common options

repoServer.interfaceOptional. Default: Address on which the server listens to http connections.
repoServer.portOptional. Default: 8080. Port on which the server listens.
repoServer.idleTimeoutDefault: 30 seconds. TCP connections are dropped after this timeout expires. In case Iglu Server runs behind a load balancer, this should slightly exceed the load balancer's idle timeout.
repoServer.hsts.enable (since 0.12.0)Default: false. Whether to send an HSTS header.
repoServer.hsts.maxAge (since 0.12.0)Default: 365 days. The maximum age for the HSTS header.
database.typeOptional. Default: postgres. Can be changed to dummy during development for in-memory only storage.
database.hostRequired. Host name for Postgres database.
database.portOptional. Default: 5432. Port for Postgres database.
database.dbnameRequired. Name of Postgres database.
database.usernameRequired. Username for connecting to Postgres.
database.passwordRequired. Password for connecting to Postgres.
swagger.baseUrlOptional. Example: /custom/prefix. Customise the api base url in Swagger. Helpful for when running iglu-server behind a proxy server.
debugOptional. Default: false. Enable additional debug api endpoint to respond with all internal state.
patchesAllowedOptional. Default: false. If true, allows overwriting a given version of a schema with new content. See amending schemas.
webhooks.schemaPublishedOptional. Array with the list of webhooks that will be called when a schema is published or updated with a vendor that matches the specified prefixes. See the examples in github.
webhooks.schemaPublished.uriRequired. URI of the HTTP server that will receive the webhook event.
webhooks.schemaPublished.vendorPrefixesOptional. Example: ["com", "org.acme", "org.snowplow"]. List of schema prefixes (regexes) that should be sent via the webhook.
webhooks.schemaPublished.usePost (since 0.8.7)Optional. Default: false. Whether to use POST to send request via the webhook.
superApiKeyOptional. Set a super api key with permission to read/write any schema, and add other api keys.

Advanced options

We believe these advanced options are set to sensible defaults, and hopefully you won’t need to ever change them.

repoServer.threadPool.typeDefault: fixed for a fixed thread pool. Can be cached for a cached thread pool. Type of the thread pool used by the underlying BlazeServer for executing Futures.
repoServer.threadPool.sizeOptional. Default: 4. Size of the thread pool if the type is fixed.
repoServer.maxConnectionsOptional. Default: 1024. Maximum number of client connections that may be active at any time.
database.pool.typeOptional. Default: hikari (recommended for production). Can be changed to nopool to remove the upper bound on the number of connections.
database.pool.maximumPoolSizeOptional. Default: 5. Maximum number of connections in the Hikari pool.
database.pool.connectionTimeoutOptional. Default: 30 seconds. Timeout on the Hikari connection pool.
database.pool.maxLifetimeOptional. Default: 1800 seconds. Maximum lifetime of a connection in the Hikari pool.
database.pool.minimumIdleOptional. Default: 5. Minimum number of idle connections in the Hikari pool.
database.pool.connectionPool.typeOptional. Default: fixed for a fixed thread pool (recommended in production). Type of the thread pool used for awaiting connection to the database.
database.pool.connectionPool.sizeOptional. Default: 4. Number of threads to use when the connection pool has type fixed.
database.pool.transactionPool.typeOptional. Default: cached (recommended for production). Type of the thread pool used for blocking JDBC operations.
preTerminationPeriod (since 0.8.0)Optional. Default: 1 second. How long the server should pause after receiving a sigterm before starting the graceful shutdown. During this period the server continues to accept new connections and respond to requests.
preTerminationUnhealthy (since 0.8.0)Optional. Default: false. During the preTerminationPeriod, the server can be configured to return 503s on the /health endpoint. Can be helpful for removing the server from a load balancer’s targets.
Was this page helpful?