@cratis/chronicle.contracts 15.25.0 → 15.25.2

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.
@@ -2,7 +2,9 @@
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
 
4
4
  import * as grpc from '@grpc/grpc-js';
5
- import { createClient } from 'nice-grpc';
5
+ import { createClient, createClientFactory } from 'nice-grpc';
6
+ import type { ClientMiddleware } from 'nice-grpc-common';
7
+ import { Metadata } from 'nice-grpc-common';
6
8
 
7
9
  // Import service definitions from generated files
8
10
  import { EventStoresDefinition, NamespacesDefinition } from './generated/cratis_chronicle_contracts';
@@ -293,23 +295,32 @@ export class ChronicleConnection implements ChronicleServices {
293
295
  }
294
296
 
295
297
  private createServices(): ChronicleServices {
298
+ console.log('[Chronicle] Creating services with middleware');
299
+ // Create a client factory and attach auth middleware for all calls
300
+ let factory = createClientFactory();
301
+
302
+ console.log('[Chronicle] Attaching auth middleware');
303
+ // Attach authentication middleware that works for both TLS and insecure channels
304
+ factory = factory.use(this.createAuthMiddleware());
305
+ console.log('[Chronicle] Middleware attached, creating service clients');
306
+
296
307
  return {
297
- eventStores: createClient(EventStoresDefinition, this.channel),
298
- namespaces: createClient(NamespacesDefinition, this.channel),
299
- recommendations: createClient(RecommendationsDefinition, this.channel),
300
- identities: createClient(IdentitiesDefinition, this.channel),
301
- eventSequences: createClient(EventSequencesDefinition, this.channel),
302
- eventTypes: createClient(EventTypesDefinition, this.channel),
303
- constraints: createClient(ConstraintsDefinition, this.channel),
304
- observers: createClient(ObserversDefinition, this.channel),
305
- failedPartitions: createClient(FailedPartitionsDefinition, this.channel),
306
- reactors: createClient(ReactorsDefinition, this.channel),
307
- reducers: createClient(ReducersDefinition, this.channel),
308
- projections: createClient(ProjectionsDefinition, this.channel),
309
- readModels: createClient(ReadModelsDefinition, this.channel),
310
- jobs: createClient(JobsDefinition, this.channel),
311
- eventSeeding: createClient(EventSeedingDefinition, this.channel),
312
- server: createClient(ServerDefinition, this.channel),
308
+ eventStores: factory.create(EventStoresDefinition, this.channel),
309
+ namespaces: factory.create(NamespacesDefinition, this.channel),
310
+ recommendations: factory.create(RecommendationsDefinition, this.channel),
311
+ identities: factory.create(IdentitiesDefinition, this.channel),
312
+ eventSequences: factory.create(EventSequencesDefinition, this.channel),
313
+ eventTypes: factory.create(EventTypesDefinition, this.channel),
314
+ constraints: factory.create(ConstraintsDefinition, this.channel),
315
+ observers: factory.create(ObserversDefinition, this.channel),
316
+ failedPartitions: factory.create(FailedPartitionsDefinition, this.channel),
317
+ reactors: factory.create(ReactorsDefinition, this.channel),
318
+ reducers: factory.create(ReducersDefinition, this.channel),
319
+ projections: factory.create(ProjectionsDefinition, this.channel),
320
+ readModels: factory.create(ReadModelsDefinition, this.channel),
321
+ jobs: factory.create(JobsDefinition, this.channel),
322
+ eventSeeding: factory.create(EventSeedingDefinition, this.channel),
323
+ server: factory.create(ServerDefinition, this.channel),
313
324
  };
314
325
  }
315
326
 
