@wildo-ai/saas-backend-lib 1.1.1 → 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 (972) 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 +14 -3
  20. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  21. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +138 -24
  22. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  23. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts +3 -1
  24. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js +8 -3
  26. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  27. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts +11 -0
  28. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  29. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js +11 -2
  30. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js.map +1 -1
  31. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  32. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
  34. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  36. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +48 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +102 -30
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js +16 -0
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts +20 -6
  55. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +96 -32
  57. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  58. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts +3 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js +32 -7
  61. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts +8 -5
  63. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.js.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +80 -0
  66. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +298 -23
  68. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts +71 -1
  70. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +85 -5
  72. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +21 -0
  74. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  75. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +146 -4
  76. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  77. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  78. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  80. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts +3 -26
  81. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js +3 -68
  83. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  86. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  88. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  90. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  91. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  92. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +533 -43
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  95. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  96. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  100. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  105. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  106. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  107. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  108. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  109. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  110. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  113. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
  114. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  115. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  116. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  118. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  119. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  121. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  122. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  123. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  124. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  125. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  126. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  127. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  128. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  129. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  130. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  131. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +54 -13
  133. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
  135. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
  137. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  139. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  140. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  141. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  142. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  143. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  144. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  145. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  146. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  148. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  149. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
  150. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  151. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
  152. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  153. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  154. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  155. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  156. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  157. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  158. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  159. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
  160. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  161. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  162. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  163. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  164. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  165. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  166. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +263 -13
  168. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +376 -58
  170. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +264 -7
  172. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +414 -5
  174. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  177. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +16 -0
  179. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -0
  180. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +140 -0
  181. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -0
  182. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  183. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +65 -6
  185. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  186. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  187. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  188. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  189. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  190. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  191. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +45 -0
  192. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  194. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  196. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  197. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  198. package/dist/esm/config/custom/application-config-controller.backend.service.js +7 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.js.map +1 -1
  200. package/dist/esm/config/models/app-config.backend.schemas.d.ts +146 -46
  201. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  203. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  204. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  205. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  207. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  208. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  209. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  210. package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
  211. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  212. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  213. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  214. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  215. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +43 -1
  216. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration.backend.utils.js +52 -3
  218. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  219. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
  220. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  221. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
  222. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  223. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts +2 -2
  224. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js +2 -2
  225. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js.map +1 -1
  226. package/dist/esm/databases/models/filter.backend.schemas.js +2 -2
  227. package/dist/esm/databases/models/filter.backend.schemas.js.map +1 -1
  228. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  229. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js +20 -1
  230. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js.map +1 -1
  231. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  232. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  233. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  234. package/dist/esm/databases/services/redis.service.d.ts +27 -0
  235. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  236. package/dist/esm/databases/services/redis.service.js +29 -0
  237. package/dist/esm/databases/services/redis.service.js.map +1 -1
  238. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  239. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  240. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  241. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  242. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  243. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  244. package/dist/esm/errors/services/error-handler.backend.service.js +134 -8
  245. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  246. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  247. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  248. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  249. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  250. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  251. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  252. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  253. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  254. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  255. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  256. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  257. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  258. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts +41 -0
  259. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -0
  260. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js +40 -0
  261. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js.map +1 -0
  262. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts +64 -0
  263. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -0
  264. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js +193 -0
  265. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js.map +1 -0
  266. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +72 -4
  267. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  268. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +60 -19
  269. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  270. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  271. package/dist/esm/external-data/external-data-transform.backend.js +7 -1
  272. package/dist/esm/external-data/external-data-transform.backend.js.map +1 -1
  273. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts +2 -0
  274. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  275. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js +13 -0
  276. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js.map +1 -1
  277. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  278. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  279. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  280. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
  281. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  282. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
  283. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  284. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  285. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  286. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  287. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  288. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  289. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  290. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
  291. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  292. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  293. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  294. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  295. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  296. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  297. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  298. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  299. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  300. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  301. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  302. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  303. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  304. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  305. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  306. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  307. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  308. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  309. package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
  310. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  311. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  313. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  314. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +306 -7
  315. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  316. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +539 -45
  317. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  318. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  319. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
  320. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  321. package/dist/esm/files/controllers/file.controller.d.ts +24 -1
  322. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  323. package/dist/esm/files/controllers/file.controller.js +83 -11
  324. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  325. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts +17 -0
  326. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -0
  327. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js +1 -0
  328. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -0
  329. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +5 -1
  330. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  331. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +76 -13
  332. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  333. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts +18 -0
  334. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  335. package/dist/esm/files/services/file-operation-handler.backend.service.js +36 -28
  336. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  337. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  338. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  339. package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
  340. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  341. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  342. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  343. package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
  344. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  345. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +214 -0
  346. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -0
  347. package/dist/esm/files/services/file-upload-grant.backend.service.js +566 -0
  348. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -0
  349. package/dist/esm/files/services/files.backend.service.d.ts +87 -0
  350. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  351. package/dist/esm/files/services/files.backend.service.js +252 -19
  352. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  353. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  354. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  355. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  356. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  357. package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
  358. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  359. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  360. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  361. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  363. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  364. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  365. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  366. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  367. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  368. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  369. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  370. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  371. package/dist/esm/files/utils/file-uploader.utils.js +12 -0
  372. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  373. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  374. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  375. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  376. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  377. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  378. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  379. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  380. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  381. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  382. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  383. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  384. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  385. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  386. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  387. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  388. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  389. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  390. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +200 -44
  391. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  392. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  393. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  394. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  395. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  396. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  397. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  398. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  399. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  400. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  401. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  402. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  403. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  404. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  405. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  406. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  407. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  408. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  409. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  410. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  411. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  412. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  413. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  414. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
  415. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  416. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
  417. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  418. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  419. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  420. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  421. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  422. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  423. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  424. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  425. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  426. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  427. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  428. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +107 -1
  429. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  430. package/dist/esm/flows-actors/services/agents.backend.service.js +519 -56
  431. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  432. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
  433. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
  435. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  437. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  439. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  440. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  442. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  443. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  444. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  445. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  446. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  447. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  448. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
  449. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  450. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  451. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  452. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  453. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts +151 -41
  455. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +308 -143
  457. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  458. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  459. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  461. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  462. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  464. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  465. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  466. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  467. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  468. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  469. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  470. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  471. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  472. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  473. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  474. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  475. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  476. package/dist/esm/index.d.ts +15 -5
  477. package/dist/esm/index.d.ts.map +1 -1
  478. package/dist/esm/index.js +45 -5
  479. package/dist/esm/index.js.map +1 -1
  480. package/dist/esm/inject/models/container.d.ts.map +1 -1
  481. package/dist/esm/inject/models/container.js +82 -10
  482. package/dist/esm/inject/models/container.js.map +1 -1
  483. package/dist/esm/inject/models/service-types.d.ts +20 -3
  484. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  485. package/dist/esm/inject/models/service-types.js +21 -3
  486. package/dist/esm/inject/models/service-types.js.map +1 -1
  487. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  488. package/dist/esm/mcp/controllers/mcp.controller.js +32 -4
  489. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  490. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts +34 -0
  491. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  492. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js +42 -0
  493. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  494. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +84 -1
  495. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  496. package/dist/esm/mcp/services/mcp-server.backend.service.js +235 -11
  497. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  498. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts +64 -2
  499. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  500. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +152 -6
  501. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  502. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  503. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  504. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  505. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  506. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  507. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  508. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  509. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  510. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  511. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  512. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  513. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  514. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  515. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  516. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  517. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  518. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  519. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  520. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  521. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  522. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  523. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  524. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  525. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  526. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  527. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  528. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
  529. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  530. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
  531. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  532. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  533. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  534. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  535. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  536. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  537. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  538. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  539. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  540. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  541. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  542. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  543. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  544. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  545. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  546. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  547. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  548. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  549. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  550. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  551. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  552. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  553. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  554. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  555. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  556. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  557. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  558. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
  559. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  560. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  561. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  562. package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
  563. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  564. package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
  565. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  566. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  567. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  568. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  569. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  570. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  571. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  572. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  573. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +108 -13
  574. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  575. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +432 -101
  576. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  577. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
  578. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  579. package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
  580. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  581. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  582. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  583. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  584. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  585. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  586. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  587. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +54 -7
  588. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  589. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts +5 -5
  590. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  591. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js +14 -13
  592. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js.map +1 -1
  593. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts +2 -1
  594. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  595. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +18 -8
  596. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  597. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +20 -18
  599. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  600. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  601. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  602. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  603. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  604. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  605. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  606. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  607. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  608. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  609. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  610. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  611. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js +4 -1
  612. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js.map +1 -1
  613. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  614. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  615. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  616. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  617. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  618. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  619. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  620. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  621. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  622. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  623. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  624. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  625. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  626. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  627. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  628. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  629. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  630. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  631. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  632. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  633. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  634. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  635. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  636. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  637. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  638. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  639. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  640. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  641. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  642. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  643. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  644. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  645. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  646. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  647. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  648. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  649. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  650. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  651. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  652. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  653. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  654. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  655. package/dist/esm/queue/queue.backend.service.js +26 -4
  656. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  657. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  658. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  659. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  660. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  661. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  662. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  663. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  664. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  665. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  666. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  667. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  668. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  669. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  670. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  671. package/dist/esm/requests/service/websocket.service.js +88 -15
  672. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  673. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  674. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
  675. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  676. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  677. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  678. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  679. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  680. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  681. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  682. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  683. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  684. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  685. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  686. package/dist/esm/resources/services/resource-id.backend.service.js +3 -3
  687. package/dist/esm/resources/services/resource-id.backend.service.js.map +1 -1
  688. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
  689. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  690. package/dist/esm/resources/services/resources-registry.backend.service.js +91 -7
  691. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  692. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  693. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  694. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  695. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  696. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  697. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  698. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  699. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  700. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  701. package/dist/esm/runtime/services/execution-context-creator.backend.service.js +13 -7
  702. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  703. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  704. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  705. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  706. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  707. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  708. package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
  709. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  710. package/dist/esm/runtime/services/start-application.backend.service.d.ts +47 -1
  711. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  712. package/dist/esm/runtime/services/start-application.backend.service.js +343 -77
  713. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  714. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  715. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  716. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  717. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  718. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  719. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  720. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  721. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  722. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  723. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
  724. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  725. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  726. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  727. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  728. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  729. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  730. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  731. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  732. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  733. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts +3 -23
  734. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  735. package/dist/esm/security/authentications/models/jwt.backend.schemas.js +20 -45
  736. package/dist/esm/security/authentications/models/jwt.backend.schemas.js.map +1 -1
  737. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  738. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  739. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  740. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  741. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  742. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  743. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  744. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  745. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  746. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  747. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  748. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  749. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  750. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  751. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  752. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  753. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  754. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  755. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  756. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
  757. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  758. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
  759. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  760. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts +9 -1
  761. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  762. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +77 -2
  763. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  764. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  765. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js +5 -3
  766. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js.map +1 -1
  767. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  768. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  769. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  770. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  771. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  772. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
  773. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  774. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  775. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
  776. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  777. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  778. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  780. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  781. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +41 -1
  782. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +87 -4
  784. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  786. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  787. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  788. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  789. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  790. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  792. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  793. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  794. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  795. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  796. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  797. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  798. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
  799. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  800. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  801. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  803. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  804. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  805. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  807. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  808. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  809. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  811. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  814. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  815. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  816. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  817. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  819. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  820. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  821. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  822. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  823. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  824. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  825. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  826. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  827. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  828. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  829. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  830. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  831. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js +24 -1
  832. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js.map +1 -1
  833. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  834. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  835. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  836. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  837. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  838. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
  839. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  840. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts +117 -0
  841. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -0
  842. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js +104 -0
  843. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js.map +1 -0
  844. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  845. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  846. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  847. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  848. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
  849. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  850. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
  851. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  852. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
  853. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  854. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
  855. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  856. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +175 -14
  857. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +385 -49
  859. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  860. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  861. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  862. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  863. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  864. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  865. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  866. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  867. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  868. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
  869. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  870. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
  871. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  872. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
  873. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  874. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  875. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  876. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  877. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  878. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  879. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  880. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
  881. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  882. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
  883. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  884. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  885. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  886. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  887. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  888. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  889. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  890. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
  891. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  892. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
  893. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  894. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
  895. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  896. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  897. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  898. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  899. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  900. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
  901. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  902. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
  903. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  904. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  905. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  906. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  907. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  908. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
  909. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  910. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  911. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  912. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  913. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  914. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  915. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  916. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  917. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  918. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  919. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  920. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts +18 -1
  921. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  922. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js +110 -74
  923. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js.map +1 -1
  924. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts +22 -0
  925. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -0
  926. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js +22 -0
  927. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js.map +1 -0
  928. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts +17 -3
  929. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  930. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js +12 -0
  931. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js.map +1 -1
  932. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +41 -3
  933. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  934. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +83 -20
  935. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  936. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  937. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  938. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  939. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  940. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  941. package/dist/esm/security/jwt/services/jwt.backend.service.js +1 -18
  942. package/dist/esm/security/jwt/services/jwt.backend.service.js.map +1 -1
  943. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  944. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  945. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  946. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  947. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  948. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  949. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  950. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  951. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  952. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  953. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  954. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  955. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  956. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  957. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  958. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  959. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  960. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  961. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  962. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  963. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  964. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  965. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  966. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  967. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  968. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  969. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  970. package/dist/tsconfig.build.tsbuildinfo +1 -1
  971. package/package.json +17 -9
  972. package/dist/esm/.builder.pid +0 -9
