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

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 (1056) hide show
  1. package/dist/esm/__tests__/fixture-deep-partial.d.ts.map +1 -1
  2. package/dist/esm/__tests__/integration/redis-integration-gate.d.ts.map +1 -1
  3. package/dist/esm/__tests__/setup.d.ts.map +1 -1
  4. package/dist/esm/__tests__/test-container.d.ts.map +1 -1
  5. package/dist/esm/applications/models/applications.backend.schemas.d.ts.map +1 -1
  6. package/dist/esm/applications/seeds/application-metadata-defaults.seeds.d.ts.map +1 -1
  7. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  8. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  9. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  10. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  11. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
  12. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
  13. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
  14. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
  15. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
  16. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -1
  18. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -1
  19. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -1
  20. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +12 -1
  21. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -1
  22. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  23. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  24. package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
  26. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
  27. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  28. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  29. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  30. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  31. package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
  34. package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
  36. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +13 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +17 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -1
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
  55. package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  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.map +1 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +57 -0
  61. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +95 -2
  63. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  66. package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
  68. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +14 -3
  70. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
  72. package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
  74. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
  75. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
  76. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
  77. package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
  78. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
  80. package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
  81. package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
  83. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
  86. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  88. package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
  90. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  91. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  92. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  95. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +44 -6
  96. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
  100. package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -1
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -1
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -1
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -1
  105. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -1
  106. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -1
  107. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
  108. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
  109. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +1 -1
  110. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -1
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +5 -4
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -1
  113. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
  114. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
  115. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
  116. package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  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.map +1 -1
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  121. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -1
  122. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -1
  123. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  124. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  125. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
  126. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  127. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  128. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +32 -0
  129. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  130. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +32 -1
  131. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  133. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  135. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  137. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  139. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +9 -6
  140. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  141. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +9 -6
  142. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  143. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -1
  144. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -1
  145. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
  146. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  148. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +50 -3
  149. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  150. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
  151. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  152. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  153. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
  154. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
  155. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
  156. package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
  157. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
  158. package/dist/esm/companion-exports.d.ts.map +1 -1
  159. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
  160. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
  161. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  162. package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
  163. package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  164. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
  165. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  166. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +107 -4
  168. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +176 -5
  170. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  172. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  174. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  177. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -1
  179. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  180. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +21 -0
  181. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  182. package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
  183. package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
  185. package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
  186. package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
  187. package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
  188. package/dist/esm/compliance/index.d.ts.map +1 -1
  189. package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
  190. package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
  191. package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
  192. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  194. package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
  196. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
  197. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
  198. package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  200. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
  201. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.d.ts +4 -4
  203. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  204. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  205. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
  207. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
  208. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
  209. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
  210. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
  211. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
  212. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  213. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  214. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
  215. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
  216. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration-loader.backend.service.js +3 -0
  218. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  219. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  220. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  221. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  222. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  223. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +12 -0
  224. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  225. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +28 -0
  226. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  227. package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
  228. package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
  229. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
  230. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
  231. package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
  232. package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
  233. package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
  234. package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
  235. package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
  236. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
  237. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
  238. package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
  239. package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
  240. package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
  241. package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
  242. package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
  243. package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
  244. package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
  245. package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
  246. package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
  247. package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
  248. package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
  249. package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
  250. package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
  251. package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
  252. package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
  253. package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
  254. package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
  255. package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
  256. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
  257. package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
  258. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
  259. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
  260. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
  261. package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
  262. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
  263. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
  264. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
  265. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
  266. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
  267. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
  268. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
  269. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  270. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
  271. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
  272. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
  273. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
  274. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
  275. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
  276. package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
  277. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
  278. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
  279. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
  280. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
  281. package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
  282. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
  283. package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
  284. package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
  285. package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
  286. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  287. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  288. package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
  289. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  290. package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
  291. package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
  292. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
  293. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
  294. package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
  295. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
  296. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  297. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  298. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  299. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  300. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  301. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  302. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  303. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  304. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  305. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  306. package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
  307. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
  308. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
  309. package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
  310. package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
  311. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  313. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  314. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  315. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
  316. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  317. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  318. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +102 -52
  319. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -1
  320. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +117 -71
  321. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -1
  322. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -1
  323. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -1
  324. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -1
  325. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +26 -7
  326. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -1
  327. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -1
  328. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -1
  329. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  330. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  331. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -1
  332. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -1
  333. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  334. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  335. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
  336. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  337. package/dist/esm/external-providers/services/document-extraction.backend.service.js +179 -98
  338. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  339. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  340. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  341. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
  342. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +121 -0
  343. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  344. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +151 -0
  345. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  346. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
  347. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  348. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +60 -4
  349. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  350. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
  351. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
  352. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
  353. package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  354. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
  355. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
  356. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
  357. package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  358. package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
  359. package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  360. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
  361. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
  363. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
  364. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
  365. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
  366. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
  367. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  368. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  369. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
  370. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
  371. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
  372. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  373. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +221 -21
  374. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  375. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
  376. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
  377. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
  378. package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
  379. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
  380. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
  381. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
  382. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
  383. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
  384. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  385. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  386. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
  387. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  388. package/dist/esm/files/services/file-scanning.backend.service.js +5 -0
  389. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  390. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  391. package/dist/esm/files/services/file-text-extraction.backend.service.js +8 -5
  392. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  393. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  394. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  395. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  396. package/dist/esm/files/services/files.backend.service.js +3 -1
  397. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  398. package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
  399. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -1
  400. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -1
  401. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
  402. package/dist/esm/files/storage/file-storage-provider.types.d.ts +36 -1
  403. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  404. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  405. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
  406. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
  407. package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
  408. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
  409. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
  410. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
  411. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
  412. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
  413. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  414. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  415. package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
  416. package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  417. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  418. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
  419. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
  420. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  421. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  422. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  423. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  424. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
  425. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  426. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  427. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
  428. package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
  429. package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
  430. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -1
  431. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -1
  432. package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
  433. package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  435. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
  437. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  439. package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
  440. package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
  442. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  443. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  444. package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
  445. package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
  446. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  447. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  448. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  449. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  450. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  451. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  452. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  453. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
  455. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  457. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
  458. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
  459. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  461. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
  462. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  464. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +107 -16
  465. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  466. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +118 -18
  467. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  468. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  469. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  470. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -1
  471. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -1
  472. package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
  473. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  474. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  475. package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
  476. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
  477. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +104 -5
  478. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  479. package/dist/esm/flows-actors/services/agents.backend.service.js +263 -31
  480. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  481. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
  482. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +46 -1
  483. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  484. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +193 -6
  485. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  486. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  487. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  488. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  489. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  490. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  491. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  492. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -1
  493. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +3 -0
  494. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -1
  495. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
  496. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
  497. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
  498. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
  499. package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
  500. package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
  501. package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
  502. package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
  503. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  504. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  505. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  506. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +9 -0
  507. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  508. package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
  509. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
  510. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  511. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  512. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  513. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  514. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
  515. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
  516. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
  517. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
  518. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
  519. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
  520. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
  521. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
  522. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
  523. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
  524. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
  525. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
  526. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
  527. package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
  528. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
  529. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
  530. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  531. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  532. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -1
  533. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -1
  534. package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
  535. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  536. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  537. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
  538. package/dist/esm/index.d.ts +0 -1
  539. package/dist/esm/index.d.ts.map +1 -1
  540. package/dist/esm/index.js +0 -1
  541. package/dist/esm/index.js.map +1 -1
  542. package/dist/esm/inject/models/container.d.ts +10 -0
  543. package/dist/esm/inject/models/container.d.ts.map +1 -1
  544. package/dist/esm/inject/models/container.js +49 -1
  545. package/dist/esm/inject/models/container.js.map +1 -1
  546. package/dist/esm/inject/models/service-types.d.ts +3 -0
  547. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  548. package/dist/esm/inject/models/service-types.js +3 -0
  549. package/dist/esm/inject/models/service-types.js.map +1 -1
  550. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  551. package/dist/esm/mcp/controllers/mcp.controller.js +50 -3
  552. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  553. package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
  554. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  555. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  556. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  557. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  558. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  559. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  560. package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
  561. package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
  562. package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
  563. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  564. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  565. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -1
  566. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -1
  567. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  568. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  569. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  570. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  571. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  572. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  573. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
  574. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  575. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  576. package/dist/esm/monitoring/logger/services/logger.service.js +3 -3
  577. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  578. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -1
  579. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -1
  580. package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
  581. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +10 -6
  582. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -1
  583. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +10 -6
  584. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -1
  585. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  586. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  587. package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
  588. package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
  589. package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
  590. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  591. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  592. package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
  593. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
  594. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
  595. package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
  596. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
  597. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  599. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  600. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  601. package/dist/esm/notifications/email/services/email.backend.service.d.ts +47 -6
  602. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  603. package/dist/esm/notifications/email/services/email.backend.service.js +86 -36
  604. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  605. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  606. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  607. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
  608. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
  609. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  610. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  611. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  612. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  613. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
  614. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
  615. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
  616. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
  617. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
  618. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  619. package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
  620. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  621. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  622. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  623. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  624. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  625. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  626. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  627. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  628. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
  629. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
  630. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
  631. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
  632. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  633. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  634. package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
  635. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
  636. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  637. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  638. package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
  639. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
  640. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  641. package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
  642. package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
  643. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
  644. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
  645. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  646. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  647. package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  648. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
  649. package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
  650. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  651. package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
  652. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
  653. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
  654. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
  655. package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
  656. package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
  657. package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
  658. package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
  659. package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
  660. package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
  661. package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
  662. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -1
  663. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -1
  664. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -1
  665. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -1
  666. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -1
  667. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -1
  668. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -1
  669. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -1
  670. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  671. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  672. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
  673. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
  674. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  675. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  676. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
  677. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  678. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  679. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  680. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  681. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
  682. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
  683. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  684. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  685. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  686. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  687. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  688. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  689. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
  690. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  691. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  692. package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
  693. package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
  694. package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
  695. package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
  696. package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
  697. package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
  698. package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
  699. package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
  700. package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
  701. package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
  702. package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
  703. package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
  704. package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
  705. package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
  706. package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
  707. package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
  708. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  709. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  710. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  711. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  712. package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
  713. package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
  714. package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
  715. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
  716. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
  717. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
  718. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
  719. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
  720. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
  721. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  722. package/dist/esm/requests/service/websocket.service.js +49 -1
  723. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  724. package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
  725. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  726. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +2 -0
  727. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  728. package/dist/esm/resources/models/index.d.ts.map +1 -1
  729. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  730. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  731. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  732. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  733. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  734. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  735. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
  736. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
  737. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
  738. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
  739. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
  740. package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
  741. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
  742. package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
  743. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
  744. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +23 -0
  745. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  746. package/dist/esm/resources/services/resources-registry.backend.service.js +31 -0
  747. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  748. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
  749. package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
  750. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  751. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  752. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  753. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  754. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
  755. package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
  756. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
  757. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  758. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  759. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
  760. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  761. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  762. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  763. package/dist/esm/runtime/services/http-server.backend.service.js +10 -0
  764. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  765. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  766. package/dist/esm/runtime/services/start-application.backend.service.js +26 -12
  767. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  768. package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
  769. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
  770. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
  771. package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
  772. package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
  773. package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
  774. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
  775. package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
  776. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  777. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  778. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  780. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
  781. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
  782. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +84 -0
  784. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  786. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  787. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
  788. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
  789. package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
  790. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  792. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
  793. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
  794. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
  795. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
  796. package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
  797. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  798. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  799. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  800. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  801. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
  803. package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
  804. package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
  805. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
  807. package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
  808. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
  809. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  811. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  814. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  815. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  816. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  817. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
  819. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
  820. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
  821. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +9 -2
  822. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  823. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +9 -2
  824. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  825. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
  826. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
  827. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  828. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  829. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  830. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
  831. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
  832. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  833. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  834. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
  835. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  836. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +218 -26
  837. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  838. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
  839. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  840. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +36 -0
  841. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  842. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
  843. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
  844. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
  845. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
  846. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  847. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  848. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
  849. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  850. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  851. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  852. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  853. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  854. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  855. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  856. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  857. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
  859. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -1
  860. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +57 -1
  861. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -1
  862. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  863. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  864. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
  865. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
  866. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
  867. package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
  868. package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
  869. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  870. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  871. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  872. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  873. package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
  874. package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
  875. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
  876. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
  877. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
  878. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  879. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  880. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
  881. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  882. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  883. package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
  884. package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
  885. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  886. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  887. package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
  888. package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
  889. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
  890. package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
  891. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  892. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  893. package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
  894. package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
  895. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
  896. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
  897. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
  898. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
  899. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
  900. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
  901. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
  902. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
  903. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
  904. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
  905. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
  906. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
  907. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
  908. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
  909. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
  910. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
  911. package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
  912. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -1
  913. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -1
  914. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  915. package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
  916. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  917. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  918. package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
  919. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  920. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +20 -181
  921. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  922. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
  923. package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
  924. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  925. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  926. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +40 -0
  927. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -1
  928. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +43 -1
  929. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -1
  930. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +27 -17
  931. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  932. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +27 -17
  933. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  934. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +72 -0
  935. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  936. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +153 -10
  937. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  938. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  939. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  940. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -1
  941. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -1
  942. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +139 -1
  943. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -1
  944. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +474 -33
  945. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -1
  946. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +40 -0
  947. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -1
  948. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -1
  949. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -1
  950. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -1
  951. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +19 -0
  952. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -1
  953. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +38 -0
  954. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -1
  955. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  956. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -1
  957. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -1
  958. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +17 -1
  959. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -1
  960. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +14 -0
  961. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -1
  962. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +16 -0
  963. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -1
  964. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -1
  965. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +1 -1
  966. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -1
  967. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +19 -0
  968. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -1
  969. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +45 -2
  970. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -1
  971. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -1
  972. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -1
  973. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +37 -1
  974. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -1
  975. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -1
  976. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -1
  977. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -1
  978. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -1
  979. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -1
  980. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
  981. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
  982. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
  983. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
  984. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  985. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
  986. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  987. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
  988. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
  989. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
  990. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  991. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  992. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  993. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  994. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
  995. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  996. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
  997. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
  998. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
  999. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
  1000. package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
  1001. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  1002. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  1003. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  1004. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  1005. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
  1006. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
  1007. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
  1008. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
  1009. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
  1010. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
  1011. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
  1012. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
  1013. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  1014. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  1015. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  1016. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  1017. package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
  1018. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
  1019. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
  1020. package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
  1021. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  1022. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  1023. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -1
  1024. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -1
  1025. package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
  1026. package/dist/esm/testing.d.ts.map +1 -1
  1027. package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
  1028. package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  1029. package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
  1030. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -1
  1031. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -1
  1032. package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
  1033. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
  1034. package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
  1035. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1036. package/package.json +9 -9
  1037. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
  1038. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
  1039. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
  1040. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
  1041. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -0
  1042. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -0
  1043. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -0
  1044. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -0
  1045. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -0
  1046. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -0
  1047. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -0
  1048. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -0
  1049. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -0
  1050. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -0
  1051. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -0
  1052. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -0
  1053. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -0
  1054. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -0
  1055. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -0
  1056. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"leased-value-cache.backend.utils.js","sourceRoot":"","sources":["../../../../../../../src/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * # A leased, stale-while-revalidate, single-flight cache for values read on the AUDIT EMISSION PATH\n *\n * The audit dispatcher holds two per-organization caches — the SIEM export config that decides WHERE\n * an event is routed, and the organization name that decorates the envelope. Both were hand-rolled\n * `Map`s with a 5-minute wall-clock TTL, a copy-pasted FIFO eviction block, and a blocking re-read on\n * expiry. This is the one place those mechanics live now, so a property fixed here is fixed for both\n * — the shape `.claude/rules/invariant-call-site-enumeration.md` exists to force.\n *\n * ## The governing constraint: emission must never fail, and never block, the thing it observes\n *\n * `AuditEventDispatcherBackendService` runs detached (`audit-logs.backend.service.ts:349` calls it\n * without `await`, with a `.catch`), and its whole contract is that a routing failure is logged and\n * never thrown onto the business operation. Every property below follows from that:\n *\n * | Property | Why it is required here specifically |\n * |---|---|\n * | **Stale-while-revalidate** | Past the lease the CACHED value is returned immediately and the re-read runs off the caller's path. Staleness is tolerable (a config changes monthly); a stall is not. It is also what makes a SHORT lease affordable: shortening it now costs read volume only, never latency. |\n * | **Single flight** | A burst of events for one organization must produce ONE read, not one per event. Without it a cold organization under load fires N concurrent reads — and for the SIEM config each of those reads emits its own `system_context_read` audit row and can race the lazy default-row materialisation. |\n * | **Generation-guarded write-back** | An {@link invalidate} that lands WHILE a refresh is in flight must win. Without the guard the in-flight read — started before the write committed — writes the pre-write value back over the invalidation, so the invalidation silently does nothing in exactly the case it exists for. |\n * | **Backoff on failure** | A failed refresh stamps the next attempt one lease ahead rather than retrying per event. A broken repository must not turn into a read storm that scales with audit volume. |\n * | **LRU, not FIFO, eviction** | The evicted entry is the least recently USED. The previous FIFO block (labelled \"simple LRU approximation\", which it was not) evicted by insertion order, so the busiest organization — inserted first, refreshed in place, never re-inserted — was the first one thrown out and forced back onto a blocking cold read. |\n *\n * ## What it deliberately does NOT do\n *\n * - **It does not live in a shared store.** Putting the VALUE in Redis would make routing depend on a\n * store that can be unavailable, and would put a network round trip on the emission path. Cross-replica\n * convergence is carried instead by a published invalidation (see the dispatcher's\n * `_publishSiemConfigInvalidation`) plus the lease — neither of which the emission path touches.\n * - **It does not expire entries out of the map.** An entry is refreshed in place, never dropped on age,\n * so a warm organization never pays a blocking read again. Only {@link invalidate} and LRU pressure\n * remove an entry.\n * - **It caches negative results.** `null` / `undefined` is a value like any other. The alternative —\n * re-reading on every event for a key with no row — is unbounded read amplification precisely for the\n * keys that are cheapest to get wrong, and it is the shape the org-name cache had before this.\n *\n * ## Precondition on the loader, which is a real constraint and not boilerplate\n *\n * A caller that JOINS an in-flight load receives the value **the first caller's loader produced**. So\n * every loader passed for one key must be equally privileged: a per-request loader whose visibility\n * varies with the caller would leak one caller's view to another. Both current call sites satisfy this\n * because the execution context they close over is the audit service's freshly-synthesised super-admin\n * APPLICATION-scoped temp context (`audit-logs.backend.service.ts:284`, handed to the dispatcher at\n * `:349`) — identical in privilege for every dispatch. **State the equivalent before adding a third.**\n */\n\n/** One cached entry. `nextRefreshAt` — not an age — is what the lease is measured against, so a failed refresh can back off without pretending the value is fresh. */\ninterface LeasedEntry<T> {\n value: T;\n /** Wall-clock instant at or after which the next {@link LeasedValueCache.get} triggers a background refresh. */\n nextRefreshAt: number;\n}\n\n/** Construction options. `refreshAfterMs` is the guarantee the owning subsystem states publicly — see each call site. */\nexport interface LeasedValueCacheOptions {\n /** How long a value is served without a re-read. The convergence bound for any change no invalidation reaches. */\n readonly refreshAfterMs: number;\n /** Hard ceiling on resident keys; the least recently used is evicted on overflow. */\n readonly maxEntries: number;\n /**\n * Reported when a BACKGROUND refresh throws. The cache keeps serving the previous value and backs off\n * one lease. Optional, but omitting it makes a persistently unreadable source silent, which is the\n * failure this whole subsystem exists to make visible — pass one.\n */\n readonly onRefreshFailure?: (key: string, error: unknown) => void;\n}\n\n/**\n * A per-key leased cache. See the module header for the design and its constraints.\n *\n * @typeParam T The cached value. Nullable members are cached like any other value, deliberately.\n */\nexport class LeasedValueCache<T> {\n private readonly entries = new Map<string, LeasedEntry<T>>();\n /** In-flight loads/refreshes, keyed identically. Present ⇒ a read is already on the wire for that key. */\n private readonly inFlight = new Map<string, Promise<T>>();\n /** Monotonic per-key generation. A key absent here has never been invalidated. */\n private readonly generations = new Map<string, number>();\n\n constructor(private readonly options: LeasedValueCacheOptions) {}\n\n /**\n * Serve `key`, loading it when there is nothing to serve.\n *\n * Rejects ONLY when a COLD load rejects — there is no cached value to fall back to, so the caller has\n * to decide. Once a value exists this never rejects and never blocks: a stale entry is returned as it\n * stands and the refresh runs detached.\n *\n * @param load Reads the current value. Must satisfy the loader precondition in the module header.\n */\n public async get(key: string, load: () => Promise<T>): Promise<T> {\n const entry = this.entries.get(key);\n\n if (entry) {\n // Touch for LRU on every hit, fresh or stale: \"recently used\" is about READS, so refreshing in\n // place must not let a busy key drift toward the eviction end.\n this.entries.delete(key);\n this.entries.set(key, entry);\n\n if (Date.now() >= entry.nextRefreshAt) {\n // An UNOBSERVABLE optimisation, and deliberately unpinned: removing it changes no outcome,\n // because `inFlight` already collapses the reads. What it saves is that every event arriving\n // during a slow refresh would otherwise re-enter `startLoad`, join the same promise and attach\n // its own `.catch` handler — bounded and released on settle, but pointless work per event on\n // the emission path.\n //\n // It is NOT the failure backoff, however much it looks like one. Backing off after a failed\n // refresh is `startLoad`'s catch, which re-stamps from the moment the failure LANDED; a slow\n // failure exhausts this stamp while still on the wire. Mistaking the two makes a backoff pin\n // that passes with the backoff deleted — measured, and the reason the suite pins both.\n entry.nextRefreshAt = Date.now() + this.options.refreshAfterMs;\n void this.startLoad(key, load).catch(() => {\n /* Reported through `onRefreshFailure` inside `startLoad`; nothing may escape onto the emission path. */\n });\n }\n return entry.value;\n }\n\n return this.startLoad(key, load);\n }\n\n /**\n * Drop `key`, so the next {@link get} performs a blocking read.\n *\n * Synchronous, infallible and idempotent — a caller needs no error handling, which is why the write-path\n * hook can invoke it inside a postfix handler without a try/catch.\n *\n * Bumping the generation is the load-bearing half: it makes any refresh already on the wire discard its\n * result instead of writing the pre-invalidation value back. Deleting the entry alone would leave the\n * invalidation defeated by a read that started microseconds earlier.\n */\n public invalidate(key: string): void {\n this.entries.delete(key);\n this.generations.set(key, (this.generations.get(key) ?? 0) + 1);\n }\n\n /** Resident key count. A test and diagnostics seam; nothing branches on it in production. */\n public size(): number {\n return this.entries.size;\n }\n\n /** Drop everything, including generation history. Test isolation only. */\n public clear(): void {\n this.entries.clear();\n this.inFlight.clear();\n this.generations.clear();\n }\n\n /**\n * Await every load currently on the wire.\n *\n * A TEST seam: stale-while-revalidate means a refresh outlives the `get` that started it, so a pin that\n * asserts on the refreshed value has no other deterministic join point. Never called from production\n * code — production must never wait for a refresh, which is the entire point of the design.\n */\n public async settle(): Promise<void> {\n while (this.inFlight.size > 0) {\n await Promise.allSettled([...this.inFlight.values()]);\n }\n }\n\n /** Start (or join) the single in-flight read for `key`, writing the result back under generation guard. */\n private startLoad(key: string, load: () => Promise<T>): Promise<T> {\n const joined = this.inFlight.get(key);\n if (joined) return joined;\n\n const startedAtGeneration = this.generations.get(key) ?? 0;\n const pending = load()\n .then((value) => {\n // The generation guard. An `invalidate` that landed while this read was on the wire means the\n // value we are holding predates a write we already know about — publishing it would restore\n // exactly the staleness the invalidation was raised to remove.\n if ((this.generations.get(key) ?? 0) === startedAtGeneration) {\n this.store(key, value);\n }\n return value;\n })\n .catch((error: unknown) => {\n const existing = this.entries.get(key);\n if (existing) {\n // Serve the last known value and back off a full lease rather than retrying per event. A source\n // that is down must not convert audit volume into read volume.\n existing.nextRefreshAt = Date.now() + this.options.refreshAfterMs;\n this.options.onRefreshFailure?.(key, error);\n return existing.value;\n }\n // COLD failure: there is nothing to serve, so the caller decides. Deliberately NOT reported through\n // `onRefreshFailure`, which names the silent case; a cold rejection is visible to the caller.\n throw error;\n })\n .finally(() => {\n // Only clear the slot if it is still OURS. A `clear()` between start and settle would otherwise\n // have this delete a newer in-flight read's entry.\n if (this.inFlight.get(key) === pending) this.inFlight.delete(key);\n });\n\n this.inFlight.set(key, pending);\n return pending;\n }\n\n /** Insert or replace, evicting the least recently used key first when at capacity. */\n private store(key: string, value: T): void {\n const existing = this.entries.get(key);\n if (existing) {\n existing.value = value;\n existing.nextRefreshAt = Date.now() + this.options.refreshAfterMs;\n return;\n }\n\n if (this.entries.size >= this.options.maxEntries) {\n // Map iteration is insertion order and `get` re-inserts on every hit, so the first key is the least\n // recently used one.\n const leastRecentlyUsed = this.entries.keys().next().value;\n if (leastRecentlyUsed !== undefined) {\n this.entries.delete(leastRecentlyUsed);\n // Its generation goes too: an unbounded generation map would be the leak the entry cap prevents.\n this.generations.delete(leastRecentlyUsed);\n }\n }\n\n this.entries.set(key, { value, nextRefreshAt: Date.now() + this.options.refreshAfterMs });\n }\n}\n"]}
