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.

License#

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#

parameterdescription
repoServer.interfaceOptional. Default: 0.0.0.0. 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.

parameterdescription
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.

On this page

Want to see a custom demo?

Our technical experts are here to help.