@breadstone/archipel-mcp 0.0.15 → 0.0.16

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 (652) hide show
  1. package/data/guides/ai-text-generation.md +385 -0
  2. package/data/guides/analytics-and-error-tracking.md +189 -0
  3. package/data/guides/authentication-and-authorization.md +657 -0
  4. package/data/guides/blob-storage.md +268 -0
  5. package/data/guides/caching.md +255 -0
  6. package/data/guides/configuration.md +242 -0
  7. package/data/guides/cryptography-and-otp.md +240 -0
  8. package/data/guides/database-setup.md +546 -0
  9. package/data/guides/document-generation.md +174 -0
  10. package/data/guides/email-delivery.md +233 -0
  11. package/data/guides/esigning-integration.md +247 -0
  12. package/data/guides/getting-started.md +354 -0
  13. package/data/guides/implementing-ports.md +317 -0
  14. package/data/guides/index.md +63 -0
  15. package/data/guides/mcp-server.md +222 -0
  16. package/data/guides/openapi-and-feature-discovery.md +266 -0
  17. package/data/guides/payments-and-feature-gating.md +260 -0
  18. package/data/guides/resource-management.md +352 -0
  19. package/data/guides/telemetry-and-observability.md +190 -0
  20. package/data/guides/testing.md +319 -0
  21. package/data/guides/tsdoc-guidelines.md +45 -0
  22. package/data/packages/index.md +8 -0
  23. package/data/packages/platform-analytics/api/Class.AnalyticsClientPort.md +141 -0
  24. package/data/packages/platform-analytics/api/Class.AnalyticsModule.md +47 -0
  25. package/data/packages/platform-analytics/api/Class.AppInsightsAnalyticsClient.md +169 -0
  26. package/data/packages/platform-analytics/api/Class.DatadogAnalyticsClient.md +169 -0
  27. package/data/packages/platform-analytics/api/Class.NoopAnalyticsClient.md +161 -0
  28. package/data/packages/platform-analytics/api/Class.SentryAnalyticsClient.md +169 -0
  29. package/data/packages/platform-analytics/api/Interface.IAnalyticsBreadcrumb.md +58 -0
  30. package/data/packages/platform-analytics/api/Interface.IAnalyticsModuleOptions.md +47 -0
  31. package/data/packages/platform-analytics/api/Interface.IAnalyticsUser.md +58 -0
  32. package/data/packages/platform-analytics/api/TypeAlias.AnalyticsLevel.md +14 -0
  33. package/data/packages/platform-analytics/api/Variable.APPINSIGHTS_CONFIG_ENTRIES.md +14 -0
  34. package/data/packages/platform-analytics/api/Variable.APPLICATIONINSIGHTS_CONNECTION_STRING.md +14 -0
  35. package/data/packages/platform-analytics/api/Variable.DATADOG_CONFIG_ENTRIES.md +14 -0
  36. package/data/packages/platform-analytics/api/Variable.DD_ENV.md +14 -0
  37. package/data/packages/platform-analytics/api/Variable.DD_SERVICE.md +14 -0
  38. package/data/packages/platform-analytics/api/Variable.SENTRY_CONFIG_ENTRIES.md +14 -0
  39. package/data/packages/platform-analytics/api/Variable.SENTRY_DSN.md +14 -0
  40. package/data/packages/platform-analytics/api/Variable.SENTRY_ENVIRONMENT.md +14 -0
  41. package/data/packages/platform-analytics/api/index.md +44 -0
  42. package/data/packages/platform-analytics/index.md +170 -0
  43. package/data/packages/platform-authentication/api/Class.AnonymousAuthGuard.md +40 -0
  44. package/data/packages/platform-authentication/api/Class.AppleConnector.md +86 -0
  45. package/data/packages/platform-authentication/api/Class.AuthModule.md +76 -0
  46. package/data/packages/platform-authentication/api/Class.AuthSubjectPort.md +95 -0
  47. package/data/packages/platform-authentication/api/Class.AuthTokenService.md +59 -0
  48. package/data/packages/platform-authentication/api/Class.ChallengeService.md +135 -0
  49. package/data/packages/platform-authentication/api/Class.ChallengeStorePort.md +95 -0
  50. package/data/packages/platform-authentication/api/Class.GithubAuthGuard.md +40 -0
  51. package/data/packages/platform-authentication/api/Class.GithubConnector.md +78 -0
  52. package/data/packages/platform-authentication/api/Class.GoogleConnector.md +84 -0
  53. package/data/packages/platform-authentication/api/Class.JwtAuthGuard.md +40 -0
  54. package/data/packages/platform-authentication/api/Class.JwtPayloadBase.md +136 -0
  55. package/data/packages/platform-authentication/api/Class.LastActiveMiddleware.md +71 -0
  56. package/data/packages/platform-authentication/api/Class.LocalAuthGuard.md +40 -0
  57. package/data/packages/platform-authentication/api/Class.MfaService.md +252 -0
  58. package/data/packages/platform-authentication/api/Class.MfaSubjectPort.md +70 -0
  59. package/data/packages/platform-authentication/api/Class.MicrosoftConnector.md +84 -0
  60. package/data/packages/platform-authentication/api/Class.RolesGuard.md +60 -0
  61. package/data/packages/platform-authentication/api/Class.SessionMappingProfile.md +60 -0
  62. package/data/packages/platform-authentication/api/Class.SessionPersistencePort.md +165 -0
  63. package/data/packages/platform-authentication/api/Class.SessionResponse.md +152 -0
  64. package/data/packages/platform-authentication/api/Class.SessionService.md +162 -0
  65. package/data/packages/platform-authentication/api/Class.SocialAuthGuard.md +61 -0
  66. package/data/packages/platform-authentication/api/Class.SocialAuthPort.md +48 -0
  67. package/data/packages/platform-authentication/api/Class.TokenEnricherPort.md +47 -0
  68. package/data/packages/platform-authentication/api/Class.TotpMfaChannel.md +144 -0
  69. package/data/packages/platform-authentication/api/Class.VerificationService.md +154 -0
  70. package/data/packages/platform-authentication/api/Class.VerificationSubjectPort.md +116 -0
  71. package/data/packages/platform-authentication/api/Function.Token.md +18 -0
  72. package/data/packages/platform-authentication/api/Function.UseRoles.md +24 -0
  73. package/data/packages/platform-authentication/api/Function.socialAuthGuardFactory.md +22 -0
  74. package/data/packages/platform-authentication/api/Interface.IAuthModuleOptions.md +157 -0
  75. package/data/packages/platform-authentication/api/Interface.IAuthSubject.md +107 -0
  76. package/data/packages/platform-authentication/api/Interface.IMfaChallengePayload.md +82 -0
  77. package/data/packages/platform-authentication/api/Interface.IMfaChallengeState.md +118 -0
  78. package/data/packages/platform-authentication/api/Interface.IMfaConfirmation.md +22 -0
  79. package/data/packages/platform-authentication/api/Interface.IMfaSetup.md +58 -0
  80. package/data/packages/platform-authentication/api/Interface.IMfaSubject.md +131 -0
  81. package/data/packages/platform-authentication/api/Interface.IMfaSubjectUpdate.md +91 -0
  82. package/data/packages/platform-authentication/api/Interface.ISessionRecord.md +160 -0
  83. package/data/packages/platform-authentication/api/Interface.ISignInResult.md +82 -0
  84. package/data/packages/platform-authentication/api/Interface.ISocialProfile.md +58 -0
  85. package/data/packages/platform-authentication/api/Interface.IStoreSessionArgs.md +70 -0
  86. package/data/packages/platform-authentication/api/Interface.IVerifiableSubject.md +71 -0
  87. package/data/packages/platform-authentication/api/Variable.APPLE_AUTH_CONFIG_ENTRIES.md +14 -0
  88. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_CALLBACK_URL.md +14 -0
  89. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_CLIENT_ID.md +14 -0
  90. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_KEY_ID.md +14 -0
  91. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_PRIVATE_KEY.md +14 -0
  92. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_SCOPE.md +14 -0
  93. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_STATE.md +16 -0
  94. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_TEAM_ID.md +14 -0
  95. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CALLBACK_URL.md +14 -0
  96. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CLIENT_ID.md +14 -0
  97. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CLIENT_SECRET.md +14 -0
  98. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_SCOPE.md +14 -0
  99. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_STATE.md +16 -0
  100. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CALLBACK_URL.md +14 -0
  101. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CLIENT_ID.md +14 -0
  102. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CLIENT_SECRET.md +14 -0
  103. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_SCOPE.md +14 -0
  104. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_STATE.md +16 -0
  105. package/data/packages/platform-authentication/api/Variable.AUTH_JWT_EXPIRES_IN.md +14 -0
  106. package/data/packages/platform-authentication/api/Variable.AUTH_JWT_SECRET.md +14 -0
  107. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_CHALLENGE_EXPIRES_IN.md +14 -0
  108. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_EMAIL_CODE_TTL.md +14 -0
  109. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_EMAIL_MIN_RESEND.md +14 -0
  110. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_ENCRYPTION_KEY.md +14 -0
  111. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_ISSUER.md +14 -0
  112. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_MAX_ATTEMPTS.md +14 -0
  113. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_PUSH_CODE_TTL.md +14 -0
  114. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_PUSH_MIN_RESEND.md +14 -0
  115. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_SMS_CODE_TTL.md +14 -0
  116. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_SMS_MIN_RESEND.md +14 -0
  117. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CALLBACK_URL.md +14 -0
  118. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CLIENT_ID.md +14 -0
  119. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CLIENT_SECRET.md +14 -0
  120. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_SCOPE.md +14 -0
  121. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_STATE.md +16 -0
  122. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_TENANT.md +14 -0
  123. package/data/packages/platform-authentication/api/Variable.AUTH_VERIFY_JWT_EXPIRES_IN.md +14 -0
  124. package/data/packages/platform-authentication/api/Variable.GITHUB_AUTH_CONFIG_ENTRIES.md +14 -0
  125. package/data/packages/platform-authentication/api/Variable.GOOGLE_AUTH_CONFIG_ENTRIES.md +14 -0
  126. package/data/packages/platform-authentication/api/Variable.MICROSOFT_AUTH_CONFIG_ENTRIES.md +14 -0
  127. package/data/packages/platform-authentication/api/Variable.PLATFORM_AUTHENTICATION_CONFIG_ENTRIES.md +14 -0
  128. package/data/packages/platform-authentication/api/Variable.ROLES_KEY.md +14 -0
  129. package/data/packages/platform-authentication/api/Variable.SEED_ANONYMOUS_USERNAME.md +14 -0
  130. package/data/packages/platform-authentication/api/Variable.SESSION_LIST_MAPPING_KEY.md +14 -0
  131. package/data/packages/platform-authentication/api/Variable.SESSION_MAPPING_KEY.md +14 -0
  132. package/data/packages/platform-authentication/api/Variable.TOTP_MFA_PROVIDERS.md +29 -0
  133. package/data/packages/platform-authentication/api/Variable.User.md +24 -0
  134. package/data/packages/platform-authentication/api/index.md +117 -0
  135. package/data/packages/platform-authentication/index.md +691 -0
  136. package/data/packages/platform-blob-storage/api/Class.AwsS3BlobProvider.md +196 -0
  137. package/data/packages/platform-blob-storage/api/Class.AzureBlobProvider.md +196 -0
  138. package/data/packages/platform-blob-storage/api/Class.BlobHealthIndicator.md +79 -0
  139. package/data/packages/platform-blob-storage/api/Class.BlobModule.md +49 -0
  140. package/data/packages/platform-blob-storage/api/Class.BlobObjectPersistencePort.md +75 -0
  141. package/data/packages/platform-blob-storage/api/Class.BlobService.md +248 -0
  142. package/data/packages/platform-blob-storage/api/Class.BlobVariantPersistencePort.md +51 -0
  143. package/data/packages/platform-blob-storage/api/Class.VercelBlobProvider.md +197 -0
  144. package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +28 -0
  145. package/data/packages/platform-blob-storage/api/Interface.IAwsS3ProviderOptions.md +68 -0
  146. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderOptions.md +48 -0
  147. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +28 -0
  148. package/data/packages/platform-blob-storage/api/Interface.IBlobDeleteRequest.md +38 -0
  149. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadRequest.md +48 -0
  150. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadResult.md +64 -0
  151. package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +48 -0
  152. package/data/packages/platform-blob-storage/api/Interface.IBlobObjectMetadata.md +138 -0
  153. package/data/packages/platform-blob-storage/api/Interface.IBlobProvider.md +114 -0
  154. package/data/packages/platform-blob-storage/api/Interface.IBlobSignedUrlRequest.md +48 -0
  155. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadRequest.md +98 -0
  156. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadResult.md +28 -0
  157. package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +28 -0
  158. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderOptions.md +80 -0
  159. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +28 -0
  160. package/data/packages/platform-blob-storage/api/TypeAlias.BlobDownloadResponseType.md +12 -0
  161. package/data/packages/platform-blob-storage/api/TypeAlias.BlobUploadBody.md +12 -0
  162. package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +16 -0
  163. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_PROVIDER_OPTIONS.md +12 -0
  164. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_PROVIDER_OPTIONS.md +12 -0
  165. package/data/packages/platform-blob-storage/api/Variable.BLOB_PROVIDER.md +12 -0
  166. package/data/packages/platform-blob-storage/api/Variable.BlobDownloadResponseTypes.md +26 -0
  167. package/data/packages/platform-blob-storage/api/Variable.BlobProviderKinds.md +26 -0
  168. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_PROVIDER_OPTIONS.md +12 -0
  169. package/data/packages/platform-blob-storage/api/index.md +59 -0
  170. package/data/packages/platform-blob-storage/index.md +353 -0
  171. package/data/packages/platform-caching/api/Class.MemoryLayeredCache.md +258 -0
  172. package/data/packages/platform-caching/api/Class.NoopCacheMetricsRecorder.md +157 -0
  173. package/data/packages/platform-caching/api/Class.RedisLayeredCache.md +295 -0
  174. package/data/packages/platform-caching/api/Interface.ICacheMetricsRecorder.md +121 -0
  175. package/data/packages/platform-caching/api/Interface.ICacheStats.md +70 -0
  176. package/data/packages/platform-caching/api/Interface.ILayeredCache.md +198 -0
  177. package/data/packages/platform-caching/api/Interface.ILayeredCacheOptions.md +75 -0
  178. package/data/packages/platform-caching/api/Interface.IRedisLayeredCacheOptions.md +121 -0
  179. package/data/packages/platform-caching/api/index.md +24 -0
  180. package/data/packages/platform-caching/index.md +116 -0
  181. package/data/packages/platform-configuration/api/Class.ConfigKeyNotFoundError.md +89 -0
  182. package/data/packages/platform-configuration/api/Class.ConfigModule.md +74 -0
  183. package/data/packages/platform-configuration/api/Class.ConfigRegistry.md +115 -0
  184. package/data/packages/platform-configuration/api/Class.ConfigService.md +137 -0
  185. package/data/packages/platform-configuration/api/Class.ConfigStrategyBase.md +125 -0
  186. package/data/packages/platform-configuration/api/Class.EnvironmentConfigStrategy.md +141 -0
  187. package/data/packages/platform-configuration/api/Class.FileConfigStrategy.md +147 -0
  188. package/data/packages/platform-configuration/api/Function.createConfigKey.md +58 -0
  189. package/data/packages/platform-configuration/api/Interface.IConfigKey.md +63 -0
  190. package/data/packages/platform-configuration/api/Interface.IConfigModuleOptions.md +40 -0
  191. package/data/packages/platform-configuration/api/Interface.IConfigRegistryEntry.md +79 -0
  192. package/data/packages/platform-configuration/api/index.md +32 -0
  193. package/data/packages/platform-configuration/index.md +224 -0
  194. package/data/packages/platform-core/api/Class.AppHealthIndicator.md +50 -0
  195. package/data/packages/platform-core/api/Class.BlobResourceStrategy.md +195 -0
  196. package/data/packages/platform-core/api/Class.BooleanUtils.md +82 -0
  197. package/data/packages/platform-core/api/Class.CUIDGenerator.md +120 -0
  198. package/data/packages/platform-core/api/Class.CasingInterceptor.md +93 -0
  199. package/data/packages/platform-core/api/Class.CatchUtils.md +93 -0
  200. package/data/packages/platform-core/api/Class.ContentTemplateEngine.md +63 -0
  201. package/data/packages/platform-core/api/Class.DateTimeUtils.md +101 -0
  202. package/data/packages/platform-core/api/Class.DeviceParserService.md +52 -0
  203. package/data/packages/platform-core/api/Class.EmbeddedResourceStrategy.md +215 -0
  204. package/data/packages/platform-core/api/Class.ErrorTemplateService.md +109 -0
  205. package/data/packages/platform-core/api/Class.EventHub.md +163 -0
  206. package/data/packages/platform-core/api/Class.EventModule.md +22 -0
  207. package/data/packages/platform-core/api/Class.FileResourceStrategy.md +192 -0
  208. package/data/packages/platform-core/api/Class.GUIDGenerator.md +85 -0
  209. package/data/packages/platform-core/api/Class.GlobalExceptionFilter.md +66 -0
  210. package/data/packages/platform-core/api/Class.HealthModule.md +42 -0
  211. package/data/packages/platform-core/api/Class.HealthOrchestrator.md +64 -0
  212. package/data/packages/platform-core/api/Class.HostModule.md +31 -0
  213. package/data/packages/platform-core/api/Class.HostService.md +149 -0
  214. package/data/packages/platform-core/api/Class.HttpLoggerMiddleware.md +59 -0
  215. package/data/packages/platform-core/api/Class.IdGeneratorBase.md +87 -0
  216. package/data/packages/platform-core/api/Class.IdentifierModule.md +40 -0
  217. package/data/packages/platform-core/api/Class.LimitRequestSizeMiddleware.md +59 -0
  218. package/data/packages/platform-core/api/Class.LocalizedTextRequest.md +42 -0
  219. package/data/packages/platform-core/api/Class.LocalizedTextResponse.md +42 -0
  220. package/data/packages/platform-core/api/Class.MappingBuilder.md +110 -0
  221. package/data/packages/platform-core/api/Class.MappingModule.md +46 -0
  222. package/data/packages/platform-core/api/Class.MappingNotRegisteredError.md +56 -0
  223. package/data/packages/platform-core/api/Class.MappingProfileBase.md +52 -0
  224. package/data/packages/platform-core/api/Class.MappingService.md +284 -0
  225. package/data/packages/platform-core/api/Class.NormalizedUtils.md +148 -0
  226. package/data/packages/platform-core/api/Class.PageableRequest.md +42 -0
  227. package/data/packages/platform-core/api/Class.PageableResponse.md +62 -0
  228. package/data/packages/platform-core/api/Class.ProblemDetailException.md +61 -0
  229. package/data/packages/platform-core/api/Class.ProblemDetailExceptionFilter.md +94 -0
  230. package/data/packages/platform-core/api/Class.QuantityResponse.md +42 -0
  231. package/data/packages/platform-core/api/Class.ResourceManager.md +565 -0
  232. package/data/packages/platform-core/api/Class.ResourceModule.md +46 -0
  233. package/data/packages/platform-core/api/Class.ResponseReturn.md +502 -0
  234. package/data/packages/platform-core/api/Class.SseHub.md +183 -0
  235. package/data/packages/platform-core/api/Class.SseModule.md +42 -0
  236. package/data/packages/platform-core/api/Class.TimeStampResponse.md +42 -0
  237. package/data/packages/platform-core/api/Class.TypeMappingNotRegisteredError.md +57 -0
  238. package/data/packages/platform-core/api/Class.UUIDGenerator.md +85 -0
  239. package/data/packages/platform-core/api/Class.UserAvatarGeneratorService.md +52 -0
  240. package/data/packages/platform-core/api/Class.UserNameGeneratorService.md +64 -0
  241. package/data/packages/platform-core/api/Function.Public.md +18 -0
  242. package/data/packages/platform-core/api/Function.createEventKey.md +33 -0
  243. package/data/packages/platform-core/api/Function.createMappingKey.md +39 -0
  244. package/data/packages/platform-core/api/Function.env.md +28 -0
  245. package/data/packages/platform-core/api/Function.getMimeTypeByFileNameOrExtension.md +26 -0
  246. package/data/packages/platform-core/api/ISseEventData.Function.isActionId.md +27 -0
  247. package/data/packages/platform-core/api/Interface.IBlobResourceStrategyConfig.md +28 -0
  248. package/data/packages/platform-core/api/Interface.IBlobServiceAdapter.md +40 -0
  249. package/data/packages/platform-core/api/Interface.IDeviceInfo.md +80 -0
  250. package/data/packages/platform-core/api/Interface.IErrorPageParams.md +153 -0
  251. package/data/packages/platform-core/api/Interface.IEventKey.md +57 -0
  252. package/data/packages/platform-core/api/Interface.IEventMap.md +16 -0
  253. package/data/packages/platform-core/api/Interface.IFileResourceStrategyConfig.md +72 -0
  254. package/data/packages/platform-core/api/Interface.IHealthCheckResult.md +46 -0
  255. package/data/packages/platform-core/api/Interface.IHealthIndicator.md +41 -0
  256. package/data/packages/platform-core/api/Interface.IHostContentParams.md +232 -0
  257. package/data/packages/platform-core/api/Interface.IIdGenerator.md +57 -0
  258. package/data/packages/platform-core/api/Interface.IMappingBuilder.md +76 -0
  259. package/data/packages/platform-core/api/Interface.IMappingKey.md +58 -0
  260. package/data/packages/platform-core/api/Interface.IMappingProfile.md +32 -0
  261. package/data/packages/platform-core/api/Interface.IResourceManagerConfig.md +89 -0
  262. package/data/packages/platform-core/api/Interface.IResourceMetadata.md +94 -0
  263. package/data/packages/platform-core/api/Interface.IResourceResult.md +34 -0
  264. package/data/packages/platform-core/api/Interface.IResourceStrategy.md +134 -0
  265. package/data/packages/platform-core/api/Interface.ISseEventData.md +36 -0
  266. package/data/packages/platform-core/api/Interface.ISseHub.md +91 -0
  267. package/data/packages/platform-core/api/Namespace.ISseEventData.md +14 -0
  268. package/data/packages/platform-core/api/TypeAlias.CamelCase.md +18 -0
  269. package/data/packages/platform-core/api/TypeAlias.ProblemDetail.md +28 -0
  270. package/data/packages/platform-core/api/TypeAlias.ProblemDetailTypeUrlResolver.md +25 -0
  271. package/data/packages/platform-core/api/TypeAlias.SetOptional.md +21 -0
  272. package/data/packages/platform-core/api/TypeAlias.StringValue.md +15 -0
  273. package/data/packages/platform-core/api/Variable.APP_NAME.md +14 -0
  274. package/data/packages/platform-core/api/Variable.APP_PORT.md +14 -0
  275. package/data/packages/platform-core/api/Variable.APP_URL.md +14 -0
  276. package/data/packages/platform-core/api/Variable.APP_VERSION.md +14 -0
  277. package/data/packages/platform-core/api/Variable.GIT_COMMIT.md +14 -0
  278. package/data/packages/platform-core/api/Variable.HEALTH_INDICATORS_TOKEN.md +14 -0
  279. package/data/packages/platform-core/api/Variable.ID_GENERATOR_TOKEN.md +14 -0
  280. package/data/packages/platform-core/api/Variable.IS_PUBLIC_KEY.md +12 -0
  281. package/data/packages/platform-core/api/Variable.IpAddress.md +31 -0
  282. package/data/packages/platform-core/api/Variable.Lang.md +29 -0
  283. package/data/packages/platform-core/api/Variable.NODE_ENV.md +14 -0
  284. package/data/packages/platform-core/api/Variable.PLATFORM_CORE_CONFIG_ENTRIES.md +14 -0
  285. package/data/packages/platform-core/api/Variable.UserAgent.md +24 -0
  286. package/data/packages/platform-core/api/index.md +127 -0
  287. package/data/packages/platform-core/index.md +487 -0
  288. package/data/packages/platform-cryptography/api/Class.BcryptService.md +95 -0
  289. package/data/packages/platform-cryptography/api/Class.CryptoService.md +51 -0
  290. package/data/packages/platform-cryptography/api/Class.CryptographyError.md +56 -0
  291. package/data/packages/platform-cryptography/api/Class.InvalidOtpError.md +52 -0
  292. package/data/packages/platform-cryptography/api/Class.OtpService.md +155 -0
  293. package/data/packages/platform-cryptography/api/Class.WeakPasswordError.md +52 -0
  294. package/data/packages/platform-cryptography/api/Interface.IBcryptOptions.md +45 -0
  295. package/data/packages/platform-cryptography/api/Interface.IOtpOptions.md +31 -0
  296. package/data/packages/platform-cryptography/api/Interface.IOtpService.md +113 -0
  297. package/data/packages/platform-cryptography/api/Interface.IOtpUriOptions.md +46 -0
  298. package/data/packages/platform-cryptography/api/Variable.BCRYPT_OPTIONS.md +14 -0
  299. package/data/packages/platform-cryptography/api/Variable.MAX_BCRYPT_PASSWORD_BYTES.md +14 -0
  300. package/data/packages/platform-cryptography/api/Variable.MIN_BCRYPT_ROUNDS.md +14 -0
  301. package/data/packages/platform-cryptography/api/Variable.OTP_OPTIONS.md +14 -0
  302. package/data/packages/platform-cryptography/api/Variable.OTP_SERVICE_TOKEN.md +14 -0
  303. package/data/packages/platform-cryptography/api/Variable.TOTP_EPOCH_TOLERANCE.md +23 -0
  304. package/data/packages/platform-cryptography/api/index.md +37 -0
  305. package/data/packages/platform-cryptography/index.md +132 -0
  306. package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +75 -0
  307. package/data/packages/platform-database/api/Class.DatabaseModule.md +68 -0
  308. package/data/packages/platform-database/api/Class.DatabaseService.md +143 -0
  309. package/data/packages/platform-database/api/Class.PrismaService.md +98 -0
  310. package/data/packages/platform-database/api/Class.RepositoryBase.md +590 -0
  311. package/data/packages/platform-database/api/Class.RepositoryExceptionFilter.md +55 -0
  312. package/data/packages/platform-database/api/Function.cursorPaginator.md +26 -0
  313. package/data/packages/platform-database/api/Function.pageable.md +35 -0
  314. package/data/packages/platform-database/api/Function.paginator.md +22 -0
  315. package/data/packages/platform-database/api/Function.query.md +34 -0
  316. package/data/packages/platform-database/api/Function.skip.md +33 -0
  317. package/data/packages/platform-database/api/Function.transactionalQuery.md +31 -0
  318. package/data/packages/platform-database/api/Interface.ICursorPaginateOptions.md +40 -0
  319. package/data/packages/platform-database/api/Interface.ICursorPaginatedResult.md +65 -0
  320. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +35 -0
  321. package/data/packages/platform-database/api/Interface.IPaginateOptions.md +28 -0
  322. package/data/packages/platform-database/api/Interface.IPaginatedResult.md +77 -0
  323. package/data/packages/platform-database/api/Interface.IPrismaServiceOptions.md +23 -0
  324. package/data/packages/platform-database/api/Interface.IRepositoryQuery.md +51 -0
  325. package/data/packages/platform-database/api/Interface.ITransactionalRepositoryQuery.md +50 -0
  326. package/data/packages/platform-database/api/TypeAlias.CursorPaginateFunction.md +33 -0
  327. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +18 -0
  328. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +18 -0
  329. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +31 -0
  330. package/data/packages/platform-database/api/TypeAlias.QueryResultType.md +27 -0
  331. package/data/packages/platform-database/api/TypeAlias.TransactionalQueryResultType.md +26 -0
  332. package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +14 -0
  333. package/data/packages/platform-database/api/Variable.DB_AUTO_CONNECTION.md +14 -0
  334. package/data/packages/platform-database/api/Variable.PLATFORM_DATABASE_CONFIG_ENTRIES.md +14 -0
  335. package/data/packages/platform-database/api/index.md +60 -0
  336. package/data/packages/platform-database/index.md +323 -0
  337. package/data/packages/platform-documents/api/Class.BaseDocumentRenderer.md +277 -0
  338. package/data/packages/platform-documents/api/Class.DocumentEngine.md +80 -0
  339. package/data/packages/platform-documents/api/Class.DocumentModule.md +47 -0
  340. package/data/packages/platform-documents/api/Class.SharpImageProcessor.md +131 -0
  341. package/data/packages/platform-documents/api/Interface.IDocumentModuleOptions.md +94 -0
  342. package/data/packages/platform-documents/api/Interface.IDocumentPlaceholderDetail.md +70 -0
  343. package/data/packages/platform-documents/api/Interface.IDocumentProbeReport.md +118 -0
  344. package/data/packages/platform-documents/api/Interface.IDocumentRenderer.md +47 -0
  345. package/data/packages/platform-documents/api/Interface.IImagePayload.md +58 -0
  346. package/data/packages/platform-documents/api/Interface.IImageProcessor.md +95 -0
  347. package/data/packages/platform-documents/api/Interface.IRenderOptions.md +64 -0
  348. package/data/packages/platform-documents/api/Interface.IRenderResult.md +58 -0
  349. package/data/packages/platform-documents/api/TypeAlias.DocumentFormat.md +14 -0
  350. package/data/packages/platform-documents/api/TypeAlias.EngineType.md +14 -0
  351. package/data/packages/platform-documents/api/TypeAlias.ImageMimeType.md +14 -0
  352. package/data/packages/platform-documents/api/TypeAlias.TemplateFormat.md +14 -0
  353. package/data/packages/platform-documents/api/TypeAlias.TemplateType.md +14 -0
  354. package/data/packages/platform-documents/api/Variable.DOCUMENT_MODULE_OPTIONS.md +14 -0
  355. package/data/packages/platform-documents/api/Variable.DOCUMENT_PARSER_TOKEN.md +14 -0
  356. package/data/packages/platform-documents/api/Variable.DOCUMENT_RENDERER_TOKEN.md +14 -0
  357. package/data/packages/platform-documents/api/Variable.IMAGE_PROCESSOR_TOKEN.md +14 -0
  358. package/data/packages/platform-documents/api/index.md +47 -0
  359. package/data/packages/platform-documents/index.md +219 -0
  360. package/data/packages/platform-esigning/api/Class.EsigningClientPort.md +188 -0
  361. package/data/packages/platform-esigning/api/Class.EsigningError.md +65 -0
  362. package/data/packages/platform-esigning/api/Class.EsigningModule.md +48 -0
  363. package/data/packages/platform-esigning/api/Class.EsigningPersistencePort.md +90 -0
  364. package/data/packages/platform-esigning/api/Class.EsigningService.md +202 -0
  365. package/data/packages/platform-esigning/api/Class.InternalEsigningProvider.md +253 -0
  366. package/data/packages/platform-esigning/api/Class.SigningProviderError.md +101 -0
  367. package/data/packages/platform-esigning/api/Class.SigningRequestNotFoundError.md +78 -0
  368. package/data/packages/platform-esigning/api/Class.WebhookVerificationError.md +60 -0
  369. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequest.md +94 -0
  370. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequestDocument.md +58 -0
  371. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequestSigner.md +58 -0
  372. package/data/packages/platform-esigning/api/Interface.ICreateSigningSessionRequest.md +46 -0
  373. package/data/packages/platform-esigning/api/Interface.IEsigningModuleOptions.md +60 -0
  374. package/data/packages/platform-esigning/api/Interface.IEsigningWebhookEvent.md +82 -0
  375. package/data/packages/platform-esigning/api/Interface.ISignedDocument.md +82 -0
  376. package/data/packages/platform-esigning/api/Interface.ISigner.md +82 -0
  377. package/data/packages/platform-esigning/api/Interface.ISigningDocument.md +82 -0
  378. package/data/packages/platform-esigning/api/Interface.ISigningField.md +142 -0
  379. package/data/packages/platform-esigning/api/Interface.ISigningRequest.md +142 -0
  380. package/data/packages/platform-esigning/api/Interface.ISigningSession.md +70 -0
  381. package/data/packages/platform-esigning/api/TypeAlias.SignerRole.md +14 -0
  382. package/data/packages/platform-esigning/api/TypeAlias.SignerStatus.md +14 -0
  383. package/data/packages/platform-esigning/api/TypeAlias.SigningFieldType.md +14 -0
  384. package/data/packages/platform-esigning/api/TypeAlias.SigningRequestStatus.md +14 -0
  385. package/data/packages/platform-esigning/api/TypeAlias.WebhookEventType.md +14 -0
  386. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_BASE_URL.md +14 -0
  387. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_CLIENT_SECRET.md +14 -0
  388. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_CONFIG_ENTRIES.md +14 -0
  389. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_INTEGRATION_KEY.md +14 -0
  390. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_WEBHOOK_CLIENT_ID.md +14 -0
  391. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_ACCOUNT_ID.md +14 -0
  392. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_BASE_URL.md +14 -0
  393. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_CONFIG_ENTRIES.md +14 -0
  394. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_INTEGRATION_KEY.md +14 -0
  395. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_SECRET_KEY.md +14 -0
  396. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_WEBHOOK_HMAC_KEY.md +14 -0
  397. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_API_KEY.md +14 -0
  398. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_CLIENT_ID.md +14 -0
  399. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_CONFIG_ENTRIES.md +14 -0
  400. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_WEBHOOK_SECRET.md +14 -0
  401. package/data/packages/platform-esigning/api/Variable.ESIGNING_API_BASE_URL.md +14 -0
  402. package/data/packages/platform-esigning/api/Variable.ESIGNING_API_KEY.md +14 -0
  403. package/data/packages/platform-esigning/api/Variable.ESIGNING_PROVIDER.md +12 -0
  404. package/data/packages/platform-esigning/api/Variable.ESIGNING_PROVIDER_OPTIONS.md +12 -0
  405. package/data/packages/platform-esigning/api/Variable.ESIGNING_WEBHOOK_SECRET.md +14 -0
  406. package/data/packages/platform-esigning/api/Variable.PLATFORM_ESIGNING_CONFIG_ENTRIES.md +14 -0
  407. package/data/packages/platform-esigning/api/Variable.SIGNNOW_API_KEY.md +14 -0
  408. package/data/packages/platform-esigning/api/Variable.SIGNNOW_BASE_URL.md +14 -0
  409. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CLIENT_ID.md +14 -0
  410. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CLIENT_SECRET.md +14 -0
  411. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CONFIG_ENTRIES.md +14 -0
  412. package/data/packages/platform-esigning/api/Variable.SIGNNOW_WEBHOOK_SECRET.md +14 -0
  413. package/data/packages/platform-esigning/api/Variable.SignerRoles.md +30 -0
  414. package/data/packages/platform-esigning/api/Variable.SignerStatuses.md +32 -0
  415. package/data/packages/platform-esigning/api/Variable.SigningFieldTypes.md +38 -0
  416. package/data/packages/platform-esigning/api/Variable.SigningRequestStatuses.md +36 -0
  417. package/data/packages/platform-esigning/api/Variable.WebhookEventTypes.md +38 -0
  418. package/data/packages/platform-esigning/api/index.md +84 -0
  419. package/data/packages/platform-esigning/index.md +701 -0
  420. package/data/packages/platform-intelligence/api/Class.IntelligenceCapabilityRegistrarBase.md +94 -0
  421. package/data/packages/platform-intelligence/api/Class.IntelligenceCapabilityRegistry.md +106 -0
  422. package/data/packages/platform-intelligence/api/Class.IntelligenceModule.md +22 -0
  423. package/data/packages/platform-intelligence/api/Class.IntelligenceProviderError.md +79 -0
  424. package/data/packages/platform-intelligence/api/Class.IntelligenceTextGenerator.md +81 -0
  425. package/data/packages/platform-intelligence/api/Function.createProviderOptions.md +26 -0
  426. package/data/packages/platform-intelligence/api/Function.loadAnthropicLanguageModel.md +26 -0
  427. package/data/packages/platform-intelligence/api/Function.loadGoogleLanguageModel.md +26 -0
  428. package/data/packages/platform-intelligence/api/Function.loadGrokLanguageModel.md +26 -0
  429. package/data/packages/platform-intelligence/api/Function.loadOpenAILanguageModel.md +26 -0
  430. package/data/packages/platform-intelligence/api/Function.loadProviderFactory.md +31 -0
  431. package/data/packages/platform-intelligence/api/Interface.IIntelligenceArtifact.md +34 -0
  432. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapability.md +71 -0
  433. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityMetadata.md +70 -0
  434. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityPayload.md +46 -0
  435. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityRegistry.md +78 -0
  436. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityResult.md +46 -0
  437. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCompletionUsage.md +46 -0
  438. package/data/packages/platform-intelligence/api/Interface.IIntelligenceContext.md +72 -0
  439. package/data/packages/platform-intelligence/api/Interface.IIntelligenceContextBuilder.md +35 -0
  440. package/data/packages/platform-intelligence/api/Interface.IIntelligenceConversationMessageSnapshot.md +70 -0
  441. package/data/packages/platform-intelligence/api/Interface.IIntelligenceConversationSnapshot.md +58 -0
  442. package/data/packages/platform-intelligence/api/Interface.IIntelligenceFollowUpQuestion.md +46 -0
  443. package/data/packages/platform-intelligence/api/Interface.IIntelligenceIntent.md +46 -0
  444. package/data/packages/platform-intelligence/api/Interface.IIntelligenceIntentEntity.md +34 -0
  445. package/data/packages/platform-intelligence/api/Interface.IIntelligenceMessageModel.md +70 -0
  446. package/data/packages/platform-intelligence/api/Interface.IIntelligenceMessagePayload.md +34 -0
  447. package/data/packages/platform-intelligence/api/Interface.IIntelligencePrompt.md +34 -0
  448. package/data/packages/platform-intelligence/api/Interface.IIntelligencePromptMessage.md +34 -0
  449. package/data/packages/platform-intelligence/api/Interface.IIntelligenceProviderConfiguration.md +94 -0
  450. package/data/packages/platform-intelligence/api/Interface.IIntelligenceResponseMessage.md +34 -0
  451. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextCompletion.md +60 -0
  452. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerationOptions.md +59 -0
  453. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerator.md +53 -0
  454. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceConversationMessageRole.md +14 -0
  455. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceLanguageModelLoader.md +24 -0
  456. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceProviderName.md +14 -0
  457. package/data/packages/platform-intelligence/api/Variable.ANTHROPIC_API_KEY.md +14 -0
  458. package/data/packages/platform-intelligence/api/Variable.ANTHROPIC_BASE_URL.md +14 -0
  459. package/data/packages/platform-intelligence/api/Variable.GEMINI_API_KEY.md +14 -0
  460. package/data/packages/platform-intelligence/api/Variable.GOOGLE_API_KEY.md +14 -0
  461. package/data/packages/platform-intelligence/api/Variable.GOOGLE_BASE_URL.md +14 -0
  462. package/data/packages/platform-intelligence/api/Variable.GROK_API_KEY.md +14 -0
  463. package/data/packages/platform-intelligence/api/Variable.GROK_BASE_URL.md +14 -0
  464. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_API_KEY.md +14 -0
  465. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_BASE_URL.md +14 -0
  466. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_MAX_OUTPUT_TOKENS.md +14 -0
  467. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_MODEL.md +14 -0
  468. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_PROVIDER.md +14 -0
  469. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_TEMPERATURE.md +14 -0
  470. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_TOP_P.md +14 -0
  471. package/data/packages/platform-intelligence/api/Variable.IntelligenceConversationMessageRoles.md +26 -0
  472. package/data/packages/platform-intelligence/api/Variable.IntelligenceProviderNames.md +28 -0
  473. package/data/packages/platform-intelligence/api/Variable.OPENAI_API_KEY.md +14 -0
  474. package/data/packages/platform-intelligence/api/Variable.OPENAI_BASE_URL.md +14 -0
  475. package/data/packages/platform-intelligence/api/Variable.PLATFORM_INTELLIGENCE_CONFIG_ENTRIES.md +14 -0
  476. package/data/packages/platform-intelligence/api/Variable.XAI_API_KEY.md +14 -0
  477. package/data/packages/platform-intelligence/api/Variable.XAI_BASE_URL.md +14 -0
  478. package/data/packages/platform-intelligence/api/index.md +89 -0
  479. package/data/packages/platform-intelligence/index.md +155 -0
  480. package/data/packages/platform-logging/api/Class.LoggerModule.md +22 -0
  481. package/data/packages/platform-logging/api/Variable.APP_LOG_LEVEL.md +14 -0
  482. package/data/packages/platform-logging/api/Variable.PLATFORM_LOGGING_CONFIG_ENTRIES.md +14 -0
  483. package/data/packages/platform-logging/api/index.md +19 -0
  484. package/data/packages/platform-logging/index.md +92 -0
  485. package/data/packages/platform-mailing/api/Class.BlobTemplateFetchStrategy.md +60 -0
  486. package/data/packages/platform-mailing/api/Class.DeliveryStrategyBase.md +68 -0
  487. package/data/packages/platform-mailing/api/Class.FileTemplateFetchStrategy.md +58 -0
  488. package/data/packages/platform-mailing/api/Class.LogDeliveryStrategy.md +71 -0
  489. package/data/packages/platform-mailing/api/Class.MailHealthIndicator.md +78 -0
  490. package/data/packages/platform-mailing/api/Class.MailModule.md +22 -0
  491. package/data/packages/platform-mailing/api/Class.MailService.md +98 -0
  492. package/data/packages/platform-mailing/api/Class.MailTemplateEngine.md +93 -0
  493. package/data/packages/platform-mailing/api/Class.MailVerificationService.md +92 -0
  494. package/data/packages/platform-mailing/api/Class.MailgunDeliveryStrategy.md +77 -0
  495. package/data/packages/platform-mailing/api/Class.PostmarkDeliveryStrategy.md +77 -0
  496. package/data/packages/platform-mailing/api/Class.ResendDeliveryStrategy.md +77 -0
  497. package/data/packages/platform-mailing/api/Class.SendGridDeliveryStrategy.md +77 -0
  498. package/data/packages/platform-mailing/api/Class.SmtpDeliveryStrategy.md +77 -0
  499. package/data/packages/platform-mailing/api/Class.TemplateFetchStrategyBase.md +53 -0
  500. package/data/packages/platform-mailing/api/Interface.IMailAttachment.md +46 -0
  501. package/data/packages/platform-mailing/api/Interface.IMailEvents.md +66 -0
  502. package/data/packages/platform-mailing/api/Interface.IMailTemplateVariants.md +30 -0
  503. package/data/packages/platform-mailing/api/TypeAlias.MailTemplateFormat.md +14 -0
  504. package/data/packages/platform-mailing/api/Variable.ALLOWED_ATTACHMENT_MIME_TYPES.md +14 -0
  505. package/data/packages/platform-mailing/api/Variable.MAILGUN_API_KEY.md +14 -0
  506. package/data/packages/platform-mailing/api/Variable.MAILGUN_CONFIG_ENTRIES.md +14 -0
  507. package/data/packages/platform-mailing/api/Variable.MAILGUN_DOMAIN.md +14 -0
  508. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY.md +14 -0
  509. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY_TOKEN.md +12 -0
  510. package/data/packages/platform-mailing/api/Variable.MAIL_HOST.md +14 -0
  511. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_API_KEY.md +14 -0
  512. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_DOMAIN.md +14 -0
  513. package/data/packages/platform-mailing/api/Variable.MAIL_PORT.md +14 -0
  514. package/data/packages/platform-mailing/api/Variable.MAIL_POSTMARK_API_KEY.md +14 -0
  515. package/data/packages/platform-mailing/api/Variable.MAIL_RESEND_API_KEY.md +14 -0
  516. package/data/packages/platform-mailing/api/Variable.MAIL_SENDER_EMAIL.md +14 -0
  517. package/data/packages/platform-mailing/api/Variable.MAIL_SENDGRID_API_KEY.md +14 -0
  518. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_HOST.md +14 -0
  519. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PASSWORD.md +14 -0
  520. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PORT.md +14 -0
  521. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_SECURE.md +14 -0
  522. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_USER.md +14 -0
  523. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_ENGINE_FORMAT.md +14 -0
  524. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_FETCH_STRATEGY_TOKEN.md +16 -0
  525. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_STRATEGY.md +14 -0
  526. package/data/packages/platform-mailing/api/Variable.MAIL_USER.md +14 -0
  527. package/data/packages/platform-mailing/api/Variable.MAX_ATTACHMENT_SIZE_BYTES.md +14 -0
  528. package/data/packages/platform-mailing/api/Variable.PLATFORM_MAILING_CONFIG_ENTRIES.md +14 -0
  529. package/data/packages/platform-mailing/api/Variable.POSTMARK_API_KEY.md +14 -0
  530. package/data/packages/platform-mailing/api/Variable.POSTMARK_CONFIG_ENTRIES.md +14 -0
  531. package/data/packages/platform-mailing/api/Variable.RESEND_API_KEY.md +14 -0
  532. package/data/packages/platform-mailing/api/Variable.RESEND_CONFIG_ENTRIES.md +14 -0
  533. package/data/packages/platform-mailing/api/Variable.SENDGRID_API_KEY.md +14 -0
  534. package/data/packages/platform-mailing/api/Variable.SENDGRID_CONFIG_ENTRIES.md +14 -0
  535. package/data/packages/platform-mailing/api/Variable.SEND_MAIL_EVENT_KEY.md +14 -0
  536. package/data/packages/platform-mailing/api/index.md +77 -0
  537. package/data/packages/platform-mailing/index.md +383 -0
  538. package/data/packages/platform-mcp/api/Class.McpDiscoveryService.md +64 -0
  539. package/data/packages/platform-mcp/api/Class.McpModule.md +82 -0
  540. package/data/packages/platform-mcp/api/Class.McpRegistryService.md +146 -0
  541. package/data/packages/platform-mcp/api/Class.McpServerService.md +196 -0
  542. package/data/packages/platform-mcp/api/Function.McpPrompt.md +28 -0
  543. package/data/packages/platform-mcp/api/Function.McpResource.md +28 -0
  544. package/data/packages/platform-mcp/api/Function.McpTool.md +28 -0
  545. package/data/packages/platform-mcp/api/Interface.IMcpHandlerMetadata.md +46 -0
  546. package/data/packages/platform-mcp/api/Interface.IMcpModuleAsyncOptions.md +75 -0
  547. package/data/packages/platform-mcp/api/Interface.IMcpModuleOptions.md +125 -0
  548. package/data/packages/platform-mcp/api/Interface.IMcpModuleOptionsFactory.md +27 -0
  549. package/data/packages/platform-mcp/api/Interface.IMcpPromptMetadata.md +58 -0
  550. package/data/packages/platform-mcp/api/Interface.IMcpResourceMetadata.md +72 -0
  551. package/data/packages/platform-mcp/api/Interface.IMcpToolMetadata.md +94 -0
  552. package/data/packages/platform-mcp/api/Interface.IRegisteredPrompt.md +40 -0
  553. package/data/packages/platform-mcp/api/Interface.IRegisteredResource.md +40 -0
  554. package/data/packages/platform-mcp/api/Interface.IRegisteredTool.md +40 -0
  555. package/data/packages/platform-mcp/api/Interface.ISseTransportOptions.md +22 -0
  556. package/data/packages/platform-mcp/api/Interface.IStreamableHttpTransportOptions.md +38 -0
  557. package/data/packages/platform-mcp/api/Variable.MCP_MODULE_OPTIONS.md +14 -0
  558. package/data/packages/platform-mcp/api/index.md +46 -0
  559. package/data/packages/platform-mcp/index.md +299 -0
  560. package/data/packages/platform-openapi/api/Class.SwaggerFeatureDiscovery.md +70 -0
  561. package/data/packages/platform-openapi/api/Class.SwaggerFeatureRegistry.md +83 -0
  562. package/data/packages/platform-openapi/api/Class.SwaggerMultiDocumentService.md +77 -0
  563. package/data/packages/platform-openapi/api/Class.SwaggerTheme.md +46 -0
  564. package/data/packages/platform-openapi/api/Function.Api.md +35 -0
  565. package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +42 -0
  566. package/data/packages/platform-openapi/api/Function.getRegisteredSwaggerFeatures.md +18 -0
  567. package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +27 -0
  568. package/data/packages/platform-openapi/api/Interface.IFeatureSwaggerConfig.md +68 -0
  569. package/data/packages/platform-openapi/api/Interface.ISwaggerFeatureMetadata.md +68 -0
  570. package/data/packages/platform-openapi/api/Variable.APP_VERSION.md +14 -0
  571. package/data/packages/platform-openapi/api/Variable.PLATFORM_OPENAPI_CONFIG_ENTRIES.md +14 -0
  572. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_EMAIL.md +14 -0
  573. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_NAME.md +14 -0
  574. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_URL.md +14 -0
  575. package/data/packages/platform-openapi/api/Variable.SWAGGER_FEATURE_METADATA_KEY.md +12 -0
  576. package/data/packages/platform-openapi/api/index.md +42 -0
  577. package/data/packages/platform-openapi/index.md +170 -0
  578. package/data/packages/platform-payments/api/Class.FeatureAccessPort.md +74 -0
  579. package/data/packages/platform-payments/api/Class.FeatureGuard.md +68 -0
  580. package/data/packages/platform-payments/api/Class.FeatureUsageInterceptor.md +69 -0
  581. package/data/packages/platform-payments/api/Class.LemonSqueezyClient.md +163 -0
  582. package/data/packages/platform-payments/api/Class.MollieClient.md +166 -0
  583. package/data/packages/platform-payments/api/Class.PaddleClient.md +163 -0
  584. package/data/packages/platform-payments/api/Class.PaymentClientPort.md +142 -0
  585. package/data/packages/platform-payments/api/Class.PaymentModule.md +48 -0
  586. package/data/packages/platform-payments/api/Class.StripeClient.md +163 -0
  587. package/data/packages/platform-payments/api/Function.RequiresFeature.md +25 -0
  588. package/data/packages/platform-payments/api/Interface.IFeatureAccessResult.md +70 -0
  589. package/data/packages/platform-payments/api/Interface.INormalizedCheckoutSession.md +70 -0
  590. package/data/packages/platform-payments/api/Interface.INormalizedPrice.md +80 -0
  591. package/data/packages/platform-payments/api/Interface.INormalizedSubscription.md +100 -0
  592. package/data/packages/platform-payments/api/Interface.INormalizedWebhookEvent.md +84 -0
  593. package/data/packages/platform-payments/api/Interface.IPaymentModuleOptions.md +60 -0
  594. package/data/packages/platform-payments/api/TypeAlias.SubscriptionStatus.md +22 -0
  595. package/data/packages/platform-payments/api/Variable.FEATURE_KEY_METADATA.md +12 -0
  596. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_API_KEY.md +14 -0
  597. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_CONFIG_ENTRIES.md +14 -0
  598. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_STORE_ID.md +14 -0
  599. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_WEBHOOK_SECRET.md +14 -0
  600. package/data/packages/platform-payments/api/Variable.MOLLIE_API_KEY.md +14 -0
  601. package/data/packages/platform-payments/api/Variable.MOLLIE_CONFIG_ENTRIES.md +14 -0
  602. package/data/packages/platform-payments/api/Variable.MOLLIE_WEBHOOK_SECRET.md +14 -0
  603. package/data/packages/platform-payments/api/Variable.PADDLE_API_KEY.md +14 -0
  604. package/data/packages/platform-payments/api/Variable.PADDLE_CONFIG_ENTRIES.md +14 -0
  605. package/data/packages/platform-payments/api/Variable.PADDLE_ENVIRONMENT.md +14 -0
  606. package/data/packages/platform-payments/api/Variable.PADDLE_WEBHOOK_SECRET.md +14 -0
  607. package/data/packages/platform-payments/api/Variable.STRIPE_API_KEY.md +14 -0
  608. package/data/packages/platform-payments/api/Variable.STRIPE_CONFIG_ENTRIES.md +14 -0
  609. package/data/packages/platform-payments/api/Variable.STRIPE_WEBHOOK_SECRET.md +14 -0
  610. package/data/packages/platform-payments/api/index.md +63 -0
  611. package/data/packages/platform-payments/index.md +534 -0
  612. package/data/packages/platform-reporting/api/Class.ReportingContributorRegistry.md +56 -0
  613. package/data/packages/platform-reporting/api/Class.ReportingDatasetNotFoundError.md +40 -0
  614. package/data/packages/platform-reporting/api/Class.ReportingExecutionError.md +67 -0
  615. package/data/packages/platform-reporting/api/Class.ReportingFacade.md +84 -0
  616. package/data/packages/platform-reporting/api/Class.ReportingModule.md +22 -0
  617. package/data/packages/platform-reporting/api/Class.ReportingQueryValidationError.md +51 -0
  618. package/data/packages/platform-reporting/api/Interface.IReportingContributor.md +61 -0
  619. package/data/packages/platform-reporting/api/Interface.IReportingDataset.md +82 -0
  620. package/data/packages/platform-reporting/api/Interface.IReportingDatasetField.md +70 -0
  621. package/data/packages/platform-reporting/api/Interface.IReportingQuery.md +60 -0
  622. package/data/packages/platform-reporting/api/Interface.IReportingQueryFilter.md +40 -0
  623. package/data/packages/platform-reporting/api/Interface.IReportingQueryResult.md +60 -0
  624. package/data/packages/platform-reporting/api/Interface.IReportingQuerySort.md +30 -0
  625. package/data/packages/platform-reporting/api/TypeAlias.ReportingFieldType.md +12 -0
  626. package/data/packages/platform-reporting/api/TypeAlias.ReportingFilterOperator.md +12 -0
  627. package/data/packages/platform-reporting/api/TypeAlias.ReportingQueryResultRow.md +14 -0
  628. package/data/packages/platform-reporting/api/Variable.ReportingFieldTypes.md +30 -0
  629. package/data/packages/platform-reporting/api/Variable.ReportingFilterOperators.md +28 -0
  630. package/data/packages/platform-reporting/api/index.md +44 -0
  631. package/data/packages/platform-reporting/index.md +229 -0
  632. package/data/packages/platform-telemetry/api/Class.MetricsService.md +40 -0
  633. package/data/packages/platform-telemetry/api/Class.NoopTelemetryFacade.md +113 -0
  634. package/data/packages/platform-telemetry/api/Class.OtelSdkHolder.md +73 -0
  635. package/data/packages/platform-telemetry/api/Class.TelemetryCacheMetricsRecorder.md +175 -0
  636. package/data/packages/platform-telemetry/api/Class.TelemetryFacade.md +135 -0
  637. package/data/packages/platform-telemetry/api/Class.TelemetryLoggerService.md +226 -0
  638. package/data/packages/platform-telemetry/api/Class.TelemetryModule.md +40 -0
  639. package/data/packages/platform-telemetry/api/Class.TelemetryRuleEngine.md +49 -0
  640. package/data/packages/platform-telemetry/api/Function.validateTelemetryOptions.md +24 -0
  641. package/data/packages/platform-telemetry/api/Interface.IMetricInstruments.md +38 -0
  642. package/data/packages/platform-telemetry/api/Interface.ITelemetryFacade.md +85 -0
  643. package/data/packages/platform-telemetry/api/Interface.ITelemetryMetricsOptions.md +38 -0
  644. package/data/packages/platform-telemetry/api/Interface.ITelemetryOptions.md +136 -0
  645. package/data/packages/platform-telemetry/api/Interface.ITelemetryTracesOptions.md +38 -0
  646. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_ENABLED.md +12 -0
  647. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_FACADE.md +12 -0
  648. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_OPTIONS.md +12 -0
  649. package/data/packages/platform-telemetry/api/Variable.defaultTelemetryOptions.md +12 -0
  650. package/data/packages/platform-telemetry/api/index.md +44 -0
  651. package/data/packages/platform-telemetry/index.md +234 -0
  652. package/package.json +1 -1
