@breadstone/archipel-mcp 0.0.23 → 0.0.25

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 (165) 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 +20 -20
  53. package/data/packages/platform-database/api/Function.paginator.md +1 -1
  54. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +3 -3
  55. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +1 -1
  56. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +1 -1
  57. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +1 -1
  58. package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +1 -1
  59. package/data/packages/platform-database/index.md +17 -5
  60. package/data/packages/platform-documents/api/Class.DocumentEngine.md +9 -5
  61. package/data/packages/platform-documents/index.md +1 -1
  62. package/data/packages/platform-esigning/api/Class.AdobeSignEsigningProvider.md +24 -0
  63. package/data/packages/platform-esigning/api/Class.DocuSignEsigningProvider.md +24 -0
  64. package/data/packages/platform-esigning/api/Class.DropboxSignEsigningProvider.md +24 -0
  65. package/data/packages/platform-esigning/api/Class.EsigningClientPort.md +20 -0
  66. package/data/packages/platform-esigning/api/Class.EsigningHealthIndicator.md +78 -0
  67. package/data/packages/platform-esigning/api/Class.InternalEsigningProvider.md +24 -0
  68. package/data/packages/platform-esigning/api/index.md +1 -0
  69. package/data/packages/platform-esigning/index.md +26 -2
  70. package/data/packages/platform-health/api/Class.HealthModule.md +42 -0
  71. package/data/packages/platform-health/api/Class.HealthOrchestrator.md +64 -0
  72. package/data/packages/platform-health/api/Interface.IHealthCheckResult.md +46 -0
  73. package/data/packages/platform-health/api/Interface.IHealthIndicator.md +41 -0
  74. package/data/packages/platform-health/api/Variable.HEALTH_INDICATORS_TOKEN.md +14 -0
  75. package/data/packages/platform-health/api/index.md +26 -0
  76. package/data/packages/platform-health/index.md +18 -7
  77. package/data/packages/platform-intelligence/api/Class.IntelligenceHealthIndicator.md +78 -0
  78. package/data/packages/platform-intelligence/api/index.md +1 -0
  79. package/data/packages/platform-intelligence/index.md +24 -1
  80. package/data/packages/platform-logging/api/Class.ContextLogger.md +152 -0
  81. package/data/packages/platform-logging/api/Class.LoggerModule.md +8 -2
  82. package/data/packages/platform-logging/api/Class.RequestContextStore.md +90 -0
  83. package/data/packages/platform-logging/api/Class.RequestIdMiddleware.md +68 -0
  84. package/data/packages/platform-logging/api/Interface.IRequestContext.md +34 -0
  85. package/data/packages/platform-logging/api/Variable.REQUEST_ID_HEADER.md +14 -0
  86. package/data/packages/platform-logging/api/index.md +11 -1
  87. package/data/packages/platform-logging/index.md +89 -7
  88. package/data/packages/platform-mailing/api/Class.MailHealthIndicator.md +5 -5
  89. package/data/packages/platform-mailing/api/Class.MailModule.md +28 -1
  90. package/data/packages/platform-mailing/api/Class.MailVerificationService.md +49 -16
  91. package/data/packages/platform-mailing/api/Class.SmtpConnectionVerifier.md +84 -0
  92. package/data/packages/platform-mailing/api/Interface.IMailModuleOptions.md +36 -0
  93. package/data/packages/platform-mailing/api/index.md +3 -1
  94. package/data/packages/platform-mailing/index.md +64 -8
  95. package/data/packages/platform-mapping/api/Class.MappingBuilder.md +110 -0
  96. package/data/packages/platform-mapping/api/Class.MappingError.md +56 -0
  97. package/data/packages/platform-mapping/api/Class.MappingModule.md +46 -0
  98. package/data/packages/platform-mapping/api/Class.MappingNotRegisteredError.md +52 -0
  99. package/data/packages/platform-mapping/api/Class.MappingProfileBase.md +52 -0
  100. package/data/packages/platform-mapping/api/Class.MappingService.md +284 -0
  101. package/data/packages/platform-mapping/api/Class.TypeMappingNotRegisteredError.md +53 -0
  102. package/data/packages/platform-mapping/api/Function.createMappingKey.md +39 -0
  103. package/data/packages/platform-mapping/api/Interface.IMappingBuilder.md +76 -0
  104. package/data/packages/platform-mapping/api/Interface.IMappingKey.md +58 -0
  105. package/data/packages/platform-mapping/api/Interface.IMappingProfile.md +32 -0
  106. package/data/packages/platform-mapping/api/TypeAlias.Constructor.md +28 -0
  107. package/data/packages/platform-mapping/api/index.md +38 -0
  108. package/data/packages/platform-mcp/api/Class.McpHealthIndicator.md +78 -0
  109. package/data/packages/platform-mcp/api/index.md +1 -0
  110. package/data/packages/platform-mcp/index.md +24 -1
  111. package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +2 -2
  112. package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +2 -2
  113. package/data/packages/platform-payments/api/Class.LemonSqueezyClient.md +24 -0
  114. package/data/packages/platform-payments/api/Class.MollieClient.md +24 -0
  115. package/data/packages/platform-payments/api/Class.PaddleClient.md +24 -0
  116. package/data/packages/platform-payments/api/Class.PaymentClientPort.md +20 -0
  117. package/data/packages/platform-payments/api/Class.PaymentHealthIndicator.md +78 -0
  118. package/data/packages/platform-payments/api/Class.StripeClient.md +28 -4
  119. package/data/packages/platform-payments/api/index.md +1 -0
  120. package/data/packages/platform-payments/index.md +26 -2
  121. package/data/packages/platform-queue/api/Class.AzureQueue.md +221 -0
  122. package/data/packages/platform-queue/api/Class.BullMqQueue.md +220 -0
  123. package/data/packages/platform-queue/api/Class.MemoryQueue.md +194 -0
  124. package/data/packages/platform-queue/api/Class.QueueError.md +51 -0
  125. package/data/packages/platform-queue/api/Class.QueueHealthIndicator.md +68 -0
  126. package/data/packages/platform-queue/api/Class.QueueJobNotFoundError.md +43 -0
  127. package/data/packages/platform-queue/api/Class.QueueJobStateError.md +48 -0
  128. package/data/packages/platform-queue/api/Class.QueueValidationError.md +43 -0
  129. package/data/packages/platform-queue/api/Interface.IAzureQueueOptions.md +48 -0
  130. package/data/packages/platform-queue/api/Interface.IBullMqQueueOptions.md +45 -0
  131. package/data/packages/platform-queue/api/Interface.IMemoryQueueOptions.md +32 -0
  132. package/data/packages/platform-queue/api/Interface.IQueue.md +173 -0
  133. package/data/packages/platform-queue/api/Interface.IQueueJob.md +139 -0
  134. package/data/packages/platform-queue/api/TypeAlias.QueueJobStatus.md +14 -0
  135. package/data/packages/platform-queue/api/Variable.AZURE_CONFIG_ENTRIES.md +17 -0
  136. package/data/packages/platform-queue/api/Variable.AZURE_CONNECTION_STRING.md +14 -0
  137. package/data/packages/platform-queue/api/Variable.AZURE_RECEIVE_WAIT_MS.md +21 -0
  138. package/data/packages/platform-queue/api/Variable.BULLMQ_CONFIG_ENTRIES.md +17 -0
  139. package/data/packages/platform-queue/api/Variable.BULLMQ_PREFIX.md +18 -0
  140. package/data/packages/platform-queue/api/Variable.BULLMQ_REDIS_URL.md +21 -0
  141. package/data/packages/platform-queue/api/Variable.PLATFORM_QUEUE_CONFIG_ENTRIES.md +17 -0
  142. package/data/packages/platform-queue/api/Variable.QUEUE_JOB_STATUS.md +30 -0
  143. package/data/packages/platform-queue/api/Variable.QUEUE_MAX_JOBS.md +21 -0
  144. package/data/packages/platform-queue/api/index.md +49 -0
  145. package/data/packages/platform-queue/index.md +168 -0
  146. package/data/packages/platform-resources/api/Class.BlobResourceStrategy.md +195 -0
  147. package/data/packages/platform-resources/api/Class.EmbeddedResourceStrategy.md +215 -0
  148. package/data/packages/platform-resources/api/Class.FileResourceStrategy.md +190 -0
  149. package/data/packages/platform-resources/api/Class.ResourceManager.md +477 -0
  150. package/data/packages/platform-resources/api/Class.ResourceModule.md +46 -0
  151. package/data/packages/platform-resources/api/Class.ResourceNotFoundError.md +60 -0
  152. package/data/packages/platform-resources/api/Interface.IBlobResourceStrategyConfig.md +28 -0
  153. package/data/packages/platform-resources/api/Interface.IBlobServiceAdapter.md +40 -0
  154. package/data/packages/platform-resources/api/Interface.IFileResourceStrategyConfig.md +72 -0
  155. package/data/packages/platform-resources/api/Interface.IResourceManagerConfig.md +89 -0
  156. package/data/packages/platform-resources/api/Interface.IResourceMetadata.md +94 -0
  157. package/data/packages/platform-resources/api/Interface.IResourceResult.md +34 -0
  158. package/data/packages/platform-resources/api/Interface.IResourceStrategy.md +134 -0
  159. package/data/packages/platform-resources/api/index.md +29 -0
  160. package/data/packages/platform-telemetry/api/Class.OtelSdkHolder.md +20 -2
  161. package/data/packages/platform-telemetry/api/Class.TelemetryHealthIndicator.md +78 -0
  162. package/data/packages/platform-telemetry/api/index.md +1 -0
  163. package/data/packages/platform-telemetry/index.md +25 -1
  164. package/data/patterns/config-pattern.md +3 -1
  165. package/package.json +1 -1
@@ -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
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
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
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
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
 
@@ -0,0 +1,221 @@
1
+ ---
2
+ title: 'Class: AzureQueue'
3
+ generated: true
4
+ editUrl: false
5
+ ---
6
+ # Class: AzureQueue
7
+
8
+ Defined in: [azure/AzureQueue.ts:56](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L56)
9
+
10
+ Azure Service Bus queue implementation.
11
+
12
+ Uses Azure Service Bus for cloud-native, enterprise-grade messaging.
13
+ Operates in peek-lock mode: dequeued messages remain locked until
14
+ explicitly completed or dead-lettered.
15
+
16
+ ## Remarks
17
+
18
+ Senders and receivers are lazily created per queue name and cached for
19
+ the lifetime of the instance. Call [onModuleDestroy](#onmoduledestroy) (handled
20
+ automatically by NestJS) to release all underlying connections.
21
+
22
+ ## Implements
23
+
24
+ - [`IQueue`](Interface.IQueue)
25
+ - `OnModuleDestroy`
26
+
27
+ ## Constructors
28
+
29
+ ### Constructor
30
+
31
+ ```ts
32
+ new AzureQueue(options): AzureQueue;
33
+ ```
34
+
35
+ Defined in: [azure/AzureQueue.ts:76](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L76)
36
+
37
+ Creates a new AzureQueue instance.
38
+
39
+ #### Parameters
40
+
41
+ | Parameter | Type | Description |
42
+ | ------ | ------ | ------ |
43
+ | `options` | [`IAzureQueueOptions`](Interface.IAzureQueueOptions) | Connection and receive configuration. See [IAzureQueueOptions](Interface.IAzureQueueOptions). |
44
+
45
+ #### Returns
46
+
47
+ `AzureQueue`
48
+
49
+ ## Methods
50
+
51
+ ### dequeue()
52
+
53
+ ```ts
54
+ dequeue(queueName): Promise<IQueueJob<unknown> | null>;
55
+ ```
56
+
57
+ Defined in: [azure/AzureQueue.ts:115](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L115)
58
+
59
+ Dequeues the next pending job from the named queue.
60
+
61
+ The returned job transitions to `processing` status.
62
+
63
+ #### Parameters
64
+
65
+ | Parameter | Type | Description |
66
+ | ------ | ------ | ------ |
67
+ | `queueName` | `string` | The name of the queue to dequeue from. |
68
+
69
+ #### Returns
70
+
71
+ `Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\> \| `null`\>
72
+
73
+ The next pending job, or `null` if the queue is empty.
74
+
75
+ #### Implementation of
76
+
77
+ [`IQueue`](Interface.IQueue).[`dequeue`](Interface.IQueue#dequeue)
78
+
79
+ ***
80
+
81
+ ### enqueue()
82
+
83
+ ```ts
84
+ enqueue<T>(queueName, payload): Promise<IQueueJob<T>>;
85
+ ```
86
+
87
+ Defined in: [azure/AzureQueue.ts:86](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L86)
88
+
89
+ Enqueues a new job into the named queue.
90
+
91
+ #### Type Parameters
92
+
93
+ | Type Parameter | Default type | Description |
94
+ | ------ | ------ | ------ |
95
+ | `T` | `unknown` | |
96
+
97
+ #### Parameters
98
+
99
+ | Parameter | Type | Description |
100
+ | ------ | ------ | ------ |
101
+ | `queueName` | `string` | The name of the target queue. |
102
+ | `payload` | `T` | The job payload. |
103
+
104
+ #### Returns
105
+
106
+ `Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`T`\>\>
107
+
108
+ The created job in `pending` status.
109
+
110
+ #### Implementation of
111
+
112
+ [`IQueue`](Interface.IQueue).[`enqueue`](Interface.IQueue#enqueue)
113
+
114
+ ***
115
+
116
+ ### getJobs()
117
+
118
+ ```ts
119
+ getJobs(queueName): Promise<readonly IQueueJob<unknown>[]>;
120
+ ```
121
+
122
+ Defined in: [azure/AzureQueue.ts:222](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L222)
123
+
124
+ Returns all jobs for the given queue in insertion order.
125
+
126
+ #### Parameters
127
+
128
+ | Parameter | Type | Description |
129
+ | ------ | ------ | ------ |
130
+ | `queueName` | `string` | The name of the queue. |
131
+
132
+ #### Returns
133
+
134
+ `Promise`\<readonly [`IQueueJob`](Interface.IQueueJob)\<`unknown`\>[]\>
135
+
136
+ An array of jobs, possibly empty.
137
+
138
+ #### Implementation of
139
+
140
+ [`IQueue`](Interface.IQueue).[`getJobs`](Interface.IQueue#getjobs)
141
+
142
+ ***
143
+
144
+ ### markCompleted()
145
+
146
+ ```ts
147
+ markCompleted(jobId): Promise<IQueueJob<unknown>>;
148
+ ```
149
+
150
+ Defined in: [azure/AzureQueue.ts:147](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L147)
151
+
152
+ Marks a processing job as completed.
153
+
154
+ #### Parameters
155
+
156
+ | Parameter | Type | Description |
157
+ | ------ | ------ | ------ |
158
+ | `jobId` | `string` | The ID of the job to complete. |
159
+
160
+ #### Returns
161
+
162
+ `Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\>\>
163
+
164
+ The updated job in `completed` status.
165
+
166
+ #### Implementation of
167
+
168
+ [`IQueue`](Interface.IQueue).[`markCompleted`](Interface.IQueue#markcompleted)
169
+
170
+ ***
171
+
172
+ ### markFailed()
173
+
174
+ ```ts
175
+ markFailed(jobId, errorMessage): Promise<IQueueJob<unknown>>;
176
+ ```
177
+
178
+ Defined in: [azure/AzureQueue.ts:180](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L180)
179
+
180
+ Marks a processing job as failed.
181
+
182
+ #### Parameters
183
+
184
+ | Parameter | Type | Description |
185
+ | ------ | ------ | ------ |
186
+ | `jobId` | `string` | The ID of the job to mark as failed. |
187
+ | `errorMessage` | `string` | A human-readable error message. |
188
+
189
+ #### Returns
190
+
191
+ `Promise`\<[`IQueueJob`](Interface.IQueueJob)\<`unknown`\>\>
192
+
193
+ The updated job in `failed` status.
194
+
195
+ #### Implementation of
196
+
197
+ [`IQueue`](Interface.IQueue).[`markFailed`](Interface.IQueue#markfailed)
198
+
199
+ ***
200
+
201
+ ### onModuleDestroy()
202
+
203
+ ```ts
204
+ onModuleDestroy(): Promise<void>;
205
+ ```
206
+
207
+ Defined in: [azure/AzureQueue.ts:247](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-queue/src/azure/AzureQueue.ts#L247)
208
+
209
+ Closes all senders, receivers, and the underlying Service Bus client.
210
+
211
+ Called automatically by the NestJS lifecycle when the module is destroyed.
212
+
213
+ #### Returns
214
+
215
+ `Promise`\<`void`\>
216
+
217
+ #### Implementation of
218
+
219
+ ```ts
220
+ OnModuleDestroy.onModuleDestroy
221
+ ```