All Versions
57
Latest Version
Avg Release Cycle
37 days
Latest Release
24 days ago

Changelog History
Page 1

  • v2.4.0

    March 08, 2020

    🚀 This release is a step towards new interesting possibilities with Centrifugo. It adds server-side subscriptions support and some sugar on top of it. With server-side subscriptions you don't need to call Subscribe method on client side at all. Follow release notes to know more.

    No backwards incompatible changes here.

    👌 Improvements:

    • 📚 Server-side subscriptions, this functionality requires updating client code so at moment usage is limited to centrifuge-js. Also there is a possibility to automatically subscribe user connection to personal notifications channel. More info in new documentation chapter
    • 🆕 New private subscription JWT eto claim - see its description in docs
    • 👀 Options to disable WebSocket, SockJS and API handlers – see docs
    • 👉 New option websocket_use_write_buffer_poolsee docs
    • Metrics now include histograms of requests durations - pull request
    • ➕ Add Linux ARM binary release

    🛠 Fixes:

    • 🛠 Fix unreliable unsubscriptions from Redis PUB/SUB channels under load, now we unsubscribe nodes from PUB/SUB channels over in-memory queue
    • 🛠 Fix tls_external option regression

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.4.0
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.4
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.3.1

    January 09, 2020

    🚀 This release contains several improvements to proxy feature introduced in v2.3.0, no backwards incompatible changes here.

    👌 Improvements:

    • With proxy_extra_http_headers configuration option it's now possible to set a list of extra headers that should be copied from original client request to proxied HTTP request - see #334 for motivation and updated proxy docs
    • 👀 You can pass custom data in response to connect event and this data will be available in connect event callback context on client side. See #332 for more details
    • 🚀 Starting from this release Origin header is proxied to your backend by default - see full list in docs

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.3.1
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.3
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.3.0

    December 31, 2019

    🚀 This release is a big shift in Centrifugo possibilities due to HTTP request proxy feature. It was a pretty long term work but the final result opens a new commucation direction: from client to server – see details below.

    ✅ Release has some internal backwards incompatible changes in Redis engine and deprecations. Migration must be smooth but we strongly suggest to test your functionality before running new version in production. Read release notes below for more information.

    👌 Improvements:

    • 📚 It's now possible to proxy some client connection events over HTTP to application backend and react to them in a way you need. For example you can authenticate connection via request from Centrifugo to your app backend, refresh client sessions and answer to RPC calls sent by client over WebSocket or SockJS connections. More information in new documentation chapter
    • Centrifugo now supports RSA-based JWT. You can enable this by setting token_rsa_public_key option. See updated authentication chapter in docs for more details. Due to this addition we also renamed secret option to token_hmac_secret_key so it's much more meaningful in modern context. But don't worry - old secret option will work and continue to set token HMAC secret key until Centrifugo v3 release (which is not even planned yet). But we adjusted docs and genconfig command to use new naming
    • New option redis_sequence_ttl for Redis engine. It allows to expire internal keys related to history sequnce meta data in Redis – current sequence number in channel and epoch value. See more motivation behind this option in its description in Redis Engine docs. While adding this feature we changed how sequence and epoch values are stored in Redis - both are now fields of single Redis HASH key. This means that after updating to this version your clients won't recover missed messages - but your frontend application will receive recovered: false in subscription context so it should tolerate this loss gracefully recovering state from your main database (if everything done right on your client side of course)
    • 👀 More validation of configuration file is now performed. Specifically we now check history recovery configuration - see this issue to see how absence of such misconfiguration check resulted in confused Centrifugo behaviour - no messages were received by subscribers
    • 🔊 Go internal logs from HTTP server are now wrapped in our structured logging mechanism - those errors will look as warns in Centrifugo logs now
    • 🐳 Alpine 3.10 instead of Alpine 3.8 as Centrifugo docker image base

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.3.0
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.3
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.2.7

    December 04, 2019

    👌 Improvements:

    • 👌 Support passing api_key over URL param, see #317 for reasoning behind this feature

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.2.7
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.2
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.2.6

    November 29, 2019

    🚀 This is a quick fix release. Fixes an error on start when namespaces not set in configuration file,the bug was introduced in v2.2.5, see #319 for details.

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.2.6
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.2
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.2.5

    November 29, 2019

    🔀 Centrifugo now uses https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js as default SockJS url. This allows Centrifugo to always be in sync with recent v1 SockJS client. This is important to note because SockJS requires client versions to exactly match on server and client sides when using transports involving iframe. Don't forget that Centrifugo has sockjs_url option to set custom SockJS URL to use on server side.

    👌 Improvements:

    • support setting all configuration options over environment variables in format CENTRIFUGO_<OPTION_NAME>. This was available before but starting from this release we will support setting all options over env
    • 🔊 show HTTP status code in logs when debug log level on
    • 👀 option to customize HTTP handler endpoints, see docs
    • 👀 possibility to provide custom key and cert files for GRPC API server TLS, see centrifugo -h for a bunch of new options

    🛠 Fixes:

    • Fix setting presence_disable_for_client and history_disable_for_client on config top level
    • 🛠 Fix Let's Encrypt integration by updating to ACMEv2 / RFC 8555 compilant acme library, see #311

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.2.5
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.2
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.2.4

    November 02, 2019

    No backwards incompatible changes here.

    👌 Improvements:

    • 👌 Improve web interface: show total client information (sum of all client connections on all running nodes)

    🛠 Fixes:

    • 🛠 Fixes SockJS WebSocket 403 response for cross domain requests: this is a regression in v2.2.3

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.2.4
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.2
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.2.3

    October 26, 2019

    No backwards incompatible changes here.

    👌 Improvements:

    • 🆕 New chapter in docs: Benchmarking server. This chapter contains information about test stand inside Kubernetes with million WebSocket connections to a server based on Centrifuge library (the core of Centrifugo). It gives some numbers and insights about hardware requirements and scalability of Centrifugo
    • New channel and channel namespace options: presence_disable_for_client and history_disable_for_client. presence_disable_for_client allows to make presence available only for server side API. history_disable_for_client allows to make history available only for server side API. Previously when enabled presence and history were available for both client and server APIs. Now you can disable for client side. History recovery mechanism if enabled will continue to work for clients anyway even if history_disable_for_client is on
    • Wait for close handshake completion before terminating WebSocket connection from server side. This allows to gracefully shutdown WebSocket sessions

    🛠 Fixes:

    • 🛠 Fix crash due to race condition, race reproduced when history recover option was on. See commit with fix details
    • 🛠 Fix lack of client_anonymous option. See #304

    🚀 This release is based on Go 1.13.x

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.2.3
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.2
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.2.2

    June 20, 2019

    No backwards incompatible changes here.

    👌 Improvements:

    • 👌 Support for tls-alpn-01 ACME challenge, see #283

    🛠 Fixes:

    • 🛠 fix running HTTP server several times when http-01 ACME challenge used, see #288

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.2.2
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.2
    • 🐳 docker pull centrifugo/centrifugo:latest
  • v2.2.1

    April 15, 2019

    🚀 This release fixes two regressions introduced by v2.2.0.

    👌 Improvements:

    🛠 Fixes:

    • 🛠 Fix client disconnect in channels with enabled history but disabled recovery
    • 🛠 Fix wrong Push type sent in Redis engine: Leave message was used where Join required

    🐳 Docker images

    • 🐳 docker pull centrifugo/centrifugo:v2.2.1
    • 🐳 docker pull centrifugo/centrifugo:v2
    • 🐳 docker pull centrifugo/centrifugo:v2.2
    • 🐳 docker pull centrifugo/centrifugo:latest