@breadstone/archipel-mcp 0.0.13 → 0.0.14

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 (612) hide show
  1. package/package.json +1 -1
  2. package/src/DocsLoader.js +2 -5
  3. package/src/GuidesLoader.js +2 -5
  4. package/data/guides/ai-text-generation.md +0 -361
  5. package/data/guides/analytics-and-error-tracking.md +0 -189
  6. package/data/guides/authentication-and-authorization.md +0 -657
  7. package/data/guides/blob-storage.md +0 -242
  8. package/data/guides/caching.md +0 -255
  9. package/data/guides/cryptography-and-otp.md +0 -240
  10. package/data/guides/database-setup.md +0 -546
  11. package/data/guides/document-generation.md +0 -174
  12. package/data/guides/email-delivery.md +0 -196
  13. package/data/guides/esigning-integration.md +0 -231
  14. package/data/guides/getting-started.md +0 -351
  15. package/data/guides/implementing-ports.md +0 -317
  16. package/data/guides/index.md +0 -62
  17. package/data/guides/mcp-server.md +0 -222
  18. package/data/guides/openapi-and-feature-discovery.md +0 -266
  19. package/data/guides/payments-and-feature-gating.md +0 -244
  20. package/data/guides/resource-management.md +0 -352
  21. package/data/guides/telemetry-and-observability.md +0 -190
  22. package/data/guides/testing.md +0 -319
  23. package/data/guides/tsdoc-guidelines.md +0 -45
  24. package/data/packages/index.md +0 -52
  25. package/data/packages/platform-analytics/api/Class.AnalyticsClientPort.md +0 -141
  26. package/data/packages/platform-analytics/api/Class.AnalyticsModule.md +0 -47
  27. package/data/packages/platform-analytics/api/Class.AppInsightsAnalyticsClient.md +0 -169
  28. package/data/packages/platform-analytics/api/Class.DatadogAnalyticsClient.md +0 -169
  29. package/data/packages/platform-analytics/api/Class.NoopAnalyticsClient.md +0 -161
  30. package/data/packages/platform-analytics/api/Class.SentryAnalyticsClient.md +0 -169
  31. package/data/packages/platform-analytics/api/Interface.IAnalyticsBreadcrumb.md +0 -58
  32. package/data/packages/platform-analytics/api/Interface.IAnalyticsModuleOptions.md +0 -47
  33. package/data/packages/platform-analytics/api/Interface.IAnalyticsUser.md +0 -58
  34. package/data/packages/platform-analytics/api/TypeAlias.AnalyticsLevel.md +0 -14
  35. package/data/packages/platform-analytics/api/Variable.APPINSIGHTS_CONFIG_ENTRIES.md +0 -14
  36. package/data/packages/platform-analytics/api/Variable.APPLICATIONINSIGHTS_CONNECTION_STRING.md +0 -14
  37. package/data/packages/platform-analytics/api/Variable.DATADOG_CONFIG_ENTRIES.md +0 -14
  38. package/data/packages/platform-analytics/api/Variable.DD_ENV.md +0 -14
  39. package/data/packages/platform-analytics/api/Variable.DD_SERVICE.md +0 -14
  40. package/data/packages/platform-analytics/api/Variable.SENTRY_CONFIG_ENTRIES.md +0 -14
  41. package/data/packages/platform-analytics/api/Variable.SENTRY_DSN.md +0 -14
  42. package/data/packages/platform-analytics/api/Variable.SENTRY_ENVIRONMENT.md +0 -14
  43. package/data/packages/platform-analytics/api/index.md +0 -44
  44. package/data/packages/platform-analytics/index.md +0 -170
  45. package/data/packages/platform-authentication/api/Class.AnonymousAuthGuard.md +0 -40
  46. package/data/packages/platform-authentication/api/Class.AppleConnector.md +0 -86
  47. package/data/packages/platform-authentication/api/Class.AuthModule.md +0 -67
  48. package/data/packages/platform-authentication/api/Class.AuthSubjectPort.md +0 -95
  49. package/data/packages/platform-authentication/api/Class.AuthTokenService.md +0 -59
  50. package/data/packages/platform-authentication/api/Class.ChallengeService.md +0 -131
  51. package/data/packages/platform-authentication/api/Class.GithubAuthGuard.md +0 -40
  52. package/data/packages/platform-authentication/api/Class.GithubConnector.md +0 -78
  53. package/data/packages/platform-authentication/api/Class.GoogleConnector.md +0 -84
  54. package/data/packages/platform-authentication/api/Class.JwtAuthGuard.md +0 -40
  55. package/data/packages/platform-authentication/api/Class.JwtPayloadBase.md +0 -136
  56. package/data/packages/platform-authentication/api/Class.LastActiveMiddleware.md +0 -71
  57. package/data/packages/platform-authentication/api/Class.LocalAuthGuard.md +0 -40
  58. package/data/packages/platform-authentication/api/Class.MfaService.md +0 -252
  59. package/data/packages/platform-authentication/api/Class.MfaSubjectPort.md +0 -70
  60. package/data/packages/platform-authentication/api/Class.MicrosoftConnector.md +0 -84
  61. package/data/packages/platform-authentication/api/Class.RolesGuard.md +0 -60
  62. package/data/packages/platform-authentication/api/Class.SessionMappingProfile.md +0 -60
  63. package/data/packages/platform-authentication/api/Class.SessionPersistencePort.md +0 -165
  64. package/data/packages/platform-authentication/api/Class.SessionResponse.md +0 -152
  65. package/data/packages/platform-authentication/api/Class.SessionService.md +0 -162
  66. package/data/packages/platform-authentication/api/Class.SocialAuthGuard.md +0 -61
  67. package/data/packages/platform-authentication/api/Class.SocialAuthPort.md +0 -48
  68. package/data/packages/platform-authentication/api/Class.TokenEnricherPort.md +0 -47
  69. package/data/packages/platform-authentication/api/Class.TotpMfaChannel.md +0 -144
  70. package/data/packages/platform-authentication/api/Class.VerificationService.md +0 -154
  71. package/data/packages/platform-authentication/api/Class.VerificationSubjectPort.md +0 -116
  72. package/data/packages/platform-authentication/api/Function.Token.md +0 -18
  73. package/data/packages/platform-authentication/api/Function.UseRoles.md +0 -24
  74. package/data/packages/platform-authentication/api/Function.socialAuthGuardFactory.md +0 -22
  75. package/data/packages/platform-authentication/api/Interface.IAuthModuleOptions.md +0 -143
  76. package/data/packages/platform-authentication/api/Interface.IAuthSubject.md +0 -107
  77. package/data/packages/platform-authentication/api/Interface.IMfaChallengePayload.md +0 -82
  78. package/data/packages/platform-authentication/api/Interface.IMfaChallengeState.md +0 -118
  79. package/data/packages/platform-authentication/api/Interface.IMfaConfirmation.md +0 -22
  80. package/data/packages/platform-authentication/api/Interface.IMfaSetup.md +0 -58
  81. package/data/packages/platform-authentication/api/Interface.IMfaSubject.md +0 -131
  82. package/data/packages/platform-authentication/api/Interface.IMfaSubjectUpdate.md +0 -91
  83. package/data/packages/platform-authentication/api/Interface.ISessionRecord.md +0 -160
  84. package/data/packages/platform-authentication/api/Interface.ISignInResult.md +0 -82
  85. package/data/packages/platform-authentication/api/Interface.ISocialProfile.md +0 -58
  86. package/data/packages/platform-authentication/api/Interface.IStoreSessionArgs.md +0 -70
  87. package/data/packages/platform-authentication/api/Interface.IVerifiableSubject.md +0 -71
  88. package/data/packages/platform-authentication/api/Variable.APPLE_AUTH_CONFIG_ENTRIES.md +0 -14
  89. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_CALLBACK_URL.md +0 -14
  90. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_CLIENT_ID.md +0 -14
  91. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_KEY_ID.md +0 -14
  92. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_PRIVATE_KEY.md +0 -14
  93. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_SCOPE.md +0 -14
  94. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_TEAM_ID.md +0 -14
  95. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CALLBACK_URL.md +0 -14
  96. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CLIENT_ID.md +0 -14
  97. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CLIENT_SECRET.md +0 -14
  98. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_SCOPE.md +0 -14
  99. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CALLBACK_URL.md +0 -14
  100. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CLIENT_ID.md +0 -14
  101. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CLIENT_SECRET.md +0 -14
  102. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_SCOPE.md +0 -14
  103. package/data/packages/platform-authentication/api/Variable.AUTH_JWT_EXPIRES_IN.md +0 -14
  104. package/data/packages/platform-authentication/api/Variable.AUTH_JWT_SECRET.md +0 -14
  105. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_CHALLENGE_EXPIRES_IN.md +0 -14
  106. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_EMAIL_CODE_TTL.md +0 -14
  107. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_EMAIL_MIN_RESEND.md +0 -14
  108. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_ENCRYPTION_KEY.md +0 -14
  109. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_ISSUER.md +0 -14
  110. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_MAX_ATTEMPTS.md +0 -14
  111. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_PUSH_CODE_TTL.md +0 -14
  112. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_PUSH_MIN_RESEND.md +0 -14
  113. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_SMS_CODE_TTL.md +0 -14
  114. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_SMS_MIN_RESEND.md +0 -14
  115. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CALLBACK_URL.md +0 -14
  116. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CLIENT_ID.md +0 -14
  117. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CLIENT_SECRET.md +0 -14
  118. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_SCOPE.md +0 -14
  119. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_TENANT.md +0 -14
  120. package/data/packages/platform-authentication/api/Variable.AUTH_VERIFY_JWT_EXPIRES_IN.md +0 -14
  121. package/data/packages/platform-authentication/api/Variable.GITHUB_AUTH_CONFIG_ENTRIES.md +0 -14
  122. package/data/packages/platform-authentication/api/Variable.GOOGLE_AUTH_CONFIG_ENTRIES.md +0 -14
  123. package/data/packages/platform-authentication/api/Variable.MICROSOFT_AUTH_CONFIG_ENTRIES.md +0 -14
  124. package/data/packages/platform-authentication/api/Variable.PLATFORM_AUTHENTICATION_CONFIG_ENTRIES.md +0 -14
  125. package/data/packages/platform-authentication/api/Variable.ROLES_KEY.md +0 -14
  126. package/data/packages/platform-authentication/api/Variable.SEED_ANONYMOUS_USERNAME.md +0 -14
  127. package/data/packages/platform-authentication/api/Variable.SESSION_LIST_MAPPING_KEY.md +0 -14
  128. package/data/packages/platform-authentication/api/Variable.SESSION_MAPPING_KEY.md +0 -14
  129. package/data/packages/platform-authentication/api/Variable.TOTP_MFA_PROVIDERS.md +0 -29
  130. package/data/packages/platform-authentication/api/Variable.User.md +0 -24
  131. package/data/packages/platform-authentication/api/index.md +0 -112
  132. package/data/packages/platform-authentication/index.md +0 -635
  133. package/data/packages/platform-blob-storage/api/Class.AwsS3BlobProvider.md +0 -196
  134. package/data/packages/platform-blob-storage/api/Class.AzureBlobProvider.md +0 -196
  135. package/data/packages/platform-blob-storage/api/Class.BlobHealthIndicator.md +0 -79
  136. package/data/packages/platform-blob-storage/api/Class.BlobModule.md +0 -49
  137. package/data/packages/platform-blob-storage/api/Class.BlobObjectPersistencePort.md +0 -75
  138. package/data/packages/platform-blob-storage/api/Class.BlobService.md +0 -248
  139. package/data/packages/platform-blob-storage/api/Class.BlobVariantPersistencePort.md +0 -51
  140. package/data/packages/platform-blob-storage/api/Class.VercelBlobProvider.md +0 -197
  141. package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +0 -28
  142. package/data/packages/platform-blob-storage/api/Interface.IAwsS3ProviderOptions.md +0 -68
  143. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderOptions.md +0 -38
  144. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +0 -28
  145. package/data/packages/platform-blob-storage/api/Interface.IBlobDeleteRequest.md +0 -38
  146. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadRequest.md +0 -48
  147. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadResult.md +0 -64
  148. package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +0 -48
  149. package/data/packages/platform-blob-storage/api/Interface.IBlobObjectMetadata.md +0 -138
  150. package/data/packages/platform-blob-storage/api/Interface.IBlobProvider.md +0 -114
  151. package/data/packages/platform-blob-storage/api/Interface.IBlobSignedUrlRequest.md +0 -48
  152. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadRequest.md +0 -98
  153. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadResult.md +0 -28
  154. package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +0 -28
  155. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderOptions.md +0 -68
  156. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +0 -28
  157. package/data/packages/platform-blob-storage/api/TypeAlias.BlobDownloadResponseType.md +0 -12
  158. package/data/packages/platform-blob-storage/api/TypeAlias.BlobUploadBody.md +0 -12
  159. package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +0 -16
  160. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_PROVIDER_OPTIONS.md +0 -12
  161. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_PROVIDER_OPTIONS.md +0 -12
  162. package/data/packages/platform-blob-storage/api/Variable.BLOB_PROVIDER.md +0 -12
  163. package/data/packages/platform-blob-storage/api/Variable.BlobDownloadResponseTypes.md +0 -26
  164. package/data/packages/platform-blob-storage/api/Variable.BlobProviderKinds.md +0 -26
  165. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_PROVIDER_OPTIONS.md +0 -12
  166. package/data/packages/platform-blob-storage/api/index.md +0 -59
  167. package/data/packages/platform-blob-storage/index.md +0 -335
  168. package/data/packages/platform-caching/api/Class.MemoryLayeredCache.md +0 -258
  169. package/data/packages/platform-caching/api/Class.NoopCacheMetricsRecorder.md +0 -157
  170. package/data/packages/platform-caching/api/Class.RedisLayeredCache.md +0 -295
  171. package/data/packages/platform-caching/api/Interface.ICacheMetricsRecorder.md +0 -121
  172. package/data/packages/platform-caching/api/Interface.ICacheStats.md +0 -70
  173. package/data/packages/platform-caching/api/Interface.ILayeredCache.md +0 -198
  174. package/data/packages/platform-caching/api/Interface.ILayeredCacheOptions.md +0 -75
  175. package/data/packages/platform-caching/api/Interface.IRedisLayeredCacheOptions.md +0 -121
  176. package/data/packages/platform-caching/api/index.md +0 -24
  177. package/data/packages/platform-caching/index.md +0 -116
  178. package/data/packages/platform-core/api/Class.AppHealthIndicator.md +0 -50
  179. package/data/packages/platform-core/api/Class.BlobResourceStrategy.md +0 -195
  180. package/data/packages/platform-core/api/Class.BooleanUtils.md +0 -82
  181. package/data/packages/platform-core/api/Class.CUIDGenerator.md +0 -120
  182. package/data/packages/platform-core/api/Class.CasingInterceptor.md +0 -83
  183. package/data/packages/platform-core/api/Class.CatchUtils.md +0 -93
  184. package/data/packages/platform-core/api/Class.ConfigKeyNotFoundError.md +0 -89
  185. package/data/packages/platform-core/api/Class.ConfigModule.md +0 -69
  186. package/data/packages/platform-core/api/Class.ConfigRegistry.md +0 -115
  187. package/data/packages/platform-core/api/Class.ConfigService.md +0 -137
  188. package/data/packages/platform-core/api/Class.ConfigStrategyBase.md +0 -125
  189. package/data/packages/platform-core/api/Class.ContentTemplateEngine.md +0 -63
  190. package/data/packages/platform-core/api/Class.DateTimeUtils.md +0 -101
  191. package/data/packages/platform-core/api/Class.DeviceParserService.md +0 -52
  192. package/data/packages/platform-core/api/Class.EmbeddedResourceStrategy.md +0 -215
  193. package/data/packages/platform-core/api/Class.EnvironmentConfigStrategy.md +0 -141
  194. package/data/packages/platform-core/api/Class.ErrorTemplateService.md +0 -109
  195. package/data/packages/platform-core/api/Class.EventHub.md +0 -163
  196. package/data/packages/platform-core/api/Class.EventModule.md +0 -22
  197. package/data/packages/platform-core/api/Class.FileConfigStrategy.md +0 -147
  198. package/data/packages/platform-core/api/Class.FileResourceStrategy.md +0 -192
  199. package/data/packages/platform-core/api/Class.GUIDGenerator.md +0 -85
  200. package/data/packages/platform-core/api/Class.GlobalExceptionFilter.md +0 -66
  201. package/data/packages/platform-core/api/Class.HealthModule.md +0 -42
  202. package/data/packages/platform-core/api/Class.HealthOrchestrator.md +0 -64
  203. package/data/packages/platform-core/api/Class.HostModule.md +0 -31
  204. package/data/packages/platform-core/api/Class.HostService.md +0 -149
  205. package/data/packages/platform-core/api/Class.HttpLoggerMiddleware.md +0 -59
  206. package/data/packages/platform-core/api/Class.IdGeneratorBase.md +0 -87
  207. package/data/packages/platform-core/api/Class.IdentifierModule.md +0 -40
  208. package/data/packages/platform-core/api/Class.LimitRequestSizeMiddleware.md +0 -59
  209. package/data/packages/platform-core/api/Class.LocalizedTextRequest.md +0 -42
  210. package/data/packages/platform-core/api/Class.LocalizedTextResponse.md +0 -42
  211. package/data/packages/platform-core/api/Class.MappingBuilder.md +0 -110
  212. package/data/packages/platform-core/api/Class.MappingModule.md +0 -46
  213. package/data/packages/platform-core/api/Class.MappingNotRegisteredError.md +0 -56
  214. package/data/packages/platform-core/api/Class.MappingProfileBase.md +0 -52
  215. package/data/packages/platform-core/api/Class.MappingService.md +0 -284
  216. package/data/packages/platform-core/api/Class.NormalizedUtils.md +0 -148
  217. package/data/packages/platform-core/api/Class.PageableRequest.md +0 -42
  218. package/data/packages/platform-core/api/Class.PageableResponse.md +0 -62
  219. package/data/packages/platform-core/api/Class.ProblemDetailException.md +0 -61
  220. package/data/packages/platform-core/api/Class.ProblemDetailExceptionFilter.md +0 -94
  221. package/data/packages/platform-core/api/Class.QuantityResponse.md +0 -42
  222. package/data/packages/platform-core/api/Class.ResourceManager.md +0 -565
  223. package/data/packages/platform-core/api/Class.ResourceModule.md +0 -46
  224. package/data/packages/platform-core/api/Class.ResponseReturn.md +0 -502
  225. package/data/packages/platform-core/api/Class.SseHub.md +0 -183
  226. package/data/packages/platform-core/api/Class.SseModule.md +0 -42
  227. package/data/packages/platform-core/api/Class.TimeStampResponse.md +0 -42
  228. package/data/packages/platform-core/api/Class.TypeMappingNotRegisteredError.md +0 -57
  229. package/data/packages/platform-core/api/Class.UUIDGenerator.md +0 -85
  230. package/data/packages/platform-core/api/Class.UserAvatarGeneratorService.md +0 -47
  231. package/data/packages/platform-core/api/Class.UserNameGeneratorService.md +0 -64
  232. package/data/packages/platform-core/api/Function.Public.md +0 -18
  233. package/data/packages/platform-core/api/Function.createConfigKey.md +0 -58
  234. package/data/packages/platform-core/api/Function.createEventKey.md +0 -33
  235. package/data/packages/platform-core/api/Function.createMappingKey.md +0 -39
  236. package/data/packages/platform-core/api/Function.env.md +0 -28
  237. package/data/packages/platform-core/api/Function.getMimeTypeByFileNameOrExtension.md +0 -26
  238. package/data/packages/platform-core/api/ISseEventData.Function.isActionId.md +0 -27
  239. package/data/packages/platform-core/api/Interface.IBlobResourceStrategyConfig.md +0 -28
  240. package/data/packages/platform-core/api/Interface.IBlobServiceAdapter.md +0 -40
  241. package/data/packages/platform-core/api/Interface.IConfigKey.md +0 -63
  242. package/data/packages/platform-core/api/Interface.IConfigModuleOptions.md +0 -40
  243. package/data/packages/platform-core/api/Interface.IConfigRegistryEntry.md +0 -79
  244. package/data/packages/platform-core/api/Interface.IDeviceInfo.md +0 -80
  245. package/data/packages/platform-core/api/Interface.IErrorPageParams.md +0 -153
  246. package/data/packages/platform-core/api/Interface.IEventKey.md +0 -57
  247. package/data/packages/platform-core/api/Interface.IEventMap.md +0 -16
  248. package/data/packages/platform-core/api/Interface.IFileResourceStrategyConfig.md +0 -72
  249. package/data/packages/platform-core/api/Interface.IHealthCheckResult.md +0 -46
  250. package/data/packages/platform-core/api/Interface.IHealthIndicator.md +0 -41
  251. package/data/packages/platform-core/api/Interface.IHostContentParams.md +0 -232
  252. package/data/packages/platform-core/api/Interface.IIdGenerator.md +0 -57
  253. package/data/packages/platform-core/api/Interface.IMappingBuilder.md +0 -76
  254. package/data/packages/platform-core/api/Interface.IMappingKey.md +0 -58
  255. package/data/packages/platform-core/api/Interface.IMappingProfile.md +0 -32
  256. package/data/packages/platform-core/api/Interface.IResourceManagerConfig.md +0 -71
  257. package/data/packages/platform-core/api/Interface.IResourceMetadata.md +0 -94
  258. package/data/packages/platform-core/api/Interface.IResourceResult.md +0 -34
  259. package/data/packages/platform-core/api/Interface.IResourceStrategy.md +0 -134
  260. package/data/packages/platform-core/api/Interface.ISseEventData.md +0 -36
  261. package/data/packages/platform-core/api/Interface.ISseHub.md +0 -91
  262. package/data/packages/platform-core/api/Namespace.ISseEventData.md +0 -14
  263. package/data/packages/platform-core/api/TypeAlias.CamelCase.md +0 -18
  264. package/data/packages/platform-core/api/TypeAlias.ProblemDetail.md +0 -28
  265. package/data/packages/platform-core/api/TypeAlias.ProblemDetailTypeUrlResolver.md +0 -25
  266. package/data/packages/platform-core/api/TypeAlias.SetOptional.md +0 -21
  267. package/data/packages/platform-core/api/TypeAlias.StringValue.md +0 -15
  268. package/data/packages/platform-core/api/Variable.APP_NAME.md +0 -14
  269. package/data/packages/platform-core/api/Variable.APP_PORT.md +0 -14
  270. package/data/packages/platform-core/api/Variable.APP_URL.md +0 -14
  271. package/data/packages/platform-core/api/Variable.APP_VERSION.md +0 -14
  272. package/data/packages/platform-core/api/Variable.GIT_COMMIT.md +0 -14
  273. package/data/packages/platform-core/api/Variable.HEALTH_INDICATORS_TOKEN.md +0 -14
  274. package/data/packages/platform-core/api/Variable.ID_GENERATOR_TOKEN.md +0 -14
  275. package/data/packages/platform-core/api/Variable.INTELLIGENCE_MAX_OUTPUT_TOKENS.md +0 -14
  276. package/data/packages/platform-core/api/Variable.INTELLIGENCE_MODEL.md +0 -14
  277. package/data/packages/platform-core/api/Variable.INTELLIGENCE_TEMPERATURE.md +0 -14
  278. package/data/packages/platform-core/api/Variable.INTELLIGENCE_TOP_P.md +0 -14
  279. package/data/packages/platform-core/api/Variable.IS_PUBLIC_KEY.md +0 -12
  280. package/data/packages/platform-core/api/Variable.IpAddress.md +0 -31
  281. package/data/packages/platform-core/api/Variable.Lang.md +0 -29
  282. package/data/packages/platform-core/api/Variable.NODE_ENV.md +0 -14
  283. package/data/packages/platform-core/api/Variable.PLATFORM_CORE_CONFIG_ENTRIES.md +0 -14
  284. package/data/packages/platform-core/api/Variable.UserAgent.md +0 -24
  285. package/data/packages/platform-core/api/index.md +0 -142
  286. package/data/packages/platform-core/index.md +0 -485
  287. package/data/packages/platform-cryptography/api/Class.BcryptService.md +0 -72
  288. package/data/packages/platform-cryptography/api/Class.CryptoService.md +0 -51
  289. package/data/packages/platform-cryptography/api/Class.OtpService.md +0 -109
  290. package/data/packages/platform-cryptography/api/Interface.IOtpService.md +0 -81
  291. package/data/packages/platform-cryptography/api/Interface.IOtpUriOptions.md +0 -46
  292. package/data/packages/platform-cryptography/api/Variable.OTP_SERVICE_TOKEN.md +0 -14
  293. package/data/packages/platform-cryptography/api/Variable.TOTP_EPOCH_TOLERANCE.md +0 -23
  294. package/data/packages/platform-cryptography/api/index.md +0 -28
  295. package/data/packages/platform-cryptography/index.md +0 -132
  296. package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +0 -75
  297. package/data/packages/platform-database/api/Class.DatabaseModule.md +0 -68
  298. package/data/packages/platform-database/api/Class.DatabaseService.md +0 -161
  299. package/data/packages/platform-database/api/Class.PrismaService.md +0 -112
  300. package/data/packages/platform-database/api/Class.RepositoryBase.md +0 -586
  301. package/data/packages/platform-database/api/Class.RepositoryExceptionFilter.md +0 -55
  302. package/data/packages/platform-database/api/Function.pageable.md +0 -35
  303. package/data/packages/platform-database/api/Function.paginator.md +0 -22
  304. package/data/packages/platform-database/api/Function.query.md +0 -34
  305. package/data/packages/platform-database/api/Function.skip.md +0 -33
  306. package/data/packages/platform-database/api/Function.transactionalQuery.md +0 -31
  307. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +0 -34
  308. package/data/packages/platform-database/api/Interface.IPaginateOptions.md +0 -28
  309. package/data/packages/platform-database/api/Interface.IPaginatedResult.md +0 -77
  310. package/data/packages/platform-database/api/Interface.IPrismaServiceOptions.md +0 -22
  311. package/data/packages/platform-database/api/Interface.IRepositoryQuery.md +0 -51
  312. package/data/packages/platform-database/api/Interface.ITransactionalRepositoryQuery.md +0 -50
  313. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +0 -18
  314. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +0 -18
  315. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +0 -31
  316. package/data/packages/platform-database/api/TypeAlias.QueryResultType.md +0 -27
  317. package/data/packages/platform-database/api/TypeAlias.TransactionalQueryResultType.md +0 -26
  318. package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +0 -14
  319. package/data/packages/platform-database/api/Variable.DB_ACCELERATE_URL.md +0 -14
  320. package/data/packages/platform-database/api/Variable.DB_AUTO_CONNECTION.md +0 -14
  321. package/data/packages/platform-database/api/Variable.DB_OPTIMIZE.md +0 -14
  322. package/data/packages/platform-database/api/Variable.DB_OPTIMIZE_API_KEY.md +0 -14
  323. package/data/packages/platform-database/api/Variable.PLATFORM_DATABASE_CONFIG_ENTRIES.md +0 -14
  324. package/data/packages/platform-database/api/index.md +0 -59
  325. package/data/packages/platform-database/index.md +0 -323
  326. package/data/packages/platform-documents/api/Class.BaseDocumentRenderer.md +0 -277
  327. package/data/packages/platform-documents/api/Class.DocumentEngine.md +0 -80
  328. package/data/packages/platform-documents/api/Class.DocumentModule.md +0 -47
  329. package/data/packages/platform-documents/api/Class.SharpImageProcessor.md +0 -131
  330. package/data/packages/platform-documents/api/Interface.IDocumentModuleOptions.md +0 -94
  331. package/data/packages/platform-documents/api/Interface.IDocumentPlaceholderDetail.md +0 -70
  332. package/data/packages/platform-documents/api/Interface.IDocumentProbeReport.md +0 -118
  333. package/data/packages/platform-documents/api/Interface.IDocumentRenderer.md +0 -47
  334. package/data/packages/platform-documents/api/Interface.IImagePayload.md +0 -58
  335. package/data/packages/platform-documents/api/Interface.IImageProcessor.md +0 -95
  336. package/data/packages/platform-documents/api/Interface.IRenderOptions.md +0 -64
  337. package/data/packages/platform-documents/api/Interface.IRenderResult.md +0 -58
  338. package/data/packages/platform-documents/api/TypeAlias.DocumentFormat.md +0 -14
  339. package/data/packages/platform-documents/api/TypeAlias.EngineType.md +0 -14
  340. package/data/packages/platform-documents/api/TypeAlias.ImageMimeType.md +0 -14
  341. package/data/packages/platform-documents/api/TypeAlias.TemplateFormat.md +0 -14
  342. package/data/packages/platform-documents/api/TypeAlias.TemplateType.md +0 -14
  343. package/data/packages/platform-documents/api/Variable.DOCUMENT_MODULE_OPTIONS.md +0 -14
  344. package/data/packages/platform-documents/api/Variable.DOCUMENT_PARSER_TOKEN.md +0 -14
  345. package/data/packages/platform-documents/api/Variable.DOCUMENT_RENDERER_TOKEN.md +0 -14
  346. package/data/packages/platform-documents/api/Variable.IMAGE_PROCESSOR_TOKEN.md +0 -14
  347. package/data/packages/platform-documents/api/index.md +0 -47
  348. package/data/packages/platform-documents/index.md +0 -219
  349. package/data/packages/platform-esigning/api/Class.EsigningClientPort.md +0 -184
  350. package/data/packages/platform-esigning/api/Class.EsigningError.md +0 -65
  351. package/data/packages/platform-esigning/api/Class.EsigningModule.md +0 -48
  352. package/data/packages/platform-esigning/api/Class.EsigningPersistencePort.md +0 -90
  353. package/data/packages/platform-esigning/api/Class.EsigningService.md +0 -198
  354. package/data/packages/platform-esigning/api/Class.InternalEsigningProvider.md +0 -249
  355. package/data/packages/platform-esigning/api/Class.SigningProviderError.md +0 -101
  356. package/data/packages/platform-esigning/api/Class.SigningRequestNotFoundError.md +0 -78
  357. package/data/packages/platform-esigning/api/Class.WebhookVerificationError.md +0 -60
  358. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequest.md +0 -94
  359. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequestDocument.md +0 -58
  360. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequestSigner.md +0 -58
  361. package/data/packages/platform-esigning/api/Interface.ICreateSigningSessionRequest.md +0 -46
  362. package/data/packages/platform-esigning/api/Interface.IEsigningModuleOptions.md +0 -60
  363. package/data/packages/platform-esigning/api/Interface.IEsigningWebhookEvent.md +0 -82
  364. package/data/packages/platform-esigning/api/Interface.ISignedDocument.md +0 -82
  365. package/data/packages/platform-esigning/api/Interface.ISigner.md +0 -82
  366. package/data/packages/platform-esigning/api/Interface.ISigningDocument.md +0 -82
  367. package/data/packages/platform-esigning/api/Interface.ISigningField.md +0 -142
  368. package/data/packages/platform-esigning/api/Interface.ISigningRequest.md +0 -142
  369. package/data/packages/platform-esigning/api/Interface.ISigningSession.md +0 -70
  370. package/data/packages/platform-esigning/api/TypeAlias.SignerRole.md +0 -14
  371. package/data/packages/platform-esigning/api/TypeAlias.SignerStatus.md +0 -14
  372. package/data/packages/platform-esigning/api/TypeAlias.SigningFieldType.md +0 -14
  373. package/data/packages/platform-esigning/api/TypeAlias.SigningRequestStatus.md +0 -14
  374. package/data/packages/platform-esigning/api/TypeAlias.WebhookEventType.md +0 -14
  375. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_BASE_URL.md +0 -14
  376. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_CLIENT_SECRET.md +0 -14
  377. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_CONFIG_ENTRIES.md +0 -14
  378. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_INTEGRATION_KEY.md +0 -14
  379. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_WEBHOOK_CLIENT_ID.md +0 -14
  380. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_ACCOUNT_ID.md +0 -14
  381. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_BASE_URL.md +0 -14
  382. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_CONFIG_ENTRIES.md +0 -14
  383. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_INTEGRATION_KEY.md +0 -14
  384. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_SECRET_KEY.md +0 -14
  385. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_WEBHOOK_HMAC_KEY.md +0 -14
  386. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_API_KEY.md +0 -14
  387. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_CLIENT_ID.md +0 -14
  388. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_CONFIG_ENTRIES.md +0 -14
  389. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_WEBHOOK_SECRET.md +0 -14
  390. package/data/packages/platform-esigning/api/Variable.ESIGNING_API_BASE_URL.md +0 -14
  391. package/data/packages/platform-esigning/api/Variable.ESIGNING_API_KEY.md +0 -14
  392. package/data/packages/platform-esigning/api/Variable.ESIGNING_PROVIDER.md +0 -12
  393. package/data/packages/platform-esigning/api/Variable.ESIGNING_PROVIDER_OPTIONS.md +0 -12
  394. package/data/packages/platform-esigning/api/Variable.ESIGNING_WEBHOOK_SECRET.md +0 -14
  395. package/data/packages/platform-esigning/api/Variable.PLATFORM_ESIGNING_CONFIG_ENTRIES.md +0 -14
  396. package/data/packages/platform-esigning/api/Variable.SIGNNOW_API_KEY.md +0 -14
  397. package/data/packages/platform-esigning/api/Variable.SIGNNOW_BASE_URL.md +0 -14
  398. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CLIENT_ID.md +0 -14
  399. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CLIENT_SECRET.md +0 -14
  400. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CONFIG_ENTRIES.md +0 -14
  401. package/data/packages/platform-esigning/api/Variable.SIGNNOW_WEBHOOK_SECRET.md +0 -14
  402. package/data/packages/platform-esigning/api/Variable.SignerRoles.md +0 -30
  403. package/data/packages/platform-esigning/api/Variable.SignerStatuses.md +0 -32
  404. package/data/packages/platform-esigning/api/Variable.SigningFieldTypes.md +0 -38
  405. package/data/packages/platform-esigning/api/Variable.SigningRequestStatuses.md +0 -36
  406. package/data/packages/platform-esigning/api/Variable.WebhookEventTypes.md +0 -38
  407. package/data/packages/platform-esigning/api/index.md +0 -84
  408. package/data/packages/platform-esigning/index.md +0 -691
  409. package/data/packages/platform-intelligence/api/Class.IntelligenceCapabilityRegistrarBase.md +0 -94
  410. package/data/packages/platform-intelligence/api/Class.IntelligenceCapabilityRegistry.md +0 -106
  411. package/data/packages/platform-intelligence/api/Class.IntelligenceModule.md +0 -22
  412. package/data/packages/platform-intelligence/api/Class.IntelligenceTextGenerator.md +0 -81
  413. package/data/packages/platform-intelligence/api/Function.createProviderOptions.md +0 -26
  414. package/data/packages/platform-intelligence/api/Function.loadAnthropicLanguageModel.md +0 -26
  415. package/data/packages/platform-intelligence/api/Function.loadGoogleLanguageModel.md +0 -26
  416. package/data/packages/platform-intelligence/api/Function.loadGrokLanguageModel.md +0 -26
  417. package/data/packages/platform-intelligence/api/Function.loadOpenAILanguageModel.md +0 -26
  418. package/data/packages/platform-intelligence/api/Function.loadProviderFactory.md +0 -31
  419. package/data/packages/platform-intelligence/api/Interface.IIntelligenceArtifact.md +0 -34
  420. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapability.md +0 -71
  421. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityMetadata.md +0 -70
  422. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityPayload.md +0 -46
  423. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityRegistry.md +0 -78
  424. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityResult.md +0 -46
  425. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCompletionUsage.md +0 -46
  426. package/data/packages/platform-intelligence/api/Interface.IIntelligenceContext.md +0 -72
  427. package/data/packages/platform-intelligence/api/Interface.IIntelligenceContextBuilder.md +0 -35
  428. package/data/packages/platform-intelligence/api/Interface.IIntelligenceConversationMessageSnapshot.md +0 -70
  429. package/data/packages/platform-intelligence/api/Interface.IIntelligenceConversationSnapshot.md +0 -58
  430. package/data/packages/platform-intelligence/api/Interface.IIntelligenceFollowUpQuestion.md +0 -46
  431. package/data/packages/platform-intelligence/api/Interface.IIntelligenceIntent.md +0 -46
  432. package/data/packages/platform-intelligence/api/Interface.IIntelligenceIntentEntity.md +0 -34
  433. package/data/packages/platform-intelligence/api/Interface.IIntelligenceMessageModel.md +0 -70
  434. package/data/packages/platform-intelligence/api/Interface.IIntelligenceMessagePayload.md +0 -34
  435. package/data/packages/platform-intelligence/api/Interface.IIntelligencePrompt.md +0 -34
  436. package/data/packages/platform-intelligence/api/Interface.IIntelligencePromptMessage.md +0 -34
  437. package/data/packages/platform-intelligence/api/Interface.IIntelligenceProviderConfiguration.md +0 -94
  438. package/data/packages/platform-intelligence/api/Interface.IIntelligenceResponseMessage.md +0 -34
  439. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextCompletion.md +0 -60
  440. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerationOptions.md +0 -46
  441. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerator.md +0 -53
  442. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceConversationMessageRole.md +0 -14
  443. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceLanguageModelLoader.md +0 -24
  444. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceProviderName.md +0 -14
  445. package/data/packages/platform-intelligence/api/Variable.IntelligenceConversationMessageRoles.md +0 -26
  446. package/data/packages/platform-intelligence/api/Variable.IntelligenceProviderNames.md +0 -28
  447. package/data/packages/platform-intelligence/api/index.md +0 -69
  448. package/data/packages/platform-intelligence/index.md +0 -131
  449. package/data/packages/platform-logging/api/Class.LoggerModule.md +0 -20
  450. package/data/packages/platform-logging/api/Variable.APP_LOG_LEVEL.md +0 -14
  451. package/data/packages/platform-logging/api/Variable.PLATFORM_LOGGING_CONFIG_ENTRIES.md +0 -14
  452. package/data/packages/platform-logging/api/index.md +0 -19
  453. package/data/packages/platform-logging/index.md +0 -92
  454. package/data/packages/platform-mailing/api/Class.BlobTemplateFetchStrategy.md +0 -60
  455. package/data/packages/platform-mailing/api/Class.DeliveryStrategyBase.md +0 -66
  456. package/data/packages/platform-mailing/api/Class.FileTemplateFetchStrategy.md +0 -58
  457. package/data/packages/platform-mailing/api/Class.LogDeliveryStrategy.md +0 -75
  458. package/data/packages/platform-mailing/api/Class.MailHealthIndicator.md +0 -78
  459. package/data/packages/platform-mailing/api/Class.MailModule.md +0 -22
  460. package/data/packages/platform-mailing/api/Class.MailService.md +0 -96
  461. package/data/packages/platform-mailing/api/Class.MailTemplateEngine.md +0 -93
  462. package/data/packages/platform-mailing/api/Class.MailVerificationService.md +0 -85
  463. package/data/packages/platform-mailing/api/Class.MailgunDeliveryStrategy.md +0 -75
  464. package/data/packages/platform-mailing/api/Class.PostmarkDeliveryStrategy.md +0 -75
  465. package/data/packages/platform-mailing/api/Class.ResendDeliveryStrategy.md +0 -75
  466. package/data/packages/platform-mailing/api/Class.SendGridDeliveryStrategy.md +0 -75
  467. package/data/packages/platform-mailing/api/Class.SmtpDeliveryStrategy.md +0 -75
  468. package/data/packages/platform-mailing/api/Class.TemplateFetchStrategyBase.md +0 -53
  469. package/data/packages/platform-mailing/api/Interface.IMailEvents.md +0 -66
  470. package/data/packages/platform-mailing/api/Interface.IMailTemplateVariants.md +0 -30
  471. package/data/packages/platform-mailing/api/TypeAlias.MailTemplateFormat.md +0 -14
  472. package/data/packages/platform-mailing/api/Variable.MAILGUN_API_KEY.md +0 -14
  473. package/data/packages/platform-mailing/api/Variable.MAILGUN_CONFIG_ENTRIES.md +0 -14
  474. package/data/packages/platform-mailing/api/Variable.MAILGUN_DOMAIN.md +0 -14
  475. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY.md +0 -14
  476. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY_TOKEN.md +0 -12
  477. package/data/packages/platform-mailing/api/Variable.MAIL_HOST.md +0 -14
  478. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_API_KEY.md +0 -14
  479. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_DOMAIN.md +0 -14
  480. package/data/packages/platform-mailing/api/Variable.MAIL_PORT.md +0 -14
  481. package/data/packages/platform-mailing/api/Variable.MAIL_POSTMARK_API_KEY.md +0 -14
  482. package/data/packages/platform-mailing/api/Variable.MAIL_RESEND_API_KEY.md +0 -14
  483. package/data/packages/platform-mailing/api/Variable.MAIL_SENDER_EMAIL.md +0 -14
  484. package/data/packages/platform-mailing/api/Variable.MAIL_SENDGRID_API_KEY.md +0 -14
  485. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_HOST.md +0 -14
  486. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PASSWORD.md +0 -14
  487. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PORT.md +0 -14
  488. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_SECURE.md +0 -14
  489. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_USER.md +0 -14
  490. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_ENGINE_FORMAT.md +0 -14
  491. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_FETCH_STRATEGY_TOKEN.md +0 -16
  492. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_STRATEGY.md +0 -14
  493. package/data/packages/platform-mailing/api/Variable.MAIL_USER.md +0 -14
  494. package/data/packages/platform-mailing/api/Variable.PLATFORM_MAILING_CONFIG_ENTRIES.md +0 -14
  495. package/data/packages/platform-mailing/api/Variable.POSTMARK_API_KEY.md +0 -14
  496. package/data/packages/platform-mailing/api/Variable.POSTMARK_CONFIG_ENTRIES.md +0 -14
  497. package/data/packages/platform-mailing/api/Variable.RESEND_API_KEY.md +0 -14
  498. package/data/packages/platform-mailing/api/Variable.RESEND_CONFIG_ENTRIES.md +0 -14
  499. package/data/packages/platform-mailing/api/Variable.SENDGRID_API_KEY.md +0 -14
  500. package/data/packages/platform-mailing/api/Variable.SENDGRID_CONFIG_ENTRIES.md +0 -14
  501. package/data/packages/platform-mailing/api/Variable.SEND_MAIL_EVENT_KEY.md +0 -14
  502. package/data/packages/platform-mailing/api/index.md +0 -74
  503. package/data/packages/platform-mailing/index.md +0 -335
  504. package/data/packages/platform-mcp/api/Class.McpDiscoveryService.md +0 -64
  505. package/data/packages/platform-mcp/api/Class.McpModule.md +0 -82
  506. package/data/packages/platform-mcp/api/Class.McpRegistryService.md +0 -146
  507. package/data/packages/platform-mcp/api/Class.McpServerService.md +0 -196
  508. package/data/packages/platform-mcp/api/Function.McpPrompt.md +0 -28
  509. package/data/packages/platform-mcp/api/Function.McpResource.md +0 -28
  510. package/data/packages/platform-mcp/api/Function.McpTool.md +0 -28
  511. package/data/packages/platform-mcp/api/Interface.IMcpHandlerMetadata.md +0 -46
  512. package/data/packages/platform-mcp/api/Interface.IMcpModuleAsyncOptions.md +0 -75
  513. package/data/packages/platform-mcp/api/Interface.IMcpModuleOptions.md +0 -125
  514. package/data/packages/platform-mcp/api/Interface.IMcpModuleOptionsFactory.md +0 -27
  515. package/data/packages/platform-mcp/api/Interface.IMcpPromptMetadata.md +0 -58
  516. package/data/packages/platform-mcp/api/Interface.IMcpResourceMetadata.md +0 -72
  517. package/data/packages/platform-mcp/api/Interface.IMcpToolMetadata.md +0 -82
  518. package/data/packages/platform-mcp/api/Interface.IRegisteredPrompt.md +0 -40
  519. package/data/packages/platform-mcp/api/Interface.IRegisteredResource.md +0 -40
  520. package/data/packages/platform-mcp/api/Interface.IRegisteredTool.md +0 -40
  521. package/data/packages/platform-mcp/api/Interface.ISseTransportOptions.md +0 -22
  522. package/data/packages/platform-mcp/api/Interface.IStreamableHttpTransportOptions.md +0 -38
  523. package/data/packages/platform-mcp/api/Variable.MCP_MODULE_OPTIONS.md +0 -14
  524. package/data/packages/platform-mcp/api/index.md +0 -46
  525. package/data/packages/platform-mcp/index.md +0 -299
  526. package/data/packages/platform-openapi/api/Class.SwaggerFeatureDiscovery.md +0 -70
  527. package/data/packages/platform-openapi/api/Class.SwaggerFeatureRegistry.md +0 -99
  528. package/data/packages/platform-openapi/api/Class.SwaggerMultiDocumentService.md +0 -77
  529. package/data/packages/platform-openapi/api/Class.SwaggerTheme.md +0 -46
  530. package/data/packages/platform-openapi/api/Function.Api.md +0 -35
  531. package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +0 -42
  532. package/data/packages/platform-openapi/api/Function.getRegisteredSwaggerFeatures.md +0 -18
  533. package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +0 -27
  534. package/data/packages/platform-openapi/api/Interface.IFeatureSwaggerConfig.md +0 -68
  535. package/data/packages/platform-openapi/api/Interface.ISwaggerFeatureMetadata.md +0 -68
  536. package/data/packages/platform-openapi/api/Variable.APP_VERSION.md +0 -14
  537. package/data/packages/platform-openapi/api/Variable.PLATFORM_OPENAPI_CONFIG_ENTRIES.md +0 -14
  538. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_EMAIL.md +0 -14
  539. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_NAME.md +0 -14
  540. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_URL.md +0 -14
  541. package/data/packages/platform-openapi/api/Variable.SWAGGER_FEATURE_METADATA_KEY.md +0 -12
  542. package/data/packages/platform-openapi/api/index.md +0 -42
  543. package/data/packages/platform-openapi/index.md +0 -170
  544. package/data/packages/platform-payments/api/Class.FeatureAccessPort.md +0 -74
  545. package/data/packages/platform-payments/api/Class.FeatureGuard.md +0 -68
  546. package/data/packages/platform-payments/api/Class.FeatureUsageInterceptor.md +0 -69
  547. package/data/packages/platform-payments/api/Class.LemonSqueezyClient.md +0 -163
  548. package/data/packages/platform-payments/api/Class.MollieClient.md +0 -163
  549. package/data/packages/platform-payments/api/Class.PaddleClient.md +0 -163
  550. package/data/packages/platform-payments/api/Class.PaymentClientPort.md +0 -142
  551. package/data/packages/platform-payments/api/Class.PaymentModule.md +0 -48
  552. package/data/packages/platform-payments/api/Class.StripeClient.md +0 -163
  553. package/data/packages/platform-payments/api/Function.RequiresFeature.md +0 -25
  554. package/data/packages/platform-payments/api/Interface.IFeatureAccessResult.md +0 -70
  555. package/data/packages/platform-payments/api/Interface.INormalizedCheckoutSession.md +0 -70
  556. package/data/packages/platform-payments/api/Interface.INormalizedPrice.md +0 -80
  557. package/data/packages/platform-payments/api/Interface.INormalizedSubscription.md +0 -100
  558. package/data/packages/platform-payments/api/Interface.INormalizedWebhookEvent.md +0 -84
  559. package/data/packages/platform-payments/api/Interface.IPaymentModuleOptions.md +0 -60
  560. package/data/packages/platform-payments/api/TypeAlias.SubscriptionStatus.md +0 -22
  561. package/data/packages/platform-payments/api/Variable.FEATURE_KEY_METADATA.md +0 -12
  562. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_API_KEY.md +0 -14
  563. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_CONFIG_ENTRIES.md +0 -14
  564. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_STORE_ID.md +0 -14
  565. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_WEBHOOK_SECRET.md +0 -14
  566. package/data/packages/platform-payments/api/Variable.MOLLIE_API_KEY.md +0 -14
  567. package/data/packages/platform-payments/api/Variable.MOLLIE_CONFIG_ENTRIES.md +0 -14
  568. package/data/packages/platform-payments/api/Variable.MOLLIE_WEBHOOK_SECRET.md +0 -14
  569. package/data/packages/platform-payments/api/Variable.PADDLE_API_KEY.md +0 -14
  570. package/data/packages/platform-payments/api/Variable.PADDLE_CONFIG_ENTRIES.md +0 -14
  571. package/data/packages/platform-payments/api/Variable.PADDLE_ENVIRONMENT.md +0 -14
  572. package/data/packages/platform-payments/api/Variable.PADDLE_WEBHOOK_SECRET.md +0 -14
  573. package/data/packages/platform-payments/api/Variable.STRIPE_API_KEY.md +0 -14
  574. package/data/packages/platform-payments/api/Variable.STRIPE_CONFIG_ENTRIES.md +0 -14
  575. package/data/packages/platform-payments/api/Variable.STRIPE_WEBHOOK_SECRET.md +0 -14
  576. package/data/packages/platform-payments/api/index.md +0 -63
  577. package/data/packages/platform-payments/index.md +0 -532
  578. package/data/packages/platform-reporting/api/Class.ReportingContributorRegistry.md +0 -56
  579. package/data/packages/platform-reporting/api/Class.ReportingDatasetNotFoundError.md +0 -40
  580. package/data/packages/platform-reporting/api/Class.ReportingFacade.md +0 -84
  581. package/data/packages/platform-reporting/api/Class.ReportingModule.md +0 -22
  582. package/data/packages/platform-reporting/api/Interface.IReportingContributor.md +0 -61
  583. package/data/packages/platform-reporting/api/Interface.IReportingDataset.md +0 -82
  584. package/data/packages/platform-reporting/api/Interface.IReportingDatasetField.md +0 -70
  585. package/data/packages/platform-reporting/api/Interface.IReportingQuery.md +0 -60
  586. package/data/packages/platform-reporting/api/Interface.IReportingQueryFilter.md +0 -40
  587. package/data/packages/platform-reporting/api/Interface.IReportingQueryResult.md +0 -60
  588. package/data/packages/platform-reporting/api/Interface.IReportingQuerySort.md +0 -30
  589. package/data/packages/platform-reporting/api/TypeAlias.ReportingFieldType.md +0 -12
  590. package/data/packages/platform-reporting/api/TypeAlias.ReportingFilterOperator.md +0 -12
  591. package/data/packages/platform-reporting/api/TypeAlias.ReportingQueryResultRow.md +0 -14
  592. package/data/packages/platform-reporting/api/Variable.ReportingFieldTypes.md +0 -30
  593. package/data/packages/platform-reporting/api/Variable.ReportingFilterOperators.md +0 -28
  594. package/data/packages/platform-reporting/api/index.md +0 -42
  595. package/data/packages/platform-reporting/index.md +0 -229
  596. package/data/packages/platform-telemetry/api/Class.NoopTelemetryFacade.md +0 -113
  597. package/data/packages/platform-telemetry/api/Class.TelemetryCacheMetricsRecorder.md +0 -175
  598. package/data/packages/platform-telemetry/api/Class.TelemetryFacade.md +0 -127
  599. package/data/packages/platform-telemetry/api/Class.TelemetryLoggerService.md +0 -226
  600. package/data/packages/platform-telemetry/api/Class.TelemetryModule.md +0 -40
  601. package/data/packages/platform-telemetry/api/Class.TelemetryRuleEngine.md +0 -48
  602. package/data/packages/platform-telemetry/api/Interface.ITelemetryFacade.md +0 -85
  603. package/data/packages/platform-telemetry/api/Interface.ITelemetryMetricsOptions.md +0 -38
  604. package/data/packages/platform-telemetry/api/Interface.ITelemetryOptions.md +0 -136
  605. package/data/packages/platform-telemetry/api/Interface.ITelemetryTracesOptions.md +0 -38
  606. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_ENABLED.md +0 -12
  607. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_FACADE.md +0 -12
  608. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_OPTIONS.md +0 -12
  609. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_SHUTDOWN.md +0 -12
  610. package/data/packages/platform-telemetry/api/Variable.defaultTelemetryOptions.md +0 -12
  611. package/data/packages/platform-telemetry/api/index.md +0 -36
  612. package/data/packages/platform-telemetry/index.md +0 -234