@@ -0,0 +1,385 @@
1
+ /**
2
+ * # The seam every FIRE-AND-FORGET audit observation goes through — and the loss signal behind it
3
+ *
4
+ * assurance-control: WILDO.AUDIT.SECURITY_EVENT — a lost security observation is DETECTABLE, so a
5
+ * period with no recorded operator crossings is distinguishable from a period with a broken sink.
6
+ *
7
+ * ## The gap this closes, stated precisely
8
+ *
9
+ * A handful of security observations — an operator crossing a tenant boundary, an authorization
10
+ * refusal, a platform-access grant transition, a directory read — are emitted WITHOUT `await`, with
11
+ * the audit service FEATURE-DETECTED and the returned promise's rejection SWALLOWED. Every one of
12
+ * those three properties is deliberate and must survive: **an observation must never be able to fail
13
+ * the request it observes.** A fail-closed variant would hand anyone a way to disable operator
14
+ * support, or to convert a correct 403 into a 500, by breaking the audit sink.
15
+ *
16
+ * What was missing is not a refusal — it is a COUNT. With nothing recording the drops, an operator
17
+ * reading the trail cannot tell "no operator crossed a tenant boundary this week" from "the audit
18
+ * service has been unbound since Tuesday". Those two readings of the same empty result are what make
19
+ * the evidence worthless, and it is the same shape as
20
+ * `.claude/rules/negative-results-require-a-positive-probe.md`: an empty result is evidence about the
21
+ * pipeline, never about the world.
22
+ *
23
+ * ## What the existing control does NOT cover — measured 2026-09-09
24
+ *
25
+ * Three call sites carried the claim that *"detection of a lost row is the audit pipeline's own
26
+ * control (`audit_store_failure_total`), not this gate's"*. That claim is **true for one loss shape
27
+ * and false for the three that matter here.** `AuditLogsBackendService._createAuditLog` catches its
28
+ * Layer-1 store write and increments `audit_store_failure_total` — so a store that is DOWN while the
29
+ * service is bound and reachable is already counted. But that counter is inside a method the
30
+ * observer may never reach:
31
+ *
32
+ * | Loss shape | Reaches `_createAuditLog`? | Counted before this seam |
33
+ * |---|---|---|
34
+ * | {@link AuditObservationLossReason.SERVICE_UNAVAILABLE} — the audit service is unbound, or the `log*` method is absent (a partial DI binding, a host binding an older audit service) | no | **nothing at all** |
35
+ * | {@link AuditObservationLossReason.EMISSION_THREW} — the call threw synchronously | no | **nothing at all** |
36
+ * | {@link AuditObservationLossReason.EMISSION_REJECTED} — the returned promise rejected | partially | **nothing at all** at the observer |
37
+ * | the Layer-1 store write itself failed | yes | `audit_store_failure_total` (unchanged, and still the right control for that shape) |
38
+ *
39
+ * So this seam counts the OBSERVER-side drop — the case where the audit pipeline never learned there
40
+ * was anything to record — and leaves the pipeline's own control alone. The two are complementary,
41
+ * not duplicates, and a reviewer needs both: one says "we tried and the store refused", the other
42
+ * says "we never got as far as trying".
43
+ *
44
+ * ## Why a METRIC and a LOG, and not an audit row
45
+ *
46
+ * The loss signal must survive the audit store being down, so it cannot BE the audit store —
47
+ * recording "the audit store was unreachable" in the audit store is the circularity that makes the
48
+ * whole thing worthless. Two channels, deliberately, because neither alone is sufficient:
49
+ *
50
+ * - **`audit_observation_dropped_total`** (via {@link MetricsService.recordAuditObservationDropped})
51
+ * is the RATE signal, and it is the durable one: the OTLP reader exports it periodically to the
52
+ * metrics backend, so its value outlives the process and aggregates across instances. Without the
53
+ * OTLP preload wired the global meter is a no-op and this channel is silently inert — which is
54
+ * precisely why it is not the only channel.
55
+ * - **One rate-limited `error` log line** is the always-available channel and the WAKE-UP. It fires
56
+ * at most once per {@link LOSS_LOG_INTERVAL_MS} per `(observation, reason)` pair, so a service
57
+ * that has been unbound since boot produces one line rather than one per request. Unthrottled it
58
+ * would flood, and a channel that floods is a channel operators filter out — which would leave the
59
+ * signal technically present and practically absent.
60
+ *
61
+ * ## The process-local accumulator, argued rather than assumed
62
+ *
63
+ * {@link readAuditObservationLossTotals} is per-process and is **lost on restart**. That is stated
64
+ * here rather than glossed, because a reader could otherwise take it for durable evidence:
65
+ *
66
+ * - It is **not** the evidence. It is a test seam and a door for a future health surface. The
67
+ * durable record is the exported counter (metrics backend) plus the log line (log store).
68
+ * - Per-instance is the correct granularity for the LOG channel anyway — "which replica lost
69
+ * evidence" is part of the answer — and the metrics backend does the cross-instance aggregation
70
+ * that a process-local number never could.
71
+ * - Rejected: a durable row for each loss. It is I/O on the observation path, it can fail the
72
+ * request the whole design forbids failing, and it introduces a second store that can itself be
73
+ * down. Rejected: a dedicated health endpoint. Still per-instance, adds a surface, and gives an
74
+ * operator nothing the counter does not already give them.
75
+ *
76
+ * ## Why this is a SEAM and not a helper each site copies
77
+ *
78
+ * `.claude/rules/invariant-call-site-enumeration.md` — the invariant here ("a dropped observation is
79
+ * counted") holds at every fire-and-forget security observation in the package, spread across six
80
+ * subtrees, and the recurring defect in this repository is exactly the invariant applied at one of
81
+ * them. Routing every site through one function makes the counting structural rather than
82
+ * remembered: a new fire-and-forget observation that uses this seam is counted the day it lands,
83
+ * with no author having to know this mechanism exists.
84
+ *
85
+ * **Do not quote a call-site count from this file.** An earlier revision named one ("EIGHT call
86
+ * sites"), and the very next adoption pass made it wrong — a number in prose is one a reader has to
87
+ * re-measure before believing, which is worse than no number. Measure it:
88
+ *
89
+ * ```bash
90
+ * command grep -rn "emitAuditObservation(\|recordAuditObservationLoss(" engine/saas-backend-lib/src \
91
+ * | grep -v __tests__ | grep -v audit-observation-emission.backend.ts
92
+ * ```
93
+ */
94
+ /**
95
+ * WHICH security observation was lost.
96
+ *
97
+ * A closed vocabulary with one named runtime source, per `CLAUDE.md` — the member is what a reviewer
98
+ * reads off the alert, so it has to carry its own explanation rather than being a bare string at
99
+ * every call site. It is also the metric's `observation` label: bounded, low cardinality, and stable
100
+ * across renames of the emitting method.
101
+ *
102
+ * ## A member names the EVIDENCE, never the emitter
103
+ *
104
+ * Two members of this enum are emitted from more than one place, and that is the design rather than
105
+ * an omission. `CROSS_TENANT_ADMINISTRATIVE_ACCESS` is raised by the per-instance tenant gate AND by
106
+ * the APPLICATION-scoped collection read; `HTTP_API_READ_THROUGH_ACCESS` by the per-read adapter AND
107
+ * by the per-run ETL pipeline. Splitting either by emitter would make the one question an operator
108
+ * actually asks — *how much cross-tenant evidence did we lose?* — a sum over labels, and a sum
109
+ * somebody has to remember to widen is a sum that goes quietly wrong the day a third emitter lands.
110
+ * WHICH door dropped it is carried by the log line's `context`, which is the channel with room for
111
+ * it; the metric carries the rate, which is the thing that has to aggregate.
112
+ *
113
+ * The corollary: when you add an emitter for an event a member already names, REUSE the member and
114
+ * extend its JSDoc to name the new emitter. A member whose prose still names one of two emitters is
115
+ * a stale claim in the place a reviewer trusts most.
116
+ */
117
+ export var AuditObservationKind;
118
+ (function (AuditObservationKind) {
119
+ /**
120
+ * `CROSS_TENANT_ADMINISTRATIVE_ACCESS`, from BOTH doors that can produce one.
121
+ *
122
+ * The most consequential member: this is the operator-crossing trail
123
+ * `.claude/rules/administrative-continuity-floors.md` requires, and the one whose silence is
124
+ * indistinguishable from "no operator crossed anything".
125
+ *
126
+ * - `authorizeOrganizations` — the per-instance tenant gate, deciding on ONE fetched row.
127
+ * - `ServiceResourceBackendService.recordCrossTenantReadAccess` — the APPLICATION-scoped
128
+ * collection read, one observation per TENANT reached. The authorizer never sees this half: it
129
+ * runs only for ORGANIZATIONS-scoped resources, and an application-scoped door returns a SET
130
+ * whose rows belong to many tenants. Losing it silently is the larger of the two exposures,
131
+ * because it is the door that can enumerate every tenant at once.
132
+ */
133
+ AuditObservationKind["CROSS_TENANT_ADMINISTRATIVE_ACCESS"] = "cross_tenant_administrative_access";
134
+ /**
135
+ * `RESOURCE_OPERATION_DENIED` from the authorizer funnel. A lost refusal is a lost negative access
136
+ * decision — the record half of "record access decisions".
137
+ */
138
+ AuditObservationKind["AUTHORIZATION_DENIAL"] = "authorization_denial";
139
+ /**
140
+ * `PLATFORM_ACCESS_GRANT_LIFECYCLE` from the grant custom implementation. A lost transition means
141
+ * an elevation exists whose request/approval is not in the trail.
142
+ */
143
+ AuditObservationKind["PLATFORM_ACCESS_GRANT_LIFECYCLE"] = "platform_access_grant_lifecycle";
144
+ /**
145
+ * `PLATFORM_DIRECTORY_ACCESS` from `ServiceResourceBackendService.recordPlatformDirectoryAccess` —
146
+ * an APPLICATION-WIDE directory enumeration that no scope confined.
147
+ *
148
+ * `returnedCount` is why the row exists at all: it is the only thing separating "an operator
149
+ * opened the directory" from "an operator exported it". A lost observation does not merely lose an
150
+ * access record, it loses the SIZE, which is the half a reviewer reads first.
151
+ */
152
+ AuditObservationKind["PLATFORM_DIRECTORY_ACCESS"] = "platform_directory_access";
153
+ /**
154
+ * `USER_SESSION_EVICTED` from the token issuer's concurrent-session cap.
155
+ *
156
+ * One observation per RETIRED refresh chain, not per enforcement: the cap bounds the blast radius
157
+ * of undetected token theft, so a burst of evictions for one principal is among the more
158
+ * interesting things the trail can carry — and a burst is exactly the case where losing some of
159
+ * the rows understates it. Counting per chain is what keeps the loss signal proportional to the
160
+ * evidence actually lost rather than to the number of times the cap ran.
161
+ */
162
+ AuditObservationKind["USER_SESSION_EVICTED"] = "user_session_evicted";
163
+ /**
164
+ * `PROVIDER_OPERATION_CALL` from the provider operation executor — one row per OUTBOUND call to a
165
+ * third party, on both the success and the failure path.
166
+ *
167
+ * This is the application's record of what it sent to whom on whose behalf. Its silence is
168
+ * peculiarly misleading: an empty outbound trail reads as "this deployment integrates with
169
+ * nothing", which is a sentence somebody will believe.
170
+ */
171
+ AuditObservationKind["PROVIDER_OPERATION_CALL"] = "provider_operation_call";
172
+ /**
173
+ * The post-call credential-use stamp from the provider operation executor.
174
+ *
175
+ * ## Why this is on THIS counter even though its sink is not the audit service
176
+ *
177
+ * It writes to the tenant's own credential row rather than to `AuditLogsBackendService`, and it is
178
+ * still the identical observer-side loss shape: fire-and-forget, sink feature-detected, rejection
179
+ * swallowed, nothing counting the drops. The counter's subject is the LOSS OF A SECURITY
180
+ * OBSERVATION, not the identity of the store that was supposed to receive it — so a second counter
181
+ * for one site would fragment the alert without telling an operator anything the `observation`
182
+ * label does not already say.
183
+ *
184
+ * What it evidences is narrow and worth stating: whether a stored credential was ACCEPTED by the
185
+ * provider on last use. Losing it leaves a credential whose health is unknown, which surfaces
186
+ * later as an integration that fails with no record of when it started failing.
187
+ */
188
+ AuditObservationKind["PROVIDER_CREDENTIAL_USE"] = "provider_credential_use";
189
+ /**
190
+ * `HTTP_API_READ_THROUGH_ACCESS`, from BOTH emitters — see the enum's naming principle above.
191
+ *
192
+ * - `HttpApiResourceRepositoryBackendService.recordReadThroughAccess` — one observation per remote
193
+ * round-trip, and the only tier that witnesses every one of them (repository-direct probes never
194
+ * reach the services tier at all).
195
+ * - `ExternalDataPipelineRunBackendService.recordRunReadThroughAccess` — one observation per ETL
196
+ * run.
197
+ *
198
+ * The evidence at stake is ATTRIBUTION: an HTTP_API read reaches a third party through a SHARED
199
+ * service principal, so this row is what carries the real initiating user through it. Without it
200
+ * the external system's own logs show one principal and nothing anywhere resolves it to a person.
201
+ */
202
+ AuditObservationKind["HTTP_API_READ_THROUGH_ACCESS"] = "http_api_read_through_access";
203
+ })(AuditObservationKind || (AuditObservationKind = {}));
204
+ /**
205
+ * WHY the observation never reached the audit pipeline.
206
+ *
207
+ * Three members, and they are genuinely different diagnoses rather than shades of one — see the
208
+ * table in this module's header. `SERVICE_UNAVAILABLE` is a WIRING fault and is usually total and
209
+ * permanent for the life of the process; the other two are runtime faults and are usually partial.
210
+ * Merging them would leave an operator unable to tell "this deployment audits nothing" from "the
211
+ * audit store hiccupped twice".
212
+ */
213
+ export var AuditObservationLossReason;
214
+ (function (AuditObservationLossReason) {
215
+ /** The audit service is unbound, or the specific `log*` method is absent on the bound instance. */
216
+ AuditObservationLossReason["SERVICE_UNAVAILABLE"] = "service_unavailable";
217
+ /** The emitting call threw synchronously — before any `.catch()` could make it fire-and-forget. */
218
+ AuditObservationLossReason["EMISSION_THREW"] = "emission_threw";
219
+ /** The emitting call returned a promise that rejected. */
220
+ AuditObservationLossReason["EMISSION_REJECTED"] = "emission_rejected";
221
+ })(AuditObservationLossReason || (AuditObservationLossReason = {}));
222
+ /**
223
+ * How often ONE `(observation, reason)` pair may produce a log line.
224
+ *
225
+ * Fifteen minutes: long enough that a permanently broken binding costs four lines an hour rather
226
+ * than one per request, short enough that a NEW outage hours after an earlier one still announces
227
+ * itself instead of being swallowed by a latch that never resets. A permanent latch was rejected for
228
+ * exactly that reason — it makes the second incident invisible.
229
+ */
230
+ export const LOSS_LOG_INTERVAL_MS = 15 * 60 * 1000;
231
+ /** Process-local totals, keyed `<observation>:<reason>`. Not evidence — see the module header. */
232
+ const lossTotals = new Map();
233
+ /** Last log timestamp per `<observation>:<reason>`. Bounded by the enum cross-product (9 entries). */
234
+ const lastLoggedAt = new Map();
235
+ /**
236
+ * Every loss recorded since this process started, as `<observation>:<reason>` → count.
237
+ *
238
+ * A COPY, so a caller cannot mutate the accumulator. Exists so the counting can be pinned without an
239
+ * OTLP backend, and so a future health surface has a door that does not require one either. Read the
240
+ * module header before treating the numbers as durable evidence: they are not.
241
+ */
242
+ export function readAuditObservationLossTotals() {
243
+ return Object.fromEntries(lossTotals);
244
+ }
245
+ /** Test isolation only. Never called from production code. */
246
+ export function resetAuditObservationLossTotals() {
247
+ lossTotals.clear();
248
+ lastLoggedAt.clear();
249
+ }
250
+ /**
251
+ * Record one lost observation. Never throws, under any circumstance.
252
+ *
253
+ * Exported so a site whose emission does not fit {@link emitAuditObservation}'s shape can still
254
+ * contribute to the same counter rather than inventing a second one. Prefer the seam.
255
+ */
256
+ export function recordAuditObservationLoss(params) {
257
+ // The recorder is the LAST thing that may fail the request it observes: a metric backend that
258
+ // throws, or a logger that throws, would defeat the entire purpose of the fire-and-forget contract
259
+ // this seam exists to preserve. Everything below is inside one boundary for that reason.
260
+ try {
261
+ const key = `${params.observation}:${params.reason}`;
262
+ lossTotals.set(key, (lossTotals.get(key) ?? 0) + 1);
263
+ // Metrics FIRST. It is the durable, rate-carrying channel, and it must be incremented even for
264
+ // the drops the throttle below decides not to log — otherwise the throttle would silently
265
+ // suppress the count as well as the line, which is the defect one layer up.
266
+ //
267
+ // Feature-DETECTED rather than optional-chained on the object, and for the reason this whole
268
+ // module exists: a container that answers every symbol with a stub (the shape several partial
269
+ // test containers in this package genuinely have) yields a truthy `metricsService` whose method
270
+ // is absent, so `?.` on the OBJECT still calls `undefined(...)` and throws. The outer catch
271
+ // would contain it, but a swallowed TypeError looks exactly like a swallowed real defect — and
272
+ // it would take the log line down with it, leaving the loss silent again.
273
+ const metricsService = params.metricsService ?? resolveLossMetricsRecorder(params.metricsResolver);
274
+ if (typeof metricsService?.recordAuditObservationDropped === 'function') {
275
+ metricsService.recordAuditObservationDropped({
276
+ observation: params.observation,
277
+ reason: params.reason,
278
+ });
279
+ }
280
+ const now = Date.now();
281
+ const previous = lastLoggedAt.get(key);
282
+ if (previous !== undefined && now - previous < LOSS_LOG_INTERVAL_MS)
283
+ return;
284
+ lastLoggedAt.set(key, now);
285
+ params.logger?.error?.('A security audit observation was DROPPED before it reached the audit pipeline', {
286
+ // `reason` is the slug an alert rule and a log query both key on; keep it first and stable.
287
+ reason: 'audit_observation_dropped',
288
+ observation: params.observation,
289
+ lossReason: params.reason,
290
+ // The running total makes ONE throttled line carry the volume the suppressed lines would have.
291
+ occurrencesSinceProcessStart: lossTotals.get(key),
292
+ logIntervalMs: LOSS_LOG_INTERVAL_MS,
293
+ ...(params.error === undefined ? {} : { error: describeLossError(params.error) }),
294
+ ...(params.context ?? {}),
295
+ });
296
+ }
297
+ catch {
298
+ /* An observability failure must never be able to fail the request it observes. */
299
+ }
300
+ }
301
+ /**
302
+ * Emit one fire-and-forget audit observation, counting it if it is lost.
303
+ *
304
+ * ## The contract, which is the whole point
305
+ *
306
+ * **This function never throws and never returns a promise.** Not on an absent service, not on a
307
+ * synchronous throw, not on a rejection, and not on a metrics or logger failure. Callers rely on it
308
+ * to preserve the property their own JSDoc promises: the observation cannot fail the request.
309
+ *
310
+ * @param params.emit The emitting call, or `undefined` when the audit service or its method is
311
+ * absent. Passing `undefined` is how a site reports {@link AuditObservationLossReason.SERVICE_UNAVAILABLE}
312
+ * — the feature detection stays at the site because the method name differs per observation, and a
313
+ * generic reflective lookup here would trade a compile-time error for a runtime one.
314
+ */
315
+ export function emitAuditObservation(params) {
316
+ const loss = (reason, error) => recordAuditObservationLoss({
317
+ observation: params.observation,
318
+ reason,
319
+ metricsService: params.metricsService,
320
+ metricsResolver: params.metricsResolver,
321
+ logger: params.logger,
322
+ error,
323
+ context: params.context,
324
+ });
325
+ try {
326
+ if (!params.emit) {
327
+ loss(AuditObservationLossReason.SERVICE_UNAVAILABLE);
328
+ return;
329
+ }
330
+ let result;
331
+ try {
332
+ result = params.emit();
333
+ }
334
+ catch (error) {
335
+ // A `log*` method that is absent on a partially-mocked double throws a TypeError HERE —
336
+ // synchronously, before any `.catch()` could attach. That is the shape the feature detection at
337
+ // each site exists to pre-empt; this catch is what keeps a site that forgets it from crashing.
338
+ loss(AuditObservationLossReason.EMISSION_THREW, error);
339
+ return;
340
+ }
341
+ // Optional-chained, because an audit method is free to be synchronous (and every test double
342
+ // returning `undefined` is). A non-thenable result is a successful emission, not a loss.
343
+ const thenable = result;
344
+ if (typeof thenable?.catch !== 'function')
345
+ return;
346
+ thenable.catch((error) => loss(AuditObservationLossReason.EMISSION_REJECTED, error));
347
+ }
348
+ catch {
349
+ /* Belt and braces: nothing in this seam may reach the caller. */
350
+ }
351
+ }
352
+ /**
353
+ * Ask a site's thunk for the recorder, and treat any refusal as "no recorder".
354
+ *
355
+ * Its own `try`, INSIDE the caller's: a container that throws while resolving a binding must not be
356
+ * able to take the LOG channel down with it. Degrading a loss to its log-only form is the correct
357
+ * direction — the whole point of this module is that an observability gap is never a reason to
358
+ * refuse — whereas letting the throw escape to the outer `catch` would silence both channels for the
359
+ * one event that most needs saying.
360
+ */
361
+ function resolveLossMetricsRecorder(resolver) {
362
+ if (typeof resolver !== 'function')
363
+ return undefined;
364
+ try {
365
+ return resolver();
366
+ }
367
+ catch {
368
+ return undefined;
369
+ }
370
+ }
371
+ /**
372
+ * A log-safe description of whatever was thrown.
373
+ *
374
+ * Deliberately local rather than routed through `describeCaughtError`: this module sits UNDER the
375
+ * error subsystem in the dependency order (the error builder's own failures are observations this
376
+ * seam records), and importing upward would make an observability module depend on the layer it
377
+ * observes. The shape is a strict subset of what `describeCaughtError` produces, so a log query
378
+ * reading `error.message` works against both.
379
+ */
380
+ function describeLossError(error) {
381
+ if (error instanceof Error)
382
+ return { message: error.message, name: error.name };
383
+ return { message: typeof error === 'string' ? error : String(error) };
384
+ }
385
+ //# sourceMappingURL=audit-observation-emission.backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-observation-emission.backend.js","sourceRoot":"","sources":["../../../../../src/monitoring/observability/audit-observation-emission.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAIH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAN,IAAY,oBA4FX;AA5FD,WAAY,oBAAoB;IAC9B;;;;;;;;;;;;;OAaG;IACH,iGAAyE,CAAA;IAEzE;;;OAGG;IACH,qEAA6C,CAAA;IAE7C;;;OAGG;IACH,2FAAmE,CAAA;IAEnE;;;;;;;OAOG;IACH,+EAAuD,CAAA;IAEvD;;;;;;;;OAQG;IACH,qEAA6C,CAAA;IAE7C;;;;;;;OAOG;IACH,2EAAmD,CAAA;IAEnD;;;;;;;;;;;;;;;OAeG;IACH,2EAAmD,CAAA;IAEnD;;;;;;;;;;;;OAYG;IACH,qFAA6D,CAAA;AAC/D,CAAC,EA5FW,oBAAoB,KAApB,oBAAoB,QA4F/B;AAED;;;;;;;;GAQG;AACH,MAAM,CAAN,IAAY,0BAOX;AAPD,WAAY,0BAA0B;IACpC,mGAAmG;IACnG,yEAA2C,CAAA;IAC3C,mGAAmG;IACnG,+DAAiC,CAAA;IACjC,0DAA0D;IAC1D,qEAAuC,CAAA;AACzC,CAAC,EAPW,0BAA0B,KAA1B,0BAA0B,QAOrC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AA2BnD,kGAAkG;AAClG,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC7C,sGAAsG;AACtG,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B;IAC5C,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,+BAA+B;IAC7C,UAAU,CAAC,KAAK,EAAE,CAAC;IACnB,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAe1C;IACC,8FAA8F;IAC9F,mGAAmG;IACnG,yFAAyF;IACzF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACrD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpD,+FAA+F;QAC/F,0FAA0F;QAC1F,4EAA4E;QAC5E,EAAE;QACF,6FAA6F;QAC7F,8FAA8F;QAC9F,gGAAgG;QAChG,4FAA4F;QAC5F,+FAA+F;QAC/F,0EAA0E;QAC1E,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,0BAA0B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnG,IAAI,OAAO,cAAc,EAAE,6BAA6B,KAAK,UAAU,EAAE,CAAC;YACxE,cAAc,CAAC,6BAA6B,CAAC;gBAC3C,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,GAAG,QAAQ,GAAG,oBAAoB;YAAE,OAAO;QAC5E,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE3B,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,+EAA+E,EAAE;YACtG,4FAA4F;YAC5F,MAAM,EAAE,2BAA2B;YACnC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,+FAA+F;YAC/F,4BAA4B,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YACjD,aAAa,EAAE,oBAAoB;YACnC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;IACpF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAQpC;IACC,MAAM,IAAI,GAAG,CAAC,MAAkC,EAAE,KAAe,EAAQ,EAAE,CACzE,0BAA0B,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM;QACN,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEL,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wFAAwF;YACxF,gGAAgG;YAChG,+FAA+F;YAC/F,IAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,6FAA6F;QAC7F,yFAAyF;QACzF,MAAM,QAAQ,GAAG,MAAuF,CAAC;QACzG,IAAI,OAAO,QAAQ,EAAE,KAAK,KAAK,UAAU;YAAE,OAAO;QAClD,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,0BAA0B,CACjC,QAAyD;IAEzD,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IAChF,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACxE,CAAC","sourcesContent":["/**\n * # The seam every FIRE-AND-FORGET audit observation goes through — and the loss signal behind it\n *\n * assurance-control: WILDO.AUDIT.SECURITY_EVENT — a lost security observation is DETECTABLE, so a\n * period with no recorded operator crossings is distinguishable from a period with a broken sink.\n *\n * ## The gap this closes, stated precisely\n *\n * A handful of security observations — an operator crossing a tenant boundary, an authorization\n * refusal, a platform-access grant transition, a directory read — are emitted WITHOUT `await`, with\n * the audit service FEATURE-DETECTED and the returned promise's rejection SWALLOWED. Every one of\n * those three properties is deliberate and must survive: **an observation must never be able to fail\n * the request it observes.** A fail-closed variant would hand anyone a way to disable operator\n * support, or to convert a correct 403 into a 500, by breaking the audit sink.\n *\n * What was missing is not a refusal — it is a COUNT. With nothing recording the drops, an operator\n * reading the trail cannot tell \"no operator crossed a tenant boundary this week\" from \"the audit\n * service has been unbound since Tuesday\". Those two readings of the same empty result are what make\n * the evidence worthless, and it is the same shape as\n * `.claude/rules/negative-results-require-a-positive-probe.md`: an empty result is evidence about the\n * pipeline, never about the world.\n *\n * ## What the existing control does NOT cover — measured 2026-09-09\n *\n * Three call sites carried the claim that *\"detection of a lost row is the audit pipeline's own\n * control (`audit_store_failure_total`), not this gate's\"*. That claim is **true for one loss shape\n * and false for the three that matter here.** `AuditLogsBackendService._createAuditLog` catches its\n * Layer-1 store write and increments `audit_store_failure_total` — so a store that is DOWN while the\n * service is bound and reachable is already counted. But that counter is inside a method the\n * observer may never reach:\n *\n * | Loss shape | Reaches `_createAuditLog`? | Counted before this seam |\n * |---|---|---|\n * | {@link AuditObservationLossReason.SERVICE_UNAVAILABLE} — the audit service is unbound, or the `log*` method is absent (a partial DI binding, a host binding an older audit service) | no | **nothing at all** |\n * | {@link AuditObservationLossReason.EMISSION_THREW} — the call threw synchronously | no | **nothing at all** |\n * | {@link AuditObservationLossReason.EMISSION_REJECTED} — the returned promise rejected | partially | **nothing at all** at the observer |\n * | the Layer-1 store write itself failed | yes | `audit_store_failure_total` (unchanged, and still the right control for that shape) |\n *\n * So this seam counts the OBSERVER-side drop — the case where the audit pipeline never learned there\n * was anything to record — and leaves the pipeline's own control alone. The two are complementary,\n * not duplicates, and a reviewer needs both: one says \"we tried and the store refused\", the other\n * says \"we never got as far as trying\".\n *\n * ## Why a METRIC and a LOG, and not an audit row\n *\n * The loss signal must survive the audit store being down, so it cannot BE the audit store —\n * recording \"the audit store was unreachable\" in the audit store is the circularity that makes the\n * whole thing worthless. Two channels, deliberately, because neither alone is sufficient:\n *\n * - **`audit_observation_dropped_total`** (via {@link MetricsService.recordAuditObservationDropped})\n * is the RATE signal, and it is the durable one: the OTLP reader exports it periodically to the\n * metrics backend, so its value outlives the process and aggregates across instances. Without the\n * OTLP preload wired the global meter is a no-op and this channel is silently inert — which is\n * precisely why it is not the only channel.\n * - **One rate-limited `error` log line** is the always-available channel and the WAKE-UP. It fires\n * at most once per {@link LOSS_LOG_INTERVAL_MS} per `(observation, reason)` pair, so a service\n * that has been unbound since boot produces one line rather than one per request. Unthrottled it\n * would flood, and a channel that floods is a channel operators filter out — which would leave the\n * signal technically present and practically absent.\n *\n * ## The process-local accumulator, argued rather than assumed\n *\n * {@link readAuditObservationLossTotals} is per-process and is **lost on restart**. That is stated\n * here rather than glossed, because a reader could otherwise take it for durable evidence:\n *\n * - It is **not** the evidence. It is a test seam and a door for a future health surface. The\n * durable record is the exported counter (metrics backend) plus the log line (log store).\n * - Per-instance is the correct granularity for the LOG channel anyway — \"which replica lost\n * evidence\" is part of the answer — and the metrics backend does the cross-instance aggregation\n * that a process-local number never could.\n * - Rejected: a durable row for each loss. It is I/O on the observation path, it can fail the\n * request the whole design forbids failing, and it introduces a second store that can itself be\n * down. Rejected: a dedicated health endpoint. Still per-instance, adds a surface, and gives an\n * operator nothing the counter does not already give them.\n *\n * ## Why this is a SEAM and not a helper each site copies\n *\n * `.claude/rules/invariant-call-site-enumeration.md` — the invariant here (\"a dropped observation is\n * counted\") holds at every fire-and-forget security observation in the package, spread across six\n * subtrees, and the recurring defect in this repository is exactly the invariant applied at one of\n * them. Routing every site through one function makes the counting structural rather than\n * remembered: a new fire-and-forget observation that uses this seam is counted the day it lands,\n * with no author having to know this mechanism exists.\n *\n * **Do not quote a call-site count from this file.** An earlier revision named one (\"EIGHT call\n * sites\"), and the very next adoption pass made it wrong — a number in prose is one a reader has to\n * re-measure before believing, which is worse than no number. Measure it:\n *\n * ```bash\n * command grep -rn \"emitAuditObservation(\\|recordAuditObservationLoss(\" engine/saas-backend-lib/src \\\n * | grep -v __tests__ | grep -v audit-observation-emission.backend.ts\n * ```\n */\n\nimport type { MetricsService } from '~wildo-backend-lib/monitoring/observability/services/metrics.service';\n\n/**\n * WHICH security observation was lost.\n *\n * A closed vocabulary with one named runtime source, per `CLAUDE.md` — the member is what a reviewer\n * reads off the alert, so it has to carry its own explanation rather than being a bare string at\n * every call site. It is also the metric's `observation` label: bounded, low cardinality, and stable\n * across renames of the emitting method.\n *\n * ## A member names the EVIDENCE, never the emitter\n *\n * Two members of this enum are emitted from more than one place, and that is the design rather than\n * an omission. `CROSS_TENANT_ADMINISTRATIVE_ACCESS` is raised by the per-instance tenant gate AND by\n * the APPLICATION-scoped collection read; `HTTP_API_READ_THROUGH_ACCESS` by the per-read adapter AND\n * by the per-run ETL pipeline. Splitting either by emitter would make the one question an operator\n * actually asks — *how much cross-tenant evidence did we lose?* — a sum over labels, and a sum\n * somebody has to remember to widen is a sum that goes quietly wrong the day a third emitter lands.\n * WHICH door dropped it is carried by the log line's `context`, which is the channel with room for\n * it; the metric carries the rate, which is the thing that has to aggregate.\n *\n * The corollary: when you add an emitter for an event a member already names, REUSE the member and\n * extend its JSDoc to name the new emitter. A member whose prose still names one of two emitters is\n * a stale claim in the place a reviewer trusts most.\n */\nexport enum AuditObservationKind {\n /**\n * `CROSS_TENANT_ADMINISTRATIVE_ACCESS`, from BOTH doors that can produce one.\n *\n * The most consequential member: this is the operator-crossing trail\n * `.claude/rules/administrative-continuity-floors.md` requires, and the one whose silence is\n * indistinguishable from \"no operator crossed anything\".\n *\n * - `authorizeOrganizations` — the per-instance tenant gate, deciding on ONE fetched row.\n * - `ServiceResourceBackendService.recordCrossTenantReadAccess` — the APPLICATION-scoped\n * collection read, one observation per TENANT reached. The authorizer never sees this half: it\n * runs only for ORGANIZATIONS-scoped resources, and an application-scoped door returns a SET\n * whose rows belong to many tenants. Losing it silently is the larger of the two exposures,\n * because it is the door that can enumerate every tenant at once.\n */\n CROSS_TENANT_ADMINISTRATIVE_ACCESS = 'cross_tenant_administrative_access',\n\n /**\n * `RESOURCE_OPERATION_DENIED` from the authorizer funnel. A lost refusal is a lost negative access\n * decision — the record half of \"record access decisions\".\n */\n AUTHORIZATION_DENIAL = 'authorization_denial',\n\n /**\n * `PLATFORM_ACCESS_GRANT_LIFECYCLE` from the grant custom implementation. A lost transition means\n * an elevation exists whose request/approval is not in the trail.\n */\n PLATFORM_ACCESS_GRANT_LIFECYCLE = 'platform_access_grant_lifecycle',\n\n /**\n * `PLATFORM_DIRECTORY_ACCESS` from `ServiceResourceBackendService.recordPlatformDirectoryAccess` —\n * an APPLICATION-WIDE directory enumeration that no scope confined.\n *\n * `returnedCount` is why the row exists at all: it is the only thing separating \"an operator\n * opened the directory\" from \"an operator exported it\". A lost observation does not merely lose an\n * access record, it loses the SIZE, which is the half a reviewer reads first.\n */\n PLATFORM_DIRECTORY_ACCESS = 'platform_directory_access',\n\n /**\n * `USER_SESSION_EVICTED` from the token issuer's concurrent-session cap.\n *\n * One observation per RETIRED refresh chain, not per enforcement: the cap bounds the blast radius\n * of undetected token theft, so a burst of evictions for one principal is among the more\n * interesting things the trail can carry — and a burst is exactly the case where losing some of\n * the rows understates it. Counting per chain is what keeps the loss signal proportional to the\n * evidence actually lost rather than to the number of times the cap ran.\n */\n USER_SESSION_EVICTED = 'user_session_evicted',\n\n /**\n * `PROVIDER_OPERATION_CALL` from the provider operation executor — one row per OUTBOUND call to a\n * third party, on both the success and the failure path.\n *\n * This is the application's record of what it sent to whom on whose behalf. Its silence is\n * peculiarly misleading: an empty outbound trail reads as \"this deployment integrates with\n * nothing\", which is a sentence somebody will believe.\n */\n PROVIDER_OPERATION_CALL = 'provider_operation_call',\n\n /**\n * The post-call credential-use stamp from the provider operation executor.\n *\n * ## Why this is on THIS counter even though its sink is not the audit service\n *\n * It writes to the tenant's own credential row rather than to `AuditLogsBackendService`, and it is\n * still the identical observer-side loss shape: fire-and-forget, sink feature-detected, rejection\n * swallowed, nothing counting the drops. The counter's subject is the LOSS OF A SECURITY\n * OBSERVATION, not the identity of the store that was supposed to receive it — so a second counter\n * for one site would fragment the alert without telling an operator anything the `observation`\n * label does not already say.\n *\n * What it evidences is narrow and worth stating: whether a stored credential was ACCEPTED by the\n * provider on last use. Losing it leaves a credential whose health is unknown, which surfaces\n * later as an integration that fails with no record of when it started failing.\n */\n PROVIDER_CREDENTIAL_USE = 'provider_credential_use',\n\n /**\n * `HTTP_API_READ_THROUGH_ACCESS`, from BOTH emitters — see the enum's naming principle above.\n *\n * - `HttpApiResourceRepositoryBackendService.recordReadThroughAccess` — one observation per remote\n * round-trip, and the only tier that witnesses every one of them (repository-direct probes never\n * reach the services tier at all).\n * - `ExternalDataPipelineRunBackendService.recordRunReadThroughAccess` — one observation per ETL\n * run.\n *\n * The evidence at stake is ATTRIBUTION: an HTTP_API read reaches a third party through a SHARED\n * service principal, so this row is what carries the real initiating user through it. Without it\n * the external system's own logs show one principal and nothing anywhere resolves it to a person.\n */\n HTTP_API_READ_THROUGH_ACCESS = 'http_api_read_through_access',\n}\n\n/**\n * WHY the observation never reached the audit pipeline.\n *\n * Three members, and they are genuinely different diagnoses rather than shades of one — see the\n * table in this module's header. `SERVICE_UNAVAILABLE` is a WIRING fault and is usually total and\n * permanent for the life of the process; the other two are runtime faults and are usually partial.\n * Merging them would leave an operator unable to tell \"this deployment audits nothing\" from \"the\n * audit store hiccupped twice\".\n */\nexport enum AuditObservationLossReason {\n /** The audit service is unbound, or the specific `log*` method is absent on the bound instance. */\n SERVICE_UNAVAILABLE = 'service_unavailable',\n /** The emitting call threw synchronously — before any `.catch()` could make it fire-and-forget. */\n EMISSION_THREW = 'emission_threw',\n /** The emitting call returned a promise that rejected. */\n EMISSION_REJECTED = 'emission_rejected',\n}\n\n/**\n * How often ONE `(observation, reason)` pair may produce a log line.\n *\n * Fifteen minutes: long enough that a permanently broken binding costs four lines an hour rather\n * than one per request, short enough that a NEW outage hours after an earlier one still announces\n * itself instead of being swallowed by a latch that never resets. A permanent latch was rejected for\n * exactly that reason — it makes the second incident invisible.\n */\nexport const LOSS_LOG_INTERVAL_MS = 15 * 60 * 1000;\n\n/** The narrow slice of {@link MetricsService} this seam needs. Structural, so a double is trivial. */\nexport interface AuditObservationLossMetricsRecorder {\n recordAuditObservationDropped(params: { observation: string; reason: string }): void;\n}\n\n/**\n * A LAZY door to the recorder, for a site that does not hold one.\n *\n * Most emitters here are plain classes built with `new` (repository adapters, the provider executor)\n * or reach the container only through thunks their builder closes over. Each could resolve the\n * recorder itself — and each would then need its own `try`/`catch`, because a container resolving a\n * binding may throw and an observability failure must never reach the request. Five copies of that\n * guard is precisely the shape `.claude/rules/invariant-call-site-enumeration.md` says will be\n * applied at four of them, so the seam takes the thunk and does the wrapping once.\n *\n * Resolution happens ONLY when there is a loss to record. A site on the happy path never touches its\n * container, which is what makes handing this in unconditionally cheap.\n */\nexport type AuditObservationLossMetricsResolver = () => AuditObservationLossMetricsRecorder | undefined;\n\n/** The narrow slice of the logger this seam needs. Optional everywhere — see {@link emitAuditObservation}. */\nexport interface AuditObservationLossLogger {\n error?: (message: string, context?: Record<string, unknown>) => void;\n}\n\n/** Process-local totals, keyed `<observation>:<reason>`. Not evidence — see the module header. */\nconst lossTotals = new Map<string, number>();\n/** Last log timestamp per `<observation>:<reason>`. Bounded by the enum cross-product (9 entries). */\nconst lastLoggedAt = new Map<string, number>();\n\n/**\n * Every loss recorded since this process started, as `<observation>:<reason>` → count.\n *\n * A COPY, so a caller cannot mutate the accumulator. Exists so the counting can be pinned without an\n * OTLP backend, and so a future health surface has a door that does not require one either. Read the\n * module header before treating the numbers as durable evidence: they are not.\n */\nexport function readAuditObservationLossTotals(): Record<string, number> {\n return Object.fromEntries(lossTotals);\n}\n\n/** Test isolation only. Never called from production code. */\nexport function resetAuditObservationLossTotals(): void {\n lossTotals.clear();\n lastLoggedAt.clear();\n}\n\n/**\n * Record one lost observation. Never throws, under any circumstance.\n *\n * Exported so a site whose emission does not fit {@link emitAuditObservation}'s shape can still\n * contribute to the same counter rather than inventing a second one. Prefer the seam.\n */\nexport function recordAuditObservationLoss(params: {\n observation: AuditObservationKind;\n reason: AuditObservationLossReason;\n /** The recorder itself, when the site already holds one (a container-injected service). */\n metricsService?: AuditObservationLossMetricsRecorder;\n /**\n * A thunk to the recorder, when the site does not. Consulted only if `metricsService` is absent,\n * and only on a loss — see {@link AuditObservationLossMetricsResolver}. Two fields rather than one\n * union: a caller reading `metricsService: X | (() => X)` has to work out which one it holds, and\n * the answer is a property of the CLASS, so it is better spelled at the field.\n */\n metricsResolver?: AuditObservationLossMetricsResolver;\n logger?: AuditObservationLossLogger;\n error?: unknown;\n context?: Record<string, unknown>;\n}): void {\n // The recorder is the LAST thing that may fail the request it observes: a metric backend that\n // throws, or a logger that throws, would defeat the entire purpose of the fire-and-forget contract\n // this seam exists to preserve. Everything below is inside one boundary for that reason.\n try {\n const key = `${params.observation}:${params.reason}`;\n lossTotals.set(key, (lossTotals.get(key) ?? 0) + 1);\n\n // Metrics FIRST. It is the durable, rate-carrying channel, and it must be incremented even for\n // the drops the throttle below decides not to log — otherwise the throttle would silently\n // suppress the count as well as the line, which is the defect one layer up.\n //\n // Feature-DETECTED rather than optional-chained on the object, and for the reason this whole\n // module exists: a container that answers every symbol with a stub (the shape several partial\n // test containers in this package genuinely have) yields a truthy `metricsService` whose method\n // is absent, so `?.` on the OBJECT still calls `undefined(...)` and throws. The outer catch\n // would contain it, but a swallowed TypeError looks exactly like a swallowed real defect — and\n // it would take the log line down with it, leaving the loss silent again.\n const metricsService = params.metricsService ?? resolveLossMetricsRecorder(params.metricsResolver);\n if (typeof metricsService?.recordAuditObservationDropped === 'function') {\n metricsService.recordAuditObservationDropped({\n observation: params.observation,\n reason: params.reason,\n });\n }\n\n const now = Date.now();\n const previous = lastLoggedAt.get(key);\n if (previous !== undefined && now - previous < LOSS_LOG_INTERVAL_MS) return;\n lastLoggedAt.set(key, now);\n\n params.logger?.error?.('A security audit observation was DROPPED before it reached the audit pipeline', {\n // `reason` is the slug an alert rule and a log query both key on; keep it first and stable.\n reason: 'audit_observation_dropped',\n observation: params.observation,\n lossReason: params.reason,\n // The running total makes ONE throttled line carry the volume the suppressed lines would have.\n occurrencesSinceProcessStart: lossTotals.get(key),\n logIntervalMs: LOSS_LOG_INTERVAL_MS,\n ...(params.error === undefined ? {} : { error: describeLossError(params.error) }),\n ...(params.context ?? {}),\n });\n } catch {\n /* An observability failure must never be able to fail the request it observes. */\n }\n}\n\n/**\n * Emit one fire-and-forget audit observation, counting it if it is lost.\n *\n * ## The contract, which is the whole point\n *\n * **This function never throws and never returns a promise.** Not on an absent service, not on a\n * synchronous throw, not on a rejection, and not on a metrics or logger failure. Callers rely on it\n * to preserve the property their own JSDoc promises: the observation cannot fail the request.\n *\n * @param params.emit The emitting call, or `undefined` when the audit service or its method is\n * absent. Passing `undefined` is how a site reports {@link AuditObservationLossReason.SERVICE_UNAVAILABLE}\n * — the feature detection stays at the site because the method name differs per observation, and a\n * generic reflective lookup here would trade a compile-time error for a runtime one.\n */\nexport function emitAuditObservation(params: {\n observation: AuditObservationKind;\n emit: (() => unknown) | undefined;\n metricsService?: AuditObservationLossMetricsRecorder;\n /** See {@link recordAuditObservationLoss}. Never called unless there IS a loss. */\n metricsResolver?: AuditObservationLossMetricsResolver;\n logger?: AuditObservationLossLogger;\n context?: Record<string, unknown>;\n}): void {\n const loss = (reason: AuditObservationLossReason, error?: unknown): void =>\n recordAuditObservationLoss({\n observation: params.observation,\n reason,\n metricsService: params.metricsService,\n metricsResolver: params.metricsResolver,\n logger: params.logger,\n error,\n context: params.context,\n });\n\n try {\n if (!params.emit) {\n loss(AuditObservationLossReason.SERVICE_UNAVAILABLE);\n return;\n }\n\n let result: unknown;\n try {\n result = params.emit();\n } catch (error) {\n // A `log*` method that is absent on a partially-mocked double throws a TypeError HERE —\n // synchronously, before any `.catch()` could attach. That is the shape the feature detection at\n // each site exists to pre-empt; this catch is what keeps a site that forgets it from crashing.\n loss(AuditObservationLossReason.EMISSION_THREW, error);\n return;\n }\n\n // Optional-chained, because an audit method is free to be synchronous (and every test double\n // returning `undefined` is). A non-thenable result is a successful emission, not a loss.\n const thenable = result as { catch?: (handler: (error: unknown) => void) => unknown } | null | undefined;\n if (typeof thenable?.catch !== 'function') return;\n thenable.catch((error) => loss(AuditObservationLossReason.EMISSION_REJECTED, error));\n } catch {\n /* Belt and braces: nothing in this seam may reach the caller. */\n }\n}\n\n/**\n * Ask a site's thunk for the recorder, and treat any refusal as \"no recorder\".\n *\n * Its own `try`, INSIDE the caller's: a container that throws while resolving a binding must not be\n * able to take the LOG channel down with it. Degrading a loss to its log-only form is the correct\n * direction — the whole point of this module is that an observability gap is never a reason to\n * refuse — whereas letting the throw escape to the outer `catch` would silence both channels for the\n * one event that most needs saying.\n */\nfunction resolveLossMetricsRecorder(\n resolver: AuditObservationLossMetricsResolver | undefined,\n): AuditObservationLossMetricsRecorder | undefined {\n if (typeof resolver !== 'function') return undefined;\n try {\n return resolver();\n } catch {\n return undefined;\n }\n}\n\n/**\n * A log-safe description of whatever was thrown.\n *\n * Deliberately local rather than routed through `describeCaughtError`: this module sits UNDER the\n * error subsystem in the dependency order (the error builder's own failures are observations this\n * seam records), and importing upward would make an observability module depend on the layer it\n * observes. The shape is a strict subset of what `describeCaughtError` produces, so a log query\n * reading `error.message` works against both.\n */\nfunction describeLossError(error: unknown): { message: string; name?: string } {\n if (error instanceof Error) return { message: error.message, name: error.name };\n return { message: typeof error === 'string' ? error : String(error) };\n}\n"]}
@@ -27,5 +27,6 @@ export interface MetricDefinitions {
27
27
  auditTamperDetectedTotal: any;
28
28
  auditIntegrityAssuranceDegradedTotal: any;
29
29
  auditStoreFailureTotal: any;
30
+ auditObservationDroppedTotal: any;
30
31
  }
