Skip to main content

Iglu Server configuration reference

CDI customers

If you're a Snowplow CDI customer, you don't need to manage Iglu directly — it's included in your pipeline. Use Event Studio or the Snowplow CLI to manage your schemas. This page is for Self-Hosted customers.

This is a complete list of the options that can be configured in the Iglu Server HOCON config file. The examples on GitHub show how to prepare this 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:

hcl
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.
repoServer.maxPayloadSize (since 0.14.0)Default: 100000. Maximum accepted request body size in bytes. Requests exceeding this are rejected.
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. Customize 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 on 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.
maxJsonDepth (since 0.14.0)Default: 40. Maximum nesting depth for JSON values accepted by the server. Used both when validating schemas and when parsing incoming JSON payloads.

Advanced options

These advanced options have sensible defaults and rarely need changing.

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.