@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":"audit-logs-archive.batch.backend.service.js","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Audit-Log Archival Batch (audit Phase 5 / F1)\n *\n * Periodic CRON custom batch that EXPORTS aged audit records to durable off-DB\n * archival artifacts in file storage. It is the operator-tunable retention /\n * archival mechanism for the compliance audit trail.\n *\n * --------------------------------------------------------------------------\n * Archival, NOT deletion — audit logs are immutable\n * --------------------------------------------------------------------------\n * `AUDIT_LOGS` is immutable by invariant (G5): its `coreOperations` are\n * `READ | LIST | SEARCH | CREATE` — no `UPDATE`, no `DELETE`. This batch\n * therefore NEVER removes audit records. It COPIES records older than the\n * operator-configured horizon (`AppConfiguration.auditTrail.archiveAfterDays`)\n * into durable JSON artifacts in file storage, one artifact per UTC day-window,\n * while the original rows remain in the always-on `AUDIT_LOGS` store (and, when\n * configured, in the append-only immudb tamper-proof ledger). The archive is an\n * additional off-DB compliance/DR copy — a portable artifact an auditor can be\n * handed — not a prune. (The value trade-off is explicit: it does NOT bound DB\n * growth. A future delete-after-archive step, if compliance demands\n * data-minimisation, would build on top of this — but that requires relaxing\n * G5 and is out of scope here.)\n *\n * --------------------------------------------------------------------------\n * OPT-IN\n * --------------------------------------------------------------------------\n * Setting `auditTrail.archiveAfterDays` IS the opt-in. When it is `undefined`\n * (the compliance-safe default) the batch no-ops: nothing is archived and every\n * record is retained in the primary store indefinitely. The batch is registered\n * unconditionally (like the reconcile / delivery drains) so a mis-set flag can\n * never orphan the schedule; the no-op is decided at TICK time from live config.\n *\n * --------------------------------------------------------------------------\n * Idempotency — stateless deterministic overwrite (no checkpoint store)\n * --------------------------------------------------------------------------\n * The archive is keyed by UTC day. Each day-window writes to a DETERMINISTIC\n * storage key (`audit-archive/[applicationId/]audit-archive-YYYY-MM-DD.json`)\n * via the `fileName` upload option, which the storage providers use as the blob\n * leaf — so re-uploading a window OVERWRITES it. A fully-past day's audit rows\n * are stable (audit events are created at operation time; nothing back-dates\n * into a closed day), so a re-write produces identical content. This makes the\n * batch idempotent WITHOUT any high-water-mark / checkpoint state: unlike the\n * reconcile batch (which stores its mark in immudb), archival must work even\n * when immudb is not configured, so it deliberately keeps ZERO cross-run state.\n *\n * Each tick (re)writes only the trailing {@link DEFAULT_LOOKBACK_DAYS} archivable\n * day-windows. On the daily cron exactly one new day crosses the horizon per\n * tick; the small look-back re-writes the last couple of crossed days so a\n * single missed tick self-heals on the next run. The (bounded) cost of the\n * re-write is re-reading a day or two of audit rows — cheap for a nightly sweep.\n *\n * Missed windows self-heal WITHOUT cross-run state: beyond the look-back, each tick sweeps a\n * bounded trailing span ({@link DEFAULT_BACKFILL_PROBE_DAYS}) and asks storage whether each day's\n * deterministic artifact already exists, archiving only the days that are missing. Progress is\n * therefore DERIVED FROM THE ARTIFACTS — the one durable record that always exists and that does\n * not require immudb, so the \"zero cross-run state\" property above is preserved rather than traded\n * away. A day repaired this way is logged as a warning and counted in `windowsBackfilled`: the\n * sweep fixes the gap, but a recurring count means ticks are being missed and an operator should\n * know. Previously such a day stayed missing forever, because nothing recorded that it was skipped.\n *\n * Cold-start backlog beyond the probe span: still an explicit operator gesture — trigger the batch\n * once with a `lookbackDaysOverride` wide enough to cover the history (e.g. the full\n * `archiveAfterDays` span). That remains the way to seed archives for an app that enabled archival\n * after it already had aged data.\n *\n * --------------------------------------------------------------------------\n * Cross-org, anchoring, failure containment\n * --------------------------------------------------------------------------\n * Scope-anchored @ APPLICATION: the batch archives EVERY org's aged rows into a\n * single per-day artifact (each record carries its own `organizationId`), so the\n * read bypasses the contextual org filter (`excludeContextualFilter: true`) —\n * mirroring the reconcile batch. Per-org artifact partitioning is a deliberate\n * future enhancement, not a v1 requirement — see the scaling note on\n * {@link MAX_RECORDS_PER_WINDOW} for WHY (cross-org amplifies the per-artifact\n * size) and HOW to lift the limitation (stream the upload + per-org partitioning).\n *\n * Never-throws contract: archival must not crash the batch runner (F7 — audit\n * side-channels are independent + non-blocking). A failure (storage outage, DB\n * read error) is LOGGED and yields a partial summary with `error` set; the next\n * scheduled tick retries the same trailing windows (idempotent overwrite makes\n * the retry safe).\n *\n * @see base-classes/services/batches/engine-custom-batch-manifests.ts\n * (`ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST` — the ref + cron single source).\n * @see compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.ts\n * (the sibling audit cron this mirrors for context creation + cross-org scan).\n */\n\nimport { Readable } from 'stream';\nimport { randomUUID } from 'crypto';\n\nimport { z } from 'zod';\nimport {\n CoreResourceType,\n CoreResourceOperation,\n ResourcePrimaryScope,\n CORE_APP_ROLES,\n} from '@wildo-ai/saas-models';\nimport type {\n AuditableEvent,\n} from '@wildo-ai/saas-models';\nimport {\n describeCaughtError,\n projectCaughtErrorLogFields,\n} from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { FileStorageAccepted } from '@wildo-ai/zod-decorators';\nimport {\n createCustomBatchExecutionService,\n type BatchesCronjobsCustomExecution_Service,\n} from '~wildo-backend-lib/base-classes/services/batches/batches-cronjobs-custom-execution.service';\nimport { ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST } from '~wildo-backend-lib/base-classes/services/batches/engine-custom-batch-manifests';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport type { FileStorageRouterBackendService } from '~wildo-backend-lib/files/storage/file-storage-router.backend.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport type { ExecutionContextCreatorBackendService } from '~wildo-backend-lib/runtime/services/execution-context-creator.backend.service';\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Tuning constants\n// ═══════════════════════════════════════════════════════════════════════════\n\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\n\n/** Folder namespace for archival artifacts within the storage provider. */\nconst AUDIT_ARCHIVE_FOLDER = 'audit-archive';\n\n/**\n * Per-page limit for the day-window AUDIT_LOGS scan. Hard-capped at 100 by the\n * repository (`_doList` clamps with `Math.min(100, …)`), so a larger value is\n * silently clamped. Paging stops when a page returns fewer than this.\n */\nconst PAGE_SIZE = 100;\n\n/**\n * Defensive per-window page ceiling — guards against an unbounded loop if a\n * window's row count somehow never decreases. At {@link PAGE_SIZE} = 100 and\n * {@link MAX_RECORDS_PER_WINDOW} = 100_000 the record cap is hit first; this is\n * the belt-and-braces backstop.\n */\nconst MAX_PAGES_PER_WINDOW = 2_000;\n\n/**\n * Hard cap on records accumulated into a SINGLE day-window artifact.\n *\n * WHAT IT PROTECTS: the batch holds a whole window's rows in memory (`records[]`)\n * to serialise ONE JSON artifact per day, so without a cap a huge day would OOM\n * the batch process. On the cap being hit we archive the first\n * {@link MAX_RECORDS_PER_WINDOW}, flag the window `truncated`, and emit a\n * `logger.warn` — the day's artifact is then INCOMPLETE, but NO audit data is\n * lost: the authoritative rows always remain in `AUDIT_LOGS` (+ immudb).\n *\n * ─────────────────────────────────────────────────────────────────────────────\n * KNOWN LIMITATION + HOW TO REMOVE IT (deferred 2026-07-04 — revisit only when a\n * real deployment's volume actually triggers it; do NOT pre-build speculatively)\n * ─────────────────────────────────────────────────────────────────────────────\n * The cross-org design (ONE artifact per day for ALL orgs — see the file header)\n * multiplies what lands in the buffer, so a high-volume multi-tenant deployment\n * can exceed this cap and CHRONICALLY truncate. The cap is a SYMPTOM; the ROOT\n * CAUSE is buffering the whole artifact in memory before a single sized upload.\n * Two orthogonal, COMPOSABLE fixes (do both to eliminate it, not just soften it):\n *\n * (1) STREAM THE UPLOAD — the true root fix. Replace `records[]` +\n * `Buffer.from(JSON.stringify(...))` + sized `provider.upload(...)` with a\n * `Readable` that pages the repo and emits NDJSON row-by-row into a\n * size-OPTIONAL streaming upload. Memory then stays bounded to one page\n * (~{@link PAGE_SIZE} rows) regardless of window size, and this cap is\n * DROPPED entirely. Enabler: `IFileStorageProvider.upload()` currently\n * requires `size: number`; add a size-optional streaming path —\n * MinIO/S3 `putObject` multiparts automatically when size is unknown, and\n * the local-directory provider just pipes `stream → writeStream` (relax the\n * `validateSize` policy gate for internal system artifacts). This touches\n * shared engine surface (the provider interface + both providers + tests).\n * Cheaper no-interface-change variant: spool the window to a temp file,\n * `stat` its size, then stream-upload from the file (bounded memory via\n * disk instead of RAM, at the cost of a temp-file lifecycle + writable disk).\n *\n * (2) PER-ORG PARTITIONING — removes the cross-org amplification AND is the\n * compliance-correct shape. Emit one artifact per `(org, day)` (+ an\n * APPLICATION-scoped artifact for no-org / app-level events) instead of one\n * cross-org artifact; enumerate the distinct `organizationId`s in the window\n * via a `distinct`/aggregation, then archive per org. Each artifact becomes\n * one org's day (smaller), and each tenant's trail is an independently\n * retrievable/erasable artifact — what GDPR right-to-erasure + data\n * residency actually want. Cost: more artifacts (org-count × days).\n *\n * REJECTED as weakest: per-HOUR windowing — only makes cap-hits rarer (24× more\n * files) without addressing the root cause; a pathological hour still truncates.\n *\n * DONE (2026-08-05), no longer a rider: {@link collectWindowRecords} now uses KEYSET\n * paging on the `(createdAt, eventId)` tuple, closing the boundary-tie SKIP that offset\n * paging over the non-unique `createdAt` could not. The sibling\n * `immudb.audit-reconcile` batch pages the same way. Only the cap below remains.\n */\nconst MAX_RECORDS_PER_WINDOW = 100_000;\n\n/**\n * Trailing day-windows (re)written each steady-state tick. On a daily cron one\n * new day crosses the horizon per tick; re-writing the last two crossed days\n * self-heals a single missed tick via idempotent overwrite. Overridable per-run\n * (`lookbackDaysOverride`) for cold-start backfills.\n */\nconst DEFAULT_LOOKBACK_DAYS = 2;\n\n/**\n * Absolute ceiling on day-windows processed in one run — bounds a backfill\n * invocation. Matches the max `archiveAfterDays` (2555 ≈ 7y) so a full-history\n * backfill fits one run; most historical days are empty and skipped cheaply.\n */\nconst MAX_LOOKBACK_DAYS = 2555;\n\n/**\n * How far BEYOND the look-back the tick probes for MISSING artifacts (the gap-healing sweep).\n *\n * The look-back above unconditionally re-writes the newest few archivable days. Anything older\n * that a tick missed used to stay missing forever: the batch keeps zero cross-run state, so\n * nothing recorded that a day was skipped, and an operator had to notice and run an explicit\n * `lookbackDaysOverride` backfill.\n *\n * Progress is instead DERIVED FROM THE ARTIFACTS THEMSELVES — the only durable record that is\n * already guaranteed to exist, and the one that keeps working when immudb is not configured (the\n * reason this batch has no checkpoint store; see the header). For each day in this trailing span\n * the tick asks storage whether the day's deterministic artifact key exists, and archives only the\n * days that are missing.\n *\n * Bounded on purpose: a probe is one cheap metadata lookup, but an unbounded sweep would grow with\n * the app's whole history on every nightly tick. Gaps older than this span remain an explicit\n * `lookbackDaysOverride` operation, exactly as before.\n */\nconst DEFAULT_BACKFILL_PROBE_DAYS = 90;\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Input / Output schemas\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Optional per-tick overrides for manual `runOnce` triggers. Both narrow the\n * batch for one-shot operator gestures without touching app config.\n */\nexport const AuditLogsArchiveBatchInputSchema = z.object({\n /** One-shot archival horizon override (days). Falls back to app config. */\n archiveAfterDaysOverride: z.number().int().min(1).max(2555).optional(),\n /** One-shot look-back width override (days) — for cold-start backfills. */\n lookbackDaysOverride: z.number().int().min(1).max(MAX_LOOKBACK_DAYS).optional(),\n /**\n * One-shot width override (days) for the missing-artifact probe sweep that runs BEYOND the\n * look-back. `0` disables the sweep for this run (pure look-back behaviour).\n */\n backfillProbeDaysOverride: z.number().int().min(0).max(MAX_LOOKBACK_DAYS).optional(),\n}).strict();\nexport type AuditLogsArchiveBatchInput = z.infer<typeof AuditLogsArchiveBatchInputSchema>;\n\n/**\n * Run summary covering the happy path, the two no-op paths (disabled / no\n * storage), and the failure path.\n */\nexport const AuditLogsArchiveBatchOutputSchema = z.object({\n /** Wall-clock ISO timestamp when the body started. */\n tickAt: z.string().datetime(),\n /** Whether an archival horizon was configured/overridden (opt-in resolved). */\n enabled: z.boolean(),\n /** Effective archival horizon applied this tick (days), or null when disabled. */\n archiveAfterDays: z.number().int().nullable(),\n /** ISO cutoff — records with `createdAt < horizonAt` were archival-eligible. */\n horizonAt: z.string().datetime().nullable(),\n /** Whether a storage provider was configured (false ⇒ no-op). */\n storageConfigured: z.boolean(),\n /** Trailing day-windows considered this run. */\n lookbackDays: z.number().int().min(0),\n /** Width (days) of the missing-artifact probe sweep beyond the look-back. */\n backfillProbeDays: z.number().int().min(0),\n /**\n * Days in the probe span whose artifact was ABSENT and were therefore archived by the sweep.\n * A persistently non-zero value means ticks are being missed — surfaced rather than silent.\n */\n windowsBackfilled: z.number().int().min(0),\n /** Day-windows scanned (some may have had zero rows and produced no artifact). */\n windowsScanned: z.number().int().min(0),\n /** Day-windows that produced (overwrote) an archival artifact. */\n windowsArchived: z.number().int().min(0),\n /** Total audit records written across all artifacts this run. */\n recordsArchived: z.number().int().min(0),\n /** Windows that hit {@link MAX_RECORDS_PER_WINDOW} and were archived partial. */\n truncatedWindows: z.number().int().min(0),\n /** Tick-level failure message — non-null only when a scan/upload threw. */\n error: z.string().nullable(),\n durationMs: z.number().int().min(0),\n});\nexport type AuditLogsArchiveBatchOutput = z.infer<typeof AuditLogsArchiveBatchOutputSchema>;\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Internals\n// ═══════════════════════════════════════════════════════════════════════════\n\n/** Shape the paginated AUDIT_LOGS `list` resolves to. */\ninterface AuditLogsListPage {\n data: AuditableEvent[];\n pagination?: { totalPages?: number };\n}\n\n/**\n * Human-readable one-line message for the batch OUTPUT's `error` field (the\n * output schema types it as a plain `string`).\n *\n * Delegates to the shared {@link describeCaughtError} rather than an inline\n * `instanceof Error` ternary, which would persist every structured\n * `WildoError_Backend` as the literal `'[object Object]'`. The log line pairs\n * this with {@link projectCaughtErrorLogFields} for the full queryable detail.\n */\nfunction formatError(err: unknown): string {\n return describeCaughtError(err);\n}\n\n/** Midnight-UTC start of the day containing `d`. */\nfunction startOfUtcDay(d: Date): Date {\n return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));\n}\n\nfunction addDays(d: Date, n: number): Date {\n return new Date(d.getTime() + n * MS_PER_DAY);\n}\n\n/** `YYYY-MM-DD` key for a midnight-UTC day-start. */\nfunction dayKey(dayStart: Date): string {\n return dayStart.toISOString().slice(0, 10);\n}\n\n/**\n * Resolve the effective archival horizon (days). First non-undefined wins:\n * per-tick override → `AppConfiguration.auditTrail.archiveAfterDays` → none\n * (undefined ⇒ archival disabled). Read at TICK time so an in-place config\n * change takes effect on the next run without a redeploy.\n */\nfunction resolveArchiveAfterDays(\n override: number | undefined,\n appConfigService: AppConfigurationService,\n): number | undefined {\n if (typeof override === 'number') return override;\n const fromConfig = appConfigService.config?.auditTrail?.archiveAfterDays;\n return typeof fromConfig === 'number' ? fromConfig : undefined;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Batch Service\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport const auditLogsArchiveBatchService: BatchesCronjobsCustomExecution_Service<\n typeof AuditLogsArchiveBatchInputSchema,\n typeof AuditLogsArchiveBatchOutputSchema\n> = createCustomBatchExecutionService({\n input: AuditLogsArchiveBatchInputSchema,\n output: AuditLogsArchiveBatchOutputSchema,\n batchCronjob_Context: {\n // Scope-anchored @ APPLICATION: cross-org archival, no honest single target\n // resource (mirrors the reconcile / SIEM anchoring). `cronJobExpression` is\n // what actually SCHEDULES the run (sourced from the manifest so schedule +\n // spec cross-validation share ONE literal); omitting it would register the\n // batch but never fire it.\n kind: ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST.kind,\n operationIdentifier: ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST.operationIdentifier,\n primaryScope: ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST.primaryScope,\n cronJobExpression: ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST.cronExpression,\n },\n resolveDependencies: ({ get }) => ({\n appConfigService: get<AppConfigurationService>(SAAS_SERVICE_TYPES.AppConfigService),\n fileStorageRouter: get<FileStorageRouterBackendService>(SAAS_SERVICE_TYPES.FileStorageRouter),\n }),\n doHandle: async (\n input,\n {\n logger,\n repositoriesRegistry,\n executionContextCreator,\n dependencies,\n },\n ) => {\n const startTime = Date.now();\n const tickAt = new Date(startTime).toISOString();\n const logDebug = logger.debugByType('AuditLogsArchiveBatch');\n const { appConfigService, fileStorageRouter } = dependencies;\n\n // Mutable run state, hoisted OUT of the try so the never-throws catch reports\n // HONEST partial progress: artifacts uploaded before a mid-loop failure are\n // real (persisted, idempotent), so the failure summary must reflect them —\n // not reset to zero. Mirrors the reconcile batch's \"return what was\n // accumulated\" contract.\n let enabled = false;\n let archiveAfterDays: number | null = null;\n let horizonAt: string | null = null;\n let storageConfigured = false;\n let lookbackDays = 0;\n let backfillProbeDays = 0;\n let windowsScanned = 0;\n let windowsArchived = 0;\n let windowsBackfilled = 0;\n let recordsArchived = 0;\n let truncatedWindows = 0;\n\n const summary = (error: string | null = null): AuditLogsArchiveBatchOutput => ({\n tickAt,\n enabled,\n archiveAfterDays,\n horizonAt,\n storageConfigured,\n lookbackDays,\n backfillProbeDays,\n windowsScanned,\n windowsArchived,\n windowsBackfilled,\n recordsArchived,\n truncatedWindows,\n error,\n durationMs: Date.now() - startTime,\n });\n\n try {\n // 1. Opt-in gate. Undefined horizon ⇒ archival disabled (retain in DB\n // indefinitely). Emit a tick log so the cron's liveness is observable.\n const resolvedArchiveAfterDays = resolveArchiveAfterDays(input.archiveAfterDaysOverride, appConfigService);\n if (resolvedArchiveAfterDays === undefined) {\n logger.info('[audit] archive tick complete (archival disabled — auditTrail.archiveAfterDays unset)', { tickAt });\n return summary();\n }\n enabled = true;\n archiveAfterDays = resolvedArchiveAfterDays;\n\n // 2. Storage gate. Without a configured storage provider there is nowhere\n // to write; warn + no-op (never throw).\n if (!fileStorageRouter.isConfigured()) {\n logger.warn('[audit] archival is enabled but no file-storage provider is configured — skipping archival tick', {\n tickAt,\n archiveAfterDays,\n });\n return summary();\n }\n storageConfigured = true;\n // Prefer Wildo-managed, fall back to local-directory — the first\n // configured of the two the router knows about.\n const storageProvider = fileStorageRouter.resolveProvider([\n FileStorageAccepted.WILDO_MANAGED,\n FileStorageAccepted.LOCAL_DIRECTORY,\n ]);\n\n // 3. Compute the archivable day-window range. `horizon` is the age\n // cutoff; the most-recent FULLY-archivable day is the one ending at\n // the start of the horizon's day (the horizon's own day is only\n // partially older than the cutoff, so it is not archived yet).\n const horizon = new Date(startTime - resolvedArchiveAfterDays * MS_PER_DAY);\n horizonAt = horizon.toISOString();\n const dmaxStart = addDays(startOfUtcDay(horizon), -1);\n lookbackDays = Math.min(\n Math.max(input.lookbackDaysOverride ?? DEFAULT_LOOKBACK_DAYS, 1),\n MAX_LOOKBACK_DAYS,\n );\n // The probe sweep sits BEYOND the look-back, and the pair is capped together so a wide\n // `lookbackDaysOverride` backfill cannot also drag a full probe span along behind it.\n backfillProbeDays = Math.min(\n Math.max(input.backfillProbeDaysOverride ?? DEFAULT_BACKFILL_PROBE_DAYS, 0),\n Math.max(MAX_LOOKBACK_DAYS - lookbackDays, 0),\n );\n\n // Internal APP_ADMIN_SUPER_ADMIN @ APPLICATION context for the AUDIT_LOGS\n // read — mirrors the reconcile batch. No org id + `excludeContextualFilter`\n // on the read ⇒ the scan spans EVERY org's rows.\n //\n // Resolved through the canonical repository seam, NOT a hand-rolled\n // `ResourceConfiguration_OperationPath`. Operation defaults are\n // variant-type-LOCAL and AUDIT_LOGS declares its LIST `REPOSITORY_ONLY`\n // variant `isDefault: false`, so a literal\n // `{ variantType: REPOSITORY_ONLY, isOperationDefault: true }` path matches\n // NOTHING and throws. That literal used to sit here and was latent only\n // because the archival opt-in gate above returns before reaching it whenever\n // `auditTrail.archiveAfterDays` is unset — enabling archival would have\n // surfaced it immediately. The sibling reconcile batch (no such gate) threw on\n // every run. See `immudb-audit-reconcile.batch.backend.service.ts`.\n const executionContext = await executionContextCreator.createForInternalRepositoryOperation({\n resourceType: CoreResourceType.AUDIT_LOGS,\n operationIdentifier: CoreResourceOperation.LIST,\n contextResourcesFieldIdentifier: new Map(),\n initiatorIds: null,\n initiatorRoles: [\n { roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], relatedPrimaryScope: ResourcePrimaryScope.APPLICATION },\n ],\n });\n const auditRepo = repositoriesRegistry.getRepositoryOrThrow(CoreResourceType.AUDIT_LOGS, executionContext);\n\n const applicationId = executionContext.applicationId || appConfigService.applicationId;\n\n // The day offsets processed this tick, oldest → newest so partial-run progress covers the\n // oldest un-archived days first.\n //\n // Two bands with DIFFERENT semantics:\n // - look-back band (offsets 0…lookbackDays-1): ALWAYS re-scanned and re-written. Recent\n // days are cheap and this is what self-heals a single missed tick.\n // - probe band (older): re-scanned ONLY when the day's artifact is missing. This is the\n // gap-healing sweep — it derives progress from the artifacts instead of cross-run state,\n // so a tick missed weeks ago is repaired automatically instead of silently persisting.\n const probeBandStart = lookbackDays;\n const probeBandEnd = lookbackDays + backfillProbeDays; // exclusive\n const offsets: number[] = [];\n for (let i = probeBandEnd - 1; i >= probeBandStart; i -= 1) offsets.push(i);\n for (let i = lookbackDays - 1; i >= 0; i -= 1) offsets.push(i);\n\n for (const i of offsets) {\n const windowStart = addDays(dmaxStart, -i);\n const windowEnd = addDays(windowStart, 1);\n const isProbeBand = i >= probeBandStart;\n\n if (isProbeBand) {\n // One cheap metadata lookup decides whether this old day needs any work at all. An\n // already-archived non-empty day costs exactly this probe and nothing more.\n const exists = await archiveArtifactExists({\n storageProvider,\n executionContext,\n day: dayKey(windowStart),\n });\n if (exists) continue;\n }\n\n windowsScanned += 1;\n\n const { records, truncated } = await collectWindowRecords(auditRepo, executionContext, windowStart, windowEnd);\n if (records.length === 0) {\n // Empty day ⇒ no artifact (keeps historical backfill cheap). NOTE this is why the probe\n // cannot distinguish \"never archived\" from \"archived nothing\": an empty day is re-scanned\n // by every sweep. That scan is a single zero-row query, deliberately preferred over\n // writing empty marker artifacts just to satisfy the probe.\n continue;\n }\n if (truncated) {\n truncatedWindows += 1;\n // No silent caps: dropping records from an archive artifact must be\n // loud. The source rows are NOT lost (they stay in AUDIT_LOGS + immudb)\n // — the day's artifact is merely incomplete. An operator seeing this\n // should narrow to per-hour windows (future enhancement).\n logger.warn(\n '[audit] archive day-window hit the per-window record cap — artifact is INCOMPLETE for this day '\n + '(source rows retained in AUDIT_LOGS; the newest rows past the cap are omitted from the artifact)',\n { day: dayKey(windowStart), cap: MAX_RECORDS_PER_WINDOW, archived: records.length },\n );\n }\n\n await uploadWindowArtifact({\n storageProvider,\n executionContext,\n applicationId,\n windowStart,\n windowEnd,\n archivedAt: tickAt,\n records,\n truncated,\n });\n\n windowsArchived += 1;\n recordsArchived += records.length;\n if (isProbeBand) {\n windowsBackfilled += 1;\n // A gap the steady-state look-back could never have reached. Report it: a recurring\n // count here means ticks are being missed, which is worth an operator's attention even\n // though the sweep repaired it.\n logger.warn('[audit] archived a MISSING historical day-window (gap-healing sweep) — ticks may be being missed', {\n day: dayKey(windowStart),\n recordCount: records.length,\n });\n }\n logDebug('Archived audit day-window', {\n day: dayKey(windowStart),\n recordCount: records.length,\n truncated,\n backfilled: isProbeBand,\n });\n }\n\n logger.info('[audit] archive tick complete', {\n tickAt,\n archiveAfterDays,\n horizonAt,\n lookbackDays,\n backfillProbeDays,\n windowsScanned,\n windowsArchived,\n windowsBackfilled,\n recordsArchived,\n truncatedWindows,\n });\n\n return summary();\n } catch (error) {\n // Top-level guard: never throw onto the batch runner. Return the summary\n // with progress accumulated so far (artifacts already uploaded are real);\n // the next tick retries the same trailing windows (idempotent overwrite).\n const message = formatError(error);\n logger.error?.('[audit] audit-logs archive batch failed (non-fatal, returning partial summary)', {\n ...projectCaughtErrorLogFields(error),\n tickAt,\n });\n return summary(message);\n }\n },\n});\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Helpers\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Page through one day-window `[windowStart, windowEnd)` of AUDIT_LOGS and\n * accumulate its rows (cross-org, `createdAt` ASC for deterministic artifact\n * content). Stops at {@link MAX_RECORDS_PER_WINDOW} (flagging `truncated`) so a\n * pathological day can't OOM the batch. Throws on repository failure — the\n * caller's top-level guard records it on `outputData.error`.\n *\n * **Paging is KEYSET on `(createdAt, eventId)`** (2026-08-05), not offset-based.\n *\n * It used to be `skip = (page-1)*limit` over the NON-unique `createdAt`. When more rows\n * than the page size share one millisecond across a page boundary, the store may order\n * those ties differently between the two page queries — so a boundary row could be\n * served on BOTH pages (duplicated) or on NEITHER (silently dropped from the artifact).\n * Dedupe by `eventId` covered the duplicate half; the dropped half was unrecoverable.\n *\n * This was previously written off as \"negligible in practice (needs 100+ events in one\n * millisecond)\". That condition is real: an application boot burst wrote 404 audit rows\n * in a single millisecond, which permanently stranded 305 records in the sibling\n * `immudb.audit-reconcile` batch before it was converted to the same keyset scan. Boot,\n * seeding and migration paths emit audit rows in tight loops — that is exactly when a\n * day-window archive matters most.\n *\n * The `(createdAt, eventId)` tuple is unique and totally ordered, so no row can now fall\n * between two pages in either direction. The `eventId` half depends on it being present\n * in the AUDIT_LOGS LIST `sortFields` (pinned by the resource-config test); a non-empty\n * whitelist makes the repository DROP unlisted sort keys silently, so removing it would\n * restore the defect without any error. The `seen` dedupe and the no-progress guard\n * remain as backstops for exactly that degradation.\n *\n * Residual (unchanged): a window exceeding {@link MAX_RECORDS_PER_WINDOW} is still\n * truncated, and the source rows always remain in AUDIT_LOGS regardless.\n */\n/**\n * Does the archival artifact for `day` already exist in storage?\n *\n * This is how the batch derives progress WITHOUT any cross-run state: the artifacts are the\n * record. It must address the blob exactly as {@link uploadWindowArtifact} wrote it, and it does\n * so WITHOUT re-implementing any provider path logic — the composite\n * `<folderPath>/<fileName>` is handed over as the `fileId` and each provider applies its OWN\n * composition, the same one its `upload` used:\n *\n * - wildo-managed: `upload` builds `effectiveFileId = folderPath/fileName` and calls\n * `resolveApplicationObjectKey(effectiveFileId, ctx)`; `getMetadata` calls that identical\n * resolver with `file.fileId`.\n * - local-directory: `upload` calls `composeStorageKey(fileId, ctx, options)`; `getMetadata` with\n * no `storageRef` calls that same method with `file.fileId` and no options.\n *\n * Both therefore land on the byte-identical key — and since 2026-09-09 on the SAME key as each\n * other, because both route through `application-storage-key.backend.utils`. The one coupling is\n * `includeApplicationId: true` on the upload — flip that and the probe would address a different\n * blob, so the two must move together.\n *\n * Parity is pinned in each provider's OWN suite (upload, then `getMetadata` with no ref, against a\n * real store). It is NOT pinned here: this batch's tests drive a fake provider that stores and\n * probes `<folderPath>/<fileName>` by construction, so it agrees with itself whatever the real\n * providers do. An earlier revision of this comment claimed \"pinned by the key-parity test\"; no\n * such test existed.\n *\n * FAIL-SAFE DIRECTION: any failure — genuinely absent, or a transient storage fault — answers\n * `false`, i.e. \"archive it\". Re-archiving is harmless by construction (the artifact key is\n * deterministic and the write overwrites), whereas a false `true` would silently skip a day and\n * recreate the very gap this sweep exists to close.\n */\nasync function archiveArtifactExists(args: {\n storageProvider: ReturnType<FileStorageRouterBackendService['resolveProvider']>;\n executionContext: Awaited<ReturnType<ExecutionContextCreatorBackendService['createForInternalRepositoryOperation']>>;\n day: string;\n}): Promise<boolean> {\n const { storageProvider, executionContext, day } = args;\n try {\n await storageProvider.getMetadata(\n {\n fileId: `${AUDIT_ARCHIVE_FOLDER}/audit-archive-${day}.json`,\n storageProvider: undefined,\n storageRef: undefined,\n } as unknown as Parameters<typeof storageProvider.getMetadata>[0],\n executionContext,\n );\n return true;\n } catch {\n return false;\n }\n}\n\nasync function collectWindowRecords(\n auditRepo: ReturnType<RepositoriesRegistryHandlerBackendService['getRepositoryOrThrow']>,\n executionContext: Awaited<ReturnType<ExecutionContextCreatorBackendService['createForInternalRepositoryOperation']>>,\n windowStart: Date,\n windowEnd: Date,\n): Promise<{ records: AuditableEvent[]; truncated: boolean }> {\n const windowBound = { createdAt: { $gte: windowStart, $lt: windowEnd } };\n const records: AuditableEvent[] = [];\n const seen = new Set<string>();\n let truncated = false;\n /** Keyset position: the `(createdAt, eventId)` of the last row consumed. */\n let cursor: { createdAt: Date; eventId: string } | null = null;\n\n for (let page = 1; page <= MAX_PAGES_PER_WINDOW; page += 1) {\n // KEYSET lower bound, ANDed with the day window. `$and`/`$or` are both translated by the\n // Mongo and PostgreSQL adapters, so the predicate is portable.\n const filter: Record<string, unknown> = cursor === null\n ? windowBound\n : {\n $and: [\n windowBound,\n {\n $or: [\n { createdAt: { $gt: cursor.createdAt } },\n { createdAt: cursor.createdAt, eventId: { $gt: cursor.eventId } },\n ],\n },\n ],\n };\n\n // Page is pinned to 1: the cursor — not an offset — is what advances. Offset paging over a\n // NON-unique sort key was the defect (see the boundary-tie note above); with `skip`, ties\n // straddling a page boundary could be served on both pages (deduped below) or on NEITHER\n // (unrecoverable). `sort` is honored because AUDIT_LOGS' LIST whitelists BOTH `createdAt`\n // and `eventId` in its sortFields — drop `eventId` there and the tie-break silently\n // disappears, restoring the skip. Typed to the `_doList` contract, structurally compatible\n // with the public overload.\n const listOptions: { page: number; limit: number; sort: Record<string, 1 | -1> } = {\n page: 1,\n limit: PAGE_SIZE,\n sort: { createdAt: 1, eventId: 1 },\n };\n const result = (await auditRepo.list(executionContext, filter, {\n paginated: true,\n // Cross-org archival: bypass the contextual org filter so EVERY org's rows\n // for this day are captured, not just a caller's org.\n excludeContextualFilter: true,\n listOptions,\n })) as unknown as AuditLogsListPage;\n\n const rows = result.data ?? [];\n if (rows.length === 0) break;\n\n const cursorBeforePage = cursor;\n\n for (const row of rows) {\n // Dedupe by stable identity. Keyset paging makes a cross-page duplicate unreachable in\n // normal operation, so this is now a defensive backstop against a degraded sort rather\n // than the primary protection it used to be. A row with no identity at all (never\n // expected — persisted rows carry `_id`) is treated as distinct rather than silently\n // collapsed.\n const key = String((row as { eventId?: string; _id?: string }).eventId\n ?? (row as { _id?: string })._id ?? '');\n if (key && seen.has(key)) continue;\n if (records.length >= MAX_RECORDS_PER_WINDOW) {\n truncated = true;\n break;\n }\n if (key) seen.add(key);\n records.push(row);\n\n // Advance only on a COMPLETE tuple: a row missing either half cannot express a keyset\n // position, and inventing a partial one would step over its neighbours. Leaving the cursor\n // put means the no-progress guard below ends the scan instead.\n const rowCreatedAt = row.createdAt instanceof Date ? row.createdAt : new Date(String(row.createdAt));\n const rowEventId = (row as { eventId?: unknown }).eventId;\n if (!Number.isNaN(rowCreatedAt.getTime()) && typeof rowEventId === 'string') {\n cursor = { createdAt: rowCreatedAt, eventId: rowEventId };\n }\n }\n if (truncated) break;\n\n // Defensive no-progress guard: with a valid `(createdAt, eventId)` sort every page strictly\n // advances the cursor. Failing to advance means the ordering was degraded or the page held\n // no usable tuple — stop rather than re-issue an identical query forever.\n if (\n cursor !== null &&\n cursorBeforePage !== null &&\n cursor.createdAt.getTime() === cursorBeforePage.createdAt.getTime() &&\n cursor.eventId === cursorBeforePage.eventId\n ) {\n break;\n }\n\n if (rows.length < PAGE_SIZE) break;\n }\n\n return { records, truncated };\n}\n\n/**\n * Serialise a day-window's records to a self-describing JSON artifact and upload\n * it to the DETERMINISTIC key `audit-archive/[applicationId/]audit-archive-<day>.json`\n * (overwrite = idempotent). JSON (not CSV) is used deliberately: audit events\n * carry nested metadata that CSV would flatten lossily.\n */\nasync function uploadWindowArtifact(args: {\n storageProvider: ReturnType<FileStorageRouterBackendService['resolveProvider']>;\n executionContext: Awaited<ReturnType<ExecutionContextCreatorBackendService['createForInternalRepositoryOperation']>>;\n applicationId: string | undefined;\n windowStart: Date;\n windowEnd: Date;\n archivedAt: string;\n records: AuditableEvent[];\n truncated: boolean;\n}): Promise<void> {\n const { storageProvider, executionContext, applicationId, windowStart, windowEnd, archivedAt, records, truncated } = args;\n const day = dayKey(windowStart);\n\n const payload = {\n schemaVersion: 1 as const,\n kind: 'audit-log-archive' as const,\n // Self-describing provenance: the artifact is also namespaced under the\n // applicationId in its storage path (includeApplicationId), but embedding it\n // keeps a portable artifact identifiable without parsing the path.\n applicationId: applicationId ?? null,\n dayWindowUtc: day,\n windowStart: windowStart.toISOString(),\n windowEnd: windowEnd.toISOString(),\n archivedAt,\n recordCount: records.length,\n truncated,\n records,\n };\n const buffer = Buffer.from(JSON.stringify(payload), 'utf-8');\n\n await storageProvider.upload(\n Readable.from([buffer]),\n // Random valid resource id satisfies `validateFileId`; the DETERMINISTIC key\n // comes from `fileName` (the providers use it as the blob leaf), so the id\n // never affects the storage location or the overwrite semantics.\n randomUUID(),\n 'application/json',\n buffer.byteLength,\n executionContext,\n {\n folderPath: AUDIT_ARCHIVE_FOLDER,\n fileName: `audit-archive-${day}.json`,\n includeApplicationId: true,\n },\n );\n}\n"]}
1
+ {"version":3,"file":"audit-logs-archive.batch.backend.service.js","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Audit-Log Archival Batch (audit Phase 5 / F1)\n *\n * Periodic CRON custom batch that EXPORTS aged audit records to durable off-DB\n * archival artifacts in file storage. It is the operator-tunable retention /\n * archival mechanism for the compliance audit trail.\n *\n * --------------------------------------------------------------------------\n * Archival, NOT deletion — audit logs are immutable\n * --------------------------------------------------------------------------\n * `AUDIT_LOGS` is immutable by invariant (G5): its `coreOperations` are\n * `READ | LIST | SEARCH | CREATE` — no `UPDATE`, no `DELETE`. This batch\n * therefore NEVER removes audit records. It COPIES records older than the\n * operator-configured horizon (`AppConfiguration.auditTrail.archiveAfterDays`)\n * into durable JSON artifacts in file storage, one artifact per UTC day-window,\n * while the original rows remain in the always-on `AUDIT_LOGS` store (and, when\n * configured, in the append-only immudb tamper-proof ledger). The archive is an\n * additional off-DB compliance/DR copy — a portable artifact an auditor can be\n * handed — not a prune. (The value trade-off is explicit: it does NOT bound DB\n * growth. A future delete-after-archive step, if compliance demands\n * data-minimisation, would build on top of this — but that requires relaxing\n * G5 and is out of scope here.)\n *\n * --------------------------------------------------------------------------\n * OPT-IN\n * --------------------------------------------------------------------------\n * Setting `auditTrail.archiveAfterDays` IS the opt-in. When it is `undefined`\n * (the compliance-safe default) the batch no-ops: nothing is archived and every\n * record is retained in the primary store indefinitely. The batch is registered\n * unconditionally (like the reconcile / delivery drains) so a mis-set flag can\n * never orphan the schedule; the no-op is decided at TICK time from live config.\n *\n * --------------------------------------------------------------------------\n * Idempotency — stateless deterministic overwrite (no checkpoint store)\n * --------------------------------------------------------------------------\n * The archive is keyed by UTC day. Each day-window writes to a DETERMINISTIC\n * storage key (`audit-archive/[applicationId/]audit-archive-YYYY-MM-DD.json`)\n * via the `fileName` upload option, which the storage providers use as the blob\n * leaf — so re-uploading a window OVERWRITES it. A fully-past day's audit rows\n * are stable (audit events are created at operation time; nothing back-dates\n * into a closed day), so a re-write produces identical content. This makes the\n * batch idempotent WITHOUT any high-water-mark / checkpoint state: unlike the\n * reconcile batch (which stores its mark in immudb), archival must work even\n * when immudb is not configured, so it deliberately keeps ZERO cross-run state.\n *\n * Each tick (re)writes only the trailing {@link DEFAULT_LOOKBACK_DAYS} archivable\n * day-windows. On the daily cron exactly one new day crosses the horizon per\n * tick; the small look-back re-writes the last couple of crossed days so a\n * single missed tick self-heals on the next run. The (bounded) cost of the\n * re-write is re-reading a day or two of audit rows — cheap for a nightly sweep.\n *\n * Missed windows self-heal WITHOUT cross-run state: beyond the look-back, each tick sweeps a\n * bounded trailing span ({@link DEFAULT_BACKFILL_PROBE_DAYS}) and asks storage whether each day's\n * deterministic artifact already exists, archiving only the days that are missing. Progress is\n * therefore DERIVED FROM THE ARTIFACTS — the one durable record that always exists and that does\n * not require immudb, so the \"zero cross-run state\" property above is preserved rather than traded\n * away. A day repaired this way is logged as a warning and counted in `windowsBackfilled`: the\n * sweep fixes the gap, but a recurring count means ticks are being missed and an operator should\n * know. Previously such a day stayed missing forever, because nothing recorded that it was skipped.\n *\n * Cold-start backlog beyond the probe span: still an explicit operator gesture — trigger the batch\n * once with a `lookbackDaysOverride` wide enough to cover the history (e.g. the full\n * `archiveAfterDays` span). That remains the way to seed archives for an app that enabled archival\n * after it already had aged data.\n *\n * --------------------------------------------------------------------------\n * Cross-org, anchoring, failure containment\n * --------------------------------------------------------------------------\n * Scope-anchored @ APPLICATION: the batch archives EVERY org's aged rows into a\n * single per-day artifact (each record carries its own `organizationId`), so the\n * read bypasses the contextual org filter (`excludeContextualFilter: true`) —\n * mirroring the reconcile batch. Per-org artifact partitioning is a deliberate\n * future enhancement, not a v1 requirement — see the scaling note on\n * {@link MAX_RECORDS_PER_WINDOW} for WHY (cross-org amplifies the per-artifact\n * size) and HOW to lift the limitation (stream the upload + per-org partitioning).\n *\n * Never-throws contract: archival must not crash the batch runner (F7 — audit\n * side-channels are independent + non-blocking). A failure (storage outage, DB\n * read error) is LOGGED and yields a partial summary with `error` set; the next\n * scheduled tick retries the same trailing windows (idempotent overwrite makes\n * the retry safe).\n *\n * @see base-classes/services/batches/engine-custom-batch-manifests.ts\n * (`ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST` — the ref + cron single source).\n * @see compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.ts\n * (the sibling audit cron this mirrors for context creation + cross-org scan).\n */\n\nimport { Readable } from 'stream';\nimport { randomUUID } from 'crypto';\n\nimport { z } from 'zod';\nimport {\n CoreResourceType,\n CoreResourceOperation,\n ResourcePrimaryScope,\n CORE_APP_ROLES,\n} from '@wildo-ai/saas-models';\nimport type {\n AuditableEvent,\n} from '@wildo-ai/saas-models';\nimport {\n describeCaughtError,\n projectCaughtErrorLogFields,\n} from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { FileStorageAccepted } from '@wildo-ai/zod-decorators';\nimport {\n createCustomBatchExecutionService,\n type BatchesCronjobsCustomExecution_Service,\n} from '~wildo-backend-lib/base-classes/services/batches/batches-cronjobs-custom-execution.service';\nimport { ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST } from '~wildo-backend-lib/base-classes/services/batches/engine-custom-batch-manifests';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport type { FileStorageRouterBackendService } from '~wildo-backend-lib/files/storage/file-storage-router.backend.service';\nimport type { RepositoriesRegistryHandlerBackendService } from '~wildo-backend-lib/base-classes/services/repositories/repositories-registry-handler.backend.service';\nimport type { ExecutionContextCreatorBackendService } from '~wildo-backend-lib/runtime/services/execution-context-creator.backend.service';\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Tuning constants\n// ═══════════════════════════════════════════════════════════════════════════\n\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\n\n/** Folder namespace for archival artifacts within the storage provider. */\nconst AUDIT_ARCHIVE_FOLDER = 'audit-archive';\n\n/**\n * Per-page limit for the day-window AUDIT_LOGS scan. Hard-capped at 100 by the\n * repository (`_doList` clamps with `Math.min(100, …)`), so a larger value is\n * silently clamped. Paging stops when a page returns fewer than this.\n */\nconst PAGE_SIZE = 100;\n\n/**\n * Defensive per-window page ceiling — guards against an unbounded loop if a\n * window's row count somehow never decreases. At {@link PAGE_SIZE} = 100 and\n * {@link MAX_RECORDS_PER_WINDOW} = 100_000 the record cap is hit first; this is\n * the belt-and-braces backstop.\n */\nconst MAX_PAGES_PER_WINDOW = 2_000;\n\n/**\n * Hard cap on records accumulated into a SINGLE day-window artifact.\n *\n * WHAT IT PROTECTS: the batch holds a whole window's rows in memory (`records[]`)\n * to serialise ONE JSON artifact per day, so without a cap a huge day would OOM\n * the batch process. On the cap being hit we archive the first\n * {@link MAX_RECORDS_PER_WINDOW}, flag the window `truncated`, and emit a\n * `logger.warn` — the day's artifact is then INCOMPLETE, but NO audit data is\n * lost: the authoritative rows always remain in `AUDIT_LOGS` (+ immudb).\n *\n * ─────────────────────────────────────────────────────────────────────────────\n * KNOWN LIMITATION + HOW TO REMOVE IT (deferred 2026-07-04 — revisit only when a\n * real deployment's volume actually triggers it; do NOT pre-build speculatively)\n * ─────────────────────────────────────────────────────────────────────────────\n * The cross-org design (ONE artifact per day for ALL orgs — see the file header)\n * multiplies what lands in the buffer, so a high-volume multi-tenant deployment\n * can exceed this cap and CHRONICALLY truncate. The cap is a SYMPTOM; the ROOT\n * CAUSE is buffering the whole artifact in memory before a single sized upload.\n * Two orthogonal, COMPOSABLE fixes (do both to eliminate it, not just soften it):\n *\n * (1) STREAM THE UPLOAD — the true root fix. Replace `records[]` +\n * `Buffer.from(JSON.stringify(...))` + sized `provider.upload(...)` with a\n * `Readable` that pages the repo and emits NDJSON row-by-row into a\n * size-OPTIONAL streaming upload. Memory then stays bounded to one page\n * (~{@link PAGE_SIZE} rows) regardless of window size, and this cap is\n * DROPPED entirely. Enabler: `IFileStorageProvider.upload()` currently\n * requires `size: number`; add a size-optional streaming path —\n * MinIO/S3 `putObject` multiparts automatically when size is unknown, and\n * the local-directory provider just pipes `stream → writeStream` (relax the\n * `validateSize` policy gate for internal system artifacts). This touches\n * shared engine surface (the provider interface + both providers + tests).\n * Cheaper no-interface-change variant: spool the window to a temp file,\n * `stat` its size, then stream-upload from the file (bounded memory via\n * disk instead of RAM, at the cost of a temp-file lifecycle + writable disk).\n *\n * (2) PER-ORG PARTITIONING — removes the cross-org amplification AND is the\n * compliance-correct shape. Emit one artifact per `(org, day)` (+ an\n * APPLICATION-scoped artifact for no-org / app-level events) instead of one\n * cross-org artifact; enumerate the distinct `organizationId`s in the window\n * via a `distinct`/aggregation, then archive per org. Each artifact becomes\n * one org's day (smaller), and each tenant's trail is an independently\n * retrievable/erasable artifact — what GDPR right-to-erasure + data\n * residency actually want. Cost: more artifacts (org-count × days).\n *\n * REJECTED as weakest: per-HOUR windowing — only makes cap-hits rarer (24× more\n * files) without addressing the root cause; a pathological hour still truncates.\n *\n * DONE (2026-08-05), no longer a rider: {@link collectWindowRecords} now uses KEYSET\n * paging on the `(createdAt, eventId)` tuple, closing the boundary-tie SKIP that offset\n * paging over the non-unique `createdAt` could not. The sibling\n * `immudb.audit-reconcile` batch pages the same way. Only the cap below remains.\n */\nconst MAX_RECORDS_PER_WINDOW = 100_000;\n\n/**\n * Trailing day-windows (re)written each steady-state tick. On a daily cron one\n * new day crosses the horizon per tick; re-writing the last two crossed days\n * self-heals a single missed tick via idempotent overwrite. Overridable per-run\n * (`lookbackDaysOverride`) for cold-start backfills.\n */\nconst DEFAULT_LOOKBACK_DAYS = 2;\n\n/**\n * Absolute ceiling on day-windows processed in one run — bounds a backfill\n * invocation. Matches the max `archiveAfterDays` (2555 ≈ 7y) so a full-history\n * backfill fits one run; most historical days are empty and skipped cheaply.\n */\nconst MAX_LOOKBACK_DAYS = 2555;\n\n/**\n * How far BEYOND the look-back the tick probes for MISSING artifacts (the gap-healing sweep).\n *\n * The look-back above unconditionally re-writes the newest few archivable days. Anything older\n * that a tick missed used to stay missing forever: the batch keeps zero cross-run state, so\n * nothing recorded that a day was skipped, and an operator had to notice and run an explicit\n * `lookbackDaysOverride` backfill.\n *\n * Progress is instead DERIVED FROM THE ARTIFACTS THEMSELVES — the only durable record that is\n * already guaranteed to exist, and the one that keeps working when immudb is not configured (the\n * reason this batch has no checkpoint store; see the header). For each day in this trailing span\n * the tick asks storage whether the day's deterministic artifact key exists, and archives only the\n * days that are missing.\n *\n * Bounded on purpose: a probe is one cheap metadata lookup, but an unbounded sweep would grow with\n * the app's whole history on every nightly tick. Gaps older than this span remain an explicit\n * `lookbackDaysOverride` operation, exactly as before.\n */\nconst DEFAULT_BACKFILL_PROBE_DAYS = 90;\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Input / Output schemas\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Optional per-tick overrides for manual `runOnce` triggers. Both narrow the\n * batch for one-shot operator gestures without touching app config.\n */\nexport const AuditLogsArchiveBatchInputSchema = z.object({\n /** One-shot archival horizon override (days). Falls back to app config. */\n archiveAfterDaysOverride: z.number().int().min(1).max(2555).optional(),\n /** One-shot look-back width override (days) — for cold-start backfills. */\n lookbackDaysOverride: z.number().int().min(1).max(MAX_LOOKBACK_DAYS).optional(),\n /**\n * One-shot width override (days) for the missing-artifact probe sweep that runs BEYOND the\n * look-back. `0` disables the sweep for this run (pure look-back behaviour).\n */\n backfillProbeDaysOverride: z.number().int().min(0).max(MAX_LOOKBACK_DAYS).optional(),\n}).strict();\nexport type AuditLogsArchiveBatchInput = z.infer<typeof AuditLogsArchiveBatchInputSchema>;\n\n/**\n * Run summary covering the happy path, the two no-op paths (disabled / no\n * storage), and the failure path.\n */\nexport const AuditLogsArchiveBatchOutputSchema = z.object({\n /** Wall-clock ISO timestamp when the body started. */\n tickAt: z.string().datetime(),\n /** Whether an archival horizon was configured/overridden (opt-in resolved). */\n enabled: z.boolean(),\n /** Effective archival horizon applied this tick (days), or null when disabled. */\n archiveAfterDays: z.number().int().nullable(),\n /** ISO cutoff — records with `createdAt < horizonAt` were archival-eligible. */\n horizonAt: z.string().datetime().nullable(),\n /** Whether a storage provider was configured (false ⇒ no-op). */\n storageConfigured: z.boolean(),\n /** Trailing day-windows considered this run. */\n lookbackDays: z.number().int().min(0),\n /** Width (days) of the missing-artifact probe sweep beyond the look-back. */\n backfillProbeDays: z.number().int().min(0),\n /**\n * Days in the probe span whose artifact was ABSENT and were therefore archived by the sweep.\n * A persistently non-zero value means ticks are being missed — surfaced rather than silent.\n */\n windowsBackfilled: z.number().int().min(0),\n /** Day-windows scanned (some may have had zero rows and produced no artifact). */\n windowsScanned: z.number().int().min(0),\n /** Day-windows that produced (overwrote) an archival artifact. */\n windowsArchived: z.number().int().min(0),\n /** Total audit records written across all artifacts this run. */\n recordsArchived: z.number().int().min(0),\n /** Windows that hit {@link MAX_RECORDS_PER_WINDOW} and were archived partial. */\n truncatedWindows: z.number().int().min(0),\n /** Tick-level failure message — non-null only when a scan/upload threw. */\n error: z.string().nullable(),\n durationMs: z.number().int().min(0),\n});\nexport type AuditLogsArchiveBatchOutput = z.infer<typeof AuditLogsArchiveBatchOutputSchema>;\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Internals\n// ═══════════════════════════════════════════════════════════════════════════\n\n/** Shape the paginated AUDIT_LOGS `list` resolves to. */\ninterface AuditLogsListPage {\n data: AuditableEvent[];\n pagination?: { totalPages?: number };\n}\n\n/**\n * Human-readable one-line message for the batch OUTPUT's `error` field (the\n * output schema types it as a plain `string`).\n *\n * Delegates to the shared {@link describeCaughtError} rather than an inline\n * `instanceof Error` ternary, which would persist every structured\n * `WildoError_Backend` as the literal `'[object Object]'`. The log line pairs\n * this with {@link projectCaughtErrorLogFields} for the full queryable detail.\n */\nfunction formatError(err: unknown): string {\n return describeCaughtError(err);\n}\n\n/** Midnight-UTC start of the day containing `d`. */\nfunction startOfUtcDay(d: Date): Date {\n return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));\n}\n\nfunction addDays(d: Date, n: number): Date {\n return new Date(d.getTime() + n * MS_PER_DAY);\n}\n\n/** `YYYY-MM-DD` key for a midnight-UTC day-start. */\nfunction dayKey(dayStart: Date): string {\n return dayStart.toISOString().slice(0, 10);\n}\n\n/**\n * Resolve the effective archival horizon (days). First non-undefined wins:\n * per-tick override → `AppConfiguration.auditTrail.archiveAfterDays` → none\n * (undefined ⇒ archival disabled). Read at TICK time so an in-place config\n * change takes effect on the next run without a redeploy.\n */\nfunction resolveArchiveAfterDays(\n override: number | undefined,\n appConfigService: AppConfigurationService,\n): number | undefined {\n if (typeof override === 'number') return override;\n const fromConfig = appConfigService.config?.auditTrail?.archiveAfterDays;\n return typeof fromConfig === 'number' ? fromConfig : undefined;\n}\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Batch Service\n// ═══════════════════════════════════════════════════════════════════════════\n\nexport const auditLogsArchiveBatchService: BatchesCronjobsCustomExecution_Service<\n typeof AuditLogsArchiveBatchInputSchema,\n typeof AuditLogsArchiveBatchOutputSchema\n> = createCustomBatchExecutionService({\n input: AuditLogsArchiveBatchInputSchema,\n output: AuditLogsArchiveBatchOutputSchema,\n batchCronjob_Context: {\n // Scope-anchored @ APPLICATION: cross-org archival, no honest single target\n // resource (mirrors the reconcile / SIEM anchoring). `cronJobExpression` is\n // what actually SCHEDULES the run (sourced from the manifest so schedule +\n // spec cross-validation share ONE literal); omitting it would register the\n // batch but never fire it.\n kind: ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST.kind,\n operationIdentifier: ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST.operationIdentifier,\n primaryScope: ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST.primaryScope,\n cronJobExpression: ENGINE_AUDIT_LOGS_ARCHIVE_BATCH_MANIFEST.cronExpression,\n },\n resolveDependencies: ({ get }) => ({\n appConfigService: get<AppConfigurationService>(SAAS_SERVICE_TYPES.AppConfigService),\n fileStorageRouter: get<FileStorageRouterBackendService>(SAAS_SERVICE_TYPES.FileStorageRouter),\n }),\n doHandle: async (\n input,\n {\n logger,\n repositoriesRegistry,\n executionContextCreator,\n dependencies,\n },\n ) => {\n const startTime = Date.now();\n const tickAt = new Date(startTime).toISOString();\n const logDebug = logger.debugByType('AuditLogsArchiveBatch');\n const { appConfigService, fileStorageRouter } = dependencies;\n\n // Mutable run state, hoisted OUT of the try so the never-throws catch reports\n // HONEST partial progress: artifacts uploaded before a mid-loop failure are\n // real (persisted, idempotent), so the failure summary must reflect them —\n // not reset to zero. Mirrors the reconcile batch's \"return what was\n // accumulated\" contract.\n let enabled = false;\n let archiveAfterDays: number | null = null;\n let horizonAt: string | null = null;\n let storageConfigured = false;\n let lookbackDays = 0;\n let backfillProbeDays = 0;\n let windowsScanned = 0;\n let windowsArchived = 0;\n let windowsBackfilled = 0;\n let recordsArchived = 0;\n let truncatedWindows = 0;\n\n const summary = (error: string | null = null): AuditLogsArchiveBatchOutput => ({\n tickAt,\n enabled,\n archiveAfterDays,\n horizonAt,\n storageConfigured,\n lookbackDays,\n backfillProbeDays,\n windowsScanned,\n windowsArchived,\n windowsBackfilled,\n recordsArchived,\n truncatedWindows,\n error,\n durationMs: Date.now() - startTime,\n });\n\n try {\n // 1. Opt-in gate. Undefined horizon ⇒ archival disabled (retain in DB\n // indefinitely). Emit a tick log so the cron's liveness is observable.\n const resolvedArchiveAfterDays = resolveArchiveAfterDays(input.archiveAfterDaysOverride, appConfigService);\n if (resolvedArchiveAfterDays === undefined) {\n logger.info('[audit] archive tick complete (archival disabled — auditTrail.archiveAfterDays unset)', { tickAt });\n return summary();\n }\n enabled = true;\n archiveAfterDays = resolvedArchiveAfterDays;\n\n // 2. Storage gate. Without a configured storage provider there is nowhere\n // to write; warn + no-op (never throw).\n if (!fileStorageRouter.isConfigured()) {\n logger.warn('[audit] archival is enabled but no file-storage provider is configured — skipping archival tick', {\n tickAt,\n archiveAfterDays,\n });\n return summary();\n }\n storageConfigured = true;\n // Prefer Wildo-managed, fall back to local-directory — the first\n // configured of the two the router knows about.\n const storageProvider = fileStorageRouter.resolveProvider([\n FileStorageAccepted.WILDO_MANAGED,\n FileStorageAccepted.LOCAL_DIRECTORY,\n ]);\n\n // 3. Compute the archivable day-window range. `horizon` is the age\n // cutoff; the most-recent FULLY-archivable day is the one ending at\n // the start of the horizon's day (the horizon's own day is only\n // partially older than the cutoff, so it is not archived yet).\n const horizon = new Date(startTime - resolvedArchiveAfterDays * MS_PER_DAY);\n horizonAt = horizon.toISOString();\n const dmaxStart = addDays(startOfUtcDay(horizon), -1);\n lookbackDays = Math.min(\n Math.max(input.lookbackDaysOverride ?? DEFAULT_LOOKBACK_DAYS, 1),\n MAX_LOOKBACK_DAYS,\n );\n // The probe sweep sits BEYOND the look-back, and the pair is capped together so a wide\n // `lookbackDaysOverride` backfill cannot also drag a full probe span along behind it.\n backfillProbeDays = Math.min(\n Math.max(input.backfillProbeDaysOverride ?? DEFAULT_BACKFILL_PROBE_DAYS, 0),\n Math.max(MAX_LOOKBACK_DAYS - lookbackDays, 0),\n );\n\n // Internal APP_ADMIN_SUPER_ADMIN @ APPLICATION context for the AUDIT_LOGS\n // read — mirrors the reconcile batch. No org id + `excludeContextualFilter`\n // on the read ⇒ the scan spans EVERY org's rows.\n //\n // Resolved through the canonical repository seam, NOT a hand-rolled\n // `ResourceConfiguration_OperationPath`. Operation defaults are\n // variant-type-LOCAL and AUDIT_LOGS declares its LIST `REPOSITORY_ONLY`\n // variant `isDefault: false`, so a literal\n // `{ variantType: REPOSITORY_ONLY, isOperationDefault: true }` path matches\n // NOTHING and throws. That literal used to sit here and was latent only\n // because the archival opt-in gate above returns before reaching it whenever\n // `auditTrail.archiveAfterDays` is unset — enabling archival would have\n // surfaced it immediately. The sibling reconcile batch (no such gate) threw on\n // every run. See `immudb-audit-reconcile.batch.backend.service.ts`.\n const executionContext = await executionContextCreator.createForInternalRepositoryOperation({\n resourceType: CoreResourceType.AUDIT_LOGS,\n operationIdentifier: CoreResourceOperation.LIST,\n contextResourcesFieldIdentifier: new Map(),\n initiatorIds: null,\n initiatorRoles: [\n { roles: [CORE_APP_ROLES.APP_ADMIN_SUPER_ADMIN], relatedPrimaryScope: ResourcePrimaryScope.APPLICATION },\n ],\n });\n const auditRepo = repositoriesRegistry.getRepositoryOrThrow(CoreResourceType.AUDIT_LOGS, executionContext);\n\n const applicationId = executionContext.applicationId || appConfigService.applicationId;\n\n // The day offsets processed this tick, oldest → newest so partial-run progress covers the\n // oldest un-archived days first.\n //\n // Two bands with DIFFERENT semantics:\n // - look-back band (offsets 0…lookbackDays-1): ALWAYS re-scanned and re-written. Recent\n // days are cheap and this is what self-heals a single missed tick.\n // - probe band (older): re-scanned ONLY when the day's artifact is missing. This is the\n // gap-healing sweep — it derives progress from the artifacts instead of cross-run state,\n // so a tick missed weeks ago is repaired automatically instead of silently persisting.\n const probeBandStart = lookbackDays;\n const probeBandEnd = lookbackDays + backfillProbeDays; // exclusive\n const offsets: number[] = [];\n for (let i = probeBandEnd - 1; i >= probeBandStart; i -= 1) offsets.push(i);\n for (let i = lookbackDays - 1; i >= 0; i -= 1) offsets.push(i);\n\n for (const i of offsets) {\n const windowStart = addDays(dmaxStart, -i);\n const windowEnd = addDays(windowStart, 1);\n const isProbeBand = i >= probeBandStart;\n\n if (isProbeBand) {\n // One cheap metadata lookup decides whether this old day needs any work at all. An\n // already-archived non-empty day costs exactly this probe and nothing more.\n const exists = await archiveArtifactExists({\n storageProvider,\n executionContext,\n day: dayKey(windowStart),\n });\n if (exists) continue;\n }\n\n windowsScanned += 1;\n\n const { records, truncated } = await collectWindowRecords(auditRepo, executionContext, windowStart, windowEnd);\n if (records.length === 0) {\n // Empty day ⇒ no artifact (keeps historical backfill cheap). NOTE this is why the probe\n // cannot distinguish \"never archived\" from \"archived nothing\": an empty day is re-scanned\n // by every sweep. That scan is a single zero-row query, deliberately preferred over\n // writing empty marker artifacts just to satisfy the probe.\n continue;\n }\n if (truncated) {\n truncatedWindows += 1;\n // No silent caps: dropping records from an archive artifact must be\n // loud. The source rows are NOT lost (they stay in AUDIT_LOGS + immudb)\n // — the day's artifact is merely incomplete. An operator seeing this\n // should narrow to per-hour windows (future enhancement).\n logger.warn(\n '[audit] archive day-window hit the per-window record cap — artifact is INCOMPLETE for this day '\n + '(source rows retained in AUDIT_LOGS; the newest rows past the cap are omitted from the artifact)',\n { day: dayKey(windowStart), cap: MAX_RECORDS_PER_WINDOW, archived: records.length },\n );\n }\n\n await uploadWindowArtifact({\n storageProvider,\n executionContext,\n applicationId,\n windowStart,\n windowEnd,\n archivedAt: tickAt,\n records,\n truncated,\n });\n\n windowsArchived += 1;\n recordsArchived += records.length;\n if (isProbeBand) {\n windowsBackfilled += 1;\n // A gap the steady-state look-back could never have reached. Report it: a recurring\n // count here means ticks are being missed, which is worth an operator's attention even\n // though the sweep repaired it.\n logger.warn('[audit] archived a MISSING historical day-window (gap-healing sweep) — ticks may be being missed', {\n day: dayKey(windowStart),\n recordCount: records.length,\n });\n }\n logDebug('Archived audit day-window', {\n day: dayKey(windowStart),\n recordCount: records.length,\n truncated,\n backfilled: isProbeBand,\n });\n }\n\n logger.info('[audit] archive tick complete', {\n tickAt,\n archiveAfterDays,\n horizonAt,\n lookbackDays,\n backfillProbeDays,\n windowsScanned,\n windowsArchived,\n windowsBackfilled,\n recordsArchived,\n truncatedWindows,\n });\n\n return summary();\n } catch (error) {\n // Top-level guard: never throw onto the batch runner. Return the summary\n // with progress accumulated so far (artifacts already uploaded are real);\n // the next tick retries the same trailing windows (idempotent overwrite).\n const message = formatError(error);\n logger.error?.('[audit] audit-logs archive batch failed (non-fatal, returning partial summary)', {\n ...projectCaughtErrorLogFields(error),\n tickAt,\n });\n return summary(message);\n }\n },\n});\n\n// ═══════════════════════════════════════════════════════════════════════════\n// Helpers\n// ═══════════════════════════════════════════════════════════════════════════\n\n/**\n * Page through one day-window `[windowStart, windowEnd)` of AUDIT_LOGS and\n * accumulate its rows (cross-org, `createdAt` ASC for deterministic artifact\n * content). Stops at {@link MAX_RECORDS_PER_WINDOW} (flagging `truncated`) so a\n * pathological day can't OOM the batch. Throws on repository failure — the\n * caller's top-level guard records it on `outputData.error`.\n *\n * **Paging is KEYSET on `(createdAt, eventId)`** (2026-08-05), not offset-based.\n *\n * It used to be `skip = (page-1)*limit` over the NON-unique `createdAt`. When more rows\n * than the page size share one millisecond across a page boundary, the store may order\n * those ties differently between the two page queries — so a boundary row could be\n * served on BOTH pages (duplicated) or on NEITHER (silently dropped from the artifact).\n * Dedupe by `eventId` covered the duplicate half; the dropped half was unrecoverable.\n *\n * This was previously written off as \"negligible in practice (needs 100+ events in one\n * millisecond)\". That condition is real: an application boot burst wrote 404 audit rows\n * in a single millisecond, which permanently stranded 305 records in the sibling\n * `immudb.audit-reconcile` batch before it was converted to the same keyset scan. Boot,\n * seeding and migration paths emit audit rows in tight loops — that is exactly when a\n * day-window archive matters most.\n *\n * The `(createdAt, eventId)` tuple is unique and totally ordered, so no row can now fall\n * between two pages in either direction. The `eventId` half depends on it being present\n * in the AUDIT_LOGS LIST `sortFields` (pinned by the resource-config test); a non-empty\n * whitelist makes the repository DROP unlisted sort keys silently, so removing it would\n * restore the defect without any error. The `seen` dedupe and the no-progress guard\n * remain as backstops for exactly that degradation.\n *\n * Residual (unchanged): a window exceeding {@link MAX_RECORDS_PER_WINDOW} is still\n * truncated, and the source rows always remain in AUDIT_LOGS regardless.\n */\n/**\n * Does the archival artifact for `day` already exist in storage?\n *\n * This is how the batch derives progress WITHOUT any cross-run state: the artifacts are the\n * record. It must address the blob exactly as {@link uploadWindowArtifact} wrote it, and it does\n * so WITHOUT re-implementing any provider path logic — the composite\n * `<folderPath>/<fileName>` is handed over as the `fileId` and each provider applies its OWN\n * composition, the same one its `upload` used:\n *\n * - wildo-managed: `upload` builds `effectiveFileId = folderPath/fileName` and calls\n * `resolveApplicationObjectKey(effectiveFileId, ctx)`; `getMetadata` calls that identical\n * resolver with `file.fileId`.\n * - local-directory: `upload` calls `composeStorageKey(fileId, ctx, options)`; `getMetadata` with\n * no `storageRef` calls that same method with `file.fileId` and no options.\n *\n * Both therefore land on the byte-identical key — and since 2026-09-09 on the SAME key as each\n * other, because both route through `application-storage-key.backend.utils`. The one coupling is\n * `includeApplicationId: true` on the upload — flip that and the probe would address a different\n * blob, so the two must move together.\n *\n * Parity is pinned in each provider's OWN suite (upload, then `getMetadata` with no ref, against a\n * real store). It is NOT pinned here: this batch's tests drive a fake provider that stores and\n * probes `<folderPath>/<fileName>` by construction, so it agrees with itself whatever the real\n * providers do. An earlier revision of this comment claimed \"pinned by the key-parity test\"; no\n * such test existed.\n *\n * FAIL-SAFE DIRECTION: any failure — genuinely absent, or a transient storage fault — answers\n * `false`, i.e. \"archive it\". Re-archiving is harmless by construction (the artifact key is\n * deterministic and the write overwrites), whereas a false `true` would silently skip a day and\n * recreate the very gap this sweep exists to close.\n */\nasync function archiveArtifactExists(args: {\n storageProvider: ReturnType<FileStorageRouterBackendService['resolveProvider']>;\n executionContext: Awaited<ReturnType<ExecutionContextCreatorBackendService['createForInternalRepositoryOperation']>>;\n day: string;\n}): Promise<boolean> {\n const { storageProvider, executionContext, day } = args;\n try {\n await storageProvider.getMetadata(\n {\n fileId: `${AUDIT_ARCHIVE_FOLDER}/audit-archive-${day}.json`,\n storageProvider: undefined,\n storageRef: undefined,\n } as unknown as Parameters<typeof storageProvider.getMetadata>[0],\n executionContext,\n );\n return true;\n } catch {\n return false;\n }\n}\n\nasync function collectWindowRecords(\n auditRepo: ReturnType<RepositoriesRegistryHandlerBackendService['getRepositoryOrThrow']>,\n executionContext: Awaited<ReturnType<ExecutionContextCreatorBackendService['createForInternalRepositoryOperation']>>,\n windowStart: Date,\n windowEnd: Date,\n): Promise<{ records: AuditableEvent[]; truncated: boolean }> {\n const windowBound = { createdAt: { $gte: windowStart, $lt: windowEnd } };\n const records: AuditableEvent[] = [];\n const seen = new Set<string>();\n let truncated = false;\n /** Keyset position: the `(createdAt, eventId)` of the last row consumed. */\n let cursor: { createdAt: Date; eventId: string } | null = null;\n\n for (let page = 1; page <= MAX_PAGES_PER_WINDOW; page += 1) {\n // KEYSET lower bound, ANDed with the day window. `$and`/`$or` are both translated by the\n // Mongo and PostgreSQL adapters, so the predicate is portable.\n const filter: Record<string, unknown> = cursor === null\n ? windowBound\n : {\n $and: [\n windowBound,\n {\n $or: [\n { createdAt: { $gt: cursor.createdAt } },\n { createdAt: cursor.createdAt, eventId: { $gt: cursor.eventId } },\n ],\n },\n ],\n };\n\n // Page is pinned to 1: the cursor — not an offset — is what advances. Offset paging over a\n // NON-unique sort key was the defect (see the boundary-tie note above); with `skip`, ties\n // straddling a page boundary could be served on both pages (deduped below) or on NEITHER\n // (unrecoverable). `sort` is honored because AUDIT_LOGS' LIST whitelists BOTH `createdAt`\n // and `eventId` in its sortFields — drop `eventId` there and the tie-break silently\n // disappears, restoring the skip. Typed to the `_doList` contract, structurally compatible\n // with the public overload.\n const listOptions: { page: number; limit: number; sort: Record<string, 1 | -1> } = {\n page: 1,\n limit: PAGE_SIZE,\n sort: { createdAt: 1, eventId: 1 },\n };\n const result = (await auditRepo.list(executionContext, filter, {\n paginated: true,\n // Cross-org archival: bypass the contextual org filter so EVERY org's rows\n // for this day are captured, not just a caller's org.\n excludeContextualFilter: true,\n listOptions,\n })) as unknown as AuditLogsListPage;\n\n const rows = result.data ?? [];\n if (rows.length === 0) break;\n\n const cursorBeforePage = cursor;\n\n for (const row of rows) {\n // Dedupe by stable identity. Keyset paging makes a cross-page duplicate unreachable in\n // normal operation, so this is now a defensive backstop against a degraded sort rather\n // than the primary protection it used to be. A row with no identity at all (never\n // expected — persisted rows carry `_id`) is treated as distinct rather than silently\n // collapsed.\n const key = String((row as { eventId?: string; _id?: string }).eventId\n ?? (row as { _id?: string })._id ?? '');\n if (key && seen.has(key)) continue;\n if (records.length >= MAX_RECORDS_PER_WINDOW) {\n truncated = true;\n break;\n }\n if (key) seen.add(key);\n records.push(row);\n\n // Advance only on a COMPLETE tuple: a row missing either half cannot express a keyset\n // position, and inventing a partial one would step over its neighbours. Leaving the cursor\n // put means the no-progress guard below ends the scan instead.\n const rowCreatedAt = row.createdAt instanceof Date ? row.createdAt : new Date(String(row.createdAt));\n const rowEventId = (row as { eventId?: unknown }).eventId;\n if (!Number.isNaN(rowCreatedAt.getTime()) && typeof rowEventId === 'string') {\n cursor = { createdAt: rowCreatedAt, eventId: rowEventId };\n }\n }\n if (truncated) break;\n\n // Defensive no-progress guard: with a valid `(createdAt, eventId)` sort every page strictly\n // advances the cursor. Failing to advance means the ordering was degraded or the page held\n // no usable tuple — stop rather than re-issue an identical query forever.\n if (\n cursor !== null &&\n cursorBeforePage !== null &&\n cursor.createdAt.getTime() === cursorBeforePage.createdAt.getTime() &&\n cursor.eventId === cursorBeforePage.eventId\n ) {\n break;\n }\n\n if (rows.length < PAGE_SIZE) break;\n }\n\n return { records, truncated };\n}\n\n/**\n * Serialise a day-window's records to a self-describing JSON artifact and upload\n * it to the DETERMINISTIC key `audit-archive/[applicationId/]audit-archive-<day>.json`\n * (overwrite = idempotent). JSON (not CSV) is used deliberately: audit events\n * carry nested metadata that CSV would flatten lossily.\n */\nasync function uploadWindowArtifact(args: {\n storageProvider: ReturnType<FileStorageRouterBackendService['resolveProvider']>;\n executionContext: Awaited<ReturnType<ExecutionContextCreatorBackendService['createForInternalRepositoryOperation']>>;\n applicationId: string | undefined;\n windowStart: Date;\n windowEnd: Date;\n archivedAt: string;\n records: AuditableEvent[];\n truncated: boolean;\n}): Promise<void> {\n const { storageProvider, executionContext, applicationId, windowStart, windowEnd, archivedAt, records, truncated } = args;\n const day = dayKey(windowStart);\n\n const payload = {\n schemaVersion: 1 as const,\n kind: 'audit-log-archive' as const,\n // Self-describing provenance: the artifact is also namespaced under the\n // applicationId in its storage path (includeApplicationId), but embedding it\n // keeps a portable artifact identifiable without parsing the path.\n applicationId: applicationId ?? null,\n dayWindowUtc: day,\n windowStart: windowStart.toISOString(),\n windowEnd: windowEnd.toISOString(),\n archivedAt,\n recordCount: records.length,\n truncated,\n records,\n };\n const buffer = Buffer.from(JSON.stringify(payload), 'utf-8');\n\n await storageProvider.upload(\n Readable.from([buffer]),\n // Random valid resource id satisfies `validateFileId`; the DETERMINISTIC key\n // comes from `fileName` (the providers use it as the blob leaf), so the id\n // never affects the storage location or the overwrite semantics.\n randomUUID(),\n 'application/json',\n buffer.byteLength,\n executionContext,\n {\n folderPath: AUDIT_ARCHIVE_FOLDER,\n fileName: `audit-archive-${day}.json`,\n includeApplicationId: true,\n },\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"immudb-audit-reconcile.batch.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,OAAO,EAEL,KAAK,sCAAsC,EAC5C,MAAM,4FAA4F,CAAC;AA4CpG;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,gCAAe,CAAC;AACjE,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC;;;iBAGhD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAiIpG,eAAO,MAAM,gCAAgC,EAAE,sCAAsC,CACnF,OAAO,oCAAoC,EAC3C,OAAO,qCAAqC,CAwH5C,CAAC"}
1
+ {"version":3,"file":"immudb-audit-reconcile.batch.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,OAAO,EAEL,KAAK,sCAAsC,EAC5C,MAAM,4FAA4F,CAAC;AA4CpG;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,gCAAe,CAAC;AACjE,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC;;;iBAGhD,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAiIpG,eAAO,MAAM,gCAAgC,EAAE,sCAAsC,CACnF,OAAO,oCAAoC,EAC3C,OAAO,qCAAqC,CAwH5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"siem-webhook-delivery.batch.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,sCAAsC,EAC5C,MAAM,4FAA4F,CAAC;AAYpG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuB9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC;;;;;;iBAM/C,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAqBlG,eAAO,MAAM,+BAA+B,EAAE,sCAAsC,CAClF,OAAO,mCAAmC,EAC1C,OAAO,oCAAoC,CAsD3C,CAAC"}
1
+ {"version":3,"file":"siem-webhook-delivery.batch.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,sCAAsC,EAC5C,MAAM,4FAA4F,CAAC;AAYpG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuB9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC;;;;;;iBAM/C,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAqBlG,eAAO,MAAM,+BAA+B,EAAE,sCAAsC,CAClF,OAAO,mCAAmC,EAC1C,OAAO,oCAAoC,CAsD3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mock-audit-logs.service.d.ts","sourceRoot":"","sources":["../../../../../../../src/compliance/audit-trails/services/__tests__/mock-audit-logs.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,kBAAkB,CAAC;AAI1B,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB,CAAC;AAEF,qBACa,oBAAoB;IAC/B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAM;IAEzC,OAAO,CAAC,UAAU;IAIlB,YAAY,kDAET;IAEH,eAAe,kDAEZ;IAEH,qBAAqB,kDAElB;IAEH,YAAY,kDAET;IAEH,wBAAwB,kDAErB;IAEH,sBAAsB,kDAEnB;IAEH,KAAK,IAAI,IAAI;CASd"}
1
+ {"version":3,"file":"mock-audit-logs.service.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/__tests__/mock-audit-logs.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,kBAAkB,CAAC;AAI1B,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB,CAAC;AAEF,qBACa,oBAAoB;IAC/B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAM;IAEzC,OAAO,CAAC,UAAU;IAIlB,YAAY,kDAET;IAEH,eAAe,kDAEZ;IAEH,qBAAqB,kDAElB;IAEH,YAAY,kDAET;IAEH,wBAAwB,kDAErB;IAEH,sBAAsB,kDAEnB;IAEH,KAAK,IAAI,IAAI;CASd"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-event-dispatcher.backend.service.d.ts","sourceRoot":"","sources":["../../../../../../src/compliance/audit-trails/services/audit-event-dispatcher.backend.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-event-dispatcher.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/compliance/audit-trails/services/audit-event-dispatcher.backend.service.ts"],"names":[],"mappings":"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"}