@wildo-ai/saas-backend-lib 1.1.2 → 1.1.3

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 (853) hide show
  1. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  2. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
  3. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  4. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  5. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
  6. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  7. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
  8. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
  9. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
  10. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
  11. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
  12. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
  13. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
  14. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
  15. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
  16. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
  18. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  19. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  20. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +27 -6
  21. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  22. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  23. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  24. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
  25. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  26. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  27. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  28. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
  29. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  30. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +47 -4
  31. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +96 -29
  33. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  34. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  35. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  36. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +9 -1
  44. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +49 -0
  46. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  47. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +171 -18
  48. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
  51. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +20 -0
  54. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  55. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  56. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  57. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  58. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  59. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  60. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  61. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  62. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  63. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  64. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  65. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  66. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +529 -41
  68. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  69. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  70. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  72. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  73. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  74. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  75. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  76. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  77. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  78. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  79. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  80. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  81. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  82. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  83. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  84. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  85. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  86. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  87. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
  88. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  89. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  90. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  91. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  92. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  93. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  94. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  95. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  96. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  97. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  98. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  99. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  100. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  101. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  102. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  103. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  104. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  105. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  106. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +48 -7
  107. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  108. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
  109. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  110. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
  111. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  112. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  113. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  114. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  115. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  116. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  117. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  118. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  119. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  120. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  121. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  122. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  123. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
  124. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  125. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
  126. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  127. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  128. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  129. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  130. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  131. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  132. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  133. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
  134. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  135. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  136. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  137. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  138. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  139. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  140. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  141. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +225 -13
  142. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  143. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +340 -62
  144. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  145. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +244 -7
  146. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  147. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +386 -5
  148. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  149. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  150. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  151. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  152. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +6 -2
  153. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  154. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
  155. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  156. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  157. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  158. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +57 -1
  159. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  160. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  161. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  162. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  163. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  164. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  165. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +31 -0
  166. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  167. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  168. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  169. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  170. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  171. package/dist/esm/config/models/app-config.backend.schemas.d.ts +142 -46
  172. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  173. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  174. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  175. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  176. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  177. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  178. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  179. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  180. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  181. package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
  182. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  183. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  184. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  185. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  186. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +33 -0
  187. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  188. package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
  189. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  190. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
  191. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  192. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
  193. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  194. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  195. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  196. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  197. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  198. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  199. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  200. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  201. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  202. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  203. package/dist/esm/errors/services/error-handler.backend.service.js +129 -8
  204. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  205. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  206. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  207. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  208. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  209. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  210. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  211. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  212. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  213. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  214. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  215. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  216. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  217. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +59 -2
  218. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  219. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +52 -17
  220. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  221. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  222. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  223. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  224. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
  225. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  226. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
  227. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  228. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  229. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  230. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  231. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  232. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  233. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  234. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
  235. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  236. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  237. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  238. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  239. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  240. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  241. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  242. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  243. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  244. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  245. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  246. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  247. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  248. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  249. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  250. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  251. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  252. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  253. package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
  254. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  255. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  256. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  257. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  258. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +292 -7
  259. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  260. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +533 -45
  261. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  262. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  263. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
  264. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  265. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  266. package/dist/esm/files/controllers/file.controller.js +21 -13
  267. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  268. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  269. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +39 -15
  270. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  271. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  272. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  273. package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
  274. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  275. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  276. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  277. package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
  278. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  279. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +53 -2
  280. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  281. package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
  282. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  283. package/dist/esm/files/services/files.backend.service.d.ts +68 -0
  284. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  285. package/dist/esm/files/services/files.backend.service.js +175 -5
  286. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  287. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  288. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  289. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  290. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  291. package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
  292. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  293. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  294. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  295. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  296. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  297. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  298. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  299. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  300. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  301. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  302. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  303. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  304. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  305. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  306. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  307. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  308. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  309. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  310. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  311. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  312. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  313. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  314. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  315. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  316. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  317. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  318. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  319. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  320. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  321. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +196 -40
  322. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  323. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  324. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  325. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  326. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  327. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  328. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  329. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  330. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  331. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  332. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  333. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  334. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  335. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  336. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  337. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  338. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  339. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  340. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  341. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  342. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  343. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  344. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  345. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
  346. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  347. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
  348. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  349. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  350. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  351. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  352. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  353. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  354. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  355. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  356. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  357. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  358. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  359. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +28 -1
  360. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  361. package/dist/esm/flows-actors/services/agents.backend.service.js +204 -18
  362. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  363. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
  364. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  365. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
  366. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  367. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  368. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  369. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  370. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  371. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  372. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  373. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  374. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  375. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  376. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  377. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  378. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  379. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
  380. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  381. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  382. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  383. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  384. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  385. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  386. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +8 -4
  387. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  388. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  389. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  390. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  391. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  392. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  393. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  394. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  395. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  396. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  397. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  398. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  399. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  400. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  401. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  402. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  403. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  404. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  405. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  406. package/dist/esm/index.d.ts +11 -4
  407. package/dist/esm/index.d.ts.map +1 -1
  408. package/dist/esm/index.js +31 -4
  409. package/dist/esm/index.js.map +1 -1
  410. package/dist/esm/inject/models/container.d.ts.map +1 -1
  411. package/dist/esm/inject/models/container.js +78 -10
  412. package/dist/esm/inject/models/container.js.map +1 -1
  413. package/dist/esm/inject/models/service-types.d.ts +17 -3
  414. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  415. package/dist/esm/inject/models/service-types.js +19 -3
  416. package/dist/esm/inject/models/service-types.js.map +1 -1
  417. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  418. package/dist/esm/mcp/controllers/mcp.controller.js +20 -0
  419. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  420. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +56 -1
  421. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  422. package/dist/esm/mcp/services/mcp-server.backend.service.js +107 -11
  423. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  424. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  425. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
  426. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  427. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  428. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  429. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  430. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  431. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  432. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  433. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  434. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  435. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  436. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  437. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  438. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  439. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  440. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  441. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  442. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  443. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  444. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  445. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  446. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  447. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  448. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  449. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  450. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  451. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  452. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  453. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
  454. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  455. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
  456. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  457. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  458. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  459. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  460. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  461. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  462. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  463. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  464. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  465. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  466. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  467. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  468. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  469. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  470. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  471. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  472. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  473. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  474. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  475. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  476. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  477. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  478. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  479. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  480. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  481. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  482. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  483. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
  484. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  485. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  486. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  487. package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
  488. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  489. package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
  490. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  491. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  492. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  493. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  494. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  495. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  496. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  497. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  498. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +99 -13
  499. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  500. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +422 -66
  501. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  502. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
  503. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  504. package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
  505. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  506. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  507. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  508. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  509. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  510. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  511. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  512. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +46 -1
  513. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  514. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  515. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +16 -6
  516. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  517. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  518. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +12 -12
  519. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  520. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  521. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  522. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  523. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  524. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  525. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  526. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  527. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  528. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  529. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  530. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  531. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  532. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  533. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  534. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  535. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  536. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  537. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  538. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  539. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  540. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  541. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  542. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  543. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  544. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  545. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  546. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  547. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  548. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  549. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  550. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  551. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  552. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  553. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  554. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  555. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  556. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  557. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  558. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  559. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  560. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  561. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  562. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  563. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  564. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  565. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  566. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  567. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  568. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  569. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  570. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  571. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  572. package/dist/esm/queue/queue.backend.service.js +26 -4
  573. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  574. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  575. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  576. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  577. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  578. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  579. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  580. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  581. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  582. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  583. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  584. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  585. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  586. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  587. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  588. package/dist/esm/requests/service/websocket.service.js +32 -8
  589. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  590. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  591. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +14 -2
  592. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  593. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  594. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  595. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  596. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  597. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  598. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  599. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  600. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  601. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  602. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  603. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
  604. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  605. package/dist/esm/resources/services/resources-registry.backend.service.js +90 -6
  606. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  607. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  608. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  609. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  610. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  611. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  612. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  613. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  614. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  615. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  616. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  617. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  618. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  619. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  620. package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
  621. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  622. package/dist/esm/runtime/services/start-application.backend.service.d.ts +19 -1
  623. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  624. package/dist/esm/runtime/services/start-application.backend.service.js +261 -77
  625. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  626. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  627. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  628. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  629. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  630. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  631. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  632. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  633. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  634. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  635. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
  636. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  637. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  638. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  639. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  640. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  641. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  642. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  643. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  644. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  645. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  646. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  647. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  648. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  649. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  650. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  651. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  652. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  653. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  654. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  655. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  656. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  657. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  658. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  659. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  660. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  661. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  662. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  663. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  664. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
  665. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  666. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
  667. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  668. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  669. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +68 -1
  670. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  671. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  672. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  673. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  674. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  675. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  676. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
  677. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  678. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  679. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
  680. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  681. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  682. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  683. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  684. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  685. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -1
  686. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  687. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +49 -17
  688. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  689. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  690. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  691. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  692. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  693. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  694. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  695. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  696. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  697. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  698. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  699. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  700. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  701. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  702. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
  703. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  704. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  705. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  706. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  707. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  708. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  709. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  710. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  711. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  712. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  713. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  714. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  715. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  716. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  717. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  718. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  719. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  720. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  721. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  722. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  723. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  724. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  725. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  726. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  727. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  728. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  729. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  730. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  731. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  732. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  733. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  734. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  735. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  736. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  737. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  738. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  739. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
  740. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  741. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  742. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  743. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  744. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  745. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
  746. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  747. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
  748. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  749. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
  750. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  751. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
  752. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  753. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +74 -8
  754. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  755. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +175 -19
  756. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  757. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  758. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  759. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  760. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  761. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  762. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  763. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  764. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  765. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
  766. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  767. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
  768. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  769. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
  770. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  771. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  772. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  773. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  774. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  775. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  776. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  777. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
  778. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  779. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
  780. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  781. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  782. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  783. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  784. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  785. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  786. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  787. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
  788. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  789. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
  790. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  791. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
  792. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  793. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  794. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  795. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  796. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  797. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
  798. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  799. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
  800. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  801. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  802. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  803. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  804. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  805. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
  806. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  807. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  808. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  809. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  810. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  811. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  812. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  813. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  814. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  815. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  816. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  817. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +21 -3
  818. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  819. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +26 -16
  820. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  821. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  822. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  823. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  824. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  825. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  826. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  827. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  828. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  829. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  830. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  831. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  832. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  833. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  834. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  835. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  836. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  837. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  838. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  839. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  840. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  841. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  842. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  843. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  844. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  845. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  846. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  847. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  848. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  849. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  850. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  851. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  852. package/dist/tsconfig.build.tsbuildinfo +1 -1
  853. package/package.json +11 -9
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.backend.service.js","sourceRoot":"","sources":["../../../../../src/runtime/services/http-server.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport express, { Express, Request, Response, NextFunction, Router } from 'express';\nimport cors from 'cors';\nimport cookieParser from 'cookie-parser';\nimport helmet from 'helmet';\nimport compression from 'compression';\nimport { Server } from 'http';\nimport { z } from 'zod';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport { ControllersRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/controllers/controllers-registry-handler.backend.service';\nimport {\n AbstractControllerBackendService,\n CustomControllerMountPhase,\n} from '~wildo-backend-lib/base-classes/services/controllers/abstract-controller.backend.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { ErrorHandlerService } from '~wildo-backend-lib/errors/services/error-handler.backend.service';\nimport { relaxAbuseThrottleMaxForEnvironment } from '~wildo-backend-lib/errors/utils/rate-limit-environment-relaxation.backend.utils';\nimport { applyOAuthBodyCap } from '~wildo-backend-lib/runtime/services/utils/oauth-body-cap.backend.utils';\nimport { RuntimeConfig, RuntimeConfigurationSchema } from '~wildo-backend-lib/runtime/models/runtime.backend.schemas';\nimport { AppConfiguration } from '~wildo-backend-lib/config/models/app-config.backend.schemas';\nimport { BackendApiType, ClientInstanceIdScope, ErrorSeverity, ErrorType, ErrorCustomMessageReference, isAppConfigurationNotInitializedError, WildoHeaderKeys, ENGINE_ROOT_ROUTES, EngineRootRouteKey, MAIN_API_BASE_PATH, MANUAL_CONTROLLER_ROUTES_URLS, ManualControllerRouteKey, rfc8414AuthorizationServerMetadataPath, rfc9728ProtectedResourceMetadataPath, ResourceSerializationUtils } from '@wildo-ai/saas-models';\nimport { WebSocketService } from '~wildo-backend-lib/requests/service/websocket.service';\nimport { HealthControllerBackendService } from '~wildo-backend-lib/runtime/controllers/health-controller.backend.service';\nimport { RedisService } from '~wildo-backend-lib/databases/services/redis.service';\nimport { AuthControllerUtils } from '~wildo-backend-lib/security/authentications/services/utils/auth-controller.utils';\nimport { runWithRequestContext, buildRequestContextFrame, setClientInstanceIdIngestPolicy } from '~wildo-backend-lib/runtime/models/request-context.als.backend';\n\n/**\n * HTTP Server Backend Service\n *\n * Orchestrates the Express HTTP server startup with complete configuration\n * management, middleware setup, and route registration.\n *\n * Features:\n * - Express server with configurable middleware stack\n * - CORS, security headers, compression, rate limiting\n * - Integration with ControllersRegistryHandlerBackendService\n * - Support for additional custom controllers\n * - Configuration-driven server setup\n * - Graceful shutdown handling\n * - Health check endpoints\n * - Request logging and error handling\n *\n * Configuration Sources:\n * - AppConfigurationService (platform + admin managed config)\n * - RuntimeConfigurationSchema (HTTP server specific settings)\n * - Environment variables (PORT, HOST overrides)\n */\n/**\n * Options for HTTP server initialization\n */\nexport interface HttpServerInitOptions {\n /**\n * Skip WebSocket/Socket.IO initialization.\n * Use this for platform microservices that don't need real-time browser connections.\n * Default: false\n */\n skipWebSocket?: boolean;\n\n /**\n * Skip CORS middleware configuration.\n * Use this for platform microservices that only receive backend-to-backend requests\n * and don't need browser CORS headers.\n * Default: false\n */\n skipCors?: boolean;\n}\n\n@injectable()\nexport class HttpServerBackendService {\n\n private readonly app: Express;\n private server: Server | null = null;\n private baseUrl: string | null = null;\n private readonly customControllers: Map<string, AbstractControllerBackendService> = new Map();\n private isInitialized = false;\n private initOptions: HttpServerInitOptions = {};\n\n /**\n * Route prefixes whose handlers require the EXACT original request bytes\n * (not a re-serialized copy). The global `express.json` `verify` hook retains\n * `req.rawBody` ONLY for requests matching one of these prefixes; for all\n * other traffic the raw buffer is GC-eligible the moment `JSON.parse`\n * returns, exactly as before — so normal API calls pay no retained-memory\n * cost, only a cheap `startsWith` check.\n *\n * Today the sole raw-body-in surface is inbound webhook HMAC signature\n * verification: `WebhookAutoControllerBackendService` registers\n * `POST /webhooks/{provider}/{endpoint}` under the master router at\n * `MAIN_API_BASE_PATH`, so the live prefix is `${MAIN_API_BASE_PATH}/webhooks/`.\n * Add to this list if another surface ever needs byte-faithful bodies.\n */\n private readonly rawBodyRequiredPrefixes: readonly string[] = [\n `${MAIN_API_BASE_PATH}/webhooks/`,\n ];\n\n protected readonly logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly appConfigService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.ControllersRegistryHandlerService) private readonly controllersRegistry: ControllersRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ErrorHandlerService) private readonly errorHandler: ErrorHandlerService,\n @inject(SAAS_SERVICE_TYPES.WebSocketService) private readonly webSocketService: WebSocketService,\n @inject(SAAS_SERVICE_TYPES.HealthController) private readonly healthController: HealthControllerBackendService,\n @inject(SAAS_SERVICE_TYPES.RedisService) private readonly redisService: RedisService,\n ) {\n\n this.app = express();\n\n this.logDebug = this.logger.debugByType('HttpServer');\n this.logger.setDebugTypeLogging('HttpServer', false);\n\n this.logDebug('HTTP server service created');\n }\n\n public async initialize(options?: HttpServerInitOptions): Promise<void> {\n if (this.isInitialized) {\n this.logDebug('HTTP server already initialized');\n return;\n }\n\n // Store options for use in startServer()\n this.initOptions = options || {};\n\n try {\n this.logDebug('🚀 Initializing HTTP server...');\n\n // Get app configuration\n // Note: AppConfigurationService should be initialized before HTTP server in normal flow\n // but we check gracefully to provide better error messages\n const appConfig = this.appConfigService.isInitialized()\n ? this.appConfigService.config\n : null;\n\n if (!appConfig) {\n this.logger.error('HTTP server initialization attempted before app config initialized');\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'Application configuration must be initialized before starting HTTP server',\n service: 'HttpServerBackendService',\n operation: 'initialize'\n }\n }\n );\n }\n\n const runtimeConfig = this.extractRuntimeConfig(appConfig);\n\n // Setup Express application\n try {\n await this.setupExpressApp(runtimeConfig);\n } catch (error: any) {\n if (isAppConfigurationNotInitializedError(error)) {\n throw this.errorBuilder.buildError(ErrorType.INFRASTRUCTURE, undefined, {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: { step: 'setupExpressApp', message: error.context.message },\n stack: error.stack,\n });\n }\n throw error;\n }\n\n // Register all routes\n try {\n await this.registerRoutes();\n } catch (error: any) {\n if (isAppConfigurationNotInitializedError(error)) {\n throw this.errorBuilder.buildError(ErrorType.INFRASTRUCTURE, undefined, {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: { step: 'registerRoutes', message: error.context.message },\n stack: error.stack,\n });\n }\n throw error;\n }\n\n // Setup error handling\n try {\n this.setupErrorHandling();\n } catch (error: any) {\n if (isAppConfigurationNotInitializedError(error)) {\n throw this.errorBuilder.buildError(ErrorType.INFRASTRUCTURE, undefined, {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: { step: 'setupErrorHandling', message: error.context.message },\n stack: error.stack,\n });\n }\n throw error;\n }\n\n // Start the server\n try {\n await this.startServer();\n } catch (error: any) {\n if (isAppConfigurationNotInitializedError(error)) {\n throw this.errorBuilder.buildError(ErrorType.INFRASTRUCTURE, undefined, {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: { step: 'startServer', message: error.context.message },\n stack: error.stack,\n });\n }\n throw error;\n }\n\n this.isInitialized = true;\n this.logDebug('✅ HTTP server initialized successfully at ' + this.getServerInfo());\n\n } catch (error) {\n // Initialization failures are propagated to the runtime host, which owns\n // the single structured startup-failure record.\n throw error;\n }\n }\n\n /**\n * Register a custom controller\n */\n public registerCustomController(controller: AbstractControllerBackendService): void {\n const controllerName = controller.getControllerName();\n const mountPhase = controller.getCustomControllerMountPhase();\n\n if (this.customControllers.has(controllerName)) {\n const error = this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: {\n controllerName\n }\n }\n );\n throw error;\n }\n\n if (this.isInitialized && mountPhase !== CustomControllerMountPhase.STANDARD) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: {\n controllerName,\n mountPhase,\n reason: 'Early-phase custom controllers must be registered before HTTP server initialization',\n },\n },\n );\n }\n\n this.customControllers.set(controllerName, controller);\n\n this.logDebug('Custom controller registered', {\n controllerName,\n mountPhase,\n totalCustomControllers: this.customControllers.size\n });\n\n // Only STANDARD controllers can reach this late-registration path. An\n // early phase is a strict ordering contract and is refused above rather\n // than silently mounted after the middleware it must precede.\n if (this.isInitialized) {\n this.mountCustomController(controller);\n }\n }\n\n /**\n * Get the Express application instance\n */\n public getApp(): Express {\n return this.app;\n }\n\n /**\n * Check if server is running\n */\n public isRunning(): boolean {\n return this.server !== null && this.server.listening;\n }\n\n /**\n * Get server listening information\n */\n public getServerInfo(): string | null {\n if (!this.server || !this.server.listening) {\n return null;\n }\n return this.baseUrl;\n }\n\n /**\n * Gracefully shutdown the server\n */\n public async shutdown(): Promise<void> {\n if (!this.server) {\n return;\n }\n\n // Cleanup WebSocket service first\n await this.webSocketService.cleanup();\n this.logDebug('WebSocket service cleaned up');\n\n return new Promise((resolve, reject) => {\n this.logDebug('🔄 Shutting down HTTP server...');\n\n this.server!.close((error) => {\n if (error) {\n this.logger.error('❌ HTTP server shutdown failed:', error);\n reject(error);\n } else {\n this.logDebug('✅ HTTP server shutdown completed');\n this.server = null;\n this.isInitialized = false;\n resolve();\n }\n });\n });\n }\n\n // ================================\n // Private Setup Methods\n // ================================\n\n /**\n * Extract runtime configuration with defaults.\n *\n * Reads the optional `runtime.httpServerConfiguration` partial override\n * declared on `AppConfiguration_RuntimeSchema` (see\n * `appConfiguration_Backend_RuntimeSchemaBuilder` in `app-config.backend.schemas.ts`)\n * and feeds it through `RuntimeConfigurationSchema.parse` so any missing\n * fields fall back to the framework defaults (`requestTimeout: 300_000`,\n * `headersTimeout: 60_000`, etc.).\n *\n * App authors generally do not author this surface. The dev companion\n * sets `requestTimeout` and `headersTimeout` to ~30 min because its\n * LLM-bound endpoints legitimately exceed the 5-min default.\n */\n private extractRuntimeConfig(appConfig: AppConfiguration): RuntimeConfig {\n try {\n const runtimeData = appConfig.runtime.httpServerConfiguration ?? {};\n return RuntimeConfigurationSchema.parse({\n httpServerConfiguration: runtimeData,\n });\n } catch (error) {\n this.logger.warn('Using default runtime configuration due to validation error:', error);\n return RuntimeConfigurationSchema.parse({ httpServerConfiguration: {} });\n }\n }\n\n /**\n * Setup Express application with middleware\n *\n * IMPORTANT: Middleware ordering matters!\n * 1. Security headers are installed before every custom route.\n * 2. PRE_REQUEST_TRANSFORM controllers mount before CORS/preflight and parsers.\n * 3. RAW_REQUEST_STREAM controllers mount after CORS/rate limiting but before body parsing.\n * 4. Body parsing middleware is applied.\n * 5. STANDARD controllers mount through registerRoutes().\n *\n * This ensures streaming controllers receive raw request streams\n * while regular controllers get parsed request bodies.\n */\n private async setupExpressApp(runtimeConfig: RuntimeConfig): Promise<void> {\n const httpConfig = runtimeConfig.httpServerConfiguration;\n\n // Trust proxy configuration\n if (httpConfig.trustProxy) {\n this.app.set('trust proxy', 1);\n }\n\n // Disable ETag if configured\n if (!httpConfig.etag) {\n this.app.set('etag', false);\n }\n\n // Defense-in-depth for bigint-safe `res.json`. The primary mechanism is the\n // type-level `BigInt.prototype.toJSON` (bigint → decimal string) installed at\n // the `@wildo-ai/zod-decorators` bootstrap (`installBigIntJsonEncoding`), which\n // makes EVERY JSON boundary bigint-safe the way `Date.prototype.toJSON` does.\n // This app-level `json replacer` is a zero-cost belt-and-suspenders that keeps\n // `res.json` safe even if that bootstrap ever fails to run before the first\n // response. `z_money` amounts are `bigint`; without either, a money-bearing\n // response (prices, invoices, promotions, …) 500s with \"Do not know how to\n // serialize a BigInt\". Encoding as a decimal STRING (not `number`) is the\n // documented wire contract — lossless round-trip; the frontend coerces it back\n // to `bigint` on receive. The replacer runs inside Express's own\n // `JSON.stringify` and composes idempotently with the prototype `toJSON`.\n this.app.set('json replacer', ResourceSerializationUtils.bigIntSafeJsonReplacer);\n\n // Security headers protect every route, including controllers that must own\n // their method contract before CORS preflight or body parsing can terminate.\n this.setupSecurity(httpConfig.headers);\n\n // Enter the request-context ALS as early as possible — right after security headers and before any\n // controller, CORS, body parsing, routing, or the error handler — so the ENTIRE async continuation\n // of the request (including deep, un-threaded service errors) carries the correlation id.\n // Install the client-install ingest policy BEFORE the first frame can be built, so no request is\n // ever served under the uninitialized resolver. (The resolver itself also fails closed, making\n // this ordering belt-and-braces rather than load-bearing.)\n this.installClientInstanceIdIngestPolicy();\n this.setupRequestContext();\n\n this.mountCustomControllersForPhase(CustomControllerMountPhase.PRE_REQUEST_TRANSFORM);\n\n // Setup CORS (skip for platform microservices that only receive backend-to-backend requests)\n if (this.initOptions.skipCors) {\n this.logDebug('CORS middleware skipped (platform service mode)');\n } else {\n this.setupCORS(httpConfig.cors);\n }\n\n // Setup compression\n if (httpConfig.compression) {\n this.app.use(compression() as any);\n }\n\n // Setup rate limiting\n this.setupRateLimit(httpConfig.rateLimiting);\n\n // True streaming controllers still receive raw request streams, while\n // retaining the ordinary CORS and rate-limiting boundary.\n this.mountCustomControllersForPhase(CustomControllerMountPhase.RAW_REQUEST_STREAM);\n\n // Body parsing middleware - only affects routes registered AFTER this point\n this.setupBodyParsing(httpConfig);\n\n // Setup request logging\n this.setupRequestLogging();\n\n this.logDebug('Express middleware setup completed');\n }\n\n /** Mount all custom controllers assigned to one exact middleware phase. */\n private mountCustomControllersForPhase(phase: CustomControllerMountPhase): void {\n const controllers = [...this.customControllers.values()].filter((controller) => controller.getCustomControllerMountPhase() === phase);\n for (const controller of controllers) {\n this.mountCustomController(controller);\n }\n if (controllers.length > 0) {\n this.logDebug('Custom controllers mounted for middleware phase', {\n phase,\n count: controllers.length,\n controllers: controllers.map((controller) => controller.getControllerName()),\n });\n }\n }\n\n /**\n * Setup CORS middleware\n *\n * Derives allowed origins from app config's runtime.endPoints (frontend app URLs)\n * to properly support credentials (cookies/tokens) which require explicit origins.\n *\n * For platform services that don't serve frontends (e.g., crontabs-batches-manager),\n * CORS is configured permissively since they only receive internal backend requests.\n *\n * IMPORTANT: When credentials are enabled, origin CANNOT be '*' per CORS spec.\n */\n private setupCORS(corsConfig: RuntimeConfig['httpServerConfiguration']['cors']): void {\n const engineExposedHeaders = [\n WildoHeaderKeys.ANONYMOUS_SESSION_TOKEN,\n WildoHeaderKeys.CONSUMABLE_TOKEN_CONSUMED,\n WildoHeaderKeys.X_SERVER_TIME,\n WildoHeaderKeys.RATE_LIMIT_LIMIT,\n WildoHeaderKeys.RATE_LIMIT_REMAINING,\n WildoHeaderKeys.RATE_LIMIT_RESET,\n 'Retry-After',\n ];\n const mergedExposedHeaders = [\n ...engineExposedHeaders,\n ...(corsConfig.exposedHeaders ?? []),\n ];\n\n // Browser-universal request headers that ANY cross-origin JSON API needs.\n //\n // The browser preflights cross-origin requests and sends an\n // `Access-Control-Request-Headers` list naming every non-CORS-safe\n // header the actual request will carry. The server's\n // `Access-Control-Allow-Headers` response MUST include every entry the\n // browser asked for or the preflight fails (CORS by spec, blocked at\n // the network layer — no body, no useful error).\n //\n // `Content-Type` is the offender 99% of the time: every JSON POST/PUT\n // sends `Content-Type: application/json`, which is NOT in the CORS\n // \"safelisted request headers\" set (only `application/x-www-form-urlencoded`,\n // `multipart/form-data`, and `text/plain` content-types are safelisted),\n // so browsers always preflight on it.\n //\n // `Authorization` and `Accept` are equally universal — every\n // authenticated call carries `Authorization: Bearer …`, every API call\n // negotiates `Accept: application/json`. The framework ships these as\n // defaults because they're a precondition for ANY Wildo SaaS app to\n // talk to its own backend over CORS; making each app opt in to\n // `Content-Type` would mean every new app has a 5-minute\n // \"why-is-my-login-broken\" stumble before reading this file.\n //\n // `if-match` and `x-frontend-service-name` are likewise framework-defined\n // request headers the runtime emits universally: the frontend HTTP client\n // tags every call with its originating service name, and optimistic-\n // concurrency writes carry `If-Match`. Both are custom (non-safelisted),\n // so they preflight too.\n //\n // The anonymous-session pair — `x-anonymous-session-init` (raw UUID on the\n // first unauthenticated call) and `x-anonymous-session` (signed JWT on\n // every subsequent one) — is sent by the framework's own frontend HTTP\n // client for ANY app with `anonymousSessionsEnabled`, and by static\n // marketing sites bootstrapping a session inline (see\n // `handleAnonymousSessionInit` in the execution-context creator). They\n // belong in the universal floor for the SAME reason their response\n // counterpart `x-anonymous-session-token` is already in\n // `engineExposedHeaders` above: anonymous sessions are a framework\n // primitive, not an app-specific concern, so it is incoherent to expose\n // the response token while silently dropping the request headers that\n // establish/carry the session. Without these two, every cross-origin\n // anonymous-session call (`app.<brand>` → `api.<brand>`, a static\n // marketing site → `api`, …) fails the browser preflight at the network\n // layer with no useful error — the exact \"why is my anonymous POST\n // CORS-blocked\" stumble the Content-Type floor entry exists to prevent.\n //\n // `x-landing-path` is floored for the same reason and, decisively, because\n // it is a designed travel-companion of `x-anonymous-session-init`: the\n // framework's marketing-site bootstrap (`@wildo-ai/saas-website`) sends it\n // ON the very first session-init request, where the backend reads it once\n // into `AnonymousUser.marketingMetadata.landingPath` (first-touch\n // attribution — see `extractFirstTouchMarketingMetadata`). Because both\n // headers ride the same preflighted request, allowing the init header but\n // not `x-landing-path` would fail the WHOLE request at the network layer\n // (a preflight rejects the entire call when ANY requested header is\n // disallowed) — not merely drop attribution. It is a framework-defined\n // header (engine registry → engine website package → engine backend →\n // engine schema field), so an app must not have to re-allowlist it; the\n // CORS layer has no per-origin header allow-list, so \"marketing-origin\n // only\" is not an implementable scoping — the floor is the correct home.\n //\n // App-specific headers (custom auth schemes, third-party SDK headers\n // like Stripe's idempotency keys, etc.) still come through\n // `corsConfig.allowedHeaders` — the engine list is the UNIVERSAL floor,\n // not the ceiling.\n const engineAllowedHeaders = [\n 'Content-Type',\n 'Authorization',\n 'Accept',\n WildoHeaderKeys.IF_MATCH,\n WildoHeaderKeys.FRONTEND_SERVICE_NAME,\n WildoHeaderKeys.ANONYMOUS_SESSION_INIT,\n WildoHeaderKeys.ANONYMOUS_SESSION,\n WildoHeaderKeys.LANDING_PATH,\n // Client-install id (Phase 5b). Belongs on the FLOOR for the reason stated above: the engine's own\n // frontend HTTP client stamps it on every request once an application authors a non-`DISABLED`\n // `compliance.clientInstanceIdScope`, so omitting it here would make the preflight reject the WHOLE\n // request — turning an opt-in privacy capability into an app-wide outage, and forcing every app to\n // re-allowlist a framework-defined header. Listing it is safe when the capability is OFF: the header\n // is simply never sent, and the backend's ingest gate refuses it regardless of CORS.\n //\n // `CORRELATION_ID` is deliberately NOT on the floor. No browser client sends it (only the\n // server-to-server interceptor does, where CORS does not apply), so adding it would be speculative\n // surface — and it would additionally invite browser-supplied trace ids, which is the forgery\n // question recorded in the plan rather than one to answer by widening a header allow-list.\n WildoHeaderKeys.CLIENT_INSTANCE_ID,\n ];\n const mergedAllowedHeaders = [\n ...engineAllowedHeaders,\n ...(corsConfig.allowedHeaders ?? []),\n ];\n\n // Derive CORS origins from app config (same logic as WebSocketService)\n const allowedOrigins = this.deriveCorsOrigins();\n\n // If no frontend URLs are configured, use permissive CORS (for platform services)\n // Platform services like crontabs-batches-manager only receive internal backend requests,\n // not browser requests, so CORS doesn't apply. We use permissive config to avoid errors.\n if (allowedOrigins.length === 0) {\n this.logger.info('📝 No frontend URLs configured - using permissive CORS (platform/internal service mode)', {\n availableEndpoints: Object.keys(this.appConfigService.config?.runtime?.endPoints || {}),\n note: 'This is expected for platform services that only receive backend-to-backend requests'\n });\n\n this.app.use(cors({\n origin: '*', // Permissive for internal services\n credentials: false, // No credentials with wildcard origin\n methods: corsConfig.methods,\n allowedHeaders: mergedAllowedHeaders,\n exposedHeaders: mergedExposedHeaders,\n maxAge: corsConfig.maxAge,\n preflightContinue: corsConfig.preflightContinue,\n optionsSuccessStatus: corsConfig.optionsSuccessStatus\n }));\n\n this.logger.info('✅ CORS middleware configured (permissive mode for internal service)', {\n origin: '*',\n credentials: false\n });\n return;\n }\n\n this.app.use(cors({\n origin: allowedOrigins,\n credentials: true,\n methods: corsConfig.methods,\n allowedHeaders: mergedAllowedHeaders,\n exposedHeaders: mergedExposedHeaders,\n maxAge: corsConfig.maxAge,\n preflightContinue: corsConfig.preflightContinue,\n optionsSuccessStatus: corsConfig.optionsSuccessStatus\n }));\n\n this.logger.info('✅ CORS middleware configured successfully', {\n allowedOrigins,\n credentials: true\n });\n }\n\n /**\n * Derive CORS origins from app config (frontend application URLs).\n * Reads the configured `frontendServices` to know which frontend surfaces exist,\n * then looks up their publicUrl from `runtime.endPoints`.\n *\n * @returns Array of frontend URLs, or empty array if not configured\n */\n private deriveCorsOrigins(): string[] {\n const config = this.appConfigService.config;\n const frontendServices = Object.keys(config.frontendServices ?? {});\n return frontendServices.map((frontendServiceName) => {\n const url = config.runtime?.endPoints?.[frontendServiceName]?.publicUrl;\n if (!url) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n context: {\n message:\n `Missing runtime.endPoints.${frontendServiceName}.publicUrl for declared frontend service \"${frontendServiceName}\". ` +\n `CORS cannot be derived safely from an incomplete runtime topology.`,\n frontendServiceName,\n },\n });\n }\n return AuthControllerUtils.stripTrailingSlash(url);\n });\n }\n\n /**\n * Setup security headers\n */\n private setupSecurity(headersConfig: RuntimeConfig['httpServerConfiguration']['headers']): void {\n const helmetOptions: any = {\n // M16: CSP now defaults to a sensible baseline via schema default. Empty string explicitly disables.\n // C2 fix: Trim whitespace to treat \" \" as empty (disabled), not as a truthy but invalid CSP.\n contentSecurityPolicy: headersConfig.contentSecurityPolicy.trim() ? {\n directives: this.parseCSP(headersConfig.contentSecurityPolicy.trim()),\n } : false,\n hsts: headersConfig.hsts ? {\n maxAge: headersConfig.hstsMaxAge,\n includeSubDomains: true,\n preload: true\n } : false,\n noSniff: headersConfig.noSniff,\n referrerPolicy: { policy: headersConfig.referrerPolicy }\n };\n\n this.app.use(helmet(helmetOptions));\n\n this.logDebug('Security middleware configured', { headersConfig });\n }\n\n /**\n * Setup rate limiting.\n *\n * M17: Uses Redis-backed atomic INCR+EXPIRE for distributed rate limiting.\n * Falls back to in-memory Map when Redis is unavailable (single-instance dev mode).\n */\n private setupRateLimit(rateLimitConfig: RuntimeConfig['httpServerConfiguration']['rateLimiting']): void {\n const windowSeconds = Math.ceil(rateLimitConfig.windowMs / 1000);\n // In-memory fallback for when Redis is down\n const fallbackRequests = new Map<string, { count: number; resetTime: number }>();\n\n // Non-production relaxation of the perimeter ceiling (shared seam — see\n // `rate-limit-environment-relaxation.backend.utils`). Resolved ONCE here rather than\n // per-request: `setupRateLimit` runs inside `initialize()`, which has already refused\n // to proceed unless `AppConfigurationService` is initialized, so `applicationEnv` is\n // guaranteed readable at this point and a per-request read would only add cost.\n //\n // This limiter keys on the raw client IP by construction, which is exactly why a dev\n // machine needs the relaxation: every local process (frontend, e2e driver, companion,\n // client-integration-app) presents as `127.0.0.1` and shares one bucket, so the\n // authored per-client ceiling behaves as a per-MACHINE ceiling locally.\n const effectiveMaxRequests = relaxAbuseThrottleMaxForEnvironment(\n rateLimitConfig.maxRequests,\n this.appConfigService.applicationEnv,\n );\n\n const limiter = async (req: Request, res: Response, next: NextFunction) => {\n try {\n const clientId = req.ip || 'unknown';\n const now = Date.now();\n\n let count: number;\n let retryAfterSeconds: number;\n\n try {\n // M17: Redis-backed rate limiting — works across multiple instances\n const identifier = `http_rate_limit:${clientId}`;\n count = await this.redisService.incrementRateLimit(\n identifier,\n windowSeconds,\n );\n try {\n const ttl = await this.redisService.getRateLimitTtl(identifier);\n retryAfterSeconds = ttl >= 0 ? ttl : windowSeconds;\n } catch {\n retryAfterSeconds = windowSeconds;\n }\n } catch {\n // Fallback to in-memory when Redis is unavailable.\n // Mirrors Redis INCR+EXPIRE fixed-window: window starts on first request,\n // resets after windowMs elapses (not a sliding window).\n for (const [key, value] of fallbackRequests.entries()) {\n if (now >= value.resetTime) fallbackRequests.delete(key);\n }\n let record = fallbackRequests.get(clientId);\n if (!record || now >= record.resetTime) {\n record = { count: 0, resetTime: now + rateLimitConfig.windowMs };\n fallbackRequests.set(clientId, record);\n }\n record.count++;\n count = record.count;\n retryAfterSeconds = Math.max(0, Math.ceil((record.resetTime - now) / 1000));\n }\n\n if (count > effectiveMaxRequests) {\n res.set('Retry-After', retryAfterSeconds.toString());\n\n if (rateLimitConfig.standardHeaders) {\n res.set({\n [WildoHeaderKeys.RATE_LIMIT_LIMIT]: effectiveMaxRequests.toString(),\n [WildoHeaderKeys.RATE_LIMIT_REMAINING]: '0',\n [WildoHeaderKeys.RATE_LIMIT_RESET]: retryAfterSeconds.toString(),\n });\n }\n\n return res.status(429).json({\n error: {\n type: ErrorType.RATE_LIMIT,\n severity: ErrorSeverity.MEDIUM,\n message: ErrorCustomMessageReference.RATE_LIMIT,\n customMessage: ErrorCustomMessageReference.RATE_LIMIT,\n customMessageReference: ErrorCustomMessageReference.RATE_LIMIT,\n timestamp: new Date(now).toISOString(),\n details: {\n message: rateLimitConfig.message,\n retryAfterSeconds,\n },\n },\n });\n }\n\n if (rateLimitConfig.standardHeaders) {\n res.set({\n [WildoHeaderKeys.RATE_LIMIT_LIMIT]: effectiveMaxRequests.toString(),\n [WildoHeaderKeys.RATE_LIMIT_REMAINING]: (effectiveMaxRequests - count).toString(),\n [WildoHeaderKeys.RATE_LIMIT_RESET]: retryAfterSeconds.toString(),\n });\n }\n\n next();\n } catch (error) {\n // Express 4 doesn't handle async middleware errors — forward to error handler\n next(error);\n }\n };\n\n this.app.use(limiter);\n\n this.logDebug('Rate limiting configured (Redis-backed with in-memory fallback)', { rateLimitConfig });\n }\n\n /**\n * Setup body parsing middleware.\n *\n * IMPORTANT: PRE_REQUEST_TRANSFORM and RAW_REQUEST_STREAM controllers are\n * mounted before this middleware, so they never see body parsing.\n */\n private setupBodyParsing(httpConfig: RuntimeConfig['httpServerConfiguration']): void {\n // Capture the raw, unparsed request bytes into `req.rawBody` during JSON\n // parsing. Handlers that need the EXACT original payload — inbound webhook\n // HMAC signature verification (Stripe et al.), which must hash the\n // provider's literal bytes, not a re-serialized copy — read `req.rawBody`.\n //\n // This is express.json's canonical `verify` extension point: it runs\n // synchronously with a reference to the buffer express is about to parse,\n // so it adds no extra read and retains the buffer only for the request's\n // lifetime.\n //\n // WHY the single global parse point is the correct home (not per-route):\n // this global `express.json` runs BEFORE the main controllers registry\n // mounts (see `registerRoutes` → `MAIN_API_BASE_PATH`). It therefore always\n // parses the body and sets `req._body = true`, which turns any downstream\n // per-route `express.raw()` into a silent no-op. Non-streaming controllers\n // (e.g. the auto-registered webhook routes, which reach Express via the\n // master router — NOT a `RAW_REQUEST_STREAM` controller phase) can only\n // obtain byte-faithful bodies from this hook.\n //\n // PERF: retention is SCOPED to `rawBodyRequiredPrefixes` (webhooks only).\n // On every other route the raw buffer is not referenced, so it stays\n // GC-eligible the moment `JSON.parse` returns — normal API traffic pays\n // only a cheap `startsWith` check, never a retained copy of its own body.\n // Tight, prefix-scoped body cap for the OAuth credential/token endpoints + a translator that reports an\n // over-limit / malformed body as a clean 4xx instead of an INTERNAL 500. Registered BEFORE the global\n // parsers so its 32 KB limit governs `/oauth/*` (the scoped parser sets `req._body`, the global one then\n // skips the already-parsed body). Extracted for isolated testing — see `applyOAuthBodyCap` + its tests.\n applyOAuthBodyCap(this.app, MAIN_API_BASE_PATH);\n this.app.use(express.json({\n limit: httpConfig.bodyParserLimit,\n // Parse `application/json` AND any structured-syntax-suffix JSON media type\n // (RFC 6839 `+json`) — notably SCIM's mandated `application/scim+json`\n // (RFC 7644 §3.1). Without this, SCIM POST/PUT/PATCH bodies arrive unparsed\n // (`req.body` undefined) and the /scim/v2/* create/update handlers 500.\n type: ['application/json', 'application/*+json'],\n verify: (req, _res, buf) => {\n const url = (req as { url?: string }).url;\n if (url && this.rawBodyRequiredPrefixes.some((prefix) => url.startsWith(prefix))) {\n (req as unknown as Request).rawBody = buf;\n }\n },\n }));\n this.app.use(express.urlencoded({ extended: true, limit: httpConfig.urlEncodedLimit }));\n // Auth-hardening Slice A — `__wildo_refresh` `HttpOnly` cookie carries the\n // refresh token on `/api/v1/auth/*` routes. `cookie-parser` populates `req.cookies`\n // so `AuthControllerUtils.extractRefreshTokenFromCookie` can pick the cookie\n // up (post A-Step 6 the helper is cookie-only — no body fallback).\n // Cookie-parser is a no-op for routes that never read cookies, so mounting\n // it globally has no side-effects on non-auth controllers.\n this.app.use(cookieParser());\n\n this.logDebug('Body parsing middleware configured');\n }\n\n /**\n * Enter the request-scoped correlation ALS for every inbound request, wrapping the ENTIRE async\n * continuation (`runWithRequestContext(frame, () => next())`). Mounted first (after security headers)\n * so correlation is available to every downstream middleware, controller, service, and — critically —\n * the error handler, letting even un-threaded deep errors carry the correlation id.\n *\n * The frame reuses a SAFE inbound `x-correlation-id` (cross-service / cross-hop chaining) or mints a\n * fresh id, and captures the frontend surface (`x-frontend-service-name`). The per-request\n * `ExecutionContext` later adopts this frame's id (R13), so the EC, logs, and audit share one id.\n *\n * `x-client-instance-id` is simply forwarded: whether it is ADMITTED is decided by the ingest policy\n * installed via `setClientInstanceIdIngestPolicy` (see {@link installClientInstanceIdIngestPolicy}),\n * which every frame construction consults — so the opt-in holds for this seam, the WebSocket\n * handshake, and any future transport without each having to re-apply it.\n */\n private setupRequestContext(): void {\n this.app.use((req: Request, _res: Response, next: NextFunction) => {\n const frame = buildRequestContextFrame({\n inboundCorrelationId: req.get(WildoHeaderKeys.CORRELATION_ID),\n frontendServiceName: req.get(WildoHeaderKeys.FRONTEND_SERVICE_NAME),\n clientInstanceId: req.get(WildoHeaderKeys.CLIENT_INSTANCE_ID),\n });\n runWithRequestContext(frame, () => next());\n });\n }\n\n /**\n * Install the application's client-install ingest policy into the request-context chokepoint.\n *\n * Fail-closed by construction: an unresolved configuration, an absent `compliance` block, and an\n * explicit `DISABLED` all answer `false`, so the only way to admit the identifier is an application\n * that deliberately authored `SESSION` or `PERSISTENT`. The SCOPE (session vs persistent) governs\n * the CLIENT's storage lifetime, not the server's admission — either non-disabled value admits it.\n *\n * Passed as a closure (evaluated per request) rather than a snapshot boolean so a configuration\n * reload takes effect immediately and pre-configuration requests still fail closed.\n *\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — binds collection of the device-stored\n * client-install identifier to an explicit, application-authored policy; absent policy = no collection.\n */\n private installClientInstanceIdIngestPolicy(): void {\n setClientInstanceIdIngestPolicy(() => {\n // TOTAL by construction: this resolver runs on the request path, inside frame construction, so an\n // exception here would not merely mis-answer the policy — it would fail the REQUEST. (Proven, not\n // theoretical: an earlier revision dereferenced `appConfigService` directly and turned every\n // request into a 500 wherever that dependency was absent.) Any failure to determine the policy is\n // therefore answered `false`, which is also the correct privacy default: when in doubt, collect\n // nothing.\n try {\n if (!this.appConfigService?.isInitialized()) {\n return false;\n }\n const scope = this.appConfigService.config?.compliance?.clientInstanceIdScope;\n return scope !== undefined && scope !== ClientInstanceIdScope.DISABLED;\n } catch {\n return false;\n }\n });\n }\n\n /**\n * Setup request logging middleware\n * Skips logging successful health check requests to reduce noise\n */\n private setupRequestLogging(): void {\n this.app.use((req: Request, res: Response, next: NextFunction) => {\n const startTime = Date.now();\n\n res.on('finish', () => {\n // Skip logging successful health check requests (only log failures)\n const isHealthCheck = req.path === ENGINE_ROOT_ROUTES[EngineRootRouteKey.HEALTH_LIVENESS]\n || req.path === ENGINE_ROOT_ROUTES[EngineRootRouteKey.HEALTH_READINESS]\n || req.path === ENGINE_ROOT_ROUTES[EngineRootRouteKey.HEALTH_TIME];\n const isSuccessful = res.statusCode === 200;\n\n if (isHealthCheck && isSuccessful) {\n return; // Skip logging successful health checks\n }\n\n const duration = Date.now() - startTime;\n this.logDebug('HTTP Request', {\n method: req.method,\n path: req.path,\n statusCode: res.statusCode,\n duration: `${duration}ms`,\n userAgent: req.get(WildoHeaderKeys.USER_AGENT),\n ip: req.ip\n });\n });\n\n next();\n });\n }\n\n /**\n * Register all routes from controllers registry and custom controllers.\n *\n * Note: early-phase controllers are already mounted by setupExpressApp().\n * This method mounts only ordinary post-middleware controllers.\n */\n private async registerRoutes(): Promise<void> {\n // Mount health controller at root level (for Kubernetes probes)\n const healthBasePath = this.healthController.getCustomMountBasePath();\n this.app.use(healthBasePath, this.healthController.getRouter());\n this.logDebug('Health controller mounted at root level', { basePath: healthBasePath });\n\n // CRDT clock synchronization endpoint (root-level like health probes)\n this.app.get(ENGINE_ROOT_ROUTES[EngineRootRouteKey.HEALTH_TIME], (_req, res) => {\n const now = Date.now();\n res.setHeader('Cache-Control', 'no-store');\n res.setHeader(WildoHeaderKeys.X_SERVER_TIME, String(now));\n res.json({ serverTime: now });\n });\n\n // Mount the main controllers registry at the shared MAIN_API_BASE_PATH\n // (`/api/v1`). This is the single source of truth for the prefix — the\n // frontend HTTP client and the refresh-token cookie `Path` derive from\n // the same constant so the served auth routes and the cookie scope can\n // never drift apart (see MAIN_API_BASE_PATH / REFRESH_TOKEN_COOKIE_PATH).\n const mainRouter = this.controllersRegistry.getMasterRouter();\n this.app.use(MAIN_API_BASE_PATH, mainRouter);\n\n this.logDebug('Main controllers registry mounted', { basePath: MAIN_API_BASE_PATH });\n\n /**\n * RFC 8414 authorization-server metadata, at the location the RFC actually specifies.\n *\n * Our issuer carries a path (`https://<host>/api/v1`), and for a path-bearing issuer the\n * well-known segment goes BETWEEN the host and the path — not after it:\n *\n * \"If the issuer identifier value contains a path component, any terminating \"/\" MUST be\n * removed before inserting \"/.well-known/\" and the well-known URI suffix between the host\n * component and the path component.\"\n *\n * with the RFC's own example resolving issuer `https://example.com/issuer1` to\n * `GET /.well-known/oauth-authorization-server/issuer1`.\n * spec-cite: RFC 8414 § 3 (Obtaining Authorization Server Metadata), fetched 2026-08-11.\n *\n * The controller already serves the document at `<issuer>/.well-known/oauth-authorization-server`\n * — the OIDC Discovery convention (issuer + suffix), which is correct for\n * `/.well-known/openid-configuration` and WRONG for this one. So a client that followed RFC 8414\n * asked for `/.well-known/oauth-authorization-server/api/v1`, which is OUTSIDE the API mount, and\n * received the SPA shell: HTML where it expected JSON. It could not discover the authorization\n * server, so it never opened a login window — the failure looked like a silent no-op rather than a\n * 404, which is why it survived twelve lanes and two real-client sessions.\n *\n * Delegating to `mainRouter` rather than re-registering the handler keeps ONE implementation:\n * the document, its CORS posture and its cache headers cannot drift between the two locations.\n * The router is mounted at `MAIN_API_BASE_PATH`, so it matches on the path RELATIVE to that mount.\n */\n const rfc8414MetadataPath = rfc8414AuthorizationServerMetadataPath(MAIN_API_BASE_PATH);\n const mountRelativeMetadataPath = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.OAUTH_PROVIDER_AS_METADATA];\n this.app.get(rfc8414MetadataPath, (req, res, next) => {\n req.url = mountRelativeMetadataPath;\n mainRouter(req, res, next);\n });\n this.logDebug('RFC 8414 authorization-server metadata alias mounted', {\n rfc8414Path: rfc8414MetadataPath,\n servesSameDocumentAs: `${MAIN_API_BASE_PATH}${mountRelativeMetadataPath}`,\n });\n\n /**\n * RFC 9728 § 3 protected-resource metadata, at the location a client DERIVES from the resource\n * identifier — the same insertion rule as RFC 8414 above, applied to the MCP resource.\n *\n * Both MCP resource shapes are aliased, because the derivation follows the identifier and the\n * identifier grows a segment for a named instance\n * (`resolveResourceServerAudience(MCP, ref)` → `<apiAudience>/mcp/<ref>`):\n *\n * resource `<origin>/api/v1/mcp` → `/.well-known/oauth-protected-resource/api/v1/mcp`\n * resource `<origin>/api/v1/mcp/<ref>` → `/.well-known/oauth-protected-resource/api/v1/mcp/<ref>`\n *\n * Aliasing only the default would leave every NAMED instance underivable while looking fixed — the\n * shape of defect this codebase has now paid for repeatedly, so both are mounted together.\n *\n * Unlike the RFC 8414 case this closes a LATENT gap rather than a live outage: the 401 challenge\n * names `resource_metadata` explicitly and MCP directs clients to follow it, which is the route a\n * real client was observed taking. A deriving client — which RFC 9728 § 5.1 equally permits — was\n * receiving the SPA shell.\n * spec-cite: RFC 9728 § 3 (Protected Resource Metadata Request), fetched 2026-08-12.\n *\n * Delegation to `mainRouter` is the same trick and for the same reason: one handler, so the\n * document, its `resource`, its cache headers and its 404-on-unknown-instance behaviour cannot\n * drift between the derived and the advertised location.\n */\n const mcpMountPath = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.MCP_ENDPOINT];\n const mountRelativePrmPath = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.MCP_PROTECTED_RESOURCE_METADATA];\n const rfc9728DefaultPath = rfc9728ProtectedResourceMetadataPath(`${MAIN_API_BASE_PATH}${mcpMountPath}`);\n this.app.get(rfc9728DefaultPath, (req, res, next) => {\n req.url = mountRelativePrmPath;\n mainRouter(req, res, next);\n });\n this.app.get(`${rfc9728DefaultPath}/:instanceRef`, (req, res, next) => {\n // Re-enter through the router's OWN named-instance route so `:instanceRef` is parsed, validated\n // and 404'd by the one handler that knows the instance registry — never resolved here.\n req.url = `${mcpMountPath}/${encodeURIComponent(req.params['instanceRef'] ?? '')}${mountRelativePrmPath}`;\n mainRouter(req, res, next);\n });\n this.logDebug('RFC 9728 protected-resource metadata aliases mounted', {\n rfc9728DefaultPath,\n rfc9728InstancePath: `${rfc9728DefaultPath}/:instanceRef`,\n servesSameDocumentAs: `${MAIN_API_BASE_PATH}${mountRelativePrmPath}`,\n });\n\n // Mount ordinary custom controllers (early phases are already mounted).\n let standardControllerCount = 0;\n this.customControllers.forEach((controller) => {\n if (controller.getCustomControllerMountPhase() === CustomControllerMountPhase.STANDARD) {\n this.mountCustomController(controller);\n standardControllerCount++;\n }\n });\n\n this.logDebug('Routes registration completed', {\n totalCustomControllers: this.customControllers.size,\n standardControllers: standardControllerCount\n });\n }\n\n /**\n * Mount a custom controller\n */\n private mountCustomController(controller: AbstractControllerBackendService): void {\n const controllerName = controller.getControllerName();\n const router = controller.getRouter();\n const basePath = this.getControllerBasePath(controller);\n\n this.app.use(basePath, router);\n\n this.logDebug('Custom controller mounted', {\n controllerName,\n basePath,\n mountPhase: controller.getCustomControllerMountPhase()\n });\n }\n\n /**\n * Get the base path for a controller.\n * Uses custom path if provided, otherwise falls back to /api/custom/<kebab-case-name>\n */\n private getControllerBasePath(controller: AbstractControllerBackendService): string {\n const maybeCustomBasePath = (controller as any)?.getCustomMountBasePath?.();\n return typeof maybeCustomBasePath === 'string' && maybeCustomBasePath.startsWith('/')\n ? maybeCustomBasePath\n : `/api/custom/${this.kebabCase(controller.getControllerName())}`;\n }\n\n /**\n * Setup error handling middleware\n */\n private setupErrorHandling(): void {\n // 404 handler\n this.app.use((req: Request, res: Response, next: NextFunction) => {\n res.status(404).json({\n error: {\n message: 'Route not found',\n path: req.originalUrl,\n method: req.method,\n timestamp: new Date().toISOString()\n }\n });\n });\n\n // Global error handler - use ErrorHandlerService for proper error responses\n this.app.use(this.errorHandler.expressErrorHandler());\n\n this.logDebug('Error handling middleware configured');\n }\n\n /**\n * Start the HTTP server\n */\n private async startServer(): Promise<void> {\n return new Promise(async (resolve, reject) => {\n try {\n const appConfig = this.appConfigService.config;\n\n // Build server base URL from endpoint string, with env overrides\n let endpointString: string | undefined = undefined;\n const svcName = this.appConfigService.serviceName;\n\n if (svcName) {\n endpointString = (appConfig as any)?.runtime?.endPoints?.[svcName]?.internalUrl;\n }\n\n let urlProtocol: 'http:' | 'https:' = 'http:';\n let host = 'localhost';\n let port = 4000;\n\n try {\n const urlString = endpointString && endpointString.includes('://')\n ? endpointString\n : `http://${endpointString || 'localhost:4000'}`;\n const url = new URL(urlString);\n urlProtocol = (url.protocol === 'https:' ? 'https:' : 'http:');\n host = url.hostname || host;\n if (url.port) {\n port = parseInt(url.port, 10);\n } else if (url.protocol === 'https:') {\n port = 443;\n } else if (url.protocol === 'http:') {\n port = 80;\n }\n } catch {}\n\n if (process.env.HOST) host = process.env.HOST;\n if (process.env.PORT) port = parseInt(process.env.PORT, 10);\n\n this.baseUrl = `${urlProtocol}//${host}:${port}`;\n\n // Configure server options\n this.app.set('port', port);\n\n // Set server timeouts (before starting server)\n const runtimeConfig = this.extractRuntimeConfig(appConfig);\n const httpConfig = runtimeConfig.httpServerConfiguration;\n\n // Start listening\n this.server = this.app.listen(port, host, async () => {\n try {\n // Set server timeouts after server is created\n this.server!.timeout = httpConfig.requestTimeout;\n this.server!.keepAliveTimeout = httpConfig.keepAliveTimeout;\n this.server!.headersTimeout = httpConfig.headersTimeout;\n\n if (httpConfig.maxConnections) {\n this.server!.maxConnections = httpConfig.maxConnections;\n }\n\n this.logDebug('🌐 HTTP Server started successfully', {\n environment: process.env.APPLICATION_ENV || process.env.NODE_ENV || 'development',\n url: this.baseUrl\n });\n\n // Initialize WebSocket service AFTER server is ready\n // Skip for platform microservices that don't need real-time browser connections\n if (this.initOptions.skipWebSocket) {\n this.logDebug('WebSocket initialization skipped (platform service mode)');\n } else {\n // Note: CORS origins are derived internally by WebSocketService.getCorsOrigins()\n await this.webSocketService.initialize(this.server!);\n this.logDebug('WebSocket service initialized');\n }\n\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n\n // Handle server errors\n this.server.on('error', (error: any) => {\n if (error.code === 'EADDRINUSE') {\n const message = `Port ${port} is already in use`;\n this.logger.error(message);\n reject(new Error(message));\n } else {\n this.logger.error('HTTP Server error:', error);\n reject(error);\n }\n });\n\n } catch (error) {\n reject(error);\n }\n });\n }\n\n\n // ================================\n // Utility Methods\n // ================================\n\n /**\n * Parse CSP string into helmet format\n */\n private parseCSP(csp: string): Record<string, string[]> {\n // Simple CSP parser - can be enhanced as needed\n const directives: Record<string, string[]> = {};\n\n csp.split(';').forEach(directive => {\n const [key, ...values] = directive.trim().split(' ');\n if (key && values.length > 0) {\n directives[key.replace(/-([a-z])/g, (g) => g[1].toUpperCase())] = values;\n }\n });\n\n return directives;\n }\n\n /**\n * Convert string to kebab case\n */\n private kebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase();\n }\n\n}\n"]}
1
+ {"version":3,"file":"http-server.backend.service.js","sourceRoot":"","sources":["../../../../../src/runtime/services/http-server.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { injectable, inject } from 'inversify';\nimport express, { Express, Request, Response, NextFunction, Router } from 'express';\nimport cors from 'cors';\nimport cookieParser from 'cookie-parser';\nimport helmet from 'helmet';\nimport compression from 'compression';\nimport { Server } from 'http';\nimport { z } from 'zod';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport { ControllersRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/controllers/controllers-registry-handler.backend.service';\nimport {\n AbstractControllerBackendService,\n CustomControllerMountPhase,\n} from '~wildo-backend-lib/base-classes/services/controllers/abstract-controller.backend.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport { ErrorHandlerService } from '~wildo-backend-lib/errors/services/error-handler.backend.service';\nimport { relaxAbuseThrottleMaxForEnvironment } from '~wildo-backend-lib/errors/utils/rate-limit-environment-relaxation.backend.utils';\nimport { projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { applyOAuthBodyCap } from '~wildo-backend-lib/runtime/services/utils/oauth-body-cap.backend.utils';\nimport { RuntimeConfig, RuntimeConfigurationSchema } from '~wildo-backend-lib/runtime/models/runtime.backend.schemas';\nimport { AppConfiguration } from '~wildo-backend-lib/config/models/app-config.backend.schemas';\nimport { BackendApiType, ClientInstanceIdScope, ErrorSeverity, ErrorType, ErrorCustomMessageReference, isAppConfigurationNotInitializedError, WildoHeaderKeys, ENGINE_ROOT_ROUTES, EngineRootRouteKey, MAIN_API_BASE_PATH, MANUAL_CONTROLLER_ROUTES_URLS, ManualControllerRouteKey, rfc8414AuthorizationServerMetadataPath, rfc9728ProtectedResourceMetadataPath, ResourceSerializationUtils } from '@wildo-ai/saas-models';\nimport { WebSocketService } from '~wildo-backend-lib/requests/service/websocket.service';\nimport { HealthControllerBackendService } from '~wildo-backend-lib/runtime/controllers/health-controller.backend.service';\nimport { RedisService } from '~wildo-backend-lib/databases/services/redis.service';\nimport { AuthControllerUtils } from '~wildo-backend-lib/security/authentications/services/utils/auth-controller.utils';\nimport { runWithRequestContext, buildRequestContextFrame, setClientInstanceIdIngestPolicy } from '~wildo-backend-lib/runtime/models/request-context.als.backend';\n\n/**\n * HTTP Server Backend Service\n *\n * Orchestrates the Express HTTP server startup with complete configuration\n * management, middleware setup, and route registration.\n *\n * Features:\n * - Express server with configurable middleware stack\n * - CORS, security headers, compression, rate limiting\n * - Integration with ControllersRegistryHandlerBackendService\n * - Support for additional custom controllers\n * - Configuration-driven server setup\n * - Graceful shutdown handling\n * - Health check endpoints\n * - Request logging and error handling\n *\n * Configuration Sources:\n * - AppConfigurationService (platform + admin managed config)\n * - RuntimeConfigurationSchema (HTTP server specific settings)\n * - Environment variables (PORT, HOST overrides)\n */\n/**\n * How long the perimeter limiter stays in its in-memory fallback before the degradation\n * signal is REPEATED (the first request of any outage always signals immediately).\n *\n * Deliberately a fixed wall-clock interval and NOT derived from the configured\n * `rateLimiting.windowMs`: the signal is about the shared counter's OUTAGE, not about the\n * rate-limit window, and an application authoring an hour-long window would otherwise hide\n * an hour of degradation behind a single line. One minute keeps a sustained outage legible\n * to a human tailing logs while staying far away from one line per request.\n */\nexport const SHARED_RATE_LIMIT_COUNTER_DEGRADATION_SIGNAL_INTERVAL_MS: number = 60_000;\n\n/**\n * Stable, greppable identifiers stamped into the `degradation` log field so an operator (or\n * a log-search alert) can select these two lines without matching on prose. Exported so the\n * pinning test asserts the SAME identifier the runtime emits rather than a copied literal —\n * a second copy of a machine-readable code is a second authority that silently drifts.\n */\nexport const PERIMETER_RATE_LIMIT_DEGRADED_SIGNAL: string = 'perimeter_rate_limit_shared_counter_unavailable';\nexport const PERIMETER_RATE_LIMIT_RECOVERED_SIGNAL: string = 'perimeter_rate_limit_shared_counter_recovered';\n\n/**\n * Options for HTTP server initialization\n */\nexport interface HttpServerInitOptions {\n /**\n * Skip WebSocket/Socket.IO initialization.\n * Use this for platform microservices that don't need real-time browser connections.\n * Default: false\n */\n skipWebSocket?: boolean;\n\n /**\n * Skip CORS middleware configuration.\n * Use this for platform microservices that only receive backend-to-backend requests\n * and don't need browser CORS headers.\n * Default: false\n */\n skipCors?: boolean;\n}\n\n@injectable()\nexport class HttpServerBackendService {\n\n private readonly app: Express;\n private server: Server | null = null;\n private baseUrl: string | null = null;\n private readonly customControllers: Map<string, AbstractControllerBackendService> = new Map();\n private isInitialized = false;\n private initOptions: HttpServerInitOptions = {};\n\n /**\n * Route prefixes whose handlers require the EXACT original request bytes\n * (not a re-serialized copy). The global `express.json` `verify` hook retains\n * `req.rawBody` ONLY for requests matching one of these prefixes; for all\n * other traffic the raw buffer is GC-eligible the moment `JSON.parse`\n * returns, exactly as before — so normal API calls pay no retained-memory\n * cost, only a cheap `startsWith` check.\n *\n * Today the sole raw-body-in surface is inbound webhook HMAC signature\n * verification: `WebhookAutoControllerBackendService` registers\n * `POST /webhooks/{provider}/{endpoint}` under the master router at\n * `MAIN_API_BASE_PATH`, so the live prefix is `${MAIN_API_BASE_PATH}/webhooks/`.\n * Add to this list if another surface ever needs byte-faithful bodies.\n */\n private readonly rawBodyRequiredPrefixes: readonly string[] = [\n `${MAIN_API_BASE_PATH}/webhooks/`,\n ];\n\n protected readonly logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly appConfigService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.ControllersRegistryHandlerService) private readonly controllersRegistry: ControllersRegistryHandlerBackendService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService) private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ErrorHandlerService) private readonly errorHandler: ErrorHandlerService,\n @inject(SAAS_SERVICE_TYPES.WebSocketService) private readonly webSocketService: WebSocketService,\n @inject(SAAS_SERVICE_TYPES.HealthController) private readonly healthController: HealthControllerBackendService,\n @inject(SAAS_SERVICE_TYPES.RedisService) private readonly redisService: RedisService,\n ) {\n\n this.app = express();\n\n this.logDebug = this.logger.debugByType('HttpServer');\n this.logger.setDebugTypeLogging('HttpServer', false);\n\n this.logDebug('HTTP server service created');\n }\n\n public async initialize(options?: HttpServerInitOptions): Promise<void> {\n if (this.isInitialized) {\n this.logDebug('HTTP server already initialized');\n return;\n }\n\n // Store options for use in startServer()\n this.initOptions = options || {};\n\n try {\n this.logDebug('🚀 Initializing HTTP server...');\n\n // Get app configuration\n // Note: AppConfigurationService should be initialized before HTTP server in normal flow\n // but we check gracefully to provide better error messages\n const appConfig = this.appConfigService.isInitialized()\n ? this.appConfigService.config\n : null;\n\n if (!appConfig) {\n this.logger.error('HTTP server initialization attempted before app config initialized');\n throw this.errorBuilder.buildError(\n ErrorType.CONFIGURATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: 'Application configuration must be initialized before starting HTTP server',\n service: 'HttpServerBackendService',\n operation: 'initialize'\n }\n }\n );\n }\n\n const runtimeConfig = this.extractRuntimeConfig(appConfig);\n\n // Setup Express application\n try {\n await this.setupExpressApp(runtimeConfig);\n } catch (error: any) {\n if (isAppConfigurationNotInitializedError(error)) {\n throw this.errorBuilder.buildError(ErrorType.INFRASTRUCTURE, undefined, {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: { step: 'setupExpressApp', message: error.context.message },\n stack: error.stack,\n });\n }\n throw error;\n }\n\n // Register all routes\n try {\n await this.registerRoutes();\n } catch (error: any) {\n if (isAppConfigurationNotInitializedError(error)) {\n throw this.errorBuilder.buildError(ErrorType.INFRASTRUCTURE, undefined, {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: { step: 'registerRoutes', message: error.context.message },\n stack: error.stack,\n });\n }\n throw error;\n }\n\n // Setup error handling\n try {\n this.setupErrorHandling();\n } catch (error: any) {\n if (isAppConfigurationNotInitializedError(error)) {\n throw this.errorBuilder.buildError(ErrorType.INFRASTRUCTURE, undefined, {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: { step: 'setupErrorHandling', message: error.context.message },\n stack: error.stack,\n });\n }\n throw error;\n }\n\n // Start the server\n try {\n await this.startServer();\n } catch (error: any) {\n if (isAppConfigurationNotInitializedError(error)) {\n throw this.errorBuilder.buildError(ErrorType.INFRASTRUCTURE, undefined, {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: { step: 'startServer', message: error.context.message },\n stack: error.stack,\n });\n }\n throw error;\n }\n\n this.isInitialized = true;\n this.logDebug('✅ HTTP server initialized successfully at ' + this.getServerInfo());\n\n } catch (error) {\n // Initialization failures are propagated to the runtime host, which owns\n // the single structured startup-failure record.\n throw error;\n }\n }\n\n /**\n * Register a custom controller\n */\n public registerCustomController(controller: AbstractControllerBackendService): void {\n const controllerName = controller.getControllerName();\n const mountPhase = controller.getCustomControllerMountPhase();\n\n if (this.customControllers.has(controllerName)) {\n const error = this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: {\n controllerName\n }\n }\n );\n throw error;\n }\n\n if (this.isInitialized && mountPhase !== CustomControllerMountPhase.STANDARD) {\n throw this.errorBuilder.buildError(\n ErrorType.VALIDATION,\n undefined,\n {\n customMessageReference: ErrorCustomMessageReference.HTTP_SERVER_INITIALIZATION_FAILED,\n context: {\n controllerName,\n mountPhase,\n reason: 'Early-phase custom controllers must be registered before HTTP server initialization',\n },\n },\n );\n }\n\n this.customControllers.set(controllerName, controller);\n\n this.logDebug('Custom controller registered', {\n controllerName,\n mountPhase,\n totalCustomControllers: this.customControllers.size\n });\n\n // Only STANDARD controllers can reach this late-registration path. An\n // early phase is a strict ordering contract and is refused above rather\n // than silently mounted after the middleware it must precede.\n if (this.isInitialized) {\n this.mountCustomController(controller);\n }\n }\n\n /**\n * Get the Express application instance\n */\n public getApp(): Express {\n return this.app;\n }\n\n /**\n * Check if server is running\n */\n public isRunning(): boolean {\n return this.server !== null && this.server.listening;\n }\n\n /**\n * Get server listening information\n */\n public getServerInfo(): string | null {\n if (!this.server || !this.server.listening) {\n return null;\n }\n return this.baseUrl;\n }\n\n /**\n * Gracefully shutdown the server\n */\n public async shutdown(): Promise<void> {\n if (!this.server) {\n return;\n }\n\n // Cleanup WebSocket service first\n await this.webSocketService.cleanup();\n this.logDebug('WebSocket service cleaned up');\n\n return new Promise((resolve, reject) => {\n this.logDebug('🔄 Shutting down HTTP server...');\n\n this.server!.close((error) => {\n if (error) {\n this.logger.error('❌ HTTP server shutdown failed:', error);\n reject(error);\n } else {\n this.logDebug('✅ HTTP server shutdown completed');\n this.server = null;\n this.isInitialized = false;\n resolve();\n }\n });\n });\n }\n\n // ================================\n // Private Setup Methods\n // ================================\n\n /**\n * Extract runtime configuration with defaults.\n *\n * Reads the optional `runtime.httpServerConfiguration` partial override\n * declared on `AppConfiguration_RuntimeSchema` (see\n * `appConfiguration_Backend_RuntimeSchemaBuilder` in `app-config.backend.schemas.ts`)\n * and feeds it through `RuntimeConfigurationSchema.parse` so any missing\n * fields fall back to the framework defaults (`requestTimeout: 300_000`,\n * `headersTimeout: 60_000`, etc.).\n *\n * App authors generally do not author this surface. The dev companion\n * sets `requestTimeout` and `headersTimeout` to ~30 min because its\n * LLM-bound endpoints legitimately exceed the 5-min default.\n */\n private extractRuntimeConfig(appConfig: AppConfiguration): RuntimeConfig {\n try {\n const runtimeData = appConfig.runtime.httpServerConfiguration ?? {};\n return RuntimeConfigurationSchema.parse({\n httpServerConfiguration: runtimeData,\n });\n } catch (error) {\n this.logger.warn('Using default runtime configuration due to validation error:', error);\n return RuntimeConfigurationSchema.parse({ httpServerConfiguration: {} });\n }\n }\n\n /**\n * Setup Express application with middleware\n *\n * IMPORTANT: Middleware ordering matters!\n * 1. Security headers are installed before every custom route.\n * 2. PRE_REQUEST_TRANSFORM controllers mount before CORS/preflight and parsers.\n * 3. RAW_REQUEST_STREAM controllers mount after CORS/rate limiting but before body parsing.\n * 4. Body parsing middleware is applied.\n * 5. STANDARD controllers mount through registerRoutes().\n *\n * This ensures streaming controllers receive raw request streams\n * while regular controllers get parsed request bodies.\n */\n private async setupExpressApp(runtimeConfig: RuntimeConfig): Promise<void> {\n const httpConfig = runtimeConfig.httpServerConfiguration;\n\n // Trust proxy configuration\n if (httpConfig.trustProxy) {\n this.app.set('trust proxy', 1);\n }\n\n // Disable ETag if configured\n if (!httpConfig.etag) {\n this.app.set('etag', false);\n }\n\n // Defense-in-depth for bigint-safe `res.json`. The primary mechanism is the\n // type-level `BigInt.prototype.toJSON` (bigint → decimal string) installed at\n // the `@wildo-ai/zod-decorators` bootstrap (`installBigIntJsonEncoding`), which\n // makes EVERY JSON boundary bigint-safe the way `Date.prototype.toJSON` does.\n // This app-level `json replacer` is a zero-cost belt-and-suspenders that keeps\n // `res.json` safe even if that bootstrap ever fails to run before the first\n // response. `z_money` amounts are `bigint`; without either, a money-bearing\n // response (prices, invoices, promotions, …) 500s with \"Do not know how to\n // serialize a BigInt\". Encoding as a decimal STRING (not `number`) is the\n // documented wire contract — lossless round-trip; the frontend coerces it back\n // to `bigint` on receive. The replacer runs inside Express's own\n // `JSON.stringify` and composes idempotently with the prototype `toJSON`.\n this.app.set('json replacer', ResourceSerializationUtils.bigIntSafeJsonReplacer);\n\n // Security headers protect every route, including controllers that must own\n // their method contract before CORS preflight or body parsing can terminate.\n this.setupSecurity(httpConfig.headers);\n\n // Enter the request-context ALS as early as possible — right after security headers and before any\n // controller, CORS, body parsing, routing, or the error handler — so the ENTIRE async continuation\n // of the request (including deep, un-threaded service errors) carries the correlation id.\n // Install the client-install ingest policy BEFORE the first frame can be built, so no request is\n // ever served under the uninitialized resolver. (The resolver itself also fails closed, making\n // this ordering belt-and-braces rather than load-bearing.)\n this.installClientInstanceIdIngestPolicy();\n this.setupRequestContext();\n\n this.mountCustomControllersForPhase(CustomControllerMountPhase.PRE_REQUEST_TRANSFORM);\n\n // Setup CORS (skip for platform microservices that only receive backend-to-backend requests)\n if (this.initOptions.skipCors) {\n this.logDebug('CORS middleware skipped (platform service mode)');\n } else {\n this.setupCORS(httpConfig.cors);\n }\n\n // Setup compression\n if (httpConfig.compression) {\n this.app.use(compression() as any);\n }\n\n // Setup rate limiting\n this.setupRateLimit(httpConfig.rateLimiting);\n\n // True streaming controllers still receive raw request streams, while\n // retaining the ordinary CORS and rate-limiting boundary.\n this.mountCustomControllersForPhase(CustomControllerMountPhase.RAW_REQUEST_STREAM);\n\n // Body parsing middleware - only affects routes registered AFTER this point\n this.setupBodyParsing(httpConfig);\n\n // Setup request logging\n this.setupRequestLogging();\n\n this.logDebug('Express middleware setup completed');\n }\n\n /** Mount all custom controllers assigned to one exact middleware phase. */\n private mountCustomControllersForPhase(phase: CustomControllerMountPhase): void {\n const controllers = [...this.customControllers.values()].filter((controller) => controller.getCustomControllerMountPhase() === phase);\n for (const controller of controllers) {\n this.mountCustomController(controller);\n }\n if (controllers.length > 0) {\n this.logDebug('Custom controllers mounted for middleware phase', {\n phase,\n count: controllers.length,\n controllers: controllers.map((controller) => controller.getControllerName()),\n });\n }\n }\n\n /**\n * Setup CORS middleware\n *\n * Derives allowed origins from app config's runtime.endPoints (frontend app URLs)\n * to properly support credentials (cookies/tokens) which require explicit origins.\n *\n * For platform services that don't serve frontends (e.g., crontabs-batches-manager),\n * CORS is configured permissively since they only receive internal backend requests.\n *\n * IMPORTANT: When credentials are enabled, origin CANNOT be '*' per CORS spec.\n */\n private setupCORS(corsConfig: RuntimeConfig['httpServerConfiguration']['cors']): void {\n const engineExposedHeaders = [\n WildoHeaderKeys.ANONYMOUS_SESSION_TOKEN,\n WildoHeaderKeys.CONSUMABLE_TOKEN_CONSUMED,\n WildoHeaderKeys.X_SERVER_TIME,\n WildoHeaderKeys.RATE_LIMIT_LIMIT,\n WildoHeaderKeys.RATE_LIMIT_REMAINING,\n WildoHeaderKeys.RATE_LIMIT_RESET,\n 'Retry-After',\n ];\n const mergedExposedHeaders = [\n ...engineExposedHeaders,\n ...(corsConfig.exposedHeaders ?? []),\n ];\n\n // Browser-universal request headers that ANY cross-origin JSON API needs.\n //\n // The browser preflights cross-origin requests and sends an\n // `Access-Control-Request-Headers` list naming every non-CORS-safe\n // header the actual request will carry. The server's\n // `Access-Control-Allow-Headers` response MUST include every entry the\n // browser asked for or the preflight fails (CORS by spec, blocked at\n // the network layer — no body, no useful error).\n //\n // `Content-Type` is the offender 99% of the time: every JSON POST/PUT\n // sends `Content-Type: application/json`, which is NOT in the CORS\n // \"safelisted request headers\" set (only `application/x-www-form-urlencoded`,\n // `multipart/form-data`, and `text/plain` content-types are safelisted),\n // so browsers always preflight on it.\n //\n // `Authorization` and `Accept` are equally universal — every\n // authenticated call carries `Authorization: Bearer …`, every API call\n // negotiates `Accept: application/json`. The framework ships these as\n // defaults because they're a precondition for ANY Wildo SaaS app to\n // talk to its own backend over CORS; making each app opt in to\n // `Content-Type` would mean every new app has a 5-minute\n // \"why-is-my-login-broken\" stumble before reading this file.\n //\n // `if-match` and `x-frontend-service-name` are likewise framework-defined\n // request headers the runtime emits universally: the frontend HTTP client\n // tags every call with its originating service name, and optimistic-\n // concurrency writes carry `If-Match`. Both are custom (non-safelisted),\n // so they preflight too.\n //\n // The anonymous-session pair — `x-anonymous-session-init` (raw UUID on the\n // first unauthenticated call) and `x-anonymous-session` (signed JWT on\n // every subsequent one) — is sent by the framework's own frontend HTTP\n // client for ANY app with `anonymousSessionsEnabled`, and by static\n // marketing sites bootstrapping a session inline (see\n // `handleAnonymousSessionInit` in the execution-context creator). They\n // belong in the universal floor for the SAME reason their response\n // counterpart `x-anonymous-session-token` is already in\n // `engineExposedHeaders` above: anonymous sessions are a framework\n // primitive, not an app-specific concern, so it is incoherent to expose\n // the response token while silently dropping the request headers that\n // establish/carry the session. Without these two, every cross-origin\n // anonymous-session call (`app.<brand>` → `api.<brand>`, a static\n // marketing site → `api`, …) fails the browser preflight at the network\n // layer with no useful error — the exact \"why is my anonymous POST\n // CORS-blocked\" stumble the Content-Type floor entry exists to prevent.\n //\n // `x-landing-path` is floored for the same reason and, decisively, because\n // it is a designed travel-companion of `x-anonymous-session-init`: the\n // framework's marketing-site bootstrap (`@wildo-ai/saas-website`) sends it\n // ON the very first session-init request, where the backend reads it once\n // into `AnonymousUser.marketingMetadata.landingPath` (first-touch\n // attribution — see `extractFirstTouchMarketingMetadata`). Because both\n // headers ride the same preflighted request, allowing the init header but\n // not `x-landing-path` would fail the WHOLE request at the network layer\n // (a preflight rejects the entire call when ANY requested header is\n // disallowed) — not merely drop attribution. It is a framework-defined\n // header (engine registry → engine website package → engine backend →\n // engine schema field), so an app must not have to re-allowlist it; the\n // CORS layer has no per-origin header allow-list, so \"marketing-origin\n // only\" is not an implementable scoping — the floor is the correct home.\n //\n // App-specific headers (custom auth schemes, third-party SDK headers\n // like Stripe's idempotency keys, etc.) still come through\n // `corsConfig.allowedHeaders` — the engine list is the UNIVERSAL floor,\n // not the ceiling.\n const engineAllowedHeaders = [\n 'Content-Type',\n 'Authorization',\n 'Accept',\n WildoHeaderKeys.IF_MATCH,\n WildoHeaderKeys.FRONTEND_SERVICE_NAME,\n WildoHeaderKeys.ANONYMOUS_SESSION_INIT,\n WildoHeaderKeys.ANONYMOUS_SESSION,\n WildoHeaderKeys.LANDING_PATH,\n // Client-install id (Phase 5b). Belongs on the FLOOR for the reason stated above: the engine's own\n // frontend HTTP client stamps it on every request once an application authors a non-`DISABLED`\n // `compliance.clientInstanceIdScope`, so omitting it here would make the preflight reject the WHOLE\n // request — turning an opt-in privacy capability into an app-wide outage, and forcing every app to\n // re-allowlist a framework-defined header. Listing it is safe when the capability is OFF: the header\n // is simply never sent, and the backend's ingest gate refuses it regardless of CORS.\n //\n // `CORRELATION_ID` is deliberately NOT on the floor. No browser client sends it (only the\n // server-to-server interceptor does, where CORS does not apply), so adding it would be speculative\n // surface — and it would additionally invite browser-supplied trace ids, which is the forgery\n // question recorded in the plan rather than one to answer by widening a header allow-list.\n WildoHeaderKeys.CLIENT_INSTANCE_ID,\n ];\n const mergedAllowedHeaders = [\n ...engineAllowedHeaders,\n ...(corsConfig.allowedHeaders ?? []),\n ];\n\n // Derive CORS origins from app config (same logic as WebSocketService)\n const allowedOrigins = this.deriveCorsOrigins();\n\n // If no frontend URLs are configured, use permissive CORS (for platform services)\n // Platform services like crontabs-batches-manager only receive internal backend requests,\n // not browser requests, so CORS doesn't apply. We use permissive config to avoid errors.\n if (allowedOrigins.length === 0) {\n this.logger.info('📝 No frontend URLs configured - using permissive CORS (platform/internal service mode)', {\n availableEndpoints: Object.keys(this.appConfigService.config?.runtime?.endPoints || {}),\n note: 'This is expected for platform services that only receive backend-to-backend requests'\n });\n\n this.app.use(cors({\n origin: '*', // Permissive for internal services\n credentials: false, // No credentials with wildcard origin\n methods: corsConfig.methods,\n allowedHeaders: mergedAllowedHeaders,\n exposedHeaders: mergedExposedHeaders,\n maxAge: corsConfig.maxAge,\n preflightContinue: corsConfig.preflightContinue,\n optionsSuccessStatus: corsConfig.optionsSuccessStatus\n }));\n\n this.logger.info('✅ CORS middleware configured (permissive mode for internal service)', {\n origin: '*',\n credentials: false\n });\n return;\n }\n\n this.app.use(cors({\n origin: allowedOrigins,\n credentials: true,\n methods: corsConfig.methods,\n allowedHeaders: mergedAllowedHeaders,\n exposedHeaders: mergedExposedHeaders,\n maxAge: corsConfig.maxAge,\n preflightContinue: corsConfig.preflightContinue,\n optionsSuccessStatus: corsConfig.optionsSuccessStatus\n }));\n\n this.logger.info('✅ CORS middleware configured successfully', {\n allowedOrigins,\n credentials: true\n });\n }\n\n /**\n * Derive CORS origins from app config (frontend application URLs).\n * Reads the configured `frontendServices` to know which frontend surfaces exist,\n * then looks up their publicUrl from `runtime.endPoints`.\n *\n * @returns Array of frontend URLs, or empty array if not configured\n */\n private deriveCorsOrigins(): string[] {\n const config = this.appConfigService.config;\n const frontendServices = Object.keys(config.frontendServices ?? {});\n return frontendServices.map((frontendServiceName) => {\n const url = config.runtime?.endPoints?.[frontendServiceName]?.publicUrl;\n if (!url) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n context: {\n message:\n `Missing runtime.endPoints.${frontendServiceName}.publicUrl for declared frontend service \"${frontendServiceName}\". ` +\n `CORS cannot be derived safely from an incomplete runtime topology.`,\n frontendServiceName,\n },\n });\n }\n return AuthControllerUtils.stripTrailingSlash(url);\n });\n }\n\n /**\n * Setup security headers\n */\n private setupSecurity(headersConfig: RuntimeConfig['httpServerConfiguration']['headers']): void {\n const helmetOptions: any = {\n // M16: CSP now defaults to a sensible baseline via schema default. Empty string explicitly disables.\n // C2 fix: Trim whitespace to treat \" \" as empty (disabled), not as a truthy but invalid CSP.\n contentSecurityPolicy: headersConfig.contentSecurityPolicy.trim() ? {\n directives: this.parseCSP(headersConfig.contentSecurityPolicy.trim()),\n } : false,\n hsts: headersConfig.hsts ? {\n maxAge: headersConfig.hstsMaxAge,\n includeSubDomains: true,\n preload: true\n } : false,\n noSniff: headersConfig.noSniff,\n referrerPolicy: { policy: headersConfig.referrerPolicy }\n };\n\n this.app.use(helmet(helmetOptions));\n\n this.logDebug('Security middleware configured', { headersConfig });\n }\n\n /**\n * Setup rate limiting.\n *\n * M17: Uses Redis-backed atomic INCR+EXPIRE for distributed rate limiting.\n * Falls back to in-memory Map when Redis is unavailable (single-instance dev mode).\n *\n * Entering and leaving that fallback are both SIGNALLED (debounced `warn` lines carrying\n * `degradation: PERIMETER_RATE_LIMIT_{DEGRADED,RECOVERED}_SIGNAL`) — see the long comment\n * beside the signal state below for the destination, level and debounce reasoning. The\n * fallback silently converted a deployment-wide ceiling into a per-replica one, and the\n * one-time boot line at the end of this method cannot tell an operator whether it is in\n * effect right now.\n */\n private setupRateLimit(rateLimitConfig: RuntimeConfig['httpServerConfiguration']['rateLimiting']): void {\n const windowSeconds = Math.ceil(rateLimitConfig.windowMs / 1000);\n // In-memory fallback for when Redis is down\n const fallbackRequests = new Map<string, { count: number; resetTime: number }>();\n\n // Non-production relaxation of the perimeter ceiling (shared seam — see\n // `rate-limit-environment-relaxation.backend.utils`). Resolved ONCE here rather than\n // per-request: `setupRateLimit` runs inside `initialize()`, which has already refused\n // to proceed unless `AppConfigurationService` is initialized, so `applicationEnv` is\n // guaranteed readable at this point and a per-request read would only add cost.\n //\n // This limiter keys on the raw client IP by construction, which is exactly why a dev\n // machine needs the relaxation: every local process (frontend, e2e driver, companion,\n // client-integration-app) presents as `127.0.0.1` and shares one bucket, so the\n // authored per-client ceiling behaves as a per-MACHINE ceiling locally.\n const effectiveMaxRequests = relaxAbuseThrottleMaxForEnvironment(\n rateLimitConfig.maxRequests,\n this.appConfigService.applicationEnv,\n );\n\n // ---------------------------------------------------------------------------------\n // Shared-counter degradation signal.\n //\n // The in-memory fallback below is DELIBERATE and stays. The perimeter limiter is a\n // noisy-neighbour preventer, not the security boundary — that is the per-endpoint\n // `RateLimitBackendService`, which fail-CLOSES and propagates `ErrorType.DATABASE`\n // when the shared counter is unavailable (see its file docstring, which names this\n // limiter as the deliberate fail-OPEN exception). So a Redis outage must not take the\n // application off the air.\n //\n // What was missing is any way for an operator to learn that it engaged, and the\n // consequence is not cosmetic: once every replica counts in its own process memory,\n // an authored ceiling of N is enforced N × replicas times globally, and it resets on\n // every restart. A deployment can therefore sit at several times its stated cap\n // indefinitely with nothing anywhere to read.\n //\n // DESTINATION — the logger, and only the logger. It is the one channel that provably\n // works while the shared counter is down: pino writes to stdout and, through the\n // OTLP log bridge wired in `otel-preload`, on to the collector — with no dependency\n // on Redis, on a repository, or on any other service. Rejected:\n // · an audit/SIEM row — a persisted write on the perimeter hot path, requiring a\n // SECOND subsystem to be healthy for a signal whose whole premise is that a\n // subsystem is not; and this is an infrastructure diagnostic, not a\n // security-authority decision;\n // · a readiness contribution — readiness is a REFUSAL. Turning a fallback that\n // exists to keep serving into a 503 gets the process respawned by the\n // supervisor, which is strictly worse than the degradation it reports;\n // · `this.logDebug` — this service ships with `HttpServer` debug logging OFF, so\n // the signal would be invisible in exactly the deployments that need it.\n //\n // LEVEL — `warn` for BOTH the degradation and the recovery. The cap is still enforced,\n // only its scope narrowed, and a single-instance development stack with no Redis\n // legitimately runs here from its first request; an `error` on every dev boot is how\n // a channel stops being read. Recovery shares the level on purpose: emitting it any\n // lower would let a `warn` threshold show an operator the degradation and never its\n // end, which is worse than not signalling at all.\n //\n // DEBOUNCE — one line on the first fallback request of an outage, then at most one more\n // per `SHARED_RATE_LIMIT_COUNTER_DEGRADATION_SIGNAL_INTERVAL_MS`, each carrying how\n // many requests the fallback served since the previous line so the VOLUME stays\n // legible without a line per request. A new outage always signals immediately, even\n // if the previous outage's line is only seconds old — otherwise a flapping counter\n // would be reported once and then muted.\n // ---------------------------------------------------------------------------------\n let sharedCounterDegradedSince: number | null = null;\n let degradationSignalLastEmittedAt = 0;\n // Two counters, because the two lines answer different questions. The degradation line\n // answers \"how loud is this right now\" (volume BETWEEN lines, so it resets on every\n // emit); the recovery line answers \"how much traffic was actually capped per replica\"\n // (the whole outage, so it resets only at the transitions).\n let fallbackRequestsSinceLastSignal = 0;\n let fallbackRequestsThisOutage = 0;\n\n const noteSharedCounterUnavailable = (now: number, cause: unknown): void => {\n // Both count the CURRENT request, so the first line of an outage reports 1.\n fallbackRequestsSinceLastSignal++;\n fallbackRequestsThisOutage++;\n\n const isFirstRequestOfThisOutage = sharedCounterDegradedSince === null;\n if (isFirstRequestOfThisOutage) {\n sharedCounterDegradedSince = now;\n } else if (now - degradationSignalLastEmittedAt < SHARED_RATE_LIMIT_COUNTER_DEGRADATION_SIGNAL_INTERVAL_MS) {\n return;\n }\n\n // Debounce state is advanced BEFORE the emit, and the emit itself cannot throw out of\n // here. Both halves matter and neither is defensive habit:\n // · this runs inside the limiter's own `try`, whose `catch` calls `next(error)` — so\n // a logger that throws (a closed stdout, an EPIPE on a detached process) would turn\n // every request into a 500 for the duration of a Redis outage. A diagnostic must\n // never be able to refuse the traffic it is describing;\n // · advancing the state first means a throwing logger degrades to SILENCE with the\n // debounce intact, rather than re-attempting the same throwing call on every\n // subsequent request.\n const requestsCoveredByThisSignal = fallbackRequestsSinceLastSignal;\n const degradedForMs = now - sharedCounterDegradedSince;\n degradationSignalLastEmittedAt = now;\n fallbackRequestsSinceLastSignal = 0;\n\n try {\n this.logger.warn(\n 'Perimeter rate limiting degraded to per-replica in-memory counting: the shared counter is unavailable, '\n + 'so the configured ceiling is enforced per process instead of across the deployment and resets on restart.',\n {\n degradation: PERIMETER_RATE_LIMIT_DEGRADED_SIGNAL,\n effectiveMaxRequests,\n windowMs: rateLimitConfig.windowMs,\n enforcementScope: 'per-replica-in-memory',\n degradedForMs,\n fallbackRequestsSinceLastSignal: requestsCoveredByThisSignal,\n nextSignalNotBeforeMs: SHARED_RATE_LIMIT_COUNTER_DEGRADATION_SIGNAL_INTERVAL_MS,\n ...projectCaughtErrorLogFields(cause),\n },\n );\n } catch {\n // Nothing to escalate to: the logger IS the escalation channel.\n }\n };\n\n const noteSharedCounterAvailable = (now: number): void => {\n // The happy path pays one null check per request; everything below runs once per\n // recovery, at the transition only.\n if (sharedCounterDegradedSince === null) return;\n\n // Same ordering and same guard as the degradation emit above, for the same two\n // reasons: state first so a throwing logger cannot re-attempt on every later request,\n // and no throw out of a diagnostic sitting on the request path.\n const degradedForMs = now - sharedCounterDegradedSince;\n const fallbackRequestsServedDuringOutage = fallbackRequestsThisOutage;\n sharedCounterDegradedSince = null;\n degradationSignalLastEmittedAt = 0;\n fallbackRequestsSinceLastSignal = 0;\n fallbackRequestsThisOutage = 0;\n\n try {\n this.logger.warn(\n 'Perimeter rate limiting recovered: the shared counter answered again, so the configured ceiling is '\n + 'once more enforced across the deployment.',\n {\n degradation: PERIMETER_RATE_LIMIT_RECOVERED_SIGNAL,\n effectiveMaxRequests,\n enforcementScope: 'shared-counter',\n degradedForMs,\n fallbackRequestsServedDuringOutage,\n },\n );\n } catch {\n // Nothing to escalate to: the logger IS the escalation channel.\n }\n };\n\n const limiter = async (req: Request, res: Response, next: NextFunction) => {\n try {\n const clientId = req.ip || 'unknown';\n const now = Date.now();\n\n let count: number;\n let retryAfterSeconds: number;\n\n try {\n // M17: Redis-backed rate limiting — works across multiple instances\n const identifier = `http_rate_limit:${clientId}`;\n count = await this.redisService.incrementRateLimit(\n identifier,\n windowSeconds,\n );\n // The shared counter answered. If we were in the fallback, this is the recovery\n // transition — signalled here rather than after the TTL lookup below, because a\n // failing TTL degrades only the accuracy of `Retry-After`; the COUNTER, which is\n // what makes the cap deployment-wide, is demonstrably back.\n noteSharedCounterAvailable(now);\n try {\n const ttl = await this.redisService.getRateLimitTtl(identifier);\n retryAfterSeconds = ttl >= 0 ? ttl : windowSeconds;\n } catch {\n retryAfterSeconds = windowSeconds;\n }\n } catch (sharedCounterError) {\n // Fallback to in-memory when Redis is unavailable.\n // Mirrors Redis INCR+EXPIRE fixed-window: window starts on first request,\n // resets after windowMs elapses (not a sliding window).\n //\n // The caught value is bound (this was a bare `catch {}`) so the degradation\n // signal can carry WHY the shared counter refused — a connection refusal, a\n // timeout and an auth failure need different operator responses, and without the\n // cause the line only says that something is wrong.\n noteSharedCounterUnavailable(now, sharedCounterError);\n\n for (const [key, value] of fallbackRequests.entries()) {\n if (now >= value.resetTime) fallbackRequests.delete(key);\n }\n let record = fallbackRequests.get(clientId);\n if (!record || now >= record.resetTime) {\n record = { count: 0, resetTime: now + rateLimitConfig.windowMs };\n fallbackRequests.set(clientId, record);\n }\n record.count++;\n count = record.count;\n retryAfterSeconds = Math.max(0, Math.ceil((record.resetTime - now) / 1000));\n }\n\n if (count > effectiveMaxRequests) {\n res.set('Retry-After', retryAfterSeconds.toString());\n\n if (rateLimitConfig.standardHeaders) {\n res.set({\n [WildoHeaderKeys.RATE_LIMIT_LIMIT]: effectiveMaxRequests.toString(),\n [WildoHeaderKeys.RATE_LIMIT_REMAINING]: '0',\n [WildoHeaderKeys.RATE_LIMIT_RESET]: retryAfterSeconds.toString(),\n });\n }\n\n return res.status(429).json({\n error: {\n type: ErrorType.RATE_LIMIT,\n severity: ErrorSeverity.MEDIUM,\n message: ErrorCustomMessageReference.RATE_LIMIT,\n customMessage: ErrorCustomMessageReference.RATE_LIMIT,\n customMessageReference: ErrorCustomMessageReference.RATE_LIMIT,\n timestamp: new Date(now).toISOString(),\n details: {\n message: rateLimitConfig.message,\n retryAfterSeconds,\n },\n },\n });\n }\n\n if (rateLimitConfig.standardHeaders) {\n res.set({\n [WildoHeaderKeys.RATE_LIMIT_LIMIT]: effectiveMaxRequests.toString(),\n [WildoHeaderKeys.RATE_LIMIT_REMAINING]: (effectiveMaxRequests - count).toString(),\n [WildoHeaderKeys.RATE_LIMIT_RESET]: retryAfterSeconds.toString(),\n });\n }\n\n next();\n } catch (error) {\n // Express 4 doesn't handle async middleware errors — forward to error handler\n next(error);\n }\n };\n\n this.app.use(limiter);\n\n this.logDebug('Rate limiting configured (Redis-backed with in-memory fallback)', { rateLimitConfig });\n }\n\n /**\n * Setup body parsing middleware.\n *\n * IMPORTANT: PRE_REQUEST_TRANSFORM and RAW_REQUEST_STREAM controllers are\n * mounted before this middleware, so they never see body parsing.\n */\n private setupBodyParsing(httpConfig: RuntimeConfig['httpServerConfiguration']): void {\n // Capture the raw, unparsed request bytes into `req.rawBody` during JSON\n // parsing. Handlers that need the EXACT original payload — inbound webhook\n // HMAC signature verification (Stripe et al.), which must hash the\n // provider's literal bytes, not a re-serialized copy — read `req.rawBody`.\n //\n // This is express.json's canonical `verify` extension point: it runs\n // synchronously with a reference to the buffer express is about to parse,\n // so it adds no extra read and retains the buffer only for the request's\n // lifetime.\n //\n // WHY the single global parse point is the correct home (not per-route):\n // this global `express.json` runs BEFORE the main controllers registry\n // mounts (see `registerRoutes` → `MAIN_API_BASE_PATH`). It therefore always\n // parses the body and sets `req._body = true`, which turns any downstream\n // per-route `express.raw()` into a silent no-op. Non-streaming controllers\n // (e.g. the auto-registered webhook routes, which reach Express via the\n // master router — NOT a `RAW_REQUEST_STREAM` controller phase) can only\n // obtain byte-faithful bodies from this hook.\n //\n // PERF: retention is SCOPED to `rawBodyRequiredPrefixes` (webhooks only).\n // On every other route the raw buffer is not referenced, so it stays\n // GC-eligible the moment `JSON.parse` returns — normal API traffic pays\n // only a cheap `startsWith` check, never a retained copy of its own body.\n // Tight, prefix-scoped body cap for the OAuth credential/token endpoints + a translator that reports an\n // over-limit / malformed body as a clean 4xx instead of an INTERNAL 500. Registered BEFORE the global\n // parsers so its 32 KB limit governs `/oauth/*` (the scoped parser sets `req._body`, the global one then\n // skips the already-parsed body). Extracted for isolated testing — see `applyOAuthBodyCap` + its tests.\n applyOAuthBodyCap(this.app, MAIN_API_BASE_PATH);\n this.app.use(express.json({\n limit: httpConfig.bodyParserLimit,\n // Parse `application/json` AND any structured-syntax-suffix JSON media type\n // (RFC 6839 `+json`) — notably SCIM's mandated `application/scim+json`\n // (RFC 7644 §3.1). Without this, SCIM POST/PUT/PATCH bodies arrive unparsed\n // (`req.body` undefined) and the /scim/v2/* create/update handlers 500.\n type: ['application/json', 'application/*+json'],\n verify: (req, _res, buf) => {\n const url = (req as { url?: string }).url;\n if (url && this.rawBodyRequiredPrefixes.some((prefix) => url.startsWith(prefix))) {\n (req as unknown as Request).rawBody = buf;\n }\n },\n }));\n this.app.use(express.urlencoded({ extended: true, limit: httpConfig.urlEncodedLimit }));\n // Auth-hardening Slice A — `__wildo_refresh` `HttpOnly` cookie carries the\n // refresh token on `/api/v1/auth/*` routes. `cookie-parser` populates `req.cookies`\n // so `AuthControllerUtils.extractRefreshTokenFromCookie` can pick the cookie\n // up (post A-Step 6 the helper is cookie-only — no body fallback).\n // Cookie-parser is a no-op for routes that never read cookies, so mounting\n // it globally has no side-effects on non-auth controllers.\n this.app.use(cookieParser());\n\n this.logDebug('Body parsing middleware configured');\n }\n\n /**\n * Enter the request-scoped correlation ALS for every inbound request, wrapping the ENTIRE async\n * continuation (`runWithRequestContext(frame, () => next())`). Mounted first (after security headers)\n * so correlation is available to every downstream middleware, controller, service, and — critically —\n * the error handler, letting even un-threaded deep errors carry the correlation id.\n *\n * The frame reuses a SAFE inbound `x-correlation-id` (cross-service / cross-hop chaining) or mints a\n * fresh id, and captures the frontend surface (`x-frontend-service-name`). The per-request\n * `ExecutionContext` later adopts this frame's id (R13), so the EC, logs, and audit share one id.\n *\n * `x-client-instance-id` is simply forwarded: whether it is ADMITTED is decided by the ingest policy\n * installed via `setClientInstanceIdIngestPolicy` (see {@link installClientInstanceIdIngestPolicy}),\n * which every frame construction consults — so the opt-in holds for this seam, the WebSocket\n * handshake, and any future transport without each having to re-apply it.\n */\n private setupRequestContext(): void {\n this.app.use((req: Request, _res: Response, next: NextFunction) => {\n const frame = buildRequestContextFrame({\n inboundCorrelationId: req.get(WildoHeaderKeys.CORRELATION_ID),\n frontendServiceName: req.get(WildoHeaderKeys.FRONTEND_SERVICE_NAME),\n clientInstanceId: req.get(WildoHeaderKeys.CLIENT_INSTANCE_ID),\n });\n runWithRequestContext(frame, () => next());\n });\n }\n\n /**\n * Install the application's client-install ingest policy into the request-context chokepoint.\n *\n * Fail-closed by construction: an unresolved configuration, an absent `compliance` block, and an\n * explicit `DISABLED` all answer `false`, so the only way to admit the identifier is an application\n * that deliberately authored `SESSION` or `PERSISTENT`. The SCOPE (session vs persistent) governs\n * the CLIENT's storage lifetime, not the server's admission — either non-disabled value admits it.\n *\n * Passed as a closure (evaluated per request) rather than a snapshot boolean so a configuration\n * reload takes effect immediately and pre-configuration requests still fail closed.\n *\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — binds collection of the device-stored\n * client-install identifier to an explicit, application-authored policy; absent policy = no collection.\n */\n private installClientInstanceIdIngestPolicy(): void {\n setClientInstanceIdIngestPolicy(() => {\n // TOTAL by construction: this resolver runs on the request path, inside frame construction, so an\n // exception here would not merely mis-answer the policy — it would fail the REQUEST. (Proven, not\n // theoretical: an earlier revision dereferenced `appConfigService` directly and turned every\n // request into a 500 wherever that dependency was absent.) Any failure to determine the policy is\n // therefore answered `false`, which is also the correct privacy default: when in doubt, collect\n // nothing.\n try {\n if (!this.appConfigService?.isInitialized()) {\n return false;\n }\n const scope = this.appConfigService.config?.compliance?.clientInstanceIdScope;\n return scope !== undefined && scope !== ClientInstanceIdScope.DISABLED;\n } catch {\n return false;\n }\n });\n }\n\n /**\n * Setup request logging middleware\n * Skips logging successful health check requests to reduce noise\n */\n private setupRequestLogging(): void {\n this.app.use((req: Request, res: Response, next: NextFunction) => {\n const startTime = Date.now();\n\n res.on('finish', () => {\n // Skip logging successful health check requests (only log failures)\n const isHealthCheck = req.path === ENGINE_ROOT_ROUTES[EngineRootRouteKey.HEALTH_LIVENESS]\n || req.path === ENGINE_ROOT_ROUTES[EngineRootRouteKey.HEALTH_READINESS]\n || req.path === ENGINE_ROOT_ROUTES[EngineRootRouteKey.HEALTH_TIME];\n const isSuccessful = res.statusCode === 200;\n\n if (isHealthCheck && isSuccessful) {\n return; // Skip logging successful health checks\n }\n\n const duration = Date.now() - startTime;\n this.logDebug('HTTP Request', {\n method: req.method,\n path: req.path,\n statusCode: res.statusCode,\n duration: `${duration}ms`,\n userAgent: req.get(WildoHeaderKeys.USER_AGENT),\n ip: req.ip\n });\n });\n\n next();\n });\n }\n\n /**\n * Register all routes from controllers registry and custom controllers.\n *\n * Note: early-phase controllers are already mounted by setupExpressApp().\n * This method mounts only ordinary post-middleware controllers.\n */\n private async registerRoutes(): Promise<void> {\n // Mount health controller at root level (for Kubernetes probes)\n const healthBasePath = this.healthController.getCustomMountBasePath();\n this.app.use(healthBasePath, this.healthController.getRouter());\n this.logDebug('Health controller mounted at root level', { basePath: healthBasePath });\n\n // CRDT clock synchronization endpoint (root-level like health probes)\n this.app.get(ENGINE_ROOT_ROUTES[EngineRootRouteKey.HEALTH_TIME], (_req, res) => {\n const now = Date.now();\n res.setHeader('Cache-Control', 'no-store');\n res.setHeader(WildoHeaderKeys.X_SERVER_TIME, String(now));\n res.json({ serverTime: now });\n });\n\n // Mount the main controllers registry at the shared MAIN_API_BASE_PATH\n // (`/api/v1`). This is the single source of truth for the prefix — the\n // frontend HTTP client and the refresh-token cookie `Path` derive from\n // the same constant so the served auth routes and the cookie scope can\n // never drift apart (see MAIN_API_BASE_PATH / REFRESH_TOKEN_COOKIE_PATH).\n const mainRouter = this.controllersRegistry.getMasterRouter();\n this.app.use(MAIN_API_BASE_PATH, mainRouter);\n\n this.logDebug('Main controllers registry mounted', { basePath: MAIN_API_BASE_PATH });\n\n /**\n * RFC 8414 authorization-server metadata, at the location the RFC actually specifies.\n *\n * Our issuer carries a path (`https://<host>/api/v1`), and for a path-bearing issuer the\n * well-known segment goes BETWEEN the host and the path — not after it:\n *\n * \"If the issuer identifier value contains a path component, any terminating \"/\" MUST be\n * removed before inserting \"/.well-known/\" and the well-known URI suffix between the host\n * component and the path component.\"\n *\n * with the RFC's own example resolving issuer `https://example.com/issuer1` to\n * `GET /.well-known/oauth-authorization-server/issuer1`.\n * spec-cite: RFC 8414 § 3 (Obtaining Authorization Server Metadata), fetched 2026-08-11.\n *\n * The controller already serves the document at `<issuer>/.well-known/oauth-authorization-server`\n * — the OIDC Discovery convention (issuer + suffix), which is correct for\n * `/.well-known/openid-configuration` and WRONG for this one. So a client that followed RFC 8414\n * asked for `/.well-known/oauth-authorization-server/api/v1`, which is OUTSIDE the API mount, and\n * received the SPA shell: HTML where it expected JSON. It could not discover the authorization\n * server, so it never opened a login window — the failure looked like a silent no-op rather than a\n * 404, which is why it survived twelve lanes and two real-client sessions.\n *\n * Delegating to `mainRouter` rather than re-registering the handler keeps ONE implementation:\n * the document, its CORS posture and its cache headers cannot drift between the two locations.\n * The router is mounted at `MAIN_API_BASE_PATH`, so it matches on the path RELATIVE to that mount.\n */\n const rfc8414MetadataPath = rfc8414AuthorizationServerMetadataPath(MAIN_API_BASE_PATH);\n const mountRelativeMetadataPath = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.OAUTH_PROVIDER_AS_METADATA];\n this.app.get(rfc8414MetadataPath, (req, res, next) => {\n req.url = mountRelativeMetadataPath;\n mainRouter(req, res, next);\n });\n this.logDebug('RFC 8414 authorization-server metadata alias mounted', {\n rfc8414Path: rfc8414MetadataPath,\n servesSameDocumentAs: `${MAIN_API_BASE_PATH}${mountRelativeMetadataPath}`,\n });\n\n /**\n * RFC 9728 § 3 protected-resource metadata, at the location a client DERIVES from the resource\n * identifier — the same insertion rule as RFC 8414 above, applied to the MCP resource.\n *\n * Both MCP resource shapes are aliased, because the derivation follows the identifier and the\n * identifier grows a segment for a named instance\n * (`resolveResourceServerAudience(MCP, ref)` → `<apiAudience>/mcp/<ref>`):\n *\n * resource `<origin>/api/v1/mcp` → `/.well-known/oauth-protected-resource/api/v1/mcp`\n * resource `<origin>/api/v1/mcp/<ref>` → `/.well-known/oauth-protected-resource/api/v1/mcp/<ref>`\n *\n * Aliasing only the default would leave every NAMED instance underivable while looking fixed — the\n * shape of defect this codebase has now paid for repeatedly, so both are mounted together.\n *\n * Unlike the RFC 8414 case this closes a LATENT gap rather than a live outage: the 401 challenge\n * names `resource_metadata` explicitly and MCP directs clients to follow it, which is the route a\n * real client was observed taking. A deriving client — which RFC 9728 § 5.1 equally permits — was\n * receiving the SPA shell.\n * spec-cite: RFC 9728 § 3 (Protected Resource Metadata Request), fetched 2026-08-12.\n *\n * Delegation to `mainRouter` is the same trick and for the same reason: one handler, so the\n * document, its `resource`, its cache headers and its 404-on-unknown-instance behaviour cannot\n * drift between the derived and the advertised location.\n */\n const mcpMountPath = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.MCP_ENDPOINT];\n const mountRelativePrmPath = MANUAL_CONTROLLER_ROUTES_URLS[ManualControllerRouteKey.MCP_PROTECTED_RESOURCE_METADATA];\n const rfc9728DefaultPath = rfc9728ProtectedResourceMetadataPath(`${MAIN_API_BASE_PATH}${mcpMountPath}`);\n this.app.get(rfc9728DefaultPath, (req, res, next) => {\n req.url = mountRelativePrmPath;\n mainRouter(req, res, next);\n });\n this.app.get(`${rfc9728DefaultPath}/:instanceRef`, (req, res, next) => {\n // Re-enter through the router's OWN named-instance route so `:instanceRef` is parsed, validated\n // and 404'd by the one handler that knows the instance registry — never resolved here.\n req.url = `${mcpMountPath}/${encodeURIComponent(req.params['instanceRef'] ?? '')}${mountRelativePrmPath}`;\n mainRouter(req, res, next);\n });\n this.logDebug('RFC 9728 protected-resource metadata aliases mounted', {\n rfc9728DefaultPath,\n rfc9728InstancePath: `${rfc9728DefaultPath}/:instanceRef`,\n servesSameDocumentAs: `${MAIN_API_BASE_PATH}${mountRelativePrmPath}`,\n });\n\n // Mount ordinary custom controllers (early phases are already mounted).\n let standardControllerCount = 0;\n this.customControllers.forEach((controller) => {\n if (controller.getCustomControllerMountPhase() === CustomControllerMountPhase.STANDARD) {\n this.mountCustomController(controller);\n standardControllerCount++;\n }\n });\n\n this.logDebug('Routes registration completed', {\n totalCustomControllers: this.customControllers.size,\n standardControllers: standardControllerCount\n });\n }\n\n /**\n * Mount a custom controller\n */\n private mountCustomController(controller: AbstractControllerBackendService): void {\n const controllerName = controller.getControllerName();\n const router = controller.getRouter();\n const basePath = this.getControllerBasePath(controller);\n\n this.app.use(basePath, router);\n\n this.logDebug('Custom controller mounted', {\n controllerName,\n basePath,\n mountPhase: controller.getCustomControllerMountPhase()\n });\n }\n\n /**\n * Get the base path for a controller.\n * Uses custom path if provided, otherwise falls back to /api/custom/<kebab-case-name>\n */\n private getControllerBasePath(controller: AbstractControllerBackendService): string {\n const maybeCustomBasePath = (controller as any)?.getCustomMountBasePath?.();\n return typeof maybeCustomBasePath === 'string' && maybeCustomBasePath.startsWith('/')\n ? maybeCustomBasePath\n : `/api/custom/${this.kebabCase(controller.getControllerName())}`;\n }\n\n /**\n * Setup error handling middleware\n */\n private setupErrorHandling(): void {\n // 404 handler\n this.app.use((req: Request, res: Response, next: NextFunction) => {\n res.status(404).json({\n error: {\n message: 'Route not found',\n path: req.originalUrl,\n method: req.method,\n timestamp: new Date().toISOString()\n }\n });\n });\n\n // Global error handler - use ErrorHandlerService for proper error responses\n this.app.use(this.errorHandler.expressErrorHandler());\n\n this.logDebug('Error handling middleware configured');\n }\n\n /**\n * Start the HTTP server\n */\n private async startServer(): Promise<void> {\n return new Promise(async (resolve, reject) => {\n try {\n const appConfig = this.appConfigService.config;\n\n // Build server base URL from endpoint string, with env overrides\n let endpointString: string | undefined = undefined;\n const svcName = this.appConfigService.serviceName;\n\n if (svcName) {\n endpointString = (appConfig as any)?.runtime?.endPoints?.[svcName]?.internalUrl;\n }\n\n let urlProtocol: 'http:' | 'https:' = 'http:';\n let host = 'localhost';\n let port = 4000;\n\n try {\n const urlString = endpointString && endpointString.includes('://')\n ? endpointString\n : `http://${endpointString || 'localhost:4000'}`;\n const url = new URL(urlString);\n urlProtocol = (url.protocol === 'https:' ? 'https:' : 'http:');\n host = url.hostname || host;\n if (url.port) {\n port = parseInt(url.port, 10);\n } else if (url.protocol === 'https:') {\n port = 443;\n } else if (url.protocol === 'http:') {\n port = 80;\n }\n } catch {}\n\n if (process.env.HOST) host = process.env.HOST;\n if (process.env.PORT) port = parseInt(process.env.PORT, 10);\n\n this.baseUrl = `${urlProtocol}//${host}:${port}`;\n\n // Configure server options\n this.app.set('port', port);\n\n // Set server timeouts (before starting server)\n const runtimeConfig = this.extractRuntimeConfig(appConfig);\n const httpConfig = runtimeConfig.httpServerConfiguration;\n\n // Start listening\n this.server = this.app.listen(port, host, async () => {\n try {\n // Set server timeouts after server is created\n this.server!.timeout = httpConfig.requestTimeout;\n this.server!.keepAliveTimeout = httpConfig.keepAliveTimeout;\n this.server!.headersTimeout = httpConfig.headersTimeout;\n\n if (httpConfig.maxConnections) {\n this.server!.maxConnections = httpConfig.maxConnections;\n }\n\n this.logDebug('🌐 HTTP Server started successfully', {\n environment: process.env.APPLICATION_ENV || process.env.NODE_ENV || 'development',\n url: this.baseUrl\n });\n\n // Initialize WebSocket service AFTER server is ready\n // Skip for platform microservices that don't need real-time browser connections\n if (this.initOptions.skipWebSocket) {\n this.logDebug('WebSocket initialization skipped (platform service mode)');\n } else {\n // Note: CORS origins are derived internally by WebSocketService.getCorsOrigins()\n await this.webSocketService.initialize(this.server!);\n this.logDebug('WebSocket service initialized');\n }\n\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n\n // Handle server errors\n this.server.on('error', (error: any) => {\n if (error.code === 'EADDRINUSE') {\n const message = `Port ${port} is already in use`;\n this.logger.error(message);\n reject(new Error(message));\n } else {\n this.logger.error('HTTP Server error:', error);\n reject(error);\n }\n });\n\n } catch (error) {\n reject(error);\n }\n });\n }\n\n\n // ================================\n // Utility Methods\n // ================================\n\n /**\n * Parse CSP string into helmet format\n */\n private parseCSP(csp: string): Record<string, string[]> {\n // Simple CSP parser - can be enhanced as needed\n const directives: Record<string, string[]> = {};\n\n csp.split(';').forEach(directive => {\n const [key, ...values] = directive.trim().split(' ');\n if (key && values.length > 0) {\n directives[key.replace(/-([a-z])/g, (g) => g[1].toUpperCase())] = values;\n }\n });\n\n return directives;\n }\n\n /**\n * Convert string to kebab case\n */\n private kebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/[\\s_]+/g, '-')\n .toLowerCase();\n }\n\n}\n"]}
@@ -23,6 +23,9 @@ import { FeatureDefinitionRegistryBackendService } from '../../features/services
23
23
  import { MilestoneDefinitionRegistryBackendService } from '../../guidance/services/milestone-definition-registry.backend.service';
24
24
  import { MilestoneConditionRegistryBackendService } from '../../guidance/services/milestone-condition-registry.backend.service';
25
25
  import type { MilestoneConditionFn } from '../../guidance/services/milestone-condition-registry.backend.service';
26
+ import type { ValueMomentAchievementHandler } from '../../monitoring/analytics/services/value-moment-handler-registry.backend.service';
27
+ import type { ValueMomentHandlerRegistryBackendService } from '../../monitoring/analytics/services/value-moment-handler-registry.backend.service';
28
+ import type { ValueMomentDefinitionRegistryBackendService } from '../../monitoring/analytics/services/value-moment-definition-registry.backend.service';
26
29
  import { LifecycleEvaluatorBackendService } from '../../guidance/services/lifecycle-evaluator.backend.service';
27
30
  import { FlowsActorsRegistryService } from '../../flows-actors/services/flows-actors-registry.service';
28
31
  import { ResourceServerInstancesRegistryBackendService } from '../../mcp/services/resource-server-instances-registry.backend.service';
@@ -148,6 +151,19 @@ export interface ApplicationInitializationConfig {
148
151
  ref: string;
149
152
  fn: MilestoneConditionFn;
150
153
  }>;
154
+ /**
155
+ * Backend handlers a value moment's `onAchieved.backendHandler` can name.
156
+ *
157
+ * `ValueMomentHandlerRegistryBackendService` existed, was bound, and was injected into the
158
+ * engine — and NOTHING could call `registerHandler`, so the per-moment callback surface was
159
+ * unreachable by construction (#414). This is that path, shaped like
160
+ * `customMilestoneConditions` beside it because it answers the same question: a declaration
161
+ * names a function by ref, and the application supplies the function.
162
+ */
163
+ valueMomentHandlers?: Array<{
164
+ ref: string;
165
+ fn: ValueMomentAchievementHandler;
166
+ }>;
151
167
  productDefinitions?: ProductDefinition[];
152
168
  emailTemplateDefinitions?: EmailTemplateDefinitionsMap;
153
169
  /** Generated provider topology module imported by the application package. */
@@ -280,6 +296,8 @@ export declare class StartApplicationBackendService {
280
296
  protected readonly featureDefinitionRegistryService: FeatureDefinitionRegistryBackendService;
281
297
  protected readonly milestoneDefinitionRegistry: MilestoneDefinitionRegistryBackendService;
282
298
  protected readonly milestoneConditionRegistry: MilestoneConditionRegistryBackendService;
299
+ protected readonly valueMomentHandlerRegistry: ValueMomentHandlerRegistryBackendService;
300
+ protected readonly valueMomentDefinitionRegistry: ValueMomentDefinitionRegistryBackendService;
283
301
  protected readonly lifecycleEvaluator: LifecycleEvaluatorBackendService;
284
302
  protected readonly flowsActorsRegistryService: FlowsActorsRegistryService;
285
303
  protected readonly resourceServerInstancesRegistry: ResourceServerInstancesRegistryBackendService;
@@ -305,7 +323,7 @@ export declare class StartApplicationBackendService {
305
323
  protected logDebug: (message: string, context?: Record<string, unknown>) => void;
306
324
  protected isInitialized: boolean;
307
325
  private isPlatformMode;
308
- constructor(logger: LoggerService, appConfigService: AppConfigurationService, applicationStartupConfigValidator: ApplicationStartupConfigValidatorService, resourcesRegistryService: ResourcesRegistryBackendService, repositoriesRegistryService: RepositoriesRegistryHandlerBackendService, servicesRegistryService: ServicesRegistryHandlerBackendService, controllersRegistryService: ControllersRegistryHandlerBackendService, httpServerService: HttpServerBackendService, errorBuilder: ErrorBuilderBackendService, errorHandler: ErrorHandlerService, authorizationsService: AuthorizationsBackendService, batchesExecutor: BatchesCronjobsExecutor_BackendService, executionContextCreatorBackendService: ExecutionContextCreatorBackendService, customImplRegistry: ResourceOperationCustomImplementationRegistryBackendService, mongoDBService: MongoDBService, redisService: RedisService, i18nService: I18nBackendService, backendProviderRegistryService: BackendProviderRegistryBackendService, externalProvidersRegistryService: ExternalProvidersRegistryBackendService, featureDefinitionRegistryService: FeatureDefinitionRegistryBackendService, milestoneDefinitionRegistry: MilestoneDefinitionRegistryBackendService, milestoneConditionRegistry: MilestoneConditionRegistryBackendService, lifecycleEvaluator: LifecycleEvaluatorBackendService, flowsActorsRegistryService: FlowsActorsRegistryService, resourceServerInstancesRegistry: ResourceServerInstancesRegistryBackendService, queueWorkerInitializer: QueueWorkerInitializerBackendService, cronJobSyncService: CronJobSyncBackendService, chartRegistryService: ChartRegistryBackendService, guidanceTriggerEvaluator: GuidanceTriggerEvaluatorBackendService, emailTemplateRegistryService: EmailTemplateRegistryBackendService, pdfTemplateBindingService: PdfTemplateBindingBackendService, fileStorageRouter: FileStorageRouterBackendService, dataSeedRegistryService: DataSeedRegistryBackendService, dataSeedDispatcherService: DataSeedDispatcherBackendService, dataSeedScopeResolverRegistryService: DataSeedScopeResolverRegistryBackendService, observabilityBackendService?: ObservabilityBackendService, auditLogsService?: AuditLogsBackendService, authExecutionContextFactory?: AuthExecutionContextFactoryBackendService);
326
+ constructor(logger: LoggerService, appConfigService: AppConfigurationService, applicationStartupConfigValidator: ApplicationStartupConfigValidatorService, resourcesRegistryService: ResourcesRegistryBackendService, repositoriesRegistryService: RepositoriesRegistryHandlerBackendService, servicesRegistryService: ServicesRegistryHandlerBackendService, controllersRegistryService: ControllersRegistryHandlerBackendService, httpServerService: HttpServerBackendService, errorBuilder: ErrorBuilderBackendService, errorHandler: ErrorHandlerService, authorizationsService: AuthorizationsBackendService, batchesExecutor: BatchesCronjobsExecutor_BackendService, executionContextCreatorBackendService: ExecutionContextCreatorBackendService, customImplRegistry: ResourceOperationCustomImplementationRegistryBackendService, mongoDBService: MongoDBService, redisService: RedisService, i18nService: I18nBackendService, backendProviderRegistryService: BackendProviderRegistryBackendService, externalProvidersRegistryService: ExternalProvidersRegistryBackendService, featureDefinitionRegistryService: FeatureDefinitionRegistryBackendService, milestoneDefinitionRegistry: MilestoneDefinitionRegistryBackendService, milestoneConditionRegistry: MilestoneConditionRegistryBackendService, valueMomentHandlerRegistry: ValueMomentHandlerRegistryBackendService, valueMomentDefinitionRegistry: ValueMomentDefinitionRegistryBackendService, lifecycleEvaluator: LifecycleEvaluatorBackendService, flowsActorsRegistryService: FlowsActorsRegistryService, resourceServerInstancesRegistry: ResourceServerInstancesRegistryBackendService, queueWorkerInitializer: QueueWorkerInitializerBackendService, cronJobSyncService: CronJobSyncBackendService, chartRegistryService: ChartRegistryBackendService, guidanceTriggerEvaluator: GuidanceTriggerEvaluatorBackendService, emailTemplateRegistryService: EmailTemplateRegistryBackendService, pdfTemplateBindingService: PdfTemplateBindingBackendService, fileStorageRouter: FileStorageRouterBackendService, dataSeedRegistryService: DataSeedRegistryBackendService, dataSeedDispatcherService: DataSeedDispatcherBackendService, dataSeedScopeResolverRegistryService: DataSeedScopeResolverRegistryBackendService, observabilityBackendService?: ObservabilityBackendService, auditLogsService?: AuditLogsBackendService, authExecutionContextFactory?: AuthExecutionContextFactoryBackendService);
309
327
  /**
310
328
  * Initialize the backend application with a structured configuration object.
311
329
  */
@@ -1 +1 @@
1
- {"version":3,"file":"start-application.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/services/start-application.backend.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start-application.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/services/start-application.backend.service.ts"],"names":[],"mappings":"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"}