@ductape/sdk 0.0.4-v54 → 0.0.4-v56
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/dist/api/urls.js +7 -7
- package/dist/brokers/brokers.service.d.ts +24 -0
- package/dist/brokers/brokers.service.js +72 -0
- package/dist/brokers/brokers.service.js.map +1 -1
- package/dist/graph/graphs.service.d.ts +1 -1
- package/dist/graph/graphs.service.js +1 -1
- package/dist/graph/graphs.service.js.map +1 -1
- package/dist/index.d.ts +542 -58
- package/dist/index.js +773 -97
- package/dist/index.js.map +1 -1
- package/dist/resilience/fallback.service.d.ts +60 -11
- package/dist/resilience/fallback.service.js +278 -23
- package/dist/resilience/fallback.service.js.map +1 -1
- package/dist/resilience/healthcheck.service.d.ts +48 -0
- package/dist/resilience/healthcheck.service.js +556 -1
- package/dist/resilience/healthcheck.service.js.map +1 -1
- package/dist/resilience/quota.service.d.ts +42 -53
- package/dist/resilience/quota.service.js +364 -369
- package/dist/resilience/quota.service.js.map +1 -1
- package/dist/resilience/resilience.service.js +38 -3
- package/dist/resilience/resilience.service.js.map +1 -1
- package/dist/resilience/types/index.d.ts +35 -1
- package/dist/resilience/types/index.js +3 -0
- package/dist/resilience/types/index.js.map +1 -1
- package/dist/storage/storage.service.d.ts +25 -0
- package/dist/storage/storage.service.js +39 -0
- package/dist/storage/storage.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,10 +4,47 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Code-first API for defining and managing healthchecks.
|
|
6
6
|
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
7
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
44
|
exports.HealthcheckService = exports.HealthcheckError = void 0;
|
|
9
45
|
const types_1 = require("./types");
|
|
10
46
|
const resilienceApi_service_1 = require("../api/services/resilienceApi.service");
|
|
47
|
+
const processor_service_1 = __importDefault(require("../processor/services/processor.service"));
|
|
11
48
|
/**
|
|
12
49
|
* Error class for healthcheck operations
|
|
13
50
|
*/
|
|
@@ -107,6 +144,15 @@ class RecordingProbeBuilder {
|
|
|
107
144
|
workflow(tag) {
|
|
108
145
|
return new RecordingWorkflowProbeBuilder(this.ctx, tag);
|
|
109
146
|
}
|
|
147
|
+
graph(tag) {
|
|
148
|
+
return new RecordingGraphProbeBuilder(this.ctx, tag);
|
|
149
|
+
}
|
|
150
|
+
messageBroker(tag) {
|
|
151
|
+
return new RecordingMessageBrokerProbeBuilder(this.ctx, tag);
|
|
152
|
+
}
|
|
153
|
+
storage(tag) {
|
|
154
|
+
return new RecordingStorageProbeBuilder(this.ctx, tag);
|
|
155
|
+
}
|
|
110
156
|
}
|
|
111
157
|
class RecordingAppProbeBuilder {
|
|
112
158
|
constructor(ctx, appTag) {
|
|
@@ -181,6 +227,96 @@ class RecordingWorkflowProbeBuilder {
|
|
|
181
227
|
});
|
|
182
228
|
}
|
|
183
229
|
}
|
|
230
|
+
class RecordingGraphProbeBuilder {
|
|
231
|
+
constructor(ctx, graphTag) {
|
|
232
|
+
this.ctx = ctx;
|
|
233
|
+
this.graphTag = graphTag;
|
|
234
|
+
}
|
|
235
|
+
action(event) {
|
|
236
|
+
return new RecordingGraphProbeActionBuilder(this.ctx, this.graphTag, event);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
class RecordingGraphProbeActionBuilder {
|
|
240
|
+
constructor(ctx, graphTag, event) {
|
|
241
|
+
this.ctx = ctx;
|
|
242
|
+
this.graphTag = graphTag;
|
|
243
|
+
this.event = event;
|
|
244
|
+
// Set probe immediately (input is optional)
|
|
245
|
+
this.ctx.setProbe({
|
|
246
|
+
type: types_1.ProbeType.GRAPH,
|
|
247
|
+
graph: this.graphTag,
|
|
248
|
+
event: this.event,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
input(data) {
|
|
252
|
+
this.ctx.setProbe({
|
|
253
|
+
type: types_1.ProbeType.GRAPH,
|
|
254
|
+
graph: this.graphTag,
|
|
255
|
+
event: this.event,
|
|
256
|
+
input: data,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
class RecordingMessageBrokerProbeBuilder {
|
|
261
|
+
constructor(ctx, brokerTag) {
|
|
262
|
+
this.ctx = ctx;
|
|
263
|
+
this.brokerTag = brokerTag;
|
|
264
|
+
}
|
|
265
|
+
action(event) {
|
|
266
|
+
return new RecordingMessageBrokerProbeActionBuilder(this.ctx, this.brokerTag, event);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
class RecordingMessageBrokerProbeActionBuilder {
|
|
270
|
+
constructor(ctx, brokerTag, event) {
|
|
271
|
+
this.ctx = ctx;
|
|
272
|
+
this.brokerTag = brokerTag;
|
|
273
|
+
this.event = event;
|
|
274
|
+
// Set probe immediately (input is optional)
|
|
275
|
+
this.ctx.setProbe({
|
|
276
|
+
type: types_1.ProbeType.MESSAGE_BROKER,
|
|
277
|
+
messageBroker: this.brokerTag,
|
|
278
|
+
event: this.event,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
input(data) {
|
|
282
|
+
this.ctx.setProbe({
|
|
283
|
+
type: types_1.ProbeType.MESSAGE_BROKER,
|
|
284
|
+
messageBroker: this.brokerTag,
|
|
285
|
+
event: this.event,
|
|
286
|
+
input: data,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
class RecordingStorageProbeBuilder {
|
|
291
|
+
constructor(ctx, storageTag) {
|
|
292
|
+
this.ctx = ctx;
|
|
293
|
+
this.storageTag = storageTag;
|
|
294
|
+
}
|
|
295
|
+
action(event) {
|
|
296
|
+
return new RecordingStorageProbeActionBuilder(this.ctx, this.storageTag, event);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
class RecordingStorageProbeActionBuilder {
|
|
300
|
+
constructor(ctx, storageTag, event) {
|
|
301
|
+
this.ctx = ctx;
|
|
302
|
+
this.storageTag = storageTag;
|
|
303
|
+
this.event = event;
|
|
304
|
+
// Set probe immediately (input is optional)
|
|
305
|
+
this.ctx.setProbe({
|
|
306
|
+
type: types_1.ProbeType.STORAGE,
|
|
307
|
+
storage: this.storageTag,
|
|
308
|
+
event: this.event,
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
input(data) {
|
|
312
|
+
this.ctx.setProbe({
|
|
313
|
+
type: types_1.ProbeType.STORAGE,
|
|
314
|
+
storage: this.storageTag,
|
|
315
|
+
event: this.event,
|
|
316
|
+
input: data,
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
184
320
|
/**
|
|
185
321
|
* Failure notification builder
|
|
186
322
|
*/
|
|
@@ -259,12 +395,27 @@ class RecordingNotificationChannelBuilder {
|
|
|
259
395
|
*/
|
|
260
396
|
class HealthcheckService {
|
|
261
397
|
constructor(config) {
|
|
398
|
+
this.config = config;
|
|
262
399
|
this.apiService = new resilienceApi_service_1.ResilienceApiService({
|
|
263
400
|
token: config.token,
|
|
264
401
|
env_type: config.env_type,
|
|
265
402
|
base_url: config.base_url,
|
|
266
403
|
});
|
|
267
404
|
}
|
|
405
|
+
/**
|
|
406
|
+
* Creates a ProcessorService instance for local execution
|
|
407
|
+
*/
|
|
408
|
+
createProcessor() {
|
|
409
|
+
return new processor_service_1.default({
|
|
410
|
+
workspace_id: this.config.workspace_id,
|
|
411
|
+
public_key: this.config.public_key,
|
|
412
|
+
user_id: this.config.user_id,
|
|
413
|
+
token: this.config.token,
|
|
414
|
+
env_type: this.config.env_type,
|
|
415
|
+
redis_client: this.config.redis_client,
|
|
416
|
+
queues: this.config.queues,
|
|
417
|
+
});
|
|
418
|
+
}
|
|
268
419
|
/**
|
|
269
420
|
* Define a healthcheck using code-first API
|
|
270
421
|
*
|
|
@@ -363,9 +514,413 @@ class HealthcheckService {
|
|
|
363
514
|
}
|
|
364
515
|
/**
|
|
365
516
|
* Manually trigger a healthcheck
|
|
517
|
+
*
|
|
518
|
+
* Executes the healthcheck locally using the ProcessorService and caches
|
|
519
|
+
* the result in Redis for status tracking. On failure, triggers configured
|
|
520
|
+
* notifications, webhooks, and event emissions.
|
|
521
|
+
*
|
|
522
|
+
* Supports the following probe types:
|
|
523
|
+
* - APP: Executes an app action (supports OAuth auto-refresh)
|
|
524
|
+
* - DATABASE: Tests database connection
|
|
525
|
+
* - GRAPH: Tests graph database connection
|
|
526
|
+
* - MESSAGE_BROKER: Tests message broker connection
|
|
527
|
+
* - STORAGE: Tests object storage connection
|
|
528
|
+
* - WORKFLOW: Executes a workflow and checks completion status
|
|
366
529
|
*/
|
|
367
530
|
async run(options) {
|
|
368
|
-
|
|
531
|
+
var _a, _b, _c, _d, _e;
|
|
532
|
+
// Fetch the healthcheck configuration
|
|
533
|
+
const healthcheck = await this.fetch(options.product, options.tag);
|
|
534
|
+
// Find the environment configuration
|
|
535
|
+
const envConfig = (_a = healthcheck.envs) === null || _a === void 0 ? void 0 : _a.find((e) => e.slug === options.env);
|
|
536
|
+
// Execute via processor
|
|
537
|
+
const processor = this.createProcessor();
|
|
538
|
+
const startTime = Date.now();
|
|
539
|
+
// Determine probe type and execute accordingly
|
|
540
|
+
let result;
|
|
541
|
+
const probeType = ((_b = healthcheck.probe) === null || _b === void 0 ? void 0 : _b.type) || types_1.ProbeType.APP;
|
|
542
|
+
if (probeType === types_1.ProbeType.DATABASE) {
|
|
543
|
+
// Database healthcheck - test connection
|
|
544
|
+
result = await this.executeDatabaseProbe(healthcheck, options.product, options.env, startTime);
|
|
545
|
+
}
|
|
546
|
+
else if (probeType === types_1.ProbeType.GRAPH) {
|
|
547
|
+
// Graph healthcheck - test connection
|
|
548
|
+
result = await this.executeGraphProbe(healthcheck, options.product, options.env, startTime);
|
|
549
|
+
}
|
|
550
|
+
else if (probeType === types_1.ProbeType.MESSAGE_BROKER) {
|
|
551
|
+
// Message broker healthcheck - test connection
|
|
552
|
+
result = await this.executeMessageBrokerProbe(healthcheck, options.product, options.env, startTime);
|
|
553
|
+
}
|
|
554
|
+
else if (probeType === types_1.ProbeType.APP) {
|
|
555
|
+
// App healthcheck - execute app action
|
|
556
|
+
const actionData = {
|
|
557
|
+
env: options.env,
|
|
558
|
+
product: options.product,
|
|
559
|
+
app: ((_c = healthcheck.probe) === null || _c === void 0 ? void 0 : _c.app) || healthcheck.app,
|
|
560
|
+
input: (envConfig === null || envConfig === void 0 ? void 0 : envConfig.input) || ((_d = healthcheck.probe) === null || _d === void 0 ? void 0 : _d.input) || {},
|
|
561
|
+
action: ((_e = healthcheck.probe) === null || _e === void 0 ? void 0 : _e.event) || healthcheck.event,
|
|
562
|
+
retries: healthcheck.retries || 0,
|
|
563
|
+
};
|
|
564
|
+
result = await processor.processAction(actionData);
|
|
565
|
+
result = {
|
|
566
|
+
status: result ? 'available' : 'unavailable',
|
|
567
|
+
latency: Date.now() - startTime,
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
else if (probeType === types_1.ProbeType.WORKFLOW) {
|
|
571
|
+
// Workflow healthcheck - execute workflow
|
|
572
|
+
result = await this.executeWorkflowProbe(healthcheck, options.product, options.env, startTime);
|
|
573
|
+
}
|
|
574
|
+
else if (probeType === types_1.ProbeType.STORAGE) {
|
|
575
|
+
// Storage healthcheck - test connection
|
|
576
|
+
result = await this.executeStorageProbe(healthcheck, options.product, options.env, startTime);
|
|
577
|
+
}
|
|
578
|
+
// Build cache data with healthcheck tag for Redis key
|
|
579
|
+
const cacheData = {
|
|
580
|
+
healthcheck: options.tag,
|
|
581
|
+
env: options.env,
|
|
582
|
+
product: options.product,
|
|
583
|
+
};
|
|
584
|
+
// Determine if healthcheck failed
|
|
585
|
+
const isFailure = !result || result.status === 'unavailable' || result.status === 'error' || result.status === 'unknown';
|
|
586
|
+
// Write result to Redis cache
|
|
587
|
+
const healthcheckResult = Object.assign({ status: (result === null || result === void 0 ? void 0 : result.status) || 'unknown', checkedAt: new Date().toISOString(), latency: (result === null || result === void 0 ? void 0 : result.latency) || 0 }, result);
|
|
588
|
+
await processor.writeHealthcheckResultToCache(cacheData, healthcheckResult);
|
|
589
|
+
// Handle failure notifications if configured
|
|
590
|
+
if (isFailure && healthcheck.onFailure) {
|
|
591
|
+
await this.handleFailureNotifications(processor, healthcheck.onFailure, options, healthcheckResult);
|
|
592
|
+
}
|
|
593
|
+
return healthcheckResult;
|
|
594
|
+
}
|
|
595
|
+
/**
|
|
596
|
+
* Handles failure notifications for a healthcheck
|
|
597
|
+
*/
|
|
598
|
+
async handleFailureNotifications(processor, onFailure, options, result) {
|
|
599
|
+
const failureContext = {
|
|
600
|
+
healthcheck: options.tag,
|
|
601
|
+
product: options.product,
|
|
602
|
+
env: options.env,
|
|
603
|
+
status: result.status,
|
|
604
|
+
timestamp: result.checkedAt,
|
|
605
|
+
};
|
|
606
|
+
// Process notifications via processor service
|
|
607
|
+
if (onFailure.notifications && onFailure.notifications.length > 0) {
|
|
608
|
+
for (const notification of onFailure.notifications) {
|
|
609
|
+
try {
|
|
610
|
+
// Build notification input with channel-specific recipients
|
|
611
|
+
const notificationInput = Object.assign({}, failureContext);
|
|
612
|
+
// Add channel-specific data
|
|
613
|
+
if (notification.channels.email) {
|
|
614
|
+
notificationInput.email = notification.channels.email;
|
|
615
|
+
}
|
|
616
|
+
if (notification.channels.sms) {
|
|
617
|
+
notificationInput.sms = notification.channels.sms;
|
|
618
|
+
}
|
|
619
|
+
if (notification.channels.push) {
|
|
620
|
+
notificationInput.push = notification.channels.push;
|
|
621
|
+
}
|
|
622
|
+
if (notification.channels.callback) {
|
|
623
|
+
notificationInput.callback = notification.channels.callback;
|
|
624
|
+
}
|
|
625
|
+
await processor.processNotification({
|
|
626
|
+
env: options.env,
|
|
627
|
+
product: options.product,
|
|
628
|
+
event: `${notification.notification}:${notification.message}`,
|
|
629
|
+
input: notificationInput,
|
|
630
|
+
retries: 2,
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
catch (error) {
|
|
634
|
+
// Log but don't throw - notification failures shouldn't break the healthcheck
|
|
635
|
+
console.error(`Failed to send notification for healthcheck ${options.tag}:`, error);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
// Process webhooks
|
|
640
|
+
if (onFailure.webhooks && onFailure.webhooks.length > 0) {
|
|
641
|
+
for (const webhook of onFailure.webhooks) {
|
|
642
|
+
try {
|
|
643
|
+
const axios = (await Promise.resolve().then(() => __importStar(require('axios')))).default;
|
|
644
|
+
await axios({
|
|
645
|
+
method: webhook.method || 'POST',
|
|
646
|
+
url: webhook.url,
|
|
647
|
+
headers: webhook.headers,
|
|
648
|
+
data: Object.assign(Object.assign({}, failureContext), webhook.body),
|
|
649
|
+
timeout: 10000,
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
catch (error) {
|
|
653
|
+
// Log but don't throw - webhook failures shouldn't break the healthcheck
|
|
654
|
+
console.error(`Failed to call webhook for healthcheck ${options.tag}:`, error);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
// Process event emissions (emit to message broker if configured)
|
|
659
|
+
if (onFailure.emit && onFailure.emit.length > 0) {
|
|
660
|
+
for (const emission of onFailure.emit) {
|
|
661
|
+
try {
|
|
662
|
+
// Emit events via message broker if available
|
|
663
|
+
await processor.processMessageBrokerPublish({
|
|
664
|
+
env: options.env,
|
|
665
|
+
product: options.product,
|
|
666
|
+
event: emission.event,
|
|
667
|
+
input: {
|
|
668
|
+
message: Object.assign(Object.assign({}, failureContext), emission.data),
|
|
669
|
+
},
|
|
670
|
+
});
|
|
671
|
+
}
|
|
672
|
+
catch (error) {
|
|
673
|
+
// Log but don't throw - emit failures shouldn't break the healthcheck
|
|
674
|
+
console.error(`Failed to emit event for healthcheck ${options.tag}:`, error);
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
/**
|
|
680
|
+
* Execute a database healthcheck probe by testing the connection
|
|
681
|
+
*/
|
|
682
|
+
async executeDatabaseProbe(healthcheck, product, env, startTime) {
|
|
683
|
+
var _a;
|
|
684
|
+
const databaseTag = (_a = healthcheck.probe) === null || _a === void 0 ? void 0 : _a.database;
|
|
685
|
+
if (!databaseTag) {
|
|
686
|
+
throw new HealthcheckError('Database healthcheck requires a database tag in the probe configuration', 'MISSING_DATABASE_TAG');
|
|
687
|
+
}
|
|
688
|
+
try {
|
|
689
|
+
// Dynamically import DatabaseService to avoid circular dependencies
|
|
690
|
+
const { DatabaseService } = await Promise.resolve().then(() => __importStar(require('../database/databases.service')));
|
|
691
|
+
const dbService = new DatabaseService({
|
|
692
|
+
workspace_id: this.config.workspace_id,
|
|
693
|
+
public_key: this.config.public_key,
|
|
694
|
+
user_id: this.config.user_id,
|
|
695
|
+
token: this.config.token,
|
|
696
|
+
env_type: this.config.env_type,
|
|
697
|
+
});
|
|
698
|
+
// Test the database connection
|
|
699
|
+
const connectionResult = await dbService.testConnection({
|
|
700
|
+
product,
|
|
701
|
+
env,
|
|
702
|
+
database: databaseTag,
|
|
703
|
+
});
|
|
704
|
+
const latency = Date.now() - startTime;
|
|
705
|
+
if (connectionResult.connected) {
|
|
706
|
+
return {
|
|
707
|
+
status: 'available',
|
|
708
|
+
latency,
|
|
709
|
+
};
|
|
710
|
+
}
|
|
711
|
+
else {
|
|
712
|
+
return {
|
|
713
|
+
status: 'unavailable',
|
|
714
|
+
latency,
|
|
715
|
+
};
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
catch (error) {
|
|
719
|
+
const latency = Date.now() - startTime;
|
|
720
|
+
return {
|
|
721
|
+
status: 'unavailable',
|
|
722
|
+
latency,
|
|
723
|
+
};
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
/**
|
|
727
|
+
* Execute a graph healthcheck probe by testing the connection
|
|
728
|
+
*/
|
|
729
|
+
async executeGraphProbe(healthcheck, product, env, startTime) {
|
|
730
|
+
var _a;
|
|
731
|
+
const graphTag = (_a = healthcheck.probe) === null || _a === void 0 ? void 0 : _a.graph;
|
|
732
|
+
if (!graphTag) {
|
|
733
|
+
throw new HealthcheckError('Graph healthcheck requires a graph tag in the probe configuration', 'MISSING_GRAPH_TAG');
|
|
734
|
+
}
|
|
735
|
+
try {
|
|
736
|
+
// Dynamically import GraphService to avoid circular dependencies
|
|
737
|
+
const { GraphService } = await Promise.resolve().then(() => __importStar(require('../graph/graphs.service')));
|
|
738
|
+
const graphService = new GraphService({
|
|
739
|
+
workspace_id: this.config.workspace_id,
|
|
740
|
+
public_key: this.config.public_key,
|
|
741
|
+
user_id: this.config.user_id,
|
|
742
|
+
token: this.config.token,
|
|
743
|
+
env_type: this.config.env_type,
|
|
744
|
+
});
|
|
745
|
+
// Test the graph connection
|
|
746
|
+
const connectionResult = await graphService.testConnection({
|
|
747
|
+
product,
|
|
748
|
+
env,
|
|
749
|
+
graph: graphTag,
|
|
750
|
+
});
|
|
751
|
+
const latency = Date.now() - startTime;
|
|
752
|
+
if (connectionResult.connected) {
|
|
753
|
+
return {
|
|
754
|
+
status: 'available',
|
|
755
|
+
latency,
|
|
756
|
+
};
|
|
757
|
+
}
|
|
758
|
+
else {
|
|
759
|
+
return {
|
|
760
|
+
status: 'unavailable',
|
|
761
|
+
latency,
|
|
762
|
+
};
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
catch (error) {
|
|
766
|
+
const latency = Date.now() - startTime;
|
|
767
|
+
return {
|
|
768
|
+
status: 'unavailable',
|
|
769
|
+
latency,
|
|
770
|
+
};
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* Execute a message broker healthcheck probe by testing the connection
|
|
775
|
+
*/
|
|
776
|
+
async executeMessageBrokerProbe(healthcheck, product, env, startTime) {
|
|
777
|
+
var _a;
|
|
778
|
+
const brokerTag = (_a = healthcheck.probe) === null || _a === void 0 ? void 0 : _a.messageBroker;
|
|
779
|
+
if (!brokerTag) {
|
|
780
|
+
throw new HealthcheckError('Message broker healthcheck requires a messageBroker tag in the probe configuration', 'MISSING_MESSAGE_BROKER_TAG');
|
|
781
|
+
}
|
|
782
|
+
try {
|
|
783
|
+
// Dynamically import BrokersService to avoid circular dependencies
|
|
784
|
+
const { BrokersService } = await Promise.resolve().then(() => __importStar(require('../brokers/brokers.service')));
|
|
785
|
+
const brokersService = new BrokersService({
|
|
786
|
+
workspace_id: this.config.workspace_id,
|
|
787
|
+
public_key: this.config.public_key,
|
|
788
|
+
user_id: this.config.user_id,
|
|
789
|
+
token: this.config.token,
|
|
790
|
+
env_type: this.config.env_type,
|
|
791
|
+
});
|
|
792
|
+
// Test the broker connection by attempting to get broker config
|
|
793
|
+
// This validates broker exists and credentials are correct
|
|
794
|
+
const connectionResult = await brokersService.testConnection({
|
|
795
|
+
product,
|
|
796
|
+
env,
|
|
797
|
+
broker: brokerTag,
|
|
798
|
+
});
|
|
799
|
+
const latency = Date.now() - startTime;
|
|
800
|
+
if (connectionResult.connected) {
|
|
801
|
+
return {
|
|
802
|
+
status: 'available',
|
|
803
|
+
latency,
|
|
804
|
+
};
|
|
805
|
+
}
|
|
806
|
+
else {
|
|
807
|
+
return {
|
|
808
|
+
status: 'unavailable',
|
|
809
|
+
latency,
|
|
810
|
+
};
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
catch (error) {
|
|
814
|
+
const latency = Date.now() - startTime;
|
|
815
|
+
return {
|
|
816
|
+
status: 'unavailable',
|
|
817
|
+
latency,
|
|
818
|
+
};
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
/**
|
|
822
|
+
* Execute a workflow healthcheck probe by running the workflow
|
|
823
|
+
*
|
|
824
|
+
* Workflow healthchecks execute the workflow with the provided input
|
|
825
|
+
* and check if it completes successfully. This is useful for testing
|
|
826
|
+
* end-to-end workflow functionality.
|
|
827
|
+
*/
|
|
828
|
+
async executeWorkflowProbe(healthcheck, product, env, startTime) {
|
|
829
|
+
var _a, _b;
|
|
830
|
+
const workflowTag = (_a = healthcheck.probe) === null || _a === void 0 ? void 0 : _a.workflow;
|
|
831
|
+
if (!workflowTag) {
|
|
832
|
+
throw new HealthcheckError('Workflow healthcheck requires a workflow tag in the probe configuration', 'MISSING_WORKFLOW_TAG');
|
|
833
|
+
}
|
|
834
|
+
try {
|
|
835
|
+
// Dynamically import WorkflowService to avoid circular dependencies
|
|
836
|
+
const { WorkflowService } = await Promise.resolve().then(() => __importStar(require('../workflows/workflows.service')));
|
|
837
|
+
const workflowService = new WorkflowService({
|
|
838
|
+
workspace_id: this.config.workspace_id,
|
|
839
|
+
public_key: this.config.public_key,
|
|
840
|
+
user_id: this.config.user_id,
|
|
841
|
+
token: this.config.token,
|
|
842
|
+
env_type: this.config.env_type,
|
|
843
|
+
});
|
|
844
|
+
// Execute the workflow with the configured input
|
|
845
|
+
const input = ((_b = healthcheck.probe) === null || _b === void 0 ? void 0 : _b.input) || {};
|
|
846
|
+
const result = await workflowService.execute({
|
|
847
|
+
product,
|
|
848
|
+
env,
|
|
849
|
+
tag: workflowTag,
|
|
850
|
+
input,
|
|
851
|
+
});
|
|
852
|
+
const latency = Date.now() - startTime;
|
|
853
|
+
// Check if workflow completed successfully
|
|
854
|
+
if (result.status === 'completed') {
|
|
855
|
+
return {
|
|
856
|
+
status: 'available',
|
|
857
|
+
latency,
|
|
858
|
+
};
|
|
859
|
+
}
|
|
860
|
+
else {
|
|
861
|
+
return {
|
|
862
|
+
status: 'unavailable',
|
|
863
|
+
latency,
|
|
864
|
+
};
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
catch (error) {
|
|
868
|
+
const latency = Date.now() - startTime;
|
|
869
|
+
return {
|
|
870
|
+
status: 'unavailable',
|
|
871
|
+
latency,
|
|
872
|
+
};
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
/**
|
|
876
|
+
* Execute a storage healthcheck probe by testing the connection
|
|
877
|
+
*
|
|
878
|
+
* Storage healthchecks attempt to list objects (with limit 1) to verify
|
|
879
|
+
* connectivity and credentials are working correctly.
|
|
880
|
+
*/
|
|
881
|
+
async executeStorageProbe(healthcheck, product, env, startTime) {
|
|
882
|
+
var _a;
|
|
883
|
+
const storageTag = (_a = healthcheck.probe) === null || _a === void 0 ? void 0 : _a.storage;
|
|
884
|
+
if (!storageTag) {
|
|
885
|
+
throw new HealthcheckError('Storage healthcheck requires a storage tag in the probe configuration', 'MISSING_STORAGE_TAG');
|
|
886
|
+
}
|
|
887
|
+
try {
|
|
888
|
+
// Dynamically import StorageService to avoid circular dependencies
|
|
889
|
+
const { StorageService } = await Promise.resolve().then(() => __importStar(require('../storage/storage.service')));
|
|
890
|
+
const storageService = new StorageService({
|
|
891
|
+
workspace_id: this.config.workspace_id,
|
|
892
|
+
public_key: this.config.public_key,
|
|
893
|
+
user_id: this.config.user_id,
|
|
894
|
+
token: this.config.token,
|
|
895
|
+
env_type: this.config.env_type,
|
|
896
|
+
});
|
|
897
|
+
// Test the storage connection
|
|
898
|
+
const connectionResult = await storageService.testConnection({
|
|
899
|
+
product,
|
|
900
|
+
env,
|
|
901
|
+
storage: storageTag,
|
|
902
|
+
});
|
|
903
|
+
const latency = Date.now() - startTime;
|
|
904
|
+
if (connectionResult.connected) {
|
|
905
|
+
return {
|
|
906
|
+
status: 'available',
|
|
907
|
+
latency,
|
|
908
|
+
};
|
|
909
|
+
}
|
|
910
|
+
else {
|
|
911
|
+
return {
|
|
912
|
+
status: 'unavailable',
|
|
913
|
+
latency,
|
|
914
|
+
};
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
catch (error) {
|
|
918
|
+
const latency = Date.now() - startTime;
|
|
919
|
+
return {
|
|
920
|
+
status: 'unavailable',
|
|
921
|
+
latency,
|
|
922
|
+
};
|
|
923
|
+
}
|
|
369
924
|
}
|
|
370
925
|
/**
|
|
371
926
|
* @deprecated Use run() instead
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.service.js","sourceRoot":"","sources":["../../src/resilience/healthcheck.service.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mCAyBiB;AACjB,iFAA6E;AAG7E;;GAEG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YACE,OAAe,EACR,IAAY,EACZ,OAAiB;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAU;QAGxB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AATD,4CASC;AAED;;GAEG;AACH,MAAM,2BAA2B;IAAjC;QACU,WAAM,GAA6B,IAAI,CAAC;QACxC,cAAS,GAAW,KAAK,CAAC;QAC1B,aAAQ,GAAW,CAAC,CAAC;QACrB,UAAK,GAA4B,EAAE,CAAC;QACpC,eAAU,GAAiC,IAAI,CAAC;IAkF1D,CAAC;IAhFC,KAAK;QACH,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,KAAwB;QAC/B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,OAAwC;QACxD,MAAM,SAAS,mBACb,IAAI,IACD,OAAO,CACX,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG;gBAChB,aAAa,EAAE,EAAE;gBACjB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;aACT,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,mCAAmC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,OAAO,SAAS,KAAK,GAAG,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAW;QACf,OAAO,WAAW,GAAG,GAAG,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,GAAW;QAC/B,OAAO,aAAa,GAAG,KAAK,GAAG,GAAG,CAAC;IACrC,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,GAAW;QAC/B,OAAO,aAAa,GAAG,KAAK,GAAG,GAAG,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAW,EAAE,IAAa,EAAE,WAAoB;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,gBAAgB,CACxB,kCAAkC,EAClC,sBAAsB,CACvB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,gBAAgB,CACxB,6CAA6C,EAC7C,oBAAoB,CACrB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG;YACH,IAAI;YACJ,WAAW;YACX,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;YACvC,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,qBAAqB;IACzB,YAAoB,GAAgC;QAAhC,QAAG,GAAH,GAAG,CAA6B;IAAG,CAAC;IAExD,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,MAAM,wBAAwB;IAC5B,YACU,GAAgC,EAChC,MAAc;QADd,QAAG,GAAH,GAAG,CAA6B;QAChC,WAAM,GAAN,MAAM,CAAQ;IACrB,CAAC;IAEJ,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;CACF;AAED,MAAM,8BAA8B;IAClC,YACU,GAAgC,EAChC,MAAc,EACd,KAAa;QAFb,QAAG,GAAH,GAAG,CAA6B;QAChC,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAQ;QAErB,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChB,IAAI,EAAE,iBAAS,CAAC,GAAG;YACnB,GAAG,EAAE,IAAI,CAAC,MAAM;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAA6B;QACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChB,IAAI,EAAE,iBAAS,CAAC,GAAG;YACnB,GAAG,EAAE,IAAI,CAAC,MAAM;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,6BAA6B;IACjC,YACU,GAAgC,EAChC,KAAa;QADb,QAAG,GAAH,GAAG,CAA6B;QAChC,UAAK,GAAL,KAAK,CAAQ;IACpB,CAAC;IAEJ,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,mCAAmC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;CACF;AAED,MAAM,mCAAmC;IACvC,YACU,GAAgC,EAChC,KAAa,EACb,KAAa;QAFb,QAAG,GAAH,GAAG,CAA6B;QAChC,UAAK,GAAL,KAAK,CAAQ;QACb,UAAK,GAAL,KAAK,CAAQ;QAErB,4CAA4C;QAC5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChB,IAAI,EAAE,iBAAS,CAAC,QAAQ;YACxB,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAA6B;QACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChB,IAAI,EAAE,iBAAS,CAAC,QAAQ;YACxB,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,6BAA6B;IACjC,YACU,GAAgC,EAChC,WAAmB;QADnB,QAAG,GAAH,GAAG,CAA6B;QAChC,gBAAW,GAAX,WAAW,CAAQ;IAC1B,CAAC;IAEJ,KAAK,CAAC,IAA6B;QACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChB,IAAI,EAAE,iBAAS,CAAC,QAAQ;YACxB,QAAQ,EAAE,IAAI,CAAC,WAAW;YAC1B,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,mCAAmC;IACvC,YAAoB,SAAgC;QAAhC,cAAS,GAAT,SAAS,CAAuB;IAAG,CAAC;IAExD,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,mCAAmC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,MAA2B;QACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAwB;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,mCAAmC;IACvC,YACU,SAAgC,EAChC,eAAuB;QADvB,cAAS,GAAT,SAAS,CAAuB;QAChC,oBAAe,GAAf,eAAe,CAAQ;IAC9B,CAAC;IAEJ,OAAO,CAAC,KAAa;QACnB,OAAO,IAAI,mCAAmC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC9F,CAAC;CACF;AAED,MAAM,mCAAmC;IAIvC,YACE,SAAgC,EAChC,eAAuB,EACvB,OAAe;QAEf,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG;YACzB,YAAY,EAAE,eAAe;YAC7B,OAAO;YACP,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,IAAI,EAAE,CAAC;QAC9E,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpE,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,OAAO,IAAI,mCAAmC,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,MAA2B;QACjC,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,IAAI,EAAE,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAwB;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAkC;QACrC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAgC;QACpC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,MAAgC;QAClC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,MAA2C;QAClD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;GAIG;AACH,MAAa,kBAAkB;IAG7B,YAAY,MAAgC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,4CAAoB,CAAC;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAmB;YACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,MAAM,CAAC,OAAkC;QAC7C,MAAM,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;QAE9C,kDAAkD;QAClD,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE3B,mBAAmB;QACnB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAEzE,MAAM,kBAAkB,GAAwB;YAC9C,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM;SACtB,CAAC;QAEF,gDAAgD;QAChD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAAe,EACf,WAAqD;QAErD,MAAM,MAAM,GAAG,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9E,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAAe,EACf,GAAW,EACX,WAA6E;QAE7E,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;YAC9C,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;YACzE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,WAA0C,CAAC,CAAC;IAC3G,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,GAAW;QACtC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,GAAW;QACvC,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAIf;QACC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,KAAK,CAAC,OAIX;QACC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAIT;QACC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAIZ;QACC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACF;AA5JD,gDA4JC;AAED,kBAAe,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"healthcheck.service.js","sourceRoot":"","sources":["../../src/resilience/healthcheck.service.ts"],"names":[],"mappings":"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"}
|