# title
Schema definition for service extra_config

# properties.qos/ratelimit/service.description
Enterprise Only. The service rate limit feature allows you to set the maximum requests per second a user or group of users can do to KrakenD and works analogously to the endpoint rate limit.

See: https://www.krakend.io/docs/enterprise/service-settings/service-rate-limit/

# properties.security/cors.description
When KrakenD endpoints are consumed from a browser, you might need to enable the Cross-Origin Resource Sharing (CORS) module as browsers restrict cross-origin HTTP requests initiated from scripts.

See: https://www.krakend.io/docs/service-settings/cors/

# properties.security/cors.properties.allow_credentials.description
When requests can include user credentials like cookies, HTTP authentication or client side SSL certificates

See: https://www.krakend.io/docs/service-settings/cors/

# properties.security/cors.properties.allow_methods.description
The array of all HTTP methods accepted, in uppercase.

See: https://www.krakend.io/docs/service-settings/cors/

# properties.security/cors.properties.allow_origins.description
An array with all the origins allowed, examples of values are https://example.com, or * (any origin).

See: https://www.krakend.io/docs/service-settings/cors/

# properties.security/cors.properties.debug.description
Show debugging information in the logger, to be used only during development.

See: https://www.krakend.io/docs/service-settings/cors/

# properties.security/cors.properties.expose_headers.description
Headers that are safe to expose to the API of a CORS API specification-

See: https://www.krakend.io/docs/service-settings/cors/

# properties.security/cors.properties.max_age.description
For how long the response can be cached.

See: https://www.krakend.io/docs/service-settings/cors/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/api-keys.json.description
Enterprise only. Enables a Role-Based Access Control (RBAC) mechanism by reading the `Authorization` header of incoming requests.

See: https://www.krakend.io/docs/enterprise/authentication/api-keys/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/api-keys.json.properties.identifier.description
The header name or the query string name that contains the API key. Defaults to `key` when using the `query_string` strategy and to `Authorization` when using the `header` strategy. The identifier set here is used across all endpoints with API key authentication enabled, but they can override this entry individually.

See: https://www.krakend.io/docs/enterprise/authentication/api-keys/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/api-keys.json.properties.keys.description
A list of objects defining each API Key.

See: https://www.krakend.io/docs/enterprise/authentication/api-keys/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/api-keys.json.properties.keys.items.properties.key.description
The secret key used by the client to access the resources. Don't have a key? Execute in a terminal `uuidgen` to generate a random one.

See: https://www.krakend.io/docs/enterprise/authentication/api-keys/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/api-keys.json.properties.keys.items.properties.roles.description
All the roles this user has. See roles as all the identifying labels that belong to this client.

See: https://www.krakend.io/docs/enterprise/authentication/api-keys/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/api-keys.json.properties.strategy.description
Specifies where to expect the user API key, whether inside a header or as part of the query string. The strategy set here is used across all endpoints with API key authentication enabled, but they can override this entry individually.

See: https://www.krakend.io/docs/enterprise/authentication/api-keys/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/basic.json.description
Enterprise only. The Basic Authentication component protects the access to selected endpoints using basic username and password credentials.

See: https://www.krakend.io/docs/enterprise/authentication/basic-authentication/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/basic.json.properties.htpasswd_path.description
Absolute Path to the `htpasswd` filename (recommended) or relative `./` to the workdir (less secure).

See: https://www.krakend.io/docs/enterprise/authentication/basic-authentication/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/basic.json.properties.users.description
**Additional** users to the `htpasswd` file can be declared directly inside the configuration. The content of both places will be merged (and this list will overwrite users already defined in the htpasswd file). The key of each entry is the username, and the value the bcrypt.

See: https://www.krakend.io/docs/enterprise/authentication/basic-authentication/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/jose.json.description
Enables global configurations for the HTTP client responsible of downloading and caching the JWK URLs for token validation and signing.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/jose.json.properties.shared_cache_duration.description
The cache duration in seconds for the JWK client retrieving the `jwk_url`. The endpoint must enable the `cache` option in order to use this second level cache.

See: https://www.krakend.io/docs/authorization/jwk-caching/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.description
The API Gateway authorizes users that provide valid tokens according to your criteria, but at some point, you might want to change your mind and decide to revoke JWT tokens that are still valid.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.N.description
The maximum `N`umber of elements you want to keep in the bloom filter. Tens of millions work fine on machines with low resources.

See: https://www.krakend.io/docs/authorization/revoking-tokens/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.P.description
The `P`robability of returning a false positive. E.g.,`1e-7` for one false positive every 10 million different tokens. The values `N` and `P` determine the size of the resulting bloom filter to fulfill your expectations. E.g: 0.0000001

See: https://www.krakend.io/docs/authorization/revoking-tokens/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.TTL.description
The lifespan of the JWT you are generating in seconds. The value must match the expiration you are setting in the identity provider when creating the tokens.

See: https://www.krakend.io/docs/authorization/revoking-tokens/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.hash_name.description
Either `optimal` (recommended) or `default`. The `optimal` consumes less CPU but has less entropy when generating the hash, although the loss is negligible.

See: https://www.krakend.io/docs/authorization/revoking-tokens/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.port.description
The port number exposed on each KrakenD instance for the RPC service to interact with the bloomfilter. This port is allocated only to the clients (running KrakenDs).

See: https://www.krakend.io/docs/authorization/revoking-tokens/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.revoke_server_api_key.description
A string used as an exchange API key to secure the communication between the Revoke Server and the KrakenD instances and to consume the REST API of the Revoker Server as well. E.g., a string generated with `uuidgen`.

