@ferricstore/ferricstore 0.11.9 → 0.11.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -9
- package/dist/index.cjs +494 -159
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +483 -148
- package/dist/index.js.map +1 -1
- package/docs/api/classes/HTTPAdapter.html +7 -7
- package/docs/api/classes/KeyValueStore.html +4 -4
- package/docs/api/functions/httpCommandDisposition.html +1 -1
- package/docs/api/index.html +25 -9
- package/docs/api/interfaces/HTTPAdapterOptions.html +19 -15
- package/docs/api/types/HTTPCommandDisposition.html +1 -1
- package/docs/api/variables/FERRICSTORE_SDK_VERSION.html +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -18,8 +18,8 @@ Requires Node.js 22.22 or newer. The SDK ships ESM and CommonJS builds and is te
|
|
|
18
18
|
|
|
19
19
|
## Compatibility
|
|
20
20
|
|
|
21
|
-
TypeScript SDK `0.11.
|
|
22
|
-
FerricStore 0.11.
|
|
21
|
+
TypeScript SDK `0.11.11` requires FerricStore server `0.11.4` or newer. With
|
|
22
|
+
FerricStore 0.11.11 it negotiates compact Stream mode 34 for homogeneous auto-ID
|
|
23
23
|
`XADD` pipelines and compact Pub/Sub mode 35 for homogeneous `PUBLISH`
|
|
24
24
|
pipelines. Native wire protocol v1 and the generic fallback are unchanged.
|
|
25
25
|
Capabilities and response-size limits are negotiated
|
|
@@ -44,7 +44,7 @@ const { FerricStoreClient, JsonCodec } = require("@ferricstore/ferricstore");
|
|
|
44
44
|
docker run -p 6388:6388 \
|
|
45
45
|
-e FERRICSTORE_PROTECTED_MODE=false \
|
|
46
46
|
-v ferricstore_data:/data \
|
|
47
|
-
quay.io/ferricstore/ferricstore:0.11.
|
|
47
|
+
quay.io/ferricstore/ferricstore:0.11.11@sha256:d9f488539f0d6c1a513d2315e7a9c2947cc795b393f3774c9de8ba5e5b5c21b5
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
## Query durable runs
|
|
@@ -114,16 +114,36 @@ await client.ping();
|
|
|
114
114
|
Use `bearerToken` for Bearer authentication. Basic username/password
|
|
115
115
|
authentication requires HTTPS; omitting the username uses `default`. One SDK
|
|
116
116
|
pipeline becomes one ordered HTTP request. `httpOptions` also bounds request
|
|
117
|
-
and response bytes, batch items, HTTP/1.1
|
|
118
|
-
request deadline.
|
|
117
|
+
and response bytes, batch items, HTTP/1.1 sockets or concurrent HTTP/2 streams,
|
|
118
|
+
redirects, and the whole request deadline. HTTP/2 honors the peer's advertised
|
|
119
|
+
stream limit and queues excess work locally within the same deadline.
|
|
119
120
|
|
|
120
121
|
The HTTP endpoint is stateless. `AUTH`, `CLIENT`, transactions, Pub/Sub
|
|
121
|
-
subscriptions,
|
|
122
|
-
fail before network I/O.
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
subscriptions, session state, and cluster/replication session controls require
|
|
123
|
+
native TCP and fail before network I/O. Blocking list, sorted-set, and stream
|
|
124
|
+
reads remain supported as long-lived HTTP requests, including inside an explicit
|
|
125
|
+
ordered pipeline. Their declared server waits are added to the ordinary
|
|
126
|
+
whole-request deadline; a zero block disables the SDK request deadline until the
|
|
127
|
+
request completes or the client closes. Independently submitted blocking calls
|
|
128
|
+
are not auto-coalesced. Redirects intentionally retain authentication and custom
|
|
129
|
+
headers across origins, so configure only endpoints and redirect targets you
|
|
130
|
+
trust. Use `ferric://` or `ferrics://` whenever connection-local behavior is
|
|
125
131
|
required.
|
|
126
132
|
|
|
133
|
+
Run the complete HTTP-compatible integration surface through a real TLS
|
|
134
|
+
listener with ACL authentication using:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
FERRICSTORE_IMAGE=quay.io/ferricstore/ferricstore:0.11.11@sha256:d9f488539f0d6c1a513d2315e7a9c2947cc795b393f3774c9de8ba5e5b5c21b5 \
|
|
138
|
+
npm run test:integration:http
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
The runner creates a private CA, verifies that unauthenticated access and a
|
|
142
|
+
restricted user's forbidden `SET` are rejected, and sets
|
|
143
|
+
`FERRICSTORE_USERNAME`, `FERRICSTORE_PASSWORD`, and `FERRICSTORE_CA_FILE` for
|
|
144
|
+
the tests. Native-only subscriptions, topology, and session controls stay in
|
|
145
|
+
the native integration jobs.
|
|
146
|
+
|
|
127
147
|
## Cluster-aware client
|
|
128
148
|
|
|
129
149
|
For a single node, use `fromUrl`. For a FerricStore cluster, pass multiple seed URLs. The SDK fetches the server `SHARDS` topology, routes keyed commands to the current shard leader, and refuses learned hosts outside the seed-host trust set by default. The creation promise resolves only after startup and authentication succeed; cluster creation also waits for the initial topology, so connection failures reject the corresponding `await` directly.
|