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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (972) hide show
  1. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.d.ts.map +1 -1
  2. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js +19 -1
  3. package/dist/esm/applications/services/worker-remote-client-factory.backend.service.js.map +1 -1
  4. package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
  5. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +4 -0
  6. package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
  7. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts +35 -0
  8. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.d.ts.map +1 -0
  9. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js +111 -0
  10. package/dist/esm/base-classes/services/batches/child-lifecycle-teardown.batch.backend.service.js.map +1 -0
  11. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts +50 -0
  12. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.d.ts.map +1 -0
  13. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js +199 -0
  14. package/dist/esm/base-classes/services/batches/credential-expiry-sweep.batch.backend.service.js.map +1 -0
  15. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts +111 -0
  16. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.d.ts.map +1 -1
  17. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js +140 -0
  18. package/dist/esm/base-classes/services/batches/engine-custom-batch-manifests.js.map +1 -1
  19. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts +14 -3
  20. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.d.ts.map +1 -1
  21. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js +138 -24
  22. package/dist/esm/base-classes/services/controllers/controller-resource.backend.service.js.map +1 -1
  23. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts +3 -1
  24. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.d.ts.map +1 -1
  25. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js +8 -3
  26. package/dist/esm/base-classes/services/controllers/controllers-registry-handler.backend.service.js.map +1 -1
  27. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts +11 -0
  28. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.d.ts.map +1 -1
  29. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js +11 -2
  30. package/dist/esm/base-classes/services/repositories/field-clearing-partition.backend.js.map +1 -1
  31. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts +124 -13
  32. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.d.ts.map +1 -1
  33. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js +207 -21
  34. package/dist/esm/base-classes/services/repositories/http-api/http-api-provider-access.backend.js.map +1 -1
  35. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts +60 -8
  36. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.d.ts.map +1 -1
  37. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js +174 -26
  38. package/dist/esm/base-classes/services/repositories/http-api/http-api-read-client.backend.js.map +1 -1
  39. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts +48 -4
  40. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.d.ts.map +1 -1
  41. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js +102 -30
  42. package/dist/esm/base-classes/services/repositories/http-api/http-api-resource-repository.backend.service.js.map +1 -1
  43. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts +55 -0
  44. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.d.ts.map +1 -0
  45. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js +114 -0
  46. package/dist/esm/base-classes/services/repositories/http-api/http-api-rest-operation-reference.backend.js.map +1 -0
  47. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts +89 -14
  48. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.d.ts.map +1 -1
  49. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js +84 -11
  50. package/dist/esm/base-classes/services/repositories/http-api/http-api-transport.backend.js.map +1 -1
  51. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.d.ts.map +1 -1
  52. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js +16 -0
  53. package/dist/esm/base-classes/services/repositories/http-api/odata-query-compiler.backend.js.map +1 -1
  54. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts +20 -6
  55. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.d.ts.map +1 -1
  56. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js +96 -32
  57. package/dist/esm/base-classes/services/repositories/infrastructure-tier-contract.backend.js.map +1 -1
  58. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts +3 -1
  59. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.d.ts.map +1 -1
  60. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js +32 -7
  61. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-repository.backend.service.js.map +1 -1
  62. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts +8 -5
  63. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.d.ts.map +1 -1
  64. package/dist/esm/base-classes/services/repositories/introspection/introspection-resource-source.backend.port.js.map +1 -1
  65. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts +80 -0
  66. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.d.ts.map +1 -1
  67. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js +298 -23
  68. package/dist/esm/base-classes/services/repositories/postgresql-resource-repository.backend.service.js.map +1 -1
  69. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts +71 -1
  70. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.d.ts.map +1 -1
  71. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js +85 -5
  72. package/dist/esm/base-classes/services/repositories/repositories-registry-handler.backend.service.js.map +1 -1
  73. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts +21 -0
  74. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.d.ts.map +1 -1
  75. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js +146 -4
  76. package/dist/esm/base-classes/services/repositories/repository-resource.backend.service.js.map +1 -1
  77. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts +22 -0
  78. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.d.ts.map +1 -1
  79. package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-base.backend.service.js.map +1 -1
  80. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts +3 -26
  81. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.d.ts.map +1 -1
  82. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js +3 -68
  83. package/dist/esm/base-classes/services/services/resource-operation-implementation-coverage.backend.utils.js.map +1 -1
  84. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
  85. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +4 -1
  86. package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
  87. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts +11 -0
  88. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.d.ts.map +1 -1
  89. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js +39 -5
  90. package/dist/esm/base-classes/services/services/resource-status-transition.definitions.backend.js.map +1 -1
  91. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +181 -2
  92. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
  93. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +533 -43
  94. package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
  95. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts +36 -3
  96. package/dist/esm/base-classes/services/services/system-access.backend.service.d.ts.map +1 -1
  97. package/dist/esm/base-classes/services/services/system-access.backend.service.js +70 -8
  98. package/dist/esm/base-classes/services/services/system-access.backend.service.js.map +1 -1
  99. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts +28 -0
  100. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.d.ts.map +1 -0
  101. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js +90 -0
  102. package/dist/esm/billing/batches/billing-reconciliation.batch.backend.service.js.map +1 -0
  103. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts +44 -0
  104. package/dist/esm/billing/batches/usage-flush.batch.backend.service.d.ts.map +1 -0
  105. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js +99 -0
  106. package/dist/esm/billing/batches/usage-flush.batch.backend.service.js.map +1 -0
  107. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts +91 -0
  108. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.d.ts.map +1 -0
  109. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js +152 -0
  110. package/dist/esm/billing/models/billing-provider-event-settlement.backend.schemas.js.map +1 -0
  111. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts +186 -0
  112. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.d.ts.map +1 -0
  113. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js +474 -0
  114. package/dist/esm/billing/services/back-office/billing-reconciliation.backend.service.js.map +1 -0
  115. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts +100 -0
  116. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.d.ts.map +1 -1
  117. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js +209 -6
  118. package/dist/esm/billing/services/back-office/product-catalog-sync.backend.service.js.map +1 -1
  119. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts +200 -4
  120. package/dist/esm/billing/services/back-office/usage-metering.backend.service.d.ts.map +1 -1
  121. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js +593 -64
  122. package/dist/esm/billing/services/back-office/usage-metering.backend.service.js.map +1 -1
  123. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts +36 -0
  124. package/dist/esm/billing/services/billing-adapter-registry.backend.d.ts.map +1 -0
  125. package/dist/esm/billing/services/billing-adapter-registry.backend.js +83 -0
  126. package/dist/esm/billing/services/billing-adapter-registry.backend.js.map +1 -0
  127. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts +9 -0
  128. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.d.ts.map +1 -1
  129. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js +11 -1
  130. package/dist/esm/billing/services/billing-checkout-metadata.backend.utils.js.map +1 -1
  131. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.d.ts.map +1 -1
  132. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js +54 -13
  133. package/dist/esm/billing/services/custom-impl/billing-account.mutations.custom-impl.backend.service.js.map +1 -1
  134. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts +38 -1
  135. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.d.ts.map +1 -1
  136. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js +67 -2
  137. package/dist/esm/billing/services/custom-impl/billing-custom-impl-utils.backend.js.map +1 -1
  138. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts +30 -1
  139. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.d.ts.map +1 -1
  140. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js +43 -1
  141. package/dist/esm/billing/services/custom-impl/billing-custom-implementations.backend.js.map +1 -1
  142. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts +11 -3
  143. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.d.ts.map +1 -1
  144. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js +30 -16
  145. package/dist/esm/billing/services/custom-impl/promotion.custom-ops.custom-impl.backend.service.js.map +1 -1
  146. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.d.ts.map +1 -1
  147. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js +104 -25
  148. package/dist/esm/billing/services/custom-impl/subscription.mutations.custom-impl.backend.service.js.map +1 -1
  149. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts +18 -1
  150. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.d.ts.map +1 -1
  151. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js +106 -2
  152. package/dist/esm/billing/services/stripe-standard-billing-provider.backend.service.js.map +1 -1
  153. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts +52 -0
  154. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.d.ts.map +1 -0
  155. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js +74 -0
  156. package/dist/esm/billing/services/webhooks/__tests__/settlement-ledger.test-double.js.map +1 -0
  157. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts +104 -11
  158. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.d.ts.map +1 -1
  159. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js +260 -26
  160. package/dist/esm/billing/services/webhooks/billing-webhook-event-router.backend.service.js.map +1 -1
  161. package/dist/esm/billing/testing/mock-billing-provider.d.ts +30 -1
  162. package/dist/esm/billing/testing/mock-billing-provider.d.ts.map +1 -1
  163. package/dist/esm/billing/testing/mock-billing-provider.js +25 -0
  164. package/dist/esm/billing/testing/mock-billing-provider.js.map +1 -1
  165. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js +11 -4
  166. package/dist/esm/compliance/audit-trails/batches/audit-logs-archive.batch.backend.service.js.map +1 -1
  167. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts +263 -13
  168. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.d.ts.map +1 -1
  169. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js +376 -58
  170. package/dist/esm/compliance/audit-trails/services/audit-event-dispatcher.backend.service.js.map +1 -1
  171. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts +264 -7
  172. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.d.ts.map +1 -1
  173. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js +414 -5
  174. package/dist/esm/compliance/audit-trails/services/audit-logs.backend.service.js.map +1 -1
  175. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.d.ts.map +1 -1
  176. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js +7 -1
  177. package/dist/esm/compliance/audit-trails/services/composite-audit-log-sink.backend.js.map +1 -1
  178. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts +16 -0
  179. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.d.ts.map +1 -0
  180. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js +140 -0
  181. package/dist/esm/compliance/audit-trails/services/siem-export-config-cache-invalidation.custom-impl.backend.service.js.map +1 -0
  182. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts +42 -0
  183. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.d.ts.map +1 -1
  184. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js +65 -6
  185. package/dist/esm/compliance/audit-trails/services/siem-webhook-delivery.backend.service.js.map +1 -1
  186. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts +110 -0
  187. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.d.ts.map +1 -0
  188. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js +192 -0
  189. package/dist/esm/compliance/audit-trails/services/utils/leased-value-cache.backend.utils.js.map +1 -0
  190. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.d.ts.map +1 -1
  191. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js +45 -0
  192. package/dist/esm/compliance/audit-trails/services/utils/ocsf-activity-mapping.backend.utils.js.map +1 -1
  193. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts +5 -0
  194. package/dist/esm/config/bootstrap/application-runtime-profile.backend.d.ts.map +1 -1
  195. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js +6 -0
  196. package/dist/esm/config/bootstrap/application-runtime-profile.backend.js.map +1 -1
  197. package/dist/esm/config/custom/application-config-controller.backend.service.d.ts.map +1 -1
  198. package/dist/esm/config/custom/application-config-controller.backend.service.js +7 -1
  199. package/dist/esm/config/custom/application-config-controller.backend.service.js.map +1 -1
  200. package/dist/esm/config/models/app-config.backend.schemas.d.ts +146 -46
  201. package/dist/esm/config/models/app-config.backend.schemas.d.ts.map +1 -1
  202. package/dist/esm/config/models/app-config.backend.schemas.js +121 -12
  203. package/dist/esm/config/models/app-config.backend.schemas.js.map +1 -1
  204. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts +38 -15
  205. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.d.ts.map +1 -1
  206. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js +17 -2
  207. package/dist/esm/config/models/provider-runtime-artifact.backend.schemas.js.map +1 -1
  208. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts +0 -1
  209. package/dist/esm/config/services/app-configuration-loader.backend.service.d.ts.map +1 -1
  210. package/dist/esm/config/services/app-configuration-loader.backend.service.js +68 -76
  211. package/dist/esm/config/services/app-configuration-loader.backend.service.js.map +1 -1
  212. package/dist/esm/config/services/app-configuration.backend.service.d.ts.map +1 -1
  213. package/dist/esm/config/services/app-configuration.backend.service.js +23 -1
  214. package/dist/esm/config/services/app-configuration.backend.service.js.map +1 -1
  215. package/dist/esm/config/services/app-configuration.backend.utils.d.ts +43 -1
  216. package/dist/esm/config/services/app-configuration.backend.utils.d.ts.map +1 -1
  217. package/dist/esm/config/services/app-configuration.backend.utils.js +52 -3
  218. package/dist/esm/config/services/app-configuration.backend.utils.js.map +1 -1
  219. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts +25 -0
  220. package/dist/esm/config/services/application-startup-config-validator.backend.service.d.ts.map +1 -1
  221. package/dist/esm/config/services/application-startup-config-validator.backend.service.js +41 -1
  222. package/dist/esm/config/services/application-startup-config-validator.backend.service.js.map +1 -1
  223. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.d.ts +2 -2
  224. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js +2 -2
  225. package/dist/esm/data-seeding/services/shared/data-seed-scope-iteration.shared.utils.js.map +1 -1
  226. package/dist/esm/databases/models/filter.backend.schemas.js +2 -2
  227. package/dist/esm/databases/models/filter.backend.schemas.js.map +1 -1
  228. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.d.ts.map +1 -1
  229. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js +20 -1
  230. package/dist/esm/databases/services/aggregation/aggregation-authorization.backend.service.js.map +1 -1
  231. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.d.ts.map +1 -1
  232. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js +48 -0
  233. package/dist/esm/databases/services/postgresql-schema-plan-diff.backend.js.map +1 -1
  234. package/dist/esm/databases/services/redis.service.d.ts +27 -0
  235. package/dist/esm/databases/services/redis.service.d.ts.map +1 -1
  236. package/dist/esm/databases/services/redis.service.js +29 -0
  237. package/dist/esm/databases/services/redis.service.js.map +1 -1
  238. package/dist/esm/errors/services/error-builder.backend.service.d.ts +13 -1
  239. package/dist/esm/errors/services/error-builder.backend.service.d.ts.map +1 -1
  240. package/dist/esm/errors/services/error-builder.backend.service.js +13 -1
  241. package/dist/esm/errors/services/error-builder.backend.service.js.map +1 -1
  242. package/dist/esm/errors/services/error-handler.backend.service.d.ts +70 -7
  243. package/dist/esm/errors/services/error-handler.backend.service.d.ts.map +1 -1
  244. package/dist/esm/errors/services/error-handler.backend.service.js +134 -8
  245. package/dist/esm/errors/services/error-handler.backend.service.js.map +1 -1
  246. package/dist/esm/errors/services/rate-limit.backend.service.d.ts +66 -0
  247. package/dist/esm/errors/services/rate-limit.backend.service.d.ts.map +1 -1
  248. package/dist/esm/errors/services/rate-limit.backend.service.js +102 -25
  249. package/dist/esm/errors/services/rate-limit.backend.service.js.map +1 -1
  250. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts +5 -0
  251. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.d.ts.map +1 -1
  252. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js +25 -0
  253. package/dist/esm/errors/utils/error-log-level-classification.backend.utils.js.map +1 -1
  254. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts +33 -0
  255. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.d.ts.map +1 -1
  256. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js +40 -0
  257. package/dist/esm/errors/utils/rate-limit-environment-relaxation.backend.utils.js.map +1 -1
  258. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts +41 -0
  259. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.d.ts.map +1 -0
  260. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js +40 -0
  261. package/dist/esm/external-data/controllers/external-data-admin.backend.contracts.js.map +1 -0
  262. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts +64 -0
  263. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.d.ts.map +1 -0
  264. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js +193 -0
  265. package/dist/esm/external-data/controllers/external-data-admin.backend.controller.js.map +1 -0
  266. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts +72 -4
  267. package/dist/esm/external-data/external-data-pipeline-run.backend.service.d.ts.map +1 -1
  268. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js +60 -19
  269. package/dist/esm/external-data/external-data-pipeline-run.backend.service.js.map +1 -1
  270. package/dist/esm/external-data/external-data-transform.backend.d.ts.map +1 -1
  271. package/dist/esm/external-data/external-data-transform.backend.js +7 -1
  272. package/dist/esm/external-data/external-data-transform.backend.js.map +1 -1
  273. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts +2 -0
  274. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.d.ts.map +1 -1
  275. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js +13 -0
  276. package/dist/esm/external-data/models/external-data-pipeline-state.backend.schemas.js.map +1 -1
  277. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts +4 -2
  278. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.d.ts.map +1 -1
  279. package/dist/esm/external-providers/models/provider-selection-resolution-evidence.backend.definitions.js.map +1 -1
  280. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts +256 -0
  281. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.d.ts.map +1 -0
  282. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js +333 -0
  283. package/dist/esm/external-providers/operations/provider-operation-executor.backend.service.js.map +1 -0
  284. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts +56 -0
  285. package/dist/esm/external-providers/operations/provider-operation-request.backend.d.ts.map +1 -0
  286. package/dist/esm/external-providers/operations/provider-operation-request.backend.js +211 -0
  287. package/dist/esm/external-providers/operations/provider-operation-request.backend.js.map +1 -0
  288. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts +45 -0
  289. package/dist/esm/external-providers/operations/provider-request-signing.backend.d.ts.map +1 -0
  290. package/dist/esm/external-providers/operations/provider-request-signing.backend.js +216 -0
  291. package/dist/esm/external-providers/operations/provider-request-signing.backend.js.map +1 -0
  292. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts +56 -0
  293. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.d.ts.map +1 -0
  294. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js +78 -0
  295. package/dist/esm/external-providers/operations/provider-rest-call-client.backend.js.map +1 -0
  296. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts +1 -1
  297. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.d.ts.map +1 -1
  298. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js +2 -2
  299. package/dist/esm/external-providers/services/__tests__/mock-external-providers-registry.service.js.map +1 -1
  300. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts +89 -0
  301. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.d.ts.map +1 -0
  302. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js +164 -0
  303. package/dist/esm/external-providers/services/backend-provider-loader.backend.service.js.map +1 -0
  304. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts +26 -27
  305. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.d.ts.map +1 -1
  306. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js +50 -64
  307. package/dist/esm/external-providers/services/backend-provider-registry.backend.service.js.map +1 -1
  308. package/dist/esm/external-providers/services/document-extraction.backend.service.d.ts.map +1 -1
  309. package/dist/esm/external-providers/services/document-extraction.backend.service.js +3 -3
  310. package/dist/esm/external-providers/services/document-extraction.backend.service.js.map +1 -1
  311. package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
  312. package/dist/esm/external-providers/services/embeddings.backend.service.js +4 -4
  313. package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
  314. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +306 -7
  315. package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
  316. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +539 -45
  317. package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
  318. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.d.ts.map +1 -1
  319. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js +25 -2
  320. package/dist/esm/external-providers/services/frontend-bootstrap.backend.service.js.map +1 -1
  321. package/dist/esm/files/controllers/file.controller.d.ts +24 -1
  322. package/dist/esm/files/controllers/file.controller.d.ts.map +1 -1
  323. package/dist/esm/files/controllers/file.controller.js +83 -11
  324. package/dist/esm/files/controllers/file.controller.js.map +1 -1
  325. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts +17 -0
  326. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.d.ts.map +1 -0
  327. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js +1 -0
  328. package/dist/esm/files/handlers/file-upload-route-locals.backend.types.js.map +1 -0
  329. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts +5 -1
  330. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.d.ts.map +1 -1
  331. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js +76 -13
  332. package/dist/esm/files/handlers/resource-file-upload-handler.backend.service.js.map +1 -1
  333. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts +18 -0
  334. package/dist/esm/files/services/file-operation-handler.backend.service.d.ts.map +1 -1
  335. package/dist/esm/files/services/file-operation-handler.backend.service.js +36 -28
  336. package/dist/esm/files/services/file-operation-handler.backend.service.js.map +1 -1
  337. package/dist/esm/files/services/file-scanning.backend.service.d.ts +94 -9
  338. package/dist/esm/files/services/file-scanning.backend.service.d.ts.map +1 -1
  339. package/dist/esm/files/services/file-scanning.backend.service.js +197 -17
  340. package/dist/esm/files/services/file-scanning.backend.service.js.map +1 -1
  341. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts +60 -1
  342. package/dist/esm/files/services/file-text-extraction.backend.service.d.ts.map +1 -1
  343. package/dist/esm/files/services/file-text-extraction.backend.service.js +167 -8
  344. package/dist/esm/files/services/file-text-extraction.backend.service.js.map +1 -1
  345. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts +214 -0
  346. package/dist/esm/files/services/file-upload-grant.backend.service.d.ts.map +1 -0
  347. package/dist/esm/files/services/file-upload-grant.backend.service.js +566 -0
  348. package/dist/esm/files/services/file-upload-grant.backend.service.js.map +1 -0
  349. package/dist/esm/files/services/files.backend.service.d.ts +87 -0
  350. package/dist/esm/files/services/files.backend.service.d.ts.map +1 -1
  351. package/dist/esm/files/services/files.backend.service.js +252 -19
  352. package/dist/esm/files/services/files.backend.service.js.map +1 -1
  353. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts +109 -0
  354. package/dist/esm/files/storage/application-storage-key.backend.utils.d.ts.map +1 -0
  355. package/dist/esm/files/storage/application-storage-key.backend.utils.js +123 -0
  356. package/dist/esm/files/storage/application-storage-key.backend.utils.js.map +1 -0
  357. package/dist/esm/files/storage/file-storage-provider.types.d.ts +16 -10
  358. package/dist/esm/files/storage/file-storage-provider.types.d.ts.map +1 -1
  359. package/dist/esm/files/storage/file-storage-provider.types.js.map +1 -1
  360. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts +67 -8
  361. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.d.ts.map +1 -1
  362. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js +101 -28
  363. package/dist/esm/files/storage/local-directory-storage-provider.backend.service.js.map +1 -1
  364. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.d.ts.map +1 -1
  365. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js +8 -55
  366. package/dist/esm/files/storage/wildo-managed-storage-provider.backend.service.js.map +1 -1
  367. package/dist/esm/files/utils/file-field-schema-path.backend.utils.d.ts.map +1 -1
  368. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js +20 -0
  369. package/dist/esm/files/utils/file-field-schema-path.backend.utils.js.map +1 -1
  370. package/dist/esm/files/utils/file-uploader.utils.d.ts.map +1 -1
  371. package/dist/esm/files/utils/file-uploader.utils.js +12 -0
  372. package/dist/esm/files/utils/file-uploader.utils.js.map +1 -1
  373. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts +86 -0
  374. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.d.ts.map +1 -0
  375. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js +288 -0
  376. package/dist/esm/files/utils/office-document-text-extraction.backend.utils.js.map +1 -0
  377. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts +15 -0
  378. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.d.ts.map +1 -1
  379. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js +76 -5
  380. package/dist/esm/flows-actors/a2a/batches/a2a-abandoned-task-sweep.batch.backend.service.js.map +1 -1
  381. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.d.ts.map +1 -1
  382. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js +6 -1
  383. package/dist/esm/flows-actors/a2a/controllers/a2a.controller.js.map +1 -1
  384. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts +60 -0
  385. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.d.ts.map +1 -1
  386. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js +63 -0
  387. package/dist/esm/flows-actors/a2a/models/a2a.backend.schemas.js.map +1 -1
  388. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts +74 -0
  389. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.d.ts.map +1 -1
  390. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js +200 -44
  391. package/dist/esm/flows-actors/a2a/services/a2a-task-cancellation.backend.service.js.map +1 -1
  392. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts +7 -1
  393. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.d.ts.map +1 -1
  394. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js +53 -1
  395. package/dist/esm/flows-actors/a2a/services/a2a-task.backend.service.js.map +1 -1
  396. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts +18 -0
  397. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.d.ts.map +1 -1
  398. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js +18 -0
  399. package/dist/esm/flows-actors/a2a/services/a2a-token-budget.backend.service.js.map +1 -1
  400. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts +12 -7
  401. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.d.ts.map +1 -1
  402. package/dist/esm/flows-actors/a2a/services/a2a.backend.service.js.map +1 -1
  403. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts +0 -13
  404. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.d.ts.map +1 -1
  405. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js +14 -22
  406. package/dist/esm/flows-actors/models/agent-catalogs.backend.definitions.js.map +1 -1
  407. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts +8 -3
  408. package/dist/esm/flows-actors/models/core-facets.backend.definitions.d.ts.map +1 -1
  409. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js +25 -15
  410. package/dist/esm/flows-actors/models/core-facets.backend.definitions.js.map +1 -1
  411. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts +13 -1
  412. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.d.ts.map +1 -1
  413. package/dist/esm/flows-actors/models/flows-actors.backend.schemas.js.map +1 -1
  414. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +88 -8
  415. package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
  416. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +333 -31
  417. package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
  418. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.d.ts.map +1 -1
  419. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js +4 -2
  420. package/dist/esm/flows-actors/models/market-generation.actors-system.backend.definitions.js.map +1 -1
  421. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts +113 -0
  422. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.d.ts.map +1 -0
  423. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js +62 -0
  424. package/dist/esm/flows-actors/models/mcp-client.backend.definitions.js.map +1 -0
  425. package/dist/esm/flows-actors/services/actors-system.backend.service.d.ts.map +1 -1
  426. package/dist/esm/flows-actors/services/actors-system.backend.service.js +0 -2
  427. package/dist/esm/flows-actors/services/actors-system.backend.service.js.map +1 -1
  428. package/dist/esm/flows-actors/services/agents.backend.service.d.ts +107 -1
  429. package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
  430. package/dist/esm/flows-actors/services/agents.backend.service.js +519 -56
  431. package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
  432. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +5 -1
  433. package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
  434. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +79 -16
  435. package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
  436. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +34 -5
  437. package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
  438. package/dist/esm/flows-actors/services/flows-actors-registry.service.js +154 -20
  439. package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
  440. package/dist/esm/flows-actors/services/flows.backend.services.d.ts.map +1 -1
  441. package/dist/esm/flows-actors/services/flows.backend.services.js +27 -23
  442. package/dist/esm/flows-actors/services/flows.backend.services.js.map +1 -1
  443. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.d.ts.map +1 -1
  444. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js +7 -1
  445. package/dist/esm/flows-actors/services/llm-observability-agent-call-trace-sink.backend.js.map +1 -1
  446. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts +90 -0
  447. package/dist/esm/flows-actors/services/mcp-client.backend.service.d.ts.map +1 -0
  448. package/dist/esm/flows-actors/services/mcp-client.backend.service.js +368 -0
  449. package/dist/esm/flows-actors/services/mcp-client.backend.service.js.map +1 -0
  450. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts +9 -5
  451. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.d.ts.map +1 -1
  452. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js +12 -17
  453. package/dist/esm/flows-actors/services/prompt-compiler.backend.service.js.map +1 -1
  454. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts +151 -41
  455. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
  456. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +308 -143
  457. package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
  458. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts +0 -207
  459. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.d.ts.map +1 -1
  460. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js +8 -243
  461. package/dist/esm/flows-actors/utils/meta-workflow-canonical-json.backend.utils.js.map +1 -1
  462. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.d.ts.map +1 -1
  463. package/dist/esm/flows-actors/utils/meta-workflow-structured-generation-plan.backend.utils.js.map +1 -1
  464. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts +9 -14
  465. package/dist/esm/guidance/services/milestone-evaluator.backend.service.d.ts.map +1 -1
  466. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js +18 -89
  467. package/dist/esm/guidance/services/milestone-evaluator.backend.service.js.map +1 -1
  468. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts +86 -0
  469. package/dist/esm/guidance/services/progression-state-store.backend.service.d.ts.map +1 -0
  470. package/dist/esm/guidance/services/progression-state-store.backend.service.js +155 -0
  471. package/dist/esm/guidance/services/progression-state-store.backend.service.js.map +1 -0
  472. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts +10 -0
  473. package/dist/esm/i18n/controllers/i18n-controller.backend.service.d.ts.map +1 -1
  474. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js +55 -5
  475. package/dist/esm/i18n/controllers/i18n-controller.backend.service.js.map +1 -1
  476. package/dist/esm/index.d.ts +15 -5
  477. package/dist/esm/index.d.ts.map +1 -1
  478. package/dist/esm/index.js +45 -5
  479. package/dist/esm/index.js.map +1 -1
  480. package/dist/esm/inject/models/container.d.ts.map +1 -1
  481. package/dist/esm/inject/models/container.js +82 -10
  482. package/dist/esm/inject/models/container.js.map +1 -1
  483. package/dist/esm/inject/models/service-types.d.ts +20 -3
  484. package/dist/esm/inject/models/service-types.d.ts.map +1 -1
  485. package/dist/esm/inject/models/service-types.js +21 -3
  486. package/dist/esm/inject/models/service-types.js.map +1 -1
  487. package/dist/esm/mcp/controllers/mcp.controller.d.ts.map +1 -1
  488. package/dist/esm/mcp/controllers/mcp.controller.js +32 -4
  489. package/dist/esm/mcp/controllers/mcp.controller.js.map +1 -1
  490. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts +34 -0
  491. package/dist/esm/mcp/models/mcp-tool.backend.schemas.d.ts.map +1 -1
  492. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js +42 -0
  493. package/dist/esm/mcp/models/mcp-tool.backend.schemas.js.map +1 -1
  494. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts +84 -1
  495. package/dist/esm/mcp/services/mcp-server.backend.service.d.ts.map +1 -1
  496. package/dist/esm/mcp/services/mcp-server.backend.service.js +235 -11
  497. package/dist/esm/mcp/services/mcp-server.backend.service.js.map +1 -1
  498. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts +64 -2
  499. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.d.ts.map +1 -1
  500. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js +152 -6
  501. package/dist/esm/mcp/services/mcp-tool-adapter.backend.service.js.map +1 -1
  502. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.d.ts.map +1 -1
  503. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js +49 -4
  504. package/dist/esm/monitoring/analytics/controllers/analytics.backend.controller.js.map +1 -1
  505. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts +66 -0
  506. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.d.ts.map +1 -0
  507. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js +199 -0
  508. package/dist/esm/monitoring/analytics/services/value-moment-definition-registry.backend.service.js.map +1 -0
  509. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts +149 -13
  510. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.d.ts.map +1 -1
  511. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js +411 -19
  512. package/dist/esm/monitoring/analytics/services/value-moment-engine.backend.service.js.map +1 -1
  513. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts +11 -2
  514. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.d.ts.map +1 -1
  515. package/dist/esm/monitoring/analytics/services/value-moment-handler-registry.backend.service.js.map +1 -1
  516. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts +28 -9
  517. package/dist/esm/monitoring/logger/models/logger.backend.schemas.d.ts.map +1 -1
  518. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js +30 -10
  519. package/dist/esm/monitoring/logger/models/logger.backend.schemas.js.map +1 -1
  520. package/dist/esm/monitoring/logger/services/logger.service.d.ts +12 -0
  521. package/dist/esm/monitoring/logger/services/logger.service.d.ts.map +1 -1
  522. package/dist/esm/monitoring/logger/services/logger.service.js +52 -11
  523. package/dist/esm/monitoring/logger/services/logger.service.js.map +1 -1
  524. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts +62 -0
  525. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.d.ts.map +1 -0
  526. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js +78 -0
  527. package/dist/esm/monitoring/logger/utils/log-severity-floor.backend.utils.js.map +1 -0
  528. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts +309 -0
  529. package/dist/esm/monitoring/observability/audit-observation-emission.backend.d.ts.map +1 -0
  530. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js +385 -0
  531. package/dist/esm/monitoring/observability/audit-observation-emission.backend.js.map +1 -0
  532. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +1 -0
  533. package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
  534. package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
  535. package/dist/esm/monitoring/observability/services/metrics.service.d.ts +21 -0
  536. package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
  537. package/dist/esm/monitoring/observability/services/metrics.service.js +38 -0
  538. package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
  539. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts +0 -80
  540. package/dist/esm/notifications/email/models/email-context-provider.interface.d.ts.map +0 -1
  541. package/dist/esm/notifications/email/models/email-context-provider.interface.js +0 -25
  542. package/dist/esm/notifications/email/models/email-context-provider.interface.js.map +0 -1
  543. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts +0 -49
  544. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.d.ts.map +0 -1
  545. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js +0 -141
  546. package/dist/esm/notifications/email/services/email-context-provider-registry.backend.service.js.map +0 -1
  547. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts +0 -37
  548. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.d.ts.map +0 -1
  549. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js +0 -121
  550. package/dist/esm/notifications/email/services/email-template-compiler.backend.service.js.map +0 -1
  551. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts +66 -1
  552. package/dist/esm/notifications/email/services/email-template-registry.backend.service.d.ts.map +1 -1
  553. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js +105 -10
  554. package/dist/esm/notifications/email/services/email-template-registry.backend.service.js.map +1 -1
  555. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts +0 -58
  556. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.d.ts.map +0 -1
  557. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js +0 -223
  558. package/dist/esm/notifications/email/services/email-template-sandbox.backend.service.js.map +0 -1
  559. package/dist/esm/notifications/email/services/email-template-validator.backend.service.d.ts.map +1 -1
  560. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js +10 -1
  561. package/dist/esm/notifications/email/services/email-template-validator.backend.service.js.map +1 -1
  562. package/dist/esm/notifications/email/services/email.backend.service.d.ts +60 -4
  563. package/dist/esm/notifications/email/services/email.backend.service.d.ts.map +1 -1
  564. package/dist/esm/notifications/email/services/email.backend.service.js +145 -43
  565. package/dist/esm/notifications/email/services/email.backend.service.js.map +1 -1
  566. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts +0 -1
  567. package/dist/esm/notifications/email/utils/color-conversion.utils.d.ts.map +1 -1
  568. package/dist/esm/notifications/email/utils/color-conversion.utils.js.map +1 -1
  569. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts +142 -21
  570. package/dist/esm/notifications/services/notification-badge.backend.service.d.ts.map +1 -1
  571. package/dist/esm/notifications/services/notification-badge.backend.service.js +283 -58
  572. package/dist/esm/notifications/services/notification-badge.backend.service.js.map +1 -1
  573. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts +108 -13
  574. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.d.ts.map +1 -1
  575. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js +432 -101
  576. package/dist/esm/notifications/services/notifications-dispatcher.backend.service.js.map +1 -1
  577. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts +2 -2
  578. package/dist/esm/notifications/sms/services/sms.backend.service.d.ts.map +1 -1
  579. package/dist/esm/notifications/sms/services/sms.backend.service.js +5 -5
  580. package/dist/esm/notifications/sms/services/sms.backend.service.js.map +1 -1
  581. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +117 -5
  582. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
  583. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +164 -6
  584. package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
  585. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts +0 -6
  586. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.d.ts.map +1 -1
  587. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js +54 -7
  588. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.backend.service.js.map +1 -1
  589. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts +5 -5
  590. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.d.ts.map +1 -1
  591. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js +14 -13
  592. package/dist/esm/notifications/webhooks/outbound/batches/m2m-webhook-delivery.batch.utils.js.map +1 -1
  593. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts +2 -1
  594. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.d.ts.map +1 -1
  595. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js +18 -8
  596. package/dist/esm/notifications/webhooks/outbound/m2m-webhook-signed-request.backend.utils.js.map +1 -1
  597. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.d.ts.map +1 -1
  598. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js +20 -18
  599. package/dist/esm/notifications/webhooks/outbound/services/webhook-config-test-endpoint.custom-impl.backend.service.js.map +1 -1
  600. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts +16 -0
  601. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.d.ts.map +1 -1
  602. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js +18 -0
  603. package/dist/esm/notifications/webhooks/services/webhook-handler.backend.service.js.map +1 -1
  604. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.d.ts +2 -2
  605. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js +2 -2
  606. package/dist/esm/organizations/batches/organization-purge.batch.backend.service.js.map +1 -1
  607. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.d.ts.map +1 -1
  608. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js +63 -2
  609. package/dist/esm/organizations/services/organization-custom-implementation.backend.service.js.map +1 -1
  610. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.d.ts.map +1 -1
  611. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js +4 -1
  612. package/dist/esm/organizations/services/organization-unit-custom-implementation.backend.service.js.map +1 -1
  613. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts +66 -0
  614. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.d.ts.map +1 -0
  615. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js +257 -0
  616. package/dist/esm/queue/adapters/in-memory-queue-adapter.backend.service.js.map +1 -0
  617. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts +12 -0
  618. package/dist/esm/queue/adapters/queue-adapter.backend.binding.d.ts.map +1 -0
  619. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js +47 -0
  620. package/dist/esm/queue/adapters/queue-adapter.backend.binding.js.map +1 -0
  621. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts +87 -0
  622. package/dist/esm/queue/adapters/queue-adapter.backend.interface.d.ts.map +1 -0
  623. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js +1 -0
  624. package/dist/esm/queue/adapters/queue-adapter.backend.interface.js.map +1 -0
  625. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts +31 -0
  626. package/dist/esm/queue/adapters/queue-adapter.backend.options.d.ts.map +1 -0
  627. package/dist/esm/queue/adapters/queue-adapter.backend.options.js +13 -0
  628. package/dist/esm/queue/adapters/queue-adapter.backend.options.js.map +1 -0
  629. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts +19 -25
  630. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.d.ts.map +1 -1
  631. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js +33 -0
  632. package/dist/esm/queue/adapters/rabbitmq-adapter.backend.service.js.map +1 -1
  633. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts +2 -2
  634. package/dist/esm/queue/domain-queue-consumer.backend.service.d.ts.map +1 -1
  635. package/dist/esm/queue/domain-queue-consumer.backend.service.js +1 -4
  636. package/dist/esm/queue/domain-queue-consumer.backend.service.js.map +1 -1
  637. package/dist/esm/queue/job-consumer.backend.service.d.ts +2 -2
  638. package/dist/esm/queue/job-consumer.backend.service.d.ts.map +1 -1
  639. package/dist/esm/queue/job-consumer.backend.service.js +1 -4
  640. package/dist/esm/queue/job-consumer.backend.service.js.map +1 -1
  641. package/dist/esm/queue/job-executor.backend.service.d.ts +2 -2
  642. package/dist/esm/queue/job-executor.backend.service.d.ts.map +1 -1
  643. package/dist/esm/queue/job-executor.backend.service.js +1 -4
  644. package/dist/esm/queue/job-executor.backend.service.js.map +1 -1
  645. package/dist/esm/queue/queue-monitoring.backend.service.d.ts +8 -4
  646. package/dist/esm/queue/queue-monitoring.backend.service.d.ts.map +1 -1
  647. package/dist/esm/queue/queue-monitoring.backend.service.js +25 -17
  648. package/dist/esm/queue/queue-monitoring.backend.service.js.map +1 -1
  649. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts +16 -1
  650. package/dist/esm/queue/queue-worker-initializer.backend.service.d.ts.map +1 -1
  651. package/dist/esm/queue/queue-worker-initializer.backend.service.js +16 -1
  652. package/dist/esm/queue/queue-worker-initializer.backend.service.js.map +1 -1
  653. package/dist/esm/queue/queue.backend.service.d.ts +3 -3
  654. package/dist/esm/queue/queue.backend.service.d.ts.map +1 -1
  655. package/dist/esm/queue/queue.backend.service.js +26 -4
  656. package/dist/esm/queue/queue.backend.service.js.map +1 -1
  657. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts +2 -2
  658. package/dist/esm/queue/worker-shutdown-manager.backend.service.d.ts.map +1 -1
  659. package/dist/esm/queue/worker-shutdown-manager.backend.service.js +18 -3
  660. package/dist/esm/queue/worker-shutdown-manager.backend.service.js.map +1 -1
  661. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts +50 -25
  662. package/dist/esm/rag/utils/rag-chunking.backend.utils.d.ts.map +1 -1
  663. package/dist/esm/rag/utils/rag-chunking.backend.utils.js +147 -39
  664. package/dist/esm/rag/utils/rag-chunking.backend.utils.js.map +1 -1
  665. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts +12 -3
  666. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.d.ts.map +1 -1
  667. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js +12 -3
  668. package/dist/esm/rag/utils/rag-context-assembly.backend.utils.js.map +1 -1
  669. package/dist/esm/requests/service/websocket.service.d.ts +9 -0
  670. package/dist/esm/requests/service/websocket.service.d.ts.map +1 -1
  671. package/dist/esm/requests/service/websocket.service.js +88 -15
  672. package/dist/esm/requests/service/websocket.service.js.map +1 -1
  673. package/dist/esm/resources/models/custom-service-implementations.backend.definition.d.ts.map +1 -1
  674. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js +16 -2
  675. package/dist/esm/resources/models/custom-service-implementations.backend.definition.js.map +1 -1
  676. package/dist/esm/resources/models/resources-operations.backend.definitions.d.ts.map +1 -1
  677. package/dist/esm/resources/models/resources-operations.backend.definitions.js +2 -0
  678. package/dist/esm/resources/models/resources-operations.backend.definitions.js.map +1 -1
  679. package/dist/esm/resources/models/resources-relationships.backend.definitions.d.ts.map +1 -1
  680. package/dist/esm/resources/models/resources-relationships.backend.definitions.js +14 -0
  681. package/dist/esm/resources/models/resources-relationships.backend.definitions.js.map +1 -1
  682. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts +2 -1
  683. package/dist/esm/resources/models/resources-types.backend.schemas.d.ts.map +1 -1
  684. package/dist/esm/resources/models/resources-types.backend.schemas.js +8 -0
  685. package/dist/esm/resources/models/resources-types.backend.schemas.js.map +1 -1
  686. package/dist/esm/resources/services/resource-id.backend.service.js +3 -3
  687. package/dist/esm/resources/services/resource-id.backend.service.js.map +1 -1
  688. package/dist/esm/resources/services/resources-registry.backend.service.d.ts +60 -5
  689. package/dist/esm/resources/services/resources-registry.backend.service.d.ts.map +1 -1
  690. package/dist/esm/resources/services/resources-registry.backend.service.js +91 -7
  691. package/dist/esm/resources/services/resources-registry.backend.service.js.map +1 -1
  692. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts +36 -3
  693. package/dist/esm/runtime/controllers/health-controller.backend.service.d.ts.map +1 -1
  694. package/dist/esm/runtime/controllers/health-controller.backend.service.js +32 -10
  695. package/dist/esm/runtime/controllers/health-controller.backend.service.js.map +1 -1
  696. package/dist/esm/runtime/domain-module.backend.definitions.d.ts +24 -0
  697. package/dist/esm/runtime/domain-module.backend.definitions.d.ts.map +1 -1
  698. package/dist/esm/runtime/domain-module.backend.definitions.js +24 -0
  699. package/dist/esm/runtime/domain-module.backend.definitions.js.map +1 -1
  700. package/dist/esm/runtime/services/execution-context-creator.backend.service.d.ts.map +1 -1
  701. package/dist/esm/runtime/services/execution-context-creator.backend.service.js +13 -7
  702. package/dist/esm/runtime/services/execution-context-creator.backend.service.js.map +1 -1
  703. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts +51 -0
  704. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.d.ts.map +1 -1
  705. package/dist/esm/runtime/services/health-readiness-contributor.backend.interface.js.map +1 -1
  706. package/dist/esm/runtime/services/http-server.backend.service.d.ts +26 -0
  707. package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
  708. package/dist/esm/runtime/services/http-server.backend.service.js +181 -1
  709. package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
  710. package/dist/esm/runtime/services/start-application.backend.service.d.ts +47 -1
  711. package/dist/esm/runtime/services/start-application.backend.service.d.ts.map +1 -1
  712. package/dist/esm/runtime/services/start-application.backend.service.js +343 -77
  713. package/dist/esm/runtime/services/start-application.backend.service.js.map +1 -1
  714. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts +15 -0
  715. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.d.ts.map +1 -1
  716. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js +28 -0
  717. package/dist/esm/security/api-keys/api-keys.custom-impl.backend.service.js.map +1 -1
  718. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts +5 -1
  719. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.d.ts.map +1 -1
  720. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js +24 -4
  721. package/dist/esm/security/authentications/batches/anonymous-session-cleanup.batch.backend.service.js.map +1 -1
  722. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.d.ts.map +1 -1
  723. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js +29 -4
  724. package/dist/esm/security/authentications/controllers/authentication-controller.backend.service.js.map +1 -1
  725. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts +114 -0
  726. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.d.ts.map +1 -1
  727. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js +354 -3
  728. package/dist/esm/security/authentications/controllers/oauth-provider-controller.backend.service.js.map +1 -1
  729. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts +1 -0
  730. package/dist/esm/security/authentications/models/cimd.backend.schemas.d.ts.map +1 -1
  731. package/dist/esm/security/authentications/models/cimd.backend.schemas.js +22 -0
  732. package/dist/esm/security/authentications/models/cimd.backend.schemas.js.map +1 -1
  733. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts +3 -23
  734. package/dist/esm/security/authentications/models/jwt.backend.schemas.d.ts.map +1 -1
  735. package/dist/esm/security/authentications/models/jwt.backend.schemas.js +20 -45
  736. package/dist/esm/security/authentications/models/jwt.backend.schemas.js.map +1 -1
  737. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts +15 -0
  738. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.d.ts.map +1 -1
  739. package/dist/esm/security/authentications/models/oauth2-connection.backend.schemas.js.map +1 -1
  740. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts +0 -2
  741. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.d.ts.map +1 -1
  742. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js +23 -14
  743. package/dist/esm/security/authentications/services/admin-config/auth-organization-configuration.service.js.map +1 -1
  744. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts +0 -1
  745. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.d.ts.map +1 -1
  746. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js +15 -12
  747. package/dist/esm/security/authentications/services/admin-config/domain-to-org-lookup.backend.service.js.map +1 -1
  748. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts +113 -3
  749. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.d.ts.map +1 -1
  750. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js +207 -30
  751. package/dist/esm/security/authentications/services/admin-config/domain-verification.backend.service.js.map +1 -1
  752. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts +95 -2
  753. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.d.ts.map +1 -1
  754. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js +153 -9
  755. package/dist/esm/security/authentications/services/admin-config/enterprise-user-provisioning.backend.service.js.map +1 -1
  756. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts +190 -0
  757. package/dist/esm/security/authentications/services/anonymous-session.backend.service.d.ts.map +1 -1
  758. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js +377 -53
  759. package/dist/esm/security/authentications/services/anonymous-session.backend.service.js.map +1 -1
  760. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts +9 -1
  761. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.d.ts.map +1 -1
  762. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js +77 -2
  763. package/dist/esm/security/authentications/services/auth-methods/auth-method-management.backend.service.js.map +1 -1
  764. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.d.ts.map +1 -1
  765. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js +5 -3
  766. package/dist/esm/security/authentications/services/auth-methods/auth-mfa.backend.service.js.map +1 -1
  767. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts +41 -0
  768. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.d.ts.map +1 -1
  769. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js +202 -23
  770. package/dist/esm/security/authentications/services/auth-methods/auth-registration.backend.service.js.map +1 -1
  771. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.d.ts.map +1 -1
  772. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js +42 -1
  773. package/dist/esm/security/authentications/services/auth-methods/oauth2-authentication.backend.service.js.map +1 -1
  774. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.d.ts.map +1 -1
  775. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js +34 -4
  776. package/dist/esm/security/authentications/services/auth-methods/oauth2-connection-resolver.backend.service.js.map +1 -1
  777. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts +29 -5
  778. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.d.ts.map +1 -1
  779. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js +77 -5
  780. package/dist/esm/security/authentications/services/auth-methods/webauthn.backend.service.js.map +1 -1
  781. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts +41 -1
  782. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.d.ts.map +1 -1
  783. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js +87 -4
  784. package/dist/esm/security/authentications/services/auth-token-issuer.backend.service.js.map +1 -1
  785. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts +43 -1
  786. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.d.ts.map +1 -1
  787. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js +277 -97
  788. package/dist/esm/security/authentications/services/authentication-orchestrator.backend.service.js.map +1 -1
  789. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts +28 -5
  790. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.d.ts.map +1 -1
  791. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js +72 -12
  792. package/dist/esm/security/authentications/services/cimd-client-metadata.backend.service.js.map +1 -1
  793. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.d.ts.map +1 -1
  794. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js +3 -0
  795. package/dist/esm/security/authentications/services/custom-impls/auth-custom-implementations.backend.js.map +1 -1
  796. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts +28 -0
  797. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -0
  798. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +283 -0
  799. package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -0
  800. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts +4 -3
  801. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.d.ts.map +1 -1
  802. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js +4 -3
  803. package/dist/esm/security/authentications/services/custom-impls/sso-config.custom-impl.backend.service.js.map +1 -1
  804. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts +35 -0
  805. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.d.ts.map +1 -1
  806. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js +111 -21
  807. package/dist/esm/security/authentications/services/oauth-provider-token.backend.service.js.map +1 -1
  808. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts +14 -1
  809. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.d.ts.map +1 -1
  810. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js +49 -8
  811. package/dist/esm/security/authentications/services/oidc-authorization-code.backend.service.js.map +1 -1
  812. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.d.ts.map +1 -1
  813. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js +4 -0
  814. package/dist/esm/security/authentications/services/utils/auth-policy-resolution.backend.utils.js.map +1 -1
  815. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.d.ts.map +1 -1
  816. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js +6 -0
  817. package/dist/esm/security/authentications/services/utils/auth-user-lookup.backend.service.js.map +1 -1
  818. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts +37 -1
  819. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.d.ts.map +1 -1
  820. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js +51 -0
  821. package/dist/esm/security/authentications/services/utils/external-turn-rate-limit.backend.utils.js.map +1 -1
  822. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts +41 -0
  823. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.d.ts.map +1 -1
  824. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js +45 -0
  825. package/dist/esm/security/authentications/utils/enterprise-sso-enforcement.backend.utils.js.map +1 -1
  826. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts +116 -0
  827. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.d.ts.map +1 -0
  828. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js +162 -0
  829. package/dist/esm/security/authorizations/cross-tenant-read-observation.backend.js.map +1 -0
  830. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.d.ts.map +1 -1
  831. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js +24 -1
  832. package/dist/esm/security/authorizations/initiator-organization-confinement.backend.js.map +1 -1
  833. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts +20 -20
  834. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.d.ts.map +1 -1
  835. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js +27 -28
  836. package/dist/esm/security/authorizations/organization-owner-floor.backend.utils.js.map +1 -1
  837. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.d.ts.map +1 -1
  838. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js +77 -3
  839. package/dist/esm/security/authorizations/platform-access-grant-custom-implementation.backend.service.js.map +1 -1
  840. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts +117 -0
  841. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.d.ts.map +1 -0
  842. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js +104 -0
  843. package/dist/esm/security/authorizations/privileged-access-review.backend.utils.js.map +1 -0
  844. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts +4 -0
  845. package/dist/esm/security/authorizations/role-ceiling.backend.utils.d.ts.map +1 -1
  846. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js +4 -0
  847. package/dist/esm/security/authorizations/role-ceiling.backend.utils.js.map +1 -1
  848. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts +93 -0
  849. package/dist/esm/security/authorizations/role-conferral.backend.utils.d.ts.map +1 -0
  850. package/dist/esm/security/authorizations/role-conferral.backend.utils.js +95 -0
  851. package/dist/esm/security/authorizations/role-conferral.backend.utils.js.map +1 -0
  852. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts +124 -1
  853. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.d.ts.map +1 -1
  854. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js +142 -5
  855. package/dist/esm/security/authorizations/scope-root-collection-confinement.backend.js.map +1 -1
  856. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts +175 -14
  857. package/dist/esm/security/authorizations/services/authorizations.backend.service.d.ts.map +1 -1
  858. package/dist/esm/security/authorizations/services/authorizations.backend.service.js +385 -49
  859. package/dist/esm/security/authorizations/services/authorizations.backend.service.js.map +1 -1
  860. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +6 -14
  861. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
  862. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +13 -22
  863. package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
  864. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts +60 -0
  865. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.d.ts.map +1 -0
  866. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js +79 -0
  867. package/dist/esm/security/connected-accounts/connection-target-authorization.backend.js.map +1 -0
  868. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts +161 -0
  869. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.d.ts.map +1 -0
  870. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js +512 -0
  871. package/dist/esm/security/connected-accounts/controllers/provider-connection.controller.backend.service.js.map +1 -0
  872. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts +59 -0
  873. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.d.ts.map +1 -0
  874. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js +22 -0
  875. package/dist/esm/security/connected-accounts/organization-provider-credential-resolver.port.js.map +1 -0
  876. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts +44 -0
  877. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.d.ts.map +1 -0
  878. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js +20 -0
  879. package/dist/esm/security/connected-accounts/provider-oauth2-refresher.port.js.map +1 -0
  880. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts +191 -0
  881. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.d.ts.map +1 -0
  882. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js +385 -0
  883. package/dist/esm/security/connected-accounts/services/organization-provider-credential-store.backend.service.js.map +1 -0
  884. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts +41 -0
  885. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  886. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js +358 -0
  887. package/dist/esm/security/connected-accounts/services/organization-provider-credentials.custom-impl.backend.service.js.map +1 -0
  888. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts +160 -0
  889. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.d.ts.map +1 -0
  890. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js +266 -0
  891. package/dist/esm/security/connected-accounts/services/provider-oauth2-exchange.backend.js.map +1 -0
  892. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts +111 -0
  893. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.d.ts.map +1 -0
  894. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js +107 -0
  895. package/dist/esm/security/connected-accounts/services/provider-oauth2-pending-authorization.backend.service.js.map +1 -0
  896. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts +54 -0
  897. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.d.ts.map +1 -0
  898. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js +153 -0
  899. package/dist/esm/security/connected-accounts/services/provider-oauth2-refresher.backend.service.js.map +1 -0
  900. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts +195 -0
  901. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.d.ts.map +1 -0
  902. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js +387 -0
  903. package/dist/esm/security/connected-accounts/services/user-provider-credential-store.backend.service.js.map +1 -0
  904. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts +45 -0
  905. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.d.ts.map +1 -0
  906. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js +291 -0
  907. package/dist/esm/security/connected-accounts/services/user-provider-credentials.custom-impl.backend.service.js.map +1 -0
  908. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts +62 -0
  909. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.d.ts.map +1 -0
  910. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js +29 -0
  911. package/dist/esm/security/connected-accounts/user-provider-credential-resolver.port.js.map +1 -0
  912. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts +127 -0
  913. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.d.ts.map +1 -0
  914. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js +277 -0
  915. package/dist/esm/security/connected-accounts/utils/provider-credential-envelope.backend.utils.js.map +1 -0
  916. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts +66 -0
  917. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.d.ts.map +1 -0
  918. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js +75 -0
  919. package/dist/esm/security/connected-accounts/utils/stored-credential-value.backend.utils.js.map +1 -0
  920. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts +18 -1
  921. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.d.ts.map +1 -1
  922. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js +110 -74
  923. package/dist/esm/security/consumable-tokens/batches/consumable-tokens-cleanup.batch.backend.service.js.map +1 -1
  924. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts +22 -0
  925. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.d.ts.map +1 -0
  926. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js +22 -0
  927. package/dist/esm/security/consumable-tokens/consumable-token-models.exports.js.map +1 -0
  928. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts +17 -3
  929. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.d.ts.map +1 -1
  930. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js +12 -0
  931. package/dist/esm/security/consumable-tokens/models/consumable-tokens.backend.resources-config.schemas.js.map +1 -1
  932. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts +41 -3
  933. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.d.ts.map +1 -1
  934. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js +83 -20
  935. package/dist/esm/security/consumable-tokens/services/consumable-token.backend.service.js.map +1 -1
  936. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts +9 -4
  937. package/dist/esm/security/credential-rotation-grace.backend.utils.d.ts.map +1 -1
  938. package/dist/esm/security/credential-rotation-grace.backend.utils.js +9 -4
  939. package/dist/esm/security/credential-rotation-grace.backend.utils.js.map +1 -1
  940. package/dist/esm/security/jwt/services/jwt.backend.service.d.ts.map +1 -1
  941. package/dist/esm/security/jwt/services/jwt.backend.service.js +1 -18
  942. package/dist/esm/security/jwt/services/jwt.backend.service.js.map +1 -1
  943. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts +26 -0
  944. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.d.ts.map +1 -1
  945. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js +43 -0
  946. package/dist/esm/security/oauth-clients/oauth-client-generation.backend.utils.js.map +1 -1
  947. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +8 -1
  948. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
  949. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +49 -0
  950. package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
  951. package/dist/esm/security/scim/controllers/scim.backend.controller.d.ts.map +1 -1
  952. package/dist/esm/security/scim/controllers/scim.backend.controller.js +17 -5
  953. package/dist/esm/security/scim/controllers/scim.backend.controller.js.map +1 -1
  954. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts +67 -29
  955. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.d.ts.map +1 -1
  956. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js +47 -25
  957. package/dist/esm/security/scim/models/scim-protocol.backend.schemas.js.map +1 -1
  958. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts +10 -2
  959. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.d.ts.map +1 -1
  960. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js +10 -2
  961. package/dist/esm/security/ssrf/outbound-target-guard.backend.utils.js.map +1 -1
  962. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts +143 -0
  963. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.d.ts.map +1 -0
  964. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js +258 -0
  965. package/dist/esm/security/ssrf/pinned-outbound-fetch.backend.utils.js.map +1 -0
  966. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts +39 -0
  967. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.d.ts.map +1 -0
  968. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js +159 -0
  969. package/dist/esm/users/services/user-read-retained.custom-impl.backend.service.js.map +1 -0
  970. package/dist/tsconfig.build.tsbuildinfo +1 -1
  971. package/package.json +17 -9
  972. package/dist/esm/.builder.pid +0 -9
