1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-04 15:02:09 +03:00
Commit Graph

2061 Commits

Author SHA1 Message Date
dmaier-redislabs
81a40a7020 Updated the timeseries package to use client@5.0.0-next.6 2025-01-30 11:14:30 +02:00
dmaier-redislabs
f30926c91a Release search@5.0.0-next.6 search@5.0.0-next.6 2025-01-30 11:13:34 +02:00
dmaier-redislabs
153346b9aa Updated the search package to use client@5.0.0-next.6 2025-01-30 11:12:56 +02:00
dmaier-redislabs
c0da3db8cf Release json@5.0.0-next.6 json@5.0.0-next.6 2025-01-30 11:11:58 +02:00
dmaier-redislabs
68e8973fd0 Updated the JSON package to use client@5.0.0-next.6 2025-01-30 11:11:21 +02:00
dmaier-redislabs
998b7f0ebd Release entraid@5.0.0-next.6 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
dmaier-redislabs
6066692cb9 Release client@5.0.0-next.6 client@5.0.0-next.6 2025-01-30 11:02:54 +02:00
Bobby I.
6d21de3f31 feat(auth): add Entra ID identity provider integration for Redis client authentication (#2877)
* feat(auth): refactor authentication mechanism to use CredentialsProvider

- Introduce new credential providers: AsyncCredentialsProvider, StreamingCredentialsProvider
- Update client handshake process to use the new CredentialsProviders and to support async credentials fetch / credentials refresh
- Internal conversion of username/password to a CredentialsProvider
- Modify URL parsing to accommodate the new authentication structure
- Tests

* feat(auth): auth extensions

Introduces TokenManager and supporting classes to handle token acquisition, automatic
refresh, and updates via identity providers. This foundation enables consistent
authentication token management across different identity provider implementations.

Key additions:
- Add TokenManager to obtain and maintain auth tokens from identity providers
  with automated refresh scheduling based on TTL and configurable thresholds
- Add IdentityProvider interface for token acquisition from auth providers
- Implement Token class for managing token state and TTL tracking
- Include configurable retry mechanism with exponential backoff and jitter
- Add comprehensive test suite covering refresh cycles and error handling

This change establishes the core infrastructure needed for reliable token
lifecycle management across different authentication providers.

* feat(auth): add Entra ID identity provider integration

Introduces Entra ID (former Azure AD) authentication support with multiple authentication flows
and automated token lifecycle management.

Key additions:
- Add EntraIdCredentialsProvider for handling Entra ID authentication flows
- Implement MSALIdentityProvider to integrate with MSAL/EntraID authentication library
- Add support for multiple authentication methods:
  - Managed identities (system and user-assigned)
  - Client credentials with certificate
  - Client credentials with secret
  - Authorization Code flow with PKCE
- Add factory class with builder methods for each authentication flow
- Include sample Express server implementation for Authorization Code flow
- Add comprehensive configuration options for authority and token management

* feat(test-utils): improve cluster testing

- Add support for configuring replica authentication with 'masterauth'
- Allow default client configuration during test cluster creation

This improves the testing framework's flexibility by automatically
configuring replica authentication when '--requirepass' is used and
enabling custom client configurations across cluster nodes.

* feat(auth): add EntraId integration tests

- Add integration tests for token renewal and re-authentication flows
- Update credentials provider to use uniqueId as username instead of account username
- Add test utilities for loading Redis endpoint configurations
- Split TypeScript configs into separate files for samples and integration tests
- Remove `@redis/authx` package and nest it under `@`
2025-01-30 10:29:19 +02:00
mohamed amine ozennou
ae89341780 chore: Update tests.yml (#2887)
- Add node 22
- Update actions/setup-node from v3 to v4
- Ignore .md files from triggering the workflow
2025-01-29 12:40:58 +02:00
Jeremy
ffa7d2525c Fix cluster-slots discover race condition again (#2867) 2024-11-25 15:36:33 -05:00
Max Gruenfelder
9a3e1c5e03 Fix creation of cluster client again (#2870)
* shallow copy of this.#options.defaults.socket

* shallow copy of this.#options.defaults.socket

* nit

* fix redis create cluster client again

---------

Co-authored-by: Max Gruenfelder <maximilian.gruenfelder@sap.com>
Co-authored-by: Leibale Eidelman <me@leibale.com>
2024-11-25 15:28:44 -05:00
Leibale Eidelman
b87b8b1134 add createSentinel to the "redis" package 2024-11-04 12:21:41 -05:00
Leibale Eidelman
b835309cf8 fix cross packages imports 2024-11-04 12:21:17 -05:00
Shaya Potter
8dab27ed02 fix sentinel generics (#2859)
* fix sentinel generics

* comment nit
2024-11-04 10:23:34 -05:00
Shaya Potter
4708736f3b new "transform arguments" API for better key and metadata extraction (#2733)
* Parser support with all commands

* remove "dist" from all imports for consistency

* address most of my review comments

* small tweak to multi type mapping handling

* tweak multi commands / fix addScript cases

* nits

* addressed all in person review comments

* revert addCommand/addScript changes to multi-commands

addCommand needs to be there for sendCommand like ability within a multi.

If its there, it might as well be used by createCommand() et al, to avoid repeating code.

addScript is there (even though only used once), but now made private to keep the logic for bookkeeping near each other.
2024-10-31 12:16:59 -04:00
dmaier-redislabs
5ace34b9c9 Release redis@5.0.0-next.5 redis@5.0.0-next.5 2024-10-15 17:51:47 +02:00
dmaier-redislabs
78a7f32e24 Updated the main package to use the 5.0.0-next.5 sub-packages 2024-10-15 17:48:26 +02:00
dmaier-redislabs
e01f8496f9 Release time-series@5.0.0-next.5 time-series@5.0.0-next.5 2024-10-15 17:46:09 +02:00
dmaier-redislabs
9fbd346a88 Updated the TimeSeries package to use client@5.0.0-next.5 2024-10-15 17:45:22 +02:00
dmaier-redislabs
d3e720ffbd Release search@5.0.0-next.5 search@5.0.0-next.5 2024-10-15 17:43:16 +02:00
dmaier-redislabs
c0a418140e Updated the Search package to use client@5.0.0-next.5 2024-10-15 17:42:24 +02:00
dmaier-redislabs
91476f9ba7 Release json@5.0.0-next.5 json@5.0.0-next.5 2024-10-15 17:40:46 +02:00
dmaier-redislabs
a4466d2049 Updated the JSON package to use client@5.0.0-next.5 2024-10-15 17:40:01 +02:00
dmaier-redislabs
875ed36d3a Release graph@5.0.0-next.5 graph@5.0.0-next.5 2024-10-15 17:38:48 +02:00
dmaier-redislabs
c7b40889ac Updated the Graph package to use client@5.0.0-next.5 2024-10-15 17:37:31 +02:00
dmaier-redislabs
4bb8cf5209 Release bloom@5.0.0-next.5 bloom@5.0.0-next.5 2024-10-15 17:36:26 +02:00
dmaier-redislabs
accc5c47a8 Updated the Bloom package to use client@5.0.0-next.5 2024-10-15 17:34:46 +02:00
dmaier-redislabs
dca39e1402 Release client@5.0.0-next.5 client@5.0.0-next.5 2024-10-15 17:30:06 +02:00
Shaya Potter
c07b4db7db fix generating docs (#2853) 2024-10-15 17:10:35 +02:00
Shaya Potter
b2d35c5286 V5 bringing RESP3, Sentinel and TypeMapping to node-redis
RESP3 Support
   - Some commands responses in RESP3 aren't stable yet and therefore return an "untyped" ReplyUnion.
 
Sentinel

TypeMapping

Correctly types Multi commands

Note: some API changes to be further documented in v4-to-v5.md
2024-10-15 17:46:52 +03:00
Leibale
2fc79bdfb3 Release redis@4.7.0 redis@4.7.0 2024-07-29 10:34:21 -04:00
Leibale
878fb69591 upgrade deps 2024-07-29 10:32:42 -04:00
Leibale
b493afac60 Release client@1.6.0 client@1.6.0 2024-07-29 10:29:17 -04:00
Leibale
268ceda625 Release time-series@1.1.0 time-series@1.1.0 2024-07-29 10:27:51 -04:00
Leibale
fff7b006c3 Release search@1.2.0 search@1.2.0 2024-07-29 10:25:26 -04:00
Leibale
18ccc28c2f fix hash expiration tests 2024-07-29 10:11:04 -04:00
Leibale Eidelman
49ef273df2 Update tests.yml 2024-07-29 09:56:39 -04:00
Leibale
3973fa24e1 Release json@1.0.7 json@1.0.7 2024-07-29 09:39:21 -04:00
Shaya Potter
840ec57fb9 small refactor per discussion with leibele (#2801)
* small refactor per discussion with leibele

* move true type to boolean type

* fix geoshape to support NOINDEX & SORTABLE, clean code

* fix for last commit

---------

Co-authored-by: Leibale Eidelman <me@leibale.com>
2024-07-29 09:27:53 -04:00
Marco Reni
179b9e0094 fix: json.mget should be readonly (#2807) (#2808)
* fix: json.mget should be readonly (#2807)

* lint
2024-07-29 09:25:03 -04:00
Shaya Potter
dc3be85db7 add 7.4-rc2 to github action test suite (#2793)
* add 7.4-rc2 to github action test suite

* Update tests.yml

---------

Co-authored-by: Leibale Eidelman <me@leibale.com>
2024-07-29 09:24:02 -04:00
Shaya Potter
54b3e178f9 add addscores to aggregate search command (#2799)
* add addscores to aggregate search command

* change `true` to `boolean`

---------

Co-authored-by: Leibale Eidelman <me@leibale.com>
2024-07-29 09:22:38 -04:00
Shaya Potter
6f79b49f73 updated per discussion w/ leibele (#2804) 2024-07-24 13:15:01 -04:00
Shaya Potter
b884e132fa don't expand/copy rawValues, return it directly. (#2800) 2024-07-23 21:07:32 +03:00
Shaya Potter
d09aaa311d small internal tweak for maxage per discussion w/ leibele (#2803) 2024-07-23 12:59:27 -04:00
Shaya Potter
0e7e2e6e29 add missing fields support to schema (v4) (#2789) 2024-07-17 11:36:45 +03:00
Gabriel Erzse
64fca37944 Support the NOVALUES option of HSCAN (#2711)
* Support the NOVALUES option of HSCAN

Issue #2705

The NOVALUES option instructs HSCAN to only return keys, without their
values. This is materialized as a new command, `hScanNoValues`, given
that the return type is different from the usual return type of `hScan`.
Also a new iterator is provided, `hScanNoValuesIterator`, for the same
reason.

* skip hscan novalues test if redis < 7.4

* Also don't test hscan no values iterator < 7.4

---------

Co-authored-by: Shaya Potter <spotter@gmail.com>
2024-07-14 14:20:30 +03:00
Shaya Potter
5576a0db49 CAE-193: add "IGNORE" options to time series commands (for v4 branch) (#2752) 2024-07-10 19:45:33 +03:00
Shaya Potter
a1bee1caaf add geoshape support (#2788)
copied from what leibele did for v5
2024-07-10 19:45:17 +03:00