1
0
mirror of https://github.com/redis/node-redis.git synced 2025-12-14 09:42:12 +03:00
Commit Graph

51 Commits

Author SHA1 Message Date
GitHub Action
4255467027 Release entraid@5.10.0 2025-11-19 16:28:37 +00:00
Nikolay Karadzhov
ff91ecef81 chore(tests): bump test container version 8.4.0 (#3139) 2025-11-19 13:35:45 +02:00
Nikolay Karadzhov
539780caa8 bump test container version 8.4-GA-pre.3 (#3136)
* bump test container version 8.4-GA-pre.2

* chore(tests): bump test container version 8.4-GA-pre.3
2025-11-18 12:20:23 +02:00
Nikolay Karadzhov
568d60dbaa chore(tests): bump test container version 8.4-RC1-pre.2 (#3126) 2025-11-03 17:22:03 +02:00
Nikolay Karadzhov
9c9a9732fb chore(tests): bump test container version 8.4-RC1-pre (#3115) 2025-10-30 13:16:56 +02:00
GitHub Action
521460f4d0 Release entraid@5.9.0 2025-10-23 14:04:17 +00:00
Bobby I.
51bd5b0a25 Update comments for DefaultAzureCredential usage
Clarify comments regarding the use of DefaultAzureCredential in the EntraIdCredentialsProviderFactory.
2025-10-23 13:52:34 +03:00
GitHub Action
9ba5b2b202 Release entraid@5.9.0-beta.3 2025-10-21 14:01:33 +00:00
Bobby I.
0438865b8a chore: Update default Redis version to 8.4-M01-pre in tests (#3092) 2025-10-06 13:53:37 +03:00
GitHub Action
a95d559889 Release entraid@5.9.0-beta.2 2025-10-01 13:47:07 +00:00
GitHub Action
f37cba43e8 Release entraid@5.9.0-beta.1 2025-09-26 08:53:17 +00:00
GitHub Action
1df34a4b11 Release entraid@5.9.0-beta.0 2025-09-10 09:04:46 +00:00
Nikolay Karadzhov
208a0d250f Hitless upgrades (#3021)
* feat(errors): Add specialized timeout error types for maintenance scenarios

- Added `SocketTimeoutDuringMaintananceError`, a subclass of `TimeoutError`, to handle socket timeouts during maintenance.
- Added `CommandTimeoutDuringMaintenanceError`, another subclass of `TimeoutError`, to address command write timeouts during maintenance.

* feat(linked-list): Add EmptyAwareSinglyLinkedList and enhance DoublyLinkedList functionality

- Introduced `EmptyAwareSinglyLinkedList`, a subclass of `SinglyLinkedList` that emits an `empty` event when the list becomes empty due to `reset`, `shift`, or `remove` operations.
- Added `nodes()` iterator method to `DoublyLinkedList` for iterating over nodes directly.
- Enhanced unit tests for `DoublyLinkedList` and `SinglyLinkedList` to cover edge cases and new functionality.
- Added comprehensive tests for `EmptyAwareSinglyLinkedList` to validate `empty` event emission under various scenarios.
- Improved code formatting and consistency.

* refactor(commands-queue): Improve push notification handling

- Replaced `setInvalidateCallback` with a more flexible `addPushHandler` method, allowing multiple handlers for push notifications.
- Introduced the `PushHandler` type to standardize push notification processing.
- Refactored `RedisCommandsQueue` to use a `#pushHandlers` array, enabling dynamic and modular handling of push notifications.
- Updated `RedisClient` to leverage the new handler mechanism for `invalidate` push notifications, simplifying and decoupling logic.

* feat(commands-queue): Add method to wait for in-flight commands to complete

- Introduced `waitForInflightCommandsToComplete` method to asynchronously wait for all in-flight commands to finish processing.
- Utilized the `empty` event from `#waitingForReply` to signal when all commands have been completed.

* feat(commands-queue): Introduce maintenance mode support for commands-queue

- Added `#maintenanceCommandTimeout` and `setMaintenanceCommandTimeout` method to dynamically adjust command timeouts during maintenance

* refator(client): Extract socket event listener setup into helper method

* refactor(socket): Add maintenance mode support and dynamic timeout handling

- Added `#maintenanceTimeout` and `setMaintenanceTimeout` method to dynamically adjust socket timeouts during maintenance.

* feat(client): Add Redis Enterprise maintenance configuration options

- Added `maintPushNotifications` option to control how the client handles Redis Enterprise maintenance push notifications (`disabled`, `enabled`, `au
to`).
- Added `maintMovingEndpointType` option to specify the endpoint type for reconnecting during a MOVING notification (`auto`, `internal-ip`, `external-ip`,
etc.).
- Added `maintRelaxedCommandTimeout` option to define a relaxed timeout for commands during maintenance.
- Added `maintRelaxedSocketTimeout` option to define a relaxed timeout for the socket during maintenance.
- Enforced RESP3 requirement for maintenance-related features (`maintPushNotifications`).

* feat(client): Add socket helpers and pause mechanism

- Introduced `#paused` flag with corresponding `_pause` and `_unpause` methods to
temporarily halt writing commands to the socket during maintenance windows.
- Updated `#write` method to respect the `#paused` flag, preventing new commands from being written during maintenance.
- Added `_ejectSocket` method to safely detach from and return the current socket
- Added `_insertSocket` method to receive and start using a new socket

* feat(client): Add Redis Enterprise maintenance handling capabilities

- Introduced `EnterpriseMaintenanceManager` to manage Redis Enterprise maintenance events and push notifications.
- Integrated `EnterpriseMaintenanceManager` into `RedisClient` to handle maintenance push notifications and manage socket transitions.
- Implemented graceful handling of MOVING, MIGRATING, and FAILOVER push notifications, including socket replacement and timeout adjustments.


* test: add E2E test infrastructure for Redis maintenance scenarios

* test: add E2E tests for Redis Enterprise maintenance timeout handling (#3)

* test: add connection handoff test


---------

Co-authored-by: Pavel Pashov <pavel.pashov@redis.com>
Co-authored-by: Pavel Pashov <60297174+PavelPashov@users.noreply.github.com>
2025-09-10 11:05:37 +03:00
GitHub Action
3d6eefc246 Release entraid@5.8.2 2025-08-20 08:33:35 +00:00
Nikolay Karadzhov
d5423b93d6 chore(tests): bump test container version 8.2.1-pre (#3057) 2025-08-18 11:32:41 +03:00
GitHub Action
4e5e31dc55 Release entraid@5.8.1 2025-08-13 06:22:45 +00:00
Nikolay Karadzhov
6406172ea8 chore(tests): bump test container version 8.2 (#3046) 2025-08-06 09:49:52 +03:00
GitHub Action
0916d33b12 Release entraid@5.8.0 2025-08-05 09:58:32 +00:00
Pavel Pashov
66638fc903 Add support svs vamana index creation (#3025)
* feat(search): add SVS-VAMANA vector index algorithm support

- Add VAMANA algorithm with compression and tuning parameters
- Include comprehensive test coverage for various configurations
- Fix parameter validation to handle falsy values correctly

* feat(search): add additional VAMANA compression algorithms

- Add LVQ4, LVQ4x4, LVQ4x8, LeanVec4x8, and LeanVec8x8 compression options
- Update test to use LeanVec4x8 compression algorithm

* chore: update Redis version from 8.2-rc1 to 8.2-rc2-pre
2025-08-04 12:07:18 +03:00
GitHub Action
c75809ec65 Release entraid@5.7.0 2025-07-31 13:39:41 +00:00
Pavel Pashov
d941ec5a4c Add Redis 8.2 New Stream Commands (#3029)
* chore: update Redis version from 8.2-RC1-pre to 8.2-rc1

* feat: implement XDELEX command for Redis 8.2

* feat: implement XACKDEL command for Redis 8.2

* refactor: create shared stream deletion types
  for Redis 8.2 commands

* feat: add Redis 8.2 deletion policies to XTRIM
  command

* feat: add Redis 8.2 deletion policies to XADD commands

* fix: correct XDELEX command method name and test parameter
2025-07-25 17:58:28 +03:00
GitHub Action
3365920470 Release entraid@5.6.1 2025-07-23 15:53:19 +00:00
GitHub Action
e5b2466da3 Release entraid@5.6.0 2025-07-08 11:37:56 +00:00
Pavel Pashov
b52177752e feat: added support for new bitop operations (#3001)
refactored bitop tests, covered all operations

updated default docker version on all packages
2025-06-19 13:56:00 +03:00
Nikolay Karadzhov
5d205cf161 chore(tests): bump test container version 8.0.2 (#2997) 2025-06-16 10:20:49 +03:00
Nikolay Karadzhov
7d12438300 Release entraid@5.5.6 2025-06-06 10:12:16 +03:00
Nikolay Karadzhov
91e5d306ca Updated the Entraid package to use client@5.5.6 2025-06-06 10:11:18 +03:00
Nikolay Karadzhov
b33a662e50 Automate release (#2977)
* release-it/bumper

* remove git:false

* fix package ordering

* adjust git add

* fix git config

* adjust git config for all packages

* add noop release script for test-utils

* no need to try to release root

* better way to handle skipping

* pass parameters down

* better version hint

* update node version

* return git arguments from before

* rename release workflow

* rename workflow

* set git.tagMatch

* add link to docs

* update description

* update workspace order in package-lock

* fix secondary releases

release-it/bumper was removing the ^ before the peerDep to client
npm is not happy with that. one potential fix would be to bump all
packages together as a prestep and then proceed without bupming again.
for now, this fix should bring us to the previous state ( what was used
in the manual process )

* require clean working dir in root

* remove root release-it config

not needed
2025-06-04 10:52:14 +03:00
Nikolay Karadzhov
e4d903ca0c Release entraid@5.1.1 2025-05-28 16:21:59 +03:00
Nikolay Karadzhov
566b16eb53 Updated the Entraid package to use client@5.1.1 2025-05-28 16:21:25 +03:00
Nikolay Karadzhov
f2a3c1bf5c Release entraid@5.1.0 2025-05-20 16:01:52 +03:00
Nikolay Karadzhov
e938bda0d9 Updated the Entraid package to use client@5.1.0 2025-05-20 16:01:04 +03:00
Nikolay Karadzhov
67cde227cc Release entraid@5.0.1 2025-05-05 11:59:07 +03:00
Nikolay Karadzhov
57e5daab98 Updated the Entraid package to use client@5.0.1 2025-05-05 11:58:23 +03:00
Nikolay Karadzhov
99003307f9 Release entraid@5.0.0 2025-04-30 17:05:46 +03:00
Nikolay Karadzhov
42911295a4 Updated the Entraid package to use client@5.0.0 2025-04-30 17:05:10 +03:00
Daniel Hensby
4d659f0b44 docs: update the default credential provider example (#2919) 2025-04-07 15:29:13 +03:00
Daniel Hensby
bdf95fdfca fix: loosen @azure/identity constraint for @redis/entraid (#2920) 2025-04-02 16:48:21 +03:00
Bobby I.
a7c96a01f8 fix (entraid): correct package entry point structure (#2917)
- last time we forgot to include `index.ts`
2025-03-25 13:50:16 +02:00
Bobby I.
0f24c7fc21 entraid: update readme.md (#2916) 2025-03-25 11:28:06 +02:00
H. Temelski
8ab820c0db Release entraid@5.0.0-next.7 2025-03-25 10:27:10 +02:00
H. Temelski
4f88442f6f Updated the EntraID package to use client@5.0.0-next.7 2025-03-25 10:25:18 +02:00
Bobby I.
6c5a3fd0c0 fix(entraid): correct package entry point structure (#2891)
- Add /index.ts that re-exports all from /lib/index.ts
- Preserve existing /lib/index.ts exports
2025-03-20 12:31:25 +02:00
Hristo Temelski
a7feb60e0a tests: bumped the version of the 8 docker test image to '8.0-M05-pre' (#2909) 2025-03-18 15:24:11 +02:00
Bobby I.
8b4ed0059a feat(entraid): add support for azure identity (#2901)
This PR adds support for using Azure Identity's credential classes with Redis Enterprise Entra ID authentication.
The main changes include:

- Add a new factory method createForDefaultAzureCredential to enable using Azure Identity credentials
- Add @azure/identity as a dependency to support the new authentication flow
- Add support for DefaultAzureCredential, EnvironmentCredential, and any other TokenCredential implementation
- Create a new AzureIdentityProvider to support DefaultAzureCredential
- Update documentation and README with usage examples for DefaultAzureCredential
- Add integration tests for the new authentication methods
- Include a sample application demonstrating interactive browser authentication
- Export constants for Redis scopes / credential mappers to simplify authentication configuration
2025-03-05 14:47:18 +02:00
Bobby I.
69d507a572 refactor!: redis 8 compatibility improvements and test infrastructure updates (#2893)
* churn(test): use redislabs/client-libs-test for testing

This  switches our testing infrastructure from redis/redis-stack to
redislabs/client-libs-test Docker image across all packages. This change
also updates the default Docker version from 7.4.0-v1 to 8.0-M04-pre.

* churn(test): verify CONFIG SET / GET compatibility with Redis 8

- Add tests for Redis 8 search configuration settings
- Deprecate Redis Search CONFIG commands in favor of standard CONFIG
- Test read-only config restrictions for Redis 8

* churn(test): handle Redis 8 coordinate precision in GEOPOS

- Update GEOPOS tests to handle increased precision in Redis 8 (17 decimal places vs 14)
- Add precision-aware coordinate comparison helper
- Add comprehensive test suite for coordinate comparison function

* test(search): adapt SUGGET tests for Redis 8 empty results

- Update tests to expect empty array ([]) instead of null for SUGGET variants
- Affects sugGet, sugGetWithPayloads, sugGetWithScores, and sugGetWithScoresWithPayloads

* test(search): support Redis 8 INFO indexes_all field

- Add indexes_all field introduced in Redis 8 to index definition test

* refactor!(search): simplify PROFILE commands to return raw response

- BREAKING CHANGE: FT.PROFILE now returns raw response, letting users implement their own parsing

* test: improve version-specific test coverage

- Add `testWithClientIfVersionWithinRange` method to run tests for specific Redis versions
- Refactor TestUtils to handle version comparisons more accurately
- Update test utilities across Redis modules to run tests against multiple versions, and not against latest only
2025-02-27 10:56:58 +02:00
Bobby I.
33cdc00746 churn(docs) update entraid documentation (#2898) 2025-02-18 15:57:40 +02:00
Bobby I.
558ebb4d25 Update README.md (#2890) 2025-01-30 12:46:41 +02:00
dmaier-redislabs
998b7f0ebd Release entraid@5.0.0-next.6 2025-01-30 11:09:31 +02:00
dmaier-redislabs
c9215d18bf Updated the EntraID package to use client@5.0.0-next.6 2025-01-30 11:07:40 +02:00