@wildo-ai/saas-backend-lib 1.1.2 → 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 (1358) 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 +19 -1
  9. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  10. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  11. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
  12. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  13. package/dist/esm/base-classes/models/repositories.backend.schemas.d.ts.map +1 -1
  14. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts +1 -1
  15. package/dist/esm/base-classes/services/__tests__/mock-resource-operation-helper.service.d.ts.map +1 -1
  16. package/dist/esm/base-classes/services/batches/batches-cronjobs-custom-execution.service.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/batches-cronjobs-executor.backend.service.d.ts.map +1 -1
  18. package/dist/esm/base-classes/services/batches/batches-cronjobs-resource-execution.backend.service.d.ts.map +1 -1
  19. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
  20. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
  21. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
  22. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
  23. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
  24. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
  25. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +210 -0
  26. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
  27. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
  28. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  29. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
  30. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  31. package/dist/esm/base-classes/services/batches/resource-retention-sweep.batch.backend.service.d.ts.map +1 -1
  32. package/dist/esm/base-classes/services/batches/suspension-reactivation-sweep.batch.backend.service.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/controllers/abstract-controller.backend.service.d.ts.map +1 -1
  34. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  35. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +27 -6
  36. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  37. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  38. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  39. package/dist/esm/base-classes/services/controllers/utils/audit-access-fields.backend.utils.d.ts.map +1 -1
  40. package/dist/esm/base-classes/services/controllers/utils/operation-response-serializer.backend.utils.d.ts.map +1 -1
  41. package/dist/esm/base-classes/services/controllers/validate-field-handler.backend.service.d.ts.map +1 -1
  42. package/dist/esm/base-classes/services/repositories/__tests__/method-span-scan.guard-helpers.d.ts.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/__tests__/mock-repositories-registry-handler.service.d.ts.map +1 -1
  44. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-filter-translation.backend.d.ts.map +1 -1
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +220 -25
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-query.backend.d.ts.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  52. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  53. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +191 -26
  54. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  55. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +47 -4
  56. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  57. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +96 -29
  58. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  59. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  60. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  61. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  62. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  63. package/dist/esm/base-classes/services/repositories/http-api/http-api-row-projection.backend.d.ts.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/http-api/http-api-subject-erasure-effect.backend.d.ts.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  66. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  68. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  70. package/dist/esm/base-classes/services/repositories/http-api/odoo-jsonrpc-compiler.backend.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/http-api/rest-json-query-compiler.backend.d.ts.map +1 -1
  72. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +9 -1
  74. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  75. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  76. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  77. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +106 -0
  78. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +266 -20
  80. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  81. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +23 -3
  83. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  84. package/dist/esm/base-classes/services/repositories/repository-guarded-mutation.backend.types.d.ts.map +1 -1
  85. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +5 -2
  86. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  87. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +34 -3
  88. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  89. package/dist/esm/base-classes/services/repositories/repository-version-metadata.backend.utils.d.ts.map +1 -1
  90. package/dist/esm/base-classes/services/repositories/resource-write-integrity.backend.d.ts.map +1 -1
  91. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts +72 -0
  92. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.d.ts.map +1 -0
  93. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js +88 -0
  94. package/dist/esm/base-classes/services/repositories/seed-row-default-materialization.backend.js.map +1 -0
  95. package/dist/esm/base-classes/services/repositories/unique-constraint-conflict-reference.backend.d.ts.map +1 -1
  96. package/dist/esm/base-classes/services/resource-operations-helper.backend.service.d.ts.map +1 -1
  97. package/dist/esm/base-classes/services/services/__tests__/mock-services-registry-handler.service.d.ts.map +1 -1
  98. package/dist/esm/base-classes/services/services/__tests__/mock-system-access.service.d.ts.map +1 -1
  99. package/dist/esm/base-classes/services/services/read-only-field-change.backend.utils.d.ts.map +1 -1
  100. package/dist/esm/base-classes/services/services/resource-operation-audit-emission.backend.utils.d.ts.map +1 -1
  101. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  102. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  103. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  104. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
  105. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
  106. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  107. package/dist/esm/base-classes/services/services/resource-operation-server-injected-fields.backend.utils.d.ts.map +1 -1
  108. package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
  109. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  110. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  111. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  112. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  113. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  114. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  115. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  116. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  117. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  118. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +571 -45
  119. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  120. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  121. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  122. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  123. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  124. package/dist/esm/base-classes/utils/backend-type-utils.d.ts.map +1 -1
  125. package/dist/esm/base-classes/utils/single-subject-addressing.backend.utils.d.ts.map +1 -1
  126. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  127. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  128. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  129. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  130. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  131. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  132. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  133. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  134. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  135. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  136. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  137. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  138. package/dist/esm/billing/services/back-office/abstract-billing.backend.service.d.ts.map +1 -1
  139. package/dist/esm/billing/services/back-office/billing-feature-sync.backend.service.d.ts.map +1 -1
  140. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  141. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  142. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +475 -0
  143. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  144. package/dist/esm/billing/services/back-office/billing-state.backend.service.d.ts.map +1 -1
  145. package/dist/esm/billing/services/back-office/billing-state.backend.service.js +11 -1
  146. package/dist/esm/billing/services/back-office/billing-state.backend.service.js.map +1 -1
  147. package/dist/esm/billing/services/back-office/billing-subject-erasure-effect.backend.d.ts.map +1 -1
  148. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  149. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  150. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  151. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  152. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  153. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  154. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  155. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  156. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  157. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  158. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  159. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  160. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  161. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  162. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  163. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  164. package/dist/esm/billing/services/billing.utils.d.ts.map +1 -1
  165. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  166. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +48 -7
  167. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  168. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +70 -1
  169. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  170. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +98 -2
  171. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  172. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  173. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  174. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  175. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  176. package/dist/esm/billing/services/custom-impl/credit-pool.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  177. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  178. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  179. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  180. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  181. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  182. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  183. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  184. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +21 -1
  185. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  186. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +109 -2
  187. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  188. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  189. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  190. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  191. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  192. package/dist/esm/billing/services/webhooks/billing-webhook-adapter.backend.service.d.ts.map +1 -1
  193. package/dist/esm/billing/services/webhooks/billing-webhook-capability-handler.backend.service.d.ts.map +1 -1
  194. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  195. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  196. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +310 -29
  197. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  198. package/dist/esm/billing/testing/billing-test-fixtures.d.ts.map +1 -1
  199. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  200. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  201. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  202. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  203. package/dist/esm/charts/controllers/chart.backend.controller.d.ts.map +1 -1
  204. package/dist/esm/charts/services/chart-registry.backend.service.d.ts +80 -7
  205. package/dist/esm/charts/services/chart-registry.backend.service.d.ts.map +1 -1
  206. package/dist/esm/charts/services/chart-registry.backend.service.js +115 -8
  207. package/dist/esm/charts/services/chart-registry.backend.service.js.map +1 -1
  208. package/dist/esm/companion-exports.d.ts.map +1 -1
  209. package/dist/esm/compliance/audit-trails/audit-logs.custom-impl.backend.service.d.ts.map +1 -1
  210. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.d.ts.map +1 -1
  211. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  212. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  213. package/dist/esm/compliance/audit-trails/batches/immudb-audit-reconcile.batch.backend.service.d.ts.map +1 -1
  214. package/dist/esm/compliance/audit-trails/batches/siem-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  215. package/dist/esm/compliance/audit-trails/services/__tests__/mock-audit-logs.service.d.ts.map +1 -1
  216. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +225 -13
  217. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  218. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +340 -62
  219. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  220. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +350 -10
  221. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  222. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +562 -10
  223. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  224. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  225. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  226. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  227. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +6 -2
  228. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  229. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +31 -9
  230. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -1
  231. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  232. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  233. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +57 -1
  234. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  235. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  236. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  237. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  238. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  239. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  240. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +52 -0
  241. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  242. package/dist/esm/compliance/audit-trails/services/utils/ocsf-class-mapping.backend.utils.d.ts.map +1 -1
  243. package/dist/esm/compliance/audit-trails/services/utils/siem-dictionary.backend.utils.d.ts.map +1 -1
  244. package/dist/esm/compliance/audit-trails/services/utils/siem-ocsf-projection.backend.utils.d.ts.map +1 -1
  245. package/dist/esm/compliance/audit-trails/services/utils/siem-projection-contract.backend.utils.d.ts.map +1 -1
  246. package/dist/esm/compliance/audit-trails/utils/audit-actor.backend.utils.d.ts.map +1 -1
  247. package/dist/esm/compliance/audit-trails/utils/layer2-audit-provider-boot-diagnostic.backend.utils.d.ts.map +1 -1
  248. package/dist/esm/compliance/index.d.ts.map +1 -1
  249. package/dist/esm/compliance/privacy/retention-hide-predicate.backend.d.ts.map +1 -1
  250. package/dist/esm/compliance/privacy/services/subject-erasure-external-effects.backend.service.d.ts.map +1 -1
  251. package/dist/esm/compliance/privacy/services/subject-session-revocation.backend.service.d.ts.map +1 -1
  252. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  253. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  254. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  255. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  256. package/dist/esm/config/bootstrap/minion-initialization-projection.backend.d.ts.map +1 -1
  257. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.d.ts.map +1 -1
  258. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js +3 -0
  259. package/dist/esm/config/bootstrap/runtime-principal-attestation.backend.service.js.map +1 -1
  260. package/dist/esm/config/bootstrap/runtime-principal.backend.service.d.ts.map +1 -1
  261. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  262. package/dist/esm/config/models/app-config-secrets.backend.schemas.d.ts.map +1 -1
  263. package/dist/esm/config/models/app-config.backend-authored.definitions.d.ts.map +1 -1
  264. package/dist/esm/config/models/app-config.backend.schemas.d.ts +145 -49
  265. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  266. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  267. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  268. package/dist/esm/config/models/app-env-config.backend.schemas.d.ts.map +1 -1
  269. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts +36 -0
  270. package/dist/esm/config/models/apps-manager-transport.backend.definitions.d.ts.map +1 -0
  271. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js +36 -0
  272. package/dist/esm/config/models/apps-manager-transport.backend.definitions.js.map +1 -0
  273. package/dist/esm/config/models/config-mutation-boundary.utils.d.ts.map +1 -1
  274. package/dist/esm/config/models/postgresql-env-config.backend.schemas.d.ts.map +1 -1
  275. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  276. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  277. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  278. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  279. package/dist/esm/config/models/runtime-topology.backend.contracts.d.ts.map +1 -1
  280. package/dist/esm/config/services/__tests__/mock-app-configuration.service.d.ts.map +1 -1
  281. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  282. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  283. package/dist/esm/config/services/app-configuration-loader.backend.service.js +71 -76
  284. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  285. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  286. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  287. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  288. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +33 -0
  289. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  290. package/dist/esm/config/services/app-configuration.backend.utils.js +39 -1
  291. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  292. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +37 -0
  293. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  294. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +69 -1
  295. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  296. package/dist/esm/data-seeding/batches/data-seeding-run-cleanup.batch.backend.service.d.ts.map +1 -1
  297. package/dist/esm/data-seeding/batches/data-seeding-scheduled-rerun.batch.backend.service.d.ts.map +1 -1
  298. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.contracts.d.ts.map +1 -1
  299. package/dist/esm/data-seeding/controllers/data-seeding-admin.backend.controller.d.ts.map +1 -1
  300. package/dist/esm/data-seeding/data-seeding-models.d.ts.map +1 -1
  301. package/dist/esm/data-seeding/models/business-key-resolver.shared.utils.d.ts.map +1 -1
  302. package/dist/esm/data-seeding/models/data-seed-execution-context.shared.types.d.ts.map +1 -1
  303. package/dist/esm/data-seeding/models/data-seed-migrator-runner.shared.utils.d.ts.map +1 -1
  304. package/dist/esm/data-seeding/models/data-seed-reconciler.shared.utils.d.ts.map +1 -1
  305. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.schemas.d.ts.map +1 -1
  306. package/dist/esm/data-seeding/models/data-seed-row-metadata.shared.utils.d.ts.map +1 -1
  307. package/dist/esm/data-seeding/models/data-seed-run.shared.resources-config.schemas.d.ts.map +1 -1
  308. package/dist/esm/data-seeding/models/data-seed-run.shared.schemas.d.ts.map +1 -1
  309. package/dist/esm/data-seeding/models/data-seed-trigger-mode-matrix.shared.utils.d.ts.map +1 -1
  310. package/dist/esm/data-seeding/models/data-seed.shared.schemas.d.ts.map +1 -1
  311. package/dist/esm/data-seeding/services/data-seed-application-bootstrap.backend.d.ts.map +1 -1
  312. package/dist/esm/data-seeding/services/data-seed-dispatcher.backend.service.d.ts.map +1 -1
  313. package/dist/esm/data-seeding/services/data-seed-registry.backend.service.d.ts.map +1 -1
  314. package/dist/esm/data-seeding/services/data-seed-scope-resolver-registry.backend.service.d.ts.map +1 -1
  315. package/dist/esm/data-seeding/services/engines/additive-seed-engine.backend.service.d.ts.map +1 -1
  316. package/dist/esm/data-seeding/services/engines/lazy-seed-engine.backend.service.d.ts.map +1 -1
  317. package/dist/esm/data-seeding/services/engines/manual-seed-engine.backend.service.d.ts.map +1 -1
  318. package/dist/esm/data-seeding/services/engines/sync-seed-engine.backend.service.d.ts.map +1 -1
  319. package/dist/esm/data-seeding/services/engines/upgrade-seed-engine.backend.service.d.ts.map +1 -1
  320. package/dist/esm/data-seeding/services/shared/data-seed-business-key.shared.utils.d.ts.map +1 -1
  321. package/dist/esm/data-seeding/services/shared/data-seed-error.shared.utils.d.ts.map +1 -1
  322. package/dist/esm/data-seeding/services/shared/data-seed-run-counters.shared.types.d.ts.map +1 -1
  323. package/dist/esm/data-seeding/services/shared/data-seed-run-ledger.backend.d.ts.map +1 -1
  324. package/dist/esm/data-seeding/services/shared/data-seed-scope-anchor.shared.types.d.ts.map +1 -1
  325. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts.map +1 -1
  326. package/dist/esm/data-seeding/services/shared/data-seed-scope-resolution.backend.d.ts.map +1 -1
  327. package/dist/esm/databases/models/aggregation.backend.schemas.d.ts.map +1 -1
  328. package/dist/esm/databases/models/databases.backend.schemas.d.ts.map +1 -1
  329. package/dist/esm/databases/models/filter.backend.schemas.d.ts.map +1 -1
  330. package/dist/esm/databases/models/resolve-persistence-adapter.backend.utils.d.ts.map +1 -1
  331. package/dist/esm/databases/models/sql.backend.schemas.d.ts.map +1 -1
  332. package/dist/esm/databases/models/transaction.shared.schemas.d.ts.map +1 -1
  333. package/dist/esm/databases/services/__tests__/mock-mongo-transaction-registry.service.d.ts.map +1 -1
  334. package/dist/esm/databases/services/__tests__/mock-mongodb.service.d.ts.map +1 -1
  335. package/dist/esm/databases/services/__tests__/mock-mongoose-model.service.d.ts.map +1 -1
  336. package/dist/esm/databases/services/__tests__/mock-redis.service.d.ts.map +1 -1
  337. package/dist/esm/databases/services/__tests__/mock-zod-mongoose-schema-convertor.service.d.ts.map +1 -1
  338. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  339. package/dist/esm/databases/services/aggregation/aggregation-query.backend.service.d.ts.map +1 -1
  340. package/dist/esm/databases/services/aggregation/computed-measure-evaluator.backend.service.d.ts.map +1 -1
  341. package/dist/esm/databases/services/aggregation/field-access-validator.backend.service.d.ts.map +1 -1
  342. package/dist/esm/databases/services/aggregation/time-series-densifier.backend.service.d.ts.map +1 -1
  343. package/dist/esm/databases/services/aggregation/topn-processor.backend.service.d.ts.map +1 -1
  344. package/dist/esm/databases/services/aggregation/window-function-processor.backend.service.d.ts.map +1 -1
  345. package/dist/esm/databases/services/db-utils.d.ts.map +1 -1
  346. package/dist/esm/databases/services/mongo-aggregation.backend.service.d.ts.map +1 -1
  347. package/dist/esm/databases/services/mongodb.service.d.ts.map +1 -1
  348. package/dist/esm/databases/services/postgresql-aggregation.backend.service.d.ts.map +1 -1
  349. package/dist/esm/databases/services/postgresql-database.backend.service.d.ts.map +1 -1
  350. package/dist/esm/databases/services/postgresql-development-provisioning.backend.d.ts.map +1 -1
  351. package/dist/esm/databases/services/postgresql-filter.backend.service.d.ts.map +1 -1
  352. package/dist/esm/databases/services/postgresql-migration-runner.backend.d.ts.map +1 -1
  353. package/dist/esm/databases/services/postgresql-schema-ddl.backend.d.ts.map +1 -1
  354. package/dist/esm/databases/services/postgresql-schema-migration-sql.backend.d.ts.map +1 -1
  355. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  356. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  357. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  358. package/dist/esm/databases/services/postgresql-schema-plan-lockfile.backend.d.ts.map +1 -1
  359. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  360. package/dist/esm/databases/services/resource-persistence-unit-of-work.backend.service.d.ts.map +1 -1
  361. package/dist/esm/databases/services/schema-planning-standalone.backend.d.ts.map +1 -1
  362. package/dist/esm/databases/services/zod-to-mongoose-schema-convertor.backend.service.d.ts.map +1 -1
  363. package/dist/esm/databases/services/zod-to-sql-hybrid-schema.planner.d.ts.map +1 -1
  364. package/dist/esm/databases/utils/postgresql-identifier.backend.utils.d.ts.map +1 -1
  365. package/dist/esm/errors/services/__tests__/mock-error-builder.service.d.ts.map +1 -1
  366. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  367. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  368. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  369. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  370. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  371. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  372. package/dist/esm/errors/services/error-handler.backend.service.js +129 -8
  373. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  374. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  375. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  376. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  377. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  378. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  379. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  380. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  381. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  382. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  383. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  384. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  385. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  386. package/dist/esm/external-data/batches/external-data-pipeline-scheduled-run.batch.backend.service.d.ts.map +1 -1
  387. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -1
  388. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -1
  389. package/dist/esm/external-data/external-data-extraction-source.backend.d.ts.map +1 -1
  390. package/dist/esm/external-data/external-data-models.exports.d.ts.map +1 -1
  391. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +59 -2
  392. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  393. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +52 -17
  394. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  395. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  396. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  397. package/dist/esm/external-providers/models/external-providers.backend.schemas.d.ts.map +1 -1
  398. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  399. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  400. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  401. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +306 -0
  402. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  403. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +379 -0
  404. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  405. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  406. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  407. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  408. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  409. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  410. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  411. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +235 -0
  412. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  413. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  414. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  415. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  416. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  417. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  418. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  419. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  420. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  421. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  422. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  423. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  424. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  425. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  426. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  427. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  428. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  429. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts +81 -34
  430. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  431. package/dist/esm/external-providers/services/document-extraction.backend.service.js +181 -100
  432. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  433. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  434. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  435. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  436. package/dist/esm/external-providers/services/external-api-handler.backend.service.d.ts.map +1 -1
  437. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +413 -7
  438. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  439. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +684 -45
  440. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  441. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts +15 -1
  442. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  443. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +84 -5
  444. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  445. package/dist/esm/features/controllers/features.backend.controller.d.ts.map +1 -1
  446. package/dist/esm/features/services/__tests__/mock-feature-definition-registry.service.d.ts.map +1 -1
  447. package/dist/esm/features/services/__tests__/mock-feature-resolution.service.d.ts.map +1 -1
  448. package/dist/esm/features/services/application-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  449. package/dist/esm/features/services/feature-definition-registry.backend.service.d.ts.map +1 -1
  450. package/dist/esm/features/services/feature-gate.backend.service.d.ts.map +1 -1
  451. package/dist/esm/features/services/feature-resolution.backend.service.d.ts.map +1 -1
  452. package/dist/esm/features/services/organization-features-admin-write-path.custom-impl.backend.service.d.ts.map +1 -1
  453. package/dist/esm/features/services/scope-feature-ledger-relationship.backend.utils.d.ts.map +1 -1
  454. package/dist/esm/features/services/scope-features-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -1
  455. package/dist/esm/features/testing/feature-test-utils.d.ts.map +1 -1
  456. package/dist/esm/files/batches/files-cleanup.batch.backend.service.d.ts.map +1 -1
  457. package/dist/esm/files/constraints/file-analyzers.types.d.ts.map +1 -1
  458. package/dist/esm/files/constraints/file-constraint-resolver-chain.backend.service.d.ts.map +1 -1
  459. package/dist/esm/files/constraints/file-constraint.types.d.ts.map +1 -1
  460. package/dist/esm/files/constraints/file-validation.backend.service.d.ts.map +1 -1
  461. package/dist/esm/files/constraints/resource-field-constraint-resolver.backend.service.d.ts.map +1 -1
  462. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  463. package/dist/esm/files/controllers/file.controller.js +21 -13
  464. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  465. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -1
  466. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -1
  467. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +37 -0
  468. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  469. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +260 -36
  470. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  471. package/dist/esm/files/scanning/clamav-scanner.backend.service.d.ts.map +1 -1
  472. package/dist/esm/files/scanning/file-scan.types.d.ts.map +1 -1
  473. package/dist/esm/files/scanning/yara-scanner.backend.service.d.ts.map +1 -1
  474. package/dist/esm/files/scanning/yara-scanner.backend.service.js +20 -2
  475. package/dist/esm/files/scanning/yara-scanner.backend.service.js.map +1 -1
  476. package/dist/esm/files/services/__tests__/mock-file-field-detection.service.d.ts.map +1 -1
  477. package/dist/esm/files/services/__tests__/mock-file-operation-handler.service.d.ts.map +1 -1
  478. package/dist/esm/files/services/__tests__/mock-file-repository.service.d.ts.map +1 -1
  479. package/dist/esm/files/services/file-field-detection.backend.service.d.ts.map +1 -1
  480. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  481. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  482. package/dist/esm/files/services/file-population.backend.service.d.ts.map +1 -1
  483. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  484. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  485. package/dist/esm/files/services/file-scanning.backend.service.js +202 -17
  486. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  487. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  488. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  489. package/dist/esm/files/services/file-text-extraction.backend.service.js +175 -13
  490. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  491. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +53 -2
  492. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -1
  493. package/dist/esm/files/services/file-upload-grant.backend.service.js +127 -3
  494. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -1
  495. package/dist/esm/files/services/files.backend.service.d.ts +68 -0
  496. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  497. package/dist/esm/files/services/files.backend.service.js +177 -5
  498. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  499. package/dist/esm/files/services/rag-source-field-detection.backend.service.d.ts.map +1 -1
  500. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  501. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  502. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  503. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  504. package/dist/esm/files/storage/file-storage-path-resolver.backend.service.d.ts.map +1 -1
  505. package/dist/esm/files/storage/file-storage-provider.types.d.ts +52 -11
  506. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  507. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  508. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts +21 -3
  509. package/dist/esm/files/storage/file-storage-router.backend.service.d.ts.map +1 -1
  510. package/dist/esm/files/storage/file-storage-router.backend.service.js +38 -5
  511. package/dist/esm/files/storage/file-storage-router.backend.service.js.map +1 -1
  512. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts +87 -0
  513. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.d.ts.map +1 -0
  514. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js +340 -0
  515. package/dist/esm/files/storage/google-drive-storage-provider.backend.service.js.map +1 -0
  516. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  517. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  518. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  519. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  520. package/dist/esm/files/storage/storage-credential-provider.backend.utils.d.ts.map +1 -1
  521. package/dist/esm/files/storage/storage-platform-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  522. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.d.ts.map +1 -1
  523. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js +10 -3
  524. package/dist/esm/files/storage/storage-sts-credential-resolver.backend.utils.js.map +1 -1
  525. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  526. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  527. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  528. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  529. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  530. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  531. package/dist/esm/files/utils/file-upload.utils.d.ts.map +1 -1
  532. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  533. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  534. package/dist/esm/files/utils/file-validation.utils.d.ts.map +1 -1
  535. package/dist/esm/files/utils/image-derivation.backend.utils.d.ts.map +1 -1
  536. package/dist/esm/files/utils/image-thumbnail.backend.utils.d.ts.map +1 -1
  537. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  538. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  539. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  540. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  541. package/dist/esm/files/utils/rag-source-field-schema-path.backend.utils.d.ts.map +1 -1
  542. package/dist/esm/files/utils/storage-application-identity.backend.utils.d.ts.map +1 -1
  543. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  544. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  545. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  546. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  547. package/dist/esm/flows-actors/a2a/batches/a2a-push-delivery.batch.backend.service.d.ts.map +1 -1
  548. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  549. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  550. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  551. package/dist/esm/flows-actors/a2a/models/a2a-dialect.backend.schemas.d.ts.map +1 -1
  552. package/dist/esm/flows-actors/a2a/models/a2a-push-notification-delivery.backend.utils.d.ts.map +1 -1
  553. package/dist/esm/flows-actors/a2a/models/a2a-push-notification.backend.schemas.d.ts.map +1 -1
  554. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  555. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  556. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  557. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  558. package/dist/esm/flows-actors/a2a/services/a2a-push-delivery-log.repository.d.ts.map +1 -1
  559. package/dist/esm/flows-actors/a2a/services/a2a-push-dispatcher.backend.service.d.ts.map +1 -1
  560. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  561. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  562. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +196 -40
  563. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  564. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  565. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  566. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  567. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  568. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  569. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  570. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  571. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  572. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  573. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  574. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  575. package/dist/esm/flows-actors/controllers/flows-actors.controller.d.ts.map +1 -1
  576. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  577. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  578. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  579. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  580. package/dist/esm/flows-actors/models/agent-facets.backend.definitions.d.ts.map +1 -1
  581. package/dist/esm/flows-actors/models/agents.backend.definitions.d.ts.map +1 -1
  582. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  583. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  584. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  585. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  586. package/dist/esm/flows-actors/models/flows-actors.backend.definitions.d.ts.map +1 -1
  587. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  588. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  589. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  590. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +179 -8
  591. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  592. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +436 -34
  593. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  594. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  595. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  596. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  597. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  598. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  599. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  600. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  601. package/dist/esm/flows-actors/services/__tests__/fixtures/meta-workflow-evaluation-treatment.test-fixture.d.ts.map +1 -1
  602. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  603. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  604. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  605. package/dist/esm/flows-actors/services/agent-call-trace-sink.backend.d.ts.map +1 -1
  606. package/dist/esm/flows-actors/services/agent-facets.backend.service.d.ts.map +1 -1
  607. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +132 -6
  608. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  609. package/dist/esm/flows-actors/services/agents.backend.service.js +467 -49
  610. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  611. package/dist/esm/flows-actors/services/context-curation.backend.service.d.ts.map +1 -1
  612. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +50 -1
  613. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  614. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +270 -20
  615. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  616. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  617. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  618. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  619. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  620. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  621. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  622. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  623. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  624. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  625. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  626. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  627. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  628. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +371 -0
  629. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  630. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts +99 -0
  631. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.d.ts.map +1 -0
  632. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js +155 -0
  633. package/dist/esm/flows-actors/services/mcp-credential-resolver.backend.service.js.map +1 -0
  634. package/dist/esm/flows-actors/services/meta-workflow-evaluation-treatment-compiler.backend.service.d.ts.map +1 -1
  635. package/dist/esm/flows-actors/services/meta-workflow-standard-action-contracts.backend.service.d.ts.map +1 -1
  636. package/dist/esm/flows-actors/services/meta-workflow-standard-evaluation-contracts.backend.service.d.ts.map +1 -1
  637. package/dist/esm/flows-actors/services/meta-workflow-structured-artifact-action-compiler.backend.service.d.ts.map +1 -1
  638. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  639. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  640. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  641. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  642. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  643. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +17 -4
  644. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  645. package/dist/esm/flows-actors/utils/bounded-subprocess.backend.utils.d.ts.map +1 -1
  646. package/dist/esm/flows-actors/utils/flows-actors-frontend-extractor.utils.d.ts.map +1 -1
  647. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  648. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  649. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  650. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  651. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  652. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  653. package/dist/esm/flows-actors/utils/prompt-ir-adapters.backend.utils.d.ts.map +1 -1
  654. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts +77 -0
  655. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.d.ts.map +1 -0
  656. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js +164 -0
  657. package/dist/esm/flows-actors/utils/tool-approval-modification.backend.utils.js.map +1 -0
  658. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts +48 -0
  659. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.d.ts.map +1 -0
  660. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js +101 -0
  661. package/dist/esm/flows-actors/utils/tool-approval-signing.backend.utils.js.map +1 -0
  662. package/dist/esm/guidance/batches/dormancy-detection.batch.backend.service.d.ts.map +1 -1
  663. package/dist/esm/guidance/services/guidance-trigger-evaluator.backend.service.d.ts.map +1 -1
  664. package/dist/esm/guidance/services/lifecycle-custom-implementations.backend.d.ts.map +1 -1
  665. package/dist/esm/guidance/services/lifecycle-evaluator.backend.service.d.ts.map +1 -1
  666. package/dist/esm/guidance/services/lifecycle-scope-id.backend.utils.d.ts.map +1 -1
  667. package/dist/esm/guidance/services/milestone-condition-registry.backend.service.d.ts.map +1 -1
  668. package/dist/esm/guidance/services/milestone-definition-registry.backend.service.d.ts.map +1 -1
  669. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  670. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  671. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  672. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  673. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  674. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  675. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  676. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  677. package/dist/esm/guidance/services/scoped-state-read-custom-implementations.backend.d.ts.map +1 -1
  678. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  679. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  680. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  681. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  682. package/dist/esm/i18n/services/i18n.backend.service.d.ts.map +1 -1
  683. package/dist/esm/index.d.ts +11 -5
  684. package/dist/esm/index.d.ts.map +1 -1
  685. package/dist/esm/index.js +31 -5
  686. package/dist/esm/index.js.map +1 -1
  687. package/dist/esm/inject/models/container.d.ts +10 -0
  688. package/dist/esm/inject/models/container.d.ts.map +1 -1
  689. package/dist/esm/inject/models/container.js +126 -10
  690. package/dist/esm/inject/models/container.js.map +1 -1
  691. package/dist/esm/inject/models/service-types.d.ts +20 -3
  692. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  693. package/dist/esm/inject/models/service-types.js +22 -3
  694. package/dist/esm/inject/models/service-types.js.map +1 -1
  695. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  696. package/dist/esm/mcp/controllers/mcp.controller.js +70 -3
  697. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  698. package/dist/esm/mcp/models/mcp-protocol.backend.schemas.d.ts.map +1 -1
  699. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  700. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  701. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +56 -1
  702. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  703. package/dist/esm/mcp/services/mcp-server.backend.service.js +107 -11
  704. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  705. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  706. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +22 -0
  707. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  708. package/dist/esm/mcp/services/resource-server-instances-registry.backend.service.d.ts.map +1 -1
  709. package/dist/esm/mcp/utils/zod-to-mcp-json-schema.backend.utils.d.ts.map +1 -1
  710. package/dist/esm/meta-workflow-runtime.exports.d.ts.map +1 -1
  711. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  712. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  713. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  714. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  715. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  716. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  717. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  718. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  719. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  720. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  721. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  722. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  723. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  724. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  725. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  726. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  727. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  728. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  729. package/dist/esm/monitoring/logger/services/__tests__/mock-logger.service.d.ts.map +1 -1
  730. package/dist/esm/monitoring/logger/services/logger.service.d.ts +24 -0
  731. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  732. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  733. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  734. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  735. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  736. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  737. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  738. package/dist/esm/monitoring/logger/utils/log-value-normalization.backend.utils.d.ts.map +1 -1
  739. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +313 -0
  740. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  741. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +389 -0
  742. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  743. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  744. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  745. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  746. package/dist/esm/monitoring/observability/otel-preload.d.ts.map +1 -1
  747. package/dist/esm/monitoring/observability/otel-sdk-global-handle.d.ts.map +1 -1
  748. package/dist/esm/monitoring/observability/services/__tests__/mock-metrics.service.d.ts.map +1 -1
  749. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  750. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  751. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  752. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  753. package/dist/esm/monitoring/observability/services/observability.backend.service.d.ts.map +1 -1
  754. package/dist/esm/notifications/email/components/email-components.d.ts.map +1 -1
  755. package/dist/esm/notifications/email/models/email-template-definition.d.ts.map +1 -1
  756. package/dist/esm/notifications/email/models/email-transport.backend.definitions.d.ts.map +1 -1
  757. package/dist/esm/notifications/email/services/email-batch-send.batch.backend.service.d.ts.map +1 -1
  758. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  759. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  760. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  761. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  762. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  763. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  764. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  765. package/dist/esm/notifications/email/services/email.backend.service.d.ts +102 -5
  766. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  767. package/dist/esm/notifications/email/services/email.backend.service.js +222 -70
  768. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  769. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  770. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  771. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  772. package/dist/esm/notifications/email/utils/interpolate-email-label.utils.d.ts.map +1 -1
  773. package/dist/esm/notifications/email/utils/zod-to-typescript.utils.d.ts.map +1 -1
  774. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  775. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  776. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  777. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  778. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +99 -13
  779. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  780. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +422 -66
  781. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  782. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts +32 -0
  783. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.d.ts.map +1 -0
  784. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js +32 -0
  785. package/dist/esm/notifications/sms/models/sms-transport.backend.definitions.js.map +1 -0
  786. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +64 -10
  787. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  788. package/dist/esm/notifications/sms/services/sms.backend.service.js +277 -82
  789. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  790. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  791. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  792. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  793. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  794. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  795. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  796. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +46 -1
  797. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  798. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  799. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  800. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +16 -6
  801. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  802. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
  803. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.repository.d.ts.map +1 -1
  804. package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-dispatcher.backend.service.d.ts.map +1 -1
  805. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-public-key.custom-impl.backend.service.d.ts.map +1 -1
  806. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  807. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +12 -12
  808. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  809. package/dist/esm/notifications/webhooks/outbound/services/webhook-config.backend.service.d.ts.map +1 -1
  810. package/dist/esm/notifications/webhooks/services/polymorphic-lookup.backend.service.d.ts.map +1 -1
  811. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  812. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  813. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  814. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  815. package/dist/esm/organizations/batches/organization-member-invitation-sweep.batch.backend.service.d.ts.map +1 -1
  816. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  817. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts.map +1 -1
  818. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  819. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  820. package/dist/esm/organizations/services/authority-change-audit.backend.utils.d.ts.map +1 -1
  821. package/dist/esm/organizations/services/invitation-acceptance.backend.utils.d.ts.map +1 -1
  822. package/dist/esm/organizations/services/org-creation-on-registration.backend.utils.d.ts.map +1 -1
  823. package/dist/esm/organizations/services/org-member-roles-validation.backend.utils.d.ts.map +1 -1
  824. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  825. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  826. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  827. package/dist/esm/organizations/services/organization-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  828. package/dist/esm/organizations/services/organization-member-custom-implementation.backend.service.d.ts.map +1 -1
  829. package/dist/esm/organizations/services/organization-onboarding-operation.backend.utils.d.ts.map +1 -1
  830. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  831. package/dist/esm/organizations/services/organization-unit-member-custom-implementation.backend.service.d.ts.map +1 -1
  832. package/dist/esm/organizations/services/scim-provisioning-gate.backend.utils.d.ts.map +1 -1
  833. package/dist/esm/organizations/services/user-org-type-grant.backend.utils.d.ts.map +1 -1
  834. package/dist/esm/organizations/services/user-type-revocation-on-org-leave.backend.utils.d.ts.map +1 -1
  835. package/dist/esm/pdf-templates/__tests__/fixtures/tiny-pdf-template.fixture.d.ts.map +1 -1
  836. package/dist/esm/pdf-templates/models/pdf-template-binding.d.ts.map +1 -1
  837. package/dist/esm/pdf-templates/models/pdf-template-definition.d.ts.map +1 -1
  838. package/dist/esm/pdf-templates/services/pdf-generated-file-writer.backend.service.d.ts.map +1 -1
  839. package/dist/esm/pdf-templates/services/pdf-generation-orchestrator.backend.service.d.ts.map +1 -1
  840. package/dist/esm/pdf-templates/services/pdf-renderer.backend.service.d.ts.map +1 -1
  841. package/dist/esm/pdf-templates/services/pdf-template-binding.backend.service.d.ts.map +1 -1
  842. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  843. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  844. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  845. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  846. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  847. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  848. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  849. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  850. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  851. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  852. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  853. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  854. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  855. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  856. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  857. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  858. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  859. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  860. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  861. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  862. package/dist/esm/queue/apps-crontabs-manager.backend.service.d.ts.map +1 -1
  863. package/dist/esm/queue/cron-job-sync.backend.service.d.ts.map +1 -1
  864. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  865. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  866. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  867. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  868. package/dist/esm/queue/job-completion-registry.backend.service.d.ts.map +1 -1
  869. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  870. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  871. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  872. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  873. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  874. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  875. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  876. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  877. package/dist/esm/queue/job-payload-storage.backend.service.d.ts.map +1 -1
  878. package/dist/esm/queue/job-status-tracking.backend.service.d.ts.map +1 -1
  879. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  880. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  881. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  882. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  883. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  884. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  885. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  886. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  887. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  888. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  889. package/dist/esm/queue/queue.backend.service.js +26 -4
  890. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  891. package/dist/esm/queue/scheduled-message-verifier.backend.service.d.ts.map +1 -1
  892. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  893. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  894. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  895. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  896. package/dist/esm/rag/batches/rag-embedding-drain.batch.backend.service.d.ts.map +1 -1
  897. package/dist/esm/rag/batches/rag-reconciliation-sweep.batch.backend.service.d.ts.map +1 -1
  898. package/dist/esm/rag/models/rag-chunk-store.backend.types.d.ts.map +1 -1
  899. package/dist/esm/rag/models/rag-retrieval.backend.types.d.ts.map +1 -1
  900. package/dist/esm/rag/services/mongodb-rag-chunk-store.backend.service.d.ts.map +1 -1
  901. package/dist/esm/rag/services/postgresql-rag-chunk-store.backend.service.d.ts.map +1 -1
  902. package/dist/esm/rag/services/rag-chunk-collection.mongodb-ddl.backend.d.ts.map +1 -1
  903. package/dist/esm/rag/services/rag-chunk-retrieval.mongodb-query.backend.d.ts.map +1 -1
  904. package/dist/esm/rag/services/rag-chunk-retrieval.postgresql-query.backend.d.ts.map +1 -1
  905. package/dist/esm/rag/services/rag-chunk-store.backend.service.d.ts.map +1 -1
  906. package/dist/esm/rag/services/rag-chunk-table.postgresql-ddl.backend.d.ts.map +1 -1
  907. package/dist/esm/rag/services/rag-ingestion.backend.service.d.ts.map +1 -1
  908. package/dist/esm/rag/services/rag-retrieval.backend.service.d.ts.map +1 -1
  909. package/dist/esm/rag/utils/rag-chunk-fusion.backend.utils.d.ts.map +1 -1
  910. package/dist/esm/rag/utils/rag-chunk-removal.backend.utils.d.ts.map +1 -1
  911. package/dist/esm/rag/utils/rag-chunk-row-shaping.backend.utils.d.ts.map +1 -1
  912. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  913. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  914. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  915. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  916. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  917. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  918. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  919. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  920. package/dist/esm/rag/utils/rag-ingestion-trigger.backend.utils.d.ts.map +1 -1
  921. package/dist/esm/rag/utils/rag-retrieval-scope.backend.utils.d.ts.map +1 -1
  922. package/dist/esm/rag/utils/rag-source-field-value.backend.utils.d.ts.map +1 -1
  923. package/dist/esm/requests/models/api-routes.backend.defintions.d.ts.map +1 -1
  924. package/dist/esm/requests/models/requests.backend.schemas.d.ts.map +1 -1
  925. package/dist/esm/requests/service/platform-mutualized-handler.backend.service.d.ts.map +1 -1
  926. package/dist/esm/requests/service/platform-requests.backend.utils.d.ts.map +1 -1
  927. package/dist/esm/requests/service/remote-client-base.backend.service.d.ts.map +1 -1
  928. package/dist/esm/requests/service/serverless-services-handler.backend.service.d.ts.map +1 -1
  929. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  930. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  931. package/dist/esm/requests/service/websocket.service.js +81 -9
  932. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  933. package/dist/esm/resources/backend-resource-registry.exports.d.ts.map +1 -1
  934. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  935. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
  936. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  937. package/dist/esm/resources/models/index.d.ts.map +1 -1
  938. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  939. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  940. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  941. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  942. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  943. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  944. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  945. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  946. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  947. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  948. package/dist/esm/resources/models/resources.backend.schemas.d.ts.map +1 -1
  949. package/dist/esm/resources/models/virtual-fields.backend.types.d.ts.map +1 -1
  950. package/dist/esm/resources/services/__tests__/mock-resources-registry.service.d.ts.map +1 -1
  951. package/dist/esm/resources/services/resource-context.backend.service.d.ts.map +1 -1
  952. package/dist/esm/resources/services/resource-id.backend.service.d.ts.map +1 -1
  953. package/dist/esm/resources/services/resource-population.backend.service.d.ts +17 -2
  954. package/dist/esm/resources/services/resource-population.backend.service.d.ts.map +1 -1
  955. package/dist/esm/resources/services/resource-population.backend.service.js +74 -18
  956. package/dist/esm/resources/services/resource-population.backend.service.js.map +1 -1
  957. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +83 -5
  958. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  959. package/dist/esm/resources/services/resources-registry.backend.service.js +121 -6
  960. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  961. package/dist/esm/resources/services/virtual-fields.backend.service.d.ts.map +1 -1
  962. package/dist/esm/resources/utils/resource-retention.backend.utils.d.ts.map +1 -1
  963. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  964. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  965. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  966. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  967. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  968. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  969. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  970. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  971. package/dist/esm/runtime/models/execution-context.backend.schemas.d.ts.map +1 -1
  972. package/dist/esm/runtime/models/request-context.als.backend.d.ts.map +1 -1
  973. package/dist/esm/runtime/models/runtime.backend.schemas.d.ts.map +1 -1
  974. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  975. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  976. package/dist/esm/runtime/services/execution-context-handler.backend.service.d.ts.map +1 -1
  977. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  978. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  979. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  980. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  981. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  982. package/dist/esm/runtime/services/http-server.backend.service.js +191 -1
  983. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  984. package/dist/esm/runtime/services/start-application.backend.service.d.ts +19 -1
  985. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  986. package/dist/esm/runtime/services/start-application.backend.service.js +287 -89
  987. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  988. package/dist/esm/runtime/services/utils/oauth-body-cap.backend.utils.d.ts.map +1 -1
  989. package/dist/esm/runtime/testing/execution-context-test-fixtures.d.ts.map +1 -1
  990. package/dist/esm/runtime/testing/mock-execution-context-creator.service.d.ts.map +1 -1
  991. package/dist/esm/runtime/utils/application-startup-config-access.backend.utils.d.ts.map +1 -1
  992. package/dist/esm/runtime/utils/feature-gated-core-resource-exclusions.backend.utils.d.ts.map +1 -1
  993. package/dist/esm/runtime/utils/request-client-ip.utils.d.ts.map +1 -1
  994. package/dist/esm/runtime/utils/scan-default-exports.backend.utils.d.ts.map +1 -1
  995. package/dist/esm/security/api-keys/api-key-generation.backend.utils.d.ts.map +1 -1
  996. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  997. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  998. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  999. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  1000. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  1001. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  1002. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  1003. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  1004. package/dist/esm/security/authentications/controllers/auth-method-management-controller.backend.service.d.ts.map +1 -1
  1005. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts +22 -0
  1006. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  1007. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +113 -4
  1008. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  1009. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  1010. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  1011. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  1012. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  1013. package/dist/esm/security/authentications/models/auth-constants.backend.d.ts.map +1 -1
  1014. package/dist/esm/security/authentications/models/authentications.backend.schemas.d.ts.map +1 -1
  1015. package/dist/esm/security/authentications/models/authorization-client.backend.schemas.d.ts.map +1 -1
  1016. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  1017. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  1018. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  1019. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  1020. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts +37 -0
  1021. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.d.ts.map +1 -0
  1022. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js +37 -0
  1023. package/dist/esm/security/authentications/models/federated-auth-transport.backend.definitions.js.map +1 -0
  1024. package/dist/esm/security/authentications/models/identity-persistence-boundaries.backend.d.ts.map +1 -1
  1025. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  1026. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +30 -0
  1027. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  1028. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  1029. package/dist/esm/security/authentications/models/saml-authentication.backend.schemas.d.ts.map +1 -1
  1030. package/dist/esm/security/authentications/models/sso-connection.backend.schemas.d.ts.map +1 -1
  1031. package/dist/esm/security/authentications/models/user-authorization-version.backend.utils.d.ts.map +1 -1
  1032. package/dist/esm/security/authentications/seeds/enterprise-config-defaults.seeds.d.ts.map +1 -1
  1033. package/dist/esm/security/authentications/services/__tests__/mock-auth-execution-context-factory.service.d.ts.map +1 -1
  1034. package/dist/esm/security/authentications/services/__tests__/mock-auth-token-issuer.service.d.ts.map +1 -1
  1035. package/dist/esm/security/authentications/services/__tests__/oauth-provider-audit-spies.mock.d.ts.map +1 -1
  1036. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-domain-to-org-lookup.service.d.ts.map +1 -1
  1037. package/dist/esm/security/authentications/services/admin-config/__tests__/mock-enterprise-user-provisioning.service.d.ts.map +1 -1
  1038. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  1039. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  1040. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  1041. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  1042. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  1043. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  1044. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  1045. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  1046. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  1047. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  1048. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  1049. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  1050. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  1051. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  1052. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  1053. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  1054. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.d.ts.map +1 -1
  1055. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js +2 -1
  1056. package/dist/esm/security/authentications/services/admin-config/oidc-discovery.backend.service.js.map +1 -1
  1057. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +197 -0
  1058. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  1059. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +384 -53
  1060. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  1061. package/dist/esm/security/authentications/services/auth-credential-verifier.backend.service.d.ts.map +1 -1
  1062. package/dist/esm/security/authentications/services/auth-execution-context-factory.backend.service.d.ts.map +1 -1
  1063. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  1064. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +68 -1
  1065. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  1066. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  1067. package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
  1068. package/dist/esm/security/authentications/services/auth-methods/auth-phone-verification.backend.service.d.ts.map +1 -1
  1069. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  1070. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  1071. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  1072. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  1073. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts +97 -0
  1074. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  1075. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +260 -27
  1076. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  1077. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts +14 -0
  1078. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  1079. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +70 -4
  1080. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  1081. package/dist/esm/security/authentications/services/auth-methods/saml-assertion-validator.backend.service.d.ts.map +1 -1
  1082. package/dist/esm/security/authentications/services/auth-methods/saml-authentication.backend.service.d.ts.map +1 -1
  1083. package/dist/esm/security/authentications/services/auth-methods/saml-metadata.backend.service.d.ts.map +1 -1
  1084. package/dist/esm/security/authentications/services/auth-methods/saml-replay-guard.backend.service.d.ts.map +1 -1
  1085. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  1086. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  1087. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  1088. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  1089. package/dist/esm/security/authentications/services/auth-session-store.backend.service.d.ts.map +1 -1
  1090. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +17 -1
  1091. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  1092. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +49 -17
  1093. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  1094. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  1095. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  1096. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  1097. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  1098. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  1099. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  1100. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  1101. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  1102. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  1103. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  1104. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  1105. package/dist/esm/security/authentications/services/custom-impls/scim-tokens.custom-impl.backend.service.d.ts.map +1 -1
  1106. package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
  1107. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  1108. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  1109. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +339 -0
  1110. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  1111. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  1112. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  1113. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  1114. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  1115. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.d.ts.map +1 -1
  1116. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js +11 -1
  1117. package/dist/esm/security/authentications/services/custom-impls/sso-connection.custom-impl.backend.service.js.map +1 -1
  1118. package/dist/esm/security/authentications/services/email-verification-initiator.backend.service.d.ts.map +1 -1
  1119. package/dist/esm/security/authentications/services/machine-token-issuer.backend.service.d.ts.map +1 -1
  1120. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  1121. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  1122. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  1123. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  1124. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  1125. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  1126. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  1127. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  1128. package/dist/esm/security/authentications/services/oidc-user-claims.backend.service.d.ts.map +1 -1
  1129. package/dist/esm/security/authentications/services/resolve-active-member-orgs.backend.utils.d.ts.map +1 -1
  1130. package/dist/esm/security/authentications/services/utils/__tests__/mock-auth-user-lookup.service.d.ts.map +1 -1
  1131. package/dist/esm/security/authentications/services/utils/auth-controller.utils.d.ts.map +1 -1
  1132. package/dist/esm/security/authentications/services/utils/auth-credential-ops.backend.service.d.ts.map +1 -1
  1133. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  1134. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  1135. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  1136. package/dist/esm/security/authentications/services/utils/auth-response-helper.backend.service.d.ts.map +1 -1
  1137. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  1138. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  1139. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  1140. package/dist/esm/security/authentications/services/utils/concurrent-session-eviction.backend.utils.d.ts.map +1 -1
  1141. package/dist/esm/security/authentications/services/utils/ensure-user-profile.backend.utils.d.ts.map +1 -1
  1142. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  1143. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  1144. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  1145. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  1146. package/dist/esm/security/authentications/services/utils/machine-auth-rate-limit.backend.utils.d.ts.map +1 -1
  1147. package/dist/esm/security/authentications/services/utils/pkce.backend.utils.d.ts.map +1 -1
  1148. package/dist/esm/security/authentications/services/utils/saml-java-availability.d.ts.map +1 -1
  1149. package/dist/esm/security/authentications/utils/application-auth-policy-audit.backend.utils.d.ts.map +1 -1
  1150. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  1151. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  1152. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  1153. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  1154. package/dist/esm/security/authentications/utils/one-off-session-lifetime.backend.utils.d.ts.map +1 -1
  1155. package/dist/esm/security/authentications/utils/social-oauth2-purpose.backend.utils.d.ts.map +1 -1
  1156. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts +59 -0
  1157. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.d.ts.map +1 -0
  1158. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js +111 -0
  1159. package/dist/esm/security/authorizations/access-grant-decision.factory.backend.js.map +1 -0
  1160. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts +57 -0
  1161. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.d.ts.map +1 -0
  1162. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js +133 -0
  1163. package/dist/esm/security/authorizations/access-grant-lifecycle-audit.backend.js.map +1 -0
  1164. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts +41 -0
  1165. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.d.ts.map +1 -0
  1166. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js +157 -0
  1167. package/dist/esm/security/authorizations/application-access-grant-custom-implementation.backend.service.js.map +1 -0
  1168. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts +84 -0
  1169. package/dist/esm/security/authorizations/application-wide-read-admission.backend.d.ts.map +1 -0
  1170. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js +99 -0
  1171. package/dist/esm/security/authorizations/application-wide-read-admission.backend.js.map +1 -0
  1172. package/dist/esm/security/authorizations/authorization-denial-audit.backend.utils.d.ts.map +1 -1
  1173. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  1174. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  1175. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  1176. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  1177. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  1178. package/dist/esm/security/authorizations/junction-scope-resolution.backend.d.ts.map +1 -1
  1179. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  1180. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  1181. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  1182. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  1183. package/dist/esm/security/authorizations/organization-unit-narrowing-enforcement.backend.d.ts.map +1 -1
  1184. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  1185. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +37 -124
  1186. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  1187. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -1
  1188. package/dist/esm/security/authorizations/relationship-foreign-key-filter.backend.d.ts.map +1 -1
  1189. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  1190. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  1191. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  1192. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  1193. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +133 -0
  1194. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  1195. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +137 -0
  1196. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  1197. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +134 -1
  1198. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  1199. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +152 -5
  1200. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  1201. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +146 -8
  1202. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  1203. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +328 -29
  1204. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  1205. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  1206. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  1207. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  1208. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  1209. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  1210. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  1211. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  1212. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  1213. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +299 -0
  1214. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  1215. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +953 -0
  1216. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  1217. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +99 -0
  1218. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  1219. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  1220. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  1221. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  1222. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  1223. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  1224. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  1225. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +210 -0
  1226. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  1227. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +423 -0
  1228. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  1229. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  1230. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  1231. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  1232. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  1233. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  1234. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  1235. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +282 -0
  1236. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  1237. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +125 -0
  1238. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  1239. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +123 -0
  1240. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  1241. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  1242. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  1243. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  1244. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  1245. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +214 -0
  1246. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  1247. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +430 -0
  1248. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  1249. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  1250. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  1251. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  1252. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  1253. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +98 -0
  1254. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  1255. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  1256. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  1257. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  1258. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  1259. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  1260. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  1261. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  1262. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  1263. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  1264. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  1265. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts +34 -0
  1266. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.d.ts.map +1 -0
  1267. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js +39 -0
  1268. package/dist/esm/security/connected-accounts/utils/user-delegated-access-token-slot.backend.utils.js.map +1 -0
  1269. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  1270. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -1
  1271. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  1272. package/dist/esm/security/consumable-tokens/models/consumable-tokens.shared.schemas.d.ts.map +1 -1
  1273. package/dist/esm/security/consumable-tokens/models/index.d.ts.map +1 -1
  1274. package/dist/esm/security/consumable-tokens/services/__tests__/mock-consumable-token.service.d.ts.map +1 -1
  1275. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +21 -3
  1276. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  1277. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +26 -16
  1278. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  1279. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  1280. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  1281. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  1282. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  1283. package/dist/esm/security/jwt/services/auth-jwt-guard.backend.service.d.ts.map +1 -1
  1284. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  1285. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts +13 -0
  1286. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.d.ts.map +1 -1
  1287. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js +14 -0
  1288. package/dist/esm/security/jwt/services/wildo-worker-bootstrap-client.backend.service.js.map +1 -1
  1289. package/dist/esm/security/jwt/utils/jwt-verification-error-classification.backend.utils.d.ts.map +1 -1
  1290. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  1291. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  1292. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  1293. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  1294. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  1295. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  1296. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  1297. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  1298. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts +39 -0
  1299. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.d.ts.map +1 -0
  1300. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js +60 -0
  1301. package/dist/esm/security/outbound/outbound-request-deadline.backend.utils.js.map +1 -0
  1302. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts +66 -0
  1303. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.d.ts.map +1 -0
  1304. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js +75 -0
  1305. package/dist/esm/security/outbound/outbound-request-headers.backend.utils.js.map +1 -0
  1306. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  1307. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  1308. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  1309. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  1310. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  1311. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  1312. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  1313. package/dist/esm/security/scim/utils/scim-attribute-path-resolver.backend.utils.d.ts.map +1 -1
  1314. package/dist/esm/security/scim/utils/scim-filter-parser.d.ts.map +1 -1
  1315. package/dist/esm/security/scim/utils/scim-response-formatter.d.ts.map +1 -1
  1316. package/dist/esm/security/session-invalidation-fence.backend.utils.d.ts.map +1 -1
  1317. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  1318. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  1319. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  1320. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  1321. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  1322. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  1323. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  1324. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  1325. package/dist/esm/security/token-invalidation-fence.backend.utils.d.ts.map +1 -1
  1326. package/dist/esm/testing.d.ts.map +1 -1
  1327. package/dist/esm/users/services/inbound-contact-custom-implementation.backend.service.d.ts.map +1 -1
  1328. package/dist/esm/users/services/user-deletion-audit.custom-impl.backend.service.d.ts.map +1 -1
  1329. package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
  1330. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  1331. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  1332. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  1333. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  1334. package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
  1335. package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
  1336. package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
  1337. package/dist/tsconfig.build.tsbuildinfo +1 -1
  1338. package/package.json +11 -9
  1339. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts +0 -45
  1340. package/dist/esm/external-providers/services/flow-actor-design.backend.service.d.ts.map +0 -1
  1341. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js +0 -22
  1342. package/dist/esm/external-providers/services/flow-actor-design.backend.service.js.map +0 -1
  1343. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  1344. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  1345. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  1346. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  1347. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  1348. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  1349. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  1350. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  1351. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  1352. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  1353. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  1354. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  1355. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  1356. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  1357. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  1358. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-provider-credential-store.backend.service.js","sourceRoot":"","sources":["../../../../../src/security/connected-accounts/services/organization-provider-credential-store.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The organization-provider-credential STORE — the port implementation the registry consults.\n *\n * ## What makes the isolation structural rather than a filter\n *\n * Three independent mechanisms have to agree before a credential is handed back, and none of them\n * is a predicate somebody has to remember to write at each call site:\n *\n * 1. **The scope FK is injected by the context machinery.** The read goes through `readAsSystem`\n * with the organization in the system scope map, so `buildContextualFilter` adds the tenant\n * clause itself. A caller cannot omit it, because the caller never writes it.\n * 2. **The filter names the organization explicitly as well.** Belt and braces, deliberately: the\n * contextual filter is injected by a mechanism that exists TWICE (a Mongo implementation and a\n * PostgreSQL one), so a regression in one adapter is a bypass in that adapter alone. The explicit\n * clause is adapter-independent and would still scope the read.\n * 3. **The envelope is BOUND to the row identity.** Even a read that returned another tenant's row\n * would fail to OPEN it — the associated data is the organization, provider and slug, so the seal\n * itself refuses. This is the one that holds when the other two are wrong, which is why it exists.\n *\n * ## The store never accepts a caller-supplied organization from a request\n *\n * `organizationId` arrives from the calling code's trusted execution scope. The port cannot verify\n * it — nothing at this tier can — so the honest statement is that the guarantee holds one level up,\n * and the envelope binding is what keeps a mistake there from becoming a cross-tenant credential\n * disclosure rather than merely a failed read.\n */\n\nimport { inject, injectable, optional } from 'inversify';\nimport {\n CoreResourceType,\n ProviderCredentialResolutionSource,\n ProviderCredentialValidationState,\n serializeProviderOAuth2Grant,\n type ProviderOAuth2Grant,\n type OrganizationProviderCredential,\n} from '@wildo-ai/saas-models';\n\nimport { ExternalProvider_Connection_DelegationMode, ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';\n\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport type { AppConfigurationService } from '~wildo-backend-lib/config/services/app-configuration.backend.service';\nimport type { SystemAccessBackendService } from '~wildo-backend-lib/base-classes/services/services/system-access.backend.service';\nimport type { AuditLogsBackendService } from '~wildo-backend-lib/compliance/audit-trails/services/audit-logs.backend.service';\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\n\nimport {\n ProviderCredentialEnvelopeError,\n openProviderCredential,\n} from '../utils/provider-credential-envelope.backend.utils';\nimport { resolveStoredCredentialValue } from '../utils/stored-credential-value.backend.utils';\nimport { providerOAuth2GrantWasPermanentlyRejected } from './provider-oauth2-exchange.backend';\nimport type { ProviderOAuth2RefresherPort } from '../provider-oauth2-refresher.port';\nimport type {\n OrganizationProviderCredentialQuery,\n OrganizationProviderCredentialResolution,\n OrganizationProviderCredentialResolverPort,\n} from '../organization-provider-credential-resolver.port';\n\n@injectable()\nexport class OrganizationProviderCredentialStoreBackendService implements OrganizationProviderCredentialResolverPort {\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger) private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.AppConfigService) private readonly appConfigService: AppConfigurationService,\n @inject(SAAS_SERVICE_TYPES.SystemAccessService) private readonly systemAccess: SystemAccessBackendService,\n /**\n * OPTIONAL and lazily used, mirroring `SystemAccessBackendService`'s own treatment of it: audit\n * emission must never be the reason a provider call fails, and a minimal test container must\n * still be able to construct this service.\n */\n @inject(SAAS_SERVICE_TYPES.AuditLogsService) @optional() private readonly auditLogs?: AuditLogsBackendService,\n /**\n * Appended LAST, deliberately: a parameter inserted mid-signature silently reassigns every\n * positional argument after it, and this constructor is called positionally by several harnesses.\n *\n * OPTIONAL, and its absence is not a degradation — a store without one resolves every pasted\n * credential and every non-expiring token exactly as before. Only an EXPIRING grant needs it, and\n * that case refuses by name rather than sending a stale token.\n */\n @inject(SAAS_SERVICE_TYPES.ProviderOAuth2Refresher) @optional() private readonly refresher?: ProviderOAuth2RefresherPort,\n ) {}\n\n /**\n * The organization's own credential, opened, or `undefined` when the tenant has not set one.\n *\n * See the port's JSDoc for why \"absent\" returns and \"present but unopenable\" throws.\n */\n public async resolveOrganizationCredential(\n query: OrganizationProviderCredentialQuery,\n ): Promise<OrganizationProviderCredentialResolution | undefined> {\n const row = await this.readCredentialRow(query);\n if (!row) {\n return undefined;\n }\n\n // A disabled credential is a tenant's deliberate \"do not spend this\" and must read as ABSENT, so\n // the registry falls through to the deployment environment exactly as it would for a tenant that\n // never configured one. Throwing instead would make disabling a credential break the integration\n // rather than park it, which is the opposite of what an operator reaches for during an incident.\n if (row.enabled === false) {\n this.logger.debug?.(\n '[organization-provider-credential] credential is disabled; treating as absent',\n { organizationId: query.organizationId, providerRef: query.providerRef, secretSlug: query.secretSlug },\n );\n return undefined;\n }\n\n const plaintext = openProviderCredential(\n row.secretValue,\n this.appConfigService.secrets.security.session.encryptionKey,\n {\n ownerScope: ExternalProvider_Connection_OwnerScope.ORGANIZATION,\n ownerId: query.organizationId,\n providerRef: query.providerRef,\n secretSlug: query.secretSlug,\n },\n );\n\n // What is STORED is not always what goes on the wire: an OAuth2 grant is a JSON document whose\n // access token is one field. Returning the plaintext directly would put that document on the\n // wire as a bearer token, and the vendor's 401 would name a credential problem rather than a\n // serialization one. One shared resolver, because both stores hold both shapes.\n const describeRow = `organization '${query.organizationId}', provider '${query.providerRef}', slug '${query.secretSlug}'`;\n const resolved = resolveStoredCredentialValue(plaintext, describeRow, this.refresher !== undefined);\n if (resolved.needsRefresh) {\n // The renewal round trip and the write-back, in that order. The exchange belongs to the\n // refresher (it needs the contract and the application's registration); persisting belongs\n // here (it needs the table, the envelope key and the scope map). Neither half is where the\n // other's inputs are, which is why this is two components rather than one.\n const renewed = await this.renewOrRetire(row._id, query, {\n providerRef: query.providerRef,\n secretSlug: query.secretSlug,\n target: {\n ownerScope: ExternalProvider_Connection_OwnerScope.ORGANIZATION,\n ownerId: query.organizationId,\n delegation: ExternalProvider_Connection_DelegationMode.SERVICE,\n },\n grant: resolved.grant!,\n // From the ROW. The authorization record that first held these expired ten minutes after\n // the connect; a templated token URL is still templated an hour later, so without this a\n // Microsoft or regional connection renews into `needs a value for 'cloud'`.\n connectionParameters: row.connectionParameters,\n });\n await this.persistRenewedGrant(query, row._id, renewed);\n return { value: renewed.accessToken, credentialId: row._id };\n }\n\n return { value: resolved.wireValue, credentialId: row._id };\n }\n\n /**\n * The row, read through the system door.\n *\n * `readAsSystem` bypasses the CALLER's role check, not the tenant boundary — an outbound provider\n * call legitimately happens on a batch, a queue consumer or an anonymous webhook return leg, none\n * of which holds an ORG_ADMIN role, and all of which must still resolve the tenant's credential.\n * The organization travels in the system scope map, which is the channel both the contextual\n * filter and the enrichment actually consume.\n */\n private async readCredentialRow(\n query: OrganizationProviderCredentialQuery,\n ): Promise<OrganizationProviderCredential | null> {\n return this.systemAccess.readAsSystem<OrganizationProviderCredential>(\n CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n {\n organizationId: query.organizationId,\n providerRef: query.providerRef,\n secretSlug: query.secretSlug,\n },\n { scopeContext: { organizationId: query.organizationId } },\n );\n }\n\n /**\n * Record that a credential was spent, and what the provider thought of it.\n *\n * Best-effort in both halves and deliberately so: an outbound provider call has already happened\n * by the time this runs, and failing the caller because a bookkeeping write did not land would\n * turn a successful integration into an error. Every failure is logged with the row named.\n *\n * The audit event is emitted for BOTH sources, including the deployment-environment fallback,\n * because \"this tenant is silently acting as the shared principal\" is the condition worth seeing\n * and it is invisible if only the interesting case is recorded.\n */\n public async recordCredentialUse(use: {\n organizationId: string;\n providerRef: string;\n secretSlug: string;\n source: ProviderCredentialResolutionSource;\n credentialId?: string;\n /** What the provider said. Absent means the outcome is not yet known to the caller. */\n outcome?: { accepted: boolean; providerMessage?: string };\n }): Promise<void> {\n await this.emitUseAudit(use);\n\n // Only a tenant's OWN credential has a row to stamp. A deployment-environment resolution has\n // nothing to write to, and inventing a row for it would create a credential the tenant never set.\n if (use.source !== ProviderCredentialResolutionSource.ORGANIZATION_CREDENTIAL || !use.credentialId) {\n return;\n }\n\n const now = new Date();\n const patch: Record<string, unknown> = { lastUsedAt: now };\n if (use.outcome) {\n patch.validationState = use.outcome.accepted\n ? ProviderCredentialValidationState.VALID\n : ProviderCredentialValidationState.INVALID;\n patch.lastValidatedAt = now;\n // Truncated to the schema's own bound. The provider's message describes the CREDENTIAL's\n // status and must never be derived from the credential itself — a caller passing the secret\n // here would publish it to a client-readable field, which is why this is documented at the\n // one place a provider string enters the row.\n patch.validationError = use.outcome.accepted\n ? undefined\n : (use.outcome.providerMessage ?? '').slice(0, 500) || undefined;\n }\n\n try {\n await this.systemAccess.updateAsSystem(\n CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n use.credentialId,\n patch,\n {\n scopeContext: { organizationId: use.organizationId },\n /*\n * `lastUsedAt`, `lastValidatedAt` and `validationError` are all\n * `.excludeFromCreate().excludeFromUpdate()`, so the repository's strict `requestDto.parse`\n * drops them before persistence unless they are allow-listed here.\n *\n * The automatic diff that populates this list covers fields a custom-impl PREFIX hook\n * injected — which is how `secretSetAt` reaches the row on a write. Nothing populates it\n * for a payload a caller passes directly, which is what this is, so the omission was\n * silent in the worst way: `validationState` is NOT excluded and moved correctly, so the\n * row went INVALID while the timestamp and the provider's explanation of WHY vanished.\n * A person looking at a credential marked invalid with no reason and no last-use time is\n * being told less than the code believes it recorded.\n */\n preserveServerInjectedFields: ['lastUsedAt', 'lastValidatedAt', 'validationError'],\n },\n );\n } catch (error) {\n this.logger.warn?.(\n '[organization-provider-credential] failed to record credential use',\n {\n organizationId: use.organizationId,\n providerRef: use.providerRef,\n secretSlug: use.secretSlug,\n credentialId: use.credentialId,\n error: describeCaughtError(error),\n },\n );\n }\n }\n\n private async emitUseAudit(use: {\n organizationId: string;\n providerRef: string;\n secretSlug: string;\n source: ProviderCredentialResolutionSource;\n credentialId?: string;\n }): Promise<void> {\n if (!this.auditLogs) {\n return;\n }\n try {\n await this.auditLogs.logOrganizationProviderCredentialUsed({\n organizationId: use.organizationId,\n providerRef: use.providerRef,\n secretSlug: use.secretSlug,\n resolvedFrom: use.source,\n credentialId: use.credentialId,\n });\n } catch (error) {\n this.logger.warn?.(\n '[organization-provider-credential] failed to emit credential-use audit event',\n {\n organizationId: use.organizationId,\n providerRef: use.providerRef,\n error: describeCaughtError(error),\n },\n );\n }\n }\n\n\n /**\n * Record a grant the authorization exchange just minted, replacing one already stored.\n *\n * The plaintext goes in and the resource's own WRITE DOOR seals it — the same hook that seals a\n * credential a person types, and the same reason `persistRenewedGrant` hands over plaintext:\n * `createAsSystem` / `updateAsSystem` reach the SERVICE tier, so a pre-sealed value arrives at\n * that hook and the envelope refuses to double-seal.\n *\n * ## Reconnecting REPLACES rather than adding a second row\n *\n * The business key is (organizationId, providerRef, secretSlug) and it is UNIQUE, so a second connect would\n * violate the index. Read-then-write is a race, and the honest statement is that the index is what\n * decides it: two simultaneous connects mean one of them loses, which is the correct outcome —\n * a person who authorized twice gets one connection, not two half-connections.\n *\n * @returns the credential row's id, so the caller can name it in an audit event.\n */\n public async storeGrant(\n query: OrganizationProviderCredentialQuery,\n grant: ProviderOAuth2Grant,\n connectionParameters?: Readonly<Record<string, string>>,\n ): Promise<string> {\n const existing = await this.readCredentialRow(query);\n const secretValue = serializeProviderOAuth2Grant(grant);\n const scopeContext = { organizationId: query.organizationId };\n\n if (existing) {\n // `connectionParameters` is `.excludeFromUpdate()` — it describes the ACCOUNT the grant is\n // for, and re-authorizing against a different directory is a different connection. A\n // reconnect that changed them would point the refresh somewhere the token was not issued.\n await this.systemAccess.updateAsSystem(\n CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n existing._id,\n {\n secretValue,\n enabled: true,\n // Clearing the mark is part of reconnecting, not a separate concern. A row retired by\n // `renewOrRetire` would otherwise keep `validationState: INVALID` forever — so somebody\n // who did exactly what the screen told them to do would reconnect successfully and still\n // be shown a broken connection.\n validationState: ProviderCredentialValidationState.UNVALIDATED,\n validationError: undefined,\n },\n { scopeContext, preserveServerInjectedFields: ['validationError'] },\n );\n await this.emitConnectionGranted(query, grant, existing._id, true);\n return existing._id;\n }\n\n const created = await this.systemAccess.createAsSystem<OrganizationProviderCredential>(\n CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n {\n organizationId: query.organizationId,\n providerRef: query.providerRef,\n secretSlug: query.secretSlug,\n secretValue,\n ...(connectionParameters === undefined ? {} : { connectionParameters }),\n },\n { scopeContext },\n );\n await this.emitConnectionGranted(query, grant, created._id, false);\n return created._id;\n }\n\n /**\n * Store a credential somebody TYPED, as opposed to one an exchange minted.\n *\n * The other half of `storeGrant`, and separate from it because the two differ in every way that\n * matters: a grant is a JSON document with an expiry and a refresh token, this is one opaque value;\n * a grant arrives from a vendor, this arrives from a person; a grant can be renewed, this can only\n * be replaced. Serialising a typed key through the grant envelope would put\n * `wildo-oauth2-grant:{...}` on the wire as a bearer token.\n *\n * PLAINTEXT to the write door, which seals. Handing a pre-sealed value to `createAsSystem` reaches\n * the service tier where the sealing hook refuses to double-seal — so the write would throw after\n * the person had already typed their key.\n *\n * Replaces rather than duplicates: the business key is (owner, provider, slug), so re-entering a\n * rotated key is the ordinary case and a second create would violate the index. Re-entering also\n * RE-ENABLES and clears any validation mark, because somebody who has just supplied a working key\n * should not be shown a broken connection.\n */\n public async storeDeclaredSecret(query: OrganizationProviderCredentialQuery, secretValue: string): Promise<string> {\n const existing = await this.readCredentialRow(query);\n const scopeContext = { organizationId: query.organizationId };\n\n if (existing) {\n await this.systemAccess.updateAsSystem(\n CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n existing._id,\n {\n secretValue,\n enabled: true,\n validationState: ProviderCredentialValidationState.UNVALIDATED,\n validationError: undefined,\n },\n { scopeContext, preserveServerInjectedFields: ['validationError'] },\n );\n return existing._id;\n }\n\n const created = await this.systemAccess.createAsSystem<OrganizationProviderCredential>(\n CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n {\n organizationId: query.organizationId,\n providerRef: query.providerRef,\n secretSlug: query.secretSlug,\n secretValue,\n },\n { scopeContext },\n );\n return created._id;\n }\n\n /**\n * Renew the grant, and RETIRE the connection when the vendor says it is finished.\n *\n * Without this the refresh call was unguarded, and the failure was slow and silent in the worst\n * direction. A vendor that permanently rejects a refresh token — the person removed the app at the\n * vendor, an administrator revoked it, the token aged past its absolute lifetime — throws, the\n * error propagates out of the resolve, and NOTHING touches the row. `validationState` stays where\n * it was, so the connected-accounts screen goes on showing the account as connected, every call\n * fails identically forever, and the person is never told the one thing they could act on.\n *\n * Only `invalid_grant` retires a connection, and the exclusions are the substantive part. A\n * transport failure, a bare 500 or an unparseable body means the vendor said NOTHING about the\n * grant, and retiring a working connection because we could not reach a vendor for thirty seconds\n * would be a self-inflicted outage. `invalid_client` is excluded for a different reason: it is the\n * APPLICATION's own registration being rejected, one operator's misconfiguration affecting every\n * connection at once — marking each person's account invalid would blame all of them for something\n * none of them can fix.\n *\n * The mark is best-effort and the ORIGINAL error is always re-thrown: the caller needs the real\n * cause, and a bookkeeping write that failed must not replace it with a different story.\n */\n private async renewOrRetire(\n credentialId: string,\n query: OrganizationProviderCredentialQuery,\n request: Parameters<ProviderOAuth2RefresherPort['refreshGrant']>[0],\n ): Promise<ProviderOAuth2Grant> {\n try {\n return await this.refresher!.refreshGrant(request);\n } catch (error) {\n if (providerOAuth2GrantWasPermanentlyRejected(error)) {\n try {\n await this.systemAccess.updateAsSystem(\n CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n credentialId,\n {\n validationState: ProviderCredentialValidationState.INVALID,\n lastValidatedAt: new Date(),\n // The vendor's own code, and nothing derived from the credential. This field is\n // CLIENT-READABLE, so anything token-shaped reaching it would publish a secret onto\n // the screen that displays it.\n validationError: 'The provider rejected the stored authorization (invalid_grant). Reconnect the account.',\n },\n {\n scopeContext: { organizationId: query.organizationId },\n // Both of these are `.excludeFromUpdate()`; without the allow-list the row would go\n // INVALID carrying no reason and no timestamp — see `recordCredentialUse`.\n preserveServerInjectedFields: ['lastValidatedAt', 'validationError'],\n },\n );\n } catch (markError) {\n this.logger.warn?.(\n '[organization-provider-credential] a grant was permanently rejected and the row could not be marked',\n { providerRef: query.providerRef, secretSlug: query.secretSlug, credentialId, error: describeCaughtError(markError) },\n );\n }\n }\n throw error;\n }\n }\n\n /**\n * Record that a delegated authorization was GRANTED, distinct from the row's own `_SET` event.\n *\n * Emitted HERE and nowhere else, because this is the only place that holds the three facts an\n * auditor wants and the row does not: the scopes the vendor actually issued, which account they\n * were issued for, and whether this replaced a connection that already existed. By the time the\n * resource's own write hook sees the row, the value is sealed and none of it is recoverable.\n *\n * Best-effort, like every other emission on this path. The grant is already stored and the person\n * has already authorized it; failing their connection because a trail write did not land would\n * turn a completed authorization into an error and invite them to grant it a second time.\n */\n private async emitConnectionGranted(\n query: OrganizationProviderCredentialQuery,\n grant: ProviderOAuth2Grant,\n credentialId: string,\n replacedExistingConnection: boolean,\n ): Promise<void> {\n if (!this.auditLogs) {\n return;\n }\n try {\n await this.auditLogs.logOrganizationProviderConnectionGranted({\n organizationId: query.organizationId,\n providerRef: query.providerRef,\n secretSlug: query.secretSlug,\n credentialId,\n grantedScopes: grant.grantedScopes,\n accountRef: grant.accountRef,\n replacedExistingConnection,\n });\n } catch (error) {\n this.logger.warn?.(\n '[organization-provider-credential] a connection was granted and the audit event could not be emitted',\n { providerRef: query.providerRef, secretSlug: query.secretSlug, credentialId, error: describeCaughtError(error) },\n );\n }\n }\n\n /**\n * Persist a renewed grant through the resource's own WRITE door.\n *\n * The plaintext goes in and the CUSTOM IMPLEMENTATION seals it — the same hook that seals a\n * credential a person types. Sealing here instead would be a second sealing site for one\n * invariant, and it does not merely duplicate: `updateAsSystem` reaches the service tier, so a\n * pre-sealed value arrives at that hook and the envelope REFUSES it (\"double-sealing would hand\n * the envelope itself to the provider\"). Every refresh would have thrown at the write-back.\n *\n * `secretSetAt` therefore moves, and that is correct rather than tolerated: the field is defined\n * as \"when the stored VALUE last changed\", and a renewal changes it. An earlier version of this\n * method held it still on the theory that it should mean \"when a HUMAN last supplied a value\" —\n * that is a different field, and inventing the behaviour without the field was the error.\n *\n * NOT best-effort. A refresh that is not persisted happens again on every call, and against a\n * vendor that rotates the refresh token each one invalidates the last — so the connection breaks\n * while every individual exchange succeeds.\n */\n private async persistRenewedGrant(\n query: OrganizationProviderCredentialQuery,\n credentialId: string,\n renewed: ProviderOAuth2Grant,\n ): Promise<void> {\n await this.systemAccess.updateAsSystem(\n CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n credentialId,\n { secretValue: serializeProviderOAuth2Grant(renewed) },\n { scopeContext: { organizationId: query.organizationId } },\n );\n }\n\n /**\n * Turn an envelope failure into the operator-facing statement.\n *\n * Exposed so the registry can distinguish \"this tenant has no credential\" (fall through to the\n * environment) from \"this tenant HAS one and it is broken\" (refuse, loudly) without importing the\n * envelope's error type and re-deriving the distinction. One definition, one meaning.\n */\n public static isUnopenableCredential(error: unknown): error is ProviderCredentialEnvelopeError {\n return error instanceof ProviderCredentialEnvelopeError;\n }\n}\n"]}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The WRITE path for an organization's provider credential: seal on the way in, audit on the way
