@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.
Files changed (194) hide show
  1. package/data/guides/caching.md +33 -0
  2. package/data/guides/email-delivery.md +27 -1
  3. package/data/guides/esigning-integration.md +11 -5
  4. package/data/guides/health-indicators.md +220 -0
  5. package/data/guides/index.md +2 -0
  6. package/data/guides/queue-infrastructure.md +329 -0
  7. package/data/guides/telemetry-and-observability.md +20 -0
  8. package/data/packages/platform-analytics/api/Class.AnalyticsClientPort.md +20 -0
  9. package/data/packages/platform-analytics/api/Class.AnalyticsHealthIndicator.md +78 -0
  10. package/data/packages/platform-analytics/api/Class.AppInsightsAnalyticsClient.md +24 -0
  11. package/data/packages/platform-analytics/api/Class.DatadogAnalyticsClient.md +24 -0
  12. package/data/packages/platform-analytics/api/Class.NoopAnalyticsClient.md +24 -0
  13. package/data/packages/platform-analytics/api/Class.SentryAnalyticsClient.md +24 -0
  14. package/data/packages/platform-analytics/api/index.md +1 -0
  15. package/data/packages/platform-analytics/index.md +25 -1
  16. package/data/packages/platform-authentication/api/Class.AuthenticationHealthIndicator.md +68 -0
  17. package/data/packages/platform-authentication/api/index.md +1 -0
  18. package/data/packages/platform-authentication/index.md +25 -1
  19. package/data/packages/platform-blob-storage/api/Class.BlobHealthIndicator.md +7 -7
  20. package/data/packages/platform-blob-storage/api/Class.BlobModule.md +2 -2
  21. package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +3 -3
  22. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +3 -3
  23. package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +5 -5
  24. package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +3 -3
  25. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +3 -3
  26. package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +1 -1
  27. package/data/packages/platform-blob-storage/api/index.md +1 -1
  28. package/data/packages/platform-blob-storage/index.md +19 -14
  29. package/data/packages/platform-caching/api/Class.MemoryLayeredCache.md +10 -10
  30. package/data/packages/platform-caching/api/Class.NoopCacheMetricsRecorder.md +6 -6
  31. package/data/packages/platform-caching/api/Class.RedisLayeredCache.md +10 -10
  32. package/data/packages/platform-caching/api/Interface.ILayeredCache.md +9 -9
  33. package/data/packages/platform-caching/api/Interface.ILayeredCacheOptions.md +6 -6
  34. package/data/packages/platform-caching/api/Variable.CACHE_DEFAULT_TTL_MS.md +14 -0
  35. package/data/packages/platform-caching/api/Variable.CACHE_MAX_ENTRIES.md +14 -0
  36. package/data/packages/platform-caching/api/Variable.CACHE_STALE_WHILE_REVALIDATE.md +14 -0
  37. package/data/packages/platform-caching/api/Variable.PLATFORM_CACHING_CONFIG_ENTRIES.md +14 -0
  38. package/data/packages/platform-caching/api/Variable.REDIS_CONFIG_ENTRIES.md +14 -0
  39. package/data/packages/platform-caching/api/Variable.REDIS_KEY_PREFIX.md +14 -0
  40. package/data/packages/platform-caching/api/Variable.REDIS_TTL_SECONDS.md +14 -0
  41. package/data/packages/platform-caching/api/Variable.REDIS_URL.md +14 -0
  42. package/data/packages/platform-caching/api/index.md +13 -0
  43. package/data/packages/platform-caching/index.md +47 -1
  44. package/data/packages/platform-configuration/api/Function.createConfigKey.md +1 -1
  45. package/data/packages/platform-core/api/Class.HttpLoggerMiddleware.md +3 -3
  46. package/data/packages/platform-core/api/Function.maskSensitive.md +26 -0
  47. package/data/packages/platform-core/api/Function.maskSensitiveFields.md +26 -0
  48. package/data/packages/platform-core/api/index.md +2 -0
  49. package/data/packages/platform-core/index.md +11 -0
  50. package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +8 -6
  51. package/data/packages/platform-database/api/Class.DatabaseModule.md +3 -3
  52. package/data/packages/platform-database/api/Class.RepositoryBase.md +113 -49
  53. package/data/packages/platform-database/api/Class.RepositoryBase2.md +171 -0
  54. package/data/packages/platform-database/api/Function.aggregate.md +33 -0
  55. package/data/packages/platform-database/api/Function.aggregateRaw.md +34 -0
  56. package/data/packages/platform-database/api/Function.count.md +33 -0
  57. package/data/packages/platform-database/api/Function.create.md +33 -0
  58. package/data/packages/platform-database/api/Function.createMany.md +33 -0
  59. package/data/packages/platform-database/api/Function.createManyAndReturn.md +35 -0
  60. package/data/packages/platform-database/api/Function.findFirst.md +35 -0
  61. package/data/packages/platform-database/api/Function.findFirstOrThrow.md +34 -0
  62. package/data/packages/platform-database/api/Function.findMany.md +32 -0
  63. package/data/packages/platform-database/api/Function.findManyPaged.md +34 -0
  64. package/data/packages/platform-database/api/Function.findRaw.md +34 -0
  65. package/data/packages/platform-database/api/Function.findUnique.md +32 -0
  66. package/data/packages/platform-database/api/Function.findUniqueOrThrow.md +34 -0
  67. package/data/packages/platform-database/api/Function.groupBy.md +33 -0
  68. package/data/packages/platform-database/api/Function.paginator.md +1 -1
  69. package/data/packages/platform-database/api/Function.pipe.md +34 -0
  70. package/data/packages/platform-database/api/Function.pipeAll.md +35 -0
  71. package/data/packages/platform-database/api/Function.query2.md +35 -0
  72. package/data/packages/platform-database/api/Function.remove.md +33 -0
  73. package/data/packages/platform-database/api/Function.removeMany.md +33 -0
  74. package/data/packages/platform-database/api/Function.update.md +33 -0
  75. package/data/packages/platform-database/api/Function.updateMany.md +33 -0
  76. package/data/packages/platform-database/api/Function.updateManyAndReturn.md +35 -0
  77. package/data/packages/platform-database/api/Function.upsert.md +33 -0
  78. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +3 -3
  79. package/data/packages/platform-database/api/Interface.IRepositoryQuery2.md +45 -0
  80. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +1 -1
  81. package/data/packages/platform-database/api/TypeAlias.DelegateOperations.md +29 -0
  82. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +1 -1
  83. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +1 -1
  84. package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsAll.md +19 -0
  85. package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsBase.md +34 -0
  86. package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +1 -1
  87. package/data/packages/platform-database/api/index.md +29 -1
  88. package/data/packages/platform-database/index.md +17 -5
  89. package/data/packages/platform-documents/api/Class.DocumentEngine.md +9 -5
  90. package/data/packages/platform-documents/index.md +1 -1
  91. package/data/packages/platform-esigning/api/Class.AdobeSignEsigningProvider.md +24 -0
  92. package/data/packages/platform-esigning/api/Class.DocuSignEsigningProvider.md +24 -0
  93. package/data/packages/platform-esigning/api/Class.DropboxSignEsigningProvider.md +24 -0
  94. package/data/packages/platform-esigning/api/Class.EsigningClientPort.md +20 -0
  95. package/data/packages/platform-esigning/api/Class.EsigningHealthIndicator.md +78 -0
  96. package/data/packages/platform-esigning/api/Class.InternalEsigningProvider.md +24 -0
  97. package/data/packages/platform-esigning/api/index.md +1 -0
  98. package/data/packages/platform-esigning/index.md +26 -2
  99. package/data/packages/platform-health/api/Class.HealthModule.md +42 -0
  100. package/data/packages/platform-health/api/Class.HealthOrchestrator.md +64 -0
  101. package/data/packages/platform-health/api/Interface.IHealthCheckResult.md +46 -0
  102. package/data/packages/platform-health/api/Interface.IHealthIndicator.md +41 -0
  103. package/data/packages/platform-health/api/Variable.HEALTH_INDICATORS_TOKEN.md +14 -0
  104. package/data/packages/platform-health/api/index.md +26 -0
  105. package/data/packages/platform-health/index.md +18 -7
  106. package/data/packages/platform-intelligence/api/Class.IntelligenceHealthIndicator.md +78 -0
  107. package/data/packages/platform-intelligence/api/index.md +1 -0
  108. package/data/packages/platform-intelligence/index.md +24 -1
  109. package/data/packages/platform-logging/api/Class.ContextLogger.md +152 -0
  110. package/data/packages/platform-logging/api/Class.LoggerModule.md +8 -2
  111. package/data/packages/platform-logging/api/Class.RequestContextStore.md +90 -0
  112. package/data/packages/platform-logging/api/Class.RequestIdMiddleware.md +68 -0
  113. package/data/packages/platform-logging/api/Interface.IRequestContext.md +34 -0
  114. package/data/packages/platform-logging/api/Variable.REQUEST_ID_HEADER.md +14 -0
  115. package/data/packages/platform-logging/api/index.md +11 -1
  116. package/data/packages/platform-logging/index.md +89 -7
  117. package/data/packages/platform-mailing/api/Class.MailHealthIndicator.md +5 -5
  118. package/data/packages/platform-mailing/api/Class.MailModule.md +28 -1
  119. package/data/packages/platform-mailing/api/Class.MailVerificationService.md +49 -16
  120. package/data/packages/platform-mailing/api/Class.SmtpConnectionVerifier.md +84 -0
  121. package/data/packages/platform-mailing/api/Interface.IMailModuleOptions.md +36 -0
  122. package/data/packages/platform-mailing/api/index.md +3 -1
  123. package/data/packages/platform-mailing/index.md +64 -8
  124. package/data/packages/platform-mapping/api/Class.MappingBuilder.md +110 -0
  125. package/data/packages/platform-mapping/api/Class.MappingError.md +56 -0
  126. package/data/packages/platform-mapping/api/Class.MappingModule.md +46 -0
  127. package/data/packages/platform-mapping/api/Class.MappingNotRegisteredError.md +52 -0
  128. package/data/packages/platform-mapping/api/Class.MappingProfileBase.md +52 -0
  129. package/data/packages/platform-mapping/api/Class.MappingService.md +284 -0
  130. package/data/packages/platform-mapping/api/Class.TypeMappingNotRegisteredError.md +53 -0
  131. package/data/packages/platform-mapping/api/Function.createMappingKey.md +39 -0
  132. package/data/packages/platform-mapping/api/Interface.IMappingBuilder.md +76 -0
  133. package/data/packages/platform-mapping/api/Interface.IMappingKey.md +58 -0
  134. package/data/packages/platform-mapping/api/Interface.IMappingProfile.md +32 -0
  135. package/data/packages/platform-mapping/api/TypeAlias.Constructor.md +28 -0
  136. package/data/packages/platform-mapping/api/index.md +38 -0
  137. package/data/packages/platform-mcp/api/Class.McpHealthIndicator.md +78 -0
  138. package/data/packages/platform-mcp/api/index.md +1 -0
  139. package/data/packages/platform-mcp/index.md +24 -1
  140. package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +2 -2
  141. package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +2 -2
  142. package/data/packages/platform-payments/api/Class.LemonSqueezyClient.md +24 -0
  143. package/data/packages/platform-payments/api/Class.MollieClient.md +24 -0
  144. package/data/packages/platform-payments/api/Class.PaddleClient.md +24 -0
  145. package/data/packages/platform-payments/api/Class.PaymentClientPort.md +20 -0
  146. package/data/packages/platform-payments/api/Class.PaymentHealthIndicator.md +78 -0
  147. package/data/packages/platform-payments/api/Class.StripeClient.md +28 -4
  148. package/data/packages/platform-payments/api/index.md +1 -0
  149. package/data/packages/platform-payments/index.md +26 -2
  150. package/data/packages/platform-queue/api/Class.AzureQueue.md +221 -0
  151. package/data/packages/platform-queue/api/Class.BullMqQueue.md +220 -0
  152. package/data/packages/platform-queue/api/Class.MemoryQueue.md +194 -0
  153. package/data/packages/platform-queue/api/Class.QueueError.md +51 -0
  154. package/data/packages/platform-queue/api/Class.QueueHealthIndicator.md +68 -0
  155. package/data/packages/platform-queue/api/Class.QueueJobNotFoundError.md +43 -0
  156. package/data/packages/platform-queue/api/Class.QueueJobStateError.md +48 -0
  157. package/data/packages/platform-queue/api/Class.QueueValidationError.md +43 -0
  158. package/data/packages/platform-queue/api/Interface.IAzureQueueOptions.md +48 -0
  159. package/data/packages/platform-queue/api/Interface.IBullMqQueueOptions.md +45 -0
  160. package/data/packages/platform-queue/api/Interface.IMemoryQueueOptions.md +32 -0
  161. package/data/packages/platform-queue/api/Interface.IQueue.md +173 -0
  162. package/data/packages/platform-queue/api/Interface.IQueueJob.md +139 -0
  163. package/data/packages/platform-queue/api/TypeAlias.QueueJobStatus.md +14 -0
  164. package/data/packages/platform-queue/api/Variable.AZURE_CONFIG_ENTRIES.md +17 -0
  165. package/data/packages/platform-queue/api/Variable.AZURE_CONNECTION_STRING.md +14 -0
  166. package/data/packages/platform-queue/api/Variable.AZURE_RECEIVE_WAIT_MS.md +21 -0
  167. package/data/packages/platform-queue/api/Variable.BULLMQ_CONFIG_ENTRIES.md +17 -0
  168. package/data/packages/platform-queue/api/Variable.BULLMQ_PREFIX.md +18 -0
  169. package/data/packages/platform-queue/api/Variable.BULLMQ_REDIS_URL.md +21 -0
  170. package/data/packages/platform-queue/api/Variable.PLATFORM_QUEUE_CONFIG_ENTRIES.md +17 -0
  171. package/data/packages/platform-queue/api/Variable.QUEUE_JOB_STATUS.md +30 -0
  172. package/data/packages/platform-queue/api/Variable.QUEUE_MAX_JOBS.md +21 -0
  173. package/data/packages/platform-queue/api/index.md +49 -0
  174. package/data/packages/platform-queue/index.md +168 -0
  175. package/data/packages/platform-resources/api/Class.BlobResourceStrategy.md +195 -0
  176. package/data/packages/platform-resources/api/Class.EmbeddedResourceStrategy.md +215 -0
  177. package/data/packages/platform-resources/api/Class.FileResourceStrategy.md +190 -0
  178. package/data/packages/platform-resources/api/Class.ResourceManager.md +477 -0
  179. package/data/packages/platform-resources/api/Class.ResourceModule.md +46 -0
  180. package/data/packages/platform-resources/api/Class.ResourceNotFoundError.md +60 -0
  181. package/data/packages/platform-resources/api/Interface.IBlobResourceStrategyConfig.md +28 -0
  182. package/data/packages/platform-resources/api/Interface.IBlobServiceAdapter.md +40 -0
  183. package/data/packages/platform-resources/api/Interface.IFileResourceStrategyConfig.md +72 -0
  184. package/data/packages/platform-resources/api/Interface.IResourceManagerConfig.md +89 -0
  185. package/data/packages/platform-resources/api/Interface.IResourceMetadata.md +94 -0
  186. package/data/packages/platform-resources/api/Interface.IResourceResult.md +34 -0
  187. package/data/packages/platform-resources/api/Interface.IResourceStrategy.md +134 -0
  188. package/data/packages/platform-resources/api/index.md +29 -0
  189. package/data/packages/platform-telemetry/api/Class.OtelSdkHolder.md +20 -2
  190. package/data/packages/platform-telemetry/api/Class.TelemetryHealthIndicator.md +78 -0
  191. package/data/packages/platform-telemetry/api/index.md +1 -0
  192. package/data/packages/platform-telemetry/index.md +25 -1
  193. package/data/patterns/config-pattern.md +3 -1
  194. 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) => any;
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`) => `any`
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:113](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-openapi/src/decorators/SwaggerFeature.ts#L113)
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` | `any` |
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:153](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L153)
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:88](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L88)
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:59](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L59)
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:128](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/stripe/StripeClient.ts#L128)
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 | No |
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