Kong v0.15.0 Release Notes
-
๐ > Released on: 2018/12/18
๐ This is the last release in the 0.x series, giving users one last chance to โฌ๏ธ upgrade while still using some of the options and concepts that were marked as ๐ deprecated in Kong 0.x and were removed in Kong 1.0.
๐ For a list of additions and fixes in Kong 0.15, see the 1.0.0 ๐ changelog. This release includes all new features included in 1.0 (Service Mesh, Stream Routes and New Migrations), but unlike Kong 1.0, it retains a lot of the deprecated functionality, like the API entity, around. Still, Kong 0.15 does have a number of breaking changes related to functionality that has ๐ changed since version 0.14 (see below).
If you are starting with Kong, we recommend you to use 1.0.0 instead of this ๐ release.
๐ If you are already using Kong 0.14, our recommendation is to plan to move to โฌ๏ธ 1.0 -- see the 1.0 Upgrade โฌ๏ธ Path document for โฌ๏ธ details. Upgrading to 0.15.0 is only recommended if you can't do away with the ๐ deprecated features but you need some fixes or new features right now.
๐ Changes
Dependencies
- The required OpenResty version is still 1.13.6.2, but for a full feature set including stream routing and Service Mesh abilities with mutual TLS, Kong's openresty-patches must be applied (those patches are already bundled with our official distribution packages). Kong in HTTP(S) Gateway scenarios does not require these patches.
- Service Mesh abilities require at least OpenSSL version 1.1.1. In our official distribution packages, OpenSSL has been bumped to 1.1.1. #4005
๐ง Configuration
- The default value for
cassandra_lb_policy
changed fromRoundRobin
toRequestRoundRobin
. This helps reducing the amount of new connections being opened during a request when using the Cassandra strategy. #4004
Core
- Timestamps now bear millisecond precision in their decimal part. #3660
- The PDK function
kong.request.get_body
will now returnnil, err, mime
when the body is valid JSON but neither an object nor an array. #4063
CLI
- โ :warning: The new migrations framework (detailed in the 1.0.0 changelog) has a different usage (and subcommands) compared to its predecessor. #3802
Admin API
- ๐ :warning: In the 0.14.x release, Upstreams, Targets, and Plugins were still
implemented using the old DAO and Admin API. In 0.15.0 and 1.0.0, all core
entities use the new
kong.db
DAO, and their endpoints have been upgraded to the new Admin API (see below for details). #3689 #3739 #3778
A summary of the changes introduced in the new Admin API:
- Pagination has been included in all "multi-record" endpoints, and pagination control fields are different than in 0.14.x.
- ๐ Filtering now happens via URL path changes (
/consumers/x/plugins
) instead of querystring fields (/plugins?consumer_id=x
). - Array values can't be coherced from comma-separated strings. They must be "proper" JSON values on JSON requests, or use a new syntax on form-url-encoded or multipart requests.
- Error messages have been been reworked from the ground up to be more consistent, precise and informative.
- The
PUT
method has been reimplemented with idempotent behavior and has been added to some entities that didn't have it.
๐ For more details about the new Admin API, please visit the official docs: ๐ https://docs.konghq.com/
๐ Plugins
- โก๏ธ All bundled plugins' schemas and custom entities have been updated to the new
kong.db
module, and their APIs have been updated to the new Admin API, which is described in the above section. #3766 #3774 #3778 #3839 - โ :warning: All plugins migrations have been converted to the new migration framework. Custom plugins must use the new migration framework from 0.15 onwards.
โ Additions
๐ Kong 0.15.0 contains the same additions as 1.0.0. See the 1.0.0 ๐ changelog for a complete list.
๐ Fixes
๐ Kong 0.15.0 contains the same fixes as 1.0.0. See the 1.0.0 changelog for a complete list.