The KrakenD team is pleased to announce KrakenD Enterprise 2.0, already available for install or upgrade today.
KrakenD Enterprise adds 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.
The most relevant additions and changes on KrakenD 2.0 are:
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
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
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
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
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
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
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:
krakend checkcommand adds now multiple levels of debug verbosity and colors for easier understanding of the configuration
- A new command
krakend check-pluginlets you check your custom plugins for compatibility
- We have shortened and classified all
extra_confignamespaces, 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
- 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.
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.