News KrakenD EE v2.8 released: Configurable logging, Redis-backed rate limits, Lua, YAML encoding and more

Product UpdatesSecurity

5 min read

KrakenD Enterprise 2.0 released!

by Albert Lombarte

KrakenD Enterprise 2.0 is here!

The KrakenD team is pleased to announce KrakenD Enterprise 2.0, already available for install or upgrade today.

KrakenD 2.0 is the awaited new major version of KrakenD bringing a lot of improvements to the API Gateway, including all the features and improvements of open source releases between v1.4 and v2.0.4.

🚀 Summary of changes for EEv2.0

KrakenD Enterprise 2.0 is a major rework and needs migration. API Analytics, IP Filtering, GraphQL, OpenAPI importers and exporters, integration tests, specific request/modifier plugins, Async Agents, backend response logging (dumper) and improves the existing WebSockets, API Keys, configuration syntax, New Relic reporting, logging, and router to put a few examples. It also includes everything on Community 2.0.4.

  • The new Google Analytics integration allows you to generate API Analytics from your API activity
  • The new IP filtering plugin allows you to restrict the traffic to your API gateway by CIDR
  • REST to GraphQL conversion, or direct consumption of GraphQL through the gateway
  • Generate a KrakenD configuration from an OpenAPI spec file
  • A new command krakend e2e allows you to execute integration tests
  • Backend response logging
  • New plugin types (request/response)
  • Plenty of new configurable router flags
  • The krakend check adds verbosity level
  • A new command krakend check-plugin for quicker development of custom plugins
  • Shortened configuration namespaces.
  • NewRelic reporting
  • Async agents
  • Better logging, with more context
  • Alpine-based Docker image

Upgrading to the latest version is always advised.

Migration guide
Read “Migrating from KrakenD 1.x and 0.x to see the necessary steps to upgrade to this new major version.

Details of what’s new

The most relevant additions and changes on KrakenD 2.0 are:

API Analytics

A new KrakenD Google Analytics integration allows you to generate API Analytics from your API activity, using Google’s Analytics platform as the storage backend. The same platform and tools you use today to track web pages can help you track your API efficiently and asynchronously. API Analytics documentation

IP Filtering

The IP filtering plugin allows you to restrict the traffic to your API gateway based on the IP address. You define the list of IPs (CIDR blocks) authorized to use the API or denied from using the API. The filtering applies globally to all endpoints or a set of specific endpoints (depending on the placement of the configuration). IP Filtering documentation

GraphQL

REST to GraphQL conversion, or direct consumption of GraphQL through the gateway. Use GraphQL to define new backend queries and expose them as regular REST endpoints to your clients, federate content. GraphQL documentation

OpenAPI importer

A new command krakend generator from openapi allows you to generate a KrakenD configuration from an OpenAPI spec file. It also accepts a mock flag to start serving an API with the spec and mock data. OpenAPI import/export documentation

E2E testing

A new command krakend e2e allows you to execute integration tests and test real KrakenD endpoints before going live. End-to-end testing helps you guarantee that all the active software components from beginning to end have the expected flow and that the gateway returns what you planned. End-to-end testing documentation

Backend response logging

The response logger is a dumper tool that allows you to write the backend request and its response into a file, to help you debug your processes during development. Response logging documentation

New plugin types

The request/response plugin modifiers are two new Go plugin types to directly modify requests and responses from and backends, complementing the existing handler and client plugins. Users currently using custom logic in Lua scripts can boost their performance. Plugin modifier documentation

Routing changes

There are plenty of configurable router flags such as returning the gateway error to the client (e.g: a timeout), redirection options, automatic OPTIONS, better ways to get the real IP (including through Trusted Proxies), or removing entries from the logs such as hiding the /__health endpoint. Some limitations with conflicting paths have also been removed. See new router flags

More developer-friendly

We can say that KrakenD has always been easy to configure. Still, there’s always room for improvement when it comes to the development experience. So this is what we changed:

  • The krakend check command adds now multiple levels of debug verbosity and colors for easier understanding of the configuration
  • A new command krakend check-plugin lets you check your custom plugins for compatibility
  • We have shortened and classified all extra_config namespaces, for better comprehension and usage of the components. When there was a URL-like component such as "github.com/devopsfaith/krakend-cors" now becomes a category/functionality such as "security/cors".
  • A new migration tool takes care of the transition from 0.x and 1.x to 2.x to make the process straightforward.
  • Better logs with more context. All log lines have been rewritten, adding a prefix grouping them with more information, like which endpoint or backend raised the line of a specific component.
  • Plugins with access to the logger: If you had custom plugins, now they can use the KrakenD logger to enrich your gateway output.
  • Alpine-based Docker image: Docker image extending from Alpine, making it a very lightweight image and without dragging all the security issues of larger containers like Debian.
  • The API keys now accept rate limiting per API key and endpoint.

Async agents

Before this version, any KrakenD activity was preceded by a call to the API. Now, KrakenD can listen to queues and act as a consumer or a producer on its own without requiring an end-user request. For instance, when KrakenD detects that a new message has entered a queue (many technologies supported), it can trigger a call to a backend of your choice. Async agents documentation.

Migrate now to KrakenD 2.0!

KrakenD configuration syntax has changed a little bit from KrakenD 1.x. Execute the migration tool to apply those changes automatically.

Scarf

Stay up to date with KrakenD releases and important updates