@cratis/chronicle 2.0.0 → 2.1.1
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/ChronicleClient.ts +69 -60
- package/connection/ChronicleConnection.ts +32 -9
- package/connection/ChronicleConnectionString.spec.ts +227 -0
- package/connection/ChronicleConnectionString.ts +290 -40
- package/connection/ChronicleServerAddressResolver.spec.ts +41 -0
- package/connection/ChronicleServerAddressResolver.ts +33 -0
- package/connection/ChronicleSrvResolutionError.ts +13 -0
- package/connection/ChronicleSrvResolver.spec.ts +103 -0
- package/connection/ChronicleSrvResolver.ts +57 -0
- package/connection/ConnectionLifecycle.spec.ts +109 -0
- package/connection/ILoadBalancerStrategy.ts +16 -0
- package/connection/KernelKeepAlive.spec.ts +175 -0
- package/connection/KernelKeepAlive.ts +161 -0
- package/connection/LeastConnectionsLoadBalancerStrategy.spec.ts +159 -0
- package/connection/LeastConnectionsLoadBalancerStrategy.ts +117 -0
- package/connection/LoadBalancerMode.ts +25 -0
- package/connection/LoadBalancerStrategyFactory.ts +28 -0
- package/connection/RandomLoadBalancerStrategy.spec.ts +50 -0
- package/connection/RandomLoadBalancerStrategy.ts +19 -0
- package/connection/RoundRobinLoadBalancerStrategy.spec.ts +61 -0
- package/connection/RoundRobinLoadBalancerStrategy.ts +29 -0
- package/connection/TokenProvider.spec.ts +159 -0
- package/connection/TokenProvider.ts +80 -68
- package/connection/fetchOAuthAccessToken.ts +86 -0
- package/connection/formatServerAddress.ts +16 -0
- package/dist/ChronicleClient.d.ts +8 -1
- package/dist/ChronicleClient.d.ts.map +1 -1
- package/dist/ChronicleClient.js +63 -56
- package/dist/ChronicleClient.js.map +1 -1
- package/dist/connection/ChronicleConnection.d.ts +4 -1
- package/dist/connection/ChronicleConnection.d.ts.map +1 -1
- package/dist/connection/ChronicleConnection.js +29 -9
- package/dist/connection/ChronicleConnection.js.map +1 -1
- package/dist/connection/ChronicleConnectionString.d.ts +77 -3
- package/dist/connection/ChronicleConnectionString.d.ts.map +1 -1
- package/dist/connection/ChronicleConnectionString.js +251 -37
- package/dist/connection/ChronicleConnectionString.js.map +1 -1
- package/dist/connection/ChronicleServerAddressResolver.d.ts +23 -0
- package/dist/connection/ChronicleServerAddressResolver.d.ts.map +1 -0
- package/dist/connection/ChronicleServerAddressResolver.js +32 -0
- package/dist/connection/ChronicleServerAddressResolver.js.map +1 -0
- package/dist/connection/ChronicleSrvResolutionError.d.ts +8 -0
- package/dist/connection/ChronicleSrvResolutionError.d.ts.map +1 -0
- package/dist/connection/ChronicleSrvResolutionError.js +13 -0
- package/dist/connection/ChronicleSrvResolutionError.js.map +1 -0
- package/dist/connection/ChronicleSrvResolver.d.ts +28 -0
- package/dist/connection/ChronicleSrvResolver.d.ts.map +1 -0
- package/dist/connection/ChronicleSrvResolver.js +51 -0
- package/dist/connection/ChronicleSrvResolver.js.map +1 -0
- package/dist/connection/ILoadBalancerStrategy.d.ts +13 -0
- package/dist/connection/ILoadBalancerStrategy.d.ts.map +1 -0
- package/dist/connection/ILoadBalancerStrategy.js +4 -0
- package/dist/connection/ILoadBalancerStrategy.js.map +1 -0
- package/dist/connection/KernelKeepAlive.d.ts +73 -0
- package/dist/connection/KernelKeepAlive.d.ts.map +1 -0
- package/dist/connection/KernelKeepAlive.js +115 -0
- package/dist/connection/KernelKeepAlive.js.map +1 -0
- package/dist/connection/LeastConnectionsLoadBalancerStrategy.d.ts +30 -0
- package/dist/connection/LeastConnectionsLoadBalancerStrategy.d.ts.map +1 -0
- package/dist/connection/LeastConnectionsLoadBalancerStrategy.js +95 -0
- package/dist/connection/LeastConnectionsLoadBalancerStrategy.js.map +1 -0
- package/dist/connection/LoadBalancerMode.d.ts +21 -0
- package/dist/connection/LoadBalancerMode.d.ts.map +1 -0
- package/dist/connection/LoadBalancerMode.js +24 -0
- package/dist/connection/LoadBalancerMode.js.map +1 -0
- package/dist/connection/LoadBalancerStrategyFactory.d.ts +11 -0
- package/dist/connection/LoadBalancerStrategyFactory.d.ts.map +1 -0
- package/dist/connection/LoadBalancerStrategyFactory.js +26 -0
- package/dist/connection/LoadBalancerStrategyFactory.js.map +1 -0
- package/dist/connection/RandomLoadBalancerStrategy.d.ts +9 -0
- package/dist/connection/RandomLoadBalancerStrategy.d.ts.map +1 -0
- package/dist/connection/RandomLoadBalancerStrategy.js +15 -0
- package/dist/connection/RandomLoadBalancerStrategy.js.map +1 -0
- package/dist/connection/RoundRobinLoadBalancerStrategy.d.ts +12 -0
- package/dist/connection/RoundRobinLoadBalancerStrategy.d.ts.map +1 -0
- package/dist/connection/RoundRobinLoadBalancerStrategy.js +22 -0
- package/dist/connection/RoundRobinLoadBalancerStrategy.js.map +1 -0
- package/dist/connection/TokenProvider.d.ts +32 -7
- package/dist/connection/TokenProvider.d.ts.map +1 -1
- package/dist/connection/TokenProvider.js +69 -61
- package/dist/connection/TokenProvider.js.map +1 -1
- package/dist/connection/fetchOAuthAccessToken.d.ts +18 -0
- package/dist/connection/fetchOAuthAccessToken.d.ts.map +1 -0
- package/dist/connection/fetchOAuthAccessToken.js +62 -0
- package/dist/connection/fetchOAuthAccessToken.js.map +1 -0
- package/dist/connection/formatServerAddress.d.ts +10 -0
- package/dist/connection/formatServerAddress.d.ts.map +1 -0
- package/dist/connection/formatServerAddress.js +14 -0
- package/dist/connection/formatServerAddress.js.map +1 -0
- package/dist/reactors/Reactors.d.ts +13 -0
- package/dist/reactors/Reactors.d.ts.map +1 -1
- package/dist/reactors/Reactors.js +42 -4
- package/dist/reactors/Reactors.js.map +1 -1
- package/dist/reducers/Reducers.d.ts +14 -0
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +43 -8
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -5
- package/reactors/Reactors.ts +53 -4
- package/reducers/Reducers.ts +55 -8
- package/vitest.config.ts +12 -0
|
@@ -6,6 +6,9 @@ import { createChannel, createClientFactory, waitForChannelReady } from 'nice-gr
|
|
|
6
6
|
import { Metadata } from 'nice-grpc-common';
|
|
7
7
|
import { EventStoreSubscriptionsDefinition } from '../eventStoreSubscriptions/contracts';
|
|
8
8
|
import { AuthenticationMode, ChronicleConnectionString } from './ChronicleConnectionString';
|
|
9
|
+
import { ChronicleServerAddressResolver } from './ChronicleServerAddressResolver';
|
|
10
|
+
import { formatServerAddress } from './formatServerAddress';
|
|
11
|
+
import { createLoadBalancerStrategy } from './LoadBalancerStrategyFactory';
|
|
9
12
|
import { NoOpTokenProvider, OAuthTokenProvider } from './TokenProvider';
|
|
10
13
|
/**
|
|
11
14
|
* Manages the gRPC connection to Chronicle and exposes the generated service clients.
|
|
@@ -17,7 +20,10 @@ export class ChronicleConnection {
|
|
|
17
20
|
_connections;
|
|
18
21
|
_connectionString;
|
|
19
22
|
_tokenProvider;
|
|
23
|
+
_addressResolver;
|
|
24
|
+
_loadBalancerStrategy;
|
|
20
25
|
_isConnected = false;
|
|
26
|
+
_clientsReady;
|
|
21
27
|
constructor(_options) {
|
|
22
28
|
this._options = _options;
|
|
23
29
|
if (_options.connectionString) {
|
|
@@ -32,7 +38,14 @@ export class ChronicleConnection {
|
|
|
32
38
|
this._connectionString = ChronicleConnectionString.Default;
|
|
33
39
|
}
|
|
34
40
|
this._tokenProvider = this.createTokenProvider();
|
|
35
|
-
this.
|
|
41
|
+
this._addressResolver = new ChronicleServerAddressResolver();
|
|
42
|
+
this._loadBalancerStrategy = createLoadBalancerStrategy(this._connectionString.loadBalancer, this._connectionString.skipTlsValidation);
|
|
43
|
+
this._clientsReady = this.createClients();
|
|
44
|
+
// Building the initial channel is async (address resolution + load balancer
|
|
45
|
+
// selection), so the constructor cannot await it. Real failures still surface to
|
|
46
|
+
// callers that await connect()/resetChannel(); this only prevents an unhandled
|
|
47
|
+
// rejection warning from the fire-and-forget initial build.
|
|
48
|
+
this._clientsReady.catch(() => { });
|
|
36
49
|
}
|
|
37
50
|
get connectionString() {
|
|
38
51
|
return this._connectionString;
|
|
@@ -104,32 +117,34 @@ export class ChronicleConnection {
|
|
|
104
117
|
return this._connections;
|
|
105
118
|
}
|
|
106
119
|
async connect() {
|
|
120
|
+
await this._clientsReady;
|
|
107
121
|
const deadline = new Date(Date.now() + (this._options.connectTimeout ?? 10_000));
|
|
108
122
|
await waitForChannelReady(this._channel, deadline);
|
|
109
123
|
this._isConnected = true;
|
|
110
124
|
}
|
|
111
|
-
resetChannel() {
|
|
125
|
+
async resetChannel() {
|
|
112
126
|
try {
|
|
113
|
-
this._channel
|
|
127
|
+
this._channel?.close();
|
|
114
128
|
}
|
|
115
129
|
catch {
|
|
116
130
|
// Best-effort shutdown before recreating the channel.
|
|
117
131
|
}
|
|
118
132
|
this._isConnected = false;
|
|
119
|
-
this.createClients();
|
|
133
|
+
this._clientsReady = this.createClients();
|
|
134
|
+
await this._clientsReady;
|
|
120
135
|
}
|
|
121
136
|
async reconnect() {
|
|
122
|
-
this.resetChannel();
|
|
137
|
+
await this.resetChannel();
|
|
123
138
|
await this.connect();
|
|
124
139
|
}
|
|
125
140
|
disconnect() {
|
|
126
141
|
this._isConnected = false;
|
|
127
|
-
this._channel
|
|
142
|
+
this._channel?.close();
|
|
128
143
|
}
|
|
129
144
|
dispose() {
|
|
130
145
|
this.disconnect();
|
|
131
146
|
}
|
|
132
|
-
createClients() {
|
|
147
|
+
async createClients() {
|
|
133
148
|
const channelOptions = {};
|
|
134
149
|
if (this._options.maxReceiveMessageSize !== undefined) {
|
|
135
150
|
channelOptions['grpc.max_receive_message_length'] = this._options.maxReceiveMessageSize;
|
|
@@ -137,7 +152,12 @@ export class ChronicleConnection {
|
|
|
137
152
|
if (this._options.maxSendMessageSize !== undefined) {
|
|
138
153
|
channelOptions['grpc.max_send_message_length'] = this._options.maxSendMessageSize;
|
|
139
154
|
}
|
|
140
|
-
|
|
155
|
+
// Re-resolved (DNS SRV, when applicable) and re-selected (load balancer strategy)
|
|
156
|
+
// on every call, so every connect/reconnect attempt picks up membership and load
|
|
157
|
+
// changes rather than pinning to whatever was selected at startup.
|
|
158
|
+
const candidates = await this._addressResolver.resolve(this._connectionString);
|
|
159
|
+
const selected = await this._loadBalancerStrategy.select(candidates);
|
|
160
|
+
const serverAddress = formatServerAddress(selected);
|
|
141
161
|
const credentials = this._options.credentials ?? this._connectionString.createCredentials();
|
|
142
162
|
this._channel = createChannel(serverAddress, credentials, channelOptions);
|
|
143
163
|
const factory = createClientFactory().use(this.createAuthMiddleware());
|
|
@@ -196,7 +216,7 @@ export class ChronicleConnection {
|
|
|
196
216
|
authorityPort = serverPort;
|
|
197
217
|
}
|
|
198
218
|
const scheme = this._connectionString.disableTls ? 'http' : 'https';
|
|
199
|
-
return new OAuthTokenProvider(`${scheme}://${authorityHost}:${authorityPort}/connect/token`, username, password);
|
|
219
|
+
return new OAuthTokenProvider(`${scheme}://${authorityHost}:${authorityPort}/connect/token`, username, password, this._connectionString.skipTlsValidation);
|
|
200
220
|
}
|
|
201
221
|
createAuthMiddleware() {
|
|
202
222
|
const tokenProvider = this._tokenProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChronicleConnection.js","sourceRoot":"","sources":["../../connection/ChronicleConnection.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EACH,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,cAAc,EACd,gCAAgC,EAChC,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"ChronicleConnection.js","sourceRoot":"","sources":["../../connection/ChronicleConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as grpc from '@grpc/grpc-js';
|
|
2
|
+
import { LoadBalancerMode } from './LoadBalancerMode';
|
|
2
3
|
/**
|
|
3
4
|
* Authentication mode for Chronicle connection.
|
|
4
5
|
*/
|
|
@@ -18,19 +19,34 @@ export interface ChronicleServerAddress {
|
|
|
18
19
|
*/
|
|
19
20
|
export declare class ChronicleConnectionStringBuilder {
|
|
20
21
|
private static readonly _defaultPort;
|
|
21
|
-
private static readonly _hostKey;
|
|
22
|
-
private static readonly _portKey;
|
|
23
22
|
private static readonly _usernameKey;
|
|
24
23
|
private static readonly _passwordKey;
|
|
25
24
|
private static readonly _schemeKey;
|
|
26
25
|
private static readonly _apiKeyKey;
|
|
27
26
|
private static readonly _disableTlsKey;
|
|
27
|
+
private static readonly _skipTlsValidationKey;
|
|
28
28
|
private static readonly _certificatePathKey;
|
|
29
29
|
private static readonly _certificatePasswordKey;
|
|
30
|
+
private static readonly _loadBalancerKey;
|
|
31
|
+
private static readonly _srvNameServerKey;
|
|
30
32
|
private readonly _properties;
|
|
33
|
+
private _hosts;
|
|
31
34
|
constructor(connectionString?: string);
|
|
35
|
+
get hosts(): ChronicleServerAddress[];
|
|
36
|
+
set hosts(value: ChronicleServerAddress[]);
|
|
37
|
+
/**
|
|
38
|
+
* Convenience accessor for the first host in {@link hosts}. Setting it collapses the
|
|
39
|
+
* configuration to that single host, discarding any others previously set via
|
|
40
|
+
* {@link hosts} - the same "single server" reset a plain host/port connection string
|
|
41
|
+
* implies.
|
|
42
|
+
*/
|
|
32
43
|
get host(): string;
|
|
33
44
|
set host(value: string);
|
|
45
|
+
/**
|
|
46
|
+
* Convenience accessor for the first host's port in {@link hosts}. Setting it collapses
|
|
47
|
+
* the configuration to that single host, discarding any others previously set via
|
|
48
|
+
* {@link hosts}.
|
|
49
|
+
*/
|
|
34
50
|
get port(): number;
|
|
35
51
|
set port(value: number);
|
|
36
52
|
get username(): string | undefined;
|
|
@@ -39,15 +55,42 @@ export declare class ChronicleConnectionStringBuilder {
|
|
|
39
55
|
set password(value: string | undefined);
|
|
40
56
|
get scheme(): string;
|
|
41
57
|
set scheme(value: string);
|
|
58
|
+
/**
|
|
59
|
+
* Whether the connection string uses the DNS SRV lookup scheme (`chronicle+srv://`).
|
|
60
|
+
* Compared case-insensitively, matching {@link scheme}'s own parsing.
|
|
61
|
+
*/
|
|
62
|
+
get isSrv(): boolean;
|
|
42
63
|
get authenticationMode(): AuthenticationMode;
|
|
43
64
|
get apiKey(): string | undefined;
|
|
44
65
|
set apiKey(value: string | undefined);
|
|
45
66
|
get disableTls(): boolean;
|
|
46
67
|
set disableTls(value: boolean);
|
|
68
|
+
/**
|
|
69
|
+
* Whether TLS certificate validation is skipped for the gRPC channel and OAuth token
|
|
70
|
+
* requests. Distinct from {@link disableTls}, which controls whether TLS is used at
|
|
71
|
+
* all. Defaults to `true` - set to `false` to require full certificate validation
|
|
72
|
+
* whenever TLS is on.
|
|
73
|
+
*/
|
|
74
|
+
get skipTlsValidation(): boolean;
|
|
75
|
+
set skipTlsValidation(value: boolean);
|
|
47
76
|
get certificatePath(): string | undefined;
|
|
48
77
|
set certificatePath(value: string | undefined);
|
|
49
78
|
get certificatePassword(): string | undefined;
|
|
50
79
|
set certificatePassword(value: string | undefined);
|
|
80
|
+
/**
|
|
81
|
+
* The strategy used to select one address from {@link hosts} (or the addresses
|
|
82
|
+
* resolved from a `chronicle+srv://` host) on every connect/reconnect attempt.
|
|
83
|
+
* Defaults to {@link LoadBalancerMode.LeastConnections}.
|
|
84
|
+
*/
|
|
85
|
+
get loadBalancer(): LoadBalancerMode;
|
|
86
|
+
set loadBalancer(value: LoadBalancerMode);
|
|
87
|
+
/**
|
|
88
|
+
* The `host[:port]` DNS name server used to resolve `chronicle+srv://` SRV records.
|
|
89
|
+
* Defaults to port 53 when no port is given. Undefined uses the system default
|
|
90
|
+
* resolver.
|
|
91
|
+
*/
|
|
92
|
+
get srvNameServer(): string | undefined;
|
|
93
|
+
set srvNameServer(value: string | undefined);
|
|
51
94
|
build(): string;
|
|
52
95
|
private parseConnectionString;
|
|
53
96
|
private parseUrl;
|
|
@@ -61,16 +104,47 @@ export declare class ChronicleConnectionString {
|
|
|
61
104
|
static readonly Default: ChronicleConnectionString;
|
|
62
105
|
static readonly Development: ChronicleConnectionString;
|
|
63
106
|
private readonly _builder;
|
|
64
|
-
private readonly
|
|
107
|
+
private readonly _serverAddresses;
|
|
65
108
|
constructor(connectionString: string);
|
|
109
|
+
/**
|
|
110
|
+
* The connection string's scheme, either `chronicle` or `chronicle+srv`.
|
|
111
|
+
*/
|
|
112
|
+
get scheme(): string;
|
|
113
|
+
/**
|
|
114
|
+
* Whether the connection string uses the DNS SRV lookup scheme (`chronicle+srv://`).
|
|
115
|
+
*/
|
|
116
|
+
get isSrv(): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Convenience accessor for the first entry in {@link serverAddresses}, for callers
|
|
119
|
+
* that only ever expect a single server address.
|
|
120
|
+
*/
|
|
66
121
|
get serverAddress(): ChronicleServerAddress;
|
|
122
|
+
/**
|
|
123
|
+
* All server addresses parsed from a multi-host `chronicle://` connection string.
|
|
124
|
+
* For `chronicle+srv://` connection strings, this holds the single SRV lookup host,
|
|
125
|
+
* not the resolved addresses - resolve those via {@link ChronicleServerAddressResolver}.
|
|
126
|
+
*/
|
|
127
|
+
get serverAddresses(): ChronicleServerAddress[];
|
|
67
128
|
get username(): string | undefined;
|
|
68
129
|
get password(): string | undefined;
|
|
69
130
|
get authenticationMode(): AuthenticationMode;
|
|
70
131
|
get apiKey(): string | undefined;
|
|
71
132
|
get disableTls(): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Whether TLS certificate validation is skipped. See
|
|
135
|
+
* {@link ChronicleConnectionStringBuilder.skipTlsValidation}.
|
|
136
|
+
*/
|
|
137
|
+
get skipTlsValidation(): boolean;
|
|
72
138
|
get certificatePath(): string | undefined;
|
|
73
139
|
get certificatePassword(): string | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* The strategy used to select one server address on every connect/reconnect attempt.
|
|
142
|
+
*/
|
|
143
|
+
get loadBalancer(): LoadBalancerMode;
|
|
144
|
+
/**
|
|
145
|
+
* The `host[:port]` DNS name server used to resolve `chronicle+srv://` SRV records.
|
|
146
|
+
*/
|
|
147
|
+
get srvNameServer(): string | undefined;
|
|
74
148
|
withCredentials(username: string, password: string): ChronicleConnectionString;
|
|
75
149
|
withApiKey(apiKey: string): ChronicleConnectionString;
|
|
76
150
|
createCredentials(): grpc.ChannelCredentials;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChronicleConnectionString.d.ts","sourceRoot":"","sources":["../../connection/ChronicleConnectionString.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAEtC;;GAEG;AACH,oBAAY,kBAAkB;IAC1B,iBAAiB,sBAAsB;IACvC,MAAM,WAAW;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"ChronicleConnectionString.d.ts","sourceRoot":"","sources":["../../connection/ChronicleConnectionString.ts"],"names":[],"mappings":"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"}
|