@@ -1,657 +0,0 @@
1
- ---
2
- title: Authentication & Authorization
3
- description: Secure your NestJS application with JWT tokens, role-based access control, custom scopes, MFA, sessions, and OAuth social login.
4
- order: 6
5
- ---
6
-
7
- # Authentication & Authorization
8
-
9
- This guide covers everything you need to secure an Archipel-powered NestJS application: JWT-based authentication, role-based authorization, custom token claims (scopes), multi-factor authentication, session management, and social login via OAuth providers.
10
-
11
- If you haven't registered `AuthModule` yet, read the [Getting Started](/guides/getting-started) guide first.
12
-
13
- ---
14
-
15
- ## Overview
16
-
17
- `platform-authentication` provides:
18
-
19
- | Capability | What it does |
20
- | ------------------------ | --------------------------------------------------------------------------- |
21
- | **JWT Authentication** | Issues and validates signed access tokens via Passport |
22
- | **Role-Based Guards** | Restrict endpoints to specific roles using `@UseRoles()` |
23
- | **Token Enrichment** | Add custom claims (subscription tier, org ID, scopes) to every JWT |
24
- | **MFA** | TOTP, SMS, Email, and Push channels with backup codes |
25
- | **Session Management** | Track active sessions per user, with device info and last-active timestamps |
26
- | **Email Verification** | Issue and redeem time-limited verification tokens |
27
- | **OAuth / Social Login** | GitHub, Google, Microsoft, and Apple strategies with account linking |
28
- | **Anonymous Auth** | Allow guest access with limited capabilities |
29
-
30
- ---
31
-
32
- ## Protecting Routes with Guards
33
-
34
- ### JWT Guard
35
-
36
- The `JwtAuthGuard` is the primary guard. It validates the `Authorization: Bearer <token>` header, decodes the JWT, looks up the user via `AuthSubjectPort.findById()`, and attaches the subject to `request.user`.
37
-
38
- ```typescript
39
- import { Controller, Get, UseGuards } from '@nestjs/common';
40
- import { JwtAuthGuard, User, type IAuthSubject } from '@breadstone/archipel-platform-authentication';
41
-
42
- @Controller('profile')
43
- export class ProfileController {
44
- @Get()
45
- @UseGuards(JwtAuthGuard)
46
- public getProfile(@User() user: IAuthSubject): IAuthSubject {
47
- return user;
48
- }
49
- }
50
- ```
51
-
52
- The `@User()` decorator extracts the authenticated subject from the request. It returns the full `IAuthSubject` interface:
53
-
54
- ```typescript
55
- interface IAuthSubject {
56
- readonly id: string;
57
- readonly userName: string | null;
58
- readonly email: string | null;
59
- readonly password: string | null;
60
- readonly isVerified: boolean;
61
- readonly isAnonymous: boolean;
62
- readonly roles: ReadonlyArray<string>;
63
- readonly mfaEnabled: boolean;
64
- }
65
- ```
66
-
67
- ### Role-Based Access Control
68
-
69
- Use `@UseRoles()` together with `RolesGuard` to restrict endpoints to users with specific roles. Roles are string-based, so you can define them as constants in your application.
70
-
71
- ```typescript
72
- import { Controller, Get, UseGuards } from '@nestjs/common';
73
- import { JwtAuthGuard, RolesGuard, UseRoles } from '@breadstone/archipel-platform-authentication';
74
-
75
- @Controller('admin')
76
- @UseGuards(JwtAuthGuard, RolesGuard)
77
- export class AdminController {
78
- @Get('dashboard')
79
- @UseRoles('admin')
80
- public getDashboard(): string {
81
- return 'admin-only content';
82
- }
83
-
84
- @Get('reports')
85
- @UseRoles('admin', 'moderator')
86
- public getReports(): string {
87
- return 'admin or moderator content';
88
- }
89
- }
90
- ```
91
-
92
- `RolesGuard` reads the required roles from the `@UseRoles()` metadata and checks them against `request.user.roles`. If no roles are specified on a handler, the guard allows access (only JWT validity is enforced).
93
-
94
- **Best practice:** Define role constants in a shared file rather than using string literals:
95
-
96
- ```typescript
97
- // src/constants/roles.ts
98
- export const ROLE_ADMIN = 'admin';
99
- export const ROLE_MODERATOR = 'moderator';
100
- export const ROLE_USER = 'user';
101
- ```
102
-
103
- ```typescript
104
- import { ROLE_ADMIN, ROLE_MODERATOR } from '../constants/roles';
105
-
106
- @UseRoles(ROLE_ADMIN, ROLE_MODERATOR)
107
- public getReports(): string { ... }
108
- ```
109
-
110
- ### Anonymous Guard
111
-
112
- For routes that should accept unauthenticated users (e.g. guest checkout), use `AnonymousAuthGuard`. It creates or resolves an anonymous subject via `AuthSubjectPort.findAnonymous()`.
113
-
114
- ```typescript
115
- import { Controller, Post, UseGuards } from '@nestjs/common';
116
- import { AnonymousAuthGuard, User, type IAuthSubject } from '@breadstone/archipel-platform-authentication';
117
-
118
- @Controller('cart')
119
- export class CartController {
120
- @Post()
121
- @UseGuards(AnonymousAuthGuard)
122
- public addToCart(@User() user: IAuthSubject): void {
123
- // user.isAnonymous === true for guest users
124
- }
125
- }
126
- ```
127
-
128
- ---
129
-
130
- ## Accessing the Raw Token
131
-
132
- When you need the raw JWT string (e.g. to forward it to a downstream service), use the `@Token()` decorator:
133
-
134
- ```typescript
135
- import { Controller, Get, UseGuards } from '@nestjs/common';
136
- import { JwtAuthGuard, Token } from '@breadstone/archipel-platform-authentication';
137
-
138
- @Controller('proxy')
139
- export class ProxyController {
140
- @Get('downstream')
141
- @UseGuards(JwtAuthGuard)
142
- public forward(@Token() token: string): void {
143
- // token = the raw Bearer token string
144
- }
145
- }
146
- ```
147
-
148
- ---
149
-
150
- ## Custom Token Claims (Scopes)
151
-
152
- By default, JWTs contain base claims: `id`, `email`, and `roles`. To add application-specific claims — subscription tier, organization ID, feature scopes, permissions — implement the `TokenEnricherPort`.
153
-
154
- ### Step 1: Create the Enricher Adapter
155
-
156
- ```typescript
157
- // src/adapters/AppTokenEnricherAdapter.ts
158
- import { Injectable } from '@nestjs/common';
159
- import { TokenEnricherPort, type IAuthSubject } from '@breadstone/archipel-platform-authentication';
160
- import { SubscriptionRepository } from '../subscriptions/SubscriptionRepository';
161
-
162
- @Injectable()
163
- export class AppTokenEnricherAdapter extends TokenEnricherPort {
164
- private readonly _subscriptionRepository: SubscriptionRepository;
165
-
166
- constructor(subscriptionRepository: SubscriptionRepository) {
167
- super();
168
- this._subscriptionRepository = subscriptionRepository;
169
- }
170
-
171
- public async enrichClaims(subject: IAuthSubject): Promise<Record<string, unknown>> {
172
- const subscription = await this._subscriptionRepository.findByUserId(subject.id);
173
-
174
- return {
175
- subscriptionTier: subscription?.tier ?? 'free',
176
- organizationId: subscription?.organizationId ?? null,
177
- scopes: this.resolveScopes(subject.roles, subscription?.tier),
178
- };
179
- }
180
-
181
- private resolveScopes(roles: ReadonlyArray<string>, tier?: string): ReadonlyArray<string> {
182
- const scopes: Array<string> = ['read:profile'];
183
-
184
- if (roles.includes('admin')) {
185
- scopes.push('write:users', 'read:analytics', 'manage:settings');
186
- }
187
-
188
- if (tier === 'pro' || tier === 'enterprise') {
189
- scopes.push('export:reports', 'use:advanced-features');
190
- }
191
-
192
- return scopes;
193
- }
194
- }
195
- ```
196
-
197
- ### Step 2: Register the Enricher
198
-
199
- ```typescript
200
- AuthModule.register({
201
- authSubject: PrismaAuthSubjectAdapter,
202
- mfaSubject: PrismaMfaSubjectAdapter,
203
- sessionPersistence: PrismaSessionAdapter,
204
- verificationSubject: PrismaVerificationAdapter,
205
- tokenEnricher: AppTokenEnricherAdapter, // <-- register here
206
- }),
207
- ```
208
-
209
- ### Step 3: Read Custom Claims in Guards or Services
210
-
211
- The enriched claims are part of the decoded JWT. Create a custom guard to enforce scopes:
212
-
213
- ```typescript
214
- // src/guards/ScopesGuard.ts
215
- import { CanActivate, ExecutionContext, Injectable, ForbiddenException } from '@nestjs/common';
216
- import { Reflector } from '@nestjs/core';
217
- import { Request } from 'express';
218
-
219
- export const SCOPES_KEY = 'required_scopes';
220
-
221
- export function RequireScopes(...scopes: Array<string>): MethodDecorator & ClassDecorator {
222
- return SetMetadata(SCOPES_KEY, scopes);
223
- }
224
-
225
- @Injectable()
226
- export class ScopesGuard implements CanActivate {
227
- private readonly _reflector: Reflector;
228
-
229
- constructor(reflector: Reflector) {
230
- this._reflector = reflector;
231
- }
232
-
233
- public canActivate(context: ExecutionContext): boolean {
234
- const requiredScopes = this._reflector.getAllAndOverride<Array<string>>(SCOPES_KEY, [
235
- context.getHandler(),
236
- context.getClass(),
237
- ]);
238
-
239
- if (!requiredScopes || requiredScopes.length === 0) {
240
- return true;
241
- }
242
-
243
- const request = context.switchToHttp().getRequest<Request>();
244
- const user = request.user as Record<string, unknown>;
245
- const userScopes = (user['scopes'] as Array<string>) ?? [];
246
-
247
- const hasAllScopes = requiredScopes.every((scope) => userScopes.includes(scope));
248
-
249
- if (!hasAllScopes) {
250
- throw new ForbiddenException('Insufficient scopes');
251
- }
252
-
253
- return true;
254
- }
255
- }
256
- ```
257
-
258
- Use it on your endpoints:
259
-
260
- ```typescript
261
- import { Controller, Get, UseGuards } from '@nestjs/common';
262
- import { JwtAuthGuard } from '@breadstone/archipel-platform-authentication';
263
- import { ScopesGuard, RequireScopes } from '../guards/ScopesGuard';
264
-
265
- @Controller('reports')
266
- @UseGuards(JwtAuthGuard, ScopesGuard)
267
- export class ReportController {
268
- @Get()
269
- @RequireScopes('export:reports')
270
- public exportReport(): string {
271
- return 'report data';
272
- }
273
- }
274
- ```
275
-
276
- ---
277
-
278
- ## Extending the JWT Payload
279
-
280
- For type-safe access to custom claims, extend `JwtPayloadBase`:
281
-
282
- ```typescript
283
- // src/models/AppJwtPayload.ts
284
- import { JwtPayloadBase } from '@breadstone/archipel-platform-authentication';
285
-
286
- export class AppJwtPayload extends JwtPayloadBase {
287
- public readonly subscriptionTier: string;
288
- public readonly organizationId: string | null;
289
- public readonly scopes: ReadonlyArray<string>;
290
-
291
- constructor(
292
- id: string,
293
- email: string | null,
294
- roles: ReadonlyArray<string>,
295
- subscriptionTier: string,
296
- organizationId: string | null,
297
- scopes: ReadonlyArray<string>,
298
- ) {
299
- super(id, email, roles);
300
- this.subscriptionTier = subscriptionTier;
301
- this.organizationId = organizationId;
302
- this.scopes = scopes;
303
- }
304
-
305
- public override toJSON(): Record<string, unknown> {
306
- return {
307
- ...super.toJSON(),
308
- subscriptionTier: this.subscriptionTier,
309
- organizationId: this.organizationId,
310
- scopes: [...this.scopes],
311
- };
312
- }
313
-
314
- public static override fromJSON(raw: Record<string, unknown>): AppJwtPayload {
315
- return new AppJwtPayload(
316
- raw['id'] as string,
317
- (raw['email'] as string) ?? null,
318
- (raw['roles'] as string[]) ?? [],
319
- (raw['subscriptionTier'] as string) ?? 'free',
320
- (raw['organizationId'] as string) ?? null,
321
- (raw['scopes'] as string[]) ?? [],
322
- );
323
- }
324
- }
325
- ```
326
-
327
- ---
328
-
329
- ## Session Management
330
-
331
- `SessionService` tracks active sessions per user. Combined with `LastActiveMiddleware`, it automatically updates timestamps on every authenticated request.
332
-
333
- ### Storing a Session After Login
334
-
335
- Sessions are stored automatically when you use the built-in authentication flow. If you implement a custom login controller:
336
-
337
- ```typescript
338
- import { Controller, Post, UseGuards, Req, Ip } from '@nestjs/common';
339
- import {
340
- LocalAuthGuard,
341
- AuthTokenService,
342
- SessionService,
343
- User,
344
- type IAuthSubject,
345
- } from '@breadstone/archipel-platform-authentication';
346
- import { Request } from 'express';
347
-
348
- @Controller('auth')
349
- export class AuthController {
350
- private readonly _tokenService: AuthTokenService;
351
- private readonly _sessionService: SessionService;
352
-
353
- constructor(tokenService: AuthTokenService, sessionService: SessionService) {
354
- this._tokenService = tokenService;
355
- this._sessionService = sessionService;
356
- }
357
-
358
- @Post('login')
359
- @UseGuards(LocalAuthGuard)
360
- public async login(
361
- @User() user: IAuthSubject,
362
- @Req() req: Request,
363
- @Ip() ip: string,
364
- ): Promise<{ accessToken: string }> {
365
- const accessToken = await this._tokenService.createAccessToken(user);
366
-
367
- await this._sessionService.store(accessToken, user.id, ip);
368
-
369
- return { accessToken };
370
- }
371
- }
372
- ```
373
-
374
- ### Listing & Revoking Sessions
375
-
376
- ```typescript
377
- @Get('sessions')
378
- @UseGuards(JwtAuthGuard)
379
- public async listSessions(@User() user: IAuthSubject, @Token() token: string): Promise<Array<SessionResponse>> {
380
- return this._sessionService.listSessions(user.id, token);
381
- }
382
-
383
- @Delete('sessions/:token')
384
- @UseGuards(JwtAuthGuard)
385
- public async revokeSession(@Param('token') sessionToken: string): Promise<void> {
386
- await this._sessionService.revoke(sessionToken);
387
- }
388
- ```
389
-
390
- ### Last-Active Middleware
391
-
392
- `AuthModule` automatically registers `LastActiveMiddleware` on all routes. It extracts the Bearer token and updates the session's `lastActive` timestamp asynchronously — no blocking, no failure propagation.
393
-
394
- ---
395
-
396
- ## Multi-Factor Authentication (MFA)
397
-
398
- Archipel supports four MFA channels out of the box:
399
-
400
- | Channel | Method Key | How it works |
401
- | --------- | ---------- | ----------------------------------------------------------- |
402
- | **TOTP** | `totp` | Time-based one-time passwords (Google Authenticator, Authy) |
403
- | **SMS** | `sms` | OTP sent via SMS |
404
- | **Email** | `email` | OTP sent via email |
405
- | **Push** | `push` | Push notification approval |
406
-
407
- ### MFA Setup Flow
408
-
409
- 1. **Initiate setup** — Call `MfaService.initSetup(userId, method)` to get setup data (QR code URI for TOTP, etc.)
410
- 2. **Verify setup** — Call `MfaService.verifySetup(userId, method, code)` with the initial verification code
411
- 3. **Receive backup codes** — On successful verification, backup codes are generated and returned
412
-
413
- ```typescript
414
- import { Controller, Post, Body, UseGuards } from '@nestjs/common';
415
- import { JwtAuthGuard, MfaService, User, type IAuthSubject } from '@breadstone/archipel-platform-authentication';
416
-
417
- @Controller('mfa')
418
- @UseGuards(JwtAuthGuard)
419
- export class MfaController {
420
- private readonly _mfaService: MfaService;
421
-
422
- constructor(mfaService: MfaService) {
423
- this._mfaService = mfaService;
424
- }
425
-
426
- @Post('setup')
427
- public async initSetup(@User() user: IAuthSubject, @Body('method') method: string) {
428
- return this._mfaService.initSetup(user.id, method);
429
- }
430
-
431
- @Post('setup/verify')
432
- public async verifySetup(@User() user: IAuthSubject, @Body() body: { method: string; code: string }) {
433
- return this._mfaService.verifySetup(user.id, body.method, body.code);
434
- }
435
- }
436
- ```
437
-
438
- ### MFA Login Flow
439
-
440
- When a user with MFA enabled signs in, the `ISignInResult` indicates that a challenge is required:
441
-
442
- ```typescript
443
- interface ISignInResult {
444
- readonly mfaRequired: boolean;
445
- readonly verificationRequired?: boolean;
446
- readonly accessToken?: string;
447
- readonly challengeId?: string;
448
- }
449
- ```
450
-
451
- If `mfaRequired` is `true`, the client receives a `challengeId` instead of an `accessToken`. The client must:
452
-
453
- 1. Call the MFA verification endpoint with the `challengeId` and the code from their authenticator app (or SMS/email).
454
- 2. On success, the server issues the actual `accessToken`.
455
-
456
- ### MFA Configuration
457
-
458
- ```env
459
- AUTH_MFA_ENCRYPTION_KEY=<32-byte-hex-key>
460
- AUTH_MFA_CHALLENGE_EXPIRES_IN=5m
461
- AUTH_MFA_MAX_ATTEMPTS=5
462
- AUTH_MFA_SMS_CODE_TTL=10m
463
- AUTH_MFA_SMS_MIN_RESEND=30s
464
- AUTH_MFA_EMAIL_CODE_TTL=10m
465
- AUTH_MFA_EMAIL_MIN_RESEND=30s
466
- AUTH_MFA_PUSH_CODE_TTL=10m
467
- AUTH_MFA_PUSH_MIN_RESEND=30s
468
- ```
469
-
470
- ---
471
-
472
- ## Email Verification
473
-
474
- `VerificationService` handles token-based email verification:
475
-
476
- ```typescript
477
- import { VerificationService } from '@breadstone/archipel-platform-authentication';
478
-
479
- // Issue a verification token (e.g., after registration)
480
- const token = await verificationService.exhibitToken({ userId: user.id, email: user.email });
481
- // Send this token in a verification email link
482
-
483
- // Later, when the user clicks the link:
484
- const isValid = await verificationService.verifyToken(token);
485
- ```
486
-
487
- The token lifetime is controlled by `AUTH_VERIFY_JWT_EXPIRES_IN`.
488
-
489
- ---
490
-
491
- ## Social Login (OAuth)
492
-
493
- ### Step 1: Install Provider Strategies
494
-
495
- Import strategies from their sub-paths:
496
-
497
- ```typescript
498
- import { GoogleStrategy, GOOGLE_AUTH_CONFIG_ENTRIES } from '@breadstone/archipel-platform-authentication/google';
499
- import { GithubStrategy, GITHUB_AUTH_CONFIG_ENTRIES } from '@breadstone/archipel-platform-authentication/github';
500
- import {
501
- MicrosoftStrategy,
502
- MICROSOFT_AUTH_CONFIG_ENTRIES,
503
- } from '@breadstone/archipel-platform-authentication/microsoft';
504
- import { AppleStrategy, APPLE_AUTH_CONFIG_ENTRIES } from '@breadstone/archipel-platform-authentication/apple';
505
- ```
506
-
507
- ### Step 2: Implement the Social Auth Port
508
-
509
- ```typescript
510
- // src/adapters/PrismaSocialAuthAdapter.ts
511
- import { Injectable } from '@nestjs/common';
512
- import { SocialAuthPort, type IAuthSubject, type ISocialProfile } from '@breadstone/archipel-platform-authentication';
513
- import { PrismaService } from '@breadstone/archipel-platform-database';
514
-
515
- @Injectable()
516
- export class PrismaSocialAuthAdapter extends SocialAuthPort {
517
- private readonly _prisma: PrismaService;
518
-
519
- constructor(prisma: PrismaService) {
520
- super();
521
- this._prisma = prisma;
522
- }
523
-
524
- public async findOrCreateByProfile(profile: ISocialProfile): Promise<IAuthSubject> {
525
- // Look up by provider + email
526
- let user = await this._prisma.user.findFirst({
527
- where: { email: profile.email },
528
- });
529
-
530
- if (!user) {
531
- user = await this._prisma.user.create({
532
- data: {
533
- email: profile.email,
534
- userName: profile.userName ?? profile.displayName,
535
- isVerified: true, // OAuth emails are pre-verified
536
- isAnonymous: false,
537
- roles: ['user'],
538
- mfaEnabled: false,
539
- },
540
- });
541
- }
542
-
543
- return user as unknown as IAuthSubject;
544
- }
545
- }
546
- ```
547
-
548
- ### Step 3: Register with Additional Config
549
-
550
- ```typescript
551
- AuthModule.register({
552
- authSubject: PrismaAuthSubjectAdapter,
553
- mfaSubject: PrismaMfaSubjectAdapter,
554
- sessionPersistence: PrismaSessionAdapter,
555
- verificationSubject: PrismaVerificationAdapter,
556
- socialAuth: PrismaSocialAuthAdapter,
557
- socialStrategies: [GoogleStrategy, GithubStrategy],
558
- additionalConfigEntries: [
559
- ...GOOGLE_AUTH_CONFIG_ENTRIES,
560
- ...GITHUB_AUTH_CONFIG_ENTRIES,
561
- ],
562
- }),
563
- ```
564
-
565
- ### Step 4: Set Environment Variables
566
-
567
- ```env
568
- # Google
569
- AUTH_GOOGLE_CLIENT_ID=your-client-id
570
- AUTH_GOOGLE_CLIENT_SECRET=your-client-secret
571
- AUTH_GOOGLE_CALLBACK_URL=https://yourapp.com/auth/google/callback
572
- AUTH_GOOGLE_SCOPE=email,profile
573
-
574
- # GitHub
575
- AUTH_GITHUB_CLIENT_ID=your-client-id
576
- AUTH_GITHUB_CLIENT_SECRET=your-client-secret
577
- AUTH_GITHUB_CALLBACK_URL=https://yourapp.com/auth/github/callback
578
- AUTH_GITHUB_SCOPE=user:email
579
- ```
580
-
581
- ### Using the Social Auth Guard
582
-
583
- The `SocialAuthGuard` is a dynamic guard that routes to the correct Passport strategy based on a URL parameter:
584
-
585
- ```typescript
586
- import { Controller, Get, UseGuards, Req, Param } from '@nestjs/common';
587
- import { socialAuthGuardFactory, User, type IAuthSubject } from '@breadstone/archipel-platform-authentication';
588
-
589
- @Controller('auth')
590
- export class OAuthController {
591
- @Get(':provider')
592
- @UseGuards(socialAuthGuardFactory(':provider'))
593
- public initOAuth(): void {
594
- // Passport redirects to the provider
595
- }
596
-
597
- @Get(':provider/callback')
598
- @UseGuards(socialAuthGuardFactory(':provider'))
599
- public async handleCallback(@User() user: IAuthSubject): Promise<{ accessToken: string }> {
600
- const accessToken = await this._tokenService.createAccessToken(user);
601
- return { accessToken };
602
- }
603
- }
604
- ```
605
-
606
- Supported providers: `github`, `google`, `microsoft`, `apple`.
607
-
608
- ---
609
-
610
- ## Environment Variables Reference
611
-
612
- | Variable | Required | Default | Description |
613
- | ------------------------------- | -------- | ------- | ---------------------------------------- |
614
- | `AUTH_JWT_SECRET` | Yes | — | Secret for signing JWTs |
615
- | `AUTH_JWT_EXPIRES_IN` | Yes | — | Access token lifetime (e.g. `15m`, `1h`) |
616
- | `AUTH_VERIFY_JWT_EXPIRES_IN` | No | — | Verification token lifetime |
617
- | `AUTH_MFA_ENCRYPTION_KEY` | No\* | — | AES key for encrypting MFA secrets |
618
- | `AUTH_MFA_CHALLENGE_EXPIRES_IN` | No | `5m` | MFA challenge TTL |
619
- | `AUTH_MFA_MAX_ATTEMPTS` | No | `5` | Max failed MFA attempts before lockout |
620
- | `AUTH_GOOGLE_CLIENT_ID` | No\* | — | Google OAuth client ID |
621
- | `AUTH_GOOGLE_CLIENT_SECRET` | No\* | — | Google OAuth client secret |
622
- | `AUTH_GOOGLE_CALLBACK_URL` | No\* | — | Google OAuth callback URL |
623
- | `AUTH_GOOGLE_SCOPE` | No | — | Google OAuth scopes (comma-separated) |
624
- | `AUTH_GITHUB_CLIENT_ID` | No\* | — | GitHub OAuth client ID |
625
- | `AUTH_GITHUB_CLIENT_SECRET` | No\* | — | GitHub OAuth client secret |
626
- | `AUTH_GITHUB_CALLBACK_URL` | No\* | — | GitHub OAuth callback URL |
627
- | `AUTH_MICROSOFT_CLIENT_ID` | No\* | — | Microsoft OAuth client ID |
628
- | `AUTH_MICROSOFT_CLIENT_SECRET` | No\* | — | Microsoft OAuth client secret |
629
- | `AUTH_MICROSOFT_CALLBACK_URL` | No\* | — | Microsoft OAuth callback URL |
630
- | `AUTH_MICROSOFT_TENANT` | No | — | Microsoft tenant ID or `common` |
631
- | `AUTH_APPLE_CLIENT_ID` | No\* | — | Apple Sign-In service ID |
632
- | `AUTH_APPLE_PRIVATE_KEY` | No\* | — | Apple Sign-In private key (PEM) |
633
- | `AUTH_APPLE_TEAM_ID` | No\* | — | Apple developer team ID |
634
- | `AUTH_APPLE_KEY_ID` | No\* | — | Apple Sign-In key ID |
635
- | `AUTH_APPLE_CALLBACK_URL` | No\* | — | Apple Sign-In callback URL |
636
-
637
- \*Required only when the corresponding feature (MFA or specific OAuth provider) is enabled.
638
-
639
- ---
640
-
641
- ## Security Best Practices
642
-
643
- 1. **Keep `AUTH_JWT_SECRET` strong and rotated.** Use at least 256 bits of entropy. Never commit it to source control.
644
- 2. **Set short token lifetimes.** Use `15m` for access tokens and combine with session-based refresh logic.
645
- 3. **Always combine guards.** Use `JwtAuthGuard` + `RolesGuard` together. JWT alone only proves identity, not authorization.
646
- 4. **Validate at the boundary.** Use DTOs with `class-validator` decorators on all input. Never trust claims blindly.
647
- 5. **Use the `TokenEnricherPort` for scopes.** Don't hardcode authorization logic in guards. Derive scopes at token creation time and verify them declaratively.
648
- 6. **Enable MFA for sensitive operations.** Even if MFA isn't globally required, protect high-value actions (password change, payment) with step-up authentication.
649
- 7. **Monitor sessions.** Expose session listing to users so they can revoke unfamiliar sessions.
650
-
651
- ---
652
-
653
- ## Next Steps
654
-
655
- - Read the [Implementing Ports](/guides/implementing-ports) guide for details on writing all four required port adapters
656
- - Browse the [platform-authentication API reference](/packages/platform-authentication/api/) for complete method signatures
657
- - See the [Testing](/guides/testing) guide for patterns to mock auth in unit and integration tests