3
+ * out.
4
+ *
5
+ * ## Without this file the resource stores plaintext
6
+ *
7
+ * The schema declares `secretValue` as `.isWriteOnlySecret()`, which governs how the value is
8
+ * PRESENTED (redacted at the client boundary, and a round-tripped mask means "keep the stored
9
+ * secret"). It says nothing about how the value is STORED — a write-only-secret field lands in the
10
+ * database exactly as the client typed it. Sealing it is this hook's job, and it is the only place
11
+ * that job is done, so a credential reaching persistence unsealed means this registration did not
12
+ * resolve.
13
+ *
14
+ * ⚠️ A custom implementation resolves by an EXACT operation-path key embedding the resource, the
15
+ * operation, the variant TYPE and the default/variant-key slot. A registration naming a combination
16
+ * the resource configuration does not declare resolves nothing and silently never runs, while the
17
+ * route still answers 200 — here that would mean every credential persisted in plaintext behind a
18
+ * green suite. The pins in `__tests__/organization-provider-credentials-write-path.backend.test.ts`
19
+ * assert these registrations against the REAL resource configuration for that reason.
20
+ *
21
+ * ## The DELETE doors — enumerated, because only one of them reaches this file
22
+ *
23
+ * | Door | Path | This hook |
24
+ * |---|---|---|
25
+ * | A tenant administrator revoking a credential | service tier, `DELETE` default variant | RUNS |
26
+ * | The ORGANIZATIONS purge cascade (both the batch's route-less default door and the super-admin's `admin` door reach the same cascade) | `deleteChildrenImmediate` → the RAW repository | does NOT run |
27
+ *
28
+ * Door 2 is not an oversight and not a hole in the ERASURE: the cascade removes the rows, which is
29
+ * what matters, and `services-registry-handler.backend.service.ts` documents the raw-repository
30
+ * route explicitly ("VARIANT-AGNOSTIC CASCADE: the onParentDelete teardown deletes children directly
31
+ * through the RAW repository"). What door 2 has no way to produce is a per-credential AUDIT event,
32
+ * because the service tier — where custom implementations live — is bypassed entirely. Emitting one
33
+ * would need a cascade-tier audit hook in the framework, which is outside this resource. The tenant
34
+ * purge is itself audited as `ORGANIZATION_DELETED`, so the destruction is on the record; what is
35
+ * missing is the enumeration of WHICH third parties the tenant held credentials for at that moment.
36
+ * Recorded as its own issue rather than left for a reader to discover from an absence.
37
+ */
38
+ import { type ResourceCustomServiceImplementationFactory } from '../../../base-classes/services/services/resource-operation-custom-implementation.factory.backend';
39
+ /** Every write door of the organization-provider-credential resource. */
40
+ export declare function createOrganizationProviderCredentialFactories(): ResourceCustomServiceImplementationFactory[];
41
+ //# sourceMappingURL=organization-provider-credentials.custom-impl.backend.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-provider-credentials.custom-impl.backend.service.d.ts","sourceRoot":"","sources":["../../../../../src/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAkBH,OAAO,EAEL,KAAK,0CAA0C,EAChD,MAAM,4GAA4G,CAAC;AAqZpH,yEAAyE;AACzE,wBAAgB,6CAA6C,IAAI,0CAA0C,EAAE,CAM5G"}
@@ -0,0 +1,358 @@
1
+ /**
2
+ * The WRITE path for an organization's provider credential: seal on the way in, audit on the way
3
+ * out.
4
+ *
5
+ * ## Without this file the resource stores plaintext
6
+ *
7
+ * The schema declares `secretValue` as `.isWriteOnlySecret()`, which governs how the value is
8
+ * PRESENTED (redacted at the client boundary, and a round-tripped mask means "keep the stored
9
+ * secret"). It says nothing about how the value is STORED — a write-only-secret field lands in the
10
+ * database exactly as the client typed it. Sealing it is this hook's job, and it is the only place
11
+ * that job is done, so a credential reaching persistence unsealed means this registration did not
12
+ * resolve.
13
+ *
14
+ * ⚠️ A custom implementation resolves by an EXACT operation-path key embedding the resource, the
15
+ * operation, the variant TYPE and the default/variant-key slot. A registration naming a combination
16
+ * the resource configuration does not declare resolves nothing and silently never runs, while the
17
+ * route still answers 200 — here that would mean every credential persisted in plaintext behind a
18
+ * green suite. The pins in `__tests__/organization-provider-credentials-write-path.backend.test.ts`
19
+ * assert these registrations against the REAL resource configuration for that reason.
20
+ *
21
+ * ## The DELETE doors — enumerated, because only one of them reaches this file
22
+ *
23
+ * | Door | Path | This hook |
24
+ * |---|---|---|
25
+ * | A tenant administrator revoking a credential | service tier, `DELETE` default variant | RUNS |
26
+ * | The ORGANIZATIONS purge cascade (both the batch's route-less default door and the super-admin's `admin` door reach the same cascade) | `deleteChildrenImmediate` → the RAW repository | does NOT run |
27
+ *
28
+ * Door 2 is not an oversight and not a hole in the ERASURE: the cascade removes the rows, which is
29
+ * what matters, and `services-registry-handler.backend.service.ts` documents the raw-repository
30
+ * route explicitly ("VARIANT-AGNOSTIC CASCADE: the onParentDelete teardown deletes children directly
31
+ * through the RAW repository"). What door 2 has no way to produce is a per-credential AUDIT event,
32
+ * because the service tier — where custom implementations live — is bypassed entirely. Emitting one
33
+ * would need a cascade-tier audit hook in the framework, which is outside this resource. The tenant
34
+ * purge is itself audited as `ORGANIZATION_DELETED`, so the destruction is on the record; what is
35
+ * missing is the enumeration of WHICH third parties the tenant held credentials for at that moment.
36
+ * Recorded as its own issue rather than left for a reader to discover from an absence.
37
+ */
38
+ import { CoreAuditableEventType, CoreResourceOperation, CoreResourceType, ErrorType, ErrorCustomMessageReference, ProviderCredentialDeletionReason, ResourceOperationVariantType, WRITE_ONLY_SECRET_MASK, coreResourceShared_FieldIdentifier, } from '@wildo-ai/saas-models';
39
+ import { ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';
40
+ import { createResourceCustomServiceImplementation, } from '../../../base-classes/services/services/resource-operation-custom-implementation.factory.backend.js';
41
+ import { SAAS_SERVICE_TYPES } from '../../../inject/models/service-types.js';
42
+ import { resolveAuditActorId } from '../../../compliance/audit-trails/utils/audit-actor.backend.utils.js';
43
+ import { projectCaughtErrorLogFields } from '../../../errors/utils/error-log-level-classification.backend.utils.js';
44
+ import { sealProviderCredential } from '../utils/provider-credential-envelope.backend.utils.js';
45
+ /**
46
+ * Resolve the row identity for a write.
47
+ *
48
+ * The three parts come from three DIFFERENT places, and that is the reason this is a function rather
49
+ * than three property reads:
50
+ *
51
+ * - `organizationId` is injected by the context machinery from the request SCOPE, so on CREATE it is
52
+ * not in the input payload at all. The execution context's context-resource map is the
53
+ * authoritative channel — the same one `buildContextualFilter` and `enrichDataWithContext` read —
54
+ * which is what makes the seal bind to the tenant the framework will actually store the row under,
55
+ * rather than to one a caller could name in a body field.
56
+ * - `providerRef` / `secretSlug` are client-supplied on CREATE and `.excludeFromUpdate()` afterwards,
57
+ * so on UPDATE they must come from the pre-fetched current row.
58
+ */
59
+ function resolveWriteIdentity(input, executionContext, utils) {
60
+ const current = utils.currentObject;
61
+ // Two sources, and the request BODY is deliberately not one of them.
62
+ //
63
+ // On UPDATE the stored row is authoritative — it is what the framework already persisted. On
64
+ // CREATE the execution context's context-resource map is, because that is the same channel
65
+ // `enrichDataWithContext` reads when it injects the scope FK, so the seal binds to the tenant the
66
+ // row will actually be stored under.
67
+ //
68
+ // A `payload.organizationId` fallback was here and was REMOVED: it fails safe (a seal bound to a
69
+ // body-supplied tenant is simply unopenable later, so the outcome is a denial rather than a
70
+ // disclosure) but it is still the request choosing what the seal binds to, which is exactly the
71
+ // authorship this hook exists to keep out of a caller's hands. With no fallback, a context that
72
+ // cannot name the tenant is a REFUSAL — see below.
73
+ const organizationId = (typeof current?.organizationId === 'string' && current.organizationId)
74
+ || executionContext.getContextResourceId?.(coreResourceShared_FieldIdentifier[CoreResourceType.ORGANIZATIONS]);
75
+ const providerRef = (typeof input?.providerRef === 'string' && input.providerRef)
76
+ || (typeof current?.providerRef === 'string' ? current.providerRef : undefined);
77
+ const secretSlug = (typeof input?.secretSlug === 'string' && input.secretSlug)
78
+ || (typeof current?.secretSlug === 'string' ? current.secretSlug : undefined);
79
+ if (typeof organizationId !== 'string' || !organizationId || !providerRef || !secretSlug) {
80
+ // Fail CLOSED. Sealing under a partial identity would produce a credential bound to the wrong
81
+ // row — unopenable at resolution time, and indistinguishable then from a tampered one.
82
+ throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {
83
+ customMessageReference: ErrorCustomMessageReference.CONFIGURATION,
84
+ context: {
85
+ message: 'Cannot seal an organization provider credential: the row identity is incomplete. All three of '
86
+ + 'organizationId, providerRef and secretSlug must be resolvable, because the seal is bound to them. '
87
+ + 'The organization is read from the execution scope or the stored row, never from the request body.',
88
+ hasOrganizationId: Boolean(organizationId),
89
+ hasProviderRef: Boolean(providerRef),
90
+ hasSecretSlug: Boolean(secretSlug),
91
+ },
92
+ });
93
+ }
94
+ return { organizationId, providerRef, secretSlug };
95
+ }
96
+ /**
97
+ * Seal `secretValue` if the write carries one.
98
+ *
99
+ * An ABSENT `secretValue` is normal on UPDATE and must pass through untouched: the framework strips
100
+ * the field when a client echoes back the redaction mask, which is how "edit the description without
101
+ * retyping the secret" works. Re-sealing nothing would be harmless; treating absence as an error
102
+ * would break the ordinary edit.
103
+ */
104
+ function sealIncomingSecret(input, executionContext, utils, container) {
105
+ const payload = input ?? undefined;
106
+ const incoming = payload?.secretValue;
107
+ // ABSENT means "no change", and only absent. `null` is deliberately NOT treated as absent and
108
+ // falls through to the refusal below.
109
+ //
110
+ // That distinction became load-bearing the moment `secretValue` was declared authoritative: an
111
+ // authoritative field's post-prefix value is always carried past the repository's strict re-parse,
112
+ // so passing a `null` through here would push it INTO persistence rather than letting the schema
113
+ // reject it. The row would then hold a null where `z.string().min(1)` is required, and every
114
+ // later read would throw in `transformOutput` — a write that answers success and leaves the row
115
+ // permanently unreadable.
116
+ if (incoming === undefined) {
117
+ return payload;
118
+ }
119
+ // Defence in depth. The framework strips the mask sentinel before this hook runs, so reaching here
120
+ // with the mask means that strip did not happen — and sealing the mask would store the literal
121
+ // bullet characters as the tenant's credential, then hand them to a vendor.
122
+ if (incoming === WRITE_ONLY_SECRET_MASK) {
123
+ const { secretValue: _discarded, ...rest } = payload;
124
+ return rest;
125
+ }
126
+ if (typeof incoming !== 'string' || incoming.length === 0) {
127
+ throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {
128
+ customMessageReference: ErrorCustomMessageReference.VALIDATION,
129
+ context: { message: 'An organization provider credential value must be a non-empty string.' },
130
+ });
131
+ }
132
+ const identity = resolveWriteIdentity(payload, executionContext, utils);
133
+ const appConfig = container.get(SAAS_SERVICE_TYPES.AppConfigService);
134
+ const actingUserId = executionContext?.initiatorIds?.userId;
135
+ return {
136
+ ...payload,
137
+ secretValue: sealProviderCredential(incoming, appConfig.secrets.security.session.encryptionKey, {
138
+ ownerScope: ExternalProvider_Connection_OwnerScope.ORGANIZATION,
139
+ ownerId: identity.organizationId,
140
+ providerRef: identity.providerRef,
141
+ secretSlug: identity.secretSlug,
142
+ }),
143
+ // Server-owned provenance. Both are `.excludeFromCreate().excludeFromUpdate()`, so returning them
144
+ // here is what carries them past the strict re-parse — the same mechanism api-key minting uses
145
+ // for its hashed material, and declared explicitly in `authoritativeFields` below.
146
+ secretSetAt: new Date(),
147
+ // Only when there IS an acting user. Writing the key with an `undefined` value would preserve an
148
+ // explicit `undefined` past the re-parse rather than leaving the field absent, and "absent"
149
+ // is the honest representation of a write with no human behind it.
150
+ ...(actingUserId ? { setByUserId: actingUserId } : {}),
151
+ };
152
+ }
153
+ /**
154
+ * Emit the lifecycle event for a completed write.
155
+ *
156
+ * Best-effort in the same posture as every other audit emission in the engine: the credential has
157
+ * already been written, and turning a logging failure into a 500 would tell the tenant their write
158
+ * failed when it did not.
159
+ */
160
+ async function emitCredentialWriteAudit(container,
161
+ /**
162
+ * WHICH grant event this write is. Typed as the audit vocabulary's own two members rather than a
163
+ * bespoke `'set' | 'rotated'` pair: the distinction already has a named runtime source, and a
164
+ * second spelling of it would be a closed vocabulary with no home and one more thing to keep in
165
+ * step with the event names.
166
+ */
167
+ eventType, row, previousSecretSetAt, executionContext, utils) {
168
+ if (!row || typeof row._id !== 'string' || typeof row.organizationId !== 'string') {
169
+ utils.logger.error?.('An organization provider credential was written but the row could not be identified — audit event not emitted', { eventType });
170
+ return;
171
+ }
172
+ try {
173
+ const auditLogs = container.get(SAAS_SERVICE_TYPES.AuditLogsService);
174
+ const common = {
175
+ organizationId: row.organizationId,
176
+ providerRef: row.providerRef,
177
+ secretSlug: row.secretSlug,
178
+ credentialId: row._id,
179
+ };
180
+ if (eventType === CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET) {
181
+ await auditLogs.logOrganizationProviderCredentialSet({ ...common, setBy: resolveAuditActorId(executionContext) }, executionContext);
182
+ }
183
+ else {
184
+ await auditLogs.logOrganizationProviderCredentialRotated({
185
+ ...common,
186
+ rotatedBy: resolveAuditActorId(executionContext),
187
+ previousSecretSetAt: previousSecretSetAt?.toISOString(),
188
+ }, executionContext);
189
+ }
190
+ }
191
+ catch (error) {
192
+ utils.logger.error?.('Failed to emit the organization provider credential audit event', {
193
+ eventType,
194
+ credentialId: row._id,
195
+ ...projectCaughtErrorLogFields(error),
196
+ });
197
+ }
198
+ }
199
+ /**
200
+ * CREATE — the tenant grants this application authority toward a third party for the first time.
201
+ */
202
+ function createCredentialCreateFactory() {
203
+ const factory = (_registry, container) => createResourceCustomServiceImplementation({
204
+ operationPath: {
205
+ resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,
206
+ operationIdentifier: CoreResourceOperation.CREATE,
207
+ variantType: ResourceOperationVariantType.API_CALL,
208
+ isOperationDefault: true,
209
+ },
210
+ debugLabel: 'organizationProviderCredentials.create.seal-and-audit',
211
+ /**
212
+ * The three fields this hook OWNS, declared rather than inferred.
213
+ *
214
+ * `preserveServerInjectedFields` is normally derived by diffing the prefix output against a
215
+ * snapshot of the payload keys taken BEFORE the prefix ran, so only keys the hook INTRODUCED
216
+ * survive the repository's strict re-parse. That inference has a documented hole: a caller
217
+ * reaching the service tier with the key already present — MCP `callTool` forwards its
218
+ * arguments with no strict parse — puts it into the snapshot, the hook's value is then not
219
+ * classified as introduced, and the repository strips it while the operation answers success.
220
+ *
221
+ * For `secretSetAt` / `setByUserId` that would silently lose the provenance of a credential,
222
+ * which is the first thing an incident asks for. For `secretValue` the declaration says the
223
+ * thing that matters most in this file: whatever a caller sent, what reaches persistence is
224
+ * the POST-prefix value — the sealed envelope — and never the plaintext they supplied.
225
+ */
226
+ authoritativeFields: ['secretValue', 'secretSetAt', 'setByUserId'],
227
+ handlers: {
228
+ prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => sealIncomingSecret(input, executionContext, utils, container),
229
+ postfixCoreOperations: async (_id, created, executionContext, _operationPath, utils) => {
230
+ await emitCredentialWriteAudit(container, CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET, created, undefined, executionContext, utils);
231
+ return created;
232
+ },
233
+ },
234
+ });
235
+ return factory;
236
+ }
237
+ /**
238
+ * UPDATE — a rotation, or an ordinary metadata edit.
239
+ *
240
+ * The two are distinguished by whether the write actually carried a NEW secret. An edit that only
241
+ * changes the description emits nothing: a rotation event on a description change would make the
242
+ * one signal a compromise investigation depends on unusable.
243
+ */
244
+ function createCredentialUpdateFactory() {
245
+ const factory = (_registry, container) => createResourceCustomServiceImplementation({
246
+ operationPath: {
247
+ resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,
248
+ operationIdentifier: CoreResourceOperation.UPDATE,
249
+ variantType: ResourceOperationVariantType.API_CALL,
250
+ isOperationDefault: true,
251
+ },
252
+ debugLabel: 'organizationProviderCredentials.update.seal-and-audit',
253
+ /**
254
+ * The three fields this hook OWNS, declared rather than inferred.
255
+ *
256
+ * `preserveServerInjectedFields` is normally derived by diffing the prefix output against a
257
+ * snapshot of the payload keys taken BEFORE the prefix ran, so only keys the hook INTRODUCED
258
+ * survive the repository's strict re-parse. That inference has a documented hole: a caller
259
+ * reaching the service tier with the key already present — MCP `callTool` forwards its
260
+ * arguments with no strict parse — puts it into the snapshot, the hook's value is then not
261
+ * classified as introduced, and the repository strips it while the operation answers success.
262
+ *
263
+ * For `secretSetAt` / `setByUserId` that would silently lose the provenance of a credential,
264
+ * which is the first thing an incident asks for. For `secretValue` the declaration says the
265
+ * thing that matters most in this file: whatever a caller sent, what reaches persistence is
266
+ * the POST-prefix value — the sealed envelope — and never the plaintext they supplied.
267
+ */
268
+ authoritativeFields: ['secretValue', 'secretSetAt', 'setByUserId'],
269
+ handlers: {
270
+ prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {
271
+ const sealed = sealIncomingSecret(input, executionContext, utils, container);
272
+ // Bridge to the postfix, keyed by this operation's execution context. Carries only WHETHER
273
+ // the value moved and WHEN the previous one was set — never a secret, in either direction.
274
+ ROTATION_BRIDGE_BY_EC.set(executionContext, {
275
+ rotated: sealed?.secretValue !== undefined,
276
+ previousSecretSetAt: utils.currentObject?.secretSetAt,
277
+ });
278
+ return sealed;
279
+ },
280
+ postfixCoreOperations: async (_id, updated, executionContext, _operationPath, utils) => {
281
+ const bridge = ROTATION_BRIDGE_BY_EC.get(executionContext);
282
+ ROTATION_BRIDGE_BY_EC.delete(executionContext);
283
+ if (bridge?.rotated) {
284
+ await emitCredentialWriteAudit(container, CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED, updated, bridge.previousSecretSetAt, executionContext, utils);
285
+ }
286
+ return updated;
287
+ },
288
+ },
289
+ });
290
+ return factory;
291
+ }
292
+ /**
293
+ * DELETE — a tenant administrator revoking the grant.
294
+ *
295
+ * `ADMINISTRATOR_REVOKED` unconditionally, and that is CORRECT rather than an assumption: the
296
+ * cascade door never reaches this hook (see the module header), so every delete that arrives here is
297
+ * a deliberate service-tier revocation. If a future change routed a cascade through the service
298
+ * tier, this constant would become a lie — which is why the door table above is pinned by a test
299
+ * rather than left as prose.
300
+ */
301
+ function createCredentialDeleteFactory() {
302
+ const factory = (_registry, container) => createResourceCustomServiceImplementation({
303
+ operationPath: {
304
+ resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,
305
+ operationIdentifier: CoreResourceOperation.DELETE,
306
+ variantType: ResourceOperationVariantType.API_CALL,
307
+ isOperationDefault: true,
308
+ },
309
+ debugLabel: 'organizationProviderCredentials.delete.audit',
310
+ handlers: {
311
+ postfixCoreOperations: async (id, result, executionContext, _operationPath, utils) => {
312
+ // The pre-deletion snapshot: after the row is gone, the provider and slug are unrecoverable,
313
+ // so an event naming only the id would identify nothing.
314
+ const snapshot = utils.currentObject;
315
+ const credentialId = snapshot?._id ?? (typeof id === 'string' ? id : undefined);
316
+ if (!snapshot?.organizationId || !credentialId) {
317
+ utils.logger.error?.('An organization provider credential was deleted but the subject could not be resolved — audit event not emitted', { addressedIdType: Array.isArray(id) ? 'array' : typeof id });
318
+ return result;
319
+ }
320
+ try {
321
+ const auditLogs = container.get(SAAS_SERVICE_TYPES.AuditLogsService);
322
+ await auditLogs.logOrganizationProviderCredentialDeleted({
323
+ organizationId: snapshot.organizationId,
324
+ providerRef: snapshot.providerRef,
325
+ secretSlug: snapshot.secretSlug,
326
+ credentialId,
327
+ reason: ProviderCredentialDeletionReason.ADMINISTRATOR_REVOKED,
328
+ deletedBy: resolveAuditActorId(executionContext),
329
+ }, executionContext);
330
+ }
331
+ catch (error) {
332
+ utils.logger.error?.('Failed to emit the organization provider credential deletion audit event', {
333
+ credentialId,
334
+ ...projectCaughtErrorLogFields(error),
335
+ });
336
+ }
337
+ return result;
338
+ },
339
+ },
340
+ });
341
+ return factory;
342
+ }
343
+ /**
344
+ * Prefix→postfix bridge for the UPDATE hook, keyed by the per-operation execution-context instance.
345
+ *
346
+ * A `WeakMap` so an abandoned operation cannot retain the entry, mirroring the api-key mint bridge.
347
+ * It deliberately carries no secret: only a boolean and a timestamp cross it.
348
+ */
349
+ const ROTATION_BRIDGE_BY_EC = new WeakMap();
350
+ /** Every write door of the organization-provider-credential resource. */
351
+ export function createOrganizationProviderCredentialFactories() {
352
+ return [
353
+ createCredentialCreateFactory(),
354
+ createCredentialUpdateFactory(),
355
+ createCredentialDeleteFactory(),
356
+ ];
357
+ }
358
+ //# sourceMappingURL=organization-provider-credentials.custom-impl.backend.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-provider-credentials.custom-impl.backend.service.js","sourceRoot":"","sources":["../../../../../src/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The WRITE path for an organization's provider credential: seal on the way in, audit on the way\n * out.\n *\n * ## Without this file the resource stores plaintext\n *\n * The schema declares `secretValue` as `.isWriteOnlySecret()`, which governs how the value is\n * PRESENTED (redacted at the client boundary, and a round-tripped mask means \"keep the stored\n * secret\"). It says nothing about how the value is STORED — a write-only-secret field lands in the\n * database exactly as the client typed it. Sealing it is this hook's job, and it is the only place\n * that job is done, so a credential reaching persistence unsealed means this registration did not\n * resolve.\n *\n * ⚠️ A custom implementation resolves by an EXACT operation-path key embedding the resource, the\n * operation, the variant TYPE and the default/variant-key slot. A registration naming a combination\n * the resource configuration does not declare resolves nothing and silently never runs, while the\n * route still answers 200 — here that would mean every credential persisted in plaintext behind a\n * green suite. The pins in `__tests__/organization-provider-credentials-write-path.backend.test.ts`\n * assert these registrations against the REAL resource configuration for that reason.\n *\n * ## The DELETE doors — enumerated, because only one of them reaches this file\n *\n * | Door | Path | This hook |\n * |---|---|---|\n * | A tenant administrator revoking a credential | service tier, `DELETE` default variant | RUNS |\n * | The ORGANIZATIONS purge cascade (both the batch's route-less default door and the super-admin's `admin` door reach the same cascade) | `deleteChildrenImmediate` → the RAW repository | does NOT run |\n *\n * Door 2 is not an oversight and not a hole in the ERASURE: the cascade removes the rows, which is\n * what matters, and `services-registry-handler.backend.service.ts` documents the raw-repository\n * route explicitly (\"VARIANT-AGNOSTIC CASCADE: the onParentDelete teardown deletes children directly\n * through the RAW repository\"). What door 2 has no way to produce is a per-credential AUDIT event,\n * because the service tier — where custom implementations live — is bypassed entirely. Emitting one\n * would need a cascade-tier audit hook in the framework, which is outside this resource. The tenant\n * purge is itself audited as `ORGANIZATION_DELETED`, so the destruction is on the record; what is\n * missing is the enumeration of WHICH third parties the tenant held credentials for at that moment.\n * Recorded as its own issue rather than left for a reader to discover from an absence.\n */\n\nimport type { Container } from 'inversify';\nimport {\n CoreAuditableEventType,\n CoreResourceOperation,\n CoreResourceType,\n ErrorType,\n ErrorCustomMessageReference,\n ProviderCredentialDeletionReason,\n ResourceOperationVariantType,\n WRITE_ONLY_SECRET_MASK,\n coreResourceShared_FieldIdentifier,\n type OrganizationProviderCredential,\n} from '@wildo-ai/saas-models';\n\nimport { ExternalProvider_Connection_OwnerScope } from '@wildo-ai/external-connectors-models';\n\nimport {\n createResourceCustomServiceImplementation,\n type ResourceCustomServiceImplementationFactory,\n} from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation.factory.backend';\nimport type { ResourceOperation_CustomImplementation_Utils } from '~wildo-backend-lib/base-classes/services/services/resource-operation-custom-implementation-base.backend.service';\nimport type { ResourcesRegistryBackendService } from '~wildo-backend-lib/resources/services/resources-registry.backend.service';\nimport type { ExecutionContext } from '~wildo-backend-lib/runtime/models/execution-context.backend.schemas';\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 { AuditLogsBackendService } from '~wildo-backend-lib/compliance/audit-trails/services/audit-logs.backend.service';\nimport { resolveAuditActorId } from '~wildo-backend-lib/compliance/audit-trails/utils/audit-actor.backend.utils';\nimport { projectCaughtErrorLogFields } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\n\nimport { sealProviderCredential } from '../utils/provider-credential-envelope.backend.utils';\n\n/** The row identity the seal binds to, resolved from whichever channel actually carries each part. */\ninterface CredentialWriteIdentity {\n organizationId: string;\n providerRef: string;\n secretSlug: string;\n}\n\n/**\n * Resolve the row identity for a write.\n *\n * The three parts come from three DIFFERENT places, and that is the reason this is a function rather\n * than three property reads:\n *\n * - `organizationId` is injected by the context machinery from the request SCOPE, so on CREATE it is\n * not in the input payload at all. The execution context's context-resource map is the\n * authoritative channel — the same one `buildContextualFilter` and `enrichDataWithContext` read —\n * which is what makes the seal bind to the tenant the framework will actually store the row under,\n * rather than to one a caller could name in a body field.\n * - `providerRef` / `secretSlug` are client-supplied on CREATE and `.excludeFromUpdate()` afterwards,\n * so on UPDATE they must come from the pre-fetched current row.\n */\nfunction resolveWriteIdentity(\n input: Record<string, unknown> | undefined,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils,\n): CredentialWriteIdentity {\n const current = utils.currentObject as OrganizationProviderCredential | undefined;\n\n // Two sources, and the request BODY is deliberately not one of them.\n //\n // On UPDATE the stored row is authoritative — it is what the framework already persisted. On\n // CREATE the execution context's context-resource map is, because that is the same channel\n // `enrichDataWithContext` reads when it injects the scope FK, so the seal binds to the tenant the\n // row will actually be stored under.\n //\n // A `payload.organizationId` fallback was here and was REMOVED: it fails safe (a seal bound to a\n // body-supplied tenant is simply unopenable later, so the outcome is a denial rather than a\n // disclosure) but it is still the request choosing what the seal binds to, which is exactly the\n // authorship this hook exists to keep out of a caller's hands. With no fallback, a context that\n // cannot name the tenant is a REFUSAL — see below.\n const organizationId =\n (typeof current?.organizationId === 'string' && current.organizationId)\n || executionContext.getContextResourceId?.(coreResourceShared_FieldIdentifier[CoreResourceType.ORGANIZATIONS] as never);\n\n const providerRef =\n (typeof input?.providerRef === 'string' && input.providerRef)\n || (typeof current?.providerRef === 'string' ? current.providerRef : undefined);\n\n const secretSlug =\n (typeof input?.secretSlug === 'string' && input.secretSlug)\n || (typeof current?.secretSlug === 'string' ? current.secretSlug : undefined);\n\n if (typeof organizationId !== 'string' || !organizationId || !providerRef || !secretSlug) {\n // Fail CLOSED. Sealing under a partial identity would produce a credential bound to the wrong\n // row — unopenable at resolution time, and indistinguishable then from a tampered one.\n throw utils.errorBuilder.buildError(ErrorType.CONFIGURATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message:\n 'Cannot seal an organization provider credential: the row identity is incomplete. All three of '\n + 'organizationId, providerRef and secretSlug must be resolvable, because the seal is bound to them. '\n + 'The organization is read from the execution scope or the stored row, never from the request body.',\n hasOrganizationId: Boolean(organizationId),\n hasProviderRef: Boolean(providerRef),\n hasSecretSlug: Boolean(secretSlug),\n },\n });\n }\n\n return { organizationId, providerRef, secretSlug };\n}\n\n/**\n * Seal `secretValue` if the write carries one.\n *\n * An ABSENT `secretValue` is normal on UPDATE and must pass through untouched: the framework strips\n * the field when a client echoes back the redaction mask, which is how \"edit the description without\n * retyping the secret\" works. Re-sealing nothing would be harmless; treating absence as an error\n * would break the ordinary edit.\n */\nfunction sealIncomingSecret(\n input: Record<string, unknown> | undefined,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils,\n container: Container,\n): Record<string, unknown> | undefined {\n const payload = input ?? undefined;\n const incoming = payload?.secretValue;\n\n // ABSENT means \"no change\", and only absent. `null` is deliberately NOT treated as absent and\n // falls through to the refusal below.\n //\n // That distinction became load-bearing the moment `secretValue` was declared authoritative: an\n // authoritative field's post-prefix value is always carried past the repository's strict re-parse,\n // so passing a `null` through here would push it INTO persistence rather than letting the schema\n // reject it. The row would then hold a null where `z.string().min(1)` is required, and every\n // later read would throw in `transformOutput` — a write that answers success and leaves the row\n // permanently unreadable.\n if (incoming === undefined) {\n return payload;\n }\n\n // Defence in depth. The framework strips the mask sentinel before this hook runs, so reaching here\n // with the mask means that strip did not happen — and sealing the mask would store the literal\n // bullet characters as the tenant's credential, then hand them to a vendor.\n if (incoming === WRITE_ONLY_SECRET_MASK) {\n const { secretValue: _discarded, ...rest } = payload as Record<string, unknown>;\n return rest;\n }\n\n if (typeof incoming !== 'string' || incoming.length === 0) {\n throw utils.errorBuilder.buildError(ErrorType.VALIDATION, executionContext, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: { message: 'An organization provider credential value must be a non-empty string.' },\n });\n }\n\n const identity = resolveWriteIdentity(payload, executionContext, utils);\n const appConfig = container.get<AppConfigurationService>(SAAS_SERVICE_TYPES.AppConfigService);\n\n const actingUserId = executionContext?.initiatorIds?.userId;\n\n return {\n ...payload,\n secretValue: sealProviderCredential(\n incoming,\n appConfig.secrets.security.session.encryptionKey,\n {\n ownerScope: ExternalProvider_Connection_OwnerScope.ORGANIZATION,\n ownerId: identity.organizationId,\n providerRef: identity.providerRef,\n secretSlug: identity.secretSlug,\n },\n ),\n // Server-owned provenance. Both are `.excludeFromCreate().excludeFromUpdate()`, so returning them\n // here is what carries them past the strict re-parse — the same mechanism api-key minting uses\n // for its hashed material, and declared explicitly in `authoritativeFields` below.\n secretSetAt: new Date(),\n // Only when there IS an acting user. Writing the key with an `undefined` value would preserve an\n // explicit `undefined` past the re-parse rather than leaving the field absent, and \"absent\"\n // is the honest representation of a write with no human behind it.\n ...(actingUserId ? { setByUserId: actingUserId } : {}),\n };\n}\n\n/**\n * Emit the lifecycle event for a completed write.\n *\n * Best-effort in the same posture as every other audit emission in the engine: the credential has\n * already been written, and turning a logging failure into a 500 would tell the tenant their write\n * failed when it did not.\n */\nasync function emitCredentialWriteAudit(\n container: Container,\n /**\n * WHICH grant event this write is. Typed as the audit vocabulary's own two members rather than a\n * bespoke `'set' | 'rotated'` pair: the distinction already has a named runtime source, and a\n * second spelling of it would be a closed vocabulary with no home and one more thing to keep in\n * step with the event names.\n */\n eventType:\n | typeof CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET\n | typeof CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED,\n row: OrganizationProviderCredential | undefined,\n previousSecretSetAt: Date | undefined,\n executionContext: ExecutionContext<any>,\n utils: ResourceOperation_CustomImplementation_Utils,\n): Promise<void> {\n if (!row || typeof row._id !== 'string' || typeof row.organizationId !== 'string') {\n utils.logger.error?.(\n 'An organization provider credential was written but the row could not be identified — audit event not emitted',\n { eventType },\n );\n return;\n }\n\n try {\n const auditLogs = container.get<AuditLogsBackendService>(SAAS_SERVICE_TYPES.AuditLogsService);\n const common = {\n organizationId: row.organizationId,\n providerRef: row.providerRef,\n secretSlug: row.secretSlug,\n credentialId: row._id,\n };\n if (eventType === CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET) {\n await auditLogs.logOrganizationProviderCredentialSet(\n { ...common, setBy: resolveAuditActorId(executionContext) },\n executionContext,\n );\n } else {\n await auditLogs.logOrganizationProviderCredentialRotated(\n {\n ...common,\n rotatedBy: resolveAuditActorId(executionContext),\n previousSecretSetAt: previousSecretSetAt?.toISOString(),\n },\n executionContext,\n );\n }\n } catch (error) {\n utils.logger.error?.('Failed to emit the organization provider credential audit event', {\n eventType,\n credentialId: row._id,\n ...projectCaughtErrorLogFields(error),\n });\n }\n}\n\n/**\n * CREATE — the tenant grants this application authority toward a third party for the first time.\n */\nfunction createCredentialCreateFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_registry: ResourcesRegistryBackendService, container: Container) =>\n createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n operationIdentifier: CoreResourceOperation.CREATE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n debugLabel: 'organizationProviderCredentials.create.seal-and-audit',\n /**\n * The three fields this hook OWNS, declared rather than inferred.\n *\n * `preserveServerInjectedFields` is normally derived by diffing the prefix output against a\n * snapshot of the payload keys taken BEFORE the prefix ran, so only keys the hook INTRODUCED\n * survive the repository's strict re-parse. That inference has a documented hole: a caller\n * reaching the service tier with the key already present — MCP `callTool` forwards its\n * arguments with no strict parse — puts it into the snapshot, the hook's value is then not\n * classified as introduced, and the repository strips it while the operation answers success.\n *\n * For `secretSetAt` / `setByUserId` that would silently lose the provenance of a credential,\n * which is the first thing an incident asks for. For `secretValue` the declaration says the\n * thing that matters most in this file: whatever a caller sent, what reaches persistence is\n * the POST-prefix value — the sealed envelope — and never the plaintext they supplied.\n */\n authoritativeFields: ['secretValue', 'secretSetAt', 'setByUserId'],\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) =>\n sealIncomingSecret(input as Record<string, unknown> | undefined, executionContext, utils, container),\n postfixCoreOperations: async (_id, created, executionContext, _operationPath, utils) => {\n await emitCredentialWriteAudit(\n container,\n CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET,\n created as OrganizationProviderCredential | undefined,\n undefined,\n executionContext,\n utils,\n );\n return created;\n },\n },\n });\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n/**\n * UPDATE — a rotation, or an ordinary metadata edit.\n *\n * The two are distinguished by whether the write actually carried a NEW secret. An edit that only\n * changes the description emits nothing: a rotation event on a description change would make the\n * one signal a compromise investigation depends on unusable.\n */\nfunction createCredentialUpdateFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_registry: ResourcesRegistryBackendService, container: Container) =>\n createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n operationIdentifier: CoreResourceOperation.UPDATE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n debugLabel: 'organizationProviderCredentials.update.seal-and-audit',\n /**\n * The three fields this hook OWNS, declared rather than inferred.\n *\n * `preserveServerInjectedFields` is normally derived by diffing the prefix output against a\n * snapshot of the payload keys taken BEFORE the prefix ran, so only keys the hook INTRODUCED\n * survive the repository's strict re-parse. That inference has a documented hole: a caller\n * reaching the service tier with the key already present — MCP `callTool` forwards its\n * arguments with no strict parse — puts it into the snapshot, the hook's value is then not\n * classified as introduced, and the repository strips it while the operation answers success.\n *\n * For `secretSetAt` / `setByUserId` that would silently lose the provenance of a credential,\n * which is the first thing an incident asks for. For `secretValue` the declaration says the\n * thing that matters most in this file: whatever a caller sent, what reaches persistence is\n * the POST-prefix value — the sealed envelope — and never the plaintext they supplied.\n */\n authoritativeFields: ['secretValue', 'secretSetAt', 'setByUserId'],\n handlers: {\n prefixCoreOperations: async (_id, input, executionContext, _operationPath, utils) => {\n const sealed = sealIncomingSecret(\n input as Record<string, unknown> | undefined,\n executionContext,\n utils,\n container,\n );\n // Bridge to the postfix, keyed by this operation's execution context. Carries only WHETHER\n // the value moved and WHEN the previous one was set — never a secret, in either direction.\n ROTATION_BRIDGE_BY_EC.set(executionContext, {\n rotated: sealed?.secretValue !== undefined,\n previousSecretSetAt: (utils.currentObject as OrganizationProviderCredential | undefined)?.secretSetAt,\n });\n return sealed;\n },\n postfixCoreOperations: async (_id, updated, executionContext, _operationPath, utils) => {\n const bridge = ROTATION_BRIDGE_BY_EC.get(executionContext);\n ROTATION_BRIDGE_BY_EC.delete(executionContext);\n if (bridge?.rotated) {\n await emitCredentialWriteAudit(\n container,\n CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED,\n updated as OrganizationProviderCredential | undefined,\n bridge.previousSecretSetAt,\n executionContext,\n utils,\n );\n }\n return updated;\n },\n },\n });\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n/**\n * DELETE — a tenant administrator revoking the grant.\n *\n * `ADMINISTRATOR_REVOKED` unconditionally, and that is CORRECT rather than an assumption: the\n * cascade door never reaches this hook (see the module header), so every delete that arrives here is\n * a deliberate service-tier revocation. If a future change routed a cascade through the service\n * tier, this constant would become a lie — which is why the door table above is pinned by a test\n * rather than left as prose.\n */\nfunction createCredentialDeleteFactory(): ResourceCustomServiceImplementationFactory {\n const factory = (_registry: ResourcesRegistryBackendService, container: Container) =>\n createResourceCustomServiceImplementation({\n operationPath: {\n resourceIdentifier: CoreResourceType.ORG_PROVIDER_CREDENTIALS,\n operationIdentifier: CoreResourceOperation.DELETE,\n variantType: ResourceOperationVariantType.API_CALL,\n isOperationDefault: true,\n },\n debugLabel: 'organizationProviderCredentials.delete.audit',\n handlers: {\n postfixCoreOperations: async (id, result, executionContext, _operationPath, utils) => {\n // The pre-deletion snapshot: after the row is gone, the provider and slug are unrecoverable,\n // so an event naming only the id would identify nothing.\n const snapshot = utils.currentObject as OrganizationProviderCredential | undefined;\n const credentialId = snapshot?._id ?? (typeof id === 'string' ? id : undefined);\n\n if (!snapshot?.organizationId || !credentialId) {\n utils.logger.error?.(\n 'An organization provider credential was deleted but the subject could not be resolved — audit event not emitted',\n { addressedIdType: Array.isArray(id) ? 'array' : typeof id },\n );\n return result;\n }\n\n try {\n const auditLogs = container.get<AuditLogsBackendService>(SAAS_SERVICE_TYPES.AuditLogsService);\n await auditLogs.logOrganizationProviderCredentialDeleted(\n {\n organizationId: snapshot.organizationId,\n providerRef: snapshot.providerRef,\n secretSlug: snapshot.secretSlug,\n credentialId,\n reason: ProviderCredentialDeletionReason.ADMINISTRATOR_REVOKED,\n deletedBy: resolveAuditActorId(executionContext),\n },\n executionContext,\n );\n } catch (error) {\n utils.logger.error?.('Failed to emit the organization provider credential deletion audit event', {\n credentialId,\n ...projectCaughtErrorLogFields(error),\n });\n }\n return result;\n },\n },\n });\n return factory as unknown as ResourceCustomServiceImplementationFactory;\n}\n\n/**\n * Prefix→postfix bridge for the UPDATE hook, keyed by the per-operation execution-context instance.\n *\n * A `WeakMap` so an abandoned operation cannot retain the entry, mirroring the api-key mint bridge.\n * It deliberately carries no secret: only a boolean and a timestamp cross it.\n */\nconst ROTATION_BRIDGE_BY_EC = new WeakMap<object, { rotated: boolean; previousSecretSetAt?: Date }>();\n\n/** Every write door of the organization-provider-credential resource. */\nexport function createOrganizationProviderCredentialFactories(): ResourceCustomServiceImplementationFactory[] {\n return [\n createCredentialCreateFactory(),\n createCredentialUpdateFactory(),\n createCredentialDeleteFactory(),\n ];\n}\n"]}