@breadstone/archipel-mcp 0.0.23 → 0.0.26
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/data/guides/caching.md +33 -0
- package/data/guides/email-delivery.md +27 -1
- package/data/guides/esigning-integration.md +11 -5
- package/data/guides/health-indicators.md +220 -0
- package/data/guides/index.md +2 -0
- package/data/guides/queue-infrastructure.md +329 -0
- package/data/guides/telemetry-and-observability.md +20 -0
- package/data/packages/platform-analytics/api/Class.AnalyticsClientPort.md +20 -0
- package/data/packages/platform-analytics/api/Class.AnalyticsHealthIndicator.md +78 -0
- package/data/packages/platform-analytics/api/Class.AppInsightsAnalyticsClient.md +24 -0
- package/data/packages/platform-analytics/api/Class.DatadogAnalyticsClient.md +24 -0
- package/data/packages/platform-analytics/api/Class.NoopAnalyticsClient.md +24 -0
- package/data/packages/platform-analytics/api/Class.SentryAnalyticsClient.md +24 -0
- package/data/packages/platform-analytics/api/index.md +1 -0
- package/data/packages/platform-analytics/index.md +25 -1
- package/data/packages/platform-authentication/api/Class.AuthenticationHealthIndicator.md +68 -0
- package/data/packages/platform-authentication/api/index.md +1 -0
- package/data/packages/platform-authentication/index.md +25 -1
- package/data/packages/platform-blob-storage/api/Class.BlobHealthIndicator.md +7 -7
- package/data/packages/platform-blob-storage/api/Class.BlobModule.md +2 -2
- package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +3 -3
- package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +3 -3
- package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +5 -5
- package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +3 -3
- package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +3 -3
- package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +1 -1
- package/data/packages/platform-blob-storage/api/index.md +1 -1
- package/data/packages/platform-blob-storage/index.md +19 -14
- package/data/packages/platform-caching/api/Class.MemoryLayeredCache.md +10 -10
- package/data/packages/platform-caching/api/Class.NoopCacheMetricsRecorder.md +6 -6
- package/data/packages/platform-caching/api/Class.RedisLayeredCache.md +10 -10
- package/data/packages/platform-caching/api/Interface.ILayeredCache.md +9 -9
- package/data/packages/platform-caching/api/Interface.ILayeredCacheOptions.md +6 -6
- package/data/packages/platform-caching/api/Variable.CACHE_DEFAULT_TTL_MS.md +14 -0
- package/data/packages/platform-caching/api/Variable.CACHE_MAX_ENTRIES.md +14 -0
- package/data/packages/platform-caching/api/Variable.CACHE_STALE_WHILE_REVALIDATE.md +14 -0
- package/data/packages/platform-caching/api/Variable.PLATFORM_CACHING_CONFIG_ENTRIES.md +14 -0
- package/data/packages/platform-caching/api/Variable.REDIS_CONFIG_ENTRIES.md +14 -0
- package/data/packages/platform-caching/api/Variable.REDIS_KEY_PREFIX.md +14 -0
- package/data/packages/platform-caching/api/Variable.REDIS_TTL_SECONDS.md +14 -0
- package/data/packages/platform-caching/api/Variable.REDIS_URL.md +14 -0
- package/data/packages/platform-caching/api/index.md +13 -0
- package/data/packages/platform-caching/index.md +47 -1
- package/data/packages/platform-configuration/api/Function.createConfigKey.md +1 -1
- package/data/packages/platform-core/api/Class.HttpLoggerMiddleware.md +3 -3
- package/data/packages/platform-core/api/Function.maskSensitive.md +26 -0
- package/data/packages/platform-core/api/Function.maskSensitiveFields.md +26 -0
- package/data/packages/platform-core/api/index.md +2 -0
- package/data/packages/platform-core/index.md +11 -0
- package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +8 -6
- package/data/packages/platform-database/api/Class.DatabaseModule.md +3 -3
- package/data/packages/platform-database/api/Class.RepositoryBase.md +113 -49
- package/data/packages/platform-database/api/Class.RepositoryBase2.md +171 -0
- package/data/packages/platform-database/api/Function.aggregate.md +33 -0
- package/data/packages/platform-database/api/Function.aggregateRaw.md +34 -0
- package/data/packages/platform-database/api/Function.count.md +33 -0
- package/data/packages/platform-database/api/Function.create.md +33 -0
- package/data/packages/platform-database/api/Function.createMany.md +33 -0
- package/data/packages/platform-database/api/Function.createManyAndReturn.md +35 -0
- package/data/packages/platform-database/api/Function.findFirst.md +35 -0
- package/data/packages/platform-database/api/Function.findFirstOrThrow.md +34 -0
- package/data/packages/platform-database/api/Function.findMany.md +32 -0
- package/data/packages/platform-database/api/Function.findManyPaged.md +34 -0
- package/data/packages/platform-database/api/Function.findRaw.md +34 -0
- package/data/packages/platform-database/api/Function.findUnique.md +32 -0
- package/data/packages/platform-database/api/Function.findUniqueOrThrow.md +34 -0
- package/data/packages/platform-database/api/Function.groupBy.md +33 -0
- package/data/packages/platform-database/api/Function.paginator.md +1 -1
- package/data/packages/platform-database/api/Function.pipe.md +34 -0
- package/data/packages/platform-database/api/Function.pipeAll.md +35 -0
- package/data/packages/platform-database/api/Function.query2.md +35 -0
- package/data/packages/platform-database/api/Function.remove.md +33 -0
- package/data/packages/platform-database/api/Function.removeMany.md +33 -0
- package/data/packages/platform-database/api/Function.update.md +33 -0
- package/data/packages/platform-database/api/Function.updateMany.md +33 -0
- package/data/packages/platform-database/api/Function.updateManyAndReturn.md +35 -0
- package/data/packages/platform-database/api/Function.upsert.md +33 -0
- package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +3 -3
- package/data/packages/platform-database/api/Interface.IRepositoryQuery2.md +45 -0
- package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +1 -1
- package/data/packages/platform-database/api/TypeAlias.DelegateOperations.md +29 -0
- package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +1 -1
- package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +1 -1
- package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsAll.md +19 -0
- package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsBase.md +34 -0
- package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +1 -1
- package/data/packages/platform-database/api/index.md +29 -1
- package/data/packages/platform-database/index.md +17 -5
- package/data/packages/platform-documents/api/Class.DocumentEngine.md +9 -5
- package/data/packages/platform-documents/index.md +1 -1
- package/data/packages/platform-esigning/api/Class.AdobeSignEsigningProvider.md +24 -0
- package/data/packages/platform-esigning/api/Class.DocuSignEsigningProvider.md +24 -0
- package/data/packages/platform-esigning/api/Class.DropboxSignEsigningProvider.md +24 -0
- package/data/packages/platform-esigning/api/Class.EsigningClientPort.md +20 -0
- package/data/packages/platform-esigning/api/Class.EsigningHealthIndicator.md +78 -0
- package/data/packages/platform-esigning/api/Class.InternalEsigningProvider.md +24 -0
- package/data/packages/platform-esigning/api/index.md +1 -0
- package/data/packages/platform-esigning/index.md +26 -2
- package/data/packages/platform-health/api/Class.HealthModule.md +42 -0
- package/data/packages/platform-health/api/Class.HealthOrchestrator.md +64 -0
- package/data/packages/platform-health/api/Interface.IHealthCheckResult.md +46 -0
- package/data/packages/platform-health/api/Interface.IHealthIndicator.md +41 -0
- package/data/packages/platform-health/api/Variable.HEALTH_INDICATORS_TOKEN.md +14 -0
- package/data/packages/platform-health/api/index.md +26 -0
- package/data/packages/platform-health/index.md +18 -7
- package/data/packages/platform-intelligence/api/Class.IntelligenceHealthIndicator.md +78 -0
- package/data/packages/platform-intelligence/api/index.md +1 -0
- package/data/packages/platform-intelligence/index.md +24 -1
- package/data/packages/platform-logging/api/Class.ContextLogger.md +152 -0
- package/data/packages/platform-logging/api/Class.LoggerModule.md +8 -2
- package/data/packages/platform-logging/api/Class.RequestContextStore.md +90 -0
- package/data/packages/platform-logging/api/Class.RequestIdMiddleware.md +68 -0
- package/data/packages/platform-logging/api/Interface.IRequestContext.md +34 -0
- package/data/packages/platform-logging/api/Variable.REQUEST_ID_HEADER.md +14 -0
- package/data/packages/platform-logging/api/index.md +11 -1
- package/data/packages/platform-logging/index.md +89 -7
- package/data/packages/platform-mailing/api/Class.MailHealthIndicator.md +5 -5
- package/data/packages/platform-mailing/api/Class.MailModule.md +28 -1
- package/data/packages/platform-mailing/api/Class.MailVerificationService.md +49 -16
- package/data/packages/platform-mailing/api/Class.SmtpConnectionVerifier.md +84 -0
- package/data/packages/platform-mailing/api/Interface.IMailModuleOptions.md +36 -0
- package/data/packages/platform-mailing/api/index.md +3 -1
- package/data/packages/platform-mailing/index.md +64 -8
- package/data/packages/platform-mapping/api/Class.MappingBuilder.md +110 -0
- package/data/packages/platform-mapping/api/Class.MappingError.md +56 -0
- package/data/packages/platform-mapping/api/Class.MappingModule.md +46 -0
- package/data/packages/platform-mapping/api/Class.MappingNotRegisteredError.md +52 -0
- package/data/packages/platform-mapping/api/Class.MappingProfileBase.md +52 -0
- package/data/packages/platform-mapping/api/Class.MappingService.md +284 -0
- package/data/packages/platform-mapping/api/Class.TypeMappingNotRegisteredError.md +53 -0
- package/data/packages/platform-mapping/api/Function.createMappingKey.md +39 -0
- package/data/packages/platform-mapping/api/Interface.IMappingBuilder.md +76 -0
- package/data/packages/platform-mapping/api/Interface.IMappingKey.md +58 -0
- package/data/packages/platform-mapping/api/Interface.IMappingProfile.md +32 -0
- package/data/packages/platform-mapping/api/TypeAlias.Constructor.md +28 -0
- package/data/packages/platform-mapping/api/index.md +38 -0
- package/data/packages/platform-mcp/api/Class.McpHealthIndicator.md +78 -0
- package/data/packages/platform-mcp/api/index.md +1 -0
- package/data/packages/platform-mcp/index.md +24 -1
- package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +2 -2
- package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +2 -2
- package/data/packages/platform-payments/api/Class.LemonSqueezyClient.md +24 -0
- package/data/packages/platform-payments/api/Class.MollieClient.md +24 -0
- package/data/packages/platform-payments/api/Class.PaddleClient.md +24 -0
- package/data/packages/platform-payments/api/Class.PaymentClientPort.md +20 -0
- package/data/packages/platform-payments/api/Class.PaymentHealthIndicator.md +78 -0
- package/data/packages/platform-payments/api/Class.StripeClient.md +28 -4
- package/data/packages/platform-payments/api/index.md +1 -0
- package/data/packages/platform-payments/index.md +26 -2
- package/data/packages/platform-queue/api/Class.AzureQueue.md +221 -0
- package/data/packages/platform-queue/api/Class.BullMqQueue.md +220 -0
- package/data/packages/platform-queue/api/Class.MemoryQueue.md +194 -0
- package/data/packages/platform-queue/api/Class.QueueError.md +51 -0
- package/data/packages/platform-queue/api/Class.QueueHealthIndicator.md +68 -0
- package/data/packages/platform-queue/api/Class.QueueJobNotFoundError.md +43 -0
- package/data/packages/platform-queue/api/Class.QueueJobStateError.md +48 -0
- package/data/packages/platform-queue/api/Class.QueueValidationError.md +43 -0
- package/data/packages/platform-queue/api/Interface.IAzureQueueOptions.md +48 -0
- package/data/packages/platform-queue/api/Interface.IBullMqQueueOptions.md +45 -0
- package/data/packages/platform-queue/api/Interface.IMemoryQueueOptions.md +32 -0
- package/data/packages/platform-queue/api/Interface.IQueue.md +173 -0
- package/data/packages/platform-queue/api/Interface.IQueueJob.md +139 -0
- package/data/packages/platform-queue/api/TypeAlias.QueueJobStatus.md +14 -0
- package/data/packages/platform-queue/api/Variable.AZURE_CONFIG_ENTRIES.md +17 -0
- package/data/packages/platform-queue/api/Variable.AZURE_CONNECTION_STRING.md +14 -0
- package/data/packages/platform-queue/api/Variable.AZURE_RECEIVE_WAIT_MS.md +21 -0
- package/data/packages/platform-queue/api/Variable.BULLMQ_CONFIG_ENTRIES.md +17 -0
- package/data/packages/platform-queue/api/Variable.BULLMQ_PREFIX.md +18 -0
- package/data/packages/platform-queue/api/Variable.BULLMQ_REDIS_URL.md +21 -0
- package/data/packages/platform-queue/api/Variable.PLATFORM_QUEUE_CONFIG_ENTRIES.md +17 -0
- package/data/packages/platform-queue/api/Variable.QUEUE_JOB_STATUS.md +30 -0
- package/data/packages/platform-queue/api/Variable.QUEUE_MAX_JOBS.md +21 -0
- package/data/packages/platform-queue/api/index.md +49 -0
- package/data/packages/platform-queue/index.md +168 -0
- package/data/packages/platform-resources/api/Class.BlobResourceStrategy.md +195 -0
- package/data/packages/platform-resources/api/Class.EmbeddedResourceStrategy.md +215 -0
- package/data/packages/platform-resources/api/Class.FileResourceStrategy.md +190 -0
- package/data/packages/platform-resources/api/Class.ResourceManager.md +477 -0
- package/data/packages/platform-resources/api/Class.ResourceModule.md +46 -0
- package/data/packages/platform-resources/api/Class.ResourceNotFoundError.md +60 -0
- package/data/packages/platform-resources/api/Interface.IBlobResourceStrategyConfig.md +28 -0
- package/data/packages/platform-resources/api/Interface.IBlobServiceAdapter.md +40 -0
- package/data/packages/platform-resources/api/Interface.IFileResourceStrategyConfig.md +72 -0
- package/data/packages/platform-resources/api/Interface.IResourceManagerConfig.md +89 -0
- package/data/packages/platform-resources/api/Interface.IResourceMetadata.md +94 -0
- package/data/packages/platform-resources/api/Interface.IResourceResult.md +34 -0
- package/data/packages/platform-resources/api/Interface.IResourceStrategy.md +134 -0
- package/data/packages/platform-resources/api/index.md +29 -0
- package/data/packages/platform-telemetry/api/Class.OtelSdkHolder.md +20 -2
- package/data/packages/platform-telemetry/api/Class.TelemetryHealthIndicator.md +78 -0
- package/data/packages/platform-telemetry/api/index.md +1 -0
- package/data/packages/platform-telemetry/index.md +25 -1
- package/data/patterns/config-pattern.md +3 -1
- package/package.json +1 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Class: McpHealthIndicator'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Class: McpHealthIndicator
|
|
7
|
+
|
|
8
|
+
Defined in: [health/McpHealthIndicator.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-mcp/src/health/McpHealthIndicator.ts#L17)
|
|
9
|
+
|
|
10
|
+
Health indicator for the MCP server infrastructure.
|
|
11
|
+
Verifies that at least one tool, resource, or prompt handler is registered.
|
|
12
|
+
|
|
13
|
+
## Implements
|
|
14
|
+
|
|
15
|
+
- `IHealthIndicator`
|
|
16
|
+
|
|
17
|
+
## Constructors
|
|
18
|
+
|
|
19
|
+
### Constructor
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
new McpHealthIndicator(registry?): McpHealthIndicator;
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Defined in: [health/McpHealthIndicator.ts:26](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-mcp/src/health/McpHealthIndicator.ts#L26)
|
|
26
|
+
|
|
27
|
+
#### Parameters
|
|
28
|
+
|
|
29
|
+
| Parameter | Type |
|
|
30
|
+
| ------ | ------ |
|
|
31
|
+
| `registry?` | [`McpRegistryService`](Class.McpRegistryService) |
|
|
32
|
+
|
|
33
|
+
#### Returns
|
|
34
|
+
|
|
35
|
+
`McpHealthIndicator`
|
|
36
|
+
|
|
37
|
+
## Properties
|
|
38
|
+
|
|
39
|
+
### key
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
readonly key: string = 'mcp';
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Defined in: [health/McpHealthIndicator.ts:34](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-mcp/src/health/McpHealthIndicator.ts#L34)
|
|
46
|
+
|
|
47
|
+
Unique key identifying the indicator
|
|
48
|
+
|
|
49
|
+
#### Implementation of
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
IHealthIndicator.key
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Methods
|
|
56
|
+
|
|
57
|
+
### check()
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
check(): HealthIndicatorResult<string>;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Defined in: [health/McpHealthIndicator.ts:47](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-mcp/src/health/McpHealthIndicator.ts#L47)
|
|
64
|
+
|
|
65
|
+
Verifies that the MCP registry has at least one registered handler.
|
|
66
|
+
Returns disabled status when no registry is configured.
|
|
67
|
+
|
|
68
|
+
#### Returns
|
|
69
|
+
|
|
70
|
+
`HealthIndicatorResult`\<`string`\>
|
|
71
|
+
|
|
72
|
+
The health indicator result.
|
|
73
|
+
|
|
74
|
+
#### Implementation of
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
IHealthIndicator.check
|
|
78
|
+
```
|
|
@@ -10,6 +10,7 @@ editUrl: false
|
|
|
10
10
|
| Class | Description |
|
|
11
11
|
| ------ | ------ |
|
|
12
12
|
| [McpDiscoveryService](Class.McpDiscoveryService) | Discovers all NestJS providers that have methods decorated with `@McpTool`, `@McpResource`, or `@McpPrompt` and registers them in the [McpRegistryService](Class.McpRegistryService). |
|
|
13
|
+
| [McpHealthIndicator](Class.McpHealthIndicator) | Health indicator for the MCP server infrastructure. Verifies that at least one tool, resource, or prompt handler is registered. |
|
|
13
14
|
| [McpModule](Class.McpModule) | NestJS dynamic module that bootstraps an MCP server. |
|
|
14
15
|
| [McpRegistryService](Class.McpRegistryService) | Central registry that stores all MCP tool, resource, and prompt handlers discovered from NestJS providers. |
|
|
15
16
|
| [McpServerService](Class.McpServerService) | Manages the MCP server lifecycle. Creates the `McpServer` instance, registers all discovered handlers from the registry, and provides methods to connect various transports. |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: platform-mcp
|
|
3
3
|
description: Reusable NestJS module for building Model Context Protocol (MCP) servers with decorator-driven handler registration and multi-transport support.
|
|
4
4
|
order: 13
|
|
5
|
-
tags: [mcp, model-context-protocol, tools, resources, prompts, transports]
|
|
5
|
+
tags: [mcp, model-context-protocol, tools, resources, prompts, transports, health]
|
|
6
6
|
package: '@breadstone/archipel-platform-mcp'
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -300,6 +300,29 @@ graph TD
|
|
|
300
300
|
|
|
301
301
|
---
|
|
302
302
|
|
|
303
|
+
## Health Check
|
|
304
|
+
|
|
305
|
+
The `McpHealthIndicator` verifies that the `McpRegistryService` is injected. If no MCP registry is available, it reports `disabled: true`. Import it from the `/health` subpath:
|
|
306
|
+
|
|
307
|
+
```typescript
|
|
308
|
+
import { McpHealthIndicator } from '@breadstone/archipel-platform-mcp/health';
|
|
309
|
+
import { HealthModule } from '@breadstone/archipel-platform-health';
|
|
310
|
+
|
|
311
|
+
@Module({
|
|
312
|
+
imports: [
|
|
313
|
+
McpModule.register({ /* ... */ }),
|
|
314
|
+
HealthModule.withIndicators([McpHealthIndicator]),
|
|
315
|
+
],
|
|
316
|
+
})
|
|
317
|
+
export class AppModule {}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
| Key | Check | Dependencies |
|
|
321
|
+
| --- | ----- | ------------ |
|
|
322
|
+
| `mcp` | `up` if `McpRegistryService` injected, else `disabled` | `@Optional() McpRegistryService` |
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
303
326
|
## Resource Limits & Shutdown
|
|
304
327
|
|
|
305
328
|
| Limit | Value | Description |
|
|
@@ -6,7 +6,7 @@ editUrl: false
|
|
|
6
6
|
# Function: SwaggerFeature()
|
|
7
7
|
|
|
8
8
|
```ts
|
|
9
|
-
function SwaggerFeature(metadata): (target) =>
|
|
9
|
+
function SwaggerFeature(metadata): (target) => (...args) => object;
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
Defined in: [decorators/SwaggerFeature.ts:92](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-openapi/src/decorators/SwaggerFeature.ts#L92)
|
|
@@ -22,7 +22,7 @@ This allows the SwaggerMultiDocumentService to automatically discover and create
|
|
|
22
22
|
|
|
23
23
|
## Returns
|
|
24
24
|
|
|
25
|
-
(`target`) => `
|
|
25
|
+
(`target`) => (...`args`) => `object`
|
|
26
26
|
|
|
27
27
|
## Example
|
|
28
28
|
|
|
@@ -11,7 +11,7 @@ function getSwaggerFeatureMetadata(target):
|
|
|
11
11
|
| undefined;
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
Defined in: [decorators/SwaggerFeature.ts:
|
|
14
|
+
Defined in: [decorators/SwaggerFeature.ts:111](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-openapi/src/decorators/SwaggerFeature.ts#L111)
|
|
15
15
|
|
|
16
16
|
Get the Swagger feature metadata from a module class
|
|
17
17
|
|
|
@@ -19,7 +19,7 @@ Get the Swagger feature metadata from a module class
|
|
|
19
19
|
|
|
20
20
|
| Parameter | Type |
|
|
21
21
|
| ------ | ------ |
|
|
22
|
-
| `target` | `
|
|
22
|
+
| `target` | (...`args`) => `object` |
|
|
23
23
|
|
|
24
24
|
## Returns
|
|
25
25
|
|
|
@@ -161,3 +161,27 @@ Normalized subscription or `null` if not found.
|
|
|
161
161
|
#### Overrides
|
|
162
162
|
|
|
163
163
|
[`PaymentClientPort`](Class.PaymentClientPort).[`fetchSubscription`](Class.PaymentClientPort#fetchsubscription)
|
|
164
|
+
|
|
165
|
+
***
|
|
166
|
+
|
|
167
|
+
### ping()
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
ping(): Promise<boolean>;
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Defined in: [contracts/PaymentClientPort.ts:76](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/PaymentClientPort.ts#L76)
|
|
174
|
+
|
|
175
|
+
Lightweight connectivity check for the payment provider.
|
|
176
|
+
Override in adapters to perform a real API call (e.g. list products).
|
|
177
|
+
Defaults to `true` if not overridden.
|
|
178
|
+
|
|
179
|
+
#### Returns
|
|
180
|
+
|
|
181
|
+
`Promise`\<`boolean`\>
|
|
182
|
+
|
|
183
|
+
`true` if the provider is reachable.
|
|
184
|
+
|
|
185
|
+
#### Inherited from
|
|
186
|
+
|
|
187
|
+
[`PaymentClientPort`](Class.PaymentClientPort).[`ping`](Class.PaymentClientPort#ping)
|
|
@@ -164,3 +164,27 @@ Normalized subscription or `null` if not found.
|
|
|
164
164
|
#### Overrides
|
|
165
165
|
|
|
166
166
|
[`PaymentClientPort`](Class.PaymentClientPort).[`fetchSubscription`](Class.PaymentClientPort#fetchsubscription)
|
|
167
|
+
|
|
168
|
+
***
|
|
169
|
+
|
|
170
|
+
### ping()
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
ping(): Promise<boolean>;
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Defined in: [contracts/PaymentClientPort.ts:76](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/PaymentClientPort.ts#L76)
|
|
177
|
+
|
|
178
|
+
Lightweight connectivity check for the payment provider.
|
|
179
|
+
Override in adapters to perform a real API call (e.g. list products).
|
|
180
|
+
Defaults to `true` if not overridden.
|
|
181
|
+
|
|
182
|
+
#### Returns
|
|
183
|
+
|
|
184
|
+
`Promise`\<`boolean`\>
|
|
185
|
+
|
|
186
|
+
`true` if the provider is reachable.
|
|
187
|
+
|
|
188
|
+
#### Inherited from
|
|
189
|
+
|
|
190
|
+
[`PaymentClientPort`](Class.PaymentClientPort).[`ping`](Class.PaymentClientPort#ping)
|
|
@@ -161,3 +161,27 @@ Normalized subscription or `null` if not found.
|
|
|
161
161
|
#### Overrides
|
|
162
162
|
|
|
163
163
|
[`PaymentClientPort`](Class.PaymentClientPort).[`fetchSubscription`](Class.PaymentClientPort#fetchsubscription)
|
|
164
|
+
|
|
165
|
+
***
|
|
166
|
+
|
|
167
|
+
### ping()
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
ping(): Promise<boolean>;
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Defined in: [contracts/PaymentClientPort.ts:76](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/PaymentClientPort.ts#L76)
|
|
174
|
+
|
|
175
|
+
Lightweight connectivity check for the payment provider.
|
|
176
|
+
Override in adapters to perform a real API call (e.g. list products).
|
|
177
|
+
Defaults to `true` if not overridden.
|
|
178
|
+
|
|
179
|
+
#### Returns
|
|
180
|
+
|
|
181
|
+
`Promise`\<`boolean`\>
|
|
182
|
+
|
|
183
|
+
`true` if the provider is reachable.
|
|
184
|
+
|
|
185
|
+
#### Inherited from
|
|
186
|
+
|
|
187
|
+
[`PaymentClientPort`](Class.PaymentClientPort).[`ping`](Class.PaymentClientPort#ping)
|
|
@@ -140,3 +140,23 @@ Retrieve subscription details.
|
|
|
140
140
|
\| `null`\>
|
|
141
141
|
|
|
142
142
|
Normalized subscription or `null` if not found.
|
|
143
|
+
|
|
144
|
+
***
|
|
145
|
+
|
|
146
|
+
### ping()
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
ping(): Promise<boolean>;
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Defined in: [contracts/PaymentClientPort.ts:76](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/PaymentClientPort.ts#L76)
|
|
153
|
+
|
|
154
|
+
Lightweight connectivity check for the payment provider.
|
|
155
|
+
Override in adapters to perform a real API call (e.g. list products).
|
|
156
|
+
Defaults to `true` if not overridden.
|
|
157
|
+
|
|
158
|
+
#### Returns
|
|
159
|
+
|
|
160
|
+
`Promise`\<`boolean`\>
|
|
161
|
+
|
|
162
|
+
`true` if the provider is reachable.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Class: PaymentHealthIndicator'
|
|
3
|
+
generated: true
|
|
4
|
+
editUrl: false
|
|
5
|
+
---
|
|
6
|
+
# Class: PaymentHealthIndicator
|
|
7
|
+
|
|
8
|
+
Defined in: [health/PaymentHealthIndicator.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/health/PaymentHealthIndicator.ts#L17)
|
|
9
|
+
|
|
10
|
+
Health indicator for the payment infrastructure.
|
|
11
|
+
Calls [PaymentClientPort.ping](Class.PaymentClientPort#ping) to verify provider connectivity.
|
|
12
|
+
|
|
13
|
+
## Implements
|
|
14
|
+
|
|
15
|
+
- `IHealthIndicator`
|
|
16
|
+
|
|
17
|
+
## Constructors
|
|
18
|
+
|
|
19
|
+
### Constructor
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
new PaymentHealthIndicator(paymentClient?): PaymentHealthIndicator;
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Defined in: [health/PaymentHealthIndicator.ts:27](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/health/PaymentHealthIndicator.ts#L27)
|
|
26
|
+
|
|
27
|
+
#### Parameters
|
|
28
|
+
|
|
29
|
+
| Parameter | Type |
|
|
30
|
+
| ------ | ------ |
|
|
31
|
+
| `paymentClient?` | [`PaymentClientPort`](Class.PaymentClientPort) |
|
|
32
|
+
|
|
33
|
+
#### Returns
|
|
34
|
+
|
|
35
|
+
`PaymentHealthIndicator`
|
|
36
|
+
|
|
37
|
+
## Properties
|
|
38
|
+
|
|
39
|
+
### key
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
readonly key: string = 'payment';
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Defined in: [health/PaymentHealthIndicator.ts:35](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/health/PaymentHealthIndicator.ts#L35)
|
|
46
|
+
|
|
47
|
+
Unique key identifying the indicator
|
|
48
|
+
|
|
49
|
+
#### Implementation of
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
IHealthIndicator.key
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Methods
|
|
56
|
+
|
|
57
|
+
### check()
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
check(): Promise<HealthIndicatorResult<string>>;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Defined in: [health/PaymentHealthIndicator.ts:48](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/health/PaymentHealthIndicator.ts#L48)
|
|
64
|
+
|
|
65
|
+
Pings the payment provider to verify connectivity.
|
|
66
|
+
Returns disabled status when no client is configured.
|
|
67
|
+
|
|
68
|
+
#### Returns
|
|
69
|
+
|
|
70
|
+
`Promise`\<`HealthIndicatorResult`\<`string`\>\>
|
|
71
|
+
|
|
72
|
+
The health indicator result.
|
|
73
|
+
|
|
74
|
+
#### Implementation of
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
IHealthIndicator.check
|
|
78
|
+
```
|
|
@@ -46,7 +46,7 @@ Defined in: [stripe/StripeClient.ts:40](https://github.com/RueDeRennes/archipel/
|
|
|
46
46
|
constructWebhookEvent(payload, signature): INormalizedWebhookEvent;
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
Defined in: [stripe/StripeClient.ts:
|
|
49
|
+
Defined in: [stripe/StripeClient.ts:156](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L156)
|
|
50
50
|
|
|
51
51
|
Construct and normalize a webhook event.
|
|
52
52
|
|
|
@@ -79,7 +79,7 @@ createCheckoutSession(
|
|
|
79
79
|
userId?): Promise<INormalizedCheckoutSession>;
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
Defined in: [stripe/StripeClient.ts:
|
|
82
|
+
Defined in: [stripe/StripeClient.ts:91](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L91)
|
|
83
83
|
|
|
84
84
|
Create a checkout session.
|
|
85
85
|
|
|
@@ -110,7 +110,7 @@ Normalized checkout session
|
|
|
110
110
|
fetchPrices(productId): Promise<INormalizedPrice[]>;
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
Defined in: [stripe/StripeClient.ts:
|
|
113
|
+
Defined in: [stripe/StripeClient.ts:62](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L62)
|
|
114
114
|
|
|
115
115
|
Fetch all active prices for a product.
|
|
116
116
|
|
|
@@ -140,7 +140,7 @@ fetchSubscription(subscriptionId): Promise<
|
|
|
140
140
|
| null>;
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
-
Defined in: [stripe/StripeClient.ts:
|
|
143
|
+
Defined in: [stripe/StripeClient.ts:131](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L131)
|
|
144
144
|
|
|
145
145
|
Retrieve subscription details.
|
|
146
146
|
|
|
@@ -161,3 +161,27 @@ Normalized subscription
|
|
|
161
161
|
#### Overrides
|
|
162
162
|
|
|
163
163
|
[`PaymentClientPort`](Class.PaymentClientPort).[`fetchSubscription`](Class.PaymentClientPort#fetchsubscription)
|
|
164
|
+
|
|
165
|
+
***
|
|
166
|
+
|
|
167
|
+
### ping()
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
ping(): Promise<boolean>;
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Defined in: [contracts/PaymentClientPort.ts:76](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/PaymentClientPort.ts#L76)
|
|
174
|
+
|
|
175
|
+
Lightweight connectivity check for the payment provider.
|
|
176
|
+
Override in adapters to perform a real API call (e.g. list products).
|
|
177
|
+
Defaults to `true` if not overridden.
|
|
178
|
+
|
|
179
|
+
#### Returns
|
|
180
|
+
|
|
181
|
+
`Promise`\<`boolean`\>
|
|
182
|
+
|
|
183
|
+
`true` if the provider is reachable.
|
|
184
|
+
|
|
185
|
+
#### Inherited from
|
|
186
|
+
|
|
187
|
+
[`PaymentClientPort`](Class.PaymentClientPort).[`ping`](Class.PaymentClientPort#ping)
|
|
@@ -17,6 +17,7 @@ editUrl: false
|
|
|
17
17
|
| [PaddleClient](Class.PaddleClient) | Paddle implementation of the [PaymentClientPort](Class.PaymentClientPort). Uses the official `@paddle/paddle-node-sdk` to interact with the Paddle Billing API. |
|
|
18
18
|
| [PaymentClientPort](Class.PaymentClientPort) | Abstract port for payment provider clients. Each provider (Stripe, Paddle, LemonSqueezy, Mollie) must implement this contract so that the consuming application can switch providers without changing business logic. |
|
|
19
19
|
| [PaymentError](Class.PaymentError) | Domain error thrown when a payment operation fails. |
|
|
20
|
+
| [PaymentHealthIndicator](Class.PaymentHealthIndicator) | Health indicator for the payment infrastructure. Calls [PaymentClientPort.ping](Class.PaymentClientPort#ping) to verify provider connectivity. |
|
|
20
21
|
| [PaymentModule](Class.PaymentModule) | NestJS module providing generic payment infrastructure. Exposes a configurable payment client, a feature-gating guard, and a usage-tracking interceptor. The specific payment provider (Stripe, Paddle, LemonSqueezy, Mollie) is selected via the options. |
|
|
21
22
|
| [StripeClient](Class.StripeClient) | Stripe implementation of the [PaymentClientPort](Class.PaymentClientPort). All Stripe-specific types and logic are encapsulated here. |
|
|
22
23
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: platform-payments
|
|
3
3
|
description: Provider-agnostic payment infrastructure with support for Stripe, Paddle, LemonSqueezy, and Mollie.
|
|
4
4
|
order: 4
|
|
5
|
-
tags: [payments, stripe, paddle, lemonsqueezy, mollie, feature-gating, quotas, guards, interceptors, ports-and-adapters]
|
|
5
|
+
tags: [payments, stripe, paddle, lemonsqueezy, mollie, feature-gating, quotas, guards, interceptors, ports-and-adapters, health]
|
|
6
6
|
package: '@breadstone/archipel-platform-payments'
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -151,7 +151,7 @@ import { LemonSqueezyClient, LEMONSQUEEZY_CONFIG_ENTRIES } from '@breadstone/arc
|
|
|
151
151
|
| Variable | Description | Required |
|
|
152
152
|
| ----------------------- | -------------------------------------- | -------- |
|
|
153
153
|
| `MOLLIE_API_KEY` | Mollie API key | Yes |
|
|
154
|
-
| `MOLLIE_WEBHOOK_SECRET` | Mollie webhook secret for verification |
|
|
154
|
+
| `MOLLIE_WEBHOOK_SECRET` | Mollie webhook secret for verification | Yes |
|
|
155
155
|
|
|
156
156
|
```typescript
|
|
157
157
|
import { MollieClient, MOLLIE_CONFIG_ENTRIES } from '@breadstone/archipel-platform-payments/mollie';
|
|
@@ -532,6 +532,29 @@ try {
|
|
|
532
532
|
|
|
533
533
|
---
|
|
534
534
|
|
|
535
|
+
## Health Check
|
|
536
|
+
|
|
537
|
+
The `PaymentHealthIndicator` verifies that a `PaymentClientPort` is injected. If no payment client is registered, it reports `disabled: true`. Import it from the `/health` subpath:
|
|
538
|
+
|
|
539
|
+
```typescript
|
|
540
|
+
import { PaymentHealthIndicator } from '@breadstone/archipel-platform-payments/health';
|
|
541
|
+
import { HealthModule } from '@breadstone/archipel-platform-health';
|
|
542
|
+
|
|
543
|
+
@Module({
|
|
544
|
+
imports: [
|
|
545
|
+
PaymentModule.register({ /* ... */ }),
|
|
546
|
+
HealthModule.withIndicators([PaymentHealthIndicator]),
|
|
547
|
+
],
|
|
548
|
+
})
|
|
549
|
+
export class AppModule {}
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
| Key | Check | Dependencies |
|
|
553
|
+
| --- | ----- | ------------ |
|
|
554
|
+
| `payment` | `up` if `PaymentClientPort` injected, else `disabled` | `@Optional() PaymentClientPort` |
|
|
555
|
+
|
|
556
|
+
---
|
|
557
|
+
|
|
535
558
|
## Exports Summary
|
|
536
559
|
|
|
537
560
|
### Core (`@breadstone/archipel-platform-payments`)
|
|
@@ -552,6 +575,7 @@ try {
|
|
|
552
575
|
| `INormalizedWebhookEvent` | Interface | Normalized webhook event |
|
|
553
576
|
| `SubscriptionStatus` | Type Alias | Subscription status union |
|
|
554
577
|
| `PaymentError` | Error class | Domain error for payment failures |
|
|
578
|
+
| `PaymentHealthIndicator` | Health | Payment readiness check (`/health` subpath) |
|
|
555
579
|
|
|
556
580
|
### Provider subpaths
|
|
557
581
|
|