KrakenD Enterprise 2.0 released!
by Albert Lombarte
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.
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 acategory/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.