1
+ {"version":3,"file":"leased-value-cache.backend.utils.js","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * # A leased, stale-while-revalidate, single-flight cache for values read on the AUDIT EMISSION PATH\n *\n * The audit dispatcher holds two per-organization caches — the SIEM export config that decides WHERE\n * an event is routed, and the organization name that decorates the envelope. Both were hand-rolled\n * `Map`s with a 5-minute wall-clock TTL, a copy-pasted FIFO eviction block, and a blocking re-read on\n * expiry. This is the one place those mechanics live now, so a property fixed here is fixed for both\n * — the shape `.claude/rules/invariant-call-site-enumeration.md` exists to force.\n *\n * ## The governing constraint: emission must never fail, and never block, the thing it observes\n *\n * `AuditEventDispatcherBackendService` runs detached (`audit-logs.backend.service.ts:349` calls it\n * without `await`, with a `.catch`), and its whole contract is that a routing failure is logged and\n * never thrown onto the business operation. Every property below follows from that:\n *\n * | Property | Why it is required here specifically |\n * |---|---|\n * | **Stale-while-revalidate** | Past the lease the CACHED value is returned immediately and the re-read runs off the caller's path. Staleness is tolerable (a config changes monthly); a stall is not. It is also what makes a SHORT lease affordable: shortening it now costs read volume only, never latency. |\n * | **Single flight** | A burst of events for one organization must produce ONE read, not one per event. Without it a cold organization under load fires N concurrent reads — and for the SIEM config each of those reads emits its own `system_context_read` audit row and can race the lazy default-row materialisation. |\n * | **Generation-guarded write-back** | An {@link invalidate} that lands WHILE a refresh is in flight must win. Without the guard the in-flight read — started before the write committed — writes the pre-write value back over the invalidation, so the invalidation silently does nothing in exactly the case it exists for. |\n * | **Backoff on failure** | A failed refresh stamps the next attempt one lease ahead rather than retrying per event. A broken repository must not turn into a read storm that scales with audit volume. |\n * | **LRU, not FIFO, eviction** | The evicted entry is the least recently USED. The previous FIFO block (labelled \"simple LRU approximation\", which it was not) evicted by insertion order, so the busiest organization — inserted first, refreshed in place, never re-inserted — was the first one thrown out and forced back onto a blocking cold read. |\n *\n * ## What it deliberately does NOT do\n *\n * - **It does not live in a shared store.** Putting the VALUE in Redis would make routing depend on a\n * store that can be unavailable, and would put a network round trip on the emission path. Cross-replica\n * convergence is carried instead by a published invalidation (see the dispatcher's\n * `_publishSiemConfigInvalidation`) plus the lease — neither of which the emission path touches.\n * - **It does not expire entries out of the map.** An entry is refreshed in place, never dropped on age,\n * so a warm organization never pays a blocking read again. Only {@link invalidate} and LRU pressure\n * remove an entry.\n * - **It caches negative results.** `null` / `undefined` is a value like any other. The alternative —\n * re-reading on every event for a key with no row — is unbounded read amplification precisely for the\n * keys that are cheapest to get wrong, and it is the shape the org-name cache had before this.\n *\n * ## Precondition on the loader, which is a real constraint and not boilerplate\n *\n * A caller that JOINS an in-flight load receives the value **the first caller's loader produced**. So\n * every loader passed for one key must be equally privileged: a per-request loader whose visibility\n * varies with the caller would leak one caller's view to another. Both current call sites satisfy this\n * because the execution context they close over is the audit service's freshly-synthesised super-admin\n * APPLICATION-scoped temp context (`audit-logs.backend.service.ts:284`, handed to the dispatcher at\n * `:349`) — identical in privilege for every dispatch. **State the equivalent before adding a third.**\n */\n\n/** One cached entry. `nextRefreshAt` — not an age — is what the lease is measured against, so a failed refresh can back off without pretending the value is fresh. */\ninterface LeasedEntry<T> {\n value: T;\n /** Wall-clock instant at or after which the next {@link LeasedValueCache.get} triggers a background refresh. */\n nextRefreshAt: number;\n}\n\n/** Construction options. `refreshAfterMs` is the guarantee the owning subsystem states publicly — see each call site. */\nexport interface LeasedValueCacheOptions {\n /** How long a value is served without a re-read. The convergence bound for any change no invalidation reaches. */\n readonly refreshAfterMs: number;\n /** Hard ceiling on resident keys; the least recently used is evicted on overflow. */\n readonly maxEntries: number;\n /**\n * Reported when a BACKGROUND refresh throws. The cache keeps serving the previous value and backs off\n * one lease. Optional, but omitting it makes a persistently unreadable source silent, which is the\n * failure this whole subsystem exists to make visible — pass one.\n */\n readonly onRefreshFailure?: (key: string, error: unknown) => void;\n}\n\n/**\n * A per-key leased cache. See the module header for the design and its constraints.\n *\n * @typeParam T The cached value. Nullable members are cached like any other value, deliberately.\n */\nexport class LeasedValueCache<T> {\n private readonly entries = new Map<string, LeasedEntry<T>>();\n /** In-flight loads/refreshes, keyed identically. Present ⇒ a read is already on the wire for that key. */\n private readonly inFlight = new Map<string, Promise<T>>();\n /** Monotonic per-key generation. A key absent here has never been invalidated. */\n private readonly generations = new Map<string, number>();\n\n constructor(private readonly options: LeasedValueCacheOptions) {}\n\n /**\n * Serve `key`, loading it when there is nothing to serve.\n *\n * Rejects ONLY when a COLD load rejects — there is no cached value to fall back to, so the caller has\n * to decide. Once a value exists this never rejects and never blocks: a stale entry is returned as it\n * stands and the refresh runs detached.\n *\n * @param load Reads the current value. Must satisfy the loader precondition in the module header.\n */\n public async get(key: string, load: () => Promise<T>): Promise<T> {\n const entry = this.entries.get(key);\n\n if (entry) {\n // Touch for LRU on every hit, fresh or stale: \"recently used\" is about READS, so refreshing in\n // place must not let a busy key drift toward the eviction end.\n this.entries.delete(key);\n this.entries.set(key, entry);\n\n if (Date.now() >= entry.nextRefreshAt) {\n // An UNOBSERVABLE optimisation, and deliberately unpinned: removing it changes no outcome,\n // because `inFlight` already collapses the reads. What it saves is that every event arriving\n // during a slow refresh would otherwise re-enter `startLoad`, join the same promise and attach\n // its own `.catch` handler — bounded and released on settle, but pointless work per event on\n // the emission path.\n //\n // It is NOT the failure backoff, however much it looks like one. Backing off after a failed\n // refresh is `startLoad`'s catch, which re-stamps from the moment the failure LANDED; a slow\n // failure exhausts this stamp while still on the wire. Mistaking the two makes a backoff pin\n // that passes with the backoff deleted — measured, and the reason the suite pins both.\n entry.nextRefreshAt = Date.now() + this.options.refreshAfterMs;\n void this.startLoad(key, load).catch(() => {\n /* Reported through `onRefreshFailure` inside `startLoad`; nothing may escape onto the emission path. */\n });\n }\n return entry.value;\n }\n\n return this.startLoad(key, load);\n }\n\n /**\n * Drop `key`, so the next {@link get} performs a blocking read.\n *\n * Synchronous, infallible and idempotent — a caller needs no error handling, which is why the write-path\n * hook can invoke it inside a postfix handler without a try/catch.\n *\n * Bumping the generation is the load-bearing half: it makes any refresh already on the wire discard its\n * result instead of writing the pre-invalidation value back. Deleting the entry alone would leave the\n * invalidation defeated by a read that started microseconds earlier.\n */\n public invalidate(key: string): void {\n this.entries.delete(key);\n this.generations.set(key, (this.generations.get(key) ?? 0) + 1);\n }\n\n /** Resident key count. A test and diagnostics seam; nothing branches on it in production. */\n public size(): number {\n return this.entries.size;\n }\n\n /** Drop everything, including generation history. Test isolation only. */\n public clear(): void {\n this.entries.clear();\n this.inFlight.clear();\n this.generations.clear();\n }\n\n /**\n * Await every load currently on the wire.\n *\n * A TEST seam: stale-while-revalidate means a refresh outlives the `get` that started it, so a pin that\n * asserts on the refreshed value has no other deterministic join point. Never called from production\n * code — production must never wait for a refresh, which is the entire point of the design.\n */\n public async settle(): Promise<void> {\n while (this.inFlight.size > 0) {\n await Promise.allSettled([...this.inFlight.values()]);\n }\n }\n\n /** Start (or join) the single in-flight read for `key`, writing the result back under generation guard. */\n private startLoad(key: string, load: () => Promise<T>): Promise<T> {\n const joined = this.inFlight.get(key);\n if (joined) return joined;\n\n const startedAtGeneration = this.generations.get(key) ?? 0;\n const pending = load()\n .then((value) => {\n // The generation guard. An `invalidate` that landed while this read was on the wire means the\n // value we are holding predates a write we already know about — publishing it would restore\n // exactly the staleness the invalidation was raised to remove.\n if ((this.generations.get(key) ?? 0) === startedAtGeneration) {\n this.store(key, value);\n }\n return value;\n })\n .catch((error: unknown) => {\n const existing = this.entries.get(key);\n if (existing) {\n // Serve the last known value and back off a full lease rather than retrying per event. A source\n // that is down must not convert audit volume into read volume.\n existing.nextRefreshAt = Date.now() + this.options.refreshAfterMs;\n this.options.onRefreshFailure?.(key, error);\n return existing.value;\n }\n // COLD failure: there is nothing to serve, so the caller decides. Deliberately NOT reported through\n // `onRefreshFailure`, which names the silent case; a cold rejection is visible to the caller.\n throw error;\n })\n .finally(() => {\n // Only clear the slot if it is still OURS. A `clear()` between start and settle would otherwise\n // have this delete a newer in-flight read's entry.\n if (this.inFlight.get(key) === pending) this.inFlight.delete(key);\n });\n\n this.inFlight.set(key, pending);\n return pending;\n }\n\n /** Insert or replace, evicting the least recently used key first when at capacity. */\n private store(key: string, value: T): void {\n const existing = this.entries.get(key);\n if (existing) {\n existing.value = value;\n existing.nextRefreshAt = Date.now() + this.options.refreshAfterMs;\n return;\n }\n\n if (this.entries.size >= this.options.maxEntries) {\n // Map iteration is insertion order and `get` re-inserts on every hit, so the first key is the least\n // recently used one.\n const leastRecentlyUsed = this.entries.keys().next().value;\n if (leastRecentlyUsed !== undefined) {\n this.entries.delete(leastRecentlyUsed);\n // Its generation goes too: an unbounded generation map would be the leak the entry cap prevents.\n this.generations.delete(leastRecentlyUsed);\n }\n }\n\n this.entries.set(key, { value, nextRefreshAt: Date.now() + this.options.refreshAfterMs });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ocsf-activity-mapping.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAkC,sBAAsB,EAAsD,MAAM,uBAAuB,CAAC;AAGnJ,oFAAoF;AACpF,oBAAY,kBAAkB;IAC5B,uCAAuC;IACvC,OAAO,IAAI;IACX,6EAA6E;IAC7E,KAAK,KAAK;CACX;AAED,sEAAsE;AACtE,oBAAY,0BAA0B;IACpC,8HAA8H;IAC9H,KAAK,IAAI;IACT,6DAA6D;IAC7D,MAAM,IAAI;IACV,mHAAmH;IACnH,OAAO,IAAI;IACX,KAAK,KAAK;CACX;AAED,oEAAoE;AACpE,oBAAY,eAAe;IACzB,MAAM,IAAI;IACV,uFAAuF;IACvF,IAAI,IAAI;IACR,MAAM,IAAI;IACV,MAAM,IAAI;IACV,KAAK,KAAK;CACX;AAED,yEAAyE;AACzE,oBAAY,4BAA4B;IACtC,MAAM,IAAI;IACV,IAAI,IAAI;IACR,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,sEAAsE;IACtE,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,OAAO,IAAI;IACX,QAAQ,KAAK;IACb,UAAU,KAAK;IACf,OAAO,KAAK;IACZ,2GAA2G;IAC3G,MAAM,KAAK;IACX,KAAK,KAAK;CACX;AAED,uEAAuE;AACvE,oBAAY,0BAA0B;IACpC,MAAM,IAAI;IACV,MAAM,IAAI;IACV,MAAM,IAAI;IACV,MAAM,IAAI;IACV,OAAO,IAAI;IACX,IAAI,IAAI;IACR,MAAM,IAAI;IACV,eAAe,IAAI;IACnB,cAAc,IAAI;IAClB,eAAe,KAAK;IACpB,eAAe,KAAK;IACpB,kBAAkB,KAAK;IACvB,mBAAmB,KAAK;IACxB,iBAAiB,KAAK;IACtB,iBAAiB,KAAK;IACtB,YAAY,KAAK;IACjB,YAAY,KAAK;IACjB,4BAA4B,KAAK;IACjC,+BAA+B,KAAK;IACpC,KAAK,KAAK;CACX;AAgBD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CA0LxF,CAAC;AAwBF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjG;AAED;;;;;;GAMG;AACH,oBAAY,kBAAkB;IAC5B,OAAO,IAAI;IACX,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,SAAS,IAAI;IACb,GAAG,IAAI;IACP,IAAI,IAAI;IACR,GAAG,IAAI;IACP,MAAM,KAAK;IACX,oBAAoB,KAAK;IACzB,IAAI,KAAK;IACT,KAAK,KAAK;CACX;AAyCD,+FAA+F;AAC/F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAK5E;AAuCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUlF"}
1
+ {"version":3,"file":"ocsf-activity-mapping.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAkC,sBAAsB,EAAsD,MAAM,uBAAuB,CAAC;AAGnJ,oFAAoF;AACpF,oBAAY,kBAAkB;IAC5B,uCAAuC;IACvC,OAAO,IAAI;IACX,6EAA6E;IAC7E,KAAK,KAAK;CACX;AAED,sEAAsE;AACtE,oBAAY,0BAA0B;IACpC,8HAA8H;IAC9H,KAAK,IAAI;IACT,6DAA6D;IAC7D,MAAM,IAAI;IACV,mHAAmH;IACnH,OAAO,IAAI;IACX,KAAK,KAAK;CACX;AAED,oEAAoE;AACpE,oBAAY,eAAe;IACzB,MAAM,IAAI;IACV,uFAAuF;IACvF,IAAI,IAAI;IACR,MAAM,IAAI;IACV,MAAM,IAAI;IACV,KAAK,KAAK;CACX;AAED,yEAAyE;AACzE,oBAAY,4BAA4B;IACtC,MAAM,IAAI;IACV,IAAI,IAAI;IACR,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,sEAAsE;IACtE,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,OAAO,IAAI;IACX,QAAQ,KAAK;IACb,UAAU,KAAK;IACf,OAAO,KAAK;IACZ,2GAA2G;IAC3G,MAAM,KAAK;IACX,KAAK,KAAK;CACX;AAED,uEAAuE;AACvE,oBAAY,0BAA0B;IACpC,MAAM,IAAI;IACV,MAAM,IAAI;IACV,MAAM,IAAI;IACV,MAAM,IAAI;IACV,OAAO,IAAI;IACX,IAAI,IAAI;IACR,MAAM,IAAI;IACV,eAAe,IAAI;IACnB,cAAc,IAAI;IAClB,eAAe,KAAK;IACpB,eAAe,KAAK;IACpB,kBAAkB,KAAK;IACvB,mBAAmB,KAAK;IACxB,iBAAiB,KAAK;IACtB,iBAAiB,KAAK;IACtB,YAAY,KAAK;IACjB,YAAY,KAAK;IACjB,4BAA4B,KAAK;IACjC,+BAA+B,KAAK;IACpC,KAAK,KAAK;CACX;AAgBD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CA+MxF,CAAC;AAwBF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjG;AAED;;;;;;GAMG;AACH,oBAAY,kBAAkB;IAC5B,OAAO,IAAI;IACX,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,SAAS,IAAI;IACb,GAAG,IAAI;IACP,IAAI,IAAI;IACR,GAAG,IAAI;IACP,MAAM,KAAK;IACX,oBAAoB,KAAK;IACzB,IAAI,KAAK;IACT,KAAK,KAAK;CACX;AAyCD,+FAA+F;AAC/F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAK5E;AAuCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUlF"}
@@ -151,6 +151,10 @@ export const OCSF_ACTIVITY_BY_EVENT_TYPE = {
151
151
  // Admin token-lifecycle, not an OCSF user LOGOFF — Other(99) + activity_name, matching the family.
152
152
  [CoreAuditableEventType.ONE_OFF_TOKEN_REVOKED]: OcsfAuthenticationActivity.OTHER,
153
153
  [CoreAuditableEventType.SAML_ASSERTION_REPLAY_DETECTED]: OcsfAuthenticationActivity.OTHER,
154
+ // A refused enterprise OIDC login: the provider did not report the authentication context the
155
+ // connection demanded (`acr`). A logon attempt that failed its step-up, so Logon(1) like the
156
+ // SAML and SSO failures beside it, not Other(99) like the OAuth CLIENT-side refusals above.
157
+ [CoreAuditableEventType.OIDC_ACR_DEMAND_UNSATISFIED]: OcsfAuthenticationActivity.LOGON,
154
158
  [CoreAuditableEventType.SAML_LOGIN_FAILED]: OcsfAuthenticationActivity.LOGON,
155
159
  [CoreAuditableEventType.SAML_LOGIN_INITIATED]: OcsfAuthenticationActivity.LOGON,
156
160
  [CoreAuditableEventType.SAML_LOGIN_SUCCESS]: OcsfAuthenticationActivity.LOGON,
@@ -237,6 +241,23 @@ export const OCSF_ACTIVITY_BY_EVENT_TYPE = {
237
241
  [CoreAuditableEventType.SUBJECT_DATA_EXPORT]: OcsfApiActivity.READ,
238
242
  [CoreAuditableEventType.COLLECTION_DATA_EXPORT]: OcsfApiActivity.READ,
239
243
  [CoreAuditableEventType.HTTP_API_READ_THROUGH_ACCESS]: OcsfApiActivity.READ,
244
+ // OTHER, and it is the positive statement the table's header describes rather than a shrug: the
245
+ // verb of an outbound provider call is a property of the OPERATION, not of the event type — the
246
+ // same event carries `classification: READ` for one call and `WRITE` for the next, so no member of
247
+ // this enum is true of the type. `activity_name` carries our event type, which is what OTHER
248
+ // obliges, and the payload's `classification` carries the verb for a consumer that wants it.
249
+ [CoreAuditableEventType.PROVIDER_OPERATION_CALL]: OcsfApiActivity.OTHER,
250
+ // OTHER for the same reason as its sibling, and more strongly: an MCP tool's effect is not
251
+ // declared anywhere the framework can read — the tool list is discovered from the server at turn
252
+ // start and nothing says whether a given tool reads or writes. Mapping to CREATE or READ would be
253
+ // asserting a verb nobody stated. `activity_name` carries our event type, which is what OTHER
254
+ // obliges.
255
+ [CoreAuditableEventType.MCP_TOOL_CALL]: OcsfApiActivity.OTHER,
256
+ // OTHER, and the alternative was considered: an approval decision is not an API activity at all,
257
+ // and UPDATE would read as "a record was updated" to every OCSF consumer. What was updated is a
258
+ // pending tool call held in memory, which no OCSF class models. `activity_name` carries our own
259
+ // event type, which is precisely what OTHER obliges.
260
+ [CoreAuditableEventType.AGENT_TOOL_APPROVAL_MODIFIED]: OcsfApiActivity.OTHER,
240
261
  // D6 stance 6b: the declared external-erasure operation DELETED remote rows.
241
262
  [CoreAuditableEventType.HTTP_API_EXTERNAL_ERASURE]: OcsfApiActivity.DELETE,
242
263
  // D6 stance 6c: nothing was deleted — the event records a deliberate non-action.
@@ -1 +1 @@
1
- {"version":3,"file":"ocsf-activity-mapping.backend.utils.js","sourceRoot":"","sources":["../../../../../../../src/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OCSF `activity_id` — the normalised verb, resolved per Wildo audit event type.\n *\n * Until this table existed every OCSF document we emitted carried `activity_id: 0` (Unknown), which\n * also pinned `type_uid` to `class_uid * 100`. That is the single largest fidelity loss in the OCSF\n * projection: `activity_id` is the axis OCSF uses to separate events WITHIN a class, so collapsing it\n * makes a logon indistinguishable from a logoff to any consumer that groups by `type_uid`.\n *\n * ## Three values, three different claims\n *\n * | Value | Means | When we use it |\n * |---|---|---|\n * | a specific member | the published description matches this event | the description matched — never the caption alone |\n * | `OTHER` (99) | in the class's domain, absent from its enum | with `activity_name` carrying our event type, which is what the schema asks for |\n * | `UNKNOWN` (0) | we cannot say | application-defined event types the engine cannot enumerate |\n *\n * `OTHER` is not a shrug. The schema defines it as \"the event activity is not mapped. See the\n * `activity_name` attribute, which contains a data source specific value\" — so it is a positive\n * statement plus an obligation, and it strictly beats `UNKNOWN` for any event we understand.\n *\n * ## Read descriptions, not captions\n *\n * Authentication's `Authentication Ticket` (3), `Service Ticket Request` (4) and `Service Ticket\n * Renew` (5) read like a natural home for OAuth token issuance and refresh. Their descriptions are\n * explicitly **Kerberos** (\"A Kerberos service ticket was renewed\"), so every OAuth token event here\n * is `OTHER` instead. Mapping those from the captions would have been a fabrication that validated\n * perfectly.\n *\n * ## A structural observation, deliberately NOT acted on here\n *\n * A Wildo event's audit CATEGORY selects the OCSF class, and for several events the natural activity\n * exists in a DIFFERENT class than the category picks: `USER_PASSWORD_CHANGED`, `USER_MFA_ENABLED`,\n * `USER_ACCOUNT_LOCKED` and friends are `AUTHENTICATION` (class 3002), while `Password Change` (8),\n * `Enable MFA Factors` (12) and `Lock` (6) are published by `user_management` (3007). Those rows are\n * `OTHER` with the mismatch named on each. Re-categorising them would change SIEM category filtering\n * for existing tenants, so it is a product decision, not a mapping fix.\n *\n * spec-cite: OCSF schema 1.9.0 — `schema.ocsf.io/api/1.9.0/classes/{authentication,api_activity,\n * entity_management,user_management}`, the `activity_id` enum and `activity_name` attribute of each.\n */\n\nimport { AuditEventCategory, AuthMethod, CoreAuditableEventType, CoreResourceOperation, getAuditEventClassification } from '@wildo-ai/saas-models';\nimport { OCSF_CLASS_BY_AUDIT_CATEGORY, OcsfClassUid } from './ocsf-class-mapping.backend.utils';\n\n/** `0` and `99` mean the same thing in every OCSF class, so they are named once. */\nexport enum OcsfCommonActivity {\n /** \"The event activity is unknown.\" */\n UNKNOWN = 0,\n /** \"The event activity is not mapped. See the `activity_name` attribute…\" */\n OTHER = 99,\n}\n\n/** Published `activity_id` members of class 3002 (authentication). */\nexport enum OcsfAuthenticationActivity {\n /** \"A new logon session was requested.\" Includes FAILED attempts — the verb is the request; the outcome rides `status_id`. */\n LOGON = 1,\n /** \"A logon session was terminated and no longer exists.\" */\n LOGOFF = 2,\n /** \"A preauthentication stage was engaged.\" Covers issuing an OTP or magic link: a stage BEFORE authentication. */\n PREAUTH = 6,\n OTHER = 99,\n}\n\n/** Published `activity_id` members of class 6003 (api_activity). */\nexport enum OcsfApiActivity {\n CREATE = 1,\n /** \"Read\" — the only CRUD verb our authorization/data-access events reliably carry. */\n READ = 2,\n UPDATE = 3,\n DELETE = 4,\n OTHER = 99,\n}\n\n/** Published `activity_id` members of class 3004 (entity_management). */\nexport enum OcsfEntityManagementActivity {\n CREATE = 1,\n READ = 2,\n UPDATE = 3,\n DELETE = 4,\n MOVE = 5,\n /** \"Enroll an existing managed entity.\" A member joining a tenant. */\n ENROLL = 6,\n UNENROLL = 7,\n ENABLE = 8,\n DISABLE = 9,\n ACTIVATE = 10,\n DEACTIVATE = 11,\n SUSPEND = 12,\n /** \"Resume (unsuspend) an existing managed entity.\" SUSPENDED is the only state our activate runs from. */\n RESUME = 13,\n OTHER = 99,\n}\n\n/** Published `activity_id` members of class 3007 (user_management). */\nexport enum OcsfUserManagementActivity {\n CREATE = 1,\n UPDATE = 2,\n DELETE = 3,\n ENABLE = 4,\n DISABLE = 5,\n LOCK = 6,\n UNLOCK = 7,\n PASSWORD_CHANGE = 8,\n PASSWORD_RESET = 9,\n ATTACH_POLICIES = 10,\n DETACH_POLICIES = 11,\n ENABLE_MFA_FACTORS = 12,\n DISABLE_MFA_FACTORS = 13,\n ASSIGN_PRIVILEGES = 14,\n REMOVE_PRIVILEGES = 15,\n ASSIGN_ROLES = 16,\n REMOVE_ROLES = 17,\n ADD_PROGRAMMATIC_CREDENTIALS = 18,\n REMOVE_PROGRAMMATIC_CREDENTIALS = 19,\n OTHER = 99,\n}\n\n/**\n * Every published activity id, per class — the membership check's source of truth.\n *\n * An activity number is only meaningful WITH its class: `1` is `Logon` in 3002 and `Create` in 6003.\n * So a row that assigns the right number under the wrong class is silently wrong, and nothing about\n * the emitted document would look malformed. {@link assertActivitiesBelongToTheirClass} closes that.\n */\nconst PUBLISHED_ACTIVITIES_BY_CLASS: Readonly<Record<OcsfClassUid, ReadonlySet<number>>> = {\n [OcsfClassUid.AUTHENTICATION]: new Set(Object.values(OcsfAuthenticationActivity).filter((v): v is number => typeof v === 'number')),\n [OcsfClassUid.API_ACTIVITY]: new Set(Object.values(OcsfApiActivity).filter((v): v is number => typeof v === 'number')),\n [OcsfClassUid.ENTITY_MANAGEMENT]: new Set(Object.values(OcsfEntityManagementActivity).filter((v): v is number => typeof v === 'number')),\n [OcsfClassUid.USER_MANAGEMENT]: new Set(Object.values(OcsfUserManagementActivity).filter((v): v is number => typeof v === 'number')),\n};\n\n/**\n * The activity each core audit event resolves to.\n *\n * **Total over `CoreAuditableEventType`**, so a new core event type cannot be added without deciding\n * its activity — the same shape the classification map now has, and for the same reason: an open set\n * silently defaulting is how `activity_id` stayed `Unknown` for every event in the first place.\n */\nexport const OCSF_ACTIVITY_BY_EVENT_TYPE: Readonly<Record<CoreAuditableEventType, number>> = {\n\n // ── AUTHENTICATION ──\n [CoreAuditableEventType.EMERGENCY_ACCESS_USED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.MACHINE_AUTH_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.MACHINE_AUTH_SUCCESS]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.OAUTH_CIMD_CLIENT_REFUSED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CODE_EXCHANGE_FAILED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.OAUTH_DYNAMIC_CLIENT_REGISTERED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.OAUTH_TOKEN_REFRESHED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.OAUTH_TOKEN_REVOKED]: OcsfAuthenticationActivity.OTHER,\n // Unlike the token-revoke sibling above (a no-oracle RFC 7009 ATTEMPT → Other), an RP-Initiated Logout\n // terminates a real user SESSION, so it is a genuine OCSF Logoff — matching USER_LOGOUT / SAML_SLO_COMPLETED.\n [CoreAuditableEventType.OAUTH_RP_INITIATED_LOGOUT]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.ONE_OFF_TOKEN_CREATED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.ONE_OFF_TOKEN_EXCHANGED]: OcsfAuthenticationActivity.OTHER,\n // Admin token-lifecycle, not an OCSF user LOGOFF — Other(99) + activity_name, matching the family.\n [CoreAuditableEventType.ONE_OFF_TOKEN_REVOKED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.SAML_ASSERTION_REPLAY_DETECTED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.SAML_LOGIN_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.SAML_LOGIN_INITIATED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.SAML_LOGIN_SUCCESS]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.SAML_SLO_COMPLETED]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.SAML_SLO_INITIATED]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.USER_ACCOUNT_LOCKED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Lock(6), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_CROSS_FRONTEND_HANDOFF_ISSUED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_IDENTITY_LINK_REMOVED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_LOGIN]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_LOGIN_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_LOGOUT]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.USER_MAGIC_LINK_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_MAGIC_LINK_SENT]: OcsfAuthenticationActivity.PREAUTH,\n [CoreAuditableEventType.USER_MAGIC_LINK_VERIFIED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_MFA_DISABLED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Disable MFA Factors(13), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_MFA_EMAIL_OTP_SENT]: OcsfAuthenticationActivity.PREAUTH,\n [CoreAuditableEventType.USER_MFA_ENABLED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Enable MFA Factors(12), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_MFA_SETUP_COMPLETED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_MFA_SETUP_STARTED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_PASSKEY_AUTHENTICATION_FAILURE]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_PASSKEY_AUTHENTICATION_SUCCESS]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_PASSKEY_CLONE_SUSPECTED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_PASSKEY_REGISTERED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_PASSKEY_REMOVED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_PASSWORD_CHANGED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Password Change(8), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_PASSWORD_RESET_COMPLETED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Password Reset(9), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_PASSWORD_RESET_FORCED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Password Reset(9), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_PASSWORD_RESET_REQUESTED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_PASSWORD_SET]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_REFRESH_TOKEN_REUSE_DETECTED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_SESSION_EXPIRED]: OcsfAuthenticationActivity.LOGOFF,\n /*\n * LOGOFF, like the expiry above: the session is terminated and no longer exists, which is what the\n * OCSF verb states. The DIFFERENCE between the two — time elapsed versus a cap displacing a live\n * chain — is not expressible in `activity_id`, so it rides the typed eventData and the WARNING\n * severity instead. Mapping it to OTHER would have lost the one thing a SIEM correlates on.\n */\n [CoreAuditableEventType.USER_SESSION_EVICTED]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.USER_SMS_OTP_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_SMS_OTP_SENT]: OcsfAuthenticationActivity.PREAUTH,\n [CoreAuditableEventType.USER_SMS_OTP_VERIFIED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_SSO_ENFORCEMENT_BLOCKED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_SSO_LOGIN]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_SSO_LOGIN_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_TOKEN_REFRESHED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_TOTP_DISABLED]: OcsfAuthenticationActivity.OTHER,\n\n // ── AUTHORIZATION ──\n // A file upload grant delegates one upload under the minter's authority; issuing/revoking it is not\n // one of 6003's CRUD verbs on a resource.\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_ISSUED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_REVOKED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.APPLICATION_SUPER_ADMIN_FLOOR_BREACHED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.CROSS_TENANT_ADMINISTRATIVE_ACCESS]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH2_PROVIDER_BLOCKED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CONSENT_BINDING_VIOLATION]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CONSENT_DENIED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CONSENT_GRANTED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CONSENT_GRANT_PERSISTED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_DELEGATED_TOKEN_ISSUED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_ROLE_CHANGED]: OcsfApiActivity.OTHER, // a role change is not one of 6003 CRUD verbs\n [CoreAuditableEventType.ORGANIZATION_OWNER_FLOOR_BREACHED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_REMOVED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_ROLE_CHANGED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.PLATFORM_ACCESS_GRANT_LIFECYCLE]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.RESOURCE_OPERATION_DENIED]: OcsfApiActivity.OTHER, // the CRUD verb is runtime data (the operation), not derivable from the event type\n [CoreAuditableEventType.RESOURCE_OPERATION_PERFORMED]: OcsfApiActivity.OTHER, // the CRUD verb is runtime data (the operation), not derivable from the event type\n [CoreAuditableEventType.USER_APP_ROLES_CHANGED]: OcsfApiActivity.OTHER, // a role change is not one of 6003 CRUD verbs\n\n // ── DATA_ACCESS ──\n [CoreAuditableEventType.FIELD_ACCESS]: OcsfApiActivity.READ,\n // CREATE, not OTHER: redeeming a grant IS the creation of one FILES row — the one DATA_ACCESS event\n // whose CRUD verb is derivable from the type, like PLATFORM_DIRECTORY_ACCESS below.\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_REDEEMED]: OcsfApiActivity.CREATE,\n // OTHER for both (#506): a scan CONCLUSION is not one of 6003's CRUD verbs on a resource. The file\n // row is updated as a consequence, but the event names the finding, not the write — mapping it to\n // UPDATE would tell a SIEM that a record was modified and lose that malware was found.\n [CoreAuditableEventType.FILE_MALWARE_DETECTED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.FILE_MALWARE_SCAN_FAILED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.MACHINE_ACCESS]: OcsfApiActivity.OTHER, // names a surface reach (A2A/MCP turn), not a CRUD verb on a resource\n // READ, not OTHER: enumerating a directory IS a read of resource rows, and it is the one case\n // where the CRUD verb IS derivable from the event type — the event only ever names a collection\n // read (list/search/count), never a mutation.\n [CoreAuditableEventType.PLATFORM_DIRECTORY_ACCESS]: OcsfApiActivity.READ,\n [CoreAuditableEventType.RETAINED_DATA_ACCESS]: OcsfApiActivity.READ,\n [CoreAuditableEventType.SUBJECT_DATA_EXPORT]: OcsfApiActivity.READ,\n [CoreAuditableEventType.COLLECTION_DATA_EXPORT]: OcsfApiActivity.READ,\n [CoreAuditableEventType.HTTP_API_READ_THROUGH_ACCESS]: OcsfApiActivity.READ,\n // D6 stance 6b: the declared external-erasure operation DELETED remote rows.\n [CoreAuditableEventType.HTTP_API_EXTERNAL_ERASURE]: OcsfApiActivity.DELETE,\n // D6 stance 6c: nothing was deleted — the event records a deliberate non-action.\n [CoreAuditableEventType.HTTP_API_NON_ERASURE_ACKNOWLEDGED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.SYSTEM_CONTEXT_READ]: OcsfApiActivity.READ,\n [CoreAuditableEventType.SYSTEM_CONTEXT_WRITE]: OcsfApiActivity.OTHER, // static fallback only — refined per emission from eventData.operation (CREATE | UPDATE | UPDATE_MANY)\n\n // ── ORG_MANAGEMENT ──\n [CoreAuditableEventType.ORGANIZATION_ACTIVATED]: OcsfEntityManagementActivity.RESUME,\n [CoreAuditableEventType.ORGANIZATION_CREATED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.ORGANIZATION_DELETED]: OcsfEntityManagementActivity.DELETE,\n [CoreAuditableEventType.ORGANIZATION_DELETION_REQUESTED]: OcsfEntityManagementActivity.OTHER, // marks the tenant and opens a window; nothing is deleted yet, so Delete(4) would overstate it\n [CoreAuditableEventType.ORGANIZATION_MEMBER_INVITED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_JOINED]: OcsfEntityManagementActivity.ENROLL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_REMOVED]: OcsfEntityManagementActivity.UNENROLL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_STATUS_CHANGED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_NOTIFICATIONS_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_PREFERENCES_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_PROFILE_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_RESTORED]: OcsfEntityManagementActivity.OTHER, // un-deletion has no 3004 member; Resume(13) is unsuspend and Activate(10) is a transient engine state\n [CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_CONFIGURED]: OcsfEntityManagementActivity.UPDATE,\n // Organization provider credentials. The credential row IS the managed entity, so the three\n // lifecycle verbs map onto its CRUD members directly — CREATE for the first grant, UPDATE for a\n // rotation (the entity persists, its secret changes), DELETE for the withdrawal.\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED]: OcsfEntityManagementActivity.UPDATE,\n // READ(2), not OTHER: resolving the credential for an outbound call reads the managed entity, and\n // READ is what an OCSF consumer's \"who accessed this secret\" query is written against. Mapping a\n // spend to OTHER(99) would take the highest-value events in this family out of every stock rule.\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_USED]: OcsfEntityManagementActivity.READ,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_DELETED]: OcsfEntityManagementActivity.DELETE,\n // A person's own credential maps identically to the tenant's: the OCSF activity describes what was\n // done to the managed entity, and that is the same verb regardless of who owns it. WHO owns it is\n // carried by the event data, not by the activity — collapsing the two would make \"who accessed\n // this secret\" queries miss half their population.\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_SET]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_ROTATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_USED]: OcsfEntityManagementActivity.READ,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_DELETED]: OcsfEntityManagementActivity.DELETE,\n // CREATE, like the `_SET` siblings: what OCSF records is the verb done to the managed entity, and\n // a connection coming into existence is a creation however it was obtained. The fact that this one\n // came from a consent ceremony rather than a paste lives in the event DATA — an OCSF activity is\n // deliberately a small closed vocabulary, and stretching it to carry provenance would make it a\n // worse index of what happened, not a better one.\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CONNECTION_GRANTED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.USER_PROVIDER_CONNECTION_GRANTED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.ORGANIZATION_SSO_CONFIGURATION_CHANGED]: OcsfEntityManagementActivity.UPDATE,\n // An application authentication-policy change is a configuration entity being UPDATED — the same\n // OCSF shape as the SSO / SIEM / SCIM configuration-change siblings around it. (Confirmed by the\n // session that added the event: UPDATE is the intended activity.)\n [CoreAuditableEventType.APPLICATION_AUTH_POLICY_CHANGED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_SUSPENDED]: OcsfEntityManagementActivity.SUSPEND,\n [CoreAuditableEventType.ORGANIZATION_UNIT_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.SAML_CERT_EXPIRING]: OcsfEntityManagementActivity.OTHER,\n [CoreAuditableEventType.SAML_METADATA_PARSED]: OcsfEntityManagementActivity.OTHER,\n [CoreAuditableEventType.SCIM_PROVISIONING_CONFIG_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.SCIM_PROVISIONING_FAILED]: OcsfEntityManagementActivity.OTHER,\n [CoreAuditableEventType.SCIM_TOKEN_CREATED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.SCIM_TOKEN_GENERATED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.SCIM_TOKEN_REVOKED]: OcsfEntityManagementActivity.DELETE,\n [CoreAuditableEventType.SCIM_TOKEN_ROTATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.WEBHOOK_ENDPOINT_TEST_DISPATCHED]: OcsfEntityManagementActivity.OTHER,\n\n // ── USER_LIFECYCLE ──\n [CoreAuditableEventType.RESOURCE_STATUS_TRANSITION_PERFORMED]: OcsfUserManagementActivity.OTHER,\n [CoreAuditableEventType.SAML_EMAIL_CHANGED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.SCIM_USER_DEACTIVATED]: OcsfUserManagementActivity.DISABLE,\n [CoreAuditableEventType.SCIM_USER_PROVISIONED]: OcsfUserManagementActivity.CREATE,\n [CoreAuditableEventType.SCIM_USER_UPDATED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_CREATED]: OcsfUserManagementActivity.CREATE,\n [CoreAuditableEventType.USER_DELETED]: OcsfUserManagementActivity.DELETE,\n [CoreAuditableEventType.USER_EMAIL_VERIFIED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_PHONE_VERIFICATION_FAILED]: OcsfUserManagementActivity.OTHER,\n [CoreAuditableEventType.USER_PHONE_VERIFIED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_REGISTERED]: OcsfUserManagementActivity.CREATE,\n [CoreAuditableEventType.USER_UPDATED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_VERIFICATION_EMAIL_RESENT]: OcsfUserManagementActivity.OTHER,\n};\n\n/**\n * Fail at module load if any row assigns an activity its own class does not publish.\n *\n * This is the check the table exists to make possible. Activity numbers are class-scoped and collide\n * across classes, so a misfiled row produces a document that is structurally valid, schema-conformant,\n * and semantically wrong — the failure mode nothing downstream can catch.\n */\nfunction assertActivitiesBelongToTheirClass(): void {\n const offenders: string[] = [];\n for (const [eventType, activityId] of Object.entries(OCSF_ACTIVITY_BY_EVENT_TYPE)) {\n const category = getAuditEventClassification(eventType).category;\n const descriptor = OCSF_CLASS_BY_AUDIT_CATEGORY[category as AuditEventCategory];\n if (!PUBLISHED_ACTIVITIES_BY_CLASS[descriptor.classUid].has(activityId)) {\n offenders.push(`${eventType} → activity ${activityId} is not published by class ${descriptor.classUid}`);\n }\n }\n if (offenders.length > 0) {\n throw new Error(`OCSF activity mapping assigns activities their class does not publish:\\n ${offenders.join('\\n ')}`);\n }\n}\nassertActivitiesBelongToTheirClass();\n\n/**\n * Resolve the OCSF activity for an event type.\n *\n * Application-defined event types are ordinary strings the engine cannot enumerate, so they resolve to\n * `UNKNOWN` — the one case where \"we cannot say\" is the truthful answer.\n */\nexport function resolveOcsfActivityId(eventType: string): number {\n return OCSF_ACTIVITY_BY_EVENT_TYPE[eventType as CoreAuditableEventType] ?? OcsfCommonActivity.UNKNOWN;\n}\n\n/**\n * The `activity_name` companion for an `OTHER` assignment, or `undefined` when the activity is specific.\n *\n * The schema's own definition of `OTHER` points the reader at `activity_name`, so emitting `OTHER`\n * without it discards the very information the value promises is available.\n *\n * Takes the RESOLVED activity rather than re-deriving it from the event type. That distinction became\n * load-bearing when 6003 gained runtime refinement: an event whose TABLE entry is `Other` but whose\n * refined activity is `Update` must NOT carry `activity_name`, and a version of this that re-derived\n * from the event type would have emitted both — a specific activity plus a companion asserting it was\n * unmapped. Two ways to answer one question is the drift this contract exists to prevent.\n */\nexport function resolveOcsfActivityName(activityId: number, eventType: string): string | undefined {\n return activityId === OcsfCommonActivity.OTHER ? eventType : undefined;\n}\n\n/**\n * OCSF `auth_protocol_id` — the NORMALISED authentication protocol.\n *\n * spec-cite: OCSF 1.9.0 — `schema.ocsf.io/api/1.9.0/classes/authentication`, the `auth_protocol_id`\n * enum. `auth_protocol` is documented as \"the authentication protocol as defined by the caption of\n * `auth_protocol_id`. In the case of Other, it is defined by the event source.\"\n */\nexport enum OcsfAuthProtocolId {\n UNKNOWN = 0,\n NTLM = 1,\n KERBEROS = 2,\n DIGEST = 3,\n OPENID = 4,\n SAML = 5,\n OAUTH_2_0 = 6,\n PAP = 7,\n CHAP = 8,\n EAP = 9,\n RADIUS = 10,\n BASIC_AUTHENTICATION = 11,\n LDAP = 12,\n OTHER = 99,\n}\n\n/** The published CAPTION for each id — what `auth_protocol` must carry when the id is not `Other`. */\nconst OCSF_AUTH_PROTOCOL_CAPTION: Readonly<Record<OcsfAuthProtocolId, string>> = {\n [OcsfAuthProtocolId.UNKNOWN]: 'Unknown',\n [OcsfAuthProtocolId.NTLM]: 'NTLM',\n [OcsfAuthProtocolId.KERBEROS]: 'Kerberos',\n [OcsfAuthProtocolId.DIGEST]: 'Digest',\n [OcsfAuthProtocolId.OPENID]: 'OpenID',\n [OcsfAuthProtocolId.SAML]: 'SAML',\n [OcsfAuthProtocolId.OAUTH_2_0]: 'OAUTH 2.0',\n [OcsfAuthProtocolId.PAP]: 'PAP',\n [OcsfAuthProtocolId.CHAP]: 'CHAP',\n [OcsfAuthProtocolId.EAP]: 'EAP',\n [OcsfAuthProtocolId.RADIUS]: 'RADIUS',\n [OcsfAuthProtocolId.BASIC_AUTHENTICATION]: 'Basic Authentication',\n [OcsfAuthProtocolId.LDAP]: 'LDAP',\n [OcsfAuthProtocolId.OTHER]: 'Other',\n};\n\n/**\n * The `AuthMethod` members that ARE a protocol OCSF normalises. Everything else resolves to `Other`.\n *\n * Deliberately partial. Three members are absent for a reason, and each absence is a decision:\n *\n * - `PASSWORD` is NOT `Basic Authentication` (11). Basic Auth is an HTTP transport scheme (RFC 7617);\n * a user typing a password into a form is not that, and the resemblance is only in the English word.\n * - `MAGIC_LINK`, `TOTP`, `SMS_OTP`, `EMAIL_OTP` and `PASSKEY` name no protocol in the published enum.\n * WebAuthn/FIDO2 in particular is absent from OCSF 1.9.0 — mapping a passkey to `Other` is the\n * accurate answer, not a shortfall.\n * - `EXTERNAL_OAUTH2` DOES map: it is OAuth 2.0 by construction.\n *\n * The `ORG_` prefix on the SSO members is SCOPE, not protocol — an organization-restricted SAML login\n * is still SAML — so those normalise cleanly.\n */\nconst OCSF_AUTH_PROTOCOL_BY_AUTH_METHOD: Readonly<Partial<Record<AuthMethod, OcsfAuthProtocolId>>> = {\n [AuthMethod.ORG_SAML]: OcsfAuthProtocolId.SAML,\n [AuthMethod.ORG_OPENID_CONNECT]: OcsfAuthProtocolId.OPENID,\n [AuthMethod.EXTERNAL_OAUTH2]: OcsfAuthProtocolId.OAUTH_2_0,\n};\n\n/** `auth_protocol` + `auth_protocol_id`, resolved together because the schema couples them. */\nexport interface OcsfAuthProtocol {\n readonly protocol: string;\n readonly protocolId: OcsfAuthProtocolId;\n}\n\n/**\n * Resolve the OCSF protocol pair for an envelope's `authMethod`.\n *\n * The two attributes are resolved TOGETHER because the schema defines one in terms of the other: when\n * the id is normalised, the string must be that id's published caption; only under `Other` may the\n * string be the producer's own value. Returning them separately invites the pairing to drift, which is\n * exactly how this shipped wrong the first time (`org_saml` with no id at all).\n *\n * `authMethod` is an OPEN string on the envelope — applications define their own — so anything outside\n * the framework's own `AuthMethod` vocabulary lands on `Other` carrying its raw value, which is\n * precisely what `Other` is for.\n */\nexport function resolveOcsfAuthProtocol(authMethod: string): OcsfAuthProtocol {\n const normalised = OCSF_AUTH_PROTOCOL_BY_AUTH_METHOD[authMethod as AuthMethod];\n return normalised === undefined\n ? { protocol: authMethod, protocolId: OcsfAuthProtocolId.OTHER }\n : { protocol: OCSF_AUTH_PROTOCOL_CAPTION[normalised], protocolId: normalised };\n}\n\n/**\n * The CRUD verb an API Activity (6003) event performed, mapped from the framework's core operation.\n *\n * spec-cite: OCSF 1.9.0 — `api_activity.activity_id` enum: 0 Unknown, 1 Create, 2 Read, 3 Update,\n * 4 Delete, 99 Other.\n *\n * The bulk forms collapse onto their singular verb: OCSF's activity names WHAT was done, and the\n * cardinality is carried separately by the envelope (`isBulkOperation` / `affectedRecordCount`).\n * `COUNT` is a Read — it answers a question about existing rows without changing any.\n */\nconst OCSF_API_ACTIVITY_BY_CORE_OPERATION: Readonly<Record<CoreResourceOperation, OcsfApiActivity>> = {\n [CoreResourceOperation.CREATE]: OcsfApiActivity.CREATE,\n [CoreResourceOperation.CREATE_MANY]: OcsfApiActivity.CREATE,\n [CoreResourceOperation.READ]: OcsfApiActivity.READ,\n [CoreResourceOperation.LIST]: OcsfApiActivity.READ,\n [CoreResourceOperation.SEARCH]: OcsfApiActivity.READ,\n [CoreResourceOperation.COUNT]: OcsfApiActivity.READ,\n [CoreResourceOperation.UPDATE]: OcsfApiActivity.UPDATE,\n [CoreResourceOperation.UPDATE_MANY]: OcsfApiActivity.UPDATE,\n [CoreResourceOperation.DELETE]: OcsfApiActivity.DELETE,\n [CoreResourceOperation.DELETE_MANY]: OcsfApiActivity.DELETE,\n};\n\n/**\n * The `eventData` keys that can name a 6003 event's CRUD verb, in precedence order.\n *\n * Three keys rather than one because the emitters spell it differently and each is authoritative for\n * its own event: `resourceOperationLike` is the core semantics a CUSTOM verb borrows (a `suspend`\n * behaving as an `update`), `operationIdentifier` is the verb on resource-operation and field-access\n * events, and `operation` is what `logSystemContextWrite` records — typed `CREATE | UPDATE |\n * UPDATE_MANY`, so it always resolves.\n *\n * Enumerated by the QUESTION (\"what names the verb on a 6003 event?\") rather than by one emitter's\n * field name, which is how `operation` was missed on the first pass.\n */\nconst OCSF_API_VERB_EVENT_DATA_KEYS = ['resourceOperationLike', 'operationIdentifier', 'operation'] as const;\n\n/**\n * Refine a 6003 event's `activity_id` from RUNTIME data, when the event type alone cannot say.\n *\n * Class 6003 is organised around the CRUD axis, and the resource-operation events (`performed` /\n * `denied`) are the bulk of what we route there — yet the event TYPE is the same string for a create\n * and a delete. So the table maps them to `Other`, and every authorization event landed in one\n * undifferentiated bucket: the same collapse `activity_id` being pinned to `Unknown` used to cause,\n * surviving one layer down after that was fixed.\n *\n * The verb is in the envelope — under one of {@link OCSF_API_VERB_EVENT_DATA_KEYS}, in that precedence\n * order. Anything else (a custom verb borrowing nothing) keeps `Other`, where `activity_name` already\n * carries the event type.\n *\n * Two consequences that are DECISIONS, not side effects:\n *\n * - **`FIELD_ACCESS` refines away from its static `Read`.** It carries `operationIdentifier`, so a\n * secret exposed during a create now reads as Create(1). That is correct: 6003's activity names what\n * the API CALL did, and the field-access nature rides `metadata.event_code`. The static `Read` remains\n * the fallback for an emission that names no operation.\n * - **`SYSTEM_CONTEXT_WRITE` stops being `Other`.** Its table comment says \"neither Create nor Update is\n * true of every emission\" — true of a STATIC mapping and not a permanent conclusion, because at\n * runtime `operation` says exactly which. This matters more than most: it is the ACL-bypass write.\n */\nexport function refineOcsfApiActivity(eventData: unknown, fallback: number): number {\n if (eventData === null || typeof eventData !== 'object') return fallback;\n const record = eventData as Readonly<Record<string, unknown>>;\n for (const key of OCSF_API_VERB_EVENT_DATA_KEYS) {\n const candidate = record[key];\n if (typeof candidate !== 'string') continue;\n const mapped = OCSF_API_ACTIVITY_BY_CORE_OPERATION[candidate as CoreResourceOperation];\n if (mapped !== undefined) return mapped;\n }\n return fallback;\n}\n"]}
1
+ {"version":3,"file":"ocsf-activity-mapping.backend.utils.js","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OCSF `activity_id` — the normalised verb, resolved per Wildo audit event type.\n *\n * Until this table existed every OCSF document we emitted carried `activity_id: 0` (Unknown), which\n * also pinned `type_uid` to `class_uid * 100`. That is the single largest fidelity loss in the OCSF\n * projection: `activity_id` is the axis OCSF uses to separate events WITHIN a class, so collapsing it\n * makes a logon indistinguishable from a logoff to any consumer that groups by `type_uid`.\n *\n * ## Three values, three different claims\n *\n * | Value | Means | When we use it |\n * |---|---|---|\n * | a specific member | the published description matches this event | the description matched — never the caption alone |\n * | `OTHER` (99) | in the class's domain, absent from its enum | with `activity_name` carrying our event type, which is what the schema asks for |\n * | `UNKNOWN` (0) | we cannot say | application-defined event types the engine cannot enumerate |\n *\n * `OTHER` is not a shrug. The schema defines it as \"the event activity is not mapped. See the\n * `activity_name` attribute, which contains a data source specific value\" — so it is a positive\n * statement plus an obligation, and it strictly beats `UNKNOWN` for any event we understand.\n *\n * ## Read descriptions, not captions\n *\n * Authentication's `Authentication Ticket` (3), `Service Ticket Request` (4) and `Service Ticket\n * Renew` (5) read like a natural home for OAuth token issuance and refresh. Their descriptions are\n * explicitly **Kerberos** (\"A Kerberos service ticket was renewed\"), so every OAuth token event here\n * is `OTHER` instead. Mapping those from the captions would have been a fabrication that validated\n * perfectly.\n *\n * ## A structural observation, deliberately NOT acted on here\n *\n * A Wildo event's audit CATEGORY selects the OCSF class, and for several events the natural activity\n * exists in a DIFFERENT class than the category picks: `USER_PASSWORD_CHANGED`, `USER_MFA_ENABLED`,\n * `USER_ACCOUNT_LOCKED` and friends are `AUTHENTICATION` (class 3002), while `Password Change` (8),\n * `Enable MFA Factors` (12) and `Lock` (6) are published by `user_management` (3007). Those rows are\n * `OTHER` with the mismatch named on each. Re-categorising them would change SIEM category filtering\n * for existing tenants, so it is a product decision, not a mapping fix.\n *\n * spec-cite: OCSF schema 1.9.0 — `schema.ocsf.io/api/1.9.0/classes/{authentication,api_activity,\n * entity_management,user_management}`, the `activity_id` enum and `activity_name` attribute of each.\n */\n\nimport { AuditEventCategory, AuthMethod, CoreAuditableEventType, CoreResourceOperation, getAuditEventClassification } from '@wildo-ai/saas-models';\nimport { OCSF_CLASS_BY_AUDIT_CATEGORY, OcsfClassUid } from './ocsf-class-mapping.backend.utils';\n\n/** `0` and `99` mean the same thing in every OCSF class, so they are named once. */\nexport enum OcsfCommonActivity {\n /** \"The event activity is unknown.\" */\n UNKNOWN = 0,\n /** \"The event activity is not mapped. See the `activity_name` attribute…\" */\n OTHER = 99,\n}\n\n/** Published `activity_id` members of class 3002 (authentication). */\nexport enum OcsfAuthenticationActivity {\n /** \"A new logon session was requested.\" Includes FAILED attempts — the verb is the request; the outcome rides `status_id`. */\n LOGON = 1,\n /** \"A logon session was terminated and no longer exists.\" */\n LOGOFF = 2,\n /** \"A preauthentication stage was engaged.\" Covers issuing an OTP or magic link: a stage BEFORE authentication. */\n PREAUTH = 6,\n OTHER = 99,\n}\n\n/** Published `activity_id` members of class 6003 (api_activity). */\nexport enum OcsfApiActivity {\n CREATE = 1,\n /** \"Read\" — the only CRUD verb our authorization/data-access events reliably carry. */\n READ = 2,\n UPDATE = 3,\n DELETE = 4,\n OTHER = 99,\n}\n\n/** Published `activity_id` members of class 3004 (entity_management). */\nexport enum OcsfEntityManagementActivity {\n CREATE = 1,\n READ = 2,\n UPDATE = 3,\n DELETE = 4,\n MOVE = 5,\n /** \"Enroll an existing managed entity.\" A member joining a tenant. */\n ENROLL = 6,\n UNENROLL = 7,\n ENABLE = 8,\n DISABLE = 9,\n ACTIVATE = 10,\n DEACTIVATE = 11,\n SUSPEND = 12,\n /** \"Resume (unsuspend) an existing managed entity.\" SUSPENDED is the only state our activate runs from. */\n RESUME = 13,\n OTHER = 99,\n}\n\n/** Published `activity_id` members of class 3007 (user_management). */\nexport enum OcsfUserManagementActivity {\n CREATE = 1,\n UPDATE = 2,\n DELETE = 3,\n ENABLE = 4,\n DISABLE = 5,\n LOCK = 6,\n UNLOCK = 7,\n PASSWORD_CHANGE = 8,\n PASSWORD_RESET = 9,\n ATTACH_POLICIES = 10,\n DETACH_POLICIES = 11,\n ENABLE_MFA_FACTORS = 12,\n DISABLE_MFA_FACTORS = 13,\n ASSIGN_PRIVILEGES = 14,\n REMOVE_PRIVILEGES = 15,\n ASSIGN_ROLES = 16,\n REMOVE_ROLES = 17,\n ADD_PROGRAMMATIC_CREDENTIALS = 18,\n REMOVE_PROGRAMMATIC_CREDENTIALS = 19,\n OTHER = 99,\n}\n\n/**\n * Every published activity id, per class — the membership check's source of truth.\n *\n * An activity number is only meaningful WITH its class: `1` is `Logon` in 3002 and `Create` in 6003.\n * So a row that assigns the right number under the wrong class is silently wrong, and nothing about\n * the emitted document would look malformed. {@link assertActivitiesBelongToTheirClass} closes that.\n */\nconst PUBLISHED_ACTIVITIES_BY_CLASS: Readonly<Record<OcsfClassUid, ReadonlySet<number>>> = {\n [OcsfClassUid.AUTHENTICATION]: new Set(Object.values(OcsfAuthenticationActivity).filter((v): v is number => typeof v === 'number')),\n [OcsfClassUid.API_ACTIVITY]: new Set(Object.values(OcsfApiActivity).filter((v): v is number => typeof v === 'number')),\n [OcsfClassUid.ENTITY_MANAGEMENT]: new Set(Object.values(OcsfEntityManagementActivity).filter((v): v is number => typeof v === 'number')),\n [OcsfClassUid.USER_MANAGEMENT]: new Set(Object.values(OcsfUserManagementActivity).filter((v): v is number => typeof v === 'number')),\n};\n\n/**\n * The activity each core audit event resolves to.\n *\n * **Total over `CoreAuditableEventType`**, so a new core event type cannot be added without deciding\n * its activity — the same shape the classification map now has, and for the same reason: an open set\n * silently defaulting is how `activity_id` stayed `Unknown` for every event in the first place.\n */\nexport const OCSF_ACTIVITY_BY_EVENT_TYPE: Readonly<Record<CoreAuditableEventType, number>> = {\n\n // ── AUTHENTICATION ──\n [CoreAuditableEventType.EMERGENCY_ACCESS_USED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.MACHINE_AUTH_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.MACHINE_AUTH_SUCCESS]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.OAUTH_CIMD_CLIENT_REFUSED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CODE_EXCHANGE_FAILED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.OAUTH_DYNAMIC_CLIENT_REGISTERED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.OAUTH_TOKEN_REFRESHED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.OAUTH_TOKEN_REVOKED]: OcsfAuthenticationActivity.OTHER,\n // Unlike the token-revoke sibling above (a no-oracle RFC 7009 ATTEMPT → Other), an RP-Initiated Logout\n // terminates a real user SESSION, so it is a genuine OCSF Logoff — matching USER_LOGOUT / SAML_SLO_COMPLETED.\n [CoreAuditableEventType.OAUTH_RP_INITIATED_LOGOUT]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.ONE_OFF_TOKEN_CREATED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.ONE_OFF_TOKEN_EXCHANGED]: OcsfAuthenticationActivity.OTHER,\n // Admin token-lifecycle, not an OCSF user LOGOFF — Other(99) + activity_name, matching the family.\n [CoreAuditableEventType.ONE_OFF_TOKEN_REVOKED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.SAML_ASSERTION_REPLAY_DETECTED]: OcsfAuthenticationActivity.OTHER,\n // A refused enterprise OIDC login: the provider did not report the authentication context the\n // connection demanded (`acr`). A logon attempt that failed its step-up, so Logon(1) like the\n // SAML and SSO failures beside it, not Other(99) like the OAuth CLIENT-side refusals above.\n [CoreAuditableEventType.OIDC_ACR_DEMAND_UNSATISFIED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.SAML_LOGIN_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.SAML_LOGIN_INITIATED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.SAML_LOGIN_SUCCESS]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.SAML_SLO_COMPLETED]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.SAML_SLO_INITIATED]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.USER_ACCOUNT_LOCKED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Lock(6), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_CROSS_FRONTEND_HANDOFF_ISSUED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_IDENTITY_LINK_REMOVED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_LOGIN]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_LOGIN_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_LOGOUT]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.USER_MAGIC_LINK_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_MAGIC_LINK_SENT]: OcsfAuthenticationActivity.PREAUTH,\n [CoreAuditableEventType.USER_MAGIC_LINK_VERIFIED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_MFA_DISABLED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Disable MFA Factors(13), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_MFA_EMAIL_OTP_SENT]: OcsfAuthenticationActivity.PREAUTH,\n [CoreAuditableEventType.USER_MFA_ENABLED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Enable MFA Factors(12), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_MFA_SETUP_COMPLETED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_MFA_SETUP_STARTED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_PASSKEY_AUTHENTICATION_FAILURE]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_PASSKEY_AUTHENTICATION_SUCCESS]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_PASSKEY_CLONE_SUSPECTED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_PASSKEY_REGISTERED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_PASSKEY_REMOVED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_PASSWORD_CHANGED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Password Change(8), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_PASSWORD_RESET_COMPLETED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Password Reset(9), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_PASSWORD_RESET_FORCED]: OcsfAuthenticationActivity.OTHER, // 3007 publishes Password Reset(9), but this event's category routes it to 3002, which does not\n [CoreAuditableEventType.USER_PASSWORD_RESET_REQUESTED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_PASSWORD_SET]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_REFRESH_TOKEN_REUSE_DETECTED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_SESSION_EXPIRED]: OcsfAuthenticationActivity.LOGOFF,\n /*\n * LOGOFF, like the expiry above: the session is terminated and no longer exists, which is what the\n * OCSF verb states. The DIFFERENCE between the two — time elapsed versus a cap displacing a live\n * chain — is not expressible in `activity_id`, so it rides the typed eventData and the WARNING\n * severity instead. Mapping it to OTHER would have lost the one thing a SIEM correlates on.\n */\n [CoreAuditableEventType.USER_SESSION_EVICTED]: OcsfAuthenticationActivity.LOGOFF,\n [CoreAuditableEventType.USER_SMS_OTP_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_SMS_OTP_SENT]: OcsfAuthenticationActivity.PREAUTH,\n [CoreAuditableEventType.USER_SMS_OTP_VERIFIED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_SSO_ENFORCEMENT_BLOCKED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_SSO_LOGIN]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_SSO_LOGIN_FAILED]: OcsfAuthenticationActivity.LOGON,\n [CoreAuditableEventType.USER_TOKEN_REFRESHED]: OcsfAuthenticationActivity.OTHER,\n [CoreAuditableEventType.USER_TOTP_DISABLED]: OcsfAuthenticationActivity.OTHER,\n\n // ── AUTHORIZATION ──\n // A file upload grant delegates one upload under the minter's authority; issuing/revoking it is not\n // one of 6003's CRUD verbs on a resource.\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_ISSUED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_REVOKED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.APPLICATION_SUPER_ADMIN_FLOOR_BREACHED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.CROSS_TENANT_ADMINISTRATIVE_ACCESS]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH2_PROVIDER_BLOCKED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CONSENT_BINDING_VIOLATION]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CONSENT_DENIED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CONSENT_GRANTED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_CONSENT_GRANT_PERSISTED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.OAUTH_DELEGATED_TOKEN_ISSUED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_ROLE_CHANGED]: OcsfApiActivity.OTHER, // a role change is not one of 6003 CRUD verbs\n [CoreAuditableEventType.ORGANIZATION_OWNER_FLOOR_BREACHED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_REMOVED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.ORGANIZATION_UNIT_MEMBER_ROLE_CHANGED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.PLATFORM_ACCESS_GRANT_LIFECYCLE]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.RESOURCE_OPERATION_DENIED]: OcsfApiActivity.OTHER, // the CRUD verb is runtime data (the operation), not derivable from the event type\n [CoreAuditableEventType.RESOURCE_OPERATION_PERFORMED]: OcsfApiActivity.OTHER, // the CRUD verb is runtime data (the operation), not derivable from the event type\n [CoreAuditableEventType.USER_APP_ROLES_CHANGED]: OcsfApiActivity.OTHER, // a role change is not one of 6003 CRUD verbs\n\n // ── DATA_ACCESS ──\n [CoreAuditableEventType.FIELD_ACCESS]: OcsfApiActivity.READ,\n // CREATE, not OTHER: redeeming a grant IS the creation of one FILES row — the one DATA_ACCESS event\n // whose CRUD verb is derivable from the type, like PLATFORM_DIRECTORY_ACCESS below.\n [CoreAuditableEventType.FILE_UPLOAD_GRANT_REDEEMED]: OcsfApiActivity.CREATE,\n // OTHER for both (#506): a scan CONCLUSION is not one of 6003's CRUD verbs on a resource. The file\n // row is updated as a consequence, but the event names the finding, not the write — mapping it to\n // UPDATE would tell a SIEM that a record was modified and lose that malware was found.\n [CoreAuditableEventType.FILE_MALWARE_DETECTED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.FILE_MALWARE_SCAN_FAILED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.MACHINE_ACCESS]: OcsfApiActivity.OTHER, // names a surface reach (A2A/MCP turn), not a CRUD verb on a resource\n // READ, not OTHER: enumerating a directory IS a read of resource rows, and it is the one case\n // where the CRUD verb IS derivable from the event type — the event only ever names a collection\n // read (list/search/count), never a mutation.\n [CoreAuditableEventType.PLATFORM_DIRECTORY_ACCESS]: OcsfApiActivity.READ,\n [CoreAuditableEventType.RETAINED_DATA_ACCESS]: OcsfApiActivity.READ,\n [CoreAuditableEventType.SUBJECT_DATA_EXPORT]: OcsfApiActivity.READ,\n [CoreAuditableEventType.COLLECTION_DATA_EXPORT]: OcsfApiActivity.READ,\n [CoreAuditableEventType.HTTP_API_READ_THROUGH_ACCESS]: OcsfApiActivity.READ,\n // OTHER, and it is the positive statement the table's header describes rather than a shrug: the\n // verb of an outbound provider call is a property of the OPERATION, not of the event type — the\n // same event carries `classification: READ` for one call and `WRITE` for the next, so no member of\n // this enum is true of the type. `activity_name` carries our event type, which is what OTHER\n // obliges, and the payload's `classification` carries the verb for a consumer that wants it.\n [CoreAuditableEventType.PROVIDER_OPERATION_CALL]: OcsfApiActivity.OTHER,\n // OTHER for the same reason as its sibling, and more strongly: an MCP tool's effect is not\n // declared anywhere the framework can read — the tool list is discovered from the server at turn\n // start and nothing says whether a given tool reads or writes. Mapping to CREATE or READ would be\n // asserting a verb nobody stated. `activity_name` carries our event type, which is what OTHER\n // obliges.\n [CoreAuditableEventType.MCP_TOOL_CALL]: OcsfApiActivity.OTHER,\n // OTHER, and the alternative was considered: an approval decision is not an API activity at all,\n // and UPDATE would read as \"a record was updated\" to every OCSF consumer. What was updated is a\n // pending tool call held in memory, which no OCSF class models. `activity_name` carries our own\n // event type, which is precisely what OTHER obliges.\n [CoreAuditableEventType.AGENT_TOOL_APPROVAL_MODIFIED]: OcsfApiActivity.OTHER,\n // D6 stance 6b: the declared external-erasure operation DELETED remote rows.\n [CoreAuditableEventType.HTTP_API_EXTERNAL_ERASURE]: OcsfApiActivity.DELETE,\n // D6 stance 6c: nothing was deleted — the event records a deliberate non-action.\n [CoreAuditableEventType.HTTP_API_NON_ERASURE_ACKNOWLEDGED]: OcsfApiActivity.OTHER,\n [CoreAuditableEventType.SYSTEM_CONTEXT_READ]: OcsfApiActivity.READ,\n [CoreAuditableEventType.SYSTEM_CONTEXT_WRITE]: OcsfApiActivity.OTHER, // static fallback only — refined per emission from eventData.operation (CREATE | UPDATE | UPDATE_MANY)\n\n // ── ORG_MANAGEMENT ──\n [CoreAuditableEventType.ORGANIZATION_ACTIVATED]: OcsfEntityManagementActivity.RESUME,\n [CoreAuditableEventType.ORGANIZATION_CREATED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.ORGANIZATION_DELETED]: OcsfEntityManagementActivity.DELETE,\n [CoreAuditableEventType.ORGANIZATION_DELETION_REQUESTED]: OcsfEntityManagementActivity.OTHER, // marks the tenant and opens a window; nothing is deleted yet, so Delete(4) would overstate it\n [CoreAuditableEventType.ORGANIZATION_MEMBER_INVITED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_JOINED]: OcsfEntityManagementActivity.ENROLL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_REMOVED]: OcsfEntityManagementActivity.UNENROLL,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_STATUS_CHANGED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_MEMBER_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_NOTIFICATIONS_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_PREFERENCES_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_PROFILE_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_RESTORED]: OcsfEntityManagementActivity.OTHER, // un-deletion has no 3004 member; Resume(13) is unsuspend and Activate(10) is a transient engine state\n [CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_CONFIGURED]: OcsfEntityManagementActivity.UPDATE,\n // Organization provider credentials. The credential row IS the managed entity, so the three\n // lifecycle verbs map onto its CRUD members directly — CREATE for the first grant, UPDATE for a\n // rotation (the entity persists, its secret changes), DELETE for the withdrawal.\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED]: OcsfEntityManagementActivity.UPDATE,\n // READ(2), not OTHER: resolving the credential for an outbound call reads the managed entity, and\n // READ is what an OCSF consumer's \"who accessed this secret\" query is written against. Mapping a\n // spend to OTHER(99) would take the highest-value events in this family out of every stock rule.\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_USED]: OcsfEntityManagementActivity.READ,\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_DELETED]: OcsfEntityManagementActivity.DELETE,\n // A person's own credential maps identically to the tenant's: the OCSF activity describes what was\n // done to the managed entity, and that is the same verb regardless of who owns it. WHO owns it is\n // carried by the event data, not by the activity — collapsing the two would make \"who accessed\n // this secret\" queries miss half their population.\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_SET]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_ROTATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_USED]: OcsfEntityManagementActivity.READ,\n [CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_DELETED]: OcsfEntityManagementActivity.DELETE,\n // CREATE, like the `_SET` siblings: what OCSF records is the verb done to the managed entity, and\n // a connection coming into existence is a creation however it was obtained. The fact that this one\n // came from a consent ceremony rather than a paste lives in the event DATA — an OCSF activity is\n // deliberately a small closed vocabulary, and stretching it to carry provenance would make it a\n // worse index of what happened, not a better one.\n [CoreAuditableEventType.ORGANIZATION_PROVIDER_CONNECTION_GRANTED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.USER_PROVIDER_CONNECTION_GRANTED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.ORGANIZATION_SSO_CONFIGURATION_CHANGED]: OcsfEntityManagementActivity.UPDATE,\n // An application authentication-policy change is a configuration entity being UPDATED — the same\n // OCSF shape as the SSO / SIEM / SCIM configuration-change siblings around it. (Confirmed by the\n // session that added the event: UPDATE is the intended activity.)\n [CoreAuditableEventType.APPLICATION_AUTH_POLICY_CHANGED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_SUSPENDED]: OcsfEntityManagementActivity.SUSPEND,\n [CoreAuditableEventType.ORGANIZATION_UNIT_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.ORGANIZATION_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.SAML_CERT_EXPIRING]: OcsfEntityManagementActivity.OTHER,\n [CoreAuditableEventType.SAML_METADATA_PARSED]: OcsfEntityManagementActivity.OTHER,\n [CoreAuditableEventType.SCIM_PROVISIONING_CONFIG_UPDATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.SCIM_PROVISIONING_FAILED]: OcsfEntityManagementActivity.OTHER,\n [CoreAuditableEventType.SCIM_TOKEN_CREATED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.SCIM_TOKEN_GENERATED]: OcsfEntityManagementActivity.CREATE,\n [CoreAuditableEventType.SCIM_TOKEN_REVOKED]: OcsfEntityManagementActivity.DELETE,\n [CoreAuditableEventType.SCIM_TOKEN_ROTATED]: OcsfEntityManagementActivity.UPDATE,\n [CoreAuditableEventType.WEBHOOK_ENDPOINT_TEST_DISPATCHED]: OcsfEntityManagementActivity.OTHER,\n\n // ── USER_LIFECYCLE ──\n [CoreAuditableEventType.RESOURCE_STATUS_TRANSITION_PERFORMED]: OcsfUserManagementActivity.OTHER,\n [CoreAuditableEventType.SAML_EMAIL_CHANGED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.SCIM_USER_DEACTIVATED]: OcsfUserManagementActivity.DISABLE,\n [CoreAuditableEventType.SCIM_USER_PROVISIONED]: OcsfUserManagementActivity.CREATE,\n [CoreAuditableEventType.SCIM_USER_UPDATED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_CREATED]: OcsfUserManagementActivity.CREATE,\n [CoreAuditableEventType.USER_DELETED]: OcsfUserManagementActivity.DELETE,\n [CoreAuditableEventType.USER_EMAIL_VERIFIED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_PHONE_VERIFICATION_FAILED]: OcsfUserManagementActivity.OTHER,\n [CoreAuditableEventType.USER_PHONE_VERIFIED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_REGISTERED]: OcsfUserManagementActivity.CREATE,\n [CoreAuditableEventType.USER_UPDATED]: OcsfUserManagementActivity.UPDATE,\n [CoreAuditableEventType.USER_VERIFICATION_EMAIL_RESENT]: OcsfUserManagementActivity.OTHER,\n};\n\n/**\n * Fail at module load if any row assigns an activity its own class does not publish.\n *\n * This is the check the table exists to make possible. Activity numbers are class-scoped and collide\n * across classes, so a misfiled row produces a document that is structurally valid, schema-conformant,\n * and semantically wrong — the failure mode nothing downstream can catch.\n */\nfunction assertActivitiesBelongToTheirClass(): void {\n const offenders: string[] = [];\n for (const [eventType, activityId] of Object.entries(OCSF_ACTIVITY_BY_EVENT_TYPE)) {\n const category = getAuditEventClassification(eventType).category;\n const descriptor = OCSF_CLASS_BY_AUDIT_CATEGORY[category as AuditEventCategory];\n if (!PUBLISHED_ACTIVITIES_BY_CLASS[descriptor.classUid].has(activityId)) {\n offenders.push(`${eventType} → activity ${activityId} is not published by class ${descriptor.classUid}`);\n }\n }\n if (offenders.length > 0) {\n throw new Error(`OCSF activity mapping assigns activities their class does not publish:\\n ${offenders.join('\\n ')}`);\n }\n}\nassertActivitiesBelongToTheirClass();\n\n/**\n * Resolve the OCSF activity for an event type.\n *\n * Application-defined event types are ordinary strings the engine cannot enumerate, so they resolve to\n * `UNKNOWN` — the one case where \"we cannot say\" is the truthful answer.\n */\nexport function resolveOcsfActivityId(eventType: string): number {\n return OCSF_ACTIVITY_BY_EVENT_TYPE[eventType as CoreAuditableEventType] ?? OcsfCommonActivity.UNKNOWN;\n}\n\n/**\n * The `activity_name` companion for an `OTHER` assignment, or `undefined` when the activity is specific.\n *\n * The schema's own definition of `OTHER` points the reader at `activity_name`, so emitting `OTHER`\n * without it discards the very information the value promises is available.\n *\n * Takes the RESOLVED activity rather than re-deriving it from the event type. That distinction became\n * load-bearing when 6003 gained runtime refinement: an event whose TABLE entry is `Other` but whose\n * refined activity is `Update` must NOT carry `activity_name`, and a version of this that re-derived\n * from the event type would have emitted both — a specific activity plus a companion asserting it was\n * unmapped. Two ways to answer one question is the drift this contract exists to prevent.\n */\nexport function resolveOcsfActivityName(activityId: number, eventType: string): string | undefined {\n return activityId === OcsfCommonActivity.OTHER ? eventType : undefined;\n}\n\n/**\n * OCSF `auth_protocol_id` — the NORMALISED authentication protocol.\n *\n * spec-cite: OCSF 1.9.0 — `schema.ocsf.io/api/1.9.0/classes/authentication`, the `auth_protocol_id`\n * enum. `auth_protocol` is documented as \"the authentication protocol as defined by the caption of\n * `auth_protocol_id`. In the case of Other, it is defined by the event source.\"\n */\nexport enum OcsfAuthProtocolId {\n UNKNOWN = 0,\n NTLM = 1,\n KERBEROS = 2,\n DIGEST = 3,\n OPENID = 4,\n SAML = 5,\n OAUTH_2_0 = 6,\n PAP = 7,\n CHAP = 8,\n EAP = 9,\n RADIUS = 10,\n BASIC_AUTHENTICATION = 11,\n LDAP = 12,\n OTHER = 99,\n}\n\n/** The published CAPTION for each id — what `auth_protocol` must carry when the id is not `Other`. */\nconst OCSF_AUTH_PROTOCOL_CAPTION: Readonly<Record<OcsfAuthProtocolId, string>> = {\n [OcsfAuthProtocolId.UNKNOWN]: 'Unknown',\n [OcsfAuthProtocolId.NTLM]: 'NTLM',\n [OcsfAuthProtocolId.KERBEROS]: 'Kerberos',\n [OcsfAuthProtocolId.DIGEST]: 'Digest',\n [OcsfAuthProtocolId.OPENID]: 'OpenID',\n [OcsfAuthProtocolId.SAML]: 'SAML',\n [OcsfAuthProtocolId.OAUTH_2_0]: 'OAUTH 2.0',\n [OcsfAuthProtocolId.PAP]: 'PAP',\n [OcsfAuthProtocolId.CHAP]: 'CHAP',\n [OcsfAuthProtocolId.EAP]: 'EAP',\n [OcsfAuthProtocolId.RADIUS]: 'RADIUS',\n [OcsfAuthProtocolId.BASIC_AUTHENTICATION]: 'Basic Authentication',\n [OcsfAuthProtocolId.LDAP]: 'LDAP',\n [OcsfAuthProtocolId.OTHER]: 'Other',\n};\n\n/**\n * The `AuthMethod` members that ARE a protocol OCSF normalises. Everything else resolves to `Other`.\n *\n * Deliberately partial. Three members are absent for a reason, and each absence is a decision:\n *\n * - `PASSWORD` is NOT `Basic Authentication` (11). Basic Auth is an HTTP transport scheme (RFC 7617);\n * a user typing a password into a form is not that, and the resemblance is only in the English word.\n * - `MAGIC_LINK`, `TOTP`, `SMS_OTP`, `EMAIL_OTP` and `PASSKEY` name no protocol in the published enum.\n * WebAuthn/FIDO2 in particular is absent from OCSF 1.9.0 — mapping a passkey to `Other` is the\n * accurate answer, not a shortfall.\n * - `EXTERNAL_OAUTH2` DOES map: it is OAuth 2.0 by construction.\n *\n * The `ORG_` prefix on the SSO members is SCOPE, not protocol — an organization-restricted SAML login\n * is still SAML — so those normalise cleanly.\n */\nconst OCSF_AUTH_PROTOCOL_BY_AUTH_METHOD: Readonly<Partial<Record<AuthMethod, OcsfAuthProtocolId>>> = {\n [AuthMethod.ORG_SAML]: OcsfAuthProtocolId.SAML,\n [AuthMethod.ORG_OPENID_CONNECT]: OcsfAuthProtocolId.OPENID,\n [AuthMethod.EXTERNAL_OAUTH2]: OcsfAuthProtocolId.OAUTH_2_0,\n};\n\n/** `auth_protocol` + `auth_protocol_id`, resolved together because the schema couples them. */\nexport interface OcsfAuthProtocol {\n readonly protocol: string;\n readonly protocolId: OcsfAuthProtocolId;\n}\n\n/**\n * Resolve the OCSF protocol pair for an envelope's `authMethod`.\n *\n * The two attributes are resolved TOGETHER because the schema defines one in terms of the other: when\n * the id is normalised, the string must be that id's published caption; only under `Other` may the\n * string be the producer's own value. Returning them separately invites the pairing to drift, which is\n * exactly how this shipped wrong the first time (`org_saml` with no id at all).\n *\n * `authMethod` is an OPEN string on the envelope — applications define their own — so anything outside\n * the framework's own `AuthMethod` vocabulary lands on `Other` carrying its raw value, which is\n * precisely what `Other` is for.\n */\nexport function resolveOcsfAuthProtocol(authMethod: string): OcsfAuthProtocol {\n const normalised = OCSF_AUTH_PROTOCOL_BY_AUTH_METHOD[authMethod as AuthMethod];\n return normalised === undefined\n ? { protocol: authMethod, protocolId: OcsfAuthProtocolId.OTHER }\n : { protocol: OCSF_AUTH_PROTOCOL_CAPTION[normalised], protocolId: normalised };\n}\n\n/**\n * The CRUD verb an API Activity (6003) event performed, mapped from the framework's core operation.\n *\n * spec-cite: OCSF 1.9.0 — `api_activity.activity_id` enum: 0 Unknown, 1 Create, 2 Read, 3 Update,\n * 4 Delete, 99 Other.\n *\n * The bulk forms collapse onto their singular verb: OCSF's activity names WHAT was done, and the\n * cardinality is carried separately by the envelope (`isBulkOperation` / `affectedRecordCount`).\n * `COUNT` is a Read — it answers a question about existing rows without changing any.\n */\nconst OCSF_API_ACTIVITY_BY_CORE_OPERATION: Readonly<Record<CoreResourceOperation, OcsfApiActivity>> = {\n [CoreResourceOperation.CREATE]: OcsfApiActivity.CREATE,\n [CoreResourceOperation.CREATE_MANY]: OcsfApiActivity.CREATE,\n [CoreResourceOperation.READ]: OcsfApiActivity.READ,\n [CoreResourceOperation.LIST]: OcsfApiActivity.READ,\n [CoreResourceOperation.SEARCH]: OcsfApiActivity.READ,\n [CoreResourceOperation.COUNT]: OcsfApiActivity.READ,\n [CoreResourceOperation.UPDATE]: OcsfApiActivity.UPDATE,\n [CoreResourceOperation.UPDATE_MANY]: OcsfApiActivity.UPDATE,\n [CoreResourceOperation.DELETE]: OcsfApiActivity.DELETE,\n [CoreResourceOperation.DELETE_MANY]: OcsfApiActivity.DELETE,\n};\n\n/**\n * The `eventData` keys that can name a 6003 event's CRUD verb, in precedence order.\n *\n * Three keys rather than one because the emitters spell it differently and each is authoritative for\n * its own event: `resourceOperationLike` is the core semantics a CUSTOM verb borrows (a `suspend`\n * behaving as an `update`), `operationIdentifier` is the verb on resource-operation and field-access\n * events, and `operation` is what `logSystemContextWrite` records — typed `CREATE | UPDATE |\n * UPDATE_MANY`, so it always resolves.\n *\n * Enumerated by the QUESTION (\"what names the verb on a 6003 event?\") rather than by one emitter's\n * field name, which is how `operation` was missed on the first pass.\n */\nconst OCSF_API_VERB_EVENT_DATA_KEYS = ['resourceOperationLike', 'operationIdentifier', 'operation'] as const;\n\n/**\n * Refine a 6003 event's `activity_id` from RUNTIME data, when the event type alone cannot say.\n *\n * Class 6003 is organised around the CRUD axis, and the resource-operation events (`performed` /\n * `denied`) are the bulk of what we route there — yet the event TYPE is the same string for a create\n * and a delete. So the table maps them to `Other`, and every authorization event landed in one\n * undifferentiated bucket: the same collapse `activity_id` being pinned to `Unknown` used to cause,\n * surviving one layer down after that was fixed.\n *\n * The verb is in the envelope — under one of {@link OCSF_API_VERB_EVENT_DATA_KEYS}, in that precedence\n * order. Anything else (a custom verb borrowing nothing) keeps `Other`, where `activity_name` already\n * carries the event type.\n *\n * Two consequences that are DECISIONS, not side effects:\n *\n * - **`FIELD_ACCESS` refines away from its static `Read`.** It carries `operationIdentifier`, so a\n * secret exposed during a create now reads as Create(1). That is correct: 6003's activity names what\n * the API CALL did, and the field-access nature rides `metadata.event_code`. The static `Read` remains\n * the fallback for an emission that names no operation.\n * - **`SYSTEM_CONTEXT_WRITE` stops being `Other`.** Its table comment says \"neither Create nor Update is\n * true of every emission\" — true of a STATIC mapping and not a permanent conclusion, because at\n * runtime `operation` says exactly which. This matters more than most: it is the ACL-bypass write.\n */\nexport function refineOcsfApiActivity(eventData: unknown, fallback: number): number {\n if (eventData === null || typeof eventData !== 'object') return fallback;\n const record = eventData as Readonly<Record<string, unknown>>;\n for (const key of OCSF_API_VERB_EVENT_DATA_KEYS) {\n const candidate = record[key];\n if (typeof candidate !== 'string') continue;\n const mapped = OCSF_API_ACTIVITY_BY_CORE_OPERATION[candidate as CoreResourceOperation];\n if (mapped !== undefined) return mapped;\n }\n return fallback;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ocsf-class-mapping.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,8CAA8C;AAC9C,oBAAY,eAAe;IACzB,oCAAoC;IACpC,8BAA8B,IAAI;IAClC,4BAA4B;IAC5B,oBAAoB,IAAI;CACzB;AAED;;;;;;GAMG;AACH,oBAAY,YAAY;IACtB,wEAAwE;IACxE,cAAc,OAAO;IACrB,0HAA0H;IAC1H,iBAAiB,OAAO;IACxB,mGAAmG;IACnG,eAAe,OAAO;IACtB,wFAAwF;IACxF,YAAY,OAAO;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,uGAAuG;IACvG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CA0BlG,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,mBAAmB,CAQlF"}
1
+ {"version":3,"file":"ocsf-class-mapping.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,8CAA8C;AAC9C,oBAAY,eAAe;IACzB,oCAAoC;IACpC,8BAA8B,IAAI;IAClC,4BAA4B;IAC5B,oBAAoB,IAAI;CACzB;AAED;;;;;;GAMG;AACH,oBAAY,YAAY;IACtB,wEAAwE;IACxE,cAAc,OAAO;IACrB,0HAA0H;IAC1H,iBAAiB,OAAO;IACxB,mGAAmG;IACnG,eAAe,OAAO;IACtB,wFAAwF;IACxF,YAAY,OAAO;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,uGAAuG;IACvG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CA0BlG,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,mBAAmB,CAQlF"}
@@ -1 +1 @@
1
- {"version":3,"file":"siem-dictionary.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siem-dictionary.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"siem-ocsf-projection.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,KAAK,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAe,YAAY,EAAoB,MAAM,oCAAoC,CAAC;AAGjG,wDAAwD;AACxD,oBAAY,kBAAkB;IAC5B,mDAAmD;IACnD,SAAS,cAAc;IACvB,4FAA4F;IAC5F,cAAc,mBAAmB;IACjC,yFAAyF;IACzF,aAAa,kBAAkB;CAChC;AAED,iGAAiG;AACjG;;;;;;;GAOG;AACH,oBAAY,kBAAkB;IAC5B,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACvC;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAEtF,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAEjG;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,SAAS,MAAM,EAAE,CAEzE;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAC7B;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC;IAC5C,qGAAqG;IACrG,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,gGAAgG;IAChG,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,cAAc,EAAE,GAAG,SAAS,CAAC;CACnG,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,wGAAwG;AACxG,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,QAAQ,EAAE,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC,0BAA0B,CAAC,CAEhG;AAsBD;;;;GAIG;AACH,oBAAY,cAAc;IACxB,OAAO,IAAI;IACX,aAAa,IAAI;IACjB,MAAM,IAAI;IACV,IAAI,IAAI;CACT;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,kBAAkB,GAAG,cAAc,CAUxF;AAED;;;GAGG;AACH,oBAAY,YAAY;IACtB,OAAO,IAAI;IACX,OAAO,IAAI;IACX,OAAO,IAAI;CACZ;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CASjF;AAED,oGAAoG;AACpG,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAcxC;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,sBAAsB,CAAC,0BAA0B,CAgQ9E,CAAC;AAsBF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwC5F"}
1
+ {"version":3,"file":"siem-ocsf-projection.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"siem-projection-contract.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siem-projection-contract.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-actor.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/utils/audit-actor.backend.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAE5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,CAoB/F"}
1
+ {"version":3,"file":"audit-actor.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/utils/audit-actor.backend.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAE5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,CAoB/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"layer2-audit-provider-boot-diagnostic.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D;;;;;OAKG;IACH,yCAAyC,EAAE,OAAO,CAAC;IACnD;;;OAGG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC;;;;OAIG;IACH,6BAA6B,EAAE,MAAM,CAAC;CACvC,GAAG,OAAO,CAMV"}
1
+ {"version":3,"file":"layer2-audit-provider-boot-diagnostic.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D;;;;;OAKG;IACH,yCAAyC,EAAE,OAAO,CAAC;IACnD;;;OAGG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC;;;;OAIG;IACH,6BAA6B,EAAE,MAAM,CAAC;CACvC,GAAG,OAAO,CAMV"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/compliance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/compliance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retention-hide-predicate.backend.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/privacy/retention-hide-predicate.backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,eAA0C,CAAC;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,kDAAkD,EAAE,SAAS,qBAAqB,EAK9F,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,qBAAqB,EAAE,yBAAyB,GAAG,SAAS,GAAG,IAAI,GAClE,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,eAAe,EAAE,CAE/D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,IAAI,eAAe,GAAG,SAAS,CAG/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAExE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qCAAqC,CACnD,gBAAgB,EAAE,yBAAyB,EAC3C,qBAAqB,EAAE,qBAAqB,GAC3C,OAAO,CAGT;AAED;;;;;;;;;GASG;AACH,wBAAgB,4CAA4C,CAC1D,gBAAgB,EAAE,yBAAyB,GAAG,SAAS,GACtD,OAAO,CAET;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9E,MAAM,EAAE,OAAO,GACd,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAEzF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,SAAS,MAAM,EACpE,MAAM,EAAE,OAAO,EACf,qBAAqB,EAAE,yBAAyB,GAAG,SAAS,GAAG,IAAI,EACnE,gBAAgB,EAAE,yBAAyB,EAC3C,qBAAqB,EAAE,qBAAqB,GAC3C,OAAO,CAKT;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yCAAyC,CACvD,aAAa,EAAE,eAAe,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED;;;;;;;GAOG;AACH,wBAAgB,yCAAyC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,aAAa,EAAE,eAAe,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qCAAqC,CACnD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAC9C,MAAM,CAER"}
1
+ {"version":3,"file":"retention-hide-predicate.backend.d.ts","sourceRoot":"","sources":["../../../../src/compliance/privacy/retention-hide-predicate.backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,eAA0C,CAAC;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,kDAAkD,EAAE,SAAS,qBAAqB,EAK9F,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,qBAAqB,EAAE,yBAAyB,GAAG,SAAS,GAAG,IAAI,GAClE,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,eAAe,EAAE,CAE/D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,IAAI,eAAe,GAAG,SAAS,CAG/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAExE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qCAAqC,CACnD,gBAAgB,EAAE,yBAAyB,EAC3C,qBAAqB,EAAE,qBAAqB,GAC3C,OAAO,CAGT;AAED;;;;;;;;;GASG;AACH,wBAAgB,4CAA4C,CAC1D,gBAAgB,EAAE,yBAAyB,GAAG,SAAS,GACtD,OAAO,CAET;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9E,MAAM,EAAE,OAAO,GACd,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAEzF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,SAAS,MAAM,EACpE,MAAM,EAAE,OAAO,EACf,qBAAqB,EAAE,yBAAyB,GAAG,SAAS,GAAG,IAAI,EACnE,gBAAgB,EAAE,yBAAyB,EAC3C,qBAAqB,EAAE,qBAAqB,GAC3C,OAAO,CAKT;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yCAAyC,CACvD,aAAa,EAAE,eAAe,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED;;;;;;;GAOG;AACH,wBAAgB,yCAAyC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,aAAa,EAAE,eAAe,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qCAAqC,CACnD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAC9C,MAAM,CAER"}
@@ -1 +1 @@
1
- {"version":3,"file":"subject-erasure-external-effects.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/privacy/services/subject-erasure-external-effects.backend.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,mCAAmC,EACzC,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;GASG;AACH,MAAM,WAAW,mCAAmC;IAClD,mBAAmB,EAAE,YAAY,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,CAAC,mBAAmB,EAAE,YAAY,GAAG,OAAO,CAAC;IACtD,GAAG,CAAC,OAAO,EAAE,mCAAmC,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;CACjG;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,mDAAmD;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAE9D;;;OAGG;IACI,QAAQ,CAAC,MAAM,EAAE,4BAA4B,GAAG,IAAI;IAS3D,6FAA6F;IACtF,UAAU,CAAC,mBAAmB,EAAE,YAAY,GAAG,4BAA4B,EAAE;IAIpF;;;;;;OAMG;IACU,MAAM,CACjB,OAAO,EAAE,mCAAmC,EAC5C,WAAW,GAAE,MAAU,GACtB,OAAO,CAAC,mCAAmC,EAAE,CAAC;YAWnC,MAAM;CAgCrB;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,SAAS,mCAAmC,EAAE,GACvD,mCAAmC,EAAE,CAEvC"}
1
+ {"version":3,"file":"subject-erasure-external-effects.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/privacy/services/subject-erasure-external-effects.backend.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,mCAAmC,EACzC,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;GASG;AACH,MAAM,WAAW,mCAAmC;IAClD,mBAAmB,EAAE,YAAY,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,CAAC,mBAAmB,EAAE,YAAY,GAAG,OAAO,CAAC;IACtD,GAAG,CAAC,OAAO,EAAE,mCAAmC,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;CACjG;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,mDAAmD;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAE9D;;;OAGG;IACI,QAAQ,CAAC,MAAM,EAAE,4BAA4B,GAAG,IAAI;IAS3D,6FAA6F;IACtF,UAAU,CAAC,mBAAmB,EAAE,YAAY,GAAG,4BAA4B,EAAE;IAIpF;;;;;;OAMG;IACU,MAAM,CACjB,OAAO,EAAE,mCAAmC,EAC5C,WAAW,GAAE,MAAU,GACtB,OAAO,CAAC,mCAAmC,EAAE,CAAC;YAWnC,MAAM;CAgCrB;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,SAAS,mCAAmC,EAAE,GACvD,mCAAmC,EAAE,CAEvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"subject-session-revocation.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/privacy/services/subject-session-revocation.backend.service.ts"],"names":[],"mappings":"AAEA,oHAAoH;AACpH,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,sCAAsC;IACjD,OAAO,CAAC,OAAO,CAAsC;IAErD;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAIrD,sGAAsG;IACtG,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED;;;;;;OAMG;IACU,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CASrE"}
1
+ {"version":3,"file":"subject-session-revocation.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/privacy/services/subject-session-revocation.backend.service.ts"],"names":[],"mappings":"AAEA,oHAAoH;AACpH,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,sCAAsC;IACjD,OAAO,CAAC,OAAO,CAAsC;IAErD;;;;OAIG;IACI,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAIrD,sGAAsG;IACtG,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED;;;;;;OAMG;IACU,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CASrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"application-runtime-profile.backend.d.ts","sourceRoot":"","sources":["../../../../../src/config/bootstrap/application-runtime-profile.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,oBAAY,yBAAyB;IACnC;;;;;;;OAOG;IACH,mBAAmB,wBAAwB;IAC3C;;;;;OAKG;IACH,MAAM,WAAW;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,uCAAuC;IACtD;;;;;;;;OAQG;IACH,2CAA2C,EAAE,OAAO,CAAC;IACrD;;;;;;;;;OASG;IACH,sCAAsC,EAAE,OAAO,CAAC;IAChD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,kCAAkC,EAAE,OAAO,CAAC;IAC5C;;;OAGG;IACH,oCAAoC,EAAE,OAAO,CAAC;IAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,6BAA6B,EAAE,OAAO,CAAC;IAEvC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,qCAAqC,EAAE,OAAO,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,sCAAsC,EAAE,OAAO,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,8CAA8C,CAC5D,OAAO,EAAE,yBAAyB,GACjC,uCAAuC,CA0DzC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,+BAA+B,EAAE,OAAO,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,yBAAyB,GACjC,8BAA8B,CAahC"}
1
+ {"version":3,"file":"application-runtime-profile.backend.d.ts","sourceRoot":"","sources":["../../../../src/config/bootstrap/application-runtime-profile.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,oBAAY,yBAAyB;IACnC;;;;;;;OAOG;IACH,mBAAmB,wBAAwB;IAC3C;;;;;OAKG;IACH,MAAM,WAAW;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,uCAAuC;IACtD;;;;;;;;OAQG;IACH,2CAA2C,EAAE,OAAO,CAAC;IACrD;;;;;;;;;OASG;IACH,sCAAsC,EAAE,OAAO,CAAC;IAChD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,kCAAkC,EAAE,OAAO,CAAC;IAC5C;;;OAGG;IACH,oCAAoC,EAAE,OAAO,CAAC;IAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,6BAA6B,EAAE,OAAO,CAAC;IAEvC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,qCAAqC,EAAE,OAAO,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,sCAAsC,EAAE,OAAO,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,8CAA8C,CAC5D,OAAO,EAAE,yBAAyB,GACjC,uCAAuC,CA0DzC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,+BAA+B,EAAE,OAAO,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,yBAAyB,GACjC,8BAA8B,CAahC"}
@@ -1 +1 @@
1
- {"version":3,"file":"application-runtime-profile.backend.js","sourceRoot":"","sources":["../../../../../src/config/bootstrap/application-runtime-profile.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAN,IAAY,yBAiBX;AAjBD,WAAY,yBAAyB;IACnC;;;;;;;OAOG;IACH,wEAA2C,CAAA;IAC3C;;;;;OAKG;IACH,8CAAiB,CAAA;AACnB,CAAC,EAjBW,yBAAyB,KAAzB,yBAAyB,QAiBpC;AAoJD;;;;;;;GAOG;AACH,MAAM,UAAU,8CAA8C,CAC5D,OAAkC;IAElC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,yBAAyB,CAAC,mBAAmB;YAChD,OAAO;gBACL,2CAA2C,EAAE,IAAI;gBACjD,sCAAsC,EAAE,IAAI;gBAC5C,yEAAyE;gBACzE,wEAAwE;gBACxE,0DAA0D;gBAC1D,kCAAkC,EAAE,IAAI;gBACxC,sFAAsF;gBACtF,yEAAyE;gBACzE,oCAAoC,EAAE,IAAI;gBAC1C,sEAAsE;gBACtE,mEAAmE;gBACnE,gBAAgB;gBAChB,6BAA6B,EAAE,IAAI;gBACnC,qCAAqC,EAAE,IAAI;gBAC3C,sCAAsC,EAAE,IAAI;aAC7C,CAAC;QACJ,KAAK,yBAAyB,CAAC,MAAM;YACnC,OAAO;gBACL,8DAA8D;gBAC9D,sEAAsE;gBACtE,qEAAqE;gBACrE,mCAAmC;gBACnC,2CAA2C,EAAE,KAAK;gBAClD,uEAAuE;gBACvE,sEAAsE;gBACtE,qEAAqE;gBACrE,4DAA4D;gBAC5D,sCAAsC,EAAE,KAAK;gBAC7C,uEAAuE;gBACvE,yEAAyE;gBACzE,0EAA0E;gBAC1E,uEAAuE;gBACvE,8BAA8B;gBAC9B,kCAAkC,EAAE,KAAK;gBACzC,wFAAwF;gBACxF,0FAA0F;gBAC1F,oCAAoC,EAAE,KAAK;gBAC3C,oEAAoE;gBACpE,yEAAyE;gBACzE,mEAAmE;gBACnE,mDAAmD;gBACnD,6BAA6B,EAAE,KAAK;gBACpC,qCAAqC,EAAE,KAAK;gBAC5C,yEAAyE;gBACzE,wEAAwE;gBACxE,sCAAsC,EAAE,KAAK;aAC9C,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,SAAS,GAAU,OAAO,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,SAAS,CAAC,gEAAgE,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAyCD;;;;GAIG;AACH,MAAM,UAAU,qCAAqC,CACnD,OAAkC;IAElC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,yBAAyB,CAAC,mBAAmB;YAChD,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,yBAAyB,CAAC,MAAM;YACnC,OAAO,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,SAAS,GAAU,OAAO,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,SAAS,CAAC,8DAA8D,CACxH,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["/**\n * WHICH RUNTIME is booting the shared application lifecycle, and WHICH BOOT\n * ASSERTIONS therefore apply to it.\n *\n * ## The problem this solves\n *\n * `StartApplicationBackendService` is booted by more than one kind of runtime.\n * Historically it had no notion of which one, so every boot-time validator ran\n * against every runtime — including validators asserting things that are\n * structurally meaningless for that runtime. Each time one fired, the fix was to\n * make the runtime CARRY the declaration it could never use, which pushed the\n * runtime further from its own semantics:\n *\n * - a minion mounts no MCP/A2A transport, yet had to declare every named\n * resource-server instance or fail closed on `operation.mcp.servers`\n * membership refs;\n * - a minion had to carry a binding for EVERY generated-PDF field in the whole\n * application, including resources it can never touch.\n *\n * Both produced production-shaped crash-loops. The root cause is not the\n * individual declaration — it is that the framework had no way to ask *\"does\n * this assertion apply to the runtime I am booting?\"*.\n *\n * ## Not the same concept as the runtime-control flags\n *\n * `headlessMode` / `skipCronSync` / `skipJobConsumers` answer a different\n * question: **\"should I START this subsystem?\"** They are host-authored controls\n * over what gets wired up. A runtime profile answers **\"does this DECLARATION\n * CLASS apply to me at all?\"**. The two are deliberately not merged: a runtime\n * may legitimately skip starting the HTTP server while still wanting its\n * transport declarations validated (a validation-only boot, for instance).\n *\n * ## Not the same concept as `BackgroundRuntimeType`\n *\n * `BackgroundRuntimeType` (`MINION` | `WORKER`) is a *deployable runtime kind* —\n * a docker-compose service, a K8s workload, a provider-runtime scope. This enum\n * is about *boot-assertion applicability* inside a single process. Today the two\n * vocabularies partially overlap, but they answer different questions and must\n * not be collapsed because their members currently coincide. Notably, a WORKER\n * has no member here at all: workers never boot this lifecycle (they are\n * standalone by design, with no backing-service access), so giving them a\n * profile would invent a member with no referent.\n *\n * See `.claude/plans/minion-runtime-scope.md` (Step 2, OQ-2).\n */\nexport enum ApplicationRuntimeProfile {\n /**\n * The application's own backend service. Serves the full public surface — HTTP\n * API, MCP servers, A2A agents, generated-PDF rendering — so every boot\n * assertion applies to it. This is the default for any host that does not\n * declare otherwise, which keeps the fail-closed direction correct: a new\n * runtime that forgets to declare its profile is over-validated, never\n * under-validated.\n */\n APPLICATION_BACKEND = 'application_backend',\n /**\n * A minion — a background digital worker of the application owner. Boots the\n * shared lifecycle to obtain the resource graph, DI container, and provider\n * bindings, but mounts no externally-addressable transport and serves no\n * human-facing surface.\n */\n MINION = 'minion',\n}\n\n/**\n * Boot assertions whose applicability varies by runtime.\n *\n * Every trait is phrased as an ASSERTION the framework makes, not as a\n * capability the runtime has. That distinction is load-bearing: a minion may\n * well render a PDF, so the honest trait is not \"renders PDFs\" but \"is required\n * to carry a COMPLETE set of PDF bindings for the whole application\". Phrasing\n * these as capabilities would have quietly removed working functionality.\n */\nexport interface ApplicationRuntimeProfileBootAssertions {\n /**\n * Whether every `operation.mcp.servers` / agent `actorSystemRefs` membership\n * ref must resolve to a declared resource-server instance.\n *\n * Applies only to runtimes that actually SERVE those transports. For a runtime\n * that mounts none, an unresolvable ref describes a surface it does not\n * expose — asserting on it fails a boot over a declaration that could never be\n * read.\n */\n assertsResourceServerMembershipCompleteness: boolean;\n /**\n * Whether EVERY generated-PDF file field in the resource graph must have a\n * backend binding.\n *\n * Deliberately narrow: this gates only the COMPLETENESS half of PDF binding\n * validation. The coherence half — a binding declared for a field that is not\n * a generated PDF field, or pointing at the wrong template id — always runs,\n * for every runtime. What you DID declare must always be correct; being\n * required to declare ALL of it is what varies.\n */\n assertsGeneratedPdfBindingCompleteness: boolean;\n /**\n * Whether this runtime is EXPECTED to host the Layer-2 audit provider fan-out,\n * so an ENABLED `COMPLIANCE_AUDIT_TRAIL` capability that resolves NO provider is\n * a genuine misconfiguration worth a startup warning — as opposed to the\n * expected, by-design posture of a runtime that is legitimately Layer-1-only.\n *\n * Different in KIND from the two completeness assertions above: those gate\n * fail-CLOSED boot validators that THROW. This gates a fail-OPEN diagnostic — a\n * `logger.warn`, never a throw — because Layer-1 database audit is unaffected\n * either way and the runtime still boots. What varies by profile is only whether\n * \"enabled but nothing serves it\" is a SIGNAL or NOISE for this runtime.\n *\n * Only the application backend installs the Layer-2 audit sink — the immudb node\n * client is present only there — and its `immudb.audit-reconcile` cron backfills\n * every Layer-1 `AUDIT_LOGS` row, INCLUDING rows emitted by minions, into the\n * Layer-2 ledger. So an auxiliary runtime resolving no audit provider is correct\n * by construction; warning there is false-alarm noise on every restart that\n * trains operators to ignore the channel. The backend resolving no provider is\n * the real misconfiguration this diagnostic exists to surface — which is why the\n * fail-closed default profile (`APPLICATION_BACKEND`) asserts it.\n *\n * assurance-control: WILDO.AUDIT.SECURITY_EVENT — the absence of the Layer-2\n * provider audit fan-out is diagnosed on the runtime accountable for hosting it,\n * and only there.\n */\n assertsLayer2AuditProviderPresence: boolean;\n /**\n * Whether ENABLED members of `ENGINE_CAPABILITIES_REQUIRING_A_PROVIDER_WHEN_ENABLED` must resolve a\n * provider on this host (#328). The application's own `required` flags are asserted everywhere.\n */\n assertsEngineCapabilityProviderFloor: boolean;\n /**\n * Whether this runtime performs boot-time SCHEMA/DATA MAINTENANCE over the\n * application's collections — the retention-marker backfill and the drifted\n * unique-index reconciliation.\n *\n * Not a capability question (\"could it?\") but an ownership one (\"is it the\n * runtime accountable for it?\"). Maintenance of this kind is application-WIDE\n * and belongs to exactly one runtime:\n *\n * - it writes to every retention-governed collection, including ones a\n * confined runtime has no grant for and no business touching;\n * - several runtimes doing it concurrently race each other over the same rows\n * and indexes for no benefit;\n * - it is a migration, and a migration wants one owner.\n *\n * Covers THREE boot steps, and the third only became visible after the first\n * two were gated: the retention-marker backfill, the drifted-unique-index\n * reconciliation, and the declared-unique-index build+verification. The last\n * one BUILDS as well as asserts — `mongooseModel.init()` creates a declared\n * index, which is a write — so it belongs on the same side of the gate.\n *\n * Discovered the hard way (2026-08-12), twice in a row: once a minion's Mongo\n * user became collection-scoped, its boot ran `updateMany` on `users` — a\n * collection it had never declared — and crash-looped on `not authorized`.\n * Gating that surfaced the next one immediately: `create: \"organizations\"`,\n * 60 declared indexes it could not build and was not accountable for.\n *\n * The containment was right both times; the minion was doing the application\n * backend's job. Granting `users` to a scraper to \"fix\" it would have inverted\n * the whole point. The lesson generalises past these three: a boot step that\n * WRITES to the application's schema belongs to the runtime that owns the\n * schema, and adding one without asking which runtime owns it is how a\n * confined runtime acquires an authority nobody intended.\n */\n performsBootSchemaMaintenance: boolean;\n\n /**\n * Whether this runtime OBSERVES the administrative-continuity floors at boot — the report that\n * names organizations left without a usable owner, and applications left without a usable\n * super-administrator.\n *\n * A separate assertion from {@link performsBootSchemaMaintenance} rather than a reuse of it,\n * because the two are different authorities that happen to share a containment argument. One\n * WRITES the application's schema; this one READS the application's whole administrative\n * population. Collapsing them would make \"may this runtime repair the schema?\" and \"may this\n * runtime audit who administers the tenant?\" one switch, and a future profile that wants one\n * without the other would have nowhere to say so.\n *\n * FALSE for a confined runtime, for the reason `performsBootSchemaMaintenance` already generalises:\n * the report reads `users` and `organizations` across the whole application, which a table-scoped\n * role has neither the grants nor the accountability for. Observed 2026-08-24 on a clean-room\n * PostgreSQL boot — `permission denied for table users` / `for table organizations`, twice per\n * boot, from the marketing-scrapper minion. It never blocked the boot (the report is non-fatal by\n * design), which is exactly why it survived: a recurring, ignorable error in a healthy startup.\n *\n * Note that the sibling's JSDoc had ALREADY named this hazard — \"granting `users` to a scraper to\n * 'fix' it would have inverted the whole point\" — one boot step before it happened again. The\n * lesson was recorded; the next step added simply did not consult it.\n */\n reportsAdministrativeContinuityFloors: boolean;\n /**\n * Whether this runtime PROVES at boot that its persistence adapter can commit\n * the native transactions the application's authored boundaries require.\n *\n * The probe issues a transaction against a synthetic collection\n * (`__wildo_transaction_readiness_probe`) that no `resourceAccess` declares or\n * ever could, so a collection-scoped runtime is refused by construction.\n *\n * More importantly it proves an INFRASTRUCTURE property — \"does this Mongo\n * deployment support multi-document transactions?\" — which is identical for\n * every runtime pointed at that database, and which the application backend\n * already proves. The boundaries it enumerates are the backend's too\n * (`authentication.self-registration` is not something a minion serves; a\n * minion is never a user, D15).\n *\n * Stated trade: a minion no longer fails FAST on a deployment whose adapter\n * cannot do transactions — it would fail on its first transactional write\n * instead. Acceptable because the backend fails fast on the same deployment,\n * and because the alternative is granting every confined runtime access to a\n * probe collection nobody declared.\n */\n assertsPersistenceTransactionReadiness: boolean;\n}\n\n/**\n * The single authority mapping a runtime profile to its boot assertions.\n *\n * Exhaustive by construction: the `never` fallthrough makes adding a profile\n * member a COMPILE error until its assertions are decided. That is the point —\n * the failure mode this whole mechanism exists to prevent is a new runtime\n * silently inheriting assertions nobody considered.\n */\nexport function resolveApplicationRuntimeProfileBootAssertions(\n profile: ApplicationRuntimeProfile,\n): ApplicationRuntimeProfileBootAssertions {\n switch (profile) {\n case ApplicationRuntimeProfile.APPLICATION_BACKEND:\n return {\n assertsResourceServerMembershipCompleteness: true,\n assertsGeneratedPdfBindingCompleteness: true,\n // The backend is the SOLE host of the Layer-2 audit sink (immudb-node is\n // installed only here), so an enabled audit capability with no resolved\n // provider is a genuine misconfiguration it must surface.\n assertsLayer2AuditProviderPresence: true,\n // The backend is the host that SERVES email, billing and SMS, so an enabled slot with\n // nothing behind it is a misconfiguration it must refuse at boot (#328).\n assertsEngineCapabilityProviderFloor: true,\n // The backend owns application-wide schema maintenance. It is the one\n // runtime holding database-wide authority, and a migration wants a\n // single owner.\n performsBootSchemaMaintenance: true,\n reportsAdministrativeContinuityFloors: true,\n assertsPersistenceTransactionReadiness: true,\n };\n case ApplicationRuntimeProfile.MINION:\n return {\n // A minion mounts no MCP/A2A transport. It does not carry the\n // declarations at all (they are excluded from the minion projection),\n // so asserting membership against an empty registry would fail every\n // ref the resource graph declares.\n assertsResourceServerMembershipCompleteness: false,\n // A minion carries the application's PDF bindings and CAN render a PDF\n // if one is bound. What it is not required to do is account for every\n // generated-PDF field in the application, including on resources its\n // `resourceAccess` whitelist forbids it from ever touching.\n assertsGeneratedPdfBindingCompleteness: false,\n // A minion is Layer-1-only by design: it never hosts the Layer-2 audit\n // fan-out, and the backend's `immudb.audit-reconcile` cron backfills the\n // minion's `AUDIT_LOGS` rows into Layer-2. Resolving no audit provider is\n // therefore correct, not a misconfiguration — warning on every restart\n // would be false-alarm noise.\n assertsLayer2AuditProviderPresence: false,\n // A minion's registry is filtered to ITS scope; the backend serves the engine flows, so\n // an enabled email/billing/SMS slot resolving nothing here is the normal topology (#328).\n assertsEngineCapabilityProviderFloor: false,\n // A minion must NOT. Its database user is collection-scoped to what\n // `resourceAccess` declared, so a backfill over every retention-governed\n // collection is both unauthorised and not its concern. The backend\n // performs it; the minion simply reads the result.\n performsBootSchemaMaintenance: false,\n reportsAdministrativeContinuityFloors: false,\n // Same reason, one layer up: the probe touches a synthetic collection no\n // grant covers, and proves a deployment-wide property the backend owns.\n assertsPersistenceTransactionReadiness: false,\n };\n default: {\n const unhandled: never = profile;\n throw new Error(\n `Unhandled ApplicationRuntimeProfile '${String(unhandled)}' — every profile must declare its boot assertions explicitly.`,\n );\n }\n }\n}\n\n/**\n * Runtime access policy — how this runtime's PRIVILEGED accesses behave while it runs.\n *\n * Deliberately separate from {@link ApplicationRuntimeProfileBootAssertions}: boot\n * assertions are evaluated once, at startup, and answer \"is this configuration\n * coherent for me?\". This answers \"what must hold every time I exercise privilege?\",\n * which is a different lifecycle and a different failure mode. Folding them together\n * would mean a boot-time concern and a per-call concern share a shape and drift into\n * each other.\n */\nexport interface ApplicationRuntimeAccessPolicy {\n /**\n * Whether a privileged system-access READ must be PROVABLY audited before its data\n * is handed to the caller — i.e. if the audit cannot be written, the caller does not\n * get the data.\n *\n * This is the fail-closed half of the accountable-bypass doctrine (D9 + OQ-5). The\n * system-access door legitimately bypasses per-tenant authorization; what makes that\n * acceptable for a non-human background worker is that every passage leaves evidence.\n * An accountable bypass that stops being recorded is just a bypass.\n *\n * Scoped to the MINION profile ONLY, deliberately. Applying it to the application\n * backend would make the framework's most common internal read path depend on audit\n * availability — converting an audit hiccup into an application-wide outage, a\n * self-inflicted denial of service. A minion's privileged reads are the elevated,\n * least frequent, least latency-sensitive case, which is exactly where the trade\n * favours accountability over availability.\n *\n * READS only. A write cannot be unwound by refusing to report it — its audit is\n * already deferred to the transaction's post-commit queue, so failing afterwards\n * would leave the mutation committed AND the caller erroring, inviting a retry that\n * duplicates it. See the plan's Step 3b limitations.\n *\n * assurance-control: WILDO.AUDIT.SECURITY_EVENT — privileged access by a non-human\n * runtime is not merely audited, it is audited or refused.\n */\n requiresAccountableSystemAccess: boolean;\n}\n\n/**\n * The single authority mapping a runtime profile to its access policy. Exhaustive by\n * construction for the same reason as the boot-assertion resolver: a new runtime must\n * DECIDE this, never inherit it by omission.\n */\nexport function resolveApplicationRuntimeAccessPolicy(\n profile: ApplicationRuntimeProfile,\n): ApplicationRuntimeAccessPolicy {\n switch (profile) {\n case ApplicationRuntimeProfile.APPLICATION_BACKEND:\n return { requiresAccountableSystemAccess: false };\n case ApplicationRuntimeProfile.MINION:\n return { requiresAccountableSystemAccess: true };\n default: {\n const unhandled: never = profile;\n throw new Error(\n `Unhandled ApplicationRuntimeProfile '${String(unhandled)}' — every profile must declare its access policy explicitly.`,\n );\n }\n }\n}\n"]}
1
+ {"version":3,"file":"application-runtime-profile.backend.js","sourceRoot":"","sources":["../../../../src/config/bootstrap/application-runtime-profile.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAN,IAAY,yBAiBX;AAjBD,WAAY,yBAAyB;IACnC;;;;;;;OAOG;IACH,wEAA2C,CAAA;IAC3C;;;;;OAKG;IACH,8CAAiB,CAAA;AACnB,CAAC,EAjBW,yBAAyB,KAAzB,yBAAyB,QAiBpC;AAoJD;;;;;;;GAOG;AACH,MAAM,UAAU,8CAA8C,CAC5D,OAAkC;IAElC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,yBAAyB,CAAC,mBAAmB;YAChD,OAAO;gBACL,2CAA2C,EAAE,IAAI;gBACjD,sCAAsC,EAAE,IAAI;gBAC5C,yEAAyE;gBACzE,wEAAwE;gBACxE,0DAA0D;gBAC1D,kCAAkC,EAAE,IAAI;gBACxC,sFAAsF;gBACtF,yEAAyE;gBACzE,oCAAoC,EAAE,IAAI;gBAC1C,sEAAsE;gBACtE,mEAAmE;gBACnE,gBAAgB;gBAChB,6BAA6B,EAAE,IAAI;gBACnC,qCAAqC,EAAE,IAAI;gBAC3C,sCAAsC,EAAE,IAAI;aAC7C,CAAC;QACJ,KAAK,yBAAyB,CAAC,MAAM;YACnC,OAAO;gBACL,8DAA8D;gBAC9D,sEAAsE;gBACtE,qEAAqE;gBACrE,mCAAmC;gBACnC,2CAA2C,EAAE,KAAK;gBAClD,uEAAuE;gBACvE,sEAAsE;gBACtE,qEAAqE;gBACrE,4DAA4D;gBAC5D,sCAAsC,EAAE,KAAK;gBAC7C,uEAAuE;gBACvE,yEAAyE;gBACzE,0EAA0E;gBAC1E,uEAAuE;gBACvE,8BAA8B;gBAC9B,kCAAkC,EAAE,KAAK;gBACzC,wFAAwF;gBACxF,0FAA0F;gBAC1F,oCAAoC,EAAE,KAAK;gBAC3C,oEAAoE;gBACpE,yEAAyE;gBACzE,mEAAmE;gBACnE,mDAAmD;gBACnD,6BAA6B,EAAE,KAAK;gBACpC,qCAAqC,EAAE,KAAK;gBAC5C,yEAAyE;gBACzE,wEAAwE;gBACxE,sCAAsC,EAAE,KAAK;aAC9C,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,SAAS,GAAU,OAAO,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,SAAS,CAAC,gEAAgE,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAyCD;;;;GAIG;AACH,MAAM,UAAU,qCAAqC,CACnD,OAAkC;IAElC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,yBAAyB,CAAC,mBAAmB;YAChD,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC;QACpD,KAAK,yBAAyB,CAAC,MAAM;YACnC,OAAO,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,SAAS,GAAU,OAAO,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,SAAS,CAAC,8DAA8D,CACxH,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["/**\n * WHICH RUNTIME is booting the shared application lifecycle, and WHICH BOOT\n * ASSERTIONS therefore apply to it.\n *\n * ## The problem this solves\n *\n * `StartApplicationBackendService` is booted by more than one kind of runtime.\n * Historically it had no notion of which one, so every boot-time validator ran\n * against every runtime — including validators asserting things that are\n * structurally meaningless for that runtime. Each time one fired, the fix was to\n * make the runtime CARRY the declaration it could never use, which pushed the\n * runtime further from its own semantics:\n *\n * - a minion mounts no MCP/A2A transport, yet had to declare every named\n * resource-server instance or fail closed on `operation.mcp.servers`\n * membership refs;\n * - a minion had to carry a binding for EVERY generated-PDF field in the whole\n * application, including resources it can never touch.\n *\n * Both produced production-shaped crash-loops. The root cause is not the\n * individual declaration — it is that the framework had no way to ask *\"does\n * this assertion apply to the runtime I am booting?\"*.\n *\n * ## Not the same concept as the runtime-control flags\n *\n * `headlessMode` / `skipCronSync` / `skipJobConsumers` answer a different\n * question: **\"should I START this subsystem?\"** They are host-authored controls\n * over what gets wired up. A runtime profile answers **\"does this DECLARATION\n * CLASS apply to me at all?\"**. The two are deliberately not merged: a runtime\n * may legitimately skip starting the HTTP server while still wanting its\n * transport declarations validated (a validation-only boot, for instance).\n *\n * ## Not the same concept as `BackgroundRuntimeType`\n *\n * `BackgroundRuntimeType` (`MINION` | `WORKER`) is a *deployable runtime kind* —\n * a docker-compose service, a K8s workload, a provider-runtime scope. This enum\n * is about *boot-assertion applicability* inside a single process. Today the two\n * vocabularies partially overlap, but they answer different questions and must\n * not be collapsed because their members currently coincide. Notably, a WORKER\n * has no member here at all: workers never boot this lifecycle (they are\n * standalone by design, with no backing-service access), so giving them a\n * profile would invent a member with no referent.\n *\n * See `.claude/plans/minion-runtime-scope.md` (Step 2, OQ-2).\n */\nexport enum ApplicationRuntimeProfile {\n /**\n * The application's own backend service. Serves the full public surface — HTTP\n * API, MCP servers, A2A agents, generated-PDF rendering — so every boot\n * assertion applies to it. This is the default for any host that does not\n * declare otherwise, which keeps the fail-closed direction correct: a new\n * runtime that forgets to declare its profile is over-validated, never\n * under-validated.\n */\n APPLICATION_BACKEND = 'application_backend',\n /**\n * A minion — a background digital worker of the application owner. Boots the\n * shared lifecycle to obtain the resource graph, DI container, and provider\n * bindings, but mounts no externally-addressable transport and serves no\n * human-facing surface.\n */\n MINION = 'minion',\n}\n\n/**\n * Boot assertions whose applicability varies by runtime.\n *\n * Every trait is phrased as an ASSERTION the framework makes, not as a\n * capability the runtime has. That distinction is load-bearing: a minion may\n * well render a PDF, so the honest trait is not \"renders PDFs\" but \"is required\n * to carry a COMPLETE set of PDF bindings for the whole application\". Phrasing\n * these as capabilities would have quietly removed working functionality.\n */\nexport interface ApplicationRuntimeProfileBootAssertions {\n /**\n * Whether every `operation.mcp.servers` / agent `actorSystemRefs` membership\n * ref must resolve to a declared resource-server instance.\n *\n * Applies only to runtimes that actually SERVE those transports. For a runtime\n * that mounts none, an unresolvable ref describes a surface it does not\n * expose — asserting on it fails a boot over a declaration that could never be\n * read.\n */\n assertsResourceServerMembershipCompleteness: boolean;\n /**\n * Whether EVERY generated-PDF file field in the resource graph must have a\n * backend binding.\n *\n * Deliberately narrow: this gates only the COMPLETENESS half of PDF binding\n * validation. The coherence half — a binding declared for a field that is not\n * a generated PDF field, or pointing at the wrong template id — always runs,\n * for every runtime. What you DID declare must always be correct; being\n * required to declare ALL of it is what varies.\n */\n assertsGeneratedPdfBindingCompleteness: boolean;\n /**\n * Whether this runtime is EXPECTED to host the Layer-2 audit provider fan-out,\n * so an ENABLED `COMPLIANCE_AUDIT_TRAIL` capability that resolves NO provider is\n * a genuine misconfiguration worth a startup warning — as opposed to the\n * expected, by-design posture of a runtime that is legitimately Layer-1-only.\n *\n * Different in KIND from the two completeness assertions above: those gate\n * fail-CLOSED boot validators that THROW. This gates a fail-OPEN diagnostic — a\n * `logger.warn`, never a throw — because Layer-1 database audit is unaffected\n * either way and the runtime still boots. What varies by profile is only whether\n * \"enabled but nothing serves it\" is a SIGNAL or NOISE for this runtime.\n *\n * Only the application backend installs the Layer-2 audit sink — the immudb node\n * client is present only there — and its `immudb.audit-reconcile` cron backfills\n * every Layer-1 `AUDIT_LOGS` row, INCLUDING rows emitted by minions, into the\n * Layer-2 ledger. So an auxiliary runtime resolving no audit provider is correct\n * by construction; warning there is false-alarm noise on every restart that\n * trains operators to ignore the channel. The backend resolving no provider is\n * the real misconfiguration this diagnostic exists to surface — which is why the\n * fail-closed default profile (`APPLICATION_BACKEND`) asserts it.\n *\n * assurance-control: WILDO.AUDIT.SECURITY_EVENT — the absence of the Layer-2\n * provider audit fan-out is diagnosed on the runtime accountable for hosting it,\n * and only there.\n */\n assertsLayer2AuditProviderPresence: boolean;\n /**\n * Whether ENABLED members of `ENGINE_CAPABILITIES_REQUIRING_A_PROVIDER_WHEN_ENABLED` must resolve a\n * provider on this host (#328). The application's own `required` flags are asserted everywhere.\n */\n assertsEngineCapabilityProviderFloor: boolean;\n /**\n * Whether this runtime performs boot-time SCHEMA/DATA MAINTENANCE over the\n * application's collections — the retention-marker backfill and the drifted\n * unique-index reconciliation.\n *\n * Not a capability question (\"could it?\") but an ownership one (\"is it the\n * runtime accountable for it?\"). Maintenance of this kind is application-WIDE\n * and belongs to exactly one runtime:\n *\n * - it writes to every retention-governed collection, including ones a\n * confined runtime has no grant for and no business touching;\n * - several runtimes doing it concurrently race each other over the same rows\n * and indexes for no benefit;\n * - it is a migration, and a migration wants one owner.\n *\n * Covers THREE boot steps, and the third only became visible after the first\n * two were gated: the retention-marker backfill, the drifted-unique-index\n * reconciliation, and the declared-unique-index build+verification. The last\n * one BUILDS as well as asserts — `mongooseModel.init()` creates a declared\n * index, which is a write — so it belongs on the same side of the gate.\n *\n * Discovered the hard way (2026-08-12), twice in a row: once a minion's Mongo\n * user became collection-scoped, its boot ran `updateMany` on `users` — a\n * collection it had never declared — and crash-looped on `not authorized`.\n * Gating that surfaced the next one immediately: `create: \"organizations\"`,\n * 60 declared indexes it could not build and was not accountable for.\n *\n * The containment was right both times; the minion was doing the application\n * backend's job. Granting `users` to a scraper to \"fix\" it would have inverted\n * the whole point. The lesson generalises past these three: a boot step that\n * WRITES to the application's schema belongs to the runtime that owns the\n * schema, and adding one without asking which runtime owns it is how a\n * confined runtime acquires an authority nobody intended.\n */\n performsBootSchemaMaintenance: boolean;\n\n /**\n * Whether this runtime OBSERVES the administrative-continuity floors at boot — the report that\n * names organizations left without a usable owner, and applications left without a usable\n * super-administrator.\n *\n * A separate assertion from {@link performsBootSchemaMaintenance} rather than a reuse of it,\n * because the two are different authorities that happen to share a containment argument. One\n * WRITES the application's schema; this one READS the application's whole administrative\n * population. Collapsing them would make \"may this runtime repair the schema?\" and \"may this\n * runtime audit who administers the tenant?\" one switch, and a future profile that wants one\n * without the other would have nowhere to say so.\n *\n * FALSE for a confined runtime, for the reason `performsBootSchemaMaintenance` already generalises:\n * the report reads `users` and `organizations` across the whole application, which a table-scoped\n * role has neither the grants nor the accountability for. Observed 2026-08-24 on a clean-room\n * PostgreSQL boot — `permission denied for table users` / `for table organizations`, twice per\n * boot, from the marketing-scrapper minion. It never blocked the boot (the report is non-fatal by\n * design), which is exactly why it survived: a recurring, ignorable error in a healthy startup.\n *\n * Note that the sibling's JSDoc had ALREADY named this hazard — \"granting `users` to a scraper to\n * 'fix' it would have inverted the whole point\" — one boot step before it happened again. The\n * lesson was recorded; the next step added simply did not consult it.\n */\n reportsAdministrativeContinuityFloors: boolean;\n /**\n * Whether this runtime PROVES at boot that its persistence adapter can commit\n * the native transactions the application's authored boundaries require.\n *\n * The probe issues a transaction against a synthetic collection\n * (`__wildo_transaction_readiness_probe`) that no `resourceAccess` declares or\n * ever could, so a collection-scoped runtime is refused by construction.\n *\n * More importantly it proves an INFRASTRUCTURE property — \"does this Mongo\n * deployment support multi-document transactions?\" — which is identical for\n * every runtime pointed at that database, and which the application backend\n * already proves. The boundaries it enumerates are the backend's too\n * (`authentication.self-registration` is not something a minion serves; a\n * minion is never a user, D15).\n *\n * Stated trade: a minion no longer fails FAST on a deployment whose adapter\n * cannot do transactions — it would fail on its first transactional write\n * instead. Acceptable because the backend fails fast on the same deployment,\n * and because the alternative is granting every confined runtime access to a\n * probe collection nobody declared.\n */\n assertsPersistenceTransactionReadiness: boolean;\n}\n\n/**\n * The single authority mapping a runtime profile to its boot assertions.\n *\n * Exhaustive by construction: the `never` fallthrough makes adding a profile\n * member a COMPILE error until its assertions are decided. That is the point —\n * the failure mode this whole mechanism exists to prevent is a new runtime\n * silently inheriting assertions nobody considered.\n */\nexport function resolveApplicationRuntimeProfileBootAssertions(\n profile: ApplicationRuntimeProfile,\n): ApplicationRuntimeProfileBootAssertions {\n switch (profile) {\n case ApplicationRuntimeProfile.APPLICATION_BACKEND:\n return {\n assertsResourceServerMembershipCompleteness: true,\n assertsGeneratedPdfBindingCompleteness: true,\n // The backend is the SOLE host of the Layer-2 audit sink (immudb-node is\n // installed only here), so an enabled audit capability with no resolved\n // provider is a genuine misconfiguration it must surface.\n assertsLayer2AuditProviderPresence: true,\n // The backend is the host that SERVES email, billing and SMS, so an enabled slot with\n // nothing behind it is a misconfiguration it must refuse at boot (#328).\n assertsEngineCapabilityProviderFloor: true,\n // The backend owns application-wide schema maintenance. It is the one\n // runtime holding database-wide authority, and a migration wants a\n // single owner.\n performsBootSchemaMaintenance: true,\n reportsAdministrativeContinuityFloors: true,\n assertsPersistenceTransactionReadiness: true,\n };\n case ApplicationRuntimeProfile.MINION:\n return {\n // A minion mounts no MCP/A2A transport. It does not carry the\n // declarations at all (they are excluded from the minion projection),\n // so asserting membership against an empty registry would fail every\n // ref the resource graph declares.\n assertsResourceServerMembershipCompleteness: false,\n // A minion carries the application's PDF bindings and CAN render a PDF\n // if one is bound. What it is not required to do is account for every\n // generated-PDF field in the application, including on resources its\n // `resourceAccess` whitelist forbids it from ever touching.\n assertsGeneratedPdfBindingCompleteness: false,\n // A minion is Layer-1-only by design: it never hosts the Layer-2 audit\n // fan-out, and the backend's `immudb.audit-reconcile` cron backfills the\n // minion's `AUDIT_LOGS` rows into Layer-2. Resolving no audit provider is\n // therefore correct, not a misconfiguration — warning on every restart\n // would be false-alarm noise.\n assertsLayer2AuditProviderPresence: false,\n // A minion's registry is filtered to ITS scope; the backend serves the engine flows, so\n // an enabled email/billing/SMS slot resolving nothing here is the normal topology (#328).\n assertsEngineCapabilityProviderFloor: false,\n // A minion must NOT. Its database user is collection-scoped to what\n // `resourceAccess` declared, so a backfill over every retention-governed\n // collection is both unauthorised and not its concern. The backend\n // performs it; the minion simply reads the result.\n performsBootSchemaMaintenance: false,\n reportsAdministrativeContinuityFloors: false,\n // Same reason, one layer up: the probe touches a synthetic collection no\n // grant covers, and proves a deployment-wide property the backend owns.\n assertsPersistenceTransactionReadiness: false,\n };\n default: {\n const unhandled: never = profile;\n throw new Error(\n `Unhandled ApplicationRuntimeProfile '${String(unhandled)}' — every profile must declare its boot assertions explicitly.`,\n );\n }\n }\n}\n\n/**\n * Runtime access policy — how this runtime's PRIVILEGED accesses behave while it runs.\n *\n * Deliberately separate from {@link ApplicationRuntimeProfileBootAssertions}: boot\n * assertions are evaluated once, at startup, and answer \"is this configuration\n * coherent for me?\". This answers \"what must hold every time I exercise privilege?\",\n * which is a different lifecycle and a different failure mode. Folding them together\n * would mean a boot-time concern and a per-call concern share a shape and drift into\n * each other.\n */\nexport interface ApplicationRuntimeAccessPolicy {\n /**\n * Whether a privileged system-access READ must be PROVABLY audited before its data\n * is handed to the caller — i.e. if the audit cannot be written, the caller does not\n * get the data.\n *\n * This is the fail-closed half of the accountable-bypass doctrine (D9 + OQ-5). The\n * system-access door legitimately bypasses per-tenant authorization; what makes that\n * acceptable for a non-human background worker is that every passage leaves evidence.\n * An accountable bypass that stops being recorded is just a bypass.\n *\n * Scoped to the MINION profile ONLY, deliberately. Applying it to the application\n * backend would make the framework's most common internal read path depend on audit\n * availability — converting an audit hiccup into an application-wide outage, a\n * self-inflicted denial of service. A minion's privileged reads are the elevated,\n * least frequent, least latency-sensitive case, which is exactly where the trade\n * favours accountability over availability.\n *\n * READS only. A write cannot be unwound by refusing to report it — its audit is\n * already deferred to the transaction's post-commit queue, so failing afterwards\n * would leave the mutation committed AND the caller erroring, inviting a retry that\n * duplicates it. See the plan's Step 3b limitations.\n *\n * assurance-control: WILDO.AUDIT.SECURITY_EVENT — privileged access by a non-human\n * runtime is not merely audited, it is audited or refused.\n */\n requiresAccountableSystemAccess: boolean;\n}\n\n/**\n * The single authority mapping a runtime profile to its access policy. Exhaustive by\n * construction for the same reason as the boot-assertion resolver: a new runtime must\n * DECIDE this, never inherit it by omission.\n */\nexport function resolveApplicationRuntimeAccessPolicy(\n profile: ApplicationRuntimeProfile,\n): ApplicationRuntimeAccessPolicy {\n switch (profile) {\n case ApplicationRuntimeProfile.APPLICATION_BACKEND:\n return { requiresAccountableSystemAccess: false };\n case ApplicationRuntimeProfile.MINION:\n return { requiresAccountableSystemAccess: true };\n default: {\n const unhandled: never = profile;\n throw new Error(\n `Unhandled ApplicationRuntimeProfile '${String(unhandled)}' — every profile must declare its access policy explicitly.`,\n );\n }\n }\n}\n"]}