Document updated on Oct 24, 2023
We call service settings (or the service layer) those parameters that allow you to change how KrakenD behaves globally (and not to a specific call). They determine how you start the HTTP server, enforce security parameters, or define behavioral options like which reporting activities occur, to name a few examples.
Examples of service settings are, the listening port, disabling keep alives, enabling metrics and traces, listening https, or enabling CORS to name a few.
If you haven’t done it yet, read Understanding the configuration file.
All service settings are written directly in the root of the configuration file or its corresponding extra_config
. So, for instance, here there is a configuration file describing a service listening on port 8080 with extended logging enabled:
{
"version": 3,
"port": 8080,
"listen_ip": "192.168.1.3",
"endpoints": [],
"extra_config": {
"telemetry/logging": {
"level": "WARNING",
"syslog": true,
"stdout": true
}
}
}
The service accepts numerous configuration options that you’ll find explained through the rest of the documentation, but here is a preview of the most important ones:
"false"
| Your API contract, or the list of all paths recognized by this gateway. The paths /__health/ , /__debug/ , /__echo/ , /__catchall , and /__stats/ are reserved by the system and you cannot declare them. Their existence depends on their respective settings. |
| The optional configuration that extends the core functionality of the gateway is specified here. The extra_config at this level enables service components, meaning that they apply globally to all endpoints or activity. |
| The IP address that KrakenD listens to in IPv4 or IPv6. An empty string, or no declaration at all means listening on all interfaces. The inclusion of :: is meant for IPv6 format only (this is not the port). Examples of valid addresses are 192.0.2.1 (IPv4), 2001:db8::68 (IPv6). The values :: and 0.0.0.0 listen to all addresses and both are valid for IPv4 and IPv6 simultaneously.Examples: "172.12.1.1" , "::1" Defaults to "0.0.0.0" |
| The TCP port where KrakenD is listening to. Recommended value is in the range 1024-65535 to run as an unpriviliged user Defaults to 8080 |
| The syntax version tells KrakenD how to read this configuration. This is not the KrakenD version. Each KrakenD version is linked to a syntax version, and since KrakenD v2.0 the version must be 3 Possible values are: 3 |
Other service-level settings you can add:
The documentation is only a piece of the help you can get! Whether you are looking for Open Source or Enterprise support, see more support channels that can help you.