News KrakenD 3.0 Is Here: AI Router, Semantic Cache, and On-the-Fly Stream Manipulation

Document updated on Sep 30, 2026

Built-in Enterprise Plugins

KrakenD Enterprise ships a few built-in plugins: compiled plugins (.so files) that enable specific Enterprise features and come ready to use in every distribution, Linux package or Docker image. You only need the plugins below when you use the feature that depends on them. This page lists them and explains how to load them. To write and load your own plugins, see Writing plugins and Injecting plugins.

Built-in plugins are a legacy feature
Built-in plugins are disappearing. KrakenD Enterprise delivers its functionality through regular components that are part of the binary, which you enable in the extra_config without loading separate .so files. Every release moves more of the remaining plugins into native components, and v3.0 already removed most of them.

Available Built-in Plugins

KrakenD Enterprise stores the built-in plugins in the folder /opt/krakend/plugins/. These are the plugins available and the features that use them:

PluginNamespaceFeature
ip-filter.soplugin/http-serverIP filtering
geoip.soplugin/http-serverGeoIP
url-rewrite.soplugin/http-serverURL rewrite
jwk-aggregator.soplugin/http-serverMultiple identity providers
http-logger.soplugin/http-clientHTTP logger
deprecated-wildcard.soplugin/http-server, plugin/http-clientLegacy wildcard configuration, replaced by native wildcards

To list the plugins of the version you are running, list the contents of the folder:

Listing the built-in plugins 

$docker run --rm --entrypoint=/bin/ls krakend/krakend-ee:3.0.0 /opt/krakend/plugins
Removed built-in plugins
KrakenD Enterprise v3.0 removed the built-in plugins that native components had already replaced: basic-auth, virtualhost, http-proxy, no-redirect, redis-ratelimit, content-replacer, minimum-response, client-live, and handler-live. When a feature has a native replacement, its page explains how to migrate.

Loading Built-in Plugins

KrakenD registers plugins during startup according to the plugin block at the root of the configuration. Point the folder to /opt/krakend/plugins/ (it must end in a slash) and use the pattern to load only the plugin you need. For instance, to load the IP filtering plugin alone:

{
  "version": 4,
  "plugin": {
    "pattern": "ip-filter.so",
    "folder": "/opt/krakend/plugins/"
  }
}

The pattern is a substring that must be present in the plugin file name, so ".so" would load every plugin in the folder. Load only the plugins you use, either with a precise pattern or by copying the ones you need to your own folder in your Dockerfile.

Registering the plugin makes it available, but it does nothing until you enable it with its namespace and settings. Each feature page listed above shows the complete configuration, and Injecting plugins explains how server and client plugins are declared and in which order they execute.

Verifying That Plugins Load

When KrakenD starts, the log shows every plugin it loads. For example:

url-rewrite handler plugin loaded!!!
...
2020/01/31 20:20:40  DEBUG: http-server-handler: injecting plugin url-rewrite

If a plugin fails to load, the log shows the reason:

2020/01/31 20:23:50  WARNING: loading plugins: plugin loader found 1 error(s):
opening plugin 0 (/opt/krakend/pluginsip-filter.so): plugin.Open("/opt/krakend/pluginsip-filter.so"): realpath failed

In the example above, the folder in the configuration didn’t end in a slash, so KrakenD joined the folder and the file name incorrectly.

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.

See all support channels