Kong v0.6.0 Release Notes

Release Date: 2016-01-22 // over 8 years ago
  • ๐Ÿ’ฅ Breaking changes

    We would recommended to consult the suggested 0.6 upgrade path for this release.

    • Serf is now a Kong dependency. It allows Kong nodes to communicate between each other opening the way to many features and improvements.
    • ๐Ÿ”ง The configuration file changed. Some properties were renamed, others were moved, and some are new. We would recommend checking out the new default configuration file.
    • โฌ‡๏ธ Drop the Lua 5.1 dependency which was only used by the CLI. The CLI now runs with LuaJIT, which is consistent with other Kong components (Luarocks and OpenResty) already relying on LuaJIT. Make sure the LuaJIT interpreter is included in your $PATH. #799

    โž• Added

    ๐Ÿš€ One of the biggest new features of this release is the cluster-awareness added to Kong in #729, which deserves its own section:

    • ๐Ÿ”ง Each Kong node is now aware of belonging to a cluster through Serf. Nodes automatically join the specified cluster according to the configuration file's settings.
    • ๐ŸŽ The datastore cache is not invalidated by expiration time anymore, but following an invalidation strategy between the nodes of a same cluster, leading to improved performance.
    • Admin API
      • Expose a /cache endpoint for retrieving elements stored in the in-memory cache of a node.
      • Expose a /cluster endpoint used to add/remove/list members of the cluster, and also used internally for data propagation.
    • CLI
      • New kong cluster command for cluster management.
      • New kong status command for cluster healthcheck.

    Other additions include:

    • ๐Ÿ†• New Cassandra driver which makes Kong aware of the Cassandra cluster. Kong is now unaffected if one of your Cassandra nodes goes down as long as a replica is available on another node. Load balancing policies also improve the performance along with many other smaller improvements. #803
    • Admin API
      • A new total field in API responses, that counts the total number of entities in the datastore. #635
    • ๐Ÿ”ง Configuration
      • Possibility to configure the keyspace replication strategy for Cassandra. It will be taken into account by the migrations when the configured keyspace does not already exist. #350
      • Dnsmasq is now optional. You can specify a custom DNS resolver address that Kong will use when resolving hostnames. This can be configured in kong.yml. #625
    • ๐Ÿ”Œ Plugins
      • New "syslog" plugin: send logs to local system log. #698
      • New "loggly" plugin: send logs to Loggly over UDP. #698
      • New "datadog" plugin: send logs to Datadog server. #758
      • OAuth2
      • Add support for X-Forwarded-Proto header. #650
      • Expose a new /oauth2_tokens endpoint with the possibility to retrieve, update or delete OAuth 2.0 access tokens. #729
      • JWT
      • Support for base64 encoded secrets. #838 #577
      • Support to configure the claim in which the key is given into the token (not iss only anymore). #838
      • Request transformer
      • Support for more transformation options: remove, replace, add, append motivated by #393. See #824
      • Support JSON body transformation. #569
      • Response transformer
      • Support for more transformation options: remove, replace, add, append motivated by #393. See #822

    ๐Ÿ”„ Changed

    • ๐Ÿ”ง As mentioned in the breaking changes section, a new configuration file format and validation. All properties are now documented and commented out with their default values. This allows for a lighter configuration file and more clarity as to what properties relate to. It also catches configuration mistakes. #633
    • ๐Ÿ‘€ Replace the UUID generator library with a new implementation wrapping lib-uuid, fixing eventual conflicts happening in cases such as described in #659. See #695
    • Admin API
      • Increase the maximum body size to 10MB in order to handle configuration requests with heavy payloads. #700
      • Disable access logs for the /status endpoint.
      • The /status endpoint now includes database statistics, while the previous stats have been moved to a server response field. #635

    ๐Ÿ›  Fixed

    • Behaviors described in #603 related to the failure of Cassandra nodes thanks to the new driver. #803
    • ๐Ÿšค Latency headers are now properly included in responses sent to the client. #708
    • strip_request_path does not add a trailing slash to the API's upstream_url anymore before proxying. #675
    • Do not URL decode querystring before proxying the request to the upstream service. #749
    • Handle cases when the request would be terminated prior to the Kong execution (that is, before ngx_lua reaches the access_by_lua context) in cases such as the use of a custom nginx module. #594
    • Admin API
      • The PUT method now correctly updates boolean fields (such as strip_request_path). #765
      • The PUT method now correctly resets a plugin configuration. #720
      • PATCH correctly set previously unset fields. #861
      • In the responses, the next link is not being displayed anymore if there are no more entities to be returned. #635
      • Prevent the update of created_at fields. #820
      • Better request_path validation for APIs. "/" is not considered a valid path anymore. #881
    • ๐Ÿ”Œ Plugins
      • Galileo: ensure the mimeType value is always a string in ALFs. #584
      • JWT: allow to update JWT credentials using the PATCH method. It previously used to reply with 405 Method not allowed because the PATCH method was not implemented. #667
      • Rate limiting: fix a warning when many periods are configured. #681
      • Basic Authentication: do not re-hash the password field when updating a credential. #726
      • File log: better permissions for on file creation for file-log plugin. #877
      • OAuth2
      • Implement correct responses when the OAuth2 challenges are refused. #737
      • Handle querystring on /authorize and /token URLs. #687
      • Handle punctuation in scopes on /authorize and /token endpoints. #658

    internal

    • Event bus for local and cluster-wide events propagation. Plans for this event bus is to be widely used among Kong in the future.
    • The Kong Public Lua API (Lua helpers integrated in Kong such as DAO and Admin API helpers) is now documented with ldoc. ๐Ÿ‘ท > - Work has been done to restore the reliability of the CI platforms. ๐Ÿ”ง > - Migrations can now execute DML queries (instead of DDL queries only). Handy for migrations implying plugin configuration changes, plugins renamings etc... #770

    Back to TOC