2193 Commits

Author SHA1 Message Date
olde-ducke
654ca4ea87 [FIXED] Fix nil pointer dereference in ConsumerInfo (#1987)
Also add test case that checks that correct error is returned when no
jetstream is avalilable on subscription.

Signed-off-by: John Smith <johnysfao@gmail.com>
2025-12-19 17:17:53 +01:00
Piotr Piotrowski
a0e7b702c6 Release v1.48.0 (#1984)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
v1.48.0
2025-12-17 14:35:24 +01:00
Piotr Piotrowski
3ad420407d [IMPROVED] Mention performance in Fetch docs (#1983)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-12-17 13:39:20 +01:00
Piotr Piotrowski
34d93ec001 [ADDED] Enable using non-kv streams as KV sources (#1960)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-12-17 13:32:26 +01:00
Piotr Piotrowski
7bb976de86 [IMPROVED] Re-add subject validation (#1979)
* Revert "[IMPROVED] Add publish subject validation (#1974)"

This reverts commit 97bfc3294c.

* [IMPROVED] Add publish subject validation (#1974)

This reverts commit 18394678f9.

* Add option to skip subject validation

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

---------

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-12-16 16:20:34 +01:00
Reuben
a2b6c9350b [IMPROVED] Fix typo in README for service creation method (#1962) 2025-12-02 17:37:05 +01:00
Piotr Piotrowski
97bfc3294c [IMPROVED] Add publish subject validation (#1974)
* [IMPROVED] Add publish subject validation

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

* [IMPROVED] Use adaptive validation depending on subject len

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

* [IMPROVED] Validate reply subject when using custom one

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

---------

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-12-02 13:40:39 +01:00
Piotr Piotrowski
1949406fa6 [FIXED] Fix data race when closing watcher updates channel in kv.go (#1965)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-11-12 10:44:35 +01:00
Piotr Piotrowski
bc57480937 [FIXED] Use QueueSubscribe if DeliverGroup is configured on PushConsumer (#1966)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-11-07 13:14:45 +01:00
Sven Neumann
4ec2f446e4 [FIXED] Fix function pointer check in js.apiRequestWithContext() (#1957)
Signed-off-by: Sven Neumann <sven.neumann@holoplot.com>
2025-10-23 15:23:52 +02:00
PeterBParker
93fcbd0438 Remove extraneous PullThresholdMessages type definition (#1959)
Removed extraneous type definition for PullThresholdMessages.
2025-10-21 15:31:17 -07:00
Piotr Piotrowski
01f1814fb3 Release v1.47.0 (#1956)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
v1.47.0
2025-10-14 14:17:43 +02:00
Piotr Piotrowski
c337fd419e [IMPROVED] Clarify MessagesContext.Next() doc (#1951)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-10-14 13:10:52 +02:00
Piotr Piotrowski
ae3c9741de [FIXED] Capture async callbacks before pushing on dispatch queue (#1955)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-10-14 12:36:32 +02:00
Piotr Piotrowski
ecc3b74a08 [FIXED] Double channel close on simultaneous Stop and Drain (#1953)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-10-10 10:44:30 +02:00
Piotr Piotrowski
c12f77bcdc [FIXED] Data race when cancelling context while getting object (#1949)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-10-10 09:57:57 +02:00
Saurabh Kumar Ojha
2ab8185635 Add options to send custom WebSocket headers on connect (#1919)
Example:

```go
	headers := make(http.Header)
	headers.Set("X-Client-ID", "go-example-client")
	headers.Set("X-Custom-Header", "static-value")

	// Connect to NATS server via WebSocket with custom headers
	nc, err := nats.Connect("ws://localhost:8080",
		nats.WebSocketConnectionHeaders(headers),
	)
```

Co-authored-by: Waldemar Quevedo <wally@nats.io>
2025-10-09 22:58:30 -07:00
Piotr Piotrowski
1610417578 [IMPROVED] Fix simplified URLs test after (#1954)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-10-09 12:23:40 +02:00
Piotr Piotrowski
4dc7f1e4f6 Release v1.46.1 (#1948)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
v1.46.1
2025-09-30 15:23:38 +02:00
Piotr Piotrowski
0bbc048e3b [FIXED] Add omitempty to AllowMsgTTL and AllowMsgCounter (#1947)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-30 14:26:36 +02:00
Piotr Piotrowski
41de016ddd Release v1.46.0
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
v1.46.0
2025-09-22 18:41:39 +02:00
Piotr Piotrowski
2d3be0c81b [IMPROVED] Bump nats-server test dependency 2025-09-22 17:00:03 +02:00
Piotr Piotrowski
9726c6f3bc [ADDED] AllowMsgSchedules field to enable message scheduling in stream config (#1942)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
5e67170a31 [FIXED] Revert leftover no headers support changes (#1941)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
c85e27545a [ADDED] Introduce PersistMode for configurable persistence settings in streams (#1943)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
13d3ae2df4 [ADDED] AllowAtomicPublish option on stream config (#1940)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
60f17186ec [CHANGED] Remove no headers support (#1939)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
ec9b58f895 [IMPROVED] Add test veryfying if mirror can be updated to regular stream (#1934)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
3416ed073b [ADDED] New fields in ClusterInfo (#1935)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
460f3ded59 [ADDED] Prioritized priority policy (#1937)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
13537419c0 [ADDED] Counters support (#1932)
* [ADDED] Configuration field for msg counters

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

* [ADDED] NoHeaders option for GetMsg

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

* [ADDED] NoHeaders option for GetLastMsgForSubject

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

---------

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 17:00:03 +02:00
Piotr Piotrowski
c857ae9d4f [ADDED] Support custom name prefix for ordered consumers (#1928)
Add a new NamePrefix field to OrderedConsumerConfig that allows users
to specify custom prefixes for ordered consumer names. When provided,
consumer names will be generated as {NamePrefix}_{sequence_number}
(e.g., "myapp_1", "myapp_2"). If not provided, the default behavior
of using a NUID as prefix is maintained.

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 16:38:02 +02:00
Piotr Piotrowski
a9a04a9c37 [ADDED] Add Metadata support to KeyValue buckets (#1944)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-22 10:14:59 +02:00
Piotr Piotrowski
98a4735206 [ADDED] Context and timeout options to Messages.Next() plus Fetch context support (#1938)
* Add timeout support to MessagesContext.Next() with mutual exclusion
* [ADDED] FetchContext support for pull consumer operations
---------

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-18 13:17:21 +02:00
Piotr Piotrowski
3d0a13a355 [IMPROVED] Return more specific cons info error on ordered consumer recreation (#1931)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-09-10 13:18:51 +02:00
Artem Shulga
5e20e852a4 [UPDATED] Add max consumers limit error (code=10026) (#1927)
Signed-off-by: Artem Shulga <dev.ashulga@gmail.com>
Co-authored-by: arlet <shulga@niuitmo.ru>
2025-09-09 09:38:28 +02:00
Piotr Piotrowski
3d824b07c6 [IMPROVED] De-flake TestHotSpotReconnect and fix kv per key TTL test (#1926)
* [IMPROVED] De-flake TestHotSpotReconnect

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

* Fixed failing per key ttl test

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>

---------

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-08-22 16:17:06 +02:00
Tomasz Pietrek
0ed86479d3 Release v1.45.0 (#1923)
Signed-off-by: Tomasz Pietrek <tomasz@nats.io>
v1.45.0
2025-08-20 06:50:44 +02:00
Piotr Piotrowski
20accc137f [FIXED] Track delivered count and auto-unsubscribe for channel subscriptions (#1913)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-08-19 17:32:51 +02:00
Piotr Piotrowski
7af9697b58 [FIXED] Handle empty response when creating a consumer (#1912)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-08-19 17:12:39 +02:00
Piotr Piotrowski
bf620311b8 [FIXED] Call ReconnectErrHandler for initial connection failures with RetryOnFailedConnect (#1915)
When RetryOnFailedConnect is enabled and initial connection fails,
ReconnectErrHandler is now called to report the error, allowing users
to debug initial connection issues.

Resolves issue mentioned in https://github.com/nats-io/nats.go/issues/1870#issuecomment-2853851326

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-08-19 17:11:27 +02:00
Piotr Piotrowski
8407275920 [FIXED] Clear status listeners map on SubscriptionClosed event (#1914)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-08-19 16:57:56 +02:00
Piotr Piotrowski
d0027eb243 [IMPROVED] Add test checking KV TTL watcher updates (#1916)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-08-19 13:30:04 +02:00
Piotr Piotrowski
89faf3b11d [FIXED] CreateOrUpdateStream preserves domain prefix during updates (#1917)
When UpdateStream is used with domain-configured mirrors or sources,
the domain prefix is now properly preserved by converting domains
to external configurations consistently with CreateStream.

Fixes #1744

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-08-19 13:28:05 +02:00
Waldemar Quevedo
069c9bea61 [ADDED] Handling for maximum account active connections exceeded (#1921)
The client should continue to try to reconnect following the
reconnection logic settings when running into account limit
error changes.

Signed-off-by: Waldemar Quevedo <wally@nats.io>
2025-08-19 12:03:33 +02:00
Byron Ruth
22f2b9dbce [ADDED] WithExpectLastSequenceForSubject publish option (#1920)
This utilizes the Nats-Expected-Last-Subject-Sequence-Subject header
that became available in 2.11.0.

Signed-off-by: Byron Ruth <byron@nats.io>
2025-08-16 12:16:54 +02:00
Piotr Piotrowski
7a260b8b93 Release v1.44.0 (#1910)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
v1.44.0
2025-07-29 18:35:42 +02:00
Salvador Chinesta Llobregat
dfcb02dcdc [FIXED] Use mirror-aware prefix when updating KV key (#1903)
Create a valid Subject for mirrored streams by using the `kv.putPre` prefix which references the subject in the remote domain
2025-07-29 14:06:09 +02:00
Piotr Piotrowski
0bba2a9842 [ADDED] PushConsumer implementation in jetstream package (#1785)
Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
Co-authored-by: Tomasz Pietrek <tomasz@nats.io>
2025-07-25 16:40:11 +02:00
Piotr Piotrowski
627a9f63c2 [FIXED] KeyValue Keys() and ListKeys() returning duplicates (#1884)
Use consumer pending count from creation time instead of first message
delta to fix race where concurrent updates could cause duplicate keys
during listing operations.

Signed-off-by: Piotr Piotrowski <piotr@synadia.com>
2025-07-25 13:43:43 +02:00