@@ -317,45 +328,58 @@ export class ChronicleConnection implements ChronicleServices {
317
328
  * Creates a token provider based on connection configuration
318
329
  */
319
330
  private createTokenProvider(options: ChronicleConnectionOptions): ITokenProvider {
320
- try {
321
- const authMode = this._connectionString.authenticationMode;
331
+ const hasUsername = !!this._connectionString.username;
332
+ const hasPassword = !!this._connectionString.password;
333
+ const hasApiKey = !!this._connectionString.apiKey;
322
334
 
323
- if (authMode === AuthenticationMode.ClientCredentials) {
324
- const username = this._connectionString.username;
325
- const password = this._connectionString.password;
335
+ if (hasApiKey) {
336
+ // API key authentication is handled directly through call metadata.
337
+ return new NoOpTokenProvider();
338
+ }
326
339
 
327
- if (!username || !password) {
328
- return new NoOpTokenProvider();
329
- }
340
+ if (hasUsername !== hasPassword) {
341
+ // Incomplete client credentials cannot produce a valid OAuth token.
342
+ return new NoOpTokenProvider();
343
+ }
330
344
 
331
- // Determine the authority URL
332
- const managementPort = options.managementPort || 8080;
333
- let authorityHost: string;
334
- let authorityPort: number;
345
+ if (hasUsername && hasPassword) {
346
+ return this.createOAuthTokenProvider(
347
+ options,
348
+ this._connectionString.username!,
349
+ this._connectionString.password!
350
+ );
351
+ }
335
352
 
336
- if (options.authority) {
337
- // Parse custom authority URL
338
- const authorityUrl = new URL(options.authority);
339
- authorityHost = authorityUrl.hostname;
340
- authorityPort = authorityUrl.port ? parseInt(authorityUrl.port, 10) : managementPort;
341
- } else {
342
- // Use Chronicle server as authority
343
- authorityHost = this._connectionString.serverAddress.host;
344
- authorityPort = managementPort;
345
- }
353
+ // Development support: no app credentials provided, so use default dev credentials.
354
+ return this.createOAuthTokenProvider(
355
+ options,
356
+ ChronicleConnectionString.DEVELOPMENT_CLIENT,
357
+ ChronicleConnectionString.DEVELOPMENT_CLIENT_SECRET
358
+ );
359
+ }
346
360
 
347
- const scheme = this._connectionString.disableTls ? 'http' : 'https';
348
- const tokenEndpoint = `${scheme}://${authorityHost}:${authorityPort}/connect/token`;
361
+ private createOAuthTokenProvider(
362
+ options: ChronicleConnectionOptions,
363
+ username: string,
364
+ password: string
365
+ ): ITokenProvider {
366
+ const managementPort = options.managementPort || 8080;
367
+ let authorityHost: string;
368
+ let authorityPort: number;
369
+
370
+ if (options.authority) {
371
+ const authorityUrl = new URL(options.authority);
372
+ authorityHost = authorityUrl.hostname;
373
+ authorityPort = authorityUrl.port ? parseInt(authorityUrl.port, 10) : managementPort;
374
+ } else {
375
+ authorityHost = this._connectionString.serverAddress.host;
376
+ authorityPort = managementPort;
377
+ }
349
378
 
350
- return new OAuthTokenProvider(tokenEndpoint, username, password);
351
- }
379
+ const scheme = this._connectionString.disableTls ? 'http' : 'https';
380
+ const tokenEndpoint = `${scheme}://${authorityHost}:${authorityPort}/connect/token`;
352
381
 
353
- // For API key or other modes, no token provider needed (handled by connection string)
354
- return new NoOpTokenProvider();
355
- } catch {
356
- // If authentication mode check fails (no auth configured), use no-op provider
357
- return new NoOpTokenProvider();
358
- }
382
+ return new OAuthTokenProvider(tokenEndpoint, username, password);
359
383
  }
360
384
 
361
385
  /**
@@ -399,6 +423,60 @@ export class ChronicleConnection implements ChronicleServices {
399
423
  return this._isConnected;
400
424
  }
401
425
 
426
+ /**
427
+ * Creates a middleware that injects authentication headers for all calls.
428
+ * This works for both TLS and insecure channels, similar to gRPC interceptors in C#.
429
+ */
430
+ private createAuthMiddleware(): ClientMiddleware {
431
+ const tokenProvider = this.tokenProvider;
432
+ const connectionString = this._connectionString;
433
+
434
+ return async function* authMiddleware(call, options) {
435
+ try {
436
+ const token = await tokenProvider.getAccessToken();
437
+
438
+ if (token) {
439
+ // Create metadata object with the Bearer token
440
+ // The Metadata factory function from nice-grpc-common accepts an object
441
+ const authMetadata = Metadata({ authorization: `Bearer ${token}` });
442
+
443
+ // Merge with existing metadata if present
444
+ if (options.metadata) {
445
+ const mergedMetadata = Metadata(options.metadata);
446
+ mergedMetadata.set('authorization', `Bearer ${token}`);
447
+ options.metadata = mergedMetadata;
448
+ } else {
449
+ options.metadata = authMetadata;
450
+ }
451
+ } else {
452
+ // Fallback to API key if no token
453
+ try {
454
+ const authMode = connectionString.authenticationMode;
455
+ if (authMode === AuthenticationMode.ApiKey && connectionString.apiKey) {
456
+ const apiKeyMetadata = Metadata({ 'api-key': connectionString.apiKey });
457
+
458
+ if (options.metadata) {
459
+ const mergedMetadata = Metadata(options.metadata);
460
+ mergedMetadata.set('api-key', connectionString.apiKey);
461
+ options.metadata = mergedMetadata;
462
+ } else {
463
+ options.metadata = apiKeyMetadata;
464
+ }
465
+ }
466
+ } catch {
467
+ // No API key configured, continue without additional auth
468
+ }
469
+ }
470
+ } catch (error) {
471
+ // If token retrieval fails, continue without additional auth headers
472
+ // This allows the connection to proceed with channel-level credentials if available
473
+ }
474
+
475
+ // Pass through to next middleware/handler, properly returning the response
476
+ return yield* call.next(call.request, options);
477
+ };
478
+ }
479
+
402
480
  /**
403
481
  * Connects to the Chronicle Kernel
404
482
  * @returns Promise that resolves when connected
@@ -40,8 +40,10 @@ export declare class ChronicleConnection implements ChronicleServices {
40
40
  constructor(options: ChronicleConnectionOptions);
41
41
  private createServices;
42
42
  private createTokenProvider;
43
+ private createOAuthTokenProvider;
43
44
  private createAuthCallCredentials;
44
45
  get isConnected(): boolean;
46
+ private createAuthMiddleware;
45
47
  connect(): Promise<void>;
46
48
  disconnect(): void;
47
49
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ChronicleConnection.d.ts","sourceRoot":"","sources":["../ChronicleConnection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAqBtC,OAAO,KAAK,EACR,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,YAAY,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAsB,MAAM,6BAA6B,CAAC;AAM5F,MAAM,WAAW,0BAA0B;IAKvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAMtD,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAKtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAK/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAK5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD,qBAAa,mBAAoB,YAAW,iBAAiB;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,YAAY,CAAS;IAK7B,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,eAAe,IAAI,qBAAqB,CAE3C;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,cAAc,IAAI,oBAAoB,CAEzC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,SAAS,IAAI,eAAe,CAE/B;IAKD,IAAI,gBAAgB,IAAI,sBAAsB,CAE7C;IAKD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAKD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAKD,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,IAAI,IAAI,UAAU,CAErB;IAKD,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAKD,IAAI,MAAM,IAAI,YAAY,CAEzB;IAKD,OAAO,CAAC,iBAAiB,CAA0B;IAKnD,IAAI,gBAAgB,IAAI,yBAAyB,CAEhD;gBAMW,OAAO,EAAE,0BAA0B;IAwD/C,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,mBAAmB;IA6C3B,OAAO,CAAC,yBAAyB;IAkCjC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAMK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B,UAAU,IAAI,IAAI;IAQlB,OAAO,IAAI,IAAI;CAGlB"}
1
+ {"version":3,"file":"ChronicleConnection.d.ts","sourceRoot":"","sources":["../ChronicleConnection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAuBtC,OAAO,KAAK,EACR,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,YAAY,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAsB,MAAM,6BAA6B,CAAC;AAM5F,MAAM,WAAW,0BAA0B;IAKvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAMtD,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAKtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAK/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAK5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD,qBAAa,mBAAoB,YAAW,iBAAiB;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,YAAY,CAAS;IAK7B,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,eAAe,IAAI,qBAAqB,CAE3C;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,cAAc,IAAI,oBAAoB,CAEzC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,SAAS,IAAI,eAAe,CAE/B;IAKD,IAAI,gBAAgB,IAAI,sBAAsB,CAE7C;IAKD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAKD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAKD,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,IAAI,IAAI,UAAU,CAErB;IAKD,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAKD,IAAI,MAAM,IAAI,YAAY,CAEzB;IAKD,OAAO,CAAC,iBAAiB,CAA0B;IAKnD,IAAI,gBAAgB,IAAI,yBAAyB,CAEhD;gBAMW,OAAO,EAAE,0BAA0B;IAwD/C,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,yBAAyB;IAkCjC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAMD,OAAO,CAAC,oBAAoB;IAsDtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B,UAAU,IAAI,IAAI;IAQlB,OAAO,IAAI,IAAI;CAGlB"}
@@ -1,5 +1,6 @@
1
1
  import * as grpc from '@grpc/grpc-js';
2
- import { createClient } from 'nice-grpc';
2
+ import { createClient, createClientFactory } from 'nice-grpc';
3
+ import { Metadata } from 'nice-grpc-common';
3
4
  import { EventStoresDefinition, NamespacesDefinition } from './generated/cratis_chronicle_contracts';
4
5
  import { RecommendationsDefinition } from './generated/recommendations';
5
6
  import { IdentitiesDefinition } from './generated/identities';
@@ -112,55 +113,61 @@ export class ChronicleConnection {
112
113
  this.services = this.createServices();
113
114
  }
114
115
  createServices() {
116
+ console.log('[Chronicle] Creating services with middleware');
117
+ let factory = createClientFactory();
118
+ console.log('[Chronicle] Attaching auth middleware');
119
+ factory = factory.use(this.createAuthMiddleware());
120
+ console.log('[Chronicle] Middleware attached, creating service clients');
115
121
  return {
116
- eventStores: createClient(EventStoresDefinition, this.channel),
117
- namespaces: createClient(NamespacesDefinition, this.channel),
118
- recommendations: createClient(RecommendationsDefinition, this.channel),
119
- identities: createClient(IdentitiesDefinition, this.channel),
120
- eventSequences: createClient(EventSequencesDefinition, this.channel),
121
- eventTypes: createClient(EventTypesDefinition, this.channel),
122
- constraints: createClient(ConstraintsDefinition, this.channel),
123
- observers: createClient(ObserversDefinition, this.channel),
124
- failedPartitions: createClient(FailedPartitionsDefinition, this.channel),
125
- reactors: createClient(ReactorsDefinition, this.channel),
126
- reducers: createClient(ReducersDefinition, this.channel),
127
- projections: createClient(ProjectionsDefinition, this.channel),
128
- readModels: createClient(ReadModelsDefinition, this.channel),
129
- jobs: createClient(JobsDefinition, this.channel),
130
- eventSeeding: createClient(EventSeedingDefinition, this.channel),
131
- server: createClient(ServerDefinition, this.channel),
122
+ eventStores: factory.create(EventStoresDefinition, this.channel),
123
+ namespaces: factory.create(NamespacesDefinition, this.channel),
124
+ recommendations: factory.create(RecommendationsDefinition, this.channel),
125
+ identities: factory.create(IdentitiesDefinition, this.channel),
126
+ eventSequences: factory.create(EventSequencesDefinition, this.channel),
127
+ eventTypes: factory.create(EventTypesDefinition, this.channel),
128
+ constraints: factory.create(ConstraintsDefinition, this.channel),
129
+ observers: factory.create(ObserversDefinition, this.channel),
130
+ failedPartitions: factory.create(FailedPartitionsDefinition, this.channel),
131
+ reactors: factory.create(ReactorsDefinition, this.channel),
132
+ reducers: factory.create(ReducersDefinition, this.channel),
133
+ projections: factory.create(ProjectionsDefinition, this.channel),
134
+ readModels: factory.create(ReadModelsDefinition, this.channel),
135
+ jobs: factory.create(JobsDefinition, this.channel),
136
+ eventSeeding: factory.create(EventSeedingDefinition, this.channel),
137
+ server: factory.create(ServerDefinition, this.channel),
132
138
  };
133
139
  }
134
140
  createTokenProvider(options) {
135
- try {
136
- const authMode = this._connectionString.authenticationMode;
137
- if (authMode === AuthenticationMode.ClientCredentials) {
138
- const username = this._connectionString.username;
139
- const password = this._connectionString.password;
140
- if (!username || !password) {
141
- return new NoOpTokenProvider();
142
- }
143
- const managementPort = options.managementPort || 8080;
144
- let authorityHost;
145
- let authorityPort;
146
- if (options.authority) {
147
- const authorityUrl = new URL(options.authority);
148
- authorityHost = authorityUrl.hostname;
149
- authorityPort = authorityUrl.port ? parseInt(authorityUrl.port, 10) : managementPort;
150
- }
151
- else {
152
- authorityHost = this._connectionString.serverAddress.host;
153
- authorityPort = managementPort;
154
- }
155
- const scheme = this._connectionString.disableTls ? 'http' : 'https';
156
- const tokenEndpoint = `${scheme}://${authorityHost}:${authorityPort}/connect/token`;
157
- return new OAuthTokenProvider(tokenEndpoint, username, password);
158
- }
141
+ const hasUsername = !!this._connectionString.username;
142
+ const hasPassword = !!this._connectionString.password;
143
+ const hasApiKey = !!this._connectionString.apiKey;
144
+ if (hasApiKey) {
159
145
  return new NoOpTokenProvider();
160
146
  }
161
- catch {
147
+ if (hasUsername !== hasPassword) {
162
148
  return new NoOpTokenProvider();
163
149
  }
150
+ if (hasUsername && hasPassword) {
151
+ return this.createOAuthTokenProvider(options, this._connectionString.username, this._connectionString.password);
152
+ }
153
+ return this.createOAuthTokenProvider(options, ChronicleConnectionString.DEVELOPMENT_CLIENT, ChronicleConnectionString.DEVELOPMENT_CLIENT_SECRET);
154
+ }
155
+ createOAuthTokenProvider(options, username, password) {
156
+ const managementPort = options.managementPort || 8080;
157
+ let authorityHost;
158
+ let authorityPort;
159
+ if (options.authority) {
160
+ const authorityUrl = new URL(options.authority);
161
+ authorityHost = authorityUrl.hostname;
162
+ authorityPort = authorityUrl.port ? parseInt(authorityUrl.port, 10) : managementPort;
163
+ }
164
+ else {
165
+ authorityHost = this._connectionString.serverAddress.host;
166
+ authorityPort = managementPort;
167
+ }
168
+ const scheme = this._connectionString.disableTls ? 'http' : 'https';
169
+ const tokenEndpoint = `${scheme}://${authorityHost}:${authorityPort}/connect/token`;
170
+ return new OAuthTokenProvider(tokenEndpoint, username, password);
164
171
  }
165
172
  createAuthCallCredentials() {
166
173
  if (this._connectionString.disableTls) {
@@ -193,6 +200,47 @@ export class ChronicleConnection {
193
200
  get isConnected() {
194
201
  return this._isConnected;
195
202
  }
203
+ createAuthMiddleware() {
204
+ const tokenProvider = this.tokenProvider;
205
+ const connectionString = this._connectionString;
206
+ return async function* authMiddleware(call, options) {
207
+ try {
208
+ const token = await tokenProvider.getAccessToken();
209
+ if (token) {
210
+ const authMetadata = Metadata({ authorization: `Bearer ${token}` });
211
+ if (options.metadata) {
212
+ const mergedMetadata = Metadata(options.metadata);
213
+ mergedMetadata.set('authorization', `Bearer ${token}`);
214
+ options.metadata = mergedMetadata;
215
+ }
216
+ else {
217
+ options.metadata = authMetadata;
218
+ }
219
+ }
220
+ else {
221
+ try {
222
+ const authMode = connectionString.authenticationMode;
223
+ if (authMode === AuthenticationMode.ApiKey && connectionString.apiKey) {
224
+ const apiKeyMetadata = Metadata({ 'api-key': connectionString.apiKey });
225
+ if (options.metadata) {
226
+ const mergedMetadata = Metadata(options.metadata);
227
+ mergedMetadata.set('api-key', connectionString.apiKey);
228
+ options.metadata = mergedMetadata;
229
+ }
230
+ else {
231
+ options.metadata = apiKeyMetadata;
232
+ }
233
+ }
234
+ }
235
+ catch {
236
+ }
237
+ }
238
+ }
239
+ catch (error) {
240
+ }
241
+ return yield* call.next(call.request, options);
242
+ };
243
+ }
196
244
  async connect() {
197
245
  if (this._isConnected) {
198
246
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ChronicleConnection.js","sourceRoot":"","sources":["../ChronicleConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChronicleConnection.js","sourceRoot":"","sources":["../ChronicleConnection.ts"],"names":[],"mappings":"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"}
@@ -40,8 +40,10 @@ export declare class ChronicleConnection implements ChronicleServices {
40
40
  constructor(options: ChronicleConnectionOptions);
41
41
  private createServices;
42
42
  private createTokenProvider;
43
+ private createOAuthTokenProvider;
43
44
  private createAuthCallCredentials;
44
45
  get isConnected(): boolean;
46
+ private createAuthMiddleware;
45
47
  connect(): Promise<void>;
46
48
  disconnect(): void;
47
49
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ChronicleConnection.d.ts","sourceRoot":"","sources":["../../ChronicleConnection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAqBtC,OAAO,KAAK,EACR,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,YAAY,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAsB,MAAM,6BAA6B,CAAC;AAM5F,MAAM,WAAW,0BAA0B;IAKvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAMtD,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAKtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAK/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAK5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD,qBAAa,mBAAoB,YAAW,iBAAiB;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,YAAY,CAAS;IAK7B,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,eAAe,IAAI,qBAAqB,CAE3C;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,cAAc,IAAI,oBAAoB,CAEzC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,SAAS,IAAI,eAAe,CAE/B;IAKD,IAAI,gBAAgB,IAAI,sBAAsB,CAE7C;IAKD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAKD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAKD,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,IAAI,IAAI,UAAU,CAErB;IAKD,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAKD,IAAI,MAAM,IAAI,YAAY,CAEzB;IAKD,OAAO,CAAC,iBAAiB,CAA0B;IAKnD,IAAI,gBAAgB,IAAI,yBAAyB,CAEhD;gBAMW,OAAO,EAAE,0BAA0B;IAwD/C,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,mBAAmB;IA6C3B,OAAO,CAAC,yBAAyB;IAkCjC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAMK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B,UAAU,IAAI,IAAI;IAQlB,OAAO,IAAI,IAAI;CAGlB"}
1
+ {"version":3,"file":"ChronicleConnection.d.ts","sourceRoot":"","sources":["../../ChronicleConnection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAuBtC,OAAO,KAAK,EACR,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,YAAY,EAEf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAsB,MAAM,6BAA6B,CAAC;AAM5F,MAAM,WAAW,0BAA0B;IAKvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC;IAMtD,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAKtC,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAK/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAK5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD,qBAAa,mBAAoB,YAAW,iBAAiB;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,YAAY,CAAS;IAK7B,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,eAAe,IAAI,qBAAqB,CAE3C;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,cAAc,IAAI,oBAAoB,CAEzC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,SAAS,IAAI,eAAe,CAE/B;IAKD,IAAI,gBAAgB,IAAI,sBAAsB,CAE7C;IAKD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAKD,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAKD,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAKD,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAKD,IAAI,IAAI,IAAI,UAAU,CAErB;IAKD,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAKD,IAAI,MAAM,IAAI,YAAY,CAEzB;IAKD,OAAO,CAAC,iBAAiB,CAA0B;IAKnD,IAAI,gBAAgB,IAAI,yBAAyB,CAEhD;gBAMW,OAAO,EAAE,0BAA0B;IAwD/C,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,yBAAyB;IAkCjC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAMD,OAAO,CAAC,oBAAoB;IAsDtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B,UAAU,IAAI,IAAI;IAQlB,OAAO,IAAI,IAAI;CAGlB"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var grpc = require('@grpc/grpc-js');
4
4
  var niceGrpc = require('nice-grpc');
5
+ var niceGrpcCommon = require('nice-grpc-common');
5
6
  var cratis_chronicle_contracts = require('./generated/cratis_chronicle_contracts.js');
6
7
  var recommendations = require('./generated/recommendations.js');
7
8
  var identities = require('./generated/identities.js');
@@ -134,55 +135,61 @@ class ChronicleConnection {
134
135
  this.services = this.createServices();
135
136
  }
136
137
  createServices() {
138
+ console.log('[Chronicle] Creating services with middleware');
139
+ let factory = niceGrpc.createClientFactory();
140
+ console.log('[Chronicle] Attaching auth middleware');
141
+ factory = factory.use(this.createAuthMiddleware());
142
+ console.log('[Chronicle] Middleware attached, creating service clients');
137
143
  return {
138
- eventStores: niceGrpc.createClient(cratis_chronicle_contracts.EventStoresDefinition, this.channel),
139
- namespaces: niceGrpc.createClient(cratis_chronicle_contracts.NamespacesDefinition, this.channel),
140
- recommendations: niceGrpc.createClient(recommendations.RecommendationsDefinition, this.channel),
141
- identities: niceGrpc.createClient(identities.IdentitiesDefinition, this.channel),
142
- eventSequences: niceGrpc.createClient(eventsequences.EventSequencesDefinition, this.channel),
143
- eventTypes: niceGrpc.createClient(events.EventTypesDefinition, this.channel),
144
- constraints: niceGrpc.createClient(events_constraints.ConstraintsDefinition, this.channel),
145
- observers: niceGrpc.createClient(observation.ObserversDefinition, this.channel),
146
- failedPartitions: niceGrpc.createClient(observation.FailedPartitionsDefinition, this.channel),
147
- reactors: niceGrpc.createClient(observation_reactors.ReactorsDefinition, this.channel),
148
- reducers: niceGrpc.createClient(observation_reducers.ReducersDefinition, this.channel),
149
- projections: niceGrpc.createClient(projections.ProjectionsDefinition, this.channel),
150
- readModels: niceGrpc.createClient(readmodels.ReadModelsDefinition, this.channel),
151
- jobs: niceGrpc.createClient(jobs.JobsDefinition, this.channel),
152
- eventSeeding: niceGrpc.createClient(seeding.EventSeedingDefinition, this.channel),
153
- server: niceGrpc.createClient(host.ServerDefinition, this.channel),
144
+ eventStores: factory.create(cratis_chronicle_contracts.EventStoresDefinition, this.channel),
145
+ namespaces: factory.create(cratis_chronicle_contracts.NamespacesDefinition, this.channel),
146
+ recommendations: factory.create(recommendations.RecommendationsDefinition, this.channel),
147
+ identities: factory.create(identities.IdentitiesDefinition, this.channel),
148
+ eventSequences: factory.create(eventsequences.EventSequencesDefinition, this.channel),
149
+ eventTypes: factory.create(events.EventTypesDefinition, this.channel),
150
+ constraints: factory.create(events_constraints.ConstraintsDefinition, this.channel),
151
+ observers: factory.create(observation.ObserversDefinition, this.channel),
152
+ failedPartitions: factory.create(observation.FailedPartitionsDefinition, this.channel),
153
+ reactors: factory.create(observation_reactors.ReactorsDefinition, this.channel),
154
+ reducers: factory.create(observation_reducers.ReducersDefinition, this.channel),
155
+ projections: factory.create(projections.ProjectionsDefinition, this.channel),
156
+ readModels: factory.create(readmodels.ReadModelsDefinition, this.channel),
157
+ jobs: factory.create(jobs.JobsDefinition, this.channel),
158
+ eventSeeding: factory.create(seeding.EventSeedingDefinition, this.channel),
159
+ server: factory.create(host.ServerDefinition, this.channel),
154
160
  };
155
161
  }
156
162
  createTokenProvider(options) {
157
- try {
158
- const authMode = this._connectionString.authenticationMode;
159
- if (authMode === ChronicleConnectionString.AuthenticationMode.ClientCredentials) {
160
- const username = this._connectionString.username;
161
- const password = this._connectionString.password;
162
- if (!username || !password) {
163
- return new TokenProvider.NoOpTokenProvider();
164
- }
165
- const managementPort = options.managementPort || 8080;
166
- let authorityHost;
167
- let authorityPort;
168
- if (options.authority) {
169
- const authorityUrl = new URL(options.authority);
170
- authorityHost = authorityUrl.hostname;
171
- authorityPort = authorityUrl.port ? parseInt(authorityUrl.port, 10) : managementPort;
172
- }
173
- else {
174
- authorityHost = this._connectionString.serverAddress.host;
175
- authorityPort = managementPort;
176
- }
177
- const scheme = this._connectionString.disableTls ? 'http' : 'https';
178
- const tokenEndpoint = `${scheme}://${authorityHost}:${authorityPort}/connect/token`;
179
- return new TokenProvider.OAuthTokenProvider(tokenEndpoint, username, password);
180
- }
163
+ const hasUsername = !!this._connectionString.username;
164
+ const hasPassword = !!this._connectionString.password;
165
+ const hasApiKey = !!this._connectionString.apiKey;
166
+ if (hasApiKey) {
181
167
  return new TokenProvider.NoOpTokenProvider();
182
168
  }
183
- catch {
169
+ if (hasUsername !== hasPassword) {
184
170
  return new TokenProvider.NoOpTokenProvider();
185
171
  }
172
+ if (hasUsername && hasPassword) {
173
+ return this.createOAuthTokenProvider(options, this._connectionString.username, this._connectionString.password);
174
+ }
175
+ return this.createOAuthTokenProvider(options, ChronicleConnectionString.ChronicleConnectionString.DEVELOPMENT_CLIENT, ChronicleConnectionString.ChronicleConnectionString.DEVELOPMENT_CLIENT_SECRET);
176
+ }
177
+ createOAuthTokenProvider(options, username, password) {
178
+ const managementPort = options.managementPort || 8080;
179
+ let authorityHost;
180
+ let authorityPort;
181
+ if (options.authority) {
182
+ const authorityUrl = new URL(options.authority);
183
+ authorityHost = authorityUrl.hostname;
184
+ authorityPort = authorityUrl.port ? parseInt(authorityUrl.port, 10) : managementPort;
185
+ }
186
+ else {
187
+ authorityHost = this._connectionString.serverAddress.host;
188
+ authorityPort = managementPort;
189
+ }
190
+ const scheme = this._connectionString.disableTls ? 'http' : 'https';
191
+ const tokenEndpoint = `${scheme}://${authorityHost}:${authorityPort}/connect/token`;
192
+ return new TokenProvider.OAuthTokenProvider(tokenEndpoint, username, password);
186
193
  }
187
194
  createAuthCallCredentials() {
188
195
  if (this._connectionString.disableTls) {
@@ -215,6 +222,47 @@ class ChronicleConnection {
215
222
  get isConnected() {
216
223
  return this._isConnected;
217
224
  }
225
+ createAuthMiddleware() {
226
+ const tokenProvider = this.tokenProvider;
227
+ const connectionString = this._connectionString;
228
+ return async function* authMiddleware(call, options) {
229
+ try {
230
+ const token = await tokenProvider.getAccessToken();
231
+ if (token) {
232
+ const authMetadata = niceGrpcCommon.Metadata({ authorization: `Bearer ${token}` });
233
+ if (options.metadata) {
234
+ const mergedMetadata = niceGrpcCommon.Metadata(options.metadata);
235
+ mergedMetadata.set('authorization', `Bearer ${token}`);
236
+ options.metadata = mergedMetadata;
237
+ }
238
+ else {
239
+ options.metadata = authMetadata;
240
+ }
241
+ }
242
+ else {
243
+ try {
244
+ const authMode = connectionString.authenticationMode;
245
+ if (authMode === ChronicleConnectionString.AuthenticationMode.ApiKey && connectionString.apiKey) {
246
+ const apiKeyMetadata = niceGrpcCommon.Metadata({ 'api-key': connectionString.apiKey });
247
+ if (options.metadata) {
248
+ const mergedMetadata = niceGrpcCommon.Metadata(options.metadata);
249
+ mergedMetadata.set('api-key', connectionString.apiKey);
250
+ options.metadata = mergedMetadata;
251
+ }
252
+ else {
253
+ options.metadata = apiKeyMetadata;
254
+ }
255
+ }
256
+ }
257
+ catch {
258
+ }
259
+ }
260
+ }
261
+ catch (error) {
262
+ }
263
+ return yield* call.next(call.request, options);
264
+ };
265
+ }
218
266
  async connect() {
219
267
  if (this._isConnected) {
220
268
  return;