See: https://www.krakend.io/docs/enterprise/authentication/revoke-server/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.revoke_server_max_retries.description
Maximum number of retries after a connection fails. When the value is less than zero it is changed automatically to zero.

See: https://www.krakend.io/docs/enterprise/authentication/revoke-server/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.revoke_server_max_workers.description
How many workers are used concurrently to execute an action (e.g., push a token) to all registered instances, allowing you to limit the amount of memory consumed by the server. For example, if you have 100 KrakenD servers and need to push 5MB of data each, you need to send 500MB in total. A max_workers=5 will consume a maximum of `5MB x 5 workers = 25MB` of memory in a given instant. Defaults to the same number of CPUs available.

See: https://www.krakend.io/docs/enterprise/authentication/revoke-server/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.revoke_server_ping_interval.description
Time the server and the client wait to verify they are alive with each other (health check). Defaults to `30s`. Do not lower this value a lot; otherwise, you will have a lot of internal traffic.

See: https://www.krakend.io/docs/enterprise/authentication/revoke-server/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.revoke_server_ping_url.description
The address to the `/instances` endpoint in the Revoke Server.

See: https://www.krakend.io/docs/enterprise/authentication/revoke-server/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/auth/revoker.json.properties.token_keys.description
The list with all the claims in your JWT payload that need watching. These fields establish the criteria to revoke accesses in the future. The Revoker does not use this value, only the clients.

See: https://www.krakend.io/docs/authorization/revoking-tokens/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.description.description
An introductory, optionally verbose, explanation supporting [CommonMark](http://commonmark.org/help/) syntax. If you'd like to load an **external markdown file**, you can use flexible configuration, for instance `"description": {{include "openapi/intro.md" | toJson }}`

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.audience.description
The list of audiences that will consume this endpoint. These values **do not define the gateway logic** in any way. They are a way to group endpoints and filter them out when generating the OpenAPI documentation. Use `*` to indicate an endpoint will be present in any audience generated.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.base_path.description
A starting path that is appended to any endpoint.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.contact_email.description
Email where users of your API can write to.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.contact_url.description
Contact URL that users of your API can read.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.example.description
**Deprecated in OAS3** (use `response_definition` instead). A free form JSON object or a string you would like to show as a sample response of the endpoint. The examples assume they are JSON content types except when using the `output_encoding=string`.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.host.description
The hostname where you will publish your API.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.license_url.description
The URL where the license is hosted

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.response_definition.description
Describes the different status codes returned by this endpoint. Each key is the definition of the status code, represented by a string. E.g., `200` (success), `500` (internal error), etc.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.response_definition.patternProperties.^[0-9]+$.properties.description.description
The description of this error code, e.g., `Page not found`.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.response_definition.patternProperties.^[0-9]+$.properties.content_type.description
The content type returned by this error, e.g., `application/json`

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.response_definition.patternProperties.^[0-9]+$.properties.example.description
A free form JSON object or a string you would like to show as a sample response of the endpoint. The examples assume they are JSON content types except when using the `output_encoding=string`.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.response_definition.patternProperties.^[0-9]+$.properties.example_schema.description
A JSON schema that describes the response format for the selected status code, encoded as a base64 string. Use either example or example_schema, but not both.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.schemes.description
The list of schemes supported by the API, e.g. `http` or `https`

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.summary.description
A short summary for the endpoint. Use the description field for the longest explanation.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.tags.description
You can assign a list of tags to each API operation. Tagged operations may be handled differently by tools and libraries. For example, Swagger UI uses tags to group the displayed operations.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.terms_of_service.description
The URL to the terms of service for using this API.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/documentation/openap.properties.version.description
The version numbering you want to apply to this release of API., e.g.: `1.0`.

See: https://www.krakend.io/docs/enterprise/developer/openapi/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/grpc.json.properties.catalog.description
The paths to the different `.pb` files you want to load, or the paths to directories containing `.pb` files. All content is scanned in the order of the list, and after fetching all files it resolves the dependencies of their imports. The order you use here is not important to resolve imports, but it matters when there are conflicts (different files using the same namespace and package type).

See: https://www.krakend.io/docs/backends/grpc/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.description
Scripting with Lua is an additional choice to extend your business logic, and is compatible with the rest of options such as CEL, Martian, or other Go plugins and middlewares.

See: https://www.krakend.io/docs/endpoints/lua/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.properties.allow_open_libs.description
As an efficiency point the Lua component does not load the standard libraries by default. If you need to import Lua libraries (e.g, the I/O, String, etc.), then you must set this flag to true.

See: https://www.krakend.io/docs/endpoints/lua/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.properties.live.description
For security and efficiency, the Lua script is loaded once into memory and not reloaded even if the file contents change. Set this flag to `true` if you want to modify the Lua script while KrakenD is running and apply the changes live (mostly during development to avoid the snippet being cached).

See: https://www.krakend.io/docs/endpoints/lua/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.properties.md5.description
The md5sum is an extra security feature to make sure that once you have coded the Lua script, the MD5 of what is loaded into memory matches what you expect and has not been tampered by a malicious 3rd party.

See: https://www.krakend.io/docs/endpoints/lua/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.properties.post.description
The Lua code that is executed **after** performing the request. Available when used in the `backend` section. You can write all the Lua code inline (e.g., `print('Hi'); print('there!')` but you can also call functions that live inside one of the files under `sources` (e.g., `my_function()`).

See: https://www.krakend.io/docs/endpoints/lua/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.properties.pre.description
The Lua code that is executed **before** performing the request. Unlike `post`, it's available in all sections. You can write all the Lua code inline (e.g., `print('Hi'); print('there!')` but you can also call functions that live inside one of the files under `sources` (e.g., `my_function()`).

See: https://www.krakend.io/docs/endpoints/lua/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.properties.pre.examples[]
print('Backend response, pre-logic:'); local r = request.load(); print(r:body());

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.properties.skip_next.description
Available on the `backend` section only. Instead of connecting to next backend in the pipe, returns an empty response and executes the `post` lua function.

See: https://www.krakend.io/docs/endpoints/lua/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/modifier/lua.json.properties.sources.description
An array with all the Lua files that will be processed. If no path is provided (e.g., `myfile.lua`) the file loads from the working directory (same place you loaded the configuration, usually `/etc/krakend`)

See: https://www.krakend.io/docs/endpoints/lua/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/basic-auth.js.properties.endpoints.description
An array to restrict which endpoints are protected with basic authentication. The `endpoints` values must match with the declaration of endpoints in your configuration, including any `{placeholders}` in the path. Use `["*"]` or delete this property to protect all endpoints.

See: https://www.krakend.io/docs/enterprise/authentication/basic-authentication/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/basic-auth.js.properties.htpasswd_path.description
Absolute Path to the `htpasswd` filename (recommended) or relative `./` to the workdir (less secure).

See: https://www.krakend.io/docs/enterprise/authentication/basic-authentication/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/basic-auth.js.properties.users.description
**Additional** users to the `htpasswd` file can be declared directly inside the configuration. The content of both places will be merged (and this list will overwrite users already defined in the htpasswd file).

See: https://www.krakend.io/docs/enterprise/authentication/basic-authentication/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/geoip.json.description
Enterprise only. The GeoIP integration allows you load Maxmind's GeoIP2 City database (payment and free versions) and enrich all KrakenD calls to your backends with geo data.

See: https://www.krakend.io/docs/enterprise/endpoints/geoip/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/geoip.json.properties.citydb_path.description
The path in the filesystem containing the database in GeoIP2 Binary (`.mmdb`) format. Relative to the working dir or absolute path.

See: https://www.krakend.io/docs/enterprise/endpoints/geoip/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/http-server.j.properties.name.description
An array with the names of plugins to load. The names are defined inside your plugin.

See: https://www.krakend.io/docs/extending/http-server-plugins/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/ip-filter.jso.description
Enterprise only. The IP filtering plugin allows you to restrict the traffic to your API gateway based on the IP address. It works in two different modes (allow or deny) where you define the list of IPs (CIDR blocks) that are authorized to use the API, or that are denied from using the API.

See: https://www.krakend.io/docs/enterprise/throttling/ipfilter/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/ip-filter.jso.properties.CIDR.description
The CIDR blocks (list of IPs) you want to allow or deny.

See: https://www.krakend.io/docs/enterprise/throttling/ipfilter/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/ip-filter.jso.properties.allow.description
When true, only the matching IPs are able to access the content. When false, all matching IPs are discarded.

See: https://www.krakend.io/docs/enterprise/throttling/ipfilter/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/ip-filter.jso.properties.client_ip_headers.description
A custom list of all headers that might contain the real IP of the client. The first matching IP in the list will be used. Default headers are (in order of checking): X-Forwarded-For, X-Real-IP, and X-Appengine-Remote-Addr.

See: https://www.krakend.io/docs/enterprise/throttling/ipfilter/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/ip-filter.jso.properties.trusted_proxies.description
A custom list of all the recognized machines/balancers that proxy the client to your application. This list is used to avoid spoofing when trying to get the real IP of the client.

See: https://www.krakend.io/docs/enterprise/throttling/ipfilter/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/jwk-aggregato.description
Enterprise only. The JWK aggregator plugin allows KrakenD to validate tokens issued by multiple Identity Providers.

See: https://www.krakend.io/docs/enterprise/authentication/multiple-identity-providers/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/jwk-aggregato.properties.origins.description
The list of all JWK URLs recognized as valid Identity Providers by the gateway.

See: https://www.krakend.io/docs/enterprise/authentication/multiple-identity-providers/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/jwk-aggregato.properties.port.description
The port of the local server doing the aggregation. The port is only accessible within the gateway machine using localhost, and it's never exposed to the external network. Choose any port that is free in the system.

See: https://www.krakend.io/docs/enterprise/authentication/multiple-identity-providers/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/redis-ratelim.description
Enterprise only. The global rate limit functionality enables a Redis database store to centralize all KrakenD node counters. Instead of having each KrakenD node count its hits, the counters are global and stored in the database.

See: https://www.krakend.io/docs/enterprise/endpoints/global-rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/redis-ratelim.properties.burst.description
How many requests a client can make above the rate specified during a peak.

See: https://www.krakend.io/docs/enterprise/endpoints/global-rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/redis-ratelim.properties.host.description
The URL to the Redis instance that stores the counters using the format `host:port`.

See: https://www.krakend.io/docs/enterprise/endpoints/global-rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/redis-ratelim.properties.period.description
For how long the content lives in the cache. Usually in seconds, minutes, or hours. E.g., use `120s` or `2m` for two minutes

See: https://www.krakend.io/docs/enterprise/endpoints/global-rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/redis-ratelim.properties.tokenizer_field.description
The field used to set a custom field for the tokenizer (e.g., extracting the token from a custom header other than Authorization or using a claim from a JWT other than the jti).

See: https://www.krakend.io/docs/enterprise/endpoints/global-rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/static-filesy.description
Enterprise only. Allows you to fetch and serve static content in two different use cases. When the plugin is used as an http server handler, the static content is for your end-users, giving them CSS, JS, images, or JSON files, to name a few examples. On the other side, when the plugin is used as an http client executor, the KrakenD endpoints use static content as if it were a backend.

See: https://www.krakend.io/docs/enterprise/endpoints/serve-static-content/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/static-filesy.properties.path.description
The folder in the filesystem containing the static files. Relative to the working dir where KrakenD config is (e.g.: `./assets`) or absolute (e.g.: `/var/www/assets`).

See: https://www.krakend.io/docs/enterprise/endpoints/serve-static-content/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/static-filesy.properties.prefix.description
This is the beginning (prefix) of all URLs that are resolved using this plugin. All matching URLs won't be passed to the router, meaning that they are not considered endpoints. Make sure you are not overwriting valid endpoints. When the `prefix` is `/`, then **all traffic is served as static** and you must declare a prefix under `skip` (e.g.: `/api`) to match endpoints.

See: https://www.krakend.io/docs/enterprise/endpoints/serve-static-content/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/static-filesy.properties.skip.description
An array with all the prefix URLs that despite they could match with the `prefix`, you don't want to treat them as static content and pass them to the router.

See: https://www.krakend.io/docs/enterprise/endpoints/serve-static-content/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/url-rewrite.j.description
Enterprise only. Allows you to declare additional URLs other than the ones defined under the endpoints configuration, used as aliases of existing endpoints.

See: https://www.krakend.io/docs/enterprise/endpoints/url-rewrite/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/url-rewrite.j.properties.literal.description
A map with the exact desired url and its mapping to an endpoint. If the endpoint has `{placeholders}` you need to write them, but the literal value `{placeholders}` is passed.

See: https://www.krakend.io/docs/enterprise/endpoints/url-rewrite/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/url-rewrite.j.properties.regexp.description
A list of lists, containing the regular expression that defines the URL to be rewritten, and its endpoint destination. You can use the capturing groups with the syntax `${1}`, `${2}`, etc.

See: https://www.krakend.io/docs/enterprise/endpoints/url-rewrite/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/virtualhost.j.description
Enterprise only. The Virtual Host plugin allows you to run different configurations of KrakenD endpoints based on the host accessing the server.

See: https://www.krakend.io/docs/enterprise/service-settings/virtual-hosts/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/virtualhost.j.properties.hosts.description
All recognized virtual hosts by KrakenD must be listed here. The values declared here must match the content of the `Host` header when passed by the client.

See: https://www.krakend.io/docs/enterprise/service-settings/virtual-hosts/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/wildcard.json.description
Enterprise only. Enables wildcard processing of requests without declaring all endpoint subresrouces.

See: https://www.krakend.io/docs/enterprise/endpoints/wildcard/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/plugin/wildcard.json.properties.endpoints.description
The key of the map is the KrakenD endpoint that receives all the wildcard traffic. The value is an array with all the user paths that match this wildcard (you don't need to declare the subresources).

See: https://www.krakend.io/docs/enterprise/endpoints/wildcard/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/qos/ratelimit/router.properties.capacity.description
Number of tokens you can store in the Token Bucket. Translates into the maximum requests this endpoint will accept for all users at a given time.

See: https://www.krakend.io/docs/endpoints/rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/qos/ratelimit/router.properties.client_capacity.description
Number of tokens you can store in the Token Bucket for each individual user. Traduces into maximum concurrent requests this endpoint will accept for the connected user. The client is defined by the `strategy` field. The `client_max_rate` keeps a counter for every client and endpoint.

See: https://www.krakend.io/docs/endpoints/rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/qos/ratelimit/router.properties.client_max_rate.description
Number of tokens added per second to the [Token Bucket](https://www.krakend.io/docs/throttling/token-bucket/) for each individual user (*user quota*). Use decimals for per-hour and per-minute strategies. The remaining tokens for a user are the requests per second a specific user can do. The client is defined by `strategy`. Instead of counting all the connections to the endpoint as the option above, the `client_max_rate` keeps a counter for every client and endpoint. Keep in mind that every KrakenD instance keeps its counters in memory for **every single client**.

See: https://www.krakend.io/docs/endpoints/rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/qos/ratelimit/router.properties.key.description
Available when using `client_max_rate`. Sets the header containing the user identification (e.g., `Authorization`) or IP (e.g.,`X-Original-Forwarded-For`). When the header contains a list of space-separated IPs, it will take the IP from the client that hit the first trusted proxy.

See: https://www.krakend.io/docs/endpoints/rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/qos/ratelimit/router.properties.max_rate.description
Sets the number of tokens added per second to the Token Bucket. Use decimals for per-hour and per-minute strategies. The remaining tokens in the bucket are the **maximum requests the endpoint can handle** at once. The absence of `max_rate` in the configuration or `0` is the equivalent to no limitation.

See: https://www.krakend.io/docs/endpoints/rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/qos/ratelimit/router.properties.strategy.description
Available when using `client_max_rate`. Sets the strategy you will use to set client counters. Choose `ip` when the restrictions apply to the client's IP address, or set it to `header` when there is a header that identifies a user uniquely. That header must be defined with the `key` entry.

See: https://www.krakend.io/docs/endpoints/rate-limit/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.description
The optional router configuration allows you to set global flags that change the way KrakenD processes the requests at the router layer.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.app_engine.description
The app_engine boolean trusts headers starting with X-AppEngine... for better integration with that PaaS.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.auto_options.description
When true, enables the autogenerated OPTIONS endpoint for all the registered paths

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.disable_access_log.description
Stops registering access requests to KrakenD and leaving any logs out from the output.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.disable_gzip.description
**Enterprise only**. All the output to the end user on the Enterprise Edition uses gzip when accepted by the client. Use this flag to remove gzip compression.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.disable_handle_method_not_allowed.description
Whether to checks if another method is allowed for the current route, if the current request can not be routed. If this is the case, the request is answered with Method Not Allowed and HTTP status code 405. If no other Method is allowed, the request is a 404.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.disable_health.description
When true you don't have any exposed health endpoint. You can still use a TCP checker or build an endpoint yourself.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.disable_path_decoding.description
Disables automatic validation of the url params looking for url encoded ones.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.disable_redirect_fixed_path.description
If true, the router tries to fix the current request path, if no handle is registered for it

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.disable_redirect_trailing_slash.description
Disables automatic redirection if the current route can't be matched but a handler for the path with (without) the trailing slash exists.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.error_body.description
Sets custom error bodies for 404 and 405 errors.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.error_body.properties.404.description
Write any JSON object structure you would like to return to users when they request an endpoint not known by KrakenD. 404 Not Found errors.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.error_body.properties.405.description
Write any JSON object structure you would like to return to users

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.forwarded_by_client_ip.description
When set to true, client IP will be parsed from the request's headers. If no IP can be fetched, it falls back to the IP obtained from the request's remote address.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.health_path.description
The path where you'd like to expose the health endpoint.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.hide_version_header.description
Removes the version of KrakenD used in the X-KrakenD-version headers.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.logger_skip_paths.description
Defines the set of paths that are removed from the logging.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.max_multipart_memory.description
Sets the maxMemory param that is given to http.Request's Multipart Form method call.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.remote_ip_headers.description
List of headers used to obtain the client IP when `forwarded_by_client_ip` is set to `true` and the remote address is matched by at least one of the network origins of `trusted_proxies`.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.remove_extra_slash.description
A parameter can be parsed from the URL even with extra slashes.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.return_error_msg.description
When there is an error in the gateway (such as a timeout, a non-200 status code, etc.) it returns to the client the reason for the failure. The error is written in the body as is.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.trusted_proxies.description
List of network origins (IPv4 addresses, IPv4 CIDRs, IPv6 addresses or IPv6 CIDRs) from which to trust request's headers that contain alternative client IP when `forwarded_by_client_ip` is `true`.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/router.json.properties.use_h2c.description
Enable the support for HTTP/2 with no TLS. This option is only advised when you have a load balancer in front of KrakenD doing SSL termination, and you have no option to enable SSL communication between the balancer and KrakenD (no internal certificates available either). Otherwise, enabling this flag is less secure and less performant.

See: https://www.krakend.io/docs/service-settings/router-options/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/bot-detecto.description
The bot detector module checks incoming connections to the gateway to determine if a bot made them, helping you detect and reject bots carrying out scraping, content theft, and form spam.

See: https://www.krakend.io/docs/throttling/botdetector/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/bot-detecto.properties.allow.description
An array with EXACT MATCHES of trusted user agents that can connect.

See: https://www.krakend.io/docs/throttling/botdetector/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/bot-detecto.properties.cache_size.description
Size of the LRU cache that helps speed the bot detection. The size is the mumber of users agents that you want to keep in memory.

See: https://www.krakend.io/docs/throttling/botdetector/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/bot-detecto.properties.deny.description
An array with EXACT MATCHES of undesired bots, to reject immediately.

See: https://www.krakend.io/docs/throttling/botdetector/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/bot-detecto.properties.empty_user_agent_is_bot.description
Whether to consider an empty user-agent a bot (and reject it) or not. 

See: https://www.krakend.io/docs/throttling/botdetector/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/bot-detecto.properties.patterns.description
An array with all the regular expressions that define bots. Matching bots are rejected.

See: https://www.krakend.io/docs/throttling/botdetector/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.description
Security through HTTP headers, including HSTS, HPKP, MIME-Sniffing prevention, Clickjacking protection, and others.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.allowed_hosts.description
When a request hits KrakenD, it will confirm if the value of the Host HTTP header is in the list. If so, it will further process the request. If the host is not in the allowed hosts list, KrakenD will simply reject the request.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.browser_xss_filter.title
This feature enables the Cross-site scripting (XSS) filter in the user's browser.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.content_security_policy.description
The HTTP Content-Security-Policy (CSP) default-src directive serves as a fallback for the other CSP fetch directives.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.content_type_nosniff.description
Enabling this feature will prevent the user's browser from interpreting files as something else than declared by the content type in the HTTP headers.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.custom_frame_options_value.description
You can add an X-Frame-Options header using custom_frame_options_value with the value of DENY (default behavior) or even set your custom value.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.host_proxy_headers.description
A set of header keys that may hold a proxied hostname value for the request.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.hpkp_public_key.description
HTTP Public Key Pinning (HPKP) is a security mechanism which allows HTTPS websites to resist impersonation by attackers using mis-issued or otherwise fraudulent certificates. (For example, sometimes attackers can compromise certificate authorities, and then can mis-issue certificates for a web origin.).

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.is_development.description
This will cause the AllowedHosts, SSLRedirect, and STSSeconds/STSIncludeSubdomains options to be ignored during development. When deploying to production, be sure to set this to false.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.referrer_policy.description
Allows the Referrer-Policy header with the value to be set with a custom value.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.ssl_host.description
When the SSL redirect is true, the host where the request is redirected to.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.ssl_proxy_headers.description
Header keys with associated values that would indicate a valid https request. Useful when using Nginx, e.g: `"X-Forwarded-Proto": "https"`

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.ssl_redirect.description
Redirect any request that is not using HTTPS

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.sts_include_subdomains.description
Set to true when you want the `includeSubdomains` be appended to the Strict-Transport-Security header.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.sts_seconds.title
HTTP Strict Transport Security (HSTS) seconds

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/security/http.json.properties.sts_seconds.description
Enable this policy by setting the `max-age` of the `Strict-Transport-Security` header. Setting to `0` disables HSTS.

See: https://www.krakend.io/docs/service-settings/security/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/ganalytics.description
DEPRECATED. Enterprise only. Generate API Analytics from your API activity, using Google’s Analytics platform as the storage backend.

See: https://www.krakend.io/docs/enterprise/telemetry/google-analytics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/ganalytics.properties.buffer_size.description
The size of the buffer determines how much data can be stored in memory. The default value is twice the number of workers. It must be at least twice the number of workers, otherwise it is automatically changed to the double.

See: https://www.krakend.io/docs/enterprise/telemetry/google-analytics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/ganalytics.properties.tags.description
An object with key-values describing the tags you want to include when sending reports and their values. These tags are static.

See: https://www.krakend.io/docs/enterprise/telemetry/google-analytics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/ganalytics.properties.timeout.description
The time you will wait for the internal buffer to be avaiable before discarding a report.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/ganalytics.properties.track_id.description
The tracking ID as provided by Google. It is recommended to create a new property in Google Analytics to track the activity. It usually looks like UA-1234567.

See: https://www.krakend.io/docs/enterprise/telemetry/google-analytics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/ganalytics.properties.url.description
 The reporting URL where KrakenD sends the batches. Unless you need a custom backend endpoint, use `https://www.google-analytics.com/batch`.

See: https://www.krakend.io/docs/enterprise/telemetry/google-analytics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/ganalytics.properties.workers.description
The number of internal workers that send the reports in batch.

See: https://www.krakend.io/docs/enterprise/telemetry/google-analytics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/gelf.json.description
Send structured events in GELF format to your Graylog Cluster.

See: https://www.krakend.io/docs/logging/graylog-gelf/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/gelf.json.properties.address.description
The address (including the port) of your Graylog cluster (or any other service that receives GELF inputs). E.g., `myGraylogInstance:12201`

See: https://www.krakend.io/docs/logging/graylog-gelf/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/gelf.json.properties.enable_tcp.description
Set to false (recommended) to use UDP, or true to use TCP. TCP performance is worst than UDP under heavy load.

See: https://www.krakend.io/docs/logging/graylog-gelf/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/influx.jso.properties.address.description
The complete url of the influxdb including the port if different from defaults in http/https.

See: https://www.krakend.io/docs/telemetry/influxdb-native/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/influx.jso.properties.buffer_size.description
The buffer size is a protection mechanism that allows you to temporarily store datapoints for later reporting when Influx is unavailable. If the buffer is `0`, reported metrics that fail are discarded immediately. If the buffer is a positive number, KrakenD creates a buffer with the number of datapoints set. When the buffer is full because the Influx server keeps failing, newer datapoints replace older ones in the buffer.

See: https://www.krakend.io/docs/telemetry/influxdb-native/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/influx.jso.properties.db.description
Name of the InfluxDB database (Influx v1) or the bucket name (Influx v2).

See: https://www.krakend.io/docs/telemetry/influxdb-native/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/influx.jso.properties.password.description
Password to authenticate to InfluxDB. In Influx v2, you also need to add grant access with `influx v1 auth`.

See: https://www.krakend.io/docs/telemetry/influxdb-native/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.description
DEPRECATED. Enterprise only. Send metrics and traces to your Instana dashboard.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.ForceTransmissionStartingAt.description
The number of spans to collect before flushing the buffer to the agent.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.IncludeProfilerFrames.description
Whether to include profiler calls into the profile or not.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.LogLevel.description
One of Error 0, Warn 1, Info 2 or Debug 3.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.MaxBufferedProfiles.description
The maximum number of profiles to buffer.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.MaxBufferedSpans.description
The maximum number of spans to buffer.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.Service.description
The global service name that will be used to identify the program in the Instana backend. The service name is set to the name of current executable by default.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.Tracer.description
Tracer-specific configuration used by all tracers

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.Tracer.properties.DropAllLogs.description
Turns log events on all spans into no-ops.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.Tracer.properties.MaxLogsPerSpan.description
MaxLogsPerSpan limits the number of log records in a span (if set to a non-zero value). If a span has more logs than this value, logs are dropped as necessary.

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/instana.js.properties.Tracer.properties.Secrets.description
A secrets matcher used to filter out sensitive data from HTTP requests, database connection strings, etc. By default tracer does not filter any values. [More info on secrets](https://www.instana.com/docs/setup_and_manage/host_agent/configuration/#secrets)

See: https://www.krakend.io/docs/enterprise/telemetry/instana/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/logging.js.properties.format.description
Specify the format of the logs: default, logstash, or custom.
The custom format needs an additional key "custom_format".
The "logstash" format needs the "telemetry/logstash" component added too.

See: https://www.krakend.io/docs/logging/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/logging.js.properties.custom_format.description
Lets you write a custom logging pattern using variables, e.g: `%{message}`.

See: https://www.krakend.io/docs/logging/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/logging.js.properties.level.description
What type of **reporting level** do you expect from the application? Use the `DEBUG` level in the development stages but not in production. Possible values are from more verbose to least.

See: https://www.krakend.io/docs/logging/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/logging.js.properties.prefix.description
Adds the defined string at the beginning of every logged line, so you can quickly filter messages with external tools later on. It's recommended to always add a prefix `[INSIDE BRACKETS]` to make use of predefined dashboards.

See: https://www.krakend.io/docs/logging/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/logging.js.properties.stdout.description
Set to true to send logs to stdout.

See: https://www.krakend.io/docs/logging/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/logging.js.properties.syslog.description
Set to true to send logs to syslog.

See: https://www.krakend.io/docs/logging/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/logging.js.properties.syslog_facility.description
When using syslog, the facility tells KrakenD where to send the messages as set by the locals of the [syslog standard](https://www.rfc-editor.org/rfc/rfc5424.html).

See: https://www.krakend.io/docs/logging/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/logstash.j.description
Enables logstash when the extra_config "telemetry/logging" is also present.

See: https://www.krakend.io/docs/logging/logstash/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/metrics.js.description
Collects extended metrics to push to InfluxDB or expose them in the /__stats/ endpoint.

See: https://www.krakend.io/docs/telemetry/extended-metrics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/metrics.js.properties.backend_disabled.description
Skip any metrics happening in the backend layer. Disabling layers saves memory consumption but reduces visibility.

See: https://www.krakend.io/docs/telemetry/extended-metrics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/metrics.js.properties.collection_time.description
The time window to consolidate collected metrics. Metrics are updated in their internal counters all the time, but the `/__stats/` endpoint, or the Influx reporter, won't see them updated until this window completes.

See: https://www.krakend.io/docs/telemetry/extended-metrics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/metrics.js.properties.endpoint_disabled.description
When true do not publish the /__stats/ endpoint. Metrics won't be accessible via the endpoint but still collected (and you can send them to Influx for instance).

See: https://www.krakend.io/docs/telemetry/extended-metrics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/metrics.js.properties.listen_address.description
Change the listening address where the metrics endpoint is exposed.

See: https://www.krakend.io/docs/telemetry/extended-metrics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/metrics.js.properties.proxy_disabled.description
Skip any metrics happening in the proxy layer (traffic against your backends). Disabling layers saves memory consumption but reduces visibility.

See: https://www.krakend.io/docs/telemetry/extended-metrics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/metrics.js.properties.router_disabled.description
Skip any metrics happening in the router layer (activity in KrakenD endpoints). Disabling layers saves memory consumption but reduces visibility.

See: https://www.krakend.io/docs/telemetry/extended-metrics/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/newrelic.j.description
The New Relic integration lets you push KrakenD metrics and distributed traces to your New Relic dashboard. It uses internally the official New Relic SDK and brings its features to your APM dashboard.

See: https://www.krakend.io/docs/enterprise/telemetry/newrelic/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/newrelic.j.properties.debug.description
Set to true when configuring New Relic for the first time while in development, to see the activity in the logs. Set to false in production.

See: https://www.krakend.io/docs/enterprise/telemetry/newrelic/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/newrelic.j.properties.headers_to_pass.description
Defines an explicit list of headers sent during the client request that will be reported to NewRelic, in addition to the default headers NewRelic sets. Setting the `["*"]` value will send all headers sent by the client to NewRelic. Whether you declare this setting or not, you will usually receive from the NewRelic SDK the `Accept`, `Content-Type`, `User-Agent`, and `Referer` headers.

See: https://www.krakend.io/docs/enterprise/telemetry/newrelic/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/newrelic.j.properties.license.description
The API key provided by New Relic to push data into your account.

See: https://www.krakend.io/docs/enterprise/telemetry/newrelic/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.enabled_layers.description
Lets you specify what data you want to export. All layers are enabled by default unless you declare this section.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.enabled_layers.properties.backend.description
Reports the activity between KrakenD and your services

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.enabled_layers.properties.pipe.description
Reports the activity at the beginning of the proxy layer. It gives a more detailed view of the internals of the pipe between end-users and KrakenD, having into account merging of different backends.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.enabled_layers.properties.router.description
Reports the activity between end-users and KrakenD

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.description
The exporter(s) you would like to enable. See each exporter configuration in its own section.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.datadog.description
Datadog is a monitoring and security platform for developers, IT operations teams and business in the cloud.

See: https://www.krakend.io/docs/telemetry/datadog/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.datadog.properties.global_tags.description
A set of tags (key/value) that will automatically be applied to all exported spans.

See: https://www.krakend.io/docs/telemetry/datadog/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.datadog.properties.namespace.description
The namespace to which metric keys are appended.

See: https://www.krakend.io/docs/telemetry/datadog/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.datadog.properties.service.description
Service specifies the service name used for tracing

See: https://www.krakend.io/docs/telemetry/datadog/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.datadog.properties.stats_address.description
Specifies the host[:port] address for DogStatsD. To enable ingestion using Unix Domain Socket (UDS) mount your UDS path and reference it in the stats_address using a path like `unix:///var/run/datadog/dsd.socket`.

See: https://www.krakend.io/docs/telemetry/datadog/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.datadog.properties.tags.description
Specifies a set of global tags to attach to each metric.

See: https://www.krakend.io/docs/telemetry/datadog/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.datadog.properties.trace_address.description
Specifies the host[:port] address of the Datadog Trace Agent.

See: https://www.krakend.io/docs/telemetry/datadog/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.influxdb.description
Exports data to InfluxDB: A time series database designed to handle high write and query loads.

See: https://www.krakend.io/docs/telemetry/influxdb/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.influxdb.properties.address.description
The URL (including port) where your InfluxDB is installed.

See: https://www.krakend.io/docs/telemetry/influxdb/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.influxdb.properties.password.description
The password to access the database

See: https://www.krakend.io/docs/telemetry/influxdb/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.influxdb.properties.timeout.description
The maximum time you will wait for InfluxDB to respond.

See: https://www.krakend.io/docs/telemetry/influxdb/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.influxdb.properties.username.description
The influxdb username to access the database

See: https://www.krakend.io/docs/telemetry/influxdb/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.jaeger.description
Submit spans to a Jaeger Collector (HTTP) with `endpoint` or to a Jaeger Agent (UDP) with `agent_endpoint`. 

See https://www.krakend.io/docs/telemetry/jaeger/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.jaeger.properties.agent_endpoint.description
The address where the Jaeger Agent is (Thrift over UDP), e.g., `jaeger:6831`

See: https://www.krakend.io/docs/telemetry/jaeger/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.jaeger.properties.buffer_max_count.description
Total number of traces to buffer in memory

See: https://www.krakend.io/docs/telemetry/jaeger/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.jaeger.properties.endpoint.description
The full URL including port indicating where your Jaeger Collector is (Thrift over HTTP/S), e.g., `http://jaeger:14268/api/traces`

See: https://www.krakend.io/docs/telemetry/jaeger/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.jaeger.properties.service_name.description
The service name registered in Jaeger

See: https://www.krakend.io/docs/telemetry/jaeger/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.logger.description
Opencensus can export data to the system logger as another exporter. Recommended to use `telemetry/logging` instead.

See: https://www.krakend.io/docs/telemetry/logger/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.ocagent.description
Exporting metrics, logs, and events to the OpenCensus Agent.

See: https://www.krakend.io/docs/telemetry/ocagent/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.ocagent.properties.address.description
The address of your Azure Monitor collector.

See: https://www.krakend.io/docs/telemetry/ocagent/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.ocagent.properties.enable_compression.description
Whether to send data compressed or not.

See: https://www.krakend.io/docs/telemetry/ocagent/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.ocagent.properties.headers.description
List of keys and values for the headers sent. Keys and values must be of type string.

See: https://www.krakend.io/docs/telemetry/ocagent/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.ocagent.properties.insecure.description
Whether the connection can be established in plain (insecure) or not.

See: https://www.krakend.io/docs/telemetry/ocagent/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.ocagent.properties.service_name.description
An identifier of your service, e.g, `krakend`.

See: https://www.krakend.io/docs/telemetry/ocagent/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.prometheus.description
Prometheus is an open-source systems monitoring and alerting toolkit.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.prometheus.properties.namespace.description
Sets the domain the metric belongs to.

See: https://www.krakend.io/docs/telemetry/prometheus/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.prometheus.properties.port.description
Port on which the Prometheus exporter should listen

See: https://www.krakend.io/docs/telemetry/prometheus/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.prometheus.properties.tag_host.description
Whether to send the host as a metric or not.

See: https://www.krakend.io/docs/telemetry/prometheus/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.prometheus.properties.tag_method.description
Whether to send the HTTP method as a metric or not.

See: https://www.krakend.io/docs/telemetry/prometheus/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.prometheus.properties.tag_path.description
Whether to send the path as a metric or not.

See: https://www.krakend.io/docs/telemetry/prometheus/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.prometheus.properties.tag_statuscode.description
Whether to send the status code as a metric or not.

See: https://www.krakend.io/docs/telemetry/prometheus/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.stackdriver.description
Export metrics and traces to Google Cloud

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.stackdriver.properties.default_labels.description
A map object. Enter here any label that will be assigned by default to the reported metric so you can filter later on Stack Driver.

See: https://www.krakend.io/docs/telemetry/stackdriver/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.stackdriver.properties.metric_prefix.description
A prefix that you can add to all your metrics for better organization.

See: https://www.krakend.io/docs/telemetry/stackdriver/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.stackdriver.properties.project_id.description
The identifier of your Google Cloud project. The `project_id` **is not the project name**. You can omit this value from the configuration if you have an application credential file for Google.

See: https://www.krakend.io/docs/telemetry/stackdriver/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.xray.description
AWS X-Ray is a service offered by Amazon that provides an end-to-end view of requests as they travel through your application, and shows a map of your application's underlying components.

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.xray.properties.access_key_id.description
 Your access key ID provided by Amazon. Needed when `use_env` is unset or set to false.

See: https://www.krakend.io/docs/telemetry/xray/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.xray.properties.region.description
The AWS geographical region, e.g, `us-east-1`.

See: https://www.krakend.io/docs/telemetry/xray/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.xray.properties.secret_access_key.description
Your secret access key provided by Amazon. Needed when `use_env` is unset or set to false.

See: https://www.krakend.io

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.xray.properties.use_env.description
When true the AWS credentials (access_key_id and secret_access_key) are taken from environment vars. Don't specify them then.

See: https://www.krakend.io/docs/telemetry/xray/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.xray.properties.version.description
The version of the AWS X-Ray service to use.

See: https://www.krakend.io/docs/telemetry/xray/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.zipkin.description
Export telemetry data to a Zipkin collector

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.zipkin.properties.collector_url.description
The URL (including port and path) where your Zipkin is accepting the spans, e.g., `http://zipkin:9411/api/v2/spans`

See: https://www.krakend.io/docs/telemetry/zipkin/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.exporters.properties.zipkin.properties.service_name.description
The service name registered in Zipkin.

See: https://www.krakend.io/docs/telemetry/zipkin/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.reporting_period.description
The number of seconds passing between reports. If duration is less than or equal to zero, it enables the default behavior of each exporter.

See: https://www.krakend.io/docs/telemetry/opencensus/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/telemetry/opencensus.properties.sample_rate.description
A number between 0 (no requests at all) and 100 (all requests) representing the percentage of sampled requests you want to send to the exporter. **Sampling the 100% of the requests is generally discouraged** when the relationship between traffic and dedicated resources is sparse.

See: https://www.krakend.io/docs/telemetry/opencensus/

# definitions.https://schemas.sourcemeta.com/krakend/v2.3/timeunits.json.$defs.timeunit.description
The amount of time you want to assign followed by its unit (e.g.: `2s`, `200ms`). Valid time units are: ns, us, (or µs), ms, s, m, h.