Release v2.0.0
Changelog
Go Version
- 1.11.10: Both release executables and Docker images are built with this Go release.
Backward incompatibility
- The routing protocol has been dramatically improved and adds support for accounts and multi-tenancy. The new protocol is not backward compatible with servers <2.0.0.
- For users embedding NATS Server and using
Varz()
to get server statistics should be aware of some changes described in #989
Changed
- Repository and server name have changed: gnatsd becomes nats-server (#985)
- With go.mod, users embedding NATS Server should change their import path to include
/v2
. For instance:
import (
natsd "github.com/nats-io/nats-server/v2/server"
)
- Cluster permissions moved out of cluster's authorization section (#747)
- The utility mkpasswd.go file was moved to its own directory
util/mkpasswd
to enablego get
to install this tool (#996)
Added
- NKey support (#743)
- Accounts support (#755)
- JWT Support (#804)
- Gateways (#808)
- Leaf Nodes (#928)
- System events (#823)
- Support of TLS certificate subject for users authentication (#896, #909)
- Support of SANs in TLS certificate for user permissions. Thanks to @twrobel3 for the report (#966)
- Ability to disable TLS server name verification for routes. Thanks to @softkot for the contribution (#921)
- Ability to explicitly set server name for TLS in Gateways. Thanks to @danielsdeleo for the contribution (#922)
- Configuration check with
-t
command line parameter (#745) - Support for route permissions configuration reload (#753)
- Lame duck mode (#780)
- Support for path as argument to
--signal
. Thanks to @pires for the contribution (#838) - Expose connection remote address in
ClientAuthentication
. Thanks to @ripienaar for the contribution (#837) ntp.service
dependency to the systemd service file. Thanks to @andyxning for the contribution (#880)- Configuration parameter to select the frequency at which failed route, gateways and leaf nodes connections are reported. Thanks to @santo74 for the feedback (#1000, #1001)
- List or route URLs in
cluster{}
from/varz
endpoint (#1012) - Ability to ignore top-level unknown configuration field (#1024)
Improved
- New route protocol (#786)
- Fan in/out scenarios (#876)
- Various optimizations (#897)
- Utility
mkpasswd
's help output. Thanks to @andyxning for the contribution (#881) - You can now have unquoted strings that start with number (#893)
- Use of https for README's links. Thanks to @huynq0911 for the contribution (#914)
- Warning on plaintext password in configuration and redact them from log statements (#743, #776)
Fixed
- Misleading "Slow Consumer" error message during a TLS Handshake (#836)
- Report "Slow Consumer" only for clients that do complete the connect process (#861)
- Configuration reload of boolean flags. Thanks to @sazo for the report (#879)
- Runaway process when parsing a configuration file with missing a
}
or)
(#887) - Don't allow overruns for message payloads. Thanks to @valichek for the report (#889)
- Possible delays in delivering messages (#895)
- Possible slow consumer when routes exchange their subscriptions list (#912)
- Protocol Parser type safety. Thanks to @nmiculinic for the contribution (#908)
- Use of custom authentication with configuration reload. Thanks to @Will2817 for the report (#924)
- Issue with utility
mkpasswd
on Windows platform. Thanks to @Ryner51 for the report (#935) - Some typos. Thanks to @huynq0911, @JensRantil for their contributions.
- Changes to Varz content and fixed race conditions (#989)