Kong v0.9.0 Release Notes

Release Date: 2016-08-18 // over 7 years ago
  • 🚀 The main focus of this release is Kong's new CLI. With a simpler configuration file, new settings, environment variables support, new commands as well as a new interpreter, the new CLI gives more power and flexibility to Kong users and allow for an easier integration in your deployment workflow, as well as better testing for developers and plugins authors. Additionally, some new plugins and performance improvements are included as well as the regular bug fixes.

    🔄 Changed

    • ⬆️ :warning: PostgreSQL is the new default datastore for Kong. If you were using Cassandra and you are upgrading, you need to explicitly set cassandra as your database.
    • 👀 :warning: New CLI, with new commands and refined arguments. This new CLI uses the resty-cli interpreter (see lua-resty-cli) instead of LuaJIT. As a result, the resty executable must be available in your $PATH (resty-cli is shipped in the OpenResty bundle) as well as the bin/kong executable. Kong does not rely on Luarocks installing the bin/kong executable anymore. This change of behavior is taken care of if you are using one of the official Kong packages.
    • 🔧 :warning: Kong uses a new configuration file, with an easier syntax than the previous YAML file.
    • 🆕 New arguments for the CLI, such as verbose, debug and tracing flags. We also avoid requiring the configuration file as an argument to each command as per the previous CLI.
    • 🔧 Customization of the Nginx configuration can now be taken care of using two different approaches: with a custom Nginx configuration template and using kong start --template <file>, or by using kong compile to generate the Kong Nginx sub-configuration, and include it in a custom Nginx instance.
    • 🔌 Plugins:
      • Rate Limiting: the continue_on_error property is now called fault_tolerant.
      • Response Rate Limiting: the continue_on_error property is now called fault_tolerant.

    ➕ Added

    • 🔧 :fireworks: Support for overriding configuration settings with environment variables.
    • 👍 :fireworks: Support for SSL connections between Kong and PostgreSQL. #1425
    • 🔌 :fireworks: Ability to apply plugins with more granularity: per-consumer, and global plugins are now possible. #1403
    • 🆕 New kong check command: validates a Kong configuration file.
    • 👍 Better version check for third-party dependencies (OpenResty, Serf, Dnsmasq). #1307
    • 🔧 Ability to configure the validation depth of database SSL certificates from the configuration file. #1420
    • 👍 request_host: internationalized url support; utf-8 domain names through punycode support and paths through %-encoding. #1300
    • 🔧 Implements caching locks when fetching database configuration (APIs, Plugins...) to avoid dog pile effect on cold nodes. #1402
    • 🔌 Plugins:
      • :fireworks: New bot-detection plugin: protect your APIs by detecting and rejecting common bots and crawlers. #1413
      • correlation-id: new "tracker" generator, identifying requests per worker and connection. #1288
      • request/response-transformer: ability to add strings including colon characters. #1353
      • rate-limiting: support for new rate-limiting policies (cluster, local and redis), and for a new limit_by property to force rate-limiting by consumer, credential or ip.
      • response-rate-limiting: support for new rate-limiting policies (cluster, local and redis), and for a new limit_by property to force rate-limiting by consumer, credential or ip.
      • galileo: performance improvements of ALF serialization. ALFs are not discarded when exceeding 20MBs anymore. #1463
      • statsd: new upstream_stream latency metric. #1466
      • datadog: new upstream_stream latency metric and tagging support for each metric. #1473

    ✂ Removed

    • We now use lua-resty-jit-uuid for UUID generation, which is a pure Lua implementation of RFC 4122. As a result, libuuid is not a dependency of Kong anymore.

    🛠 Fixed

    • 🔧 Sensitive configuration settings are not printed to stdout anymore. #1256
    • 🛠 Fixed bug that caused nodes to remove themselves from the database when they attempted to join the cluster. #1437
    • 🔌 Plugins:
      • request-size-limiting: use proper constant for MB units while setting the size limit. #1416
      • OAuth2: security and config validation fixes. #1409 #1112
      • request/response-transformer: better validation of fields provided without a value. #1399
      • JWT: handle some edge-cases that could result in HTTP 500 errors. #1362

    internal ✅ > - new test suite using resty-cli and removing the need to monkey-patch the ngx global. ⏱ > - custom assertions and new helper methods (wait_until()) to gracefully fail in case of timeout. ✅ > - increase atomicity of the testing environment. ✅ > - lighter testing instance, only running 1 worker and not using Dnsmasq by default.

    Back to TOC