@@ -0,0 +1,162 @@
1
+ /**
2
+ * # Cross-tenant READ observation — the half `authorizeOrganizations` structurally cannot see
3
+ *
4
+ * assurance-control: WILDO.ACCESS.CROSS_TENANT_ADMINISTRATION — a declared read across the tenant
5
+ * boundary leaves evidence, per tenant reached.
6
+ * assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
7
+ *
8
+ * ## The gap this closes
9
+ *
10
+ * `CROSS_TENANT_ADMINISTRATIVE_ACCESS` is emitted from `authorizeOrganizations`, which runs on
11
+ * ORGANIZATIONS-scoped resources: it fetches a row, resolves the tenant that row belongs to, and
12
+ * records the crossing when the caller holds no organization-wide entry for it.
13
+ *
14
+ * An APPLICATION-scoped resource never traverses that path — there is no organization in its route
15
+ * and no per-row tenant gate — so a door that returns rows CARRYING an `organizationId` reaches
16
+ * every tenant with nothing written down. That is the same invariant applied at some of its sites
17
+ * (`.claude/rules/invariant-call-site-enumeration.md`), and the missing site is the one that hurts
18
+ * most: `APPLICATION_AUDIT_LOGS` is the operator's cross-tenant view of the audit trail itself, and
19
+ * the trail is the worst possible surface on which to make an operator read invisible
20
+ * (`.claude/rules/administrative-continuity-floors.md`).
21
+ *
22
+ * Measured 2026-09-09 over the real core registry: exactly FIVE resources are APPLICATION-scoped and
23
+ * declare a top-level `organizationId` — `applicationAuditLogs`, `auditLogs`, `consumableTokens`,
24
+ * `files` and `jobExecutions`. This is a small, enumerable population, not a framework-wide sweep.
25
+ *
26
+ * ## Why only a DECLARED crossing is observed
27
+ *
28
+ * `admissionDeclared: false` on that event means an ATTEMPTED crossing that no variant asked for,
29
+ * **and which was refused** — that is what its own field JSDoc says, and what a reviewer reads it
30
+ * as. A read here SUCCEEDS, so emitting `false` for an undeclared door would put a false sentence in
31
+ * the trail: it would describe a completed disclosure as a blocked attempt. Deriving the field from
32
+ * anywhere other than the variant's own flag would be a second derivation of one predicate, which is
33
+ * how a gate and its trail start disagreeing.
34
+ *
35
+ * So the enrolment rule is exact, and it is one act: **declaring
36
+ * `admitsCrossTenantPlatformAdministration` on a read variant is what puts that read in the trail.**
37
+ * The four sibling resources declare no crossing and are therefore unchanged. An UNDECLARED
38
+ * application-scoped door that returns foreign rows is a different defect — an undeclared crossing —
39
+ * and the answer to it is a declaration or a confinement, never an audit row that misdescribes
40
+ * itself.
41
+ *
42
+ * ## Why ORGANIZATIONS-scoped resources are excluded
43
+ *
44
+ * They already emit, from `authorizeOrganizations`, on the same event. Observing them here as well
45
+ * would double-record every declared crossing on `organizations` and `platformAccessGrants` — and a
46
+ * duplicated crossing is worse than a missing one, because a reviewer counting operator reaches
47
+ * would over-count without any way to tell.
48
+ *
49
+ * ## Why membership comes from ROLE ENTRIES
50
+ *
51
+ * The same reason its three siblings give: `initiatorIds.organizationId` names the one tenant the
52
+ * request is acting in, which cannot answer "is this caller a member of the tenant THIS ROW belongs
53
+ * to" for a result set spanning many. Role entries are the one input a request cannot author for
54
+ * itself. {@link resolveCallerOrganizationIds} is reused rather than re-derived so this observation
55
+ * and the confinement authorities can never disagree about who is a member.
56
+ */
57
+ import { CoreResourceOperation, ExecutionContext_ExecutionType, ResourcePrimaryScope, } from '@wildo-ai/saas-models';
58
+ import { resolveCallerOrganizationIds, } from '../../security/authorizations/scope-root-collection-confinement.backend.js';
59
+ import { INITIATOR_ORGANIZATION_CONFINEMENT_FIELD } from '../../security/authorizations/initiator-organization-confinement.backend.js';
60
+ /**
61
+ * The read operations this observation covers.
62
+ *
63
+ * All three of the audit door's operations, deliberately. A per-instance READ is included even
64
+ * though it names one row: reading ONE tenant's audit row from a cross-tenant door is exactly the
65
+ * access the event exists to show, and covering only the collection verbs would leave the cheapest
66
+ * crossing — fetch by id — unrecorded.
67
+ *
68
+ * COUNT is absent because it returns no rows, so it discloses no tenant's data and this authority
69
+ * has nothing to attribute. That is a decision, not an omission: if a count is ever considered a
70
+ * disclosure, it needs a different event carrying a number, the way `PLATFORM_DIRECTORY_ACCESS` does.
71
+ */
72
+ const OBSERVED_READ_OPERATIONS = [
73
+ CoreResourceOperation.READ,
74
+ CoreResourceOperation.LIST,
75
+ CoreResourceOperation.SEARCH,
76
+ ];
77
+ /**
78
+ * Execution types that carry no operator to attribute.
79
+ *
80
+ * Mirrors {@link SCOPE_ROOT_CONFINEMENT_EXEMPT_EXECUTION_TYPES} and is exempt for the same reason:
81
+ * `INTERNALLY_INITIATED_REQUEST` is the framework's context-free system actor (batch, cron, cascade,
82
+ * bootstrap, and the audit writer's own synthesised temp context) and `WEBHOOK_CALLBACK` is trusted
83
+ * after signature verification. Recording framework machinery as operator browsing would bury the
84
+ * signal this event exists to carry — and for the audit resources specifically it would make the
85
+ * retention scrub and the archive batch emit a crossing per tenant on every run.
86
+ */
87
+ const OBSERVATION_EXEMPT_EXECUTION_TYPES = [
88
+ ExecutionContext_ExecutionType.INTERNALLY_INITIATED_REQUEST,
89
+ ExecutionContext_ExecutionType.WEBHOOK_CALLBACK,
90
+ ];
91
+ /**
92
+ * Is this read enrolled in the crossing trail at all?
93
+ *
94
+ * Separated from the row walk so the decision can be pinned on its own, and so a caller pays nothing
95
+ * for a read that is not enrolled — which is every read of all but a handful of resources.
96
+ */
97
+ export function isObservedCrossTenantRead(params) {
98
+ if (!params.executedCoreOperation)
99
+ return false;
100
+ if (!OBSERVED_READ_OPERATIONS.includes(params.executedCoreOperation))
101
+ return false;
102
+ if (OBSERVATION_EXEMPT_EXECUTION_TYPES.includes(params.executionContext.executionType))
103
+ return false;
104
+ // Only a DECLARED crossing — see the module JSDoc. This is also what keeps the enrolled set
105
+ // enumerable: `rg admitsCrossTenantPlatformAdministration` names every door in the trail.
106
+ if (params.operation?.admitsCrossTenantPlatformAdministration !== true)
107
+ return false;
108
+ // Already emitted by `authorizeOrganizations` for this scope; observing again would double-count.
109
+ if (params.resourceConfiguration.resourcePrimaryScope === String(ResourcePrimaryScope.ORGANIZATIONS))
110
+ return false;
111
+ return true;
112
+ }
113
+ /**
114
+ * The distinct tenants a read reached into, and which of their rows it returned.
115
+ *
116
+ * Returns EMPTY when the read is not enrolled, when no returned row carries a tenant, or when every
117
+ * tenant reached is one the caller belongs to. Grouping by tenant rather than emitting per row is
118
+ * what bounds the trail: one operator read produces one row per TENANT reached, not one per record,
119
+ * and the audit row's own `organizationId` is then that tenant's — which is what makes the crossing
120
+ * visible in the reached tenant's own organization-scoped viewer, rather than only to the operator.
121
+ *
122
+ * `rows` accepts whatever the read returned — one object, an array, or nothing — because the three
123
+ * seams that call this differ in shape and normalising at each of them is how one of them would come
124
+ * to normalise differently.
125
+ */
126
+ export function collectCrossTenantReadCrossings(params) {
127
+ if (!isObservedCrossTenantRead(params))
128
+ return [];
129
+ const rows = Array.isArray(params.rows)
130
+ ? params.rows
131
+ : params.rows && typeof params.rows === 'object' ? [params.rows] : [];
132
+ if (rows.length === 0)
133
+ return [];
134
+ const callerOrganizationIds = new Set(resolveCallerOrganizationIds(params.executionContext));
135
+ const byTenant = new Map();
136
+ for (const row of rows) {
137
+ const record = row;
138
+ if (!record || typeof record !== 'object')
139
+ continue;
140
+ const rowOrganizationId = String(record[INITIATOR_ORGANIZATION_CONFINEMENT_FIELD] ?? '');
141
+ // A row with no tenant is not a crossing — it is application-wide data, which is the majority of
142
+ // the audit trail (94 of 127 rows on the dogfood application that motivated this door).
143
+ if (!rowOrganizationId)
144
+ continue;
145
+ if (callerOrganizationIds.has(rowOrganizationId))
146
+ continue;
147
+ const rowId = String(record._id ?? '');
148
+ const ids = byTenant.get(rowOrganizationId);
149
+ if (ids) {
150
+ if (rowId)
151
+ ids.push(rowId);
152
+ }
153
+ else {
154
+ byTenant.set(rowOrganizationId, rowId ? [rowId] : []);
155
+ }
156
+ }
157
+ return [...byTenant.entries()].map(([targetOrganizationId, targetResourceIds]) => ({
158
+ targetOrganizationId,
159
+ targetResourceIds,
160
+ }));
161
+ }
162
+ //# sourceMappingURL=cross-tenant-read-observation.backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-tenant-read-observation.backend.js","sourceRoot":"","sources":["../../../../../src/security/authorizations/cross-tenant-read-observation.backend.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * # Cross-tenant READ observation — the half `authorizeOrganizations` structurally cannot see\n *\n * assurance-control: WILDO.ACCESS.CROSS_TENANT_ADMINISTRATION — a declared read across the tenant\n * boundary leaves evidence, per tenant reached.\n * assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT\n *\n * ## The gap this closes\n *\n * `CROSS_TENANT_ADMINISTRATIVE_ACCESS` is emitted from `authorizeOrganizations`, which runs on\n * ORGANIZATIONS-scoped resources: it fetches a row, resolves the tenant that row belongs to, and\n * records the crossing when the caller holds no organization-wide entry for it.\n *\n * An APPLICATION-scoped resource never traverses that path — there is no organization in its route\n * and no per-row tenant gate — so a door that returns rows CARRYING an `organizationId` reaches\n * every tenant with nothing written down. That is the same invariant applied at some of its sites\n * (`.claude/rules/invariant-call-site-enumeration.md`), and the missing site is the one that hurts\n * most: `APPLICATION_AUDIT_LOGS` is the operator's cross-tenant view of the audit trail itself, and\n * the trail is the worst possible surface on which to make an operator read invisible\n * (`.claude/rules/administrative-continuity-floors.md`).\n *\n * Measured 2026-09-09 over the real core registry: exactly FIVE resources are APPLICATION-scoped and\n * declare a top-level `organizationId` — `applicationAuditLogs`, `auditLogs`, `consumableTokens`,\n * `files` and `jobExecutions`. This is a small, enumerable population, not a framework-wide sweep.\n *\n * ## Why only a DECLARED crossing is observed\n *\n * `admissionDeclared: false` on that event means an ATTEMPTED crossing that no variant asked for,\n * **and which was refused** — that is what its own field JSDoc says, and what a reviewer reads it\n * as. A read here SUCCEEDS, so emitting `false` for an undeclared door would put a false sentence in\n * the trail: it would describe a completed disclosure as a blocked attempt. Deriving the field from\n * anywhere other than the variant's own flag would be a second derivation of one predicate, which is\n * how a gate and its trail start disagreeing.\n *\n * So the enrolment rule is exact, and it is one act: **declaring\n * `admitsCrossTenantPlatformAdministration` on a read variant is what puts that read in the trail.**\n * The four sibling resources declare no crossing and are therefore unchanged. An UNDECLARED\n * application-scoped door that returns foreign rows is a different defect — an undeclared crossing —\n * and the answer to it is a declaration or a confinement, never an audit row that misdescribes\n * itself.\n *\n * ## Why ORGANIZATIONS-scoped resources are excluded\n *\n * They already emit, from `authorizeOrganizations`, on the same event. Observing them here as well\n * would double-record every declared crossing on `organizations` and `platformAccessGrants` — and a\n * duplicated crossing is worse than a missing one, because a reviewer counting operator reaches\n * would over-count without any way to tell.\n *\n * ## Why membership comes from ROLE ENTRIES\n *\n * The same reason its three siblings give: `initiatorIds.organizationId` names the one tenant the\n * request is acting in, which cannot answer \"is this caller a member of the tenant THIS ROW belongs\n * to\" for a result set spanning many. Role entries are the one input a request cannot author for\n * itself. {@link resolveCallerOrganizationIds} is reused rather than re-derived so this observation\n * and the confinement authorities can never disagree about who is a member.\n */\n\nimport {\n CoreResourceOperation,\n ExecutionContext_ExecutionType,\n ResourcePrimaryScope,\n} from '@wildo-ai/saas-models';\n\nimport {\n resolveCallerOrganizationIds,\n type ScopeRootCollectionConfinementSignal,\n} from '~wildo-backend-lib/security/authorizations/scope-root-collection-confinement.backend';\nimport { INITIATOR_ORGANIZATION_CONFINEMENT_FIELD } from '~wildo-backend-lib/security/authorizations/initiator-organization-confinement.backend';\n\n/**\n * The read operations this observation covers.\n *\n * All three of the audit door's operations, deliberately. A per-instance READ is included even\n * though it names one row: reading ONE tenant's audit row from a cross-tenant door is exactly the\n * access the event exists to show, and covering only the collection verbs would leave the cheapest\n * crossing — fetch by id — unrecorded.\n *\n * COUNT is absent because it returns no rows, so it discloses no tenant's data and this authority\n * has nothing to attribute. That is a decision, not an omission: if a count is ever considered a\n * disclosure, it needs a different event carrying a number, the way `PLATFORM_DIRECTORY_ACCESS` does.\n */\nconst OBSERVED_READ_OPERATIONS: readonly CoreResourceOperation[] = [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.SEARCH,\n];\n\n/**\n * Execution types that carry no operator to attribute.\n *\n * Mirrors {@link SCOPE_ROOT_CONFINEMENT_EXEMPT_EXECUTION_TYPES} and is exempt for the same reason:\n * `INTERNALLY_INITIATED_REQUEST` is the framework's context-free system actor (batch, cron, cascade,\n * bootstrap, and the audit writer's own synthesised temp context) and `WEBHOOK_CALLBACK` is trusted\n * after signature verification. Recording framework machinery as operator browsing would bury the\n * signal this event exists to carry — and for the audit resources specifically it would make the\n * retention scrub and the archive batch emit a crossing per tenant on every run.\n */\nconst OBSERVATION_EXEMPT_EXECUTION_TYPES: readonly ExecutionContext_ExecutionType[] = [\n ExecutionContext_ExecutionType.INTERNALLY_INITIATED_REQUEST,\n ExecutionContext_ExecutionType.WEBHOOK_CALLBACK,\n];\n\n/**\n * The EXECUTED operation variant — the one whose declaration decides enrolment.\n *\n * Passed explicitly rather than read off `executionContext.operation`, and that is a correctness\n * requirement rather than a style choice. A resource authors ONE variant per operation and the\n * config factory derives `summary` and `context` variants from it, so \"the operation\" is ambiguous\n * unless the executed one is named; `authorizations.backend.service` already hedges by consulting\n * BOTH the passed operation and the context's, which is the tell that the context's copy cannot be\n * relied on. Taking it here means the enrolment decision and the `admissionDeclared` the emitter\n * writes are read from the SAME object and cannot disagree — the failure this repository keeps\n * paying for when one predicate is derived twice.\n */\nexport interface CrossTenantReadObservationOperation {\n readonly admitsCrossTenantPlatformAdministration?: boolean;\n}\n\n/** What this authority needs from the resource configuration. Deliberately narrow, like its siblings. */\nexport interface CrossTenantReadObservationResource {\n readonly resourceIdentifier?: string;\n readonly resourcePrimaryScope?: string;\n}\n\n/** One tenant reached by a single read, with the rows of that tenant it returned. */\nexport interface CrossTenantReadCrossing {\n readonly targetOrganizationId: string;\n readonly targetResourceIds: string[];\n}\n\n/**\n * Is this read enrolled in the crossing trail at all?\n *\n * Separated from the row walk so the decision can be pinned on its own, and so a caller pays nothing\n * for a read that is not enrolled — which is every read of all but a handful of resources.\n */\nexport function isObservedCrossTenantRead(params: {\n readonly executionContext: ScopeRootCollectionConfinementSignal;\n readonly operation: CrossTenantReadObservationOperation | undefined;\n readonly resourceConfiguration: CrossTenantReadObservationResource;\n readonly executedCoreOperation: CoreResourceOperation | undefined;\n}): boolean {\n if (!params.executedCoreOperation) return false;\n if (!OBSERVED_READ_OPERATIONS.includes(params.executedCoreOperation)) return false;\n if (OBSERVATION_EXEMPT_EXECUTION_TYPES.includes(params.executionContext.executionType)) return false;\n // Only a DECLARED crossing — see the module JSDoc. This is also what keeps the enrolled set\n // enumerable: `rg admitsCrossTenantPlatformAdministration` names every door in the trail.\n if (params.operation?.admitsCrossTenantPlatformAdministration !== true) return false;\n // Already emitted by `authorizeOrganizations` for this scope; observing again would double-count.\n if (params.resourceConfiguration.resourcePrimaryScope === String(ResourcePrimaryScope.ORGANIZATIONS)) return false;\n return true;\n}\n\n/**\n * The distinct tenants a read reached into, and which of their rows it returned.\n *\n * Returns EMPTY when the read is not enrolled, when no returned row carries a tenant, or when every\n * tenant reached is one the caller belongs to. Grouping by tenant rather than emitting per row is\n * what bounds the trail: one operator read produces one row per TENANT reached, not one per record,\n * and the audit row's own `organizationId` is then that tenant's — which is what makes the crossing\n * visible in the reached tenant's own organization-scoped viewer, rather than only to the operator.\n *\n * `rows` accepts whatever the read returned — one object, an array, or nothing — because the three\n * seams that call this differ in shape and normalising at each of them is how one of them would come\n * to normalise differently.\n */\nexport function collectCrossTenantReadCrossings(params: {\n readonly executionContext: ScopeRootCollectionConfinementSignal;\n readonly operation: CrossTenantReadObservationOperation | undefined;\n readonly resourceConfiguration: CrossTenantReadObservationResource;\n readonly executedCoreOperation: CoreResourceOperation | undefined;\n readonly rows: unknown;\n}): CrossTenantReadCrossing[] {\n if (!isObservedCrossTenantRead(params)) return [];\n\n const rows = Array.isArray(params.rows)\n ? params.rows\n : params.rows && typeof params.rows === 'object' ? [params.rows] : [];\n if (rows.length === 0) return [];\n\n const callerOrganizationIds = new Set(resolveCallerOrganizationIds(params.executionContext));\n\n const byTenant = new Map<string, string[]>();\n for (const row of rows) {\n const record = row as Record<string, unknown> | null | undefined;\n if (!record || typeof record !== 'object') continue;\n const rowOrganizationId = String(record[INITIATOR_ORGANIZATION_CONFINEMENT_FIELD] ?? '');\n // A row with no tenant is not a crossing — it is application-wide data, which is the majority of\n // the audit trail (94 of 127 rows on the dogfood application that motivated this door).\n if (!rowOrganizationId) continue;\n if (callerOrganizationIds.has(rowOrganizationId)) continue;\n\n const rowId = String((record as { _id?: unknown })._id ?? '');\n const ids = byTenant.get(rowOrganizationId);\n if (ids) {\n if (rowId) ids.push(rowId);\n } else {\n byTenant.set(rowOrganizationId, rowId ? [rowId] : []);\n }\n }\n\n return [...byTenant.entries()].map(([targetOrganizationId, targetResourceIds]) => ({\n targetOrganizationId,\n targetResourceIds,\n }));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"initiator-organization-confinement.backend.d.ts","sourceRoot":"","sources":["../../../../../src/security/authorizations/initiator-organization-confinement.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,oGAAoG;AACpG,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,uCAAuC,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5F;AAED,qFAAqF;AACrF,MAAM,WAAW,4CAA4C;IAC3D,iCAAiC,CAAC,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACrD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACpE;AAED,sFAAsF;AACtF,eAAO,MAAM,wCAAwC,mBAAmB,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8CAA8C,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,EAAE;IAC7F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;IAClE,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,4CAA4C,CAAC;IACnE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3D,GAAG,OAAO,CAkCV"}
1
+ {"version":3,"file":"initiator-organization-confinement.backend.d.ts","sourceRoot":"","sources":["../../../../../src/security/authorizations/initiator-organization-confinement.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,oGAAoG;AACpG,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3E;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,uCAAuC,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5F;AAED,qFAAqF;AACrF,MAAM,WAAW,4CAA4C;IAC3D,iCAAiC,CAAC,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACrD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACpE;AAED,sFAAsF;AACtF,eAAO,MAAM,wCAAwC,mBAAmB,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8CAA8C,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,EAAE;IAC7F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;IAClE,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,4CAA4C,CAAC;IACnE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3D,GAAG,OAAO,CAyDV"}
@@ -59,7 +59,30 @@ export function assignInitiatorOrganizationConfinementToFilter(params) {
59
59
  || !params.isFieldPersisted(INITIATOR_ORGANIZATION_CONFINEMENT_FIELD)) {
60
60
  return false;
61
61
  }
62
- const organizationPaths = params.schemaPaths.findNestedFieldPathsFromZodSchema(params.mainSchema, INITIATOR_ORGANIZATION_CONFINEMENT_FIELD);
62
+ /*
63
+ * TOP-LEVEL PATHS ONLY — a correction measured on 2026-09-01, in both directions at once.
64
+ *
65
+ * `findNestedFieldPathsFromZodSchema` returns EVERY schema path ending in `organizationId`,
66
+ * and the first control-plane resource to reach this rule over HTTP
67
+ * (`wildoApplicationActorTasks`) models one NESTED occurrence:
68
+ * `errorStates.errorItems.initiatorIds.organizationId` — a RECORDED FACT about a past error's
69
+ * initiator, not a tenancy column. Confining on it failed differently per adapter, and the loud
70
+ * failure was the harmless one:
71
+ *
72
+ * - PostgreSQL: `invalid column reference errorStates.errorItems.initiatorIds.organizationId`
73
+ * — a 400 on every LIST. Visible, kind.
74
+ * - MongoDB: `{ "errorStates…organizationId": org }` matches only rows where a nested error
75
+ * item CARRIES that value — so every row with no recorded errors would silently vanish from
76
+ * its OWN tenant's listings. Invisible, and the dangerous direction
77
+ * (`negative-results-require-a-positive-probe.md`: under-reporting reads as truth).
78
+ *
79
+ * Top-level is not an approximation of the rule — it IS the rule. The write path's own
80
+ * invariant (documented at the contextual-filter builder beside
81
+ * `enrichDataWithContextFields`) is that a scoped resource always carries its scope FK as a
82
+ * top-level column; tenancy never lives only inside a nested value. A deeper occurrence of the
83
+ * field NAME is data about something else and was never this confinement's subject.
84
+ */
85
+ const organizationPaths = params.schemaPaths.findNestedFieldPathsFromZodSchema(params.mainSchema, INITIATOR_ORGANIZATION_CONFINEMENT_FIELD).filter((fullPath) => !fullPath.includes('.'));
63
86
  let applied = false;
64
87
  organizationPaths.forEach((fullPath) => {
65
88
  if (!params.schemaPaths.hasNestedPath(params.filter, fullPath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"initiator-organization-confinement.backend.js","sourceRoot":"","sources":["../../../../../src/security/authorizations/initiator-organization-confinement.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAoBH,sFAAsF;AACtF,MAAM,CAAC,MAAM,wCAAwC,GAAG,gBAAgB,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,8CAA8C,CAAyB,MAOtF;IACC,MAAM,uBAAuB,GAAG,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC;IACrF,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4FAA4F;IAC5F,4FAA4F;IAC5F,2EAA2E;IAC3E,IAAI,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,uCAAuC,KAAK,IAAI,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,wCAAwC,CAAC;WACnE,CAAC,MAAM,CAAC,gBAAgB,CAAC,wCAAwC,CAAC,EACrE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,iCAAiC,CAC5E,MAAM,CAAC,UAAU,EACjB,wCAAwC,CACzC,CAAC;IAEF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YACpF,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["/**\n * Initiator-organization confinement — ONE definition, compiled by both adapters (D3).\n *\n * assurance-control: WILDO.ACCESS.SCOPE_CONFINEMENT — confines a query to the tenant the\n * caller is acting in.\n *\n * A caller's `initiatorIds.organizationId` is not a value they can choose: the execution-context\n * creator validates a requested organization against their MEMBERSHIPS and refuses one they do\n * not belong to. So it is a trustworthy statement of \"the tenant this request is acting in\", and\n * rows of other tenants are not part of what was asked for.\n *\n * **Why this exists as an authority rather than a repository branch.** PostgreSQL applied this\n * confinement and MongoDB did not — divergence D3, and the only measured divergence where the\n * two adapters disagreed about WHO CAN SEE WHOSE ROWS. Under the layering principle that\n * tenancy is a resource-system rule and adapters carry dialect only, a predicate about who may\n * read what has no business being written twice, or once.\n *\n * **The crossing is the part that was missing, and it is why the PostgreSQL version was wrong.**\n * The platform declares deliberate, reviewed cross-tenant doors per operation variant\n * (`admitsCrossTenantPlatformAdministration`) — `organizationMembers.grantOwnership`, the\n * owner-floor repair door, is one. Those are admitted at the AUTHORIZATION layer, before any\n * repository runs. A confinement that does not know about them lets authorization admit the\n * crossing and then silently filters the query to the operator's own tenant — so the repair door\n * reports success and repairs nothing, which is precisely the failure mode\n * `.claude/rules/administrative-continuity-floors.md` warns about.\n *\n * So: confine by default, and step aside ONLY for an operation that has declared the crossing.\n */\n\n/** What this authority needs from the execution context. Deliberately narrow, like its siblings. */\nexport interface InitiatorOrganizationConfinementSignal {\n readonly initiatorIds?: { readonly organizationId?: string | null } | null;\n /**\n * The operation being executed. Only its crossing declaration is read — an operation that\n * did NOT declare one is confined, which is what makes the opt-in enumerable rather than a\n * privilege-based bypass.\n */\n readonly operation?: { readonly admitsCrossTenantPlatformAdministration?: boolean } | null;\n}\n\n/** The schema-path operations this rule performs, supplied by the resource layer. */\nexport interface InitiatorOrganizationConfinementPathResolver {\n findNestedFieldPathsFromZodSchema(mainSchema: any, fieldIdentifier: string): string[];\n hasNestedPath(target: object, path: string): boolean;\n setNestedValue(target: object, path: string, value: unknown): void;\n}\n\n/** The field this confinement is keyed on. Named once so no call site can typo it. */\nexport const INITIATOR_ORGANIZATION_CONFINEMENT_FIELD = 'organizationId';\n\n/**\n * Confine `filter` to the caller's organization, unless the operation declares a crossing.\n *\n * Returns whether the confinement was applied, so a caller can report or pin the decision\n * rather than having to re-derive it.\n *\n * Precedence deliberately matches the relationship-FK sibling and NOT the retention hide: an\n * already-present path is left alone. A value at this key was put there by the context layer\n * from the addressed URL scope, which the authorization layer has already reconciled against\n * the caller; overwriting it here would silently re-scope a request that was legitimately\n * addressed elsewhere.\n *\n * `isFieldPersisted` exists because PostgreSQL can be stricter than MongoDB: it knows which\n * columns are actually planned, and filtering on an unplanned one is a SQL error rather than a\n * no-op. MongoDB passes a predicate that is always true.\n */\nexport function assignInitiatorOrganizationConfinementToFilter<TFilter extends object>(params: {\n readonly filter: TFilter;\n readonly executionContext: InitiatorOrganizationConfinementSignal;\n readonly blacklistedFields: ReadonlySet<string>;\n readonly mainSchema: unknown;\n readonly schemaPaths: InitiatorOrganizationConfinementPathResolver;\n readonly isFieldPersisted: (fieldName: string) => boolean;\n}): boolean {\n const initiatorOrganizationId = params.executionContext.initiatorIds?.organizationId;\n if (!initiatorOrganizationId) {\n return false;\n }\n\n // A DECLARED crossing is the whole point of the opt-in: the authorization layer has already\n // admitted this operation across the tenant boundary, and re-confining it here would undo a\n // decision that was made deliberately, with an audit record, one layer up.\n if (params.executionContext.operation?.admitsCrossTenantPlatformAdministration === true) {\n return false;\n }\n\n if (\n params.blacklistedFields.has(INITIATOR_ORGANIZATION_CONFINEMENT_FIELD)\n || !params.isFieldPersisted(INITIATOR_ORGANIZATION_CONFINEMENT_FIELD)\n ) {\n return false;\n }\n\n const organizationPaths = params.schemaPaths.findNestedFieldPathsFromZodSchema(\n params.mainSchema,\n INITIATOR_ORGANIZATION_CONFINEMENT_FIELD,\n );\n\n let applied = false;\n organizationPaths.forEach((fullPath) => {\n if (!params.schemaPaths.hasNestedPath(params.filter, fullPath)) {\n params.schemaPaths.setNestedValue(params.filter, fullPath, initiatorOrganizationId);\n applied = true;\n }\n });\n\n return applied;\n}\n"]}
1
+ {"version":3,"file":"initiator-organization-confinement.backend.js","sourceRoot":"","sources":["../../../../../src/security/authorizations/initiator-organization-confinement.backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAoBH,sFAAsF;AACtF,MAAM,CAAC,MAAM,wCAAwC,GAAG,gBAAgB,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,8CAA8C,CAAyB,MAOtF;IACC,MAAM,uBAAuB,GAAG,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC;IACrF,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4FAA4F;IAC5F,4FAA4F;IAC5F,2EAA2E;IAC3E,IAAI,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,uCAAuC,KAAK,IAAI,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,wCAAwC,CAAC;WACnE,CAAC,MAAM,CAAC,gBAAgB,CAAC,wCAAwC,CAAC,EACrE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,iCAAiC,CAC5E,MAAM,CAAC,UAAU,EACjB,wCAAwC,CACzC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YACpF,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["/**\n * Initiator-organization confinement — ONE definition, compiled by both adapters (D3).\n *\n * assurance-control: WILDO.ACCESS.SCOPE_CONFINEMENT — confines a query to the tenant the\n * caller is acting in.\n *\n * A caller's `initiatorIds.organizationId` is not a value they can choose: the execution-context\n * creator validates a requested organization against their MEMBERSHIPS and refuses one they do\n * not belong to. So it is a trustworthy statement of \"the tenant this request is acting in\", and\n * rows of other tenants are not part of what was asked for.\n *\n * **Why this exists as an authority rather than a repository branch.** PostgreSQL applied this\n * confinement and MongoDB did not — divergence D3, and the only measured divergence where the\n * two adapters disagreed about WHO CAN SEE WHOSE ROWS. Under the layering principle that\n * tenancy is a resource-system rule and adapters carry dialect only, a predicate about who may\n * read what has no business being written twice, or once.\n *\n * **The crossing is the part that was missing, and it is why the PostgreSQL version was wrong.**\n * The platform declares deliberate, reviewed cross-tenant doors per operation variant\n * (`admitsCrossTenantPlatformAdministration`) — `organizationMembers.grantOwnership`, the\n * owner-floor repair door, is one. Those are admitted at the AUTHORIZATION layer, before any\n * repository runs. A confinement that does not know about them lets authorization admit the\n * crossing and then silently filters the query to the operator's own tenant — so the repair door\n * reports success and repairs nothing, which is precisely the failure mode\n * `.claude/rules/administrative-continuity-floors.md` warns about.\n *\n * So: confine by default, and step aside ONLY for an operation that has declared the crossing.\n */\n\n/** What this authority needs from the execution context. Deliberately narrow, like its siblings. */\nexport interface InitiatorOrganizationConfinementSignal {\n readonly initiatorIds?: { readonly organizationId?: string | null } | null;\n /**\n * The operation being executed. Only its crossing declaration is read — an operation that\n * did NOT declare one is confined, which is what makes the opt-in enumerable rather than a\n * privilege-based bypass.\n */\n readonly operation?: { readonly admitsCrossTenantPlatformAdministration?: boolean } | null;\n}\n\n/** The schema-path operations this rule performs, supplied by the resource layer. */\nexport interface InitiatorOrganizationConfinementPathResolver {\n findNestedFieldPathsFromZodSchema(mainSchema: any, fieldIdentifier: string): string[];\n hasNestedPath(target: object, path: string): boolean;\n setNestedValue(target: object, path: string, value: unknown): void;\n}\n\n/** The field this confinement is keyed on. Named once so no call site can typo it. */\nexport const INITIATOR_ORGANIZATION_CONFINEMENT_FIELD = 'organizationId';\n\n/**\n * Confine `filter` to the caller's organization, unless the operation declares a crossing.\n *\n * Returns whether the confinement was applied, so a caller can report or pin the decision\n * rather than having to re-derive it.\n *\n * Precedence deliberately matches the relationship-FK sibling and NOT the retention hide: an\n * already-present path is left alone. A value at this key was put there by the context layer\n * from the addressed URL scope, which the authorization layer has already reconciled against\n * the caller; overwriting it here would silently re-scope a request that was legitimately\n * addressed elsewhere.\n *\n * `isFieldPersisted` exists because PostgreSQL can be stricter than MongoDB: it knows which\n * columns are actually planned, and filtering on an unplanned one is a SQL error rather than a\n * no-op. MongoDB passes a predicate that is always true.\n */\nexport function assignInitiatorOrganizationConfinementToFilter<TFilter extends object>(params: {\n readonly filter: TFilter;\n readonly executionContext: InitiatorOrganizationConfinementSignal;\n readonly blacklistedFields: ReadonlySet<string>;\n readonly mainSchema: unknown;\n readonly schemaPaths: InitiatorOrganizationConfinementPathResolver;\n readonly isFieldPersisted: (fieldName: string) => boolean;\n}): boolean {\n const initiatorOrganizationId = params.executionContext.initiatorIds?.organizationId;\n if (!initiatorOrganizationId) {\n return false;\n }\n\n // A DECLARED crossing is the whole point of the opt-in: the authorization layer has already\n // admitted this operation across the tenant boundary, and re-confining it here would undo a\n // decision that was made deliberately, with an audit record, one layer up.\n if (params.executionContext.operation?.admitsCrossTenantPlatformAdministration === true) {\n return false;\n }\n\n if (\n params.blacklistedFields.has(INITIATOR_ORGANIZATION_CONFINEMENT_FIELD)\n || !params.isFieldPersisted(INITIATOR_ORGANIZATION_CONFINEMENT_FIELD)\n ) {\n return false;\n }\n\n /*\n * TOP-LEVEL PATHS ONLY — a correction measured on 2026-09-01, in both directions at once.\n *\n * `findNestedFieldPathsFromZodSchema` returns EVERY schema path ending in `organizationId`,\n * and the first control-plane resource to reach this rule over HTTP\n * (`wildoApplicationActorTasks`) models one NESTED occurrence:\n * `errorStates.errorItems.initiatorIds.organizationId` — a RECORDED FACT about a past error's\n * initiator, not a tenancy column. Confining on it failed differently per adapter, and the loud\n * failure was the harmless one:\n *\n * - PostgreSQL: `invalid column reference errorStates.errorItems.initiatorIds.organizationId`\n * — a 400 on every LIST. Visible, kind.\n * - MongoDB: `{ \"errorStates…organizationId\": org }` matches only rows where a nested error\n * item CARRIES that value — so every row with no recorded errors would silently vanish from\n * its OWN tenant's listings. Invisible, and the dangerous direction\n * (`negative-results-require-a-positive-probe.md`: under-reporting reads as truth).\n *\n * Top-level is not an approximation of the rule — it IS the rule. The write path's own\n * invariant (documented at the contextual-filter builder beside\n * `enrichDataWithContextFields`) is that a scoped resource always carries its scope FK as a\n * top-level column; tenancy never lives only inside a nested value. A deeper occurrence of the\n * field NAME is data about something else and was never this confinement's subject.\n */\n const organizationPaths = params.schemaPaths.findNestedFieldPathsFromZodSchema(\n params.mainSchema,\n INITIATOR_ORGANIZATION_CONFINEMENT_FIELD,\n ).filter((fullPath) => !fullPath.includes('.'));\n\n let applied = false;\n organizationPaths.forEach((fullPath) => {\n if (!params.schemaPaths.hasNestedPath(params.filter, fullPath)) {\n params.schemaPaths.setNestedValue(params.filter, fullPath, initiatorOrganizationId);\n applied = true;\n }\n });\n\n return applied;\n}\n"]}
@@ -177,21 +177,16 @@ export type OrganizationOwnerConferralResolver = () => string[];
177
177
  * Every ORGANIZATIONS-scope role key whose `inheritFrom` chain reaches `ORG_OWNER` — i.e. every role
178
178
  * whose holder passes an owner gate.
179
179
  *
180
- * Mirrors the authorization layer's own test: `authorize` admits a caller when
181
- * `getRoleHierarchy(heldRole, scope).includes(requiredRole)`. Deriving the set the same way is what
182
- * keeps the floor counting exactly the principals the gates would let through — an independently
183
- * written membership test is how the two would drift.
184
- *
185
- * `ORG_OWNER` itself is seeded unconditionally rather than being discovered by the walk. If an
186
- * application's role table somehow omitted the key, `getRoleHierarchy` would return an empty chain,
187
- * the conferring set would be empty, and the floor would then measure a population that is empty by
188
- * construction — refusing every removal forever while protecting nothing.
189
- *
190
- * APPLICATION-scope roles are never consulted: membership `roles` is the ORGANIZATIONS authority
191
- * axis, and `getRoleHierarchy` partitions the two tables precisely so an app-scoped role string that
192
- * happens to appear on a membership row confers nothing. The role-ceiling gate relies on the same
193
- * partition (see its `holdsPlatformSuperAdmin` scope qualifier); this module must not be the weaker
194
- * link.
180
+ * This floor's BINDING of the shared conferral derivation. The derivation itself — and the reasoning
181
+ * that used to be restated here and in the super-admin floor in two different sets of words — lives
182
+ * in {@link resolveRolesConferringAnchor}, including why the anchor is seeded unconditionally.
183
+ *
184
+ * Membership `roles` is the ORGANIZATIONS authority axis, so APPLICATION-scope roles are never
185
+ * consulted. That safety comes from RESOLUTION rather than from the field's type: membership `roles`
186
+ * is a free-form string on purpose (an application declares its own org roles), and what makes an
187
+ * app-scoped string written onto a membership row confer nothing is that `getRoleHierarchy` reads it
188
+ * against the ORGANIZATIONS table only. The role-ceiling gate relies on the same partition (see its
189
+ * `holdsPlatformSuperAdmin` scope qualifier); this module must not be the weaker link.
195
190
  */
196
191
  export declare function resolveOrganizationOwnerConferringRoles(authorizationsService: Pick<AuthorizationsBackendService, 'getOrgRoles' | 'getRoleHierarchy'>): string[];
197
192
  /**
@@ -524,11 +519,16 @@ export declare function readOwnerMembershipsForSubjects(params: {
524
519
  * *with management oversight*, and AC-2(7) requires privileged changes to be monitored — an audited,
525
520
  * per-request, non-default override is precisely that, and precisely not a standing bypass.
526
521
  *
527
- * ⚠️ The escape is only half a remedy while the tenant cannot be repaired afterwards. The industry
528
- * pattern is two-part — block at the tenant tier, repair from a higher one (GitHub: an Enterprise
529
- * owner re-owns the org; otherwise Support). Wildo has the block and not yet the repair door; see
530
- * O6 in `.claude/plans/last-organization-owner-floor.md`. Until that lands, an acknowledged breach
531
- * leaves a tenant that only an out-of-band write can rescue, which is why the default stays refuse.
522
+ * The industry pattern is two-part — block at the tenant tier, repair from a higher one (GitHub: an
523
+ * Enterprise owner re-owns the org; otherwise Support). Wildo has BOTH halves: the block is here, and
524
+ * the repair door is `organizationMembers.grantOwnership`, a platform-tier verb that promotes an
525
+ * existing member, writes only `roles`, additively, and is audited at CRITICAL with a mandatory
526
+ * justification. An acknowledged breach therefore leaves a tenant that cannot administer ITSELF, and
527
+ * that a platform operator can repair without an out-of-band write.
528
+ *
529
+ * ⚠️ The default still stays refuse. A repair door is an escalation someone has to notice and
530
+ * perform; it is not a reason to strand a tenant casually, and the tenant-tier answer remains
531
+ * "transfer ownership first".
532
532
  */
533
533
  export declare function assertOrganizationOwnerFloorForSubjectErasure(params: {
534
534
  subjectUserIds: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"organization-owner-floor.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/security/authorizations/organization-owner-floor.backend.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"organization-owner-floor.backend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/security/authorizations/organization-owner-floor.backend.utils.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,7 @@
68
68
  */
69
69
  import { AdministrativeContinuityErrorCode, CORE_ORG_ROLES, CoreResourceOperation, CoreResourceType, ErrorType, OrganizationMemberStatus, OrganizationStatus, ResourcePrimaryScope, UserStatus, } from '@wildo-ai/saas-models';
70
70
  import { SAAS_SERVICE_TYPES } from '../../inject/models/service-types.js';
71
+ import { resolveRolesConferringAnchor } from '../../security/authorizations/role-conferral.backend.utils.js';
71
72
  /**
72
73
  * The minimum number of administratively usable owners a protected organization must retain.
73
74
  *
@@ -170,31 +171,24 @@ export var OrganizationOwnerFloorReductionCause;
170
171
  * Every ORGANIZATIONS-scope role key whose `inheritFrom` chain reaches `ORG_OWNER` — i.e. every role
171
172
  * whose holder passes an owner gate.
172
173
  *
173
- * Mirrors the authorization layer's own test: `authorize` admits a caller when
174
- * `getRoleHierarchy(heldRole, scope).includes(requiredRole)`. Deriving the set the same way is what
175
- * keeps the floor counting exactly the principals the gates would let through — an independently
176
- * written membership test is how the two would drift.
177
- *
178
- * `ORG_OWNER` itself is seeded unconditionally rather than being discovered by the walk. If an
179
- * application's role table somehow omitted the key, `getRoleHierarchy` would return an empty chain,
180
- * the conferring set would be empty, and the floor would then measure a population that is empty by
181
- * construction — refusing every removal forever while protecting nothing.
182
- *
183
- * APPLICATION-scope roles are never consulted: membership `roles` is the ORGANIZATIONS authority
184
- * axis, and `getRoleHierarchy` partitions the two tables precisely so an app-scoped role string that
185
- * happens to appear on a membership row confers nothing. The role-ceiling gate relies on the same
186
- * partition (see its `holdsPlatformSuperAdmin` scope qualifier); this module must not be the weaker
187
- * link.
174
+ * This floor's BINDING of the shared conferral derivation. The derivation itself — and the reasoning
175
+ * that used to be restated here and in the super-admin floor in two different sets of words — lives
176
+ * in {@link resolveRolesConferringAnchor}, including why the anchor is seeded unconditionally.
177
+ *
178
+ * Membership `roles` is the ORGANIZATIONS authority axis, so APPLICATION-scope roles are never
179
+ * consulted. That safety comes from RESOLUTION rather than from the field's type: membership `roles`
180
+ * is a free-form string on purpose (an application declares its own org roles), and what makes an
181
+ * app-scoped string written onto a membership row confer nothing is that `getRoleHierarchy` reads it
182
+ * against the ORGANIZATIONS table only. The role-ceiling gate relies on the same partition (see its
183
+ * `holdsPlatformSuperAdmin` scope qualifier); this module must not be the weaker link.
188
184
  */
189
185
  export function resolveOrganizationOwnerConferringRoles(authorizationsService) {
190
- const conferringRoles = new Set([CORE_ORG_ROLES.ORG_OWNER]);
191
- for (const roleKey of Object.keys(authorizationsService.getOrgRoles() ?? {})) {
192
- const conferred = authorizationsService.getRoleHierarchy(roleKey, ResourcePrimaryScope.ORGANIZATIONS);
193
- if (conferred.includes(CORE_ORG_ROLES.ORG_OWNER)) {
194
- conferringRoles.add(roleKey);
195
- }
196
- }
197
- return [...conferringRoles];
186
+ return resolveRolesConferringAnchor({
187
+ anchorRole: CORE_ORG_ROLES.ORG_OWNER,
188
+ scope: ResourcePrimaryScope.ORGANIZATIONS,
189
+ declaredRoleKeys: Object.keys(authorizationsService.getOrgRoles() ?? {}),
190
+ roleHierarchyResolver: (roleKey, scope) => authorizationsService.getRoleHierarchy(roleKey, scope),
191
+ });
198
192
  }
199
193
  /**
200
194
  * Bind an {@link OrganizationOwnerConferralResolver} to the container's live
@@ -680,11 +674,16 @@ export async function readOwnerMembershipsForSubjects(params) {
680
674
  * *with management oversight*, and AC-2(7) requires privileged changes to be monitored — an audited,
681
675
  * per-request, non-default override is precisely that, and precisely not a standing bypass.
682
676
  *
683
- * ⚠️ The escape is only half a remedy while the tenant cannot be repaired afterwards. The industry
684
- * pattern is two-part — block at the tenant tier, repair from a higher one (GitHub: an Enterprise
685
- * owner re-owns the org; otherwise Support). Wildo has the block and not yet the repair door; see
686
- * O6 in `.claude/plans/last-organization-owner-floor.md`. Until that lands, an acknowledged breach
687
- * leaves a tenant that only an out-of-band write can rescue, which is why the default stays refuse.
677
+ * The industry pattern is two-part — block at the tenant tier, repair from a higher one (GitHub: an
678
+ * Enterprise owner re-owns the org; otherwise Support). Wildo has BOTH halves: the block is here, and
679
+ * the repair door is `organizationMembers.grantOwnership`, a platform-tier verb that promotes an
680
+ * existing member, writes only `roles`, additively, and is audited at CRITICAL with a mandatory
681
+ * justification. An acknowledged breach therefore leaves a tenant that cannot administer ITSELF, and
682
+ * that a platform operator can repair without an out-of-band write.
683
+ *
684
+ * ⚠️ The default still stays refuse. A repair door is an escalation someone has to notice and
685
+ * perform; it is not a reason to strand a tenant casually, and the tenant-tier answer remains
686
+ * "transfer ownership first".
688
687
  */
689
688
  export async function assertOrganizationOwnerFloorForSubjectErasure(params) {
690
689
  const memberships = await readOwnerMembershipsForSubjects(params);