31
32
  //# sourceMappingURL=observability.backend.schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"observability.backend.schemas.d.ts","sourceRoot":"","sources":["../../../../../../src/monitoring/observability/models/observability.backend.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,iBAAiB;IAGhC,0BAA0B,EAAE,GAAG,CAAC;IAChC,4BAA4B,EAAE,GAAG,CAAC;IAClC,6BAA6B,EAAE,GAAG,CAAC;IACnC,mBAAmB,EAAE,GAAG,CAAC;IACzB,iCAAiC,EAAE,GAAG,CAAC;IAMvC,uBAAuB,EAAE,GAAG,CAAC;IAS7B,qBAAqB,EAAE,GAAG,CAAC;IAU3B,wBAAwB,EAAE,GAAG,CAAC;IAU9B,oCAAoC,EAAE,GAAG,CAAC;IAU1C,sBAAsB,EAAE,GAAG,CAAC;CAC7B"}
1
+ {"version":3,"file":"observability.backend.schemas.d.ts","sourceRoot":"","sources":["../../../../../../src/monitoring/observability/models/observability.backend.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,iBAAiB;IAGhC,0BAA0B,EAAE,GAAG,CAAC;IAChC,4BAA4B,EAAE,GAAG,CAAC;IAClC,6BAA6B,EAAE,GAAG,CAAC;IACnC,mBAAmB,EAAE,GAAG,CAAC;IACzB,iCAAiC,EAAE,GAAG,CAAC;IAMvC,uBAAuB,EAAE,GAAG,CAAC;IAS7B,qBAAqB,EAAE,GAAG,CAAC;IAU3B,wBAAwB,EAAE,GAAG,CAAC;IAU9B,oCAAoC,EAAE,GAAG,CAAC;IAU1C,sBAAsB,EAAE,GAAG,CAAC;IAW5B,4BAA4B,EAAE,GAAG,CAAC;CACnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"observability.backend.schemas.js","sourceRoot":"","sources":["../../../../../../src/monitoring/observability/models/observability.backend.schemas.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Observability metric definitions consumed by `metrics.service.ts`.\n *\n * Only the metrics with LIVE producers remain: the data-seeding counters\n * (fired by the data-seed dispatcher engines + shared ledger writers) and the\n * M2M outbound-webhook counter (fired by the delivery batch worker). The former\n * HTTP / DB / auth / cache / session / quota / websocket / error definitions\n * were removed in Slice 2 Phase 3 along with the dead, never-registered\n * observability middleware that was their only caller: HTTP traces +\n * `http.server.duration` metrics now come from the OTLP preload's\n * auto-instrumentation (bounded, semconv attributes) rather than a hand-rolled\n * middleware that tagged every series with unbounded `organization_id` /\n * `user_id` labels (edge case E13).\n *\n * History: the self-hosted Jaeger/Prometheus `TelemetryService`,\n * `ObservabilityConfig`, and `TelemetryProviders` were deleted in Phase 1;\n * the Prometheus-era middleware + the dead `TracerService` in Phase 3.\n */\nexport interface MetricDefinitions {\n // Data Seeding (Phase 6.D / F-17 — Prom-style operator metrics).\n // See `metrics.service.ts` for descriptions.\n dataSeedingLazyC1CacheHits: any;\n dataSeedingLazyC1CacheMisses: any;\n dataSeedingThunderHerdBowouts: any;\n dataSeedingRunTotal: any;\n dataSeedingAdminListSeedsDuration: any;\n\n // M2M Outbound Webhook Delivery (Phase 5 / Step 17 — Prom-style\n // operator metrics). Single counter covering every worker outcome\n // at terminal or intermediate return; see `metrics.service.ts`\n // (`recordM2MWebhookDeliveryOutcome`) for labels + semantics.\n m2mWebhookDeliveryTotal: any;\n\n // Compliance Audit-Log Sink failures (Phase 5 / F6 — Prom-style operator\n // metric). One counter incremented whenever a Layer-2 provider audit sink\n // throws while recording an event; the composite (`CompositeAuditLogSink`)\n // isolates the failure so the business op is unaffected, but this makes the\n // otherwise-swallowed failure OBSERVABLE. Labelled by `provider` (the provider\n // ref — immudb, a SIEM, …); bounded, low cardinality. See `metrics.service.ts`\n // (`recordAuditSinkFailure`).\n auditSinkFailureTotal: any;\n\n // Compliance Audit-Log TAMPER detections (Prom-style operator metric). One\n // counter incremented when a tamper-evident audit provider (immudb) PROVES its\n // store was rolled back / tampered between restarts (a durable-state consistency\n // proof failure). DISTINCT from `auditSinkFailureTotal` on purpose: a transient\n // write miss is backfilled by the reconciler, whereas a proven rollback of the\n // audit ledger is a compliance incident that must page a human. Labelled by\n // `provider`; bounded, low cardinality. See `metrics.service.ts`\n // (`recordAuditTamperDetected`).\n auditTamperDetectedTotal: any;\n\n // Compliance Audit-Log assurance DEGRADATIONS. Incremented when a tamper-evident\n // audit provider drops from full cross-restart tamper-evidence to a weaker level\n // (ephemeral mode / corrupt anchor / un-pinned identity change / per-op proof\n // failure). DISTINCT from a PROVEN tamper (`auditTamperDetectedTotal` → page) and a\n // write hiccup (`auditSinkFailureTotal`): a degradation means a FUTURE tamper may go\n // undetected, so it is alertable but non-latching. Labelled by `provider` + `reason`\n // (a small fixed slug set). See `metrics.service.ts`\n // (`recordAuditIntegrityAssuranceDegraded`).\n auditIntegrityAssuranceDegradedTotal: any;\n\n // Compliance Audit-Log LAYER-1 (authoritative DB store) write failures (A-12). One counter\n // incremented when `AuditLogsBackendService._createAuditLog` throws while persisting the authoritative\n // audit row. DISTINCT from `auditSinkFailureTotal` (a Layer-2 provider-sink hiccup the reconciler\n // backfills): a Layer-1 failure means the PRIMARY audit record itself was not persisted — the most\n // severe \"we think we're auditing but we aren't\" state, otherwise invisible on the fire-and-forget\n // path. Label-free (the authoritative store has no provider dimension); bounded, single series. See\n // `metrics.service.ts` (`recordAuditStoreFailure`); the alert rule is specified in\n // `.claude/plans/alerting-system-design-analysis.md` Appendix D.\n auditStoreFailureTotal: any;\n}\n"]}
1
+ {"version":3,"file":"observability.backend.schemas.js","sourceRoot":"","sources":["../../../../../../src/monitoring/observability/models/observability.backend.schemas.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Observability metric definitions consumed by `metrics.service.ts`.\n *\n * Only the metrics with LIVE producers remain: the data-seeding counters\n * (fired by the data-seed dispatcher engines + shared ledger writers) and the\n * M2M outbound-webhook counter (fired by the delivery batch worker). The former\n * HTTP / DB / auth / cache / session / quota / websocket / error definitions\n * were removed in Slice 2 Phase 3 along with the dead, never-registered\n * observability middleware that was their only caller: HTTP traces +\n * `http.server.duration` metrics now come from the OTLP preload's\n * auto-instrumentation (bounded, semconv attributes) rather than a hand-rolled\n * middleware that tagged every series with unbounded `organization_id` /\n * `user_id` labels (edge case E13).\n *\n * History: the self-hosted Jaeger/Prometheus `TelemetryService`,\n * `ObservabilityConfig`, and `TelemetryProviders` were deleted in Phase 1;\n * the Prometheus-era middleware + the dead `TracerService` in Phase 3.\n */\nexport interface MetricDefinitions {\n // Data Seeding (Phase 6.D / F-17 — Prom-style operator metrics).\n // See `metrics.service.ts` for descriptions.\n dataSeedingLazyC1CacheHits: any;\n dataSeedingLazyC1CacheMisses: any;\n dataSeedingThunderHerdBowouts: any;\n dataSeedingRunTotal: any;\n dataSeedingAdminListSeedsDuration: any;\n\n // M2M Outbound Webhook Delivery (Phase 5 / Step 17 — Prom-style\n // operator metrics). Single counter covering every worker outcome\n // at terminal or intermediate return; see `metrics.service.ts`\n // (`recordM2MWebhookDeliveryOutcome`) for labels + semantics.\n m2mWebhookDeliveryTotal: any;\n\n // Compliance Audit-Log Sink failures (Phase 5 / F6 — Prom-style operator\n // metric). One counter incremented whenever a Layer-2 provider audit sink\n // throws while recording an event; the composite (`CompositeAuditLogSink`)\n // isolates the failure so the business op is unaffected, but this makes the\n // otherwise-swallowed failure OBSERVABLE. Labelled by `provider` (the provider\n // ref — immudb, a SIEM, …); bounded, low cardinality. See `metrics.service.ts`\n // (`recordAuditSinkFailure`).\n auditSinkFailureTotal: any;\n\n // Compliance Audit-Log TAMPER detections (Prom-style operator metric). One\n // counter incremented when a tamper-evident audit provider (immudb) PROVES its\n // store was rolled back / tampered between restarts (a durable-state consistency\n // proof failure). DISTINCT from `auditSinkFailureTotal` on purpose: a transient\n // write miss is backfilled by the reconciler, whereas a proven rollback of the\n // audit ledger is a compliance incident that must page a human. Labelled by\n // `provider`; bounded, low cardinality. See `metrics.service.ts`\n // (`recordAuditTamperDetected`).\n auditTamperDetectedTotal: any;\n\n // Compliance Audit-Log assurance DEGRADATIONS. Incremented when a tamper-evident\n // audit provider drops from full cross-restart tamper-evidence to a weaker level\n // (ephemeral mode / corrupt anchor / un-pinned identity change / per-op proof\n // failure). DISTINCT from a PROVEN tamper (`auditTamperDetectedTotal` → page) and a\n // write hiccup (`auditSinkFailureTotal`): a degradation means a FUTURE tamper may go\n // undetected, so it is alertable but non-latching. Labelled by `provider` + `reason`\n // (a small fixed slug set). See `metrics.service.ts`\n // (`recordAuditIntegrityAssuranceDegraded`).\n auditIntegrityAssuranceDegradedTotal: any;\n\n // Compliance Audit-Log LAYER-1 (authoritative DB store) write failures (A-12). One counter\n // incremented when `AuditLogsBackendService._createAuditLog` throws while persisting the authoritative\n // audit row. DISTINCT from `auditSinkFailureTotal` (a Layer-2 provider-sink hiccup the reconciler\n // backfills): a Layer-1 failure means the PRIMARY audit record itself was not persisted — the most\n // severe \"we think we're auditing but we aren't\" state, otherwise invisible on the fire-and-forget\n // path. Label-free (the authoritative store has no provider dimension); bounded, single series. See\n // `metrics.service.ts` (`recordAuditStoreFailure`); the alert rule is specified in\n // `.claude/plans/alerting-system-design-analysis.md` Appendix D.\n auditStoreFailureTotal: any;\n\n // Security audit observations DROPPED before the audit pipeline ever saw them. Incremented by the\n // shared fire-and-forget seam (`audit-observation-emission.backend.ts`) whenever an observation is\n // lost because the audit service is unbound / its `log*` method is absent, the call threw\n // synchronously, or the returned promise rejected. DISTINCT from `auditStoreFailureTotal`, which\n // counts the Layer-1 STORE refusing a write it did receive: this counts the emission never getting\n // that far, which is the shape no existing control could see. Without it a period with no recorded\n // operator crossings is indistinguishable from a period with a broken sink. Labelled by\n // `observation` (which security event was lost) × `reason` (which of the three loss shapes);\n // bounded — 3 × 3 series today. See `metrics.service.ts` (`recordAuditObservationDropped`).\n auditObservationDroppedTotal: any;\n}\n"]}
@@ -168,5 +168,26 @@ export declare class MetricsService {
168
168
  * store has no provider dimension. Alert rule: `alerting-system-design-analysis.md` Appendix D.
169
169
  */
170
170
  recordAuditStoreFailure(): void;
171
+ /**
172
+ * A fire-and-forget security audit observation was DROPPED before it reached the audit pipeline.
173
+ * Fired by the shared emission seam (`audit-observation-emission.backend.ts`), which every such
174
+ * observation routes through, so a new observation is counted the day it lands.
175
+ *
176
+ * DISTINCT from {@link recordAuditStoreFailure}, and the distinction is the reason this counter
177
+ * exists: that one fires INSIDE `_createAuditLog`, so it only ever sees an emission that reached
178
+ * the audit service. The three shapes counted here — an unbound service or absent `log*` method, a
179
+ * synchronous throw, a rejected promise — never get that far, and were previously invisible.
180
+ * Merging them into one counter would let a total wiring outage hide behind a store hiccup.
181
+ *
182
+ * Synchronous, never throws (the global meter is a no-op without the OTLP preload — which is why
183
+ * the seam ALSO logs, at a throttled `error`).
184
+ *
185
+ * @param params.observation - `AuditObservationKind` member — WHICH security event was lost.
186
+ * @param params.reason - `AuditObservationLossReason` member — WHICH of the three loss shapes.
187
+ */
188
+ recordAuditObservationDropped(params: {
189
+ observation: string;
190
+ reason: string;
191
+ }): void;
171
192
  }
172
193
  //# sourceMappingURL=metrics.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.service.d.ts","sourceRoot":"","sources":["../../../../../../src/monitoring/observability/services/metrics.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;;;;;;;GAUG;AACH,qBACa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,kBAAkB,CAAoB;;IAO9C,OAAO,CAAC,iBAAiB;IAqHzB;;;;OAIG;IACI,6BAA6B,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1F;;;;OAIG;IACI,8BAA8B,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO3F;;;;;;;;OAQG;IACI,kCAAkC,CAAC,MAAM,EAAE;QAChD,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;KACvD,GAAG,IAAI;IAQR;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,oBAAoB,CAAC,MAAM,EAAE;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAUR;;;;;;;;;;;;;;;OAeG;IACI,uCAAuC,CAAC,MAAM,EAAE;QACrD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAmCR;;;;;;;;;;;;;;OAcG;IACI,+BAA+B,CAAC,MAAM,EAAE;QAC7C,KAAK,EAAE,aAAa,CAAC;QACrB,OAAO,EACH,WAAW,GACX,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,GACrB,wBAAwB,CAAC;KAC9B,GAAG,IAAI;IAWR;;;;;;;;OAQG;IACI,sBAAsB,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMpE;;;;;;;;;OASG;IACI,yBAAyB,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMvE;;;;;;;;;;OAUG;IACI,qCAAqC,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOnG;;;;;;;;OAQG;IACI,uBAAuB,IAAI,IAAI;CAGvC"}
1
+ {"version":3,"file":"metrics.service.d.ts","sourceRoot":"","sources":["../../../../../../src/monitoring/observability/services/metrics.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;;;;;;;GAUG;AACH,qBACa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,kBAAkB,CAAoB;;IAO9C,OAAO,CAAC,iBAAiB;IAsIzB;;;;OAIG;IACI,6BAA6B,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1F;;;;OAIG;IACI,8BAA8B,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO3F;;;;;;;;OAQG;IACI,kCAAkC,CAAC,MAAM,EAAE;QAChD,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;KACvD,GAAG,IAAI;IAQR;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,oBAAoB,CAAC,MAAM,EAAE;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAUR;;;;;;;;;;;;;;;OAeG;IACI,uCAAuC,CAAC,MAAM,EAAE;QACrD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAmCR;;;;;;;;;;;;;;OAcG;IACI,+BAA+B,CAAC,MAAM,EAAE;QAC7C,KAAK,EAAE,aAAa,CAAC;QACrB,OAAO,EACH,WAAW,GACX,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,GACrB,wBAAwB,CAAC;KAC9B,GAAG,IAAI;IAWR;;;;;;;;OAQG;IACI,sBAAsB,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMpE;;;;;;;;;OASG;IACI,yBAAyB,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMvE;;;;;;;;;;OAUG;IACI,qCAAqC,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOnG;;;;;;;;OAQG;IACI,uBAAuB,IAAI,IAAI;IAItC;;;;;;;;;;;;;;;;OAgBG;IACI,6BAA6B,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAM5F"}
@@ -122,6 +122,21 @@ let MetricsService = class MetricsService {
122
122
  auditStoreFailureTotal: this.meter.createCounter('audit_store_failure_total', {
123
123
  description: 'Compliance audit-log Layer-1 authoritative DB store write failures (one per _createAuditLog persist throw)',
124
124
  }),
125
+ // ─── Security audit observations DROPPED before the pipeline saw them ────
126
+ // A fire-and-forget security observation (an operator tenant crossing, an authorization
127
+ // refusal, a platform-access grant transition) never reached `AuditLogsBackendService` at all:
128
+ // the service was unbound or its `log*` method absent, the call threw synchronously, or the
129
+ // returned promise rejected. DISTINCT from `audit_store_failure_total`, which fires INSIDE
130
+ // `_createAuditLog` and therefore only sees emissions that got that far — the drops counted
131
+ // here are exactly the ones it structurally cannot see. Fire-and-forget is deliberate and
132
+ // stays (an observation must never fail the request it observes), so without this counter the
133
+ // loss is completely silent and "no operator crossings this week" is indistinguishable from
134
+ // "the audit service has been unbound since Tuesday". Operators alert on
135
+ // increase(audit_observation_dropped_total[15m]) > 0
136
+ // Cardinality: 3 `observation` × 3 `reason` = 9 series today, both label sets closed enums.
137
+ auditObservationDroppedTotal: this.meter.createCounter('audit_observation_dropped_total', {
138
+ description: 'Security audit observations dropped before reaching the audit pipeline (service unavailable / emission threw / emission rejected)',
139
+ }),
125
140
  };
126
141
  }
127
142
  // ---------------------------------------------------------------------------
@@ -339,6 +354,29 @@ let MetricsService = class MetricsService {
339
354
  recordAuditStoreFailure() {
340
355
  this.metricsDefinitions.auditStoreFailureTotal.add(1);
341
356
  }
357
+ /**
358
+ * A fire-and-forget security audit observation was DROPPED before it reached the audit pipeline.
359
+ * Fired by the shared emission seam (`audit-observation-emission.backend.ts`), which every such
360
+ * observation routes through, so a new observation is counted the day it lands.
361
+ *
362
+ * DISTINCT from {@link recordAuditStoreFailure}, and the distinction is the reason this counter
363
+ * exists: that one fires INSIDE `_createAuditLog`, so it only ever sees an emission that reached
364
+ * the audit service. The three shapes counted here — an unbound service or absent `log*` method, a
365
+ * synchronous throw, a rejected promise — never get that far, and were previously invisible.
366
+ * Merging them into one counter would let a total wiring outage hide behind a store hiccup.
367
+ *
368
+ * Synchronous, never throws (the global meter is a no-op without the OTLP preload — which is why
369
+ * the seam ALSO logs, at a throttled `error`).
370
+ *
371
+ * @param params.observation - `AuditObservationKind` member — WHICH security event was lost.
372
+ * @param params.reason - `AuditObservationLossReason` member — WHICH of the three loss shapes.
373
+ */
374
+ recordAuditObservationDropped(params) {
375
+ this.metricsDefinitions.auditObservationDroppedTotal.add(1, {
376
+ observation: params.observation,
377
+ reason: params.reason,
378
+ });
379
+ }
342
380
  };
343
381
  MetricsService = __decorate([
344
382
  injectable(),