Releases: nats-io/nats-server
Releases · nats-io/nats-server
Release v1.4.0
Changelog
Go Version
- 1.11.4: Both release executables and Docker images are built with this Go release.
Added
- Warning if passwords are stored in plain text in config. Redact password from
CONNECT
trace. - Support for cluster permissions reload (#753)
- Support a path as argument to
--signal
. Thanks to @pires for the contribution (#838) RemoteAddress()
to theCustomClientAuthentication
interface. Thanks to @ripienaar for the contribution (#837)
Changed
- Cluster permissions moved out of cluster's authorization (#747)
Fixed
- Ports file on Windows (#733)
- Memory usage for failed TLS connections (#872)
- Issue with configuration reload for some boolean parameters, such as
logtime
. Thanks to @sazo for the report (#874, #879) - Reduced risk of slow consumer in fan in scenarios (#876)
Complete Changes
Release v1.3.0
Changelog
Go Version
- 1.11: Both release executables and Docker images are built with this Go release.
Added
- Allow/Deny permissions (#725, #727). It is now possible to specify deny permissions
for subjects. For instance:
authorization {
myUserPerms = {
publish = {
allow = "*.*"
deny = ["SYS.*", "bar.baz", "foo.*"]
}
subscribe = {
allow = "foo.*"
deny = "foo.baz"
}
}
users = [
{user: myUser, password: pwd, permissions: $myUserPerms}
]
}
means that user myUser
is allowed to publish to subjects with 2 tokens (allow = "*.*"
) but not to subjects matching SYS.*
, bar.baz
or foo.*
. It can subscribe to subjects matching foo.*
but not foo.baz
.
Improved
Fixed
- Unexpected
Authorization Error
during configuration reload (#270)
Complete Changes
Release v1.2.0
Changelog
Go Version
- 1.10.3: Both release executables and Docker images are built with this Go release.
Added
- License scan status. Thanks to @xizhao (#658)
- PSE file for OpenBSD. Thanks to @gabeguz (#661)
- Best practices badge (#679)
- Governance and Maintainers files (#703)
- New
rtt
field in/connz
monitoring endpoint. This measures the time between the server sent a PING to a client and the time it got the PONG back (#683) - Ability to filter
/connz
by client ID (CID). Example:http://localhost:8222/connz?cid=100
. Note that the CID is now sent back to the client. Client libraries have not yet been updated to report this to the application (#687) - Tracking of closed connections and reason for their closing. To filter closed connections, use
?state=closed
as inhttp://localhost:8222/connz?state=closed
. Possible values forstate
areopen
,closed
,all
. The result now includes a new fieldreason
that gives a reason why the connection was closed, for instancereason: Client
means that the client closed the connection (#692). For example:
{
"cid": 2,
"ip": "::1",
"port": 63065,
"start": "2018-07-05T11:00:16.09747933-06:00",
"last_activity": "2018-07-05T11:00:21.441585272-06:00",
"stop": "2018-07-05T11:00:23.445200428-06:00",
"reason": "Slow Consumer (Write Deadline)",
"uptime": "7s",
"idle": "2s",
"pending_bytes": 8265,
"in_msgs": 0,
"out_msgs": 4178,
"in_bytes": 0,
"out_bytes": 534784,
"subscriptions": 1,
"lang": "go",
"version": "1.5.0"
},
- New
/connz?sort=
sort options:start
,stop
andreason
(#705) - Support for "echo" feature. By default, if a connection subscribes on
foo
and publishes onfoo
, it will receive those messages. To prevent this, the client'sCONNECT
protocol includes a new boolean field namedecho
that should be set tofalse
. The server is also sending a newint
fieldproto
in theINFO
protocol to the client, allowing the client library to decide if it can use the "echo" feature or not. Client libraries have not yet been updated to take advantage of this feature (#698) - Ability to specify a maximum number of subscriptions (per connection) (#707)
- Ability to get details about a subscription with
/subsz?subs=1
(#707). For instance:http://localhost:8222/subsz?subs=1
may return:
"subscriptions_list": [
{
"subject": "foo",
"sid": "1",
"msgs": 1000,
"cid": 2
}
]
- Ability to test for matching subscriptions on a given subject (#707). For instance:
http://localhost:8222/subsz?subs=1&test=foo
would return thesubscriptions_list
with subscriptions matching the test subject. If no match is found, thesubscriptions_list
is not present.
Improved
- Authorization and Authentication documentation in README (#673, #678)
- Big performance improvement for fan-out situations (one message to many subscriptions). Special thanks to @ripienaar that has been helping test the solution at scale (#680).
Fixed
- Display of cluster port when configured as random (#657)
- Inability to remove a route from configuration (with configuration reload) if the remote server is not running (#682)
- Do not send more than one error when client sends invalid protocol. Thanks to @danielwertheim for the report (#684)
- Possible truncation of the subscription interest list when route connects (#680)
- Route behavior in high fan-out (slow consumer) (#680)
Updated
- Build requirements in the README (now require Go 1.9+ to build from source) and default cipher suites (#689)
- Elevate TLS statements from DBG to ERR. Thanks to @ripienaar for the report (#690)
Release v1.1.0
Changelog
Go Version
- 1.9.4: Both release executables and Docker images are built with this Go release.
Added
- Monitoring endpoint functions (Varz(), etc...) for those embedding NATS Server in their application. Thanks to @ripienaar for the report (#615)
Improved
- Better attempt at delivering messages to queue subscriptions. Thanks to @vkhorozvs (#638)
- Compatibility with JSON in configuration parser (#653)
Fixed
- Cluster topology change possibly not sent to clients (#631, #634)
- Race between delivering messages to queue subscriptions and subscriptions being unsubscribed (#641)
- Close log file on log re-open signal. Thanks to @acadiant for the report (#644)
Changed
- Moved to Apache 2.0 License following move to CNCF (#650)
Removed
ssl_required
field in INFO protocol. This was deprecated some time ago. The correct field to use is TLSRequired (#655)
Complete Changes
Release v1.0.6
Changelog
Go Version
- 1.9.4: Both release executables and Docker images are built with this Go release.
Added
- ARM32v6 Release build (#629)
- Server ID to
/connz
and/routez
(#598) - Server notifies clients when server join/leave/rejoins cluster. Thanks to @madgrenadier for feedback (#606, #626)
- Client and Cluster Advertise address (#608)
- GitCommit of release is printed in the banner (#624)
Improved
Changed
- Log level for route errors were elevated from debug to error (#611)
Fixed
- Profiling and Monitoring timeout issues (#603)
/connz
could be delayed for TLS clients still in TLS handshake (#604)
Complete Changes
Release v1.0.4
Changelog
Go Version
- 1.8.3: Both release executables and Docker images are built with this Go release.
Added
- ARM64v8 Release build (#567)
- Systemd unit file. Thanks to @RedShift1 (#587)
- Custom Authentication. Thanks to @cdevienne (#576)
Fixed
- Subscriptions not closed in the cluster when using auto unsubscribe. Thanks to @ingosus (#551)
- Use of
*
and>
in subjects as literals. Thanks to @s921102002 for the report (#561) - Clarification about token usage. Thanks to @sarbash (#563)
- Sublist insert and remove with wildcards in literals (#573)
- Override from command line not always working (#578)
- Name of selected new cipher suites (#592)
Complete Changes
Release v1.0.2
Changelog
Go Version
- 1.7.6
Fixed
- Windows Docker Images failure to start with error: “The service process could not connect to the service controller” (#544)
- Unnecessary attempt to reconnect a route. When server B connected to A and B was then shutdown, A would try to reconnect to B once, although the route was implicit (#547)
Complete Changes
Release v1.0.0
Changelog
Great community effort! Special thanks to Elton Stoneman (@sixeyed) for his help in verifying that the Windows Docker images build properly!
Go Version
- 1.7.6
Added
- Ability to configure number of connect retries for implicit routes. Thanks to @joelanford for reporting an issue leading to this PR (#409)
GetTLSConnectionState()
inClientAuth
interface. This returns the TLSConnectionState
if TLS is enabled. Thanks to @cdevienne (#385)- Windows Event logging (#413)
curve_preference
parameter to specify the preferred order (#412)- ChaCha cipher (#415)
write_deadline
parameter to make the deadline when flushing messages to clients configurable (#421, #488)- Reject clients connecting to route’s listen port (#424)
- Support for authentication token in configuration file. Thanks to @qrpike for the report (#465)
- Ability to get the server’s HTTP Handler (#481)
MonitorAddr()
andClusterAddr()
return the monitoring an route listener respectively (#512)- Configuration Reload (#499, #503, #506, #515, #519, #523, #524)
Removed
- Global logger (#501)
- Auth package and
Server.SetClientAuthMethod()
andServer.SetRouteAuthMethod()
(#474)
Improved
- Parsing of subscription IDs for routes. Thanks to @miraclesu (#478)
- Handling of escaped substrings. Thanks to @ericpromislow (#482)
Fixed
- Possible data races with /varz and /subsz monitoring endpoints (#445)
- PINGs not sent to TLS Connections (clients or routes). Thanks to @stefanschneider for the report (#459)
- Not all executables statically linked when release issued. Thanks to @leifg for the report (#471)
- Check for negative offset and/or limit when processing /connz monitoring endpoint (#492)
- Authorization timeout and TLS. Prevents errors such as
tls: oversized record received
(#493) - Unexpected behavior when providing both HTTP and HTTPS monitoring ports (#497)
- HTTP Server not shutdown on server shutdown if HTTP server is started manually (#498)
- Possible DATA RACE when polling the routez endpoint and a route disconnects (#540)
Complete Changes
Release v0.9.6
Changelog
Go Version
- 1.7.4
Added
- Support for Go 1.7
- Staticcheck verifications in Travis
- Ability to configure ping_interval and ping_max in configuration file (#372)
- Support for integer suffixes, e.g. 1k 8mb, etc.. (#377)
- Support for ‘include’ to configuration files (#378)
- Ability to make server re-open log file using SIGUSR1 - for log rotation (#379,#382)
- Support for
max_connections
parameter (#387, #389)
Updated
- Docker build to use go 1.7.4
- Generate syslog tag based on executable/link name (#362)
Fixed
- Client certificate was required but not verified even when configuration parameter
verify
was set to true (#337) - Non-ASCII quotes in monitoring’s HTML output (#353)
- It was possible to configure
max_connections
in previous releases, but it had no effect (#387, #389) - Non flags in command line parameters would cause the server to ignore remaining flags but not report an error (#393)
Removed
MaxPending
option andmax_pending_size
,max_pending
configuration parameters. Those were never used (#383)
Complete Changes
Release v0.9.4
Changelog
Go Version
- 1.6.3
Added
- Option to disable advertisement of cluster IP addresses to clients.
Changed
- HTTP host, if not specified, now defaults to client’s host (
-a
command line orOptions.Host
)
Fixed
- When server listens to all interfaces (0.0.0.0 or ::), it now advertises only global IPs instead of all resolved IPs (which included link local IPs).
- You can now specify an IPv6 address int the
-cluster
URL. - Server could panic when user would poll Varz from monitoring port concurrently with other endpoints (Varz or others).
- Data race with unsubscribe and connection close