News KrakenD CE v2.7 released with better rate-limiting and security options

Enterprise Documentation

Recent changes

You are viewing a previous version of KrakenD Enterprise Edition (v2.3) , go to the latest version

Managing the LICENSE file

Document updated on May 13, 2022

To run the Enterprise software with all its capabilities you must provide a valid license. When you get a license from sales, its placement and format must comply with what the binary expects.

When the license file is incorrect, KrakenD warns you about it but the server will try to start anyway using the open source engine, and without loading any Enterprise functionality.

The message you will see when the server starts with an invalid or missing license file is:

$krakend run -dec krakend.json
Parsing configuration file: krakend.json
There is a problem with your license:
open ./LICENSE: no such file or directory


The server will start with open-source features only

License file requirements

To start KrakenD Enterprise without seeing the message above, make sure that:

  • The file /etc/krakend/LICENSE exists
  • The LICENSE file is a plain text file with no extension
  • It contains the certificate we gave you (it looks like a PEM file)
  • The file includes the surrounding -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----, and you have not deleted any dash or character accidentally, neither you have deleted the line breaks.

Change the location of the LICENSE

The LICENSE file must be in /etc/krakend/LICENSE by default, but KrakenD internally looks for ./LICENSE. It means that the file is inside the working directory. If you would like to store the license in a different location, you can change the WORKDIR in which KrakenD executes. For intance, let’s load the license from /vault/LICENSE instead.

We can have a custom Dockerfile like this one:

FROM krakend/krakend-ee:2.3

WORKDIR /vault

Storing the LICENSE in the Docker image

See Generating a Docker artifact

Storing the LICENSE in Secret managers

You can store your LICENSE in any secret manager of your choice if you want to. However, ensure that the line breaks are respected when retrieving from the secret manager.

AWS Secrets Manager

One of the particularities of AWS Secrets Manager is that it might have problems when storing multiline contents. Therefore, when working with AWS in plain text, we recommend keeping the LICENSE content in base64 format.

You can create an AWS secret with your license with this command:

$aws secretsmanager create-secret --name krakend-valid_trough-2023_05_22 --secret-string "$(base64 LICENSE)"
    "Name": "krakend-valid_trough-2022_05_22",
    "ARN": "arn:aws:secretsmanager:eu-west-1:052351007912:secret:krakend-valid_trough-2022_05_22-OISgD6",
    "VersionId": "59f7c317-989a-4219-bdd2-b79bead69dd4"

Notice that we have added the license’s expiration date to the secret name. A practice like this will help you quickly realize for how long the license/secret is valid.

You can later retrieve the license file in your pipeline file with:

$aws secretsmanager get-secret-value --secret-id krakend-valid_trough-2022_05_22 --query 'SecretString' --output text | base64 -d > LICENSE

Note: Depending on your computer’s operative system, the decoding of base64 might be base64 -D instead of base64 -d

What happens when the license expires?

Any running processes will shut down when the KrakenD Enterprise license expires.

But you can start the Enterprise binary again with the license expired or missing, and it will run in the open-source mode without any of the Enterprise functionalities.

Updating your license

When your license renewal comes, you need to replace the /etc/krakend/LICENSE with the new content in each of your servers running KrakenD and restart KrakenD. That’s all!


Unresolved issues?

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.