@@ -0,0 +1,268 @@
1
+ ---
2
+ title: Blob Storage
3
+ description: Upload, download, and manage files with multi-provider blob storage using Vercel, Azure, AWS S3, or custom providers.
4
+ order: 7
5
+ ---
6
+
7
+ # Blob Storage
8
+
9
+ This guide covers file storage with `platform-blob-storage`: choosing a provider, uploading and downloading files, generating signed URLs, and optionally tracking file metadata with persistence ports.
10
+
11
+ ---
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ yarn add @breadstone/archipel-platform-blob-storage
17
+ ```
18
+
19
+ ---
20
+
21
+ ## Choose a Provider
22
+
23
+ `platform-blob-storage` abstracts file operations behind a unified `BlobService`. You select the provider at module registration time. Supported providers:
24
+
25
+ | Provider | Kind constant | When to use |
26
+ | ---------- | -------------------------- | ------------------------------------------- |
27
+ | **Vercel** | `BlobProviderKinds.Vercel` | Vercel-hosted apps with Vercel Blob storage |
28
+ | **Azure** | `BlobProviderKinds.Azure` | Azure Blob Storage accounts |
29
+ | **AWS S3** | `BlobProviderKinds.AwsS3` | Amazon S3 or S3-compatible providers |
30
+ | **Custom** | `BlobProviderKinds.Custom` | Your own storage backend |
31
+
32
+ ---
33
+
34
+ ## Module Registration
35
+
36
+ ```typescript
37
+ import { Module } from '@nestjs/common';
38
+ import { BlobModule, BlobProviderKinds } from '@breadstone/archipel-platform-blob-storage';
39
+
40
+ @Module({
41
+ imports: [
42
+ BlobModule.forRoot({
43
+ provider: {
44
+ kind: BlobProviderKinds.AwsS3,
45
+ },
46
+ }),
47
+ ],
48
+ })
49
+ export class AppModule {}
50
+ ```
51
+
52
+ Each provider reads its credentials from environment variables via the `ConfigModule`. Set the variables for your chosen provider:
53
+
54
+ ### AWS S3
55
+
56
+ ```env
57
+ BLOB_AWS_REGION=eu-central-1
58
+ BLOB_AWS_BUCKET=my-app-uploads
59
+ BLOB_AWS_ACCESS_KEY_ID=AKIA...
60
+ BLOB_AWS_SECRET_ACCESS_KEY=secret...
61
+ ```
62
+
63
+ > **Note:** `accessKeyId` and `secretAccessKey` must be provided **together**. Omit both to use the default AWS credential chain (e.g., IAM roles, instance profiles).
64
+
65
+ ### Azure Blob Storage
66
+
67
+ You can authenticate with either a **connection string** or **DefaultAzureCredential** (via managed identity):
68
+
69
+ ```env
70
+ # Option 1: Connection string
71
+ BLOB_AZURE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
72
+ BLOB_AZURE_CONTAINER=uploads
73
+
74
+ # Option 2: DefaultAzureCredential (no connection string needed)
75
+ BLOB_AZURE_ACCOUNT_NAME=mystorageaccount
76
+ BLOB_AZURE_CONTAINER=uploads
77
+ ```
78
+
79
+ When using `accountName` without a `connectionString`, the provider authenticates via `DefaultAzureCredential` from `@azure/identity`. This supports managed identities, environment credentials, and other Azure credential sources without storing secrets.
80
+
81
+ > **Peer dependency:** Install `@azure/identity` when using DefaultAzureCredential: `yarn add @azure/identity`
82
+
83
+ ### Vercel Blob
84
+
85
+ ```env
86
+ BLOB_VERCEL_TOKEN=your-vercel-blob-token
87
+ ```
88
+
89
+ ---
90
+
91
+ ## Uploading Files
92
+
93
+ Inject `BlobService` to upload files. It returns metadata about the stored blob.
94
+
95
+ ```typescript
96
+ import { Injectable } from '@nestjs/common';
97
+ import { BlobService } from '@breadstone/archipel-platform-blob-storage';
98
+
99
+ @Injectable()
100
+ export class AvatarService {
101
+ private readonly _blobService: BlobService;
102
+
103
+ constructor(blobService: BlobService) {
104
+ this._blobService = blobService;
105
+ }
106
+
107
+ public async uploadAvatar(userId: string, file: Buffer, mimeType: string): Promise<string> {
108
+ const result = await this._blobService.upload({
109
+ key: `avatars/${userId}`,
110
+ body: file,
111
+ contentType: mimeType,
112
+ });
113
+
114
+ return result.url;
115
+ }
116
+ }
117
+ ```
118
+
119
+ ### Handling Multipart Uploads in Controllers
120
+
121
+ For HTTP file uploads, use the `@UploadedFile()` decorator with Multer:
122
+
123
+ ```typescript
124
+ import { Controller, Post, UploadedFile, UseGuards, UseInterceptors } from '@nestjs/common';
125
+ import { FileInterceptor } from '@nestjs/platform-express';
126
+ import { JwtAuthGuard, User, type IAuthSubject } from '@breadstone/archipel-platform-authentication';
127
+
128
+ @Controller('avatars')
129
+ export class AvatarController {
130
+ private readonly _avatarService: AvatarService;
131
+
132
+ constructor(avatarService: AvatarService) {
133
+ this._avatarService = avatarService;
134
+ }
135
+
136
+ @Post()
137
+ @UseGuards(JwtAuthGuard)
138
+ @UseInterceptors(FileInterceptor('file'))
139
+ public async upload(@User() user: IAuthSubject, @UploadedFile() file: Express.Multer.File): Promise<{ url: string }> {
140
+ const url = await this._avatarService.uploadAvatar(user.id, file.buffer, file.mimetype);
141
+ return { url };
142
+ }
143
+ }
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Downloading and Signed URLs
149
+
150
+ ```typescript
151
+ // Download a blob
152
+ const content = await this._blobService.download('avatars/user-123');
153
+
154
+ // Generate a time-limited signed URL for direct client access
155
+ const signedUrl = await this._blobService.getSignedUrl('avatars/user-123', {
156
+ expiresIn: 3600, // seconds
157
+ });
158
+ ```
159
+
160
+ Signed URLs are useful for serving private files directly to the client without proxying through your server.
161
+
162
+ ---
163
+
164
+ ## Deleting Files
165
+
166
+ ```typescript
167
+ await this._blobService.delete('avatars/user-123');
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Tracking Metadata (Optional Ports)
173
+
174
+ By default, `BlobService` performs storage operations without persisting metadata to your database. If you need to track uploaded files (for listing, auditing, or cleanup), implement the optional persistence ports.
175
+
176
+ ### BlobObjectPersistencePort
177
+
178
+ Tracks blob metadata after upload and deletion:
179
+
180
+ ```typescript
181
+ import { Injectable } from '@nestjs/common';
182
+ import { BlobObjectPersistencePort } from '@breadstone/archipel-platform-blob-storage';
183
+ import { PrismaService } from '@breadstone/archipel-platform-database';
184
+
185
+ @Injectable()
186
+ export class PrismaBlobObjectAdapter extends BlobObjectPersistencePort {
187
+ private readonly _prisma: PrismaService;
188
+
189
+ constructor(prisma: PrismaService) {
190
+ super();
191
+ this._prisma = prisma;
192
+ }
193
+
194
+ public async onUploaded(key: string, url: string, contentType: string, size: number): Promise<void> {
195
+ await this._prisma.blobObject.upsert({
196
+ where: { key },
197
+ create: { key, url, contentType, size },
198
+ update: { url, contentType, size },
199
+ });
200
+ }
201
+
202
+ public async onDeleted(key: string): Promise<void> {
203
+ await this._prisma.blobObject.deleteMany({ where: { key } });
204
+ }
205
+ }
206
+ ```
207
+
208
+ ### BlobVariantPersistencePort
209
+
210
+ Tracks image variants (thumbnails, resized versions):
211
+
212
+ ```typescript
213
+ import { Injectable } from '@nestjs/common';
214
+ import { BlobVariantPersistencePort } from '@breadstone/archipel-platform-blob-storage';
215
+ import { PrismaService } from '@breadstone/archipel-platform-database';
216
+
217
+ @Injectable()
218
+ export class PrismaBlobVariantAdapter extends BlobVariantPersistencePort {
219
+ private readonly _prisma: PrismaService;
220
+
221
+ constructor(prisma: PrismaService) {
222
+ super();
223
+ this._prisma = prisma;
224
+ }
225
+
226
+ public async onVariantCreated(originalKey: string, variantKey: string, width: number, height: number): Promise<void> {
227
+ await this._prisma.blobVariant.create({
228
+ data: { originalKey, variantKey, width, height },
229
+ });
230
+ }
231
+ }
232
+ ```
233
+
234
+ ### Register with Persistence
235
+
236
+ ```typescript
237
+ BlobModule.forRoot({
238
+ provider: { kind: BlobProviderKinds.AwsS3 },
239
+ objectPersistence: PrismaBlobObjectAdapter,
240
+ variantPersistence: PrismaBlobVariantAdapter,
241
+ }),
242
+ ```
243
+
244
+ ---
245
+
246
+ ## Security
247
+
248
+ All built-in blob providers (AWS S3, Azure, Vercel) apply automatic key normalization via the internal `normalizeKey` method before any storage operation. This includes:
249
+
250
+ - **Path traversal prevention** — segments such as `..` and `.` are removed so callers cannot escape the intended directory.
251
+ - **Backslash normalization** — backslashes (`\`) are converted to forward slashes before processing.
252
+ - **Leading-slash stripping** — a leading `/` is removed to produce clean, relative keys.
253
+ - **Control-character rejection** — keys containing characters in the `\x00`–`\x1f` range cause an immediate `Error` to be thrown.
254
+
255
+ These checks run transparently on every `uploadObject`, `downloadObject`, `deleteObject`, and `getSignedUrl` call. No additional configuration is required.
256
+
257
+ ---
258
+
259
+ ## Health Checks
260
+
261
+ `platform-blob-storage` registers a health indicator automatically. It verifies connectivity to the configured provider. The result is included in your `/health` endpoint if you use `platform-core`'s health module.
262
+
263
+ ---
264
+
265
+ ## Next Steps
266
+
267
+ - See the [Implementing Ports](/guides/implementing-ports) guide for the general port/adapter pattern
268
+ - Browse the [platform-blob-storage API reference](/packages/platform-blob-storage/api/) for all method signatures
@@ -0,0 +1,255 @@
1
+ ---
2
+ title: Caching
3
+ description: Add layered caching to your NestJS application with in-memory LRU and Redis-backed implementations, TTL expiration, stale-while-revalidate, and metrics.
4
+ order: 16
5
+ ---
6
+
7
+ # Caching
8
+
9
+ This guide covers layered caching with `platform-caching`: choosing between in-memory and Redis backends, configuring TTL and LRU eviction, using stale-while-revalidate for low-latency reads, and integrating cache metrics with your observability stack.
10
+
11
+ ---
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ yarn add @breadstone/archipel-platform-caching
17
+ ```
18
+
19
+ For Redis-backed caching, also install `ioredis`:
20
+
21
+ ```bash
22
+ yarn add ioredis
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Concepts
28
+
29
+ `platform-caching` provides a generic `ILayeredCache<TKey, TValue>` interface with two implementations:
30
+
31
+ | Implementation | Backend | Sync support | Best for |
32
+ | -------------------- | --------- | ------------ | ---------------------------------------- |
33
+ | `MemoryLayeredCache` | In-memory | Yes | Single-instance apps, fast local lookups |
34
+ | `RedisLayeredCache` | Redis | No (async) | Multi-instance deployments, shared state |
35
+
36
+ Both implementations use a **loader function** pattern: when a cache miss occurs, the cache automatically calls a user-provided async function to load the value, stores it, and returns it. This eliminates repetitive "check cache → miss → load → store" boilerplate.
37
+
38
+ ---
39
+
40
+ ## In-Memory Cache
41
+
42
+ ### Basic Setup
43
+
44
+ Create a `MemoryLayeredCache` with a loader function that fetches the value on cache misses:
45
+
46
+ ```typescript
47
+ import { Injectable } from '@nestjs/common';
48
+ import { MemoryLayeredCache } from '@breadstone/archipel-platform-caching';
49
+
50
+ @Injectable()
51
+ export class ProductCacheService {
52
+ private readonly _cache: MemoryLayeredCache<string, IProduct>;
53
+
54
+ constructor(productRepository: ProductRepository) {
55
+ this._cache = new MemoryLayeredCache<string, IProduct>(async (productId: string) =>
56
+ productRepository.findById(productId),
57
+ );
58
+ }
59
+
60
+ public async getProduct(productId: string): Promise<IProduct | undefined> {
61
+ return this._cache.getAsync(productId);
62
+ }
63
+
64
+ public invalidateProduct(productId: string): void {
65
+ this._cache.invalidate(productId);
66
+ }
67
+ }
68
+ ```
69
+
70
+ ### TTL Expiration
71
+
72
+ Set a time-to-live so entries automatically expire:
73
+
74
+ ```typescript
75
+ this._cache = new MemoryLayeredCache<string, IProduct>(
76
+ async (id) => productRepository.findById(id),
77
+ { ttlMs: 60_000 }, // entries expire after 60 seconds
78
+ );
79
+ ```
80
+
81
+ ### LRU Eviction
82
+
83
+ Limit the number of entries to prevent unbounded memory growth. The oldest entry (least recently used) is evicted first:
84
+
85
+ ```typescript
86
+ this._cache = new MemoryLayeredCache<string, IProduct>(async (id) => productRepository.findById(id), {
87
+ ttlMs: 300_000, // 5-minute TTL
88
+ maxEntries: 1000, // keep at most 1000 entries
89
+ });
90
+ ```
91
+
92
+ ### Stale-While-Revalidate
93
+
94
+ Serve expired entries immediately while refreshing in the background. This keeps latency low for frequently accessed data:
95
+
96
+ ```typescript
97
+ this._cache = new MemoryLayeredCache<string, IProduct>(async (id) => productRepository.findById(id), {
98
+ ttlMs: 30_000,
99
+ staleWhileRevalidate: true, // return stale value, refresh async
100
+ });
101
+ ```
102
+
103
+ > **When to use:** Quasi-static reference data (categories, feature flags, configuration). Avoid for personalized or rapidly changing data where freshness is critical.
104
+
105
+ ### Synchronous Access
106
+
107
+ `MemoryLayeredCache` supports synchronous `get()` and `set()` for cases where you've pre-warmed the cache or need zero-await lookups:
108
+
109
+ ```typescript
110
+ // Pre-warm on startup
111
+ await this._cache.warm('featured-product');
112
+
113
+ // Later: synchronous read (no await needed)
114
+ const product = this._cache.get('featured-product');
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Redis Cache
120
+
121
+ ### Basic Setup
122
+
123
+ `RedisLayeredCache` provides the same `ILayeredCache` interface but stores entries in Redis. Synchronous methods (`get`, `set`, `invalidate`) throw — use the async variants.
124
+
125
+ ```typescript
126
+ import { Injectable } from '@nestjs/common';
127
+ import { RedisLayeredCache } from '@breadstone/archipel-platform-caching/redis';
128
+
129
+ @Injectable()
130
+ export class SessionCacheService {
131
+ private readonly _cache: RedisLayeredCache<string, ISessionData>;
132
+
133
+ constructor(sessionRepository: SessionRepository) {
134
+ this._cache = new RedisLayeredCache<string, ISessionData>(
135
+ async (sessionId) => sessionRepository.findById(sessionId),
136
+ {
137
+ url: process.env['REDIS_URL'] ?? 'redis://localhost:6379',
138
+ keyPrefix: 'session:',
139
+ ttlSeconds: 3600, // 1-hour TTL
140
+ },
141
+ );
142
+ }
143
+
144
+ public async getSession(sessionId: string): Promise<ISessionData | undefined> {
145
+ return this._cache.getAsync(sessionId);
146
+ }
147
+
148
+ public async invalidateSession(sessionId: string): Promise<void> {
149
+ await this._cache.invalidateAsync(sessionId);
150
+ }
151
+ }
152
+ ```
153
+
154
+ ### Custom Serialization
155
+
156
+ By default, values are serialized with `JSON.stringify` and deserialized with `JSON.parse`. Override this for custom formats:
157
+
158
+ ```typescript
159
+ this._cache = new RedisLayeredCache<string, ISessionData>(async (id) => sessionRepository.findById(id), {
160
+ url: 'redis://localhost:6379',
161
+ keyPrefix: 'session:',
162
+ serialize: (value) => msgpack.encode(value).toString('base64'),
163
+ deserialize: (raw) => msgpack.decode(Buffer.from(raw, 'base64')) as ISessionData,
164
+ });
165
+ ```
166
+
167
+ ### Graceful Shutdown
168
+
169
+ `RedisLayeredCache` implements `OnModuleDestroy` and automatically disconnects the Redis client when the NestJS module is destroyed. No manual cleanup is needed.
170
+
171
+ ---
172
+
173
+ ## Cache Metrics
174
+
175
+ Both implementations accept an optional `ICacheMetricsRecorder` to forward cache statistics to your observability backend.
176
+
177
+ ### Implementing a Metrics Recorder
178
+
179
+ ```typescript
180
+ import type { ICacheMetricsRecorder } from '@breadstone/archipel-platform-caching';
181
+ import { TelemetryFacade } from '@breadstone/archipel-platform-telemetry';
182
+
183
+ export class TelemetryCacheMetricsRecorder implements ICacheMetricsRecorder {
184
+ private readonly _telemetry: TelemetryFacade;
185
+
186
+ constructor(telemetry: TelemetryFacade) {
187
+ this._telemetry = telemetry;
188
+ }
189
+
190
+ public recordHit(cache: string): void {
191
+ this._telemetry.recordCounter('cache_hits_total', 1, { cache });
192
+ }
193
+
194
+ public recordMiss(cache: string): void {
195
+ this._telemetry.recordCounter('cache_misses_total', 1, { cache });
196
+ }
197
+
198
+ public recordLoadSuccess(cache: string): void {
199
+ this._telemetry.recordCounter('cache_load_success_total', 1, { cache });
200
+ }
201
+
202
+ public recordLoadError(cache: string): void {
203
+ this._telemetry.recordCounter('cache_load_error_total', 1, { cache });
204
+ }
205
+
206
+ public recordEviction(cache: string): void {
207
+ this._telemetry.recordCounter('cache_evictions_total', 1, { cache });
208
+ }
209
+ }
210
+ ```
211
+
212
+ ### Wiring It Up
213
+
214
+ Pass the recorder when creating the cache:
215
+
216
+ ```typescript
217
+ this._cache = new MemoryLayeredCache<string, IProduct>(async (id) => productRepository.findById(id), {
218
+ ttlMs: 60_000,
219
+ maxEntries: 500,
220
+ metricsRecorder: new TelemetryCacheMetricsRecorder(telemetry),
221
+ cacheName: 'products',
222
+ });
223
+ ```
224
+
225
+ When no metrics recorder is provided, a `NoopCacheMetricsRecorder` is used automatically — no setup needed.
226
+
227
+ ---
228
+
229
+ ## Cache Statistics
230
+
231
+ Both implementations expose a `stats()` method returning a snapshot of cache performance:
232
+
233
+ ```typescript
234
+ const stats = this._cache.stats();
235
+ console.log(stats.hits); // total cache hits
236
+ console.log(stats.misses); // total cache misses
237
+ console.log(stats.loads); // successful loader invocations
238
+ console.log(stats.loadErrors); // failed loader invocations
239
+ console.log(stats.evictions); // LRU evictions (MemoryLayeredCache only)
240
+ ```
241
+
242
+ Use this for health checks or debug endpoints.
243
+
244
+ ---
245
+
246
+ ## Best Practices
247
+
248
+ | Practice | Why |
249
+ | ----------------------------------------- | ------------------------------------------------------------------ |
250
+ | Set `maxEntries` for in-memory caches | Prevents unbounded memory growth in long-running processes |
251
+ | Use `staleWhileRevalidate` for read-heavy | Keeps p99 latency low for popular keys |
252
+ | Invalidate on writes | Call `invalidate(key)` after mutations to avoid serving stale data |
253
+ | Use `cacheName` labels | Makes metrics dashboards filterable by cache instance |
254
+ | Keep TTLs short for user-specific data | Personalized data should not be stale for extended periods |
255
+ | Use Redis for multi-instance deployments | In-memory caches are